<?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>219287</bug_id>
          
          <creation_ts>2020-11-25 14:01:21 -0800</creation_ts>
          <short_desc>[css-values-4] Support small (sv*), large (lv*) and dynamic (dv*) viewport units</short_desc>
          <delta_ts>2022-04-18 18:21:54 -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>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=232158</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=239477</see_also>
          <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>231644</blocked>
    
    <blocked>232158</blocked>
    
    <blocked>232895</blocked>
    
    <blocked>233291</blocked>
    
    <blocked>237979</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bramus">bramus</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jensimmons</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>kyle.bavender</cc>
    
    <cc>l.pmd</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>nicolas</cc>
    
    <cc>pangle</cc>
    
    <cc>pdr</cc>
    
    <cc>rik</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>smoley</cc>
    
    <cc>thorton</cc>
    
    <cc>tomac</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1710075</commentid>
    <comment_count>0</comment_count>
    <who name="Bramus">bramus</who>
    <bug_when>2020-11-25 14:01:21 -0800</bug_when>
    <thetext>See https://github.com/w3c/csswg-drafts/issues/4329 for discussion (specifically https://github.com/w3c/csswg-drafts/issues/4329#issuecomment-577169195)

&gt; The CSS Working Group just discussed New viewport unit, and agreed to the following:
&gt; - RESOLVED: Add a set of viewport units (vhc for ex.) that reflect the size of the layout viewport less all UA UI

Spec text is being discussed in https://github.com/w3c/csswg-drafts/pull/5108

Related issues from other browsers:
- Chromium: https://bugs.chromium.org/p/chromium/issues/detail?id=1093055
- Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1610815</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711100</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-01 10:46:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/71857370&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788009</commentid>
    <comment_count>2</comment_count>
    <who name="Luke Diggins">l.pmd</who>
    <bug_when>2021-08-27 07:33:38 -0700</bug_when>
    <thetext>vhc has been renamed and expanded as the small (sv*), large (lv*) and dynamic (dv*) viewport units in CSS Values 4: https://drafts.csswg.org/css-values-4/#viewport-variants</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800918</commentid>
    <comment_count>3</comment_count>
      <attachid>440318</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-10-05 18:38:40 -0700</bug_when>
    <thetext>Created attachment 440318
[Patch] WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800921</commentid>
    <comment_count>4</comment_count>
      <attachid>440319</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-10-05 19:02:21 -0700</bug_when>
    <thetext>Created attachment 440319
[Patch] WIP

rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800931</commentid>
    <comment_count>5</comment_count>
      <attachid>440319</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-05 20:04:38 -0700</bug_when>
    <thetext>Comment on attachment 440319
[Patch] WIP

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        Tests: CSSViewportUnits.AllSame
&gt; +               CSSViewportUnits.EmptyUnobscuredSizeOverrides
&gt; +               CSSViewportUnits.SameUnobscuredSizeOverrides
&gt; +               CSSViewportUnits.DifferentUnobscuredSizeOverrides

I think we need to add some wpt tests that at least test parsing of the new unit types, and minimally test that the &quot;small&quot; variants are smaller than or equal do the &quot;large&quot; variants.

&gt; Source/WebCore/css/CSSPrimitiveValue.h:129
&gt; +    bool isSmallViewportPercentageWidth() const { return primitiveUnitType() == CSSUnitType::CSS_SVW; }
&gt; +    bool isSmallViewportPercentageHeight() const { return primitiveUnitType() == CSSUnitType::CSS_SVH; }
&gt; +    bool isSmallViewportPercentageMax() const { return primitiveUnitType() == CSSUnitType::CSS_SVMAX; }
&gt; +    bool isSmallViewportPercentageMin() const { return primitiveUnitType() == CSSUnitType::CSS_SVMIN; }
&gt; +    bool isLargeViewportPercentageWidth() const { return primitiveUnitType() == CSSUnitType::CSS_LVW; }
&gt; +    bool isLargeViewportPercentageHeight() const { return primitiveUnitType() == CSSUnitType::CSS_LVH; }
&gt; +    bool isLargeViewportPercentageMax() const { return primitiveUnitType() == CSSUnitType::CSS_LVMAX; }
&gt; +    bool isLargeViewportPercentageMin() const { return primitiveUnitType() == CSSUnitType::CSS_LVMIN; }
&gt; +    bool isDynamicViewportPercentageWidth() const { return primitiveUnitType() == CSSUnitType::CSS_DVW; }
&gt; +    bool isDynamicViewportPercentageHeight() const { return primitiveUnitType() == CSSUnitType::CSS_DVH; }
&gt; +    bool isDynamicViewportPercentageMax() const { return primitiveUnitType() == CSSUnitType::CSS_DVMAX; }
&gt; +    bool isDynamicViewportPercentageMin() const { return primitiveUnitType() == CSSUnitType::CSS_DVMIN; }

Are these used anywhere?

&gt; Source/WebCore/css/CSSPrimitiveValue.h:345
&gt;      return type == CSSUnitType::CSS_VW
&gt;          || type == CSSUnitType::CSS_VH
&gt;          || type == CSSUnitType::CSS_VMIN
&gt; -        || type == CSSUnitType::CSS_VMAX;
&gt; +        || type == CSSUnitType::CSS_VMAX
&gt; +        || type == CSSUnitType::CSS_SVW
&gt; +        || type == CSSUnitType::CSS_SVH
&gt; +        || type == CSSUnitType::CSS_SVMIN
&gt; +        || type == CSSUnitType::CSS_SVMAX
&gt; +        || type == CSSUnitType::CSS_LVW
&gt; +        || type == CSSUnitType::CSS_LVH
&gt; +        || type == CSSUnitType::CSS_LVMIN
&gt; +        || type == CSSUnitType::CSS_LVMAX
&gt; +        || type == CSSUnitType::CSS_DVW
&gt; +        || type == CSSUnitType::CSS_DVH
&gt; +        || type == CSSUnitType::CSS_DVMIN
&gt; +        || type == CSSUnitType::CSS_DVMAX;

Maybe this can be a range check.

&gt; Source/WebCore/css/CSSToLengthConversionData.cpp:112
&gt; +double CSSToLengthConversionData::smallViewportWidthFactor() const
&gt; +{
&gt; +    if (m_viewportDependencyDetectionStyle)
&gt; +        m_viewportDependencyDetectionStyle-&gt;setHasViewportUnits();
&gt; +
&gt; +    if (!m_renderView)
&gt; +        return 0;
&gt; +
&gt; +    return m_renderView-&gt;minimumViewportSizeForCSSSmallViewportUnits().width() / 100.0;
&gt; +}
&gt; +
&gt; +double CSSToLengthConversionData::smallViewportHeightFactor() const
&gt; +{
&gt; +    if (m_viewportDependencyDetectionStyle)
&gt; +        m_viewportDependencyDetectionStyle-&gt;setHasViewportUnits();
&gt; +
&gt; +    if (!m_renderView)
&gt; +        return 0;
&gt; +
&gt; +    return m_renderView-&gt;minimumViewportSizeForCSSSmallViewportUnits().height() / 100.0;
&gt; +}

This is all getting a bit out of control.

&gt; Source/WebCore/css/CSSToLengthConversionData.h:92
&gt; +    double smallViewportWidthFactor() const;
&gt; +    double smallViewportHeightFactor() const;
&gt; +    double smallViewportMinFactor() const;
&gt; +    double smallViewportMaxFactor() const;
&gt; +    double largeViewportWidthFactor() const;
&gt; +    double largeViewportHeightFactor() const;
&gt; +    double largeViewportMinFactor() const;
&gt; +    double largeViewportMaxFactor() const;
&gt; +    double dynamicViewportWidthFactor() const;
&gt; +    double dynamicViewportHeightFactor() const;
&gt; +    double dynamicViewportMinFactor() const;
&gt; +    double dynamicViewportMaxFactor() const;

Maybe we can halve the number of functions by returning FloatSizes, like 

FloatSize smallViewportFactor() const.

Do they have to be doubles?

&gt; Source/WebCore/css/parser/CSSParserToken.cpp:243
&gt; +        case &apos;d&apos;:
&gt; +            if (toASCIILower(data[1]) == &apos;v&apos; &amp;&amp; toASCIILower(data[2]) == &apos;m&apos;) {
&gt; +                switch (toASCIILower(data[3])) {
&gt; +                case &apos;a&apos;:
&gt; +                    if (toASCIILower(data[4]) == &apos;x&apos;)

This kind of parsing code feels a bit silly.

&gt; Source/WebCore/page/FrameView.h:240
&gt;      void clearViewportSizeOverrideForCSSViewportUnits();
&gt;      IntSize viewportSizeForCSSViewportUnits() const;
&gt;  
&gt; +    WEBCORE_EXPORT void setMinimumViewportSizeForCSSSmallViewportUnits(IntSize);
&gt; +    void clearMinimumViewportSizeOverrideForCSSSmallViewportUnits();
&gt; +    IntSize minimumViewportSizeForCSSSmallViewportUnits() const;
&gt; +
&gt; +    IntSize maximumViewportSizeForCSSLargeViewportUnits() const;
&gt; +    IntSize currentViewportSizeForCSSDynamicViewportUnits() const;

I feel like we should put all the viewport sizes into a struct and just have one function that passes it in.

&quot;Minimum for small&quot; hurts my brain. Do we ever have &quot;maximum for small&quot;? If not, just call it sizeForSmallViewportUnits.

&gt; Source/WebCore/rendering/RenderView.h:149
&gt;      IntSize viewportSizeForCSSViewportUnits() const;
&gt; +    IntSize minimumViewportSizeForCSSSmallViewportUnits() const;
&gt; +    IntSize maximumViewportSizeForCSSLargeViewportUnits() const;
&gt; +    IntSize currentViewportSizeForCSSDynamicViewportUnits() const;

Maybe a single function that returns the one struct with them all in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801848</commentid>
    <comment_count>6</comment_count>
      <attachid>440319</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-10-07 16:22:26 -0700</bug_when>
    <thetext>Comment on attachment 440319
[Patch] WIP

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

&gt;&gt; Source/WebCore/css/CSSPrimitiveValue.h:129
&gt;&gt; +    bool isDynamicViewportPercentageMin() const { return primitiveUnitType() == CSSUnitType::CSS_DVMIN; }
&gt; 
&gt; Are these used anywhere?

Not that I know of, no.  I was following the other methods above.  I&apos;ll remove those too while im at it :)

&gt;&gt; Source/WebCore/css/CSSToLengthConversionData.h:92
&gt;&gt; +    double dynamicViewportMaxFactor() const;
&gt; 
&gt; Maybe we can halve the number of functions by returning FloatSizes, like 
&gt; 
&gt; FloatSize smallViewportFactor() const.
&gt; 
&gt; Do they have to be doubles?

Good idea.  I&apos;ll switch to those.

I don&apos;t know for sure, but given that the implementation does a `/ 100.0f` I think it&apos;s a good idea to use `FloatSize` just in case.

&gt;&gt; Source/WebCore/css/parser/CSSParserToken.cpp:243
&gt;&gt; +                    if (toASCIILower(data[4]) == &apos;x&apos;)
&gt; 
&gt; This kind of parsing code feels a bit silly.

In what way?  I was mirroring what the surrounding code did.  How would you do it differently?

&gt;&gt; Source/WebCore/page/FrameView.h:240
&gt;&gt; +    IntSize currentViewportSizeForCSSDynamicViewportUnits() const;
&gt; 
&gt; I feel like we should put all the viewport sizes into a struct and just have one function that passes it in.
&gt; 
&gt; &quot;Minimum for small&quot; hurts my brain. Do we ever have &quot;maximum for small&quot;? If not, just call it sizeForSmallViewportUnits.

I like the name `sizeForSmallViewportUnits`.  I&apos;ll rename the existing one while im at it too :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801874</commentid>
    <comment_count>7</comment_count>
      <attachid>440557</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-10-07 17:17:39 -0700</bug_when>
    <thetext>Created attachment 440557
Patch

address style/organization feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803532</commentid>
    <comment_count>8</comment_count>
      <attachid>440557</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-12 16:25:52 -0700</bug_when>
    <thetext>Comment on attachment 440557
Patch

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

&gt; Source/WebCore/css/CSSPrimitiveValue.cpp:706
&gt; +            return std::max(size.width(), size.height()) / 100.0 * value;

If we added FloatSize::maxDimension() const { return std::max(width(), height() } we could do this in one line.

&gt; Source/WebCore/css/CSSPrimitiveValue.cpp:712
&gt; +            return std::min(size.width(), size.height()) / 100.0 * value;

Likewise.

&gt; Source/WebCore/css/CSSPrimitiveValue.cpp:800
&gt; +        return value * std::fmax(defaultViewportFactor.width(), defaultViewportFactor.height());

not sure why you need fmax. Maybe max&lt;float&gt; if needed.

&gt; Source/WebCore/page/FrameView.h:240
&gt; +    WEBCORE_EXPORT void setSizeForCSSDefaultViewportUnits(IntSize);
&gt; +    void clearSizeOverrideForCSSDefaultViewportUnits();
&gt; +    IntSize sizeForCSSDefaultViewportUnits() const;
&gt; +
&gt; +    WEBCORE_EXPORT void setSizeForCSSSmallViewportUnits(IntSize);
&gt; +    void clearSizeOverrideForCSSSmallViewportUnits();
&gt; +    IntSize sizeForCSSSmallViewportUnits() const;
&gt; +
&gt; +    IntSize sizeForCSSLargeViewportUnits() const;
&gt; +    IntSize sizeForCSSDynamicViewportUnits() const;

It&apos;s wrong for these to be integral. Views can be fractional pixels wide.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803546</commentid>
    <comment_count>9</comment_count>
      <attachid>440557</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-10-12 16:38:37 -0700</bug_when>
    <thetext>Comment on attachment 440557
Patch

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

&gt;&gt; Source/WebCore/page/FrameView.h:240
&gt;&gt; +    IntSize sizeForCSSDynamicViewportUnits() const;
&gt; 
&gt; It&apos;s wrong for these to be integral. Views can be fractional pixels wide.

filed a followup &lt;https://webkit.org/b/231644&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803631</commentid>
    <comment_count>10</comment_count>
      <attachid>441036</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-10-12 20:43:25 -0700</bug_when>
    <thetext>Created attachment 441036
Patch

still need to fix that one test :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805729</commentid>
    <comment_count>11</comment_count>
      <attachid>441643</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-10-18 15:18:04 -0700</bug_when>
    <thetext>Created attachment 441643
Patch

instead of checking the exact value of `dvw`/`dvh`/`dvmin`/`dvmax`, check that they match `window.innerWidth`/`window.innerHeight` since the value for those units are only partially derived from `-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:minimumUnobscuredSizeOverride:maximumUnobscuredSizeOverride:]` (i.e. they can also be influenced/adjusted by safe area insets, etc.) and ultimately the goal is to have a way to get the current dimensions of the viewport from CSS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806447</commentid>
    <comment_count>12</comment_count>
      <attachid>441833</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-10-19 18:46:04 -0700</bug_when>
    <thetext>Created attachment 441833
Patch

It&apos;s actually not necessary to adjust the SPI as the value provided is something akin to a &quot;minimum unobscured size&quot;.  The main difference is that the value (`minimumLayoutSize`) is also updated for dynamic viewport size changes, which &quot;small viewport&quot; `svw`/`svh`/`svmin`/`svmax` doesn&apos;t really want.  Adjust the changed code to not involve new SPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806448</commentid>
    <comment_count>13</comment_count>
      <attachid>441834</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-10-19 18:49:17 -0700</bug_when>
    <thetext>Created attachment 441834
Patch

oops forgot new test files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806777</commentid>
    <comment_count>14</comment_count>
      <attachid>441918</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-10-20 12:44:39 -0700</bug_when>
    <thetext>Created attachment 441918
Patch

It looks like the `didChangeStyleSheetEnvironment` I added inside `FrameView::unobscuredContentSizeChanged` is causing `http/tests/webAPIStatistics/canvas-read-and-write-data-collection.html` to fail.  That call is needed so that when the current viewport size changes we correctly/automatically update the &quot;dynamic viewport&quot; `dvw`/`dvh`/`dvmin`/`dvmax`.  After doing some digging, we don&apos;t actually have to do a full `didChangeStyleSheetEnvironment` as all we really care about is updating any elements that use viewport units, so instead just call `updateViewportUnitsOnResize`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807254</commentid>
    <comment_count>15</comment_count>
      <attachid>441918</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-21 11:02:48 -0700</bug_when>
    <thetext>Comment on attachment 441918
Patch

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

&gt; Source/WebCore/page/FrameView.cpp:5624
&gt; +    if (auto* document = frame().document())
&gt; +        document-&gt;styleScope().didChangeStyleSheetEnvironment();

When is this stuff being called? didChangeStyleSheetEnvironment can be extremely expensive as it throws out everything we know about style and starts from scratch. It should only ever be used on things like user settings changing, not during any normal operation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807258</commentid>
    <comment_count>16</comment_count>
      <attachid>441918</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-10-21 11:05:42 -0700</bug_when>
    <thetext>Comment on attachment 441918
Patch

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

&gt;&gt; Source/WebCore/page/FrameView.cpp:5624
&gt;&gt; +        document-&gt;styleScope().didChangeStyleSheetEnvironment();
&gt; 
&gt; When is this stuff being called? didChangeStyleSheetEnvironment can be extremely expensive as it throws out everything we know about style and starts from scratch. It should only ever be used on things like user settings changing, not during any normal operation.

This method should only ever be invoked when the actual size of the viewport changes (e.g. `-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]`, auto-size, etc.).

Also FWIW this is actually just a renaming of existing code.  The diff makes it seem like this is new, but in reality `overrideSizeForCSSLargeViewportUnits` is just a rename of `overrideViewportSizeForCSSViewportUnits`.  It&apos;s `overrideSizeForCSSSmallViewportUnits` that&apos;s new, and that should only ever be called by `-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]` (or if the `WKWebView` is autosized).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807271</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-21 11:18:09 -0700</bug_when>
    <thetext>Committed r284628 (243349@main): &lt;https://commits.webkit.org/243349@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441918.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811858</commentid>
    <comment_count>18</comment_count>
      <attachid>441918</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-04 08:40:13 -0700</bug_when>
    <thetext>Comment on attachment 441918
Patch

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

&gt; Source/WebCore/page/FrameView.cpp:5646
&gt; +    // Use the large size if no override is given since it&apos;s considered the default size.
&gt; +    // if (m_largeViewportSizeOverride) {
&gt; +    //     if (!viewportSize.width)
&gt; +    //         viewportSize.width = m_largeViewportSizeOverride-&gt;width;
&gt; +
&gt; +    //     if (!viewportSize.height)
&gt; +    //         viewportSize.height = m_largeViewportSizeOverride-&gt;height;
&gt; +    // }

What is going on here? We don&apos;t land commented out code.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440318</attachid>
            <date>2021-10-05 18:38:40 -0700</date>
            <delta_ts>2021-10-05 19:02:19 -0700</delta_ts>
            <desc>[Patch] WIP</desc>
            <filename>bug-219287-20211005183839.patch</filename>
            <type>text/plain</type>
            <size>95884</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2ZDk2NjI4YTUzMjE1YWVhMTRkZjVjOGJkMWVjYWM2NzA5NWJiMGNkLi5k
ZDMyNmY4MzhmMDA0NjNjOThlMzI4YmMxMWJkMThkNjhhNzZjZDBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsOTIgQEAKKzIwMjEtMTAtMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFtjc3MtdmFsdWVzLTRdIFN1cHBvcnQgc21hbGwgKHN2KiksIGxhcmdlIChs
diopIGFuZCBkeW5hbWljIChkdiopIHZpZXdwb3J0IHVuaXRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyODcKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzcxODU3MzcwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFNwZWM6IDxodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXZhbHVlcy00LyN2aWV3
cG9ydC12YXJpYW50cz4KKworICAgICAgICBUZXN0czogQ1NTVmlld3BvcnRVbml0cy5BbGxTYW1l
CisgICAgICAgICAgICAgICBDU1NWaWV3cG9ydFVuaXRzLkVtcHR5VW5vYnNjdXJlZFNpemVPdmVy
cmlkZXMKKyAgICAgICAgICAgICAgIENTU1ZpZXdwb3J0VW5pdHMuU2FtZVVub2JzY3VyZWRTaXpl
T3ZlcnJpZGVzCisgICAgICAgICAgICAgICBDU1NWaWV3cG9ydFVuaXRzLkRpZmZlcmVudFVub2Jz
Y3VyZWRTaXplT3ZlcnJpZGVzCisKKyAgICAgICAgKiBjc3MvQ1NTVW5pdHMuaDoKKyAgICAgICAg
KiBjc3MvQ1NTVW5pdHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAg
ICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6aXNWaWV3cG9ydFBlcmNlbnRhZ2VMZW5ndGgpOgorICAgICAgICAqIGNzcy9D
U1NQcmltaXRpdmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1ZhbGlkQ1NTVW5pdFR5
cGVGb3JEb3VibGVDb252ZXJzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmlzU3RyaW5nVHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y2xlYW51cCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZVVuem9vbWVkTm9uQ2FsY0xlbmd0
aERvdWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZU5v
bkNhbGNMZW5ndGhEb3VibGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
OnVuaXRUeXBlU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpm
b3JtYXROdW1iZXJGb3JDdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1ByaW1pdGl2ZVZhbHVlOjplcXVhbHMgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhLmg6CisgICAgICAgICogY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6c21h
bGxWaWV3cG9ydFdpZHRoRmFjdG9yIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpD
U1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpzbWFsbFZpZXdwb3J0SGVpZ2h0RmFjdG9yIGNvbnN0
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpz
bWFsbFZpZXdwb3J0TWluRmFjdG9yIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpD
U1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpzbWFsbFZpZXdwb3J0TWF4RmFjdG9yIGNvbnN0KTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpsYXJn
ZVZpZXdwb3J0V2lkdGhGYWN0b3IgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OmxhcmdlVmlld3BvcnRIZWlnaHRGYWN0b3IgY29uc3Qp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6Omxh
cmdlVmlld3BvcnRNaW5GYWN0b3IgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OmxhcmdlVmlld3BvcnRNYXhGYWN0b3IgY29uc3QpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OmR5bmFt
aWNWaWV3cG9ydFdpZHRoRmFjdG9yIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpD
U1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpkeW5hbWljVmlld3BvcnRIZWlnaHRGYWN0b3IgY29u
c3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6
OmR5bmFtaWNWaWV3cG9ydE1pbkZhY3RvciBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6ZHluYW1pY1ZpZXdwb3J0TWF4RmFjdG9yIGNv
bnN0KTogQWRkZWQuCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjc3NQcmltaXRpdmVWYWx1ZVVuaXRGcm9tVHJpZSk6CisgICAgICAg
ICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lTGVuZ3RoUmF3V2l0aEtub3du
VG9rZW5UeXBlRGltZW5zaW9uKToKKyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjQ2F0ZWdvcnlN
YXBwaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGNVbml0Q2F0ZWdvcnkpOgorICAgICAg
ICAoV2ViQ29yZTo6Y2FsY3VsYXRpb25DYXRlZ29yeUZvckNvbWJpbmF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6Omhhc0RvdWJsZVZhbHVlKToKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNp
bmcgdGhlIGZvbGxvd2luZyBhbmQgY29udmVydGluZyB0aGVtIHRvIHRoZWlyIHVuZGVybHlpbmcg
dmFsdWU6CisgICAgICAgIC0gYHN2d2AgInNtYWxsIHZpZXdwb3J0IHdpZHRoIiBpcyB0aGUgd2lk
dGggb2YgdGhlIHZpZXdwb3J0IGlmIGFsbCBVQSBpbnRlcmZhY2VzIGFyZSBtYXhpbWl6ZWQKKyAg
ICAgICAgLSBgc3ZoYCAic21hbGwgdmlld3BvcnQgaGVpZ2h0IiBpcyB0aGUgaGVpZ2h0IG9mIHRo
ZSB2aWV3cG9ydCBpZiBhbGwgVUEgaW50ZXJmYWNlcyBhcmUgbWF4aW1pemVkCisgICAgICAgIC0g
YHN2bWluYCAic21hbGwgdmlld3BvcnQgc21hbGwgZGltZW5zaW9uIiBpcyBgbWluKHN2dywgc3Zo
KWAKKyAgICAgICAgLSBgc3ZtYXhgICJzbWFsbCB2aWV3cG9ydCBsYXJnZSBkaW1lbnNpb24iIGlz
IGBtYXgoc3Z3LCBzdmgpYAorICAgICAgICAtIGBsdndgICJsYXJnZSB2aWV3cG9ydCB3aWR0aCIg
aXMgdGhlIHdpZHRoIG9mIHRoZSB2aWV3cG9ydCBpZiBhbGwgVUEgaW50ZXJmYWNlcyBhcmUgbWlu
aW1pemVkCisgICAgICAgIC0gYGx2aGAgImxhcmdlIHZpZXdwb3J0IGhlaWdodCIgaXMgdGhlIGhl
aWdodCBvZiB0aGUgdmlld3BvcnQgaWYgYWxsIFVBIGludGVyZmFjZXMgYXJlIG1pbmltaXplZAor
ICAgICAgICAtIGBsdm1pbmAgImxhcmdlIHZpZXdwb3J0IHNtYWxsIGRpbWVuc2lvbiIgaXMgYG1p
bihsdncsIGx2aClgCisgICAgICAgIC0gYGx2bWF4YCAibGFyZ2Ugdmlld3BvcnQgbGFyZ2UgZGlt
ZW5zaW9uIiBpcyBgbWF4KGx2dywgbHZoKWAKKyAgICAgICAgLSBgZHZ3YCAiZHluYW1pYyB2aWV3
cG9ydCB3aWR0aCIgaXMgdGhlIHdpZHRoIG9mIHRoZSB2aWV3cG9ydCB3aXRoIGFsbCBVQSBpbnRl
cmZhY2VzIGJlaW5nIGluIHdoYXRldmVyIHN0YXRlIHRoZXkgYXJlIGN1cnJlbnRseSBpbgorICAg
ICAgICAtIGBkdmhgICJkeW5hbWljIHZpZXdwb3J0IGhlaWdodCIgaXMgdGhlIGhlaWdodCBvZiB0
aGUgdmlld3BvcnQgd2l0aCBhbGwgVUEgaW50ZXJmYWNlcyBiZWluZyBpbiB3aGF0ZXZlciBzdGF0
ZSB0aGV5IGFyZSBjdXJyZW50bHkgaW4KKyAgICAgICAgLSBgZHZtaW5gICJkeW5hbWljIHZpZXdw
b3J0IHNtYWxsIGRpbWVuc2lvbiIgaXMgYG1pbihkdncsIGR2aClgCisgICAgICAgIC0gYGR2bWF4
YCAiZHluYW1pYyB2aWV3cG9ydCBsYXJnZSBkaW1lbnNpb24iIGlzIGBtYXgoZHZ3LCBkdmgpYAor
ICAgICAgICBUaGUgZXhpc3RpbmcgYHZ3YC9gdmhgL2B2bWluYC9gdm1heGAgY29ycmVzcG9uZCB0
byB0aGUgIlVBLWRlZmF1bHQgdmlld3BvcnQiLCB3aGljaCBXZWJLaXQKKyAgICAgICAgY29uc2lk
ZXJzIGVxdWl2YWxlbnQgdG8gdGhlICJsYXJnZSB2aWV3cG9ydCIgYGx2d2AvYGx2aGAvYGx2bWlu
YC9gbHZtYXhgLgorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnVub2JzY3VyZWRD
b250ZW50U2l6ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRNaW5p
bXVtVmlld3BvcnRTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVZpZXc6OmNsZWFyTWluaW11bVZpZXdwb3J0U2l6ZU92ZXJyaWRlRm9y
Q1NTU21hbGxWaWV3cG9ydFVuaXRzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6Om1pbmltdW1WaWV3cG9ydFNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMgY29uc3QpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6bWF4aW11bVZpZXdwb3J0U2l6ZUZv
ckNTU0xhcmdlVmlld3BvcnRVbml0cyBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjpjdXJyZW50Vmlld3BvcnRTaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMg
Y29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZp
ZXc6Om1pbmltdW1WaWV3cG9ydFNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMgY29uc3QpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6Om1heGltdW1WaWV3cG9ydFNpemVG
b3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclZpZXc6OmN1cnJlbnRWaWV3cG9ydFNpemVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0
cyBjb25zdCk6IEFkZGVkLgorICAgICAgICBGb3IgInNtYWxsIHZpZXdwb3J0IiBgc3Z3YC9gc3Zo
YC9gc3ZtaW5gL2Bzdm1heGAsIGFkZCBzdXBwb3J0IGZvciBhIG5ldyBgSW50U2l6ZWAgbWVtYmVy
CisgICAgICAgIHRoYXQgaXMgcHJvcGFnYXRlZCBmcm9tIHRoZSBVSVByb2Nlc3MuIElmIG5vdCBz
ZXQsIGZhbGwgYmFjayB0byAiVUEtZGVmYXVsdCB2aWV3cG9ydCIgYHZ3YC9gdmhgL2B2bWluYC9g
dm1heGAuCisgICAgICAgIEZvciAibGFyZ2Ugdmlld3BvcnQiIGBsdndgL2BsdmhgL2Bsdm1pbmAv
YGx2bWF4YCwgdXNlIHRoZSBzYW1lIHZhbHVlIGFzICJVQS1kZWZhdWx0IHZpZXdwb3J0IiBgdndg
L2B2aGAvYHZtaW5gL2B2bWF4YC4KKyAgICAgICAgRm9yICJkeW5hbWljIHZpZXdwb3J0IiBgZHZ3
YC9gZHZoYC9gZHZtaW5gL2Bkdm1heGAsIHVzZSB0aGUgc2FtZSB2YWx1ZSBhcyBgd2luZG93Lmlu
bmVyKmAKKworICAgICAgICAqIGNzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6cHJpbWl0
aXZlVHlwZSBjb25zdCk6CisgICAgICAgIERvbid0IGBBU1NFUlRfTk9UX1JFQUNIRURgIG5vdyB0
aGF0IHRoZXJlIGFyZSBuZXcgdW5pdCB0eXBlcy4KKwogMjAyMS0xMC0wNCAgU2FtIFdlaW5pZyAg
PHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgU3BsaXQgV2ViWFIgZXh0ZW5zaW9uIG1vZHVs
ZSBJRExzIGludG8gdGhlaXIgb3duIGZpbGVzIGFuZCBzZXR0aW5ncwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFu
Z2VMb2cKaW5kZXggMmU2Y2M1NjcwNDNlZjc5NTM0ZThmMjZlYzViOWQ4NzA1YjcwOTAyNy4uZWNl
NGIyMzVkNWNiNWFlMjdhNGEzMDM3YjQ0NDk0NWYxYjcyNzZjNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMDUgIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgorCisgICAgICAgIFtjc3MtdmFsdWVzLTRdIFN1cHBvcnQgc21hbGwgKHN2
KiksIGxhcmdlIChsdiopIGFuZCBkeW5hbWljIChkdiopIHZpZXdwb3J0IHVuaXRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyODcKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzcxODU3MzcwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTQ29tcGxldGlvbnMu
anM6CisKIDIwMjEtMDktMjkgIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAg
W0NvY29hXSBhZGQgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uIFNQSSB0byBldmFsdWF0ZSBzY3JpcHQg
b24gYW4gZXh0ZW5zaW9uIHRhYgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzZGU5ZGIwMjE4YjAwN2Q5ZjA3OTJkMTE2
ZGRjODM4MTNjNDYzOThjLi44M2RjMjlhYTdiNzZlYzU2OTM4MWIxYmNmYzI1MTViMjJhYzE3NzU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTEwLTA1ICBEZXZpbiBSb3Vzc28gIDxk
cm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbY3NzLXZhbHVlcy00XSBTdXBwb3J0IHNtYWxs
IChzdiopLCBsYXJnZSAobHYqKSBhbmQgZHluYW1pYyAoZHYqKSB2aWV3cG9ydCB1bml0cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5Mjg3CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83MTg1NzM3MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTcGVjOiA8aHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
cy12YWx1ZXMtNC8jdmlld3BvcnQtdmFyaWFudHM+CisKKyAgICAgICAgVGVzdHM6IENTU1ZpZXdw
b3J0VW5pdHMuQWxsU2FtZQorICAgICAgICAgICAgICAgQ1NTVmlld3BvcnRVbml0cy5FbXB0eVVu
b2JzY3VyZWRTaXplT3ZlcnJpZGVzCisgICAgICAgICAgICAgICBDU1NWaWV3cG9ydFVuaXRzLlNh
bWVVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlcworICAgICAgICAgICAgICAgQ1NTVmlld3BvcnRVbml0
cy5EaWZmZXJlbnRVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlcworCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dL
V2ViVmlld0lPUy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9wcm9jZXNzV2lsbFN3YXBPckRp
ZEV4aXRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaXNwYXRjaFNldE1pbmltdW1Vbm9ic2N1
cmVkU2l6ZTpdKTogQWRkZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBfZnJhbWVPckJvdW5kc0No
YW5nZWRdKToKKyAgICAgICAgKGFjdGl2ZU1pbmltdW1Vbm9ic2N1cmVkU2l6ZSk6IEFkZGVkLgor
ICAgICAgICAoLVtXS1dlYlZpZXcgX2RpZENvbXBsZXRlQW5pbWF0ZWRSZXNpemVdKToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9taW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZV0pOiBBZGRlZC4K
KyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRNaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpd
KTogQWRkZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBfYmVnaW5BbmltYXRlZFJlc2l6ZVdpdGhV
cGRhdGVzOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVy
c1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTptYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpdKToK
KyAgICAgICAgKC1bV0tXZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11
bUxheW91dFNpemU6bWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6bWF4aW11bVVub2JzY3Vy
ZWRTaXplT3ZlcnJpZGU6XSk6IEFkZGVkLgorICAgICAgICBSZXF1aXJlIHRoYXQgY2xpZW50cyB3
aG8gb3ZlcnJpZGUgbGF5b3V0IHBhcmFtZXRlcnMgdG8gcHJvdmlkZSBib3RoIChvciBuZWl0aGVy
KSBhIG1heGltdW0KKyAgICAgICAgYW5kIG1pbmltdW0gdW5vYnNjdXJlZCBzaXplIG92ZXJyaWRl
LCB0aGUgbGF0dGVyIGJlaW5nIGZvciAic21hbGwgdmlld3BvcnQiIGBzdndgL2BzdmhgL2Bzdm1p
bmAvYHN2bWF4YC4KKyAgICAgICAgImxhcmdlIHZpZXdwb3J0IiBgbHZ3YC9gbHZoYC9gbHZtaW5g
L2Bsdm1heGAgYW5kICJkeW5hbWljIHZpZXdwb3J0IiBgZHZ3YC9gZHZoYC9gZHZtaW5gL2Bkdm1h
eGAKKyAgICAgICAgKGFzIHdlbGwgYXMgdGhlIGV4aXN0aW5nICJVQS1kZWZhdWx0IHZpZXdwb3J0
IiBgdndgL2B2aGAvYHZtaW5gL2B2bWF4YCkgY2FuIGJlIGRlcml2ZWQgZnJvbQorICAgICAgICBl
eGlzdGluZyBsb2dpYy4gU2VlIHRoZSBXZWJDb3JlIENoYW5nZUxvZyBmb3IgbW9yZSBpbmZvcm1h
dGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpzZXRNaW5pbXVtVW5vYnNjdXJlZFNpemUpOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0TWluaW11bVVub2Jz
Y3VyZWRTaXplKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmR5bmFtaWNWaWV3
cG9ydFNpemVVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVWaWV3cG9y
dFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKToKKyAgICAgICAgQWRkIHBpcGluZyBmcm9tIHRoZSBV
SVByb2Nlc3MgdG8gdGhlIFdlYlByb2Nlc3MgZm9yIHRoZSBuZXcgbWluaW11bSB1bm9ic2N1cmVk
IHNpemUgb3ZlcnJpZGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tG
dWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLRnVsbFNjcmVlblZpZXdD
b250cm9sbGVyIHZpZXdXaWxsVHJhbnNpdGlvblRvU2l6ZTp3aXRoVHJhbnNpdGlvbkNvb3JkaW5h
dG9yOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVyIGVudGVyRnVsbFNjcmVlbl0pOgorICAgICAgICBSZXBsYWNlIGBfb3ZlcnJpZGVMYXlv
dXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOm1heGltdW1Vbm9ic2N1cmVkU2l6ZU92
ZXJyaWRlOmAgd2l0aAorICAgICAgICBgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5p
bXVtTGF5b3V0U2l6ZTptaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTptYXhpbXVtVW5vYnNj
dXJlZFNpemVPdmVycmlkZTpgLgorCiAyMDIxLTEwLTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBTZW5kIG5lY2Vzc2FyeSBzYW5kYm94IGV4dGVuc2lvbnMg
dG8gV2ViUHJvY2VzcyBpbiBjYXNlIFdlYlJUQyBjb2RlY3MgcnVuIGluIFdlYlByb2Nlc3MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCmluZGV4IGU0NDY5MTYxYzVhMWU0
Y2Y0ZDU4ZGRmNTc1ODFiNmIxM2I0MmE4OTMuLjU5ZWE5ZGQwYmMyZjFlOTJmOGZiMTRiZDY2Y2Fm
NGY5MmY2M2QzZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVW
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcApA
QCAtNjAsNiArNjAsMTAgQEAgc3RhdGljIGlubGluZSBib29sIGlzVmFsaWRDU1NVbml0VHlwZUZv
ckRvdWJsZUNvbnZlcnNpb24oQ1NTVW5pdFR5cGUgdW5pdFR5cGUpCiAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0NNOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ERUc6CiAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0RJTUVOU0lPTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZI
OgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfRU1TOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19FWFM6CiAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0ZSOgpAQCAtNzYsMTEgKzgwLDE5IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBpc1ZhbGlkQ1NTVW5pdFR5cGVGb3JEb3VibGVDb252ZXJzaW9uKENTU1VuaXRUeXBl
IHVuaXRUeXBlKQogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QWDoKICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfUToKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTEhTOgorICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOgor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfTFZXOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19STEhTOgogICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19RVUlSS1lfRU1TOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SQUQ6CiAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JFTVM6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1M6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfU1ZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOgorICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19TVlc6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1RVUk46CiAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19W
TUFYOgpAQCAtMTM5LDYgKzE1MSwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTdHJpbmdUeXBl
KENTU1VuaXRUeXBlIHR5cGUpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQQ006CiAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQSToKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBQ
WDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19EVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46CisgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0RWVzoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfWDoKICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfRU1TOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19FWFM6
CkBAIC0xNDksNiArMTY1LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1N0cmluZ1R5cGUoQ1NT
VW5pdFR5cGUgdHlwZSkKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfSURFTlQ6CiAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0lOOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19LSFo6Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
TFZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUlOOgorICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19MVlc6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX01NOgogICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19NUzoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSOgpA
QCAtMTY4LDYgKzE4OCwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTdHJpbmdUeXBlKENTU1Vu
aXRUeXBlIHR5cGUpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JFTVM6CiAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1JHQkNPTE9SOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TOgor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1NWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjoKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfU1ZXOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TSEFQRToKICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfVFVSTjoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVU5J
Q09ERV9SQU5HRToKQEAgLTUxMyw2ICs1MzcsMTggQEAgdm9pZCBDU1NQcmltaXRpdmVWYWx1ZTo6
Y2xlYW51cCgpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOgogICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19WTUlOOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgorICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDoK
KyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1NWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0xWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19E
Vlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOgogICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19EUFBYOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19YOgogICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUEk6CkBAIC02NTcsNiArNjkzLDU0IEBAIGRvdWJsZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZVVuem9vbWVkTm9uQ2FsY0xlbmd0aERvdWJsZShDU1NV
bml0VHlwZSBwcmltaXRpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjptaW4odmlld3BvcnRTaXpl
Rm9yQ1NTVmlld3BvcnRVbml0cy53aWR0aCgpLCB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVu
aXRzLmhlaWdodCgpKSAvIDEwMC4wICogdmFsdWU7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJu
IHZhbHVlOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAgICAgIHJldHVybiBy
ZW5kZXJWaWV3ID8gcmVuZGVyVmlldy0+bWluaW11bVZpZXdwb3J0U2l6ZUZvckNTU1NtYWxsVmll
d3BvcnRVbml0cygpLmhlaWdodCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7CisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1NWVzoKKyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3
LT5taW5pbXVtVmlld3BvcnRTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCkud2lkdGgoKSAv
IDEwMC4wICogdmFsdWUgOiAwOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDoKKyAg
ICAgICAgaWYgKHJlbmRlclZpZXcpIHsKKyAgICAgICAgICAgIGF1dG8gbWluaW11bVZpZXdwb3J0
U2l6ZSA9IHJlbmRlclZpZXctPm1pbmltdW1WaWV3cG9ydFNpemVGb3JDU1NTbWFsbFZpZXdwb3J0
VW5pdHMoKTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1heChtaW5pbXVtVmlld3BvcnRTaXpl
LndpZHRoKCksIG1pbmltdW1WaWV3cG9ydFNpemUuaGVpZ2h0KCkpIC8gMTAwLjAgKiB2YWx1ZTsK
KyAgICAgICAgfQorICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1NWTUlOOgorICAgICAgICBpZiAocmVuZGVyVmlldykgeworICAgICAgICAgICAgYXV0byBt
aW5pbXVtVmlld3BvcnRTaXplID0gcmVuZGVyVmlldy0+bWluaW11bVZpZXdwb3J0U2l6ZUZvckNT
U1NtYWxsVmlld3BvcnRVbml0cygpOworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWluKG1pbmlt
dW1WaWV3cG9ydFNpemUud2lkdGgoKSwgbWluaW11bVZpZXdwb3J0U2l6ZS5oZWlnaHQoKSkgLyAx
MDAuMCAqIHZhbHVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfTFZIOgorICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRl
clZpZXctPm1heGltdW1WaWV3cG9ydFNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoKS5oZWln
aHQoKSAvIDEwMC4wICogdmFsdWUgOiAwOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6
CisgICAgICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVuZGVyVmlldy0+bWF4aW11bVZpZXdwb3J0
U2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpLndpZHRoKCkgLyAxMDAuMCAqIHZhbHVlIDog
MDsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6CisgICAgICAgIGlmIChyZW5kZXJW
aWV3KSB7CisgICAgICAgICAgICBhdXRvIGxhcmdlVmlld3BvcnRTaXplID0gcmVuZGVyVmlldy0+
bWF4aW11bVZpZXdwb3J0U2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpOworICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bWF4KGxhcmdlVmlld3BvcnRTaXplLndpZHRoKCksIGxhcmdlVmlld3Bv
cnRTaXplLmhlaWdodCgpKSAvIDEwMC4wICogdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIHZhbHVlOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjoKKyAgICAgICAgaWYg
KHJlbmRlclZpZXcpIHsKKyAgICAgICAgICAgIGF1dG8gbGFyZ2VWaWV3cG9ydFNpemUgPSByZW5k
ZXJWaWV3LT5tYXhpbXVtVmlld3BvcnRTaXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKCk7Cisg
ICAgICAgICAgICByZXR1cm4gc3RkOjptaW4obGFyZ2VWaWV3cG9ydFNpemUud2lkdGgoKSwgbGFy
Z2VWaWV3cG9ydFNpemUuaGVpZ2h0KCkpIC8gMTAwLjAgKiB2YWx1ZTsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gdmFsdWU7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICAg
ICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5jdXJyZW50Vmlld3BvcnRTaXplRm9y
Q1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMoKS5oZWlnaHQoKSAvIDEwMC4wICogdmFsdWUgOiAwOwor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6CisgICAgICAgIHJldHVybiByZW5kZXJWaWV3
ID8gcmVuZGVyVmlldy0+Y3VycmVudFZpZXdwb3J0U2l6ZUZvckNTU0R5bmFtaWNWaWV3cG9ydFVu
aXRzKCkud2lkdGgoKSAvIDEwMC4wICogdmFsdWUgOiAwOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19EVk1BWDoKKyAgICAgICAgaWYgKHJlbmRlclZpZXcpIHsKKyAgICAgICAgICAgIGF1dG8g
Y3VycmVudFZpZXdwb3J0U2l6ZSA9IHJlbmRlclZpZXctPmN1cnJlbnRWaWV3cG9ydFNpemVGb3JD
U1NEeW5hbWljVmlld3BvcnRVbml0cygpOworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWF4KGN1
cnJlbnRWaWV3cG9ydFNpemUud2lkdGgoKSwgY3VycmVudFZpZXdwb3J0U2l6ZS5oZWlnaHQoKSkg
LyAxMDAuMCAqIHZhbHVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46CisgICAgICAgIGlmIChyZW5kZXJWaWV3KSB7Cisg
ICAgICAgICAgICBhdXRvIGN1cnJlbnRWaWV3cG9ydFNpemUgPSByZW5kZXJWaWV3LT5jdXJyZW50
Vmlld3BvcnRTaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMoKTsKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om1pbihjdXJyZW50Vmlld3BvcnRTaXplLndpZHRoKCksIGN1cnJlbnRWaWV3cG9y
dFNpemUuaGVpZ2h0KCkpIC8gMTAwLjAgKiB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1
cm4gdmFsdWU7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgIHJldHVybiAtMS4wOwpAQCAtNzE0LDYgKzc5OCw0MiBAQCBkb3VibGUgQ1NTUHJpbWl0
aXZlVmFsdWU6OmNvbXB1dGVOb25DYWxjTGVuZ3RoRG91YmxlKGNvbnN0IENTU1RvTGVuZ3RoQ29u
dmVyc2lvbgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOgogICAgICAgICByZXR1cm4g
dmFsdWUgKiBjb252ZXJzaW9uRGF0YS52aWV3cG9ydE1pbkZhY3RvcigpOwogCisgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1NWSDoKKyAgICAgICAgcmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRh
dGEuc21hbGxWaWV3cG9ydEhlaWdodEZhY3RvcigpOworCisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1NWVzoKKyAgICAgICAgcmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEuc21hbGxWaWV3
cG9ydFdpZHRoRmFjdG9yKCk7CisKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNQVg6Cisg
ICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLnNtYWxsVmlld3BvcnRNYXhGYWN0
b3IoKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjoKKyAgICAgICAgcmV0dXJu
IHZhbHVlICogY29udmVyc2lvbkRhdGEuc21hbGxWaWV3cG9ydE1pbkZhY3RvcigpOworCisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDoKKyAgICAgICAgcmV0dXJuIHZhbHVlICogY29udmVy
c2lvbkRhdGEubGFyZ2VWaWV3cG9ydEhlaWdodEZhY3RvcigpOworCisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0xWVzoKKyAgICAgICAgcmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEubGFy
Z2VWaWV3cG9ydFdpZHRoRmFjdG9yKCk7CisKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZN
QVg6CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmxhcmdlVmlld3BvcnRN
YXhGYWN0b3IoKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjoKKyAgICAgICAg
cmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEubGFyZ2VWaWV3cG9ydE1pbkZhY3RvcigpOwor
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICAgICAgcmV0dXJuIHZhbHVlICog
Y29udmVyc2lvbkRhdGEuZHluYW1pY1ZpZXdwb3J0SGVpZ2h0RmFjdG9yKCk7CisKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfRFZXOgorICAgICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9u
RGF0YS5keW5hbWljVmlld3BvcnRXaWR0aEZhY3RvcigpOworCisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0RWTUFYOgorICAgICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0YS5keW5h
bWljVmlld3BvcnRNYXhGYWN0b3IoKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1J
TjoKKyAgICAgICAgcmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEuZHluYW1pY1ZpZXdwb3J0
TWluRmFjdG9yKCk7CisKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTEhTOgogICAgICAgICBB
U1NFUlQoY29udmVyc2lvbkRhdGEuc3R5bGUoKSk7CiAgICAgICAgIGlmIChjb252ZXJzaW9uRGF0
YS5jb21wdXRpbmdMaW5lSGVpZ2h0KCkgfHwgY29udmVyc2lvbkRhdGEuY29tcHV0aW5nRm9udFNp
emUoKSkgewpAQCAtOTgxLDYgKzExMDEsMTggQEAgU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjp1
bml0VHlwZVN0cmluZyhDU1NVbml0VHlwZSB1bml0VHlwZSkKICAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1ZIOiByZXR1cm4gInZoIjsKICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1ZNSU46IHJldHVybiAidm1pbiI7CiAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFY
OiByZXR1cm4gInZtYXgiOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOiByZXR1
cm4gInN2dyI7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6IHJldHVybiAic3Zo
IjsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOiByZXR1cm4gInN2bWluIjsK
KyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOiByZXR1cm4gInN2bWF4IjsKKyAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzogcmV0dXJuICJsdnciOworICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOiByZXR1cm4gImx2aCI7CisgICAgICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19MVk1JTjogcmV0dXJuICJsdm1pbiI7CisgICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19MVk1BWDogcmV0dXJuICJsdm1heCI7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19EVlc6IHJldHVybiAiZHZ3IjsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0RWSDogcmV0dXJuICJkdmgiOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46
IHJldHVybiAiZHZtaW4iOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6IHJl
dHVybiAiZHZtYXgiOwogICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBQWDogcmV0dXJu
ICJkcHB4IjsKICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1g6IHJldHVybiAieCI7CiAg
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUEk6IHJldHVybiAiZHBpIjsKQEAgLTExNDMs
NiArMTI3NSwzMCBAQCBBTFdBWVNfSU5MSU5FIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6Zm9y
bWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBmb3JtYXRO
dW1iZXJWYWx1ZSgidm1pbiIpOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgogICAg
ICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoInZtYXgiKTsKKyAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfU1ZXOgorICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoInN2dyIpOwor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAgICAgIHJldHVybiBmb3JtYXROdW1i
ZXJWYWx1ZSgic3ZoIik7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOgorICAgICAg
ICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoInN2bWluIik7CisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX1NWTUFYOgorICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoInN2bWF4Iik7
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzoKKyAgICAgICAgcmV0dXJuIGZvcm1hdE51
bWJlclZhbHVlKCJsdnciKTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOgorICAgICAg
ICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoImx2aCIpOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19MVk1JTjoKKyAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlclZhbHVlKCJsdm1pbiIpOwor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDoKKyAgICAgICAgcmV0dXJuIGZvcm1hdE51
bWJlclZhbHVlKCJsdm1heCIpOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6CisgICAg
ICAgIHJldHVybiBmb3JtYXROdW1iZXJWYWx1ZSgiZHZ3Iik7CisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0RWSDoKKyAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlclZhbHVlKCJkdmgiKTsKKyAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46CisgICAgICAgIHJldHVybiBmb3JtYXROdW1i
ZXJWYWx1ZSgiZHZtaW4iKTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6CisgICAg
ICAgIHJldHVybiBmb3JtYXROdW1iZXJWYWx1ZSgiZHZtYXgiKTsKICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfSURFTlQ6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1VOSUNPREVfUkFOR0U6
CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NBTENfUEVSQ0VOVEFHRV9XSVRIX05VTUJFUjoK
QEAgLTEyMTAsNiArMTM2NiwxOCBAQCBib29sIENTU1ByaW1pdGl2ZVZhbHVlOjplcXVhbHMoY29u
c3QgQ1NTUHJpbWl0aXZlVmFsdWUmIG90aGVyKSBjb25zdAogICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19WSDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjoKICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgorICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlO
OgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfTFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0xWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDoKKyAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19E
Vkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19EVk1BWDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRlI6CiAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1E6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xIUzoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKaW5kZXggOGI4MmI5YmE5NDk2YWEwOTRiZGZl
ZGJhOGRmOTE5Y2UyZWJhN2YzMy4uZTRhMTUyZWM1OGY1ODBlOGUxNWI1OWRlMjVlZThiYjZiYjA4
ZWEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKQEAgLTExNSw2ICsx
MTUsMTggQEAgcHVibGljOgogICAgIGJvb2wgaXNWaWV3cG9ydFBlcmNlbnRhZ2VIZWlnaHQoKSBj
b25zdCB7IHJldHVybiBwcmltaXRpdmVVbml0VHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1NfVkg7
IH0KICAgICBib29sIGlzVmlld3BvcnRQZXJjZW50YWdlTWF4KCkgY29uc3QgeyByZXR1cm4gcHJp
bWl0aXZlVW5pdFR5cGUoKSA9PSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg7IH0KICAgICBib29sIGlz
Vmlld3BvcnRQZXJjZW50YWdlTWluKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVW5pdFR5cGUo
KSA9PSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU47IH0KKyAgICBib29sIGlzU21hbGxWaWV3cG9ydFBl
cmNlbnRhZ2VXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NT
VW5pdFR5cGU6OkNTU19TVlc7IH0KKyAgICBib29sIGlzU21hbGxWaWV3cG9ydFBlcmNlbnRhZ2VI
ZWlnaHQoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVVbml0VHlwZSgpID09IENTU1VuaXRUeXBl
OjpDU1NfU1ZIOyB9CisgICAgYm9vbCBpc1NtYWxsVmlld3BvcnRQZXJjZW50YWdlTWF4KCkgY29u
c3QgeyByZXR1cm4gcHJpbWl0aXZlVW5pdFR5cGUoKSA9PSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFY
OyB9CisgICAgYm9vbCBpc1NtYWxsVmlld3BvcnRQZXJjZW50YWdlTWluKCkgY29uc3QgeyByZXR1
cm4gcHJpbWl0aXZlVW5pdFR5cGUoKSA9PSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOyB9CisgICAg
Ym9vbCBpc0xhcmdlVmlld3BvcnRQZXJjZW50YWdlV2lkdGgoKSBjb25zdCB7IHJldHVybiBwcmlt
aXRpdmVVbml0VHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1NfTFZXOyB9CisgICAgYm9vbCBpc0xh
cmdlVmlld3BvcnRQZXJjZW50YWdlSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVW5p
dFR5cGUoKSA9PSBDU1NVbml0VHlwZTo6Q1NTX0xWSDsgfQorICAgIGJvb2wgaXNMYXJnZVZpZXdw
b3J0UGVyY2VudGFnZU1heCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0g
Q1NTVW5pdFR5cGU6OkNTU19MVk1BWDsgfQorICAgIGJvb2wgaXNMYXJnZVZpZXdwb3J0UGVyY2Vu
dGFnZU1pbigpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5
cGU6OkNTU19MVk1JTjsgfQorICAgIGJvb2wgaXNEeW5hbWljVmlld3BvcnRQZXJjZW50YWdlV2lk
dGgoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVVbml0VHlwZSgpID09IENTU1VuaXRUeXBlOjpD
U1NfRFZXOyB9CisgICAgYm9vbCBpc0R5bmFtaWNWaWV3cG9ydFBlcmNlbnRhZ2VIZWlnaHQoKSBj
b25zdCB7IHJldHVybiBwcmltaXRpdmVVbml0VHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1NfRFZI
OyB9CisgICAgYm9vbCBpc0R5bmFtaWNWaWV3cG9ydFBlcmNlbnRhZ2VNYXgoKSBjb25zdCB7IHJl
dHVybiBwcmltaXRpdmVVbml0VHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1NfRFZNQVg7IH0KKyAg
ICBib29sIGlzRHluYW1pY1ZpZXdwb3J0UGVyY2VudGFnZU1pbigpIGNvbnN0IHsgcmV0dXJuIHBy
aW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjsgfQogICAgIGJvb2wg
aXNWYWx1ZUlEKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVW5pdFR5cGUoKSA9PSBDU1NVbml0
VHlwZTo6Q1NTX1ZBTFVFX0lEOyB9CiAgICAgYm9vbCBpc0ZsZXgoKSBjb25zdCB7IHJldHVybiBw
cmltaXRpdmVUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19GUjsgfQogICAgIGJvb2wgaXNDdXN0
b21JZGVudCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5
cGU6OkN1c3RvbUlkZW50OyB9CkBAIC0zMTgsNyArMzMwLDE5IEBAIGNvbnN0ZXhwciBib29sIENT
U1ByaW1pdGl2ZVZhbHVlOjppc1ZpZXdwb3J0UGVyY2VudGFnZUxlbmd0aChDU1NVbml0VHlwZSB0
eXBlKQogICAgIHJldHVybiB0eXBlID09IENTU1VuaXRUeXBlOjpDU1NfVlcKICAgICAgICAgfHwg
dHlwZSA9PSBDU1NVbml0VHlwZTo6Q1NTX1ZICiAgICAgICAgIHx8IHR5cGUgPT0gQ1NTVW5pdFR5
cGU6OkNTU19WTUlOCi0gICAgICAgIHx8IHR5cGUgPT0gQ1NTVW5pdFR5cGU6OkNTU19WTUFYOwor
ICAgICAgICB8fCB0eXBlID09IENTU1VuaXRUeXBlOjpDU1NfVk1BWAorICAgICAgICB8fCB0eXBl
ID09IENTU1VuaXRUeXBlOjpDU1NfU1ZXCisgICAgICAgIHx8IHR5cGUgPT0gQ1NTVW5pdFR5cGU6
OkNTU19TVkgKKyAgICAgICAgfHwgdHlwZSA9PSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOCisgICAg
ICAgIHx8IHR5cGUgPT0gQ1NTVW5pdFR5cGU6OkNTU19TVk1BWAorICAgICAgICB8fCB0eXBlID09
IENTU1VuaXRUeXBlOjpDU1NfTFZXCisgICAgICAgIHx8IHR5cGUgPT0gQ1NTVW5pdFR5cGU6OkNT
U19MVkgKKyAgICAgICAgfHwgdHlwZSA9PSBDU1NVbml0VHlwZTo6Q1NTX0xWTUlOCisgICAgICAg
IHx8IHR5cGUgPT0gQ1NTVW5pdFR5cGU6OkNTU19MVk1BWAorICAgICAgICB8fCB0eXBlID09IENT
U1VuaXRUeXBlOjpDU1NfRFZXCisgICAgICAgIHx8IHR5cGUgPT0gQ1NTVW5pdFR5cGU6OkNTU19E
VkgKKyAgICAgICAgfHwgdHlwZSA9PSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOCisgICAgICAgIHx8
IHR5cGUgPT0gQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUg
VD4gaW5saW5lIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0
ZShUJiYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9MZW5ndGhDb252ZXJz
aW9uRGF0YS5jcHAKaW5kZXggMzE5ODBlNjJjOTVlYjc5MGI1MDcyNjg3ZGZlNTczMTYzOTkzNmI2
OC4uM2UxOTY0ZGQ1NjFmYjFhYmM2MDBjZjBmMzhkMmUyMGIzZDEzOTRiNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmNwcApAQCAtODksNCAr
ODksMTQyIEBAIGRvdWJsZSBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjp2aWV3cG9ydE1heEZh
Y3RvcigpIGNvbnN0CiAgICAgcmV0dXJuIHN0ZDo6bWF4KHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdw
b3J0VW5pdHMud2lkdGgoKSwgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cy5oZWlnaHQo
KSkgLyAxMDAuMDsKIH0KIAorZG91YmxlIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OnNtYWxs
Vmlld3BvcnRXaWR0aEZhY3RvcigpIGNvbnN0Cit7CisgICAgaWYgKG1fdmlld3BvcnREZXBlbmRl
bmN5RGV0ZWN0aW9uU3R5bGUpCisgICAgICAgIG1fdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9u
U3R5bGUtPnNldEhhc1ZpZXdwb3J0VW5pdHMoKTsKKworICAgIGlmICghbV9yZW5kZXJWaWV3KQor
ICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBtX3JlbmRlclZpZXctPm1pbmltdW1WaWV3
cG9ydFNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoKS53aWR0aCgpIC8gMTAwLjA7Cit9CisK
K2RvdWJsZSBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpzbWFsbFZpZXdwb3J0SGVpZ2h0RmFj
dG9yKCkgY29uc3QKK3sKKyAgICBpZiAobV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHls
ZSkKKyAgICAgICAgbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZS0+c2V0SGFzVmll
d3BvcnRVbml0cygpOworCisgICAgaWYgKCFtX3JlbmRlclZpZXcpCisgICAgICAgIHJldHVybiAw
OworCisgICAgcmV0dXJuIG1fcmVuZGVyVmlldy0+bWluaW11bVZpZXdwb3J0U2l6ZUZvckNTU1Nt
YWxsVmlld3BvcnRVbml0cygpLmhlaWdodCgpIC8gMTAwLjA7Cit9CisKK2RvdWJsZSBDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhOjpzbWFsbFZpZXdwb3J0TWluRmFjdG9yKCkgY29uc3QKK3sKKyAg
ICBpZiAobV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZSkKKyAgICAgICAgbV92aWV3
cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZS0+c2V0SGFzVmlld3BvcnRVbml0cygpOworCisg
ICAgaWYgKCFtX3JlbmRlclZpZXcpCisgICAgICAgIHJldHVybiAwOworCisgICAgYXV0byBtaW5p
bXVtVmlld3BvcnRTaXplID0gbV9yZW5kZXJWaWV3LT5taW5pbXVtVmlld3BvcnRTaXplRm9yQ1NT
U21hbGxWaWV3cG9ydFVuaXRzKCk7CisgICAgcmV0dXJuIHN0ZDo6bWluKG1pbmltdW1WaWV3cG9y
dFNpemUud2lkdGgoKSwgbWluaW11bVZpZXdwb3J0U2l6ZS5oZWlnaHQoKSkgLyAxMDAuMDsKK30K
KworZG91YmxlIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OnNtYWxsVmlld3BvcnRNYXhGYWN0
b3IoKSBjb25zdAoreworICAgIGlmIChtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxl
KQorICAgICAgICBtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlLT5zZXRIYXNWaWV3
cG9ydFVuaXRzKCk7CisKKyAgICBpZiAoIW1fcmVuZGVyVmlldykKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICBhdXRvIG1pbmltdW1WaWV3cG9ydFNpemUgPSBtX3JlbmRlclZpZXctPm1pbmltdW1W
aWV3cG9ydFNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoKTsKKyAgICByZXR1cm4gc3RkOjpt
YXgobWluaW11bVZpZXdwb3J0U2l6ZS53aWR0aCgpLCBtaW5pbXVtVmlld3BvcnRTaXplLmhlaWdo
dCgpKSAvIDEwMC4wOworfQorCitkb3VibGUgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6bGFy
Z2VWaWV3cG9ydFdpZHRoRmFjdG9yKCkgY29uc3QKK3sKKyAgICBpZiAobV92aWV3cG9ydERlcGVu
ZGVuY3lEZXRlY3Rpb25TdHlsZSkKKyAgICAgICAgbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rp
b25TdHlsZS0+c2V0SGFzVmlld3BvcnRVbml0cygpOworCisgICAgaWYgKCFtX3JlbmRlclZpZXcp
CisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1fcmVuZGVyVmlldy0+bWF4aW11bVZp
ZXdwb3J0U2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpLndpZHRoKCkgLyAxMDAuMDsKK30K
KworZG91YmxlIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OmxhcmdlVmlld3BvcnRIZWlnaHRG
YWN0b3IoKSBjb25zdAoreworICAgIGlmIChtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0
eWxlKQorICAgICAgICBtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlLT5zZXRIYXNW
aWV3cG9ydFVuaXRzKCk7CisKKyAgICBpZiAoIW1fcmVuZGVyVmlldykKKyAgICAgICAgcmV0dXJu
IDA7CisKKyAgICByZXR1cm4gbV9yZW5kZXJWaWV3LT5tYXhpbXVtVmlld3BvcnRTaXplRm9yQ1NT
TGFyZ2VWaWV3cG9ydFVuaXRzKCkuaGVpZ2h0KCkgLyAxMDAuMDsKK30KKworZG91YmxlIENTU1Rv
TGVuZ3RoQ29udmVyc2lvbkRhdGE6OmxhcmdlVmlld3BvcnRNaW5GYWN0b3IoKSBjb25zdAorewor
ICAgIGlmIChtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlKQorICAgICAgICBtX3Zp
ZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlLT5zZXRIYXNWaWV3cG9ydFVuaXRzKCk7CisK
KyAgICBpZiAoIW1fcmVuZGVyVmlldykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBhdXRvIG1h
eGltdW1WaWV3cG9ydFNpemUgPSBtX3JlbmRlclZpZXctPm1heGltdW1WaWV3cG9ydFNpemVGb3JD
U1NMYXJnZVZpZXdwb3J0VW5pdHMoKTsKKyAgICByZXR1cm4gc3RkOjptaW4obWF4aW11bVZpZXdw
b3J0U2l6ZS53aWR0aCgpLCBtYXhpbXVtVmlld3BvcnRTaXplLmhlaWdodCgpKSAvIDEwMC4wOwor
fQorCitkb3VibGUgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6bGFyZ2VWaWV3cG9ydE1heEZh
Y3RvcigpIGNvbnN0Cit7CisgICAgaWYgKG1fdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5
bGUpCisgICAgICAgIG1fdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUtPnNldEhhc1Zp
ZXdwb3J0VW5pdHMoKTsKKworICAgIGlmICghbV9yZW5kZXJWaWV3KQorICAgICAgICByZXR1cm4g
MDsKKworICAgIGF1dG8gbWF4aW11bVZpZXdwb3J0U2l6ZSA9IG1fcmVuZGVyVmlldy0+bWF4aW11
bVZpZXdwb3J0U2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpOworICAgIHJldHVybiBzdGQ6
Om1heChtYXhpbXVtVmlld3BvcnRTaXplLndpZHRoKCksIG1heGltdW1WaWV3cG9ydFNpemUuaGVp
Z2h0KCkpIC8gMTAwLjA7Cit9CisKK2RvdWJsZSBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpk
eW5hbWljVmlld3BvcnRXaWR0aEZhY3RvcigpIGNvbnN0Cit7CisgICAgaWYgKG1fdmlld3BvcnRE
ZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUpCisgICAgICAgIG1fdmlld3BvcnREZXBlbmRlbmN5RGV0
ZWN0aW9uU3R5bGUtPnNldEhhc1ZpZXdwb3J0VW5pdHMoKTsKKworICAgIGlmICghbV9yZW5kZXJW
aWV3KQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBtX3JlbmRlclZpZXctPmN1cnJl
bnRWaWV3cG9ydFNpemVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cygpLndpZHRoKCkgLyAxMDAu
MDsKK30KKworZG91YmxlIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OmR5bmFtaWNWaWV3cG9y
dEhlaWdodEZhY3RvcigpIGNvbnN0Cit7CisgICAgaWYgKG1fdmlld3BvcnREZXBlbmRlbmN5RGV0
ZWN0aW9uU3R5bGUpCisgICAgICAgIG1fdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUt
PnNldEhhc1ZpZXdwb3J0VW5pdHMoKTsKKworICAgIGlmICghbV9yZW5kZXJWaWV3KQorICAgICAg
ICByZXR1cm4gMDsKKworICAgIHJldHVybiBtX3JlbmRlclZpZXctPmN1cnJlbnRWaWV3cG9ydFNp
emVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cygpLmhlaWdodCgpIC8gMTAwLjA7Cit9CisKK2Rv
dWJsZSBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpkeW5hbWljVmlld3BvcnRNaW5GYWN0b3Io
KSBjb25zdAoreworICAgIGlmIChtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlKQor
ICAgICAgICBtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlLT5zZXRIYXNWaWV3cG9y
dFVuaXRzKCk7CisKKyAgICBpZiAoIW1fcmVuZGVyVmlldykKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICBhdXRvIGN1cnJlbnRWaWV3cG9ydFNpemUgPSBtX3JlbmRlclZpZXctPmN1cnJlbnRWaWV3
cG9ydFNpemVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cygpOworICAgIHJldHVybiBzdGQ6Om1p
bihjdXJyZW50Vmlld3BvcnRTaXplLndpZHRoKCksIGN1cnJlbnRWaWV3cG9ydFNpemUuaGVpZ2h0
KCkpIC8gMTAwLjA7Cit9CisKK2RvdWJsZSBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpkeW5h
bWljVmlld3BvcnRNYXhGYWN0b3IoKSBjb25zdAoreworICAgIGlmIChtX3ZpZXdwb3J0RGVwZW5k
ZW5jeURldGVjdGlvblN0eWxlKQorICAgICAgICBtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlv
blN0eWxlLT5zZXRIYXNWaWV3cG9ydFVuaXRzKCk7CisKKyAgICBpZiAoIW1fcmVuZGVyVmlldykK
KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBhdXRvIGN1cnJlbnRWaWV3cG9ydFNpemUgPSBtX3Jl
bmRlclZpZXctPmN1cnJlbnRWaWV3cG9ydFNpemVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cygp
OworICAgIHJldHVybiBzdGQ6Om1heChjdXJyZW50Vmlld3BvcnRTaXplLndpZHRoKCksIGN1cnJl
bnRWaWV3cG9ydFNpemUuaGVpZ2h0KCkpIC8gMTAwLjA7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5o
CmluZGV4IDk1Mzc3OWY4ZDU1NWYwYmM5ODE5Mjc3NWU3MzdjNTViMTUwNjAwZWUuLmIyMGIxYWM4
OWNjNDczZTA4NWYxNzA5OWE5ZWFiNGMxNTBjZThkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaApAQCAtNzgsNiArNzgsMTggQEAgcHVibGlj
OgogICAgIGRvdWJsZSB2aWV3cG9ydEhlaWdodEZhY3RvcigpIGNvbnN0OwogICAgIGRvdWJsZSB2
aWV3cG9ydE1pbkZhY3RvcigpIGNvbnN0OwogICAgIGRvdWJsZSB2aWV3cG9ydE1heEZhY3Rvcigp
IGNvbnN0OworICAgIGRvdWJsZSBzbWFsbFZpZXdwb3J0V2lkdGhGYWN0b3IoKSBjb25zdDsKKyAg
ICBkb3VibGUgc21hbGxWaWV3cG9ydEhlaWdodEZhY3RvcigpIGNvbnN0OworICAgIGRvdWJsZSBz
bWFsbFZpZXdwb3J0TWluRmFjdG9yKCkgY29uc3Q7CisgICAgZG91YmxlIHNtYWxsVmlld3BvcnRN
YXhGYWN0b3IoKSBjb25zdDsKKyAgICBkb3VibGUgbGFyZ2VWaWV3cG9ydFdpZHRoRmFjdG9yKCkg
Y29uc3Q7CisgICAgZG91YmxlIGxhcmdlVmlld3BvcnRIZWlnaHRGYWN0b3IoKSBjb25zdDsKKyAg
ICBkb3VibGUgbGFyZ2VWaWV3cG9ydE1pbkZhY3RvcigpIGNvbnN0OworICAgIGRvdWJsZSBsYXJn
ZVZpZXdwb3J0TWF4RmFjdG9yKCkgY29uc3Q7CisgICAgZG91YmxlIGR5bmFtaWNWaWV3cG9ydFdp
ZHRoRmFjdG9yKCkgY29uc3Q7CisgICAgZG91YmxlIGR5bmFtaWNWaWV3cG9ydEhlaWdodEZhY3Rv
cigpIGNvbnN0OworICAgIGRvdWJsZSBkeW5hbWljVmlld3BvcnRNaW5GYWN0b3IoKSBjb25zdDsK
KyAgICBkb3VibGUgZHluYW1pY1ZpZXdwb3J0TWF4RmFjdG9yKCkgY29uc3Q7CiAKICAgICBDU1NU
b0xlbmd0aENvbnZlcnNpb25EYXRhIGNvcHlXaXRoQWRqdXN0ZWRab29tKGZsb2F0IG5ld1pvb20p
IGNvbnN0CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1VuaXRzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbml0cy5jcHAKaW5kZXggNGY0NjhiM2YzYjU3MTI2
YzE1NGMxMzY4Njg1ZDE4MTliNzkxZDIzZS4uMjRjYjY2M2UyYzVlMzMxZTViMmRlYmZkNTJkYTQ1
ZjMyNGI5MTM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1VuaXRzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5pdHMuY3BwCkBAIC0xMzgsNiArMTM4LDE4IEBA
IFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIENTU1VuaXRUeXBlIHVuaXRU
eXBlKQogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSDogdHMgPDwgInZoIjsgYnJlYWs7CiAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46IHRzIDw8ICJ2bWluIjsgYnJlYWs7CiAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg6IHRzIDw8ICJ2bWF4IjsgYnJlYWs7CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1NWVzogdHMgPDwgInN2dyI7IGJyZWFrOworICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19TVkg6IHRzIDw8ICJzdmgiOyBicmVhazsKKyAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfU1ZNSU46IHRzIDw8ICJzdm1pbiI7IGJyZWFrOworICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19TVk1BWDogdHMgPDwgInN2bWF4IjsgYnJlYWs7CisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0xWVzogdHMgPDwgImx2dyI7IGJyZWFrOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19MVkg6IHRzIDw8ICJsdmgiOyBicmVhazsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZN
SU46IHRzIDw8ICJsdm1pbiI7IGJyZWFrOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1B
WDogdHMgPDwgImx2bWF4IjsgYnJlYWs7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzog
dHMgPDwgImR2dyI7IGJyZWFrOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6IHRzIDw8
ICJkdmgiOyBicmVhazsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46IHRzIDw8ICJk
dm1pbiI7IGJyZWFrOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDogdHMgPDwgImR2
bWF4IjsgYnJlYWs7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQUFg6IHRzIDw8ICJkcHB4
IjsgYnJlYWs7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1g6IHRzIDw8ICJ4IjsgYnJlYWs7
CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQSTogdHMgPDwgImRwaSI7IGJyZWFrOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1VuaXRzLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVW5pdHMuaAppbmRleCA5NzI1NWE5ZWMzNzgyNWM4YjdlNDQ4OTVjZjY1ODM1ZDliOGQy
Y2ZhLi5iMGY3YzJkMmY2ZWFiY2M3M2Y0Y2MzMjJhNWJlYWY1ODJmOGMwMDY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5pdHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVW5pdHMuaApAQCAtNTksNiArNTksMTggQEAgZW51bSBjbGFzcyBDU1NVbml0VHlwZSA6IHVp
bnQ4X3QgewogICAgIENTU19WSCwKICAgICBDU1NfVk1JTiwKICAgICBDU1NfVk1BWCwKKyAgICBD
U1NfU1ZXLAorICAgIENTU19TVkgsCisgICAgQ1NTX1NWTUlOLAorICAgIENTU19TVk1BWCwKKyAg
ICBDU1NfTFZXLAorICAgIENTU19MVkgsCisgICAgQ1NTX0xWTUlOLAorICAgIENTU19MVk1BWCwK
KyAgICBDU1NfRFZXLAorICAgIENTU19EVkgsCisgICAgQ1NTX0RWTUlOLAorICAgIENTU19EVk1B
WCwKICAgICBDU1NfRFBQWCwKICAgICBDU1NfWCwKICAgICBDU1NfRFBJLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHAKaW5kZXgg
YmJkMDE0OTkxNzk4NDczODg3Y2Y0ODI4OWM1NDZiNjI1M2QzODNhNS4uN2RiNWNiYTA2NWE5MzVh
NTQ5OTEyZDU0YmI1OWIxZWU4ZmEwMzExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuY3BwCkBAIC05MywxMCArOTMsOSBAQCB1
bnNpZ25lZCBzaG9ydCBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6cHJpbWl0aXZlVHlw
ZSgpIGNvbnN0CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46ICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBDU1NfVk1JTjsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVlc6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU19WVzsKICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfWDogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDM3OwotICAg
IH0KIAotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBDU1NfVU5LTk9XTjsK
KyAgICBkZWZhdWx0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIENTU19VTktOT1dOOworICAgIH0KIH0KIAogRXhjZXB0aW9uT3I8ZmxvYXQ+IERlcHJl
Y2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpnZXRGbG9hdFZhbHVlKHVuc2lnbmVkIHNob3J0IHVu
aXRUeXBlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2Fs
Y0NhdGVnb3J5TWFwcGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjQ2F0
ZWdvcnlNYXBwaW5nLmNwcAppbmRleCAyZDBhMWMyMDAxZjEyZmUyMTY4YjRjN2JkODI4NzhlYjEw
ZjcxOGNkLi45ZWYxZDQ1NjkyMDJlZTU5MzUyM2MwZGEyYzgyNzI3MTAyZjc2MDBjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjQ2F0ZWdvcnlNYXBwaW5nLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjQ2F0ZWdvcnlNYXBwaW5nLmNwcApA
QCAtNTQsNiArNTQsMTggQEAgQ2FsY3VsYXRpb25DYXRlZ29yeSBjYWxjVW5pdENhdGVnb3J5KENT
U1VuaXRUeXBlIHR5cGUpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOgogICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19WTUlOOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1NWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU46CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1NWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19EVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOgogICAg
ICAgICByZXR1cm4gQ2FsY3VsYXRpb25DYXRlZ29yeTo6TGVuZ3RoOwogICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19QRVJDRU5UQUdFOgogICAgICAgICByZXR1cm4gQ2FsY3VsYXRpb25DYXRlZ29y
eTo6UGVyY2VudDsKQEAgLTExMCw2ICsxMjIsMTggQEAgQ2FsY3VsYXRpb25DYXRlZ29yeSBjYWxj
dWxhdGlvbkNhdGVnb3J5Rm9yQ29tYmluYXRpb24oQ1NTVW5pdFR5cGUgdHlwZSkKICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfVkg6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46CiAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1NWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOgorICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19TVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNQVg6CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOgor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfTFZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjoKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJu
IENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok90aGVyOwogICAgIH0KQEAgLTE2Miw2ICsxODYsMTggQEAg
Ym9vbCBoYXNEb3VibGVWYWx1ZShDU1NVbml0VHlwZSB0eXBlKQogICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19WSDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjoKICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgorICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NW
TUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDoKKyAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfTFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0xWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDoK
KyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19EVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOgorICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19EVk1BWDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBQWDoKICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfWDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBJOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcAppbmRleCA5YmRj
MTNhZGJkNTAwNzlhZDg0MDc4MGIyMDcwNjFkNDM3OTY3NDczLi5kZTU1ZDM0Yzk3Mjg0MTJjNmZj
MzUyYjEyMjk1NTM0NjY4MTA3NzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1BhcnNlclRva2VuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlclRva2VuLmNwcApAQCAtMTM0LDggKzEzNCwyNiBAQCBDU1NVbml0VHlwZSBjc3NQcmlt
aXRpdmVWYWx1ZVVuaXRGcm9tVHJpZShjb25zdCBDaGFyYWN0ZXJUeXBlKiBkYXRhLCB1bnNpZ25l
ZCBsZQogICAgICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVsyXSkgPT0gJ2knKQog
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19EUEk7CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICd2JzoKKyAgICAgICAgICAgICAgICBz
d2l0Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzJdKSkgeworICAgICAgICAgICAgICAgIGNhc2UgJ2gn
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19EVkg7CisgICAg
ICAgICAgICAgICAgY2FzZSAndyc6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0
VHlwZTo6Q1NTX0RWVzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICB9Ci0gICAgICAgIGJyZWFrOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgJ2wnOgorICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzFdKSA9PSAn
dicpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzJdKSkgewor
ICAgICAgICAgICAgICAgIGNhc2UgJ2gnOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NT
VW5pdFR5cGU6OkNTU19MVkg7CisgICAgICAgICAgICAgICAgY2FzZSAndyc6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0xWVzsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSAnayc6CiAg
ICAgICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbMV0pID09ICdoJyAmJiB0b0FTQ0lJTG93
ZXIoZGF0YVsyXSkgPT0gJ3onKQogICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6
Q1NTX0tIWjsKQEAgLTE1NSw5ICsxNzMsMTkgQEAgQ1NTVW5pdFR5cGUgY3NzUHJpbWl0aXZlVmFs
dWVVbml0RnJvbVRyaWUoY29uc3QgQ2hhcmFjdGVyVHlwZSogZGF0YSwgdW5zaWduZWQgbGUKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfUkxIUzsKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlICdzJzoKKyAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVsxXSkgPT0gJ3Yn
KSB7CisgICAgICAgICAgICAgICAgc3dpdGNoICh0b0FTQ0lJTG93ZXIoZGF0YVsyXSkpIHsKKyAg
ICAgICAgICAgICAgICBjYXNlICdoJzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1Vu
aXRUeXBlOjpDU1NfU1ZIOworICAgICAgICAgICAgICAgIGNhc2UgJ3cnOgorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19TVlc7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgICAgYnJl
YWs7Ci0gICAgfQotICAgIGJyZWFrOwogICAgIGNhc2UgNDoKICAgICAgICAgc3dpdGNoICh0b0FT
Q0lJTG93ZXIoZGF0YVswXSkpIHsKICAgICAgICAgY2FzZSAnZCc6CkBAIC0xNzMsOSArMjAxLDkg
QEAgQ1NTVW5pdFR5cGUgY3NzUHJpbWl0aXZlVmFsdWVVbml0RnJvbVRyaWUoY29uc3QgQ2hhcmFj
dGVyVHlwZSogZGF0YSwgdW5zaWduZWQgbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBDU1NVbml0VHlwZTo6Q1NTX0RQUFg7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
ICdnJzoKICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVsxXSkgPT0gJ3InICYmIHRv
QVNDSUlMb3dlcihkYXRhWzJdKSA9PSAnYScgJiYgdG9BU0NJSUxvd2VyKGRhdGFbM10pID09ICdk
JykKICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19HUkFEOwpAQCAtMjA4
LDYgKzIzNiw0OCBAQCBDU1NVbml0VHlwZSBjc3NQcmltaXRpdmVWYWx1ZVVuaXRGcm9tVHJpZShj
b25zdCBDaGFyYWN0ZXJUeXBlKiBkYXRhLCB1bnNpZ25lZCBsZQogICAgICAgICAgICAgaWYgKHRv
QVNDSUlMb3dlcihkYXRhWzFdKSA9PSAnXycgJiYgdG9BU0NJSUxvd2VyKGRhdGFbMl0pID09ICdx
JyAmJiB0b0FTQ0lJTG93ZXIoZGF0YVszXSkgPT0gJ2UnICYmIHRvQVNDSUlMb3dlcihkYXRhWzRd
KSA9PSAnbScpCiAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfUVVJUktZ
X0VNUzsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICdkJzoKKyAgICAgICAgICAg
IGlmICh0b0FTQ0lJTG93ZXIoZGF0YVsxXSkgPT0gJ3YnICYmIHRvQVNDSUlMb3dlcihkYXRhWzJd
KSA9PSAnbScpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzNd
KSkgeworICAgICAgICAgICAgICAgIGNhc2UgJ2EnOgorICAgICAgICAgICAgICAgICAgICBpZiAo
dG9BU0NJSUxvd2VyKGRhdGFbNF0pID09ICd4JykKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOworICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICBjYXNlICdpJzoKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRvQVND
SUlMb3dlcihkYXRhWzRdKSA9PSAnbicpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Q1NTVW5pdFR5cGU6OkNTU19EVk1JTjsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgJ2wnOgorICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzFdKSA9PSAndicg
JiYgdG9BU0NJSUxvd2VyKGRhdGFbMl0pID09ICdtJykgeworICAgICAgICAgICAgICAgIHN3aXRj
aCAodG9BU0NJSUxvd2VyKGRhdGFbM10pKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnYSc6Cisg
ICAgICAgICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVs0XSkgPT0gJ3gnKQorICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfTFZNQVg7CisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ2knOgorICAgICAg
ICAgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbNF0pID09ICduJykKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0xWTUlOOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAncyc6CisgICAgICAgICAgICBpZiAodG9BU0NJ
SUxvd2VyKGRhdGFbMV0pID09ICd2JyAmJiB0b0FTQ0lJTG93ZXIoZGF0YVsyXSkgPT0gJ20nKSB7
CisgICAgICAgICAgICAgICAgc3dpdGNoICh0b0FTQ0lJTG93ZXIoZGF0YVszXSkpIHsKKyAgICAg
ICAgICAgICAgICBjYXNlICdhJzoKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dl
cihkYXRhWzRdKSA9PSAneCcpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5p
dFR5cGU6OkNTU19TVk1BWDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgY2FzZSAnaSc6CisgICAgICAgICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0
YVs0XSkgPT0gJ24nKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBl
OjpDU1NfU1ZNSU47CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAg
IGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAppbmRleCAwMWNjMmQzZDBmMzI3OGM2MzNiOGJiYTk0
YWYyMDRhNTE5MWJmZWM3Li5kY2I0ZDQ1ZDdlN2U3YjRjNjQ1NDE0NzY3NzU3ZjI0MjlkMjllNmMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2Vy
SGVscGVycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBh
cnNlckhlbHBlcnMuY3BwCkBAIC00OTIsNiArNDkyLDE4IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PExlbmd0aFJhdz4gY29uc3VtZUxlbmd0aFJhd1dpdGhLbm93blRva2VuVHlwZURpbWVuc2lvbihD
U1NQCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19WTUlOOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgorICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19TVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDoKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NW
TUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0xWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46CisgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0xWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
RFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOgogICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19ROgogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCmluZGV4IDE4NzdkY2YxMTZmYWIzNjgxZDZiY2Q2OTk5NzQ1MDBhNGExZDk2
ZDAuLmExYzFhZTM0YjU3M2Y2NTJiOTUyYzk5MjNiY2ZlYjUzMzFlN2I3MDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKQEAgLTI4NjAsNiArMjg2MCw5IEBAIHZvaWQgRnJhbWVWaWV3Ojp1
bm9ic2N1cmVkQ29udGVudFNpemVDaGFuZ2VkKCkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIHVwZGF0ZVRpbGVkQmFja2luZ0FkYXB0aXZlU2l6aW5nKCk7CiAjZW5kaWYKKworICAgIGlm
IChhdXRvKiBkb2N1bWVudCA9IGZyYW1lKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgZG9jdW1lbnQt
PnN0eWxlU2NvcGUoKS5kaWRDaGFuZ2VTdHlsZVNoZWV0RW52aXJvbm1lbnQoKTsKIH0KIAogdm9p
ZCBGcmFtZVZpZXc6OmxvYWRQcm9ncmVzc2luZ1N0YXR1c0NoYW5nZWQoKQpAQCAtNTU2OCw2ICs1
NTcxLDQzIEBAIEludFNpemUgRnJhbWVWaWV3Ojp2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVu
aXRzKCkgY29uc3QKICAgICByZXR1cm4geyAqdmlld3BvcnRTaXplLndpZHRoLCAqdmlld3BvcnRT
aXplLmhlaWdodCB9OwogfQogCit2b2lkIEZyYW1lVmlldzo6c2V0TWluaW11bVZpZXdwb3J0U2l6
ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cyhJbnRTaXplIHNpemUpCit7CisgICAgaWYgKG1fb3Zl
cnJpZGVNaW5pbXVtVmlld3BvcnRTaXplID09IHNpemUpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fb3ZlcnJpZGVNaW5pbXVtVmlld3BvcnRTaXplID0gc2l6ZTsKKworICAgIGlmIChhdXRvKiBk
b2N1bWVudCA9IGZyYW1lKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgZG9jdW1lbnQtPnN0eWxlU2Nv
cGUoKS5kaWRDaGFuZ2VTdHlsZVNoZWV0RW52aXJvbm1lbnQoKTsKK30KKwordm9pZCBGcmFtZVZp
ZXc6OmNsZWFyTWluaW11bVZpZXdwb3J0U2l6ZU92ZXJyaWRlRm9yQ1NTU21hbGxWaWV3cG9ydFVu
aXRzKCkKK3sKKyAgICBpZiAoIW1fb3ZlcnJpZGVNaW5pbXVtVmlld3BvcnRTaXplKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX292ZXJyaWRlTWluaW11bVZpZXdwb3J0U2l6ZSA9IHN0ZDo6bnVs
bG9wdDsKKworICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGZyYW1lKCkuZG9jdW1lbnQoKSkKKyAg
ICAgICAgZG9jdW1lbnQtPnN0eWxlU2NvcGUoKS5kaWRDaGFuZ2VTdHlsZVNoZWV0RW52aXJvbm1l
bnQoKTsKK30KKworSW50U2l6ZSBGcmFtZVZpZXc6Om1pbmltdW1WaWV3cG9ydFNpemVGb3JDU1NT
bWFsbFZpZXdwb3J0VW5pdHMoKSBjb25zdAoreworICAgIHJldHVybiBtX292ZXJyaWRlTWluaW11
bVZpZXdwb3J0U2l6ZS52YWx1ZV9vcih2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkp
OworfQorCitJbnRTaXplIEZyYW1lVmlldzo6bWF4aW11bVZpZXdwb3J0U2l6ZUZvckNTU0xhcmdl
Vmlld3BvcnRVbml0cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHZpZXdwb3J0U2l6ZUZvckNTU1Zp
ZXdwb3J0VW5pdHMoKTsKK30KKworSW50U2l6ZSBGcmFtZVZpZXc6OmN1cnJlbnRWaWV3cG9ydFNp
emVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHZpc2li
bGVDb250ZW50UmVjdEluY2x1ZGluZ1Njcm9sbGJhcnMoKS5zaXplKCk7Cit9CisKIGJvb2wgRnJh
bWVWaWV3OjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKIHsKICAg
ICByZXR1cm4gcmVuZGVyVmlldygpICYmIHJlbmRlclZpZXcoKS0+c2hvdWxkUGxhY2VWZXJ0aWNh
bFNjcm9sbGJhck9uTGVmdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggZDlkNDhhZjVm
N2QxNDk3N2YzYTUwZGU1NjU5OTNlZGUzZDUyYTMxOC4uYmEwNTI2NGM3MWViZmQxODBlMjhmZjA2
MWM5ZWVhMzhjZGZiMGRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC0yMzIsNiArMjMy
LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyVmlld3BvcnRTaXplT3ZlcnJpZGVGb3JDU1NW
aWV3cG9ydFVuaXRzKCk7CiAgICAgSW50U2l6ZSB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVu
aXRzKCkgY29uc3Q7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1pbmltdW1WaWV3cG9y
dFNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoSW50U2l6ZSk7CisgICAgdm9pZCBjbGVhck1p
bmltdW1WaWV3cG9ydFNpemVPdmVycmlkZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpOworICAg
IEludFNpemUgbWluaW11bVZpZXdwb3J0U2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpIGNv
bnN0OworCisgICAgSW50U2l6ZSBtYXhpbXVtVmlld3BvcnRTaXplRm9yQ1NTTGFyZ2VWaWV3cG9y
dFVuaXRzKCkgY29uc3Q7CisgICAgSW50U2l6ZSBjdXJyZW50Vmlld3BvcnRTaXplRm9yQ1NTRHlu
YW1pY1ZpZXdwb3J0VW5pdHMoKSBjb25zdDsKKwogICAgIEludFJlY3Qgd2luZG93Q2xpcFJlY3Qo
KSBjb25zdCBmaW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCBJbnRSZWN0IHdpbmRvd0NsaXBSZWN0
Rm9yRnJhbWVPd25lcihjb25zdCBIVE1MRnJhbWVPd25lckVsZW1lbnQqLCBib29sIGNsaXBUb0xh
eWVyQ29udGVudHMpIGNvbnN0OwogCkBAIC05MjAsNiArOTI3LDcgQEAgcHJpdmF0ZToKICNlbmRp
ZgogCiAgICAgc3RkOjpvcHRpb25hbDxPdmVycmlkZVZpZXdwb3J0U2l6ZT4gbV9vdmVycmlkZVZp
ZXdwb3J0U2l6ZTsKKyAgICBzdGQ6Om9wdGlvbmFsPEludFNpemU+IG1fb3ZlcnJpZGVNaW5pbXVt
Vmlld3BvcnRTaXplOwogCiAgICAgLy8gVGhlIHZpZXcgc2l6ZSB3aGVuIGF1dG9zaXppbmcuCiAg
ICAgSW50U2l6ZSBtX2F1dG9TaXplQ29uc3RyYWludDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmNwcAppbmRleCA4YTA0ZWQ5MDBlNjRiZGJmYmJmZmNlYjcyMzgwMzA2ZjBkYTc5
Y2UwLi41ODY1N2ZjNGVhYmU1MjRmNjQ4ZjY5NzAzNGRmMTkyNjY0NDZkMmE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC03MDIsNiArNzAyLDIxIEBAIEludFNp
emUgUmVuZGVyVmlldzo6dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpIGNvbnN0CiAg
ICAgcmV0dXJuIGZyYW1lVmlldygpLnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKTsK
IH0KIAorSW50U2l6ZSBSZW5kZXJWaWV3OjptaW5pbXVtVmlld3BvcnRTaXplRm9yQ1NTU21hbGxW
aWV3cG9ydFVuaXRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnJhbWVWaWV3KCkubWluaW11bVZp
ZXdwb3J0U2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpOworfQorCitJbnRTaXplIFJlbmRl
clZpZXc6Om1heGltdW1WaWV3cG9ydFNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoKSBjb25z
dAoreworICAgIHJldHVybiBmcmFtZVZpZXcoKS5tYXhpbXVtVmlld3BvcnRTaXplRm9yQ1NTTGFy
Z2VWaWV3cG9ydFVuaXRzKCk7Cit9CisKK0ludFNpemUgUmVuZGVyVmlldzo6Y3VycmVudFZpZXdw
b3J0U2l6ZUZvckNTU0R5bmFtaWNWaWV3cG9ydFVuaXRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
ZnJhbWVWaWV3KCkuY3VycmVudFZpZXdwb3J0U2l6ZUZvckNTU0R5bmFtaWNWaWV3cG9ydFVuaXRz
KCk7Cit9CisKIE5vZGUqIFJlbmRlclZpZXc6Om5vZGVGb3JIaXRUZXN0KCkgY29uc3QKIHsKICAg
ICByZXR1cm4gZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5oCmluZGV4IDQ4ZTM2NzkzMDM1NmUzNDhhOWZiYjIxZDNkNTcwMjRlMTUz
NDM1YTYuLjRjZTcyYjQxZDE0ZmQ4ODU2YjFjZDA2NmQ2MWFhZWQ4MzBjMzBmOTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaApAQCAtMTQ0LDYgKzE0NCw5IEBAIHB1YmxpYzoK
ICAgICBib29sIHNob3VsZFBhaW50QmFzZUJhY2tncm91bmQoKSBjb25zdDsKIAogICAgIEludFNp
emUgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpIGNvbnN0OworICAgIEludFNpemUg
bWluaW11bVZpZXdwb3J0U2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpIGNvbnN0OworICAg
IEludFNpemUgbWF4aW11bVZpZXdwb3J0U2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpIGNv
bnN0OworICAgIEludFNpemUgY3VycmVudFZpZXdwb3J0U2l6ZUZvckNTU0R5bmFtaWNWaWV3cG9y
dFVuaXRzKCkgY29uc3Q7CiAKICAgICBib29sIGhhc1F1b3Rlc05lZWRpbmdVcGRhdGUoKSBjb25z
dCB7IHJldHVybiBtX2hhc1F1b3Rlc05lZWRpbmdVcGRhdGU7IH0KICAgICB2b2lkIHNldEhhc1F1
b3Rlc05lZWRpbmdVcGRhdGUoYm9vbCBiKSB7IG1faGFzUXVvdGVzTmVlZGluZ1VwZGF0ZSA9IGI7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9DU1NDb21wbGV0aW9ucy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9DU1NDb21wbGV0aW9ucy5qcwppbmRleCAyYTFmOGU0ZTQzNGFhMTk3MzY1Mzk3YzJk
NTQ5MjQ0MmIzYTBiMTE5Li5iZGE4YTkyOWNjNzJiYjk0ZTRmYWExYWRkMTBjZjhlNTllZmY5MTRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
Q1NTQ29tcGxldGlvbnMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL0NTU0NvbXBsZXRpb25zLmpzCkBAIC0zNjksMTUgKzM2OSwyNyBAQCBXSS5DU1ND
b21wbGV0aW9ucy5jc3NOYW1lQ29tcGxldGlvbnMgPSBudWxsOwogV0kuQ1NTQ29tcGxldGlvbnMu
bGVuZ3RoVW5pdHMgPSBuZXcgU2V0KFsKICAgICAiY2giLAogICAgICJjbSIsCisgICAgImR2aCIs
CisgICAgImR2bWF4IiwKKyAgICAiZHZtaW4iLAorICAgICJkdnciLAogICAgICJlbSIsCiAgICAg
ImV4IiwKICAgICAiaW4iLAorICAgICJsdmgiLAorICAgICJsdm1heCIsCisgICAgImx2bWluIiwK
KyAgICAibHZ3IiwKICAgICAibW0iLAogICAgICJwYyIsCiAgICAgInB0IiwKICAgICAicHgiLAog
ICAgICJxIiwKICAgICAicmVtIiwKKyAgICAic3ZoIiwKKyAgICAic3ZtYXgiLAorICAgICJzdm1p
biIsCisgICAgInN2dyIsCiAgICAgInZoIiwKICAgICAidm1heCIsCiAgICAgInZtaW4iLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVy
bmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJu
YWwuaAppbmRleCBiOTE5ZGQ5NzhmZDZiNDVlMjI4MDk0ZjE5YTc0N2UwOGU3ZmM5NDg5Li4yZWFh
Y2I2ZmQwMjM5MWEwMzVhMDBlYzk4MTJhOTlkNDRhOTBiNmJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaApAQCAtMTU1
LDYgKzE1NSw4IEBAIGNsYXNzIFZpZXdHZXN0dXJlQ29udHJvbGxlcjsKIAogICAgIHN0ZDo6b3B0
aW9uYWw8Q0dTaXplPiBfdmlld0xheW91dFNpemVPdmVycmlkZTsKICAgICBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OkZsb2F0U2l6ZT4gX2xhc3RTZW50Vmlld0xheW91dFNpemU7CisgICAgc3RkOjpv
cHRpb25hbDxDR1NpemU+IF9taW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTsKKyAgICBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0U2l6ZT4gX2xhc3RTZW50TWluaW11bVVub2JzY3VyZWRT
aXplOwogICAgIHN0ZDo6b3B0aW9uYWw8Q0dTaXplPiBfbWF4aW11bVVub2JzY3VyZWRTaXplT3Zl
cnJpZGU7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFNpemU+IF9sYXN0U2VudE1h
eGltdW1Vbm9ic2N1cmVkU2l6ZTsKICAgICBDR1JlY3QgX2lucHV0Vmlld0JvdW5kc0luV2luZG93
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmgKaW5kZXggOTMwN2NmMTVlZTM5MGI3YWMyNTlhYjNkMWVjNDZhZjIwNjQ1NTU1YS4u
NDFlNTEyMzQ0ZmZiOTk3MzcwYTI2ZDI5ODRjZWVkNWY2ZDZlMTRkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC00
OTAsNyArNDkwLDggQEAgZm9yIHRoaXMgcHJvcGVydHkuCiAKIC0gKHZvaWQpX3NuYXBzaG90UmVj
dDooQ0dSZWN0KXJlY3RJblZpZXdDb29yZGluYXRlcyBpbnRvSW1hZ2VPZldpZHRoOihDR0Zsb2F0
KWltYWdlV2lkdGggY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQ0dJbWFnZVJlZikpY29tcGxl
dGlvbkhhbmRsZXI7CiAKLS0gKHZvaWQpX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5p
bXVtTGF5b3V0U2l6ZTooQ0dTaXplKW1pbmltdW1MYXlvdXRTaXplIG1heGltdW1Vbm9ic2N1cmVk
U2l6ZU92ZXJyaWRlOihDR1NpemUpbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUgV0tfQVBJ
X0FWQUlMQUJMRShpb3MoOV8wKSk7CistICh2b2lkKV9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNX
aXRoTWluaW11bUxheW91dFNpemU6KENHU2l6ZSltaW5pbXVtTGF5b3V0U2l6ZSBtYXhpbXVtVW5v
YnNjdXJlZFNpemVPdmVycmlkZTooQ0dTaXplKW1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRl
IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9vdmVycmlkZUxheW91dFBhcmFt
ZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6bWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6
bWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6IiwgaW9zKDlfMCwgV0tfSU9TX1RCQSkpOwor
LSAodm9pZClfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOihD
R1NpemUpbWluaW11bUxheW91dFNpemUgbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6KENH
U2l6ZSltaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSBtYXhpbXVtVW5vYnNjdXJlZFNpemVP
dmVycmlkZTooQ0dTaXplKW1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX2NsZWFyT3ZlcnJpZGVMYXlvdXRQYXJh
bWV0ZXJzIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKIC0gKHZvaWQpX292ZXJyaWRlVmll
d3BvcnRXaXRoQXJndW1lbnRzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNTdHJpbmcgKj4g
Kilhcmd1bWVudHMgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTMuMCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4IDI4NjZjNThiMmU3
NWViNzBiOWQwZWY3MzNhM2RhZmNhYWY4MWI0ZDUuLmI2OWZlZjZhNDk2MTRmZDgyYWZlODNlMzA2
ZTU3MWM4NWUwMWRlNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9p
b3MvV0tXZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3Mv
V0tXZWJWaWV3SU9TLm1tCkBAIC03MDIsNiArNzAyLDcgQEAgLSAodm9pZClfcHJvY2Vzc1dpbGxT
d2FwT3JEaWRFeGl0CiAgICAgX2RpZERlZmVyVXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0c0ZvclVu
c3RhYmxlU2Nyb2xsVmlldyA9IE5POwogICAgIF9jdXJyZW50bHlBZGp1c3RpbmdTY3JvbGxWaWV3
SW5zZXRzRm9yS2V5Ym9hcmQgPSBOTzsKICAgICBfbGFzdFNlbnRWaWV3TGF5b3V0U2l6ZSA9IHN0
ZDo6bnVsbG9wdDsKKyAgICBfbGFzdFNlbnRNaW5pbXVtVW5vYnNjdXJlZFNpemUgPSBzdGQ6Om51
bGxvcHQ7CiAgICAgX2xhc3RTZW50TWF4aW11bVVub2JzY3VyZWRTaXplID0gc3RkOjpudWxsb3B0
OwogICAgIF9sYXN0U2VudERldmljZU9yaWVudGF0aW9uID0gc3RkOjpudWxsb3B0OwogCkBAIC0x
OTAzLDYgKzE5MDQsMTUgQEAgLSAodm9pZClfZGlzcGF0Y2hTZXRWaWV3TGF5b3V0U2l6ZTooV2Vi
Q29yZTo6RmxvYXRTaXplKXZpZXdMYXlvdXRTaXplCiAgICAgX2xhc3RTZW50Vmlld0xheW91dFNp
emUgPSB2aWV3TGF5b3V0U2l6ZTsKIH0KIAorLSAodm9pZClfZGlzcGF0Y2hTZXRNaW5pbXVtVW5v
YnNjdXJlZFNpemU6KFdlYkNvcmU6OkZsb2F0U2l6ZSltaW5pbXVtVW5vYnNjdXJlZFNpemUKK3sK
KyAgICBpZiAoX2xhc3RTZW50TWluaW11bVVub2JzY3VyZWRTaXplICYmIENHU2l6ZUVxdWFsVG9T
aXplKF9sYXN0U2VudE1pbmltdW1Vbm9ic2N1cmVkU2l6ZS52YWx1ZSgpLCBtaW5pbXVtVW5vYnNj
dXJlZFNpemUpKQorICAgICAgICByZXR1cm47CisKKyAgICBfcGFnZS0+c2V0TWluaW11bVVub2Jz
Y3VyZWRTaXplKG1pbmltdW1Vbm9ic2N1cmVkU2l6ZSk7CisgICAgX2xhc3RTZW50TWluaW11bVVu
b2JzY3VyZWRTaXplID0gbWluaW11bVVub2JzY3VyZWRTaXplOworfQorCiAtICh2b2lkKV9kaXNw
YXRjaFNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZTooV2ViQ29yZTo6RmxvYXRTaXplKW1heGltdW1V
bm9ic2N1cmVkU2l6ZQogewogICAgIGlmIChfbGFzdFNlbnRNYXhpbXVtVW5vYnNjdXJlZFNpemUg
JiYgQ0dTaXplRXF1YWxUb1NpemUoX2xhc3RTZW50TWF4aW11bVVub2JzY3VyZWRTaXplLnZhbHVl
KCksIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSkpCkBAIC0xOTM4LDYgKzE5NDgsOCBAQCAtICh2b2lk
KV9mcmFtZU9yQm91bmRzQ2hhbmdlZAogICAgIGlmIChfZHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9k
ZSA9PSBXZWJLaXQ6OkR5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGU6Ok5vdFJlc2l6aW5nKSB7CiAg
ICAgICAgIGlmICghX3ZpZXdMYXlvdXRTaXplT3ZlcnJpZGUpCiAgICAgICAgICAgICBbc2VsZiBf
ZGlzcGF0Y2hTZXRWaWV3TGF5b3V0U2l6ZTpbc2VsZiBhY3RpdmVWaWV3TGF5b3V0U2l6ZTpzZWxm
LmJvdW5kc11dOworICAgICAgICBpZiAoIV9taW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSkK
KyAgICAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZTpXZWJD
b3JlOjpGbG9hdFNpemUoYm91bmRzLnNpemUpXTsKICAgICAgICAgaWYgKCFfbWF4aW11bVVub2Jz
Y3VyZWRTaXplT3ZlcnJpZGUpCiAgICAgICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRNYXhpbXVt
VW5vYnNjdXJlZFNpemU6V2ViQ29yZTo6RmxvYXRTaXplKGJvdW5kcy5zaXplKV07CiAKQEAgLTIy
NTgsNiArMjI3MCwxMSBAQCAtICh2b2lkKV9kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5G
cmFtZQogICAgICAgICBfZ2VzdHVyZUNvbnRyb2xsZXItPmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2Fk
Rm9yTWFpbkZyYW1lKCk7CiB9CiAKK3N0YXRpYyBXZWJDb3JlOjpGbG9hdFNpemUgYWN0aXZlTWlu
aW11bVVub2JzY3VyZWRTaXplKFdLV2ViVmlldyAqd2ViVmlldywgY29uc3QgQ0dSZWN0JiBib3Vu
ZHMpCit7CisgICAgcmV0dXJuIFdlYkNvcmU6OkZsb2F0U2l6ZSh3ZWJWaWV3LT5fbWluaW11bVVu
b2JzY3VyZWRTaXplT3ZlcnJpZGUudmFsdWVfb3IoYm91bmRzLnNpemUpKTsKK30KKwogc3RhdGlj
IFdlYkNvcmU6OkZsb2F0U2l6ZSBhY3RpdmVNYXhpbXVtVW5vYnNjdXJlZFNpemUoV0tXZWJWaWV3
ICp3ZWJWaWV3LCBjb25zdCBDR1JlY3QmIGJvdW5kcykKIHsKICAgICByZXR1cm4gV2ViQ29yZTo6
RmxvYXRTaXplKHdlYlZpZXctPl9tYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZS52YWx1ZV9v
cihib3VuZHMuc2l6ZSkpOwpAQCAtMjM0NywxMiArMjM2NCwxNiBAQCAtICh2b2lkKV9kaWRDb21w
bGV0ZUFuaW1hdGVkUmVzaXplCiAKICAgICBDR1JlY3QgbmV3Qm91bmRzID0gc2VsZi5ib3VuZHM7
CiAgICAgYXV0byBuZXdWaWV3TGF5b3V0U2l6ZSA9IFtzZWxmIGFjdGl2ZVZpZXdMYXlvdXRTaXpl
Om5ld0JvdW5kc107CisgICAgYXV0byBuZXdNaW5pbXVtVW5vYnNjdXJlZFNpemUgPSBhY3RpdmVN
aW5pbXVtVW5vYnNjdXJlZFNpemUoc2VsZiwgbmV3Qm91bmRzKTsKICAgICBhdXRvIG5ld01heGlt
dW1Vbm9ic2N1cmVkU2l6ZSA9IGFjdGl2ZU1heGltdW1Vbm9ic2N1cmVkU2l6ZShzZWxmLCBuZXdC
b3VuZHMpOwogICAgIGludDMyX3QgbmV3T3JpZW50YXRpb24gPSBhY3RpdmVPcmllbnRhdGlvbihz
ZWxmKTsKIAogICAgIGlmICghX2xhc3RTZW50Vmlld0xheW91dFNpemUgfHwgbmV3Vmlld0xheW91
dFNpemUgIT0gX2xhc3RTZW50Vmlld0xheW91dFNpemUudmFsdWUoKSkKICAgICAgICAgW3NlbGYg
X2Rpc3BhdGNoU2V0Vmlld0xheW91dFNpemU6bmV3Vmlld0xheW91dFNpemVdOwogCisgICAgaWYg
KCFfbGFzdFNlbnRNaW5pbXVtVW5vYnNjdXJlZFNpemUgfHwgbmV3TWluaW11bVVub2JzY3VyZWRT
aXplICE9IF9sYXN0U2VudE1pbmltdW1Vbm9ic2N1cmVkU2l6ZS52YWx1ZSgpKQorICAgICAgICBb
c2VsZiBfZGlzcGF0Y2hTZXRNaW5pbXVtVW5vYnNjdXJlZFNpemU6V2ViQ29yZTo6RmxvYXRTaXpl
KG5ld01pbmltdW1Vbm9ic2N1cmVkU2l6ZSldOworCiAgICAgaWYgKCFfbGFzdFNlbnRNYXhpbXVt
VW5vYnNjdXJlZFNpemUgfHwgbmV3TWF4aW11bVVub2JzY3VyZWRTaXplICE9IF9sYXN0U2VudE1h
eGltdW1Vbm9ic2N1cmVkU2l6ZS52YWx1ZSgpKQogICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRN
YXhpbXVtVW5vYnNjdXJlZFNpemU6V2ViQ29yZTo6RmxvYXRTaXplKG5ld01heGltdW1Vbm9ic2N1
cmVkU2l6ZSldOwogCkBAIC0yNzA3LDYgKzI3MjgsMjEgQEAgLSAodm9pZClfc2V0Vmlld0xheW91
dFNpemVPdmVycmlkZTooQ0dTaXplKXZpZXdMYXlvdXRTaXplT3ZlcnJpZGUKICAgICAgICAgW3Nl
bGYgX2Rpc3BhdGNoU2V0Vmlld0xheW91dFNpemU6V2ViQ29yZTo6RmxvYXRTaXplKHZpZXdMYXlv
dXRTaXplT3ZlcnJpZGUpXTsKIH0KIAorLSAoQ0dTaXplKV9taW5pbXVtVW5vYnNjdXJlZFNpemVP
dmVycmlkZQoreworICAgIEFTU0VSVChfbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUpOwor
ICAgIHJldHVybiBfbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUudmFsdWVfb3IoQ0dTaXpl
WmVybyk7Cit9CisKKy0gKHZvaWQpX3NldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOihD
R1NpemUpc2l6ZQoreworICAgIEFTU0VSVChzaXplLndpZHRoIDw9IHNlbGYuYm91bmRzLnNpemUu
d2lkdGggJiYgc2l6ZS5oZWlnaHQgPD0gc2VsZi5ib3VuZHMuc2l6ZS5oZWlnaHQpOworICAgIF9t
aW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSA9IHNpemU7CisKKyAgICBpZiAoX2R5bmFtaWNW
aWV3cG9ydFVwZGF0ZU1vZGUgPT0gV2ViS2l0OjpEeW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpO
b3RSZXNpemluZykKKyAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0TWluaW11bVVub2JzY3VyZWRT
aXplOldlYkNvcmU6OkZsb2F0U2l6ZShzaXplKV07Cit9CisKIC8vIERlcHJlY2F0ZWQgU1BJCiAt
IChDR1NpemUpX21heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlCiB7CkBAIC0zMDMxLDYgKzMw
NjcsNyBAQCAtICh2b2lkKV9iZWdpbkFuaW1hdGVkUmVzaXplV2l0aFVwZGF0ZXM6KHZvaWQgKF4p
KHZvaWQpKXVwZGF0ZUJsb2NrCiAgICAgICAgIG9sZE9ic2N1cmVkSW5zZXRzID0gX29ic2N1cmVk
SW5zZXRzOwogICAgIH0KICAgICBhdXRvIG9sZFZpZXdMYXlvdXRTaXplID0gW3NlbGYgYWN0aXZl
Vmlld0xheW91dFNpemU6b2xkQm91bmRzXTsKKyAgICBhdXRvIG9sZE1pbmltdW1Vbm9ic2N1cmVk
U2l6ZSA9IGFjdGl2ZU1pbmltdW1Vbm9ic2N1cmVkU2l6ZShzZWxmLCBvbGRCb3VuZHMpOwogICAg
IGF1dG8gb2xkTWF4aW11bVVub2JzY3VyZWRTaXplID0gYWN0aXZlTWF4aW11bVVub2JzY3VyZWRT
aXplKHNlbGYsIG9sZEJvdW5kcyk7CiAKICAgICB1cGRhdGVCbG9jaygpOwpAQCAtMzAzOCw2ICsz
MDc1LDcgQEAgLSAodm9pZClfYmVnaW5BbmltYXRlZFJlc2l6ZVdpdGhVcGRhdGVzOih2b2lkIChe
KSh2b2lkKSl1cGRhdGVCbG9jawogICAgIENHUmVjdCBuZXdCb3VuZHMgPSBzZWxmLmJvdW5kczsK
ICAgICBhdXRvIG5ld01pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCA9IFtzZWxmIF9taW5pbXVt
RWZmZWN0aXZlRGV2aWNlV2lkdGhdOwogICAgIGF1dG8gbmV3Vmlld0xheW91dFNpemUgPSBbc2Vs
ZiBhY3RpdmVWaWV3TGF5b3V0U2l6ZTpuZXdCb3VuZHNdOworICAgIGF1dG8gbmV3TWluaW11bVVu
b2JzY3VyZWRTaXplID0gYWN0aXZlTWluaW11bVVub2JzY3VyZWRTaXplKHNlbGYsIG5ld0JvdW5k
cyk7CiAgICAgYXV0byBuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBhY3RpdmVNYXhpbXVtVW5v
YnNjdXJlZFNpemUoc2VsZiwgbmV3Qm91bmRzKTsKICAgICBpbnQzMl90IG5ld09yaWVudGF0aW9u
ID0gYWN0aXZlT3JpZW50YXRpb24oc2VsZik7CiAgICAgVUlFZGdlSW5zZXRzIG5ld09ic2N1cmVk
SW5zZXRzID0gX29ic2N1cmVkSW5zZXRzOwpAQCAtMzA1OSw2ICszMDk3LDggQEAgLSAodm9pZClf
YmVnaW5BbmltYXRlZFJlc2l6ZVdpdGhVcGRhdGVzOih2b2lkICheKSh2b2lkKSl1cGRhdGVCbG9j
awogICAgICAgICBbc2VsZiBfZnJhbWVPckJvdW5kc0NoYW5nZWRdOwogICAgICAgICBpZiAoX3Zp
ZXdMYXlvdXRTaXplT3ZlcnJpZGUpCiAgICAgICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRWaWV3
TGF5b3V0U2l6ZTpuZXdWaWV3TGF5b3V0U2l6ZV07CisgICAgICAgIGlmIChfbWluaW11bVVub2Jz
Y3VyZWRTaXplT3ZlcnJpZGUpCisgICAgICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRNaW5pbXVt
VW5vYnNjdXJlZFNpemU6V2ViQ29yZTo6RmxvYXRTaXplKG5ld01pbmltdW1Vbm9ic2N1cmVkU2l6
ZSldOwogICAgICAgICBpZiAoX21heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlKQogICAgICAg
ICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0TWF4aW11bVVub2JzY3VyZWRTaXplOldlYkNvcmU6OkZs
b2F0U2l6ZShuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUpXTsKICAgICAgICAgaWYgKF9vdmVycmlk
ZXNJbnRlcmZhY2VPcmllbnRhdGlvbikKQEAgLTMwNjksNiArMzEwOSw3IEBAIC0gKHZvaWQpX2Jl
Z2luQW5pbWF0ZWRSZXNpemVXaXRoVXBkYXRlczoodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sK
IAogICAgIGlmIChDR1JlY3RFcXVhbFRvUmVjdChvbGRCb3VuZHMsIG5ld0JvdW5kcykKICAgICAg
ICAgJiYgb2xkVmlld0xheW91dFNpemUgPT0gbmV3Vmlld0xheW91dFNpemUKKyAgICAgICAgJiYg
b2xkTWluaW11bVVub2JzY3VyZWRTaXplID09IG5ld01pbmltdW1Vbm9ic2N1cmVkU2l6ZQogICAg
ICAgICAmJiBvbGRNYXhpbXVtVW5vYnNjdXJlZFNpemUgPT0gbmV3TWF4aW11bVVub2JzY3VyZWRT
aXplCiAgICAgICAgICYmIG9sZE9yaWVudGF0aW9uID09IG5ld09yaWVudGF0aW9uCiAgICAgICAg
ICYmIG9sZE1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCA9PSBuZXdNaW5pbXVtRWZmZWN0aXZl
RGV2aWNlV2lkdGgKQEAgLTMxMzYsMTAgKzMxNzcsMTEgQEAgLSAodm9pZClfYmVnaW5BbmltYXRl
ZFJlc2l6ZVdpdGhVcGRhdGVzOih2b2lkICheKSh2b2lkKSl1cGRhdGVCbG9jawogICAgIFdlYkNv
cmU6OkZsb2F0Qm94RXh0ZW50IHVub2JzY3VyZWRTYWZlQXJlYUluc2V0c0V4dGVudCh1bm9ic2N1
cmVkU2FmZUFyZWFJbnNldHMudG9wLCB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMucmlnaHQsIHVu
b2JzY3VyZWRTYWZlQXJlYUluc2V0cy5ib3R0b20sIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cy5s
ZWZ0KTsKIAogICAgIF9sYXN0U2VudFZpZXdMYXlvdXRTaXplID0gbmV3Vmlld0xheW91dFNpemU7
CisgICAgX2xhc3RTZW50TWluaW11bVVub2JzY3VyZWRTaXplID0gbmV3TWluaW11bVVub2JzY3Vy
ZWRTaXplOwogICAgIF9sYXN0U2VudE1heGltdW1Vbm9ic2N1cmVkU2l6ZSA9IG5ld01heGltdW1V
bm9ic2N1cmVkU2l6ZTsKICAgICBfbGFzdFNlbnREZXZpY2VPcmllbnRhdGlvbiA9IG5ld09yaWVu
dGF0aW9uOwogCi0gICAgX3BhZ2UtPmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUobmV3Vmlld0xh
eW91dFNpemUsIG5ld01heGltdW1Vbm9ic2N1cmVkU2l6ZSwgdmlzaWJsZVJlY3RJbkNvbnRlbnRD
b29yZGluYXRlcywgdW5vYnNjdXJlZFJlY3RJbkNvbnRlbnRDb29yZGluYXRlcywgZnV0dXJlVW5v
YnNjdXJlZFJlY3RJblNlbGZDb29yZGluYXRlcywgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzRXh0
ZW50LCB0YXJnZXRTY2FsZSwgbmV3T3JpZW50YXRpb24sIG5ld01pbmltdW1FZmZlY3RpdmVEZXZp
Y2VXaWR0aCwgKytfY3VycmVudER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCk7CisgICAgX3Bh
Z2UtPmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUobmV3Vmlld0xheW91dFNpemUsIG5ld01pbmlt
dW1Vbm9ic2N1cmVkU2l6ZSwgbmV3TWF4aW11bVVub2JzY3VyZWRTaXplLCB2aXNpYmxlUmVjdElu
Q29udGVudENvb3JkaW5hdGVzLCB1bm9ic2N1cmVkUmVjdEluQ29udGVudENvb3JkaW5hdGVzLCBm
dXR1cmVVbm9ic2N1cmVkUmVjdEluU2VsZkNvb3JkaW5hdGVzLCB1bm9ic2N1cmVkU2FmZUFyZWFJ
bnNldHNFeHRlbnQsIHRhcmdldFNjYWxlLCBuZXdPcmllbnRhdGlvbiwgbmV3TWluaW11bUVmZmVj
dGl2ZURldmljZVdpZHRoLCArK19jdXJyZW50RHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKTsK
ICAgICBpZiAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5KiBkcmF3aW5nQXJlYSA9IF9wYWdlLT5k
cmF3aW5nQXJlYSgpKQogICAgICAgICBkcmF3aW5nQXJlYS0+c2V0U2l6ZShXZWJDb3JlOjpJbnRT
aXplKG5ld0JvdW5kcy5zaXplKSk7CiAKQEAgLTMyNTUsMTIgKzMyOTcsMjEgQEAgLSAodm9pZClf
c25hcHNob3RSZWN0OihDR1JlY3QpcmVjdEluVmlld0Nvb3JkaW5hdGVzIGludG9JbWFnZU9mV2lk
dGg6KENHRmxvYXQpaW0KIAogLSAodm9pZClfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1p
bmltdW1MYXlvdXRTaXplOihDR1NpemUpbWluaW11bUxheW91dFNpemUgbWF4aW11bVVub2JzY3Vy
ZWRTaXplT3ZlcnJpZGU6KENHU2l6ZSltYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZQogewot
ICAgIExPR19XSVRIX1NUUkVBTShWaXNpYmxlUmVjdHMsIHN0cmVhbSA8PCAiLVtXS1dlYlZpZXcg
IiA8PCBfcGFnZS0+aWRlbnRpZmllcigpIDw8ICIgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dp
dGhNaW5pbXVtTGF5b3V0U2l6ZToiIDw8IFdlYkNvcmU6OkZsb2F0U2l6ZShtaW5pbXVtTGF5b3V0
U2l6ZSkgPDwgIiBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZToiIDw8IFdlYkNvcmU6OkZs
b2F0U2l6ZShtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSkgPDwgIl0iKTsKKyAgICBbc2Vs
ZiBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOm1pbmltdW1M
YXlvdXRTaXplIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZVplcm8gbWF4aW11
bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6bWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGVdOwor
fQorCistICh2b2lkKV9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNp
emU6KENHU2l6ZSltaW5pbXVtTGF5b3V0U2l6ZSBtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlk
ZTooQ0dTaXplKW1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlIG1heGltdW1Vbm9ic2N1cmVk
U2l6ZU92ZXJyaWRlOihDR1NpemUpbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUKK3sKKyAg
ICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwgIi1bV0tXZWJWaWV3ICIg
PDwgX3BhZ2UtPmlkZW50aWZpZXIoKSA8PCAiIF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRo
TWluaW11bUxheW91dFNpemU6IiA8PCBXZWJDb3JlOjpGbG9hdFNpemUobWluaW11bUxheW91dFNp
emUpIDw8ICIgbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6IiA8PCBXZWJDb3JlOjpGbG9h
dFNpemUobWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUpIDw8ICIgbWF4aW11bVVub2JzY3Vy
ZWRTaXplT3ZlcnJpZGU6IiA8PCBXZWJDb3JlOjpGbG9hdFNpemUobWF4aW11bVVub2JzY3VyZWRT
aXplT3ZlcnJpZGUpIDw8ICJdIik7CiAKICAgICBpZiAobWluaW11bUxheW91dFNpemUud2lkdGgg
PCAwIHx8IG1pbmltdW1MYXlvdXRTaXplLmhlaWdodCA8IDApCiAgICAgICAgIFJFTEVBU0VfTE9H
X0ZBVUxUKFZpc2libGVSZWN0cywgIiVzOiBFcnJvcjogYXR0ZW1wdGluZyB0byBvdmVycmlkZSBs
YXlvdXQgcGFyYW1ldGVycyB3aXRoIG5lZ2F0aXZlIHdpZHRoIG9yIGhlaWdodDogJUAiLCBfX1BS
RVRUWV9GVU5DVElPTl9fLCBOU1N0cmluZ0Zyb21DR1NpemUobWluaW11bUxheW91dFNpemUpKTsK
IAorICAgIGlmIChDR1NpemVFcXVhbFRvU2l6ZShtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlk
ZSwgQ0dTaXplWmVybykgIT0gQ0dTaXplRXF1YWxUb1NpemUobWF4aW11bVVub2JzY3VyZWRTaXpl
T3ZlcnJpZGUsIENHU2l6ZVplcm8pKQorICAgICAgICBSRUxFQVNFX0xPR19GQVVMVChWaXNpYmxl
UmVjdHMsICIlczogRXJyb3I6IGF0dGVtcHRpbmcgdG8gb3ZlcnJpZGUgbGF5b3V0IHBhcmFtZXRl
cnMgd2l0aCBvbmx5IG9uZSBvZiBtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSAoJUApIGFu
ZCBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSAoJUApIiwgX19QUkVUVFlfRlVOQ1RJT05f
XywgTlNTdHJpbmdGcm9tQ0dTaXplKG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlKSwgTlNT
dHJpbmdGcm9tQ0dTaXplKG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlKSk7CisKICAgICBb
c2VsZiBfc2V0Vmlld0xheW91dFNpemVPdmVycmlkZTpDR1NpemVNYWtlKHN0ZDo6bWF4PENHRmxv
YXQ+KDAsIG1pbmltdW1MYXlvdXRTaXplLndpZHRoKSwgc3RkOjptYXg8Q0dGbG9hdD4oMCwgbWlu
aW11bUxheW91dFNpemUuaGVpZ2h0KSldOworICAgIFtzZWxmIF9zZXRNaW5pbXVtVW5vYnNjdXJl
ZFNpemVPdmVycmlkZTptaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZV07CiAgICAgW3NlbGYg
X3NldE1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOm1heGltdW1Vbm9ic2N1cmVkU2l6ZU92
ZXJyaWRlXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAw
Njk5ZTQ0ZjlkN2U3NTljY2MxOGI3NzRmNDM1NmY0OWM4NjBlNTViLi41MWZjY2QzMWVlNjU4ZDQz
MjVmN2RlZjQwMjRjMDhkMGZmNDkxOWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaApAQCAtODEzLDkgKzgxMywxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3JvbGxpbmdO
b2RlU2Nyb2xsV2lsbFN0YXJ0U2Nyb2xsKCk7CiAgICAgdm9pZCBzY3JvbGxpbmdOb2RlU2Nyb2xs
RGlkRW5kU2Nyb2xsKCk7CiAKLSAgICB2b2lkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
dGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdl
dFVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3Vy
ZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0
ZW50JiB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSB0YXJnZXRTY2FsZSwgaW50MzJf
dCBkZXZpY2VPcmllbnRhdGlvbiwgZG91YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCwg
RHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKTsKKyAgICB2b2lkIGR5bmFtaWNWaWV3cG9ydFNp
emVVcGRhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiBtaW5pbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0
YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9i
c2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJv
eEV4dGVudCYgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0U2NhbGUsIGlu
dDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lk
dGgsIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCk7CiAKICAgICB2b2lkIHNldFZpZXdwb3J0
Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIGRv
dWJsZSBzY2FsZUZhY3RvciwgZG91YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCk7Cisg
ICAgdm9pZCBzZXRNaW5pbXVtVW5vYnNjdXJlZFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
Jik7CisgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1pbml1bXVVbm9ic2N1cmVkU2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbWluaW11bVVub2JzY3VyZWRTaXplOyB9CiAgICAgdm9pZCBzZXRNYXhpbXVt
VW5vYnNjdXJlZFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgV2ViQ29yZTo6
RmxvYXRTaXplIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4aW11
bVVub2JzY3VyZWRTaXplOyB9CiAgICAgdm9pZCBzZXREZXZpY2VPcmllbnRhdGlvbihpbnQzMl90
KTsKQEAgLTI5NjYsNiArMjk2OCw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKICAgICBGdW5jdGlvbjxib29sKCk+IG1fZGV2aWNlT3JpZW50YXRpb25Vc2VyUGVybWlzc2lv
bkhhbmRsZXJGb3JUZXN0aW5nOwogICAgIGJvb2wgbV93YWl0aW5nRm9yUG9zdExheW91dEVkaXRv
clN0YXRlVXBkYXRlQWZ0ZXJGb2N1c2luZ0VsZW1lbnQgeyBmYWxzZSB9OworICAgIFdlYkNvcmU6
OkZsb2F0U2l6ZSBtX21pbmltdW1Vbm9ic2N1cmVkU2l6ZTsKICAgICBXZWJDb3JlOjpGbG9hdFNp
emUgbV9tYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgYm9vbCBtX2xhc3RPYnNlcnZlZFN0YXRl
V2FzQmFja2dyb3VuZCB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IDFiZmE3MTgzMmMwZWFiMzY2N2VmYWFh
NzZmMzJlOWJlOGZmMGU3YWQuLmI0NDU5ZjVkMjQ2YzVmYjgxNTQ5Y2NhZjFjOGNlNDg0ZmQ2Mjc3
ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJ
T1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bQpAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzY3JvbGxpbmdOb2RlU2Ny
b2xsRGlkRW5kU2Nyb2xsKCkKICAgICBwYWdlQ2xpZW50KCkuc2Nyb2xsaW5nTm9kZVNjcm9sbERp
ZEVuZFNjcm9sbCgpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZHluYW1pY1ZpZXdwb3J0U2l6
ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRF
eHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGlu
YXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHVub2JzY3VyZWRTYWZlQXJlYUlu
c2V0cywgZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCBkb3Vi
bGUgbWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRl
SUQgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmR5bmFt
aWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtaW5pbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBGbG9hdFJlY3QmIHRh
cmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVk
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nv
b3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdW5vYnNjdXJlZFNhZmVB
cmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0U2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24s
IGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsIER5bmFtaWNWaWV3cG9ydFNpemVV
cGRhdGVJRCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpCiB7CiAgICAgaWYgKCFoYXNSdW5u
aW5nUHJvY2VzcygpKQogICAgICAgICByZXR1cm47CkBAIC0yNzMsNyArMjczLDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiB2
aWV3TGF5b3V0U2l6ZSwgY28KIAogICAgIG1fdmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91
dFNpemUgPSB2aWV3TGF5b3V0U2l6ZTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OkR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUodmlld0xheW91dFNpemUsCi0gICAgICAg
IG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCB0YXJnZXRV
bm9ic2N1cmVkUmVjdCwKKyAgICAgICAgbWluaW11bVVub2JzY3VyZWRTaXplLCBtYXhpbXVtVW5v
YnNjdXJlZFNpemUsIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgdGFyZ2V0VW5vYnNjdXJlZFJl
Y3QsCiAgICAgICAgIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMs
IHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywKICAgICAgICAgdGFyZ2V0U2NhbGUsIGRldmljZU9y
aWVudGF0aW9uLCBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsIGR5bmFtaWNWaWV3cG9ydFNp
emVVcGRhdGVJRCksIG1fd2ViUGFnZUlEKTsKIApAQCAtMzAwLDYgKzMwMCwxNCBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0Rm9yY2VBbHdheXNVc2VyU2NhbGFibGUoYm9vbCB1c2VyU2NhbGFibGUp
CiAgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0Rm9yY2VBbHdh
eXNVc2VyU2NhbGFibGUodXNlclNjYWxhYmxlKSwgbV93ZWJQYWdlSUQpOwogfQogCit2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0TWluaW11bVVub2JzY3VyZWRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgc2l6ZSkKK3sKKyAgICBtX21pbmltdW1Vbm9ic2N1cmVkU2l6ZSA9IHNpemU7CisKKyAg
ICBpZiAoaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpTZXRNaW5pbXVtVW5vYnNjdXJlZFNpemUoc2l6ZSksIG1fd2ViUGFnZUlE
KTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZShjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUpCiB7CiAgICAgbV9tYXhpbXVtVW5vYnNjdXJlZFNp
emUgPSBzaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxz
Y3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbQppbmRleCA1
MDA0MGE1MmQ0NmRmODg0YWM3OThiMGRjODM0NmZkOWIxZDdjZWYzLi4zYmEyYzQ4ZjIwNWY4YTU3
OTNhZjJiNGY1NGQ5MDljZWE5MzI5NTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29u
dHJvbGxlci5tbQpAQCAtNDAyLDcgKzQwMiw3IEBAIC0gKHZvaWQpdmlld1dpbGxUcmFuc2l0aW9u
VG9TaXplOihDR1NpemUpc2l6ZSB3aXRoVHJhbnNpdGlvbkNvb3JkaW5hdG9yOihpZDxVSVZpCiAg
ICAgW3N1cGVyIHZpZXdXaWxsVHJhbnNpdGlvblRvU2l6ZTpzaXplIHdpdGhUcmFuc2l0aW9uQ29v
cmRpbmF0b3I6Y29vcmRpbmF0b3JdOwogICAgIFtjb29yZGluYXRvciBhbmltYXRlQWxvbmdzaWRl
VHJhbnNpdGlvbjpeKGlkPFVJVmlld0NvbnRyb2xsZXJUcmFuc2l0aW9uQ29vcmRpbmF0b3JDb250
ZXh0PiBjb250ZXh0KSB7CiAgICAgICAgIFtzZWxmLl93ZWJWaWV3IF9iZWdpbkFuaW1hdGVkUmVz
aXplV2l0aFVwZGF0ZXM6XnsKLSAgICAgICAgICAgIFtzZWxmLl93ZWJWaWV3IF9vdmVycmlkZUxh
eW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6c2l6ZSBtYXhpbXVtVW5vYnNjdXJl
ZFNpemVPdmVycmlkZTpzaXplXTsKKyAgICAgICAgICAgIFtzZWxmLl93ZWJWaWV3IF9vdmVycmlk
ZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6c2l6ZSBtaW5pbXVtVW5vYnNj
dXJlZFNpemVPdmVycmlkZTpzaXplIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOnNpemVd
OwogICAgICAgICB9XTsKICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
ICAgICBbc2VsZi5fd2ViVmlldyBfc2V0SW50ZXJmYWNlT3JpZW50YXRpb25PdmVycmlkZTpbVUlB
cHAgc3RhdHVzQmFyT3JpZW50YXRpb25dXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5k
b3dDb250cm9sbGVySU9TLm1tCmluZGV4IGUxOWZmNWNiMjRmMDFlOTMxMDgyZDU1OGYzM2VkZDJh
ZTBkM2JmMGQuLjBjMWNkNTVmMjJlNjRkMjIyY2FkMGU4YzI0MGMyZmEyMmYzZDFkMDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbQpAQCAtNTkxLDcg
KzU5MSw3IEBAIC0gKHZvaWQpZW50ZXJGdWxsU2NyZWVuCiAgICAgICAgIAogICAgICAgICBbd2Vi
VmlldyBzZXRBdXRvcmVzaXppbmdNYXNrOihVSVZpZXdBdXRvcmVzaXppbmdGbGV4aWJsZVdpZHRo
IHwgVUlWaWV3QXV0b3Jlc2l6aW5nRmxleGlibGVIZWlnaHQpXTsKICAgICAgICAgW3dlYlZpZXcg
c2V0RnJhbWU6W193aW5kb3cgYm91bmRzXV07Ci0gICAgICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxh
eW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6W193aW5kb3cgYm91bmRzXS5zaXpl
IG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOltfd2luZG93IGJvdW5kc10uc2l6ZV07Cisg
ICAgICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91
dFNpemU6W193aW5kb3cgYm91bmRzXS5zaXplIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRl
Oltfd2luZG93IGJvdW5kc10uc2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpbX3dp
bmRvdyBib3VuZHNdLnNpemVdOwogICAgICAgICBbX3dpbmRvdyBpbnNlcnRTdWJ2aWV3OndlYlZp
ZXcuZ2V0KCkgYXRJbmRleDowXTsKICAgICAgICAgW3dlYlZpZXcgc2V0TmVlZHNMYXlvdXRdOwog
ICAgICAgICBbd2ViVmlldyBsYXlvdXRJZk5lZWRlZF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYzEzODU1NzNiMGJlNWZlYzgwMTUwYTk1ZmIzOTUx
OTQzYTUwNDY2Ni4uZTMyZTNkZjE4M2IwZDc0MDYzN2UxZDg5YjcwOWMxNmQwOWQwNThkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTA3OSw5ICsx
MDc5LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVZpc2liaWxpdHlTdGF0ZShib29sIGlz
SW5pdGlhbFN0YXRlID0gZmFsc2UpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2
b2lkIHNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsK
ICAgICB2b2lkIHNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmKTsKICAgICB2b2lkIHNldERldmljZU9yaWVudGF0aW9uKGludDMyX3QpOwotICAgIHZvaWQg
ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHZpZXdM
YXlvdXRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6
ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRl
cywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHRhcmdldFVub2JzY3VyZWRTYWZlQXJl
YUluc2V0cywgZG91YmxlIHNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCBkb3VibGUg
bWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQp
OworICAgIHZvaWQgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1pbmltdW1V
bm9ic2N1cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJl
ZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRp
bmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiB0YXJnZXRVbm9ic2N1cmVkU2Fm
ZUFyZWFJbnNldHMsIGRvdWJsZSBzY2FsZSwgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgZG91
YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCwgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0
ZUlEKTsKICAgICBib29sIHNjYWxlV2FzU2V0QnlVSVByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBt
X3NjYWxlV2FzU2V0QnlVSVByb2Nlc3M7IH0KICAgICB2b2lkIHdpbGxTdGFydFVzZXJUcmlnZ2Vy
ZWRab29taW5nKCk7CiAgICAgdm9pZCBhcHBsaWNhdGlvbldpbGxSZXNpZ25BY3RpdmUoKTsKQEAg
LTIyNDksNiArMjI1MCw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlNpbXBsZVJhbmdlPiBtX2luaXRpYWxTZWxlY3Rpb247CiAgICAgV2ViQ29yZTo6VmlzaWJsZVNl
bGVjdGlvbiBtX3N0b3JlZFNlbGVjdGlvbkZvckFjY2Vzc2liaWxpdHkgeyBXZWJDb3JlOjpWaXNp
YmxlU2VsZWN0aW9uKCkgfTsKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV9taW5pbXVtVW5vYnNj
dXJlZFNpemU7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fbWF4aW11bVVub2JzY3VyZWRTaXpl
OwogICAgIGludDMyX3QgbV9kZXZpY2VPcmllbnRhdGlvbiB7IDAgfTsKICAgICBib29sIG1fa2V5
Ym9hcmRJc0F0dGFjaGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDhhZmM0ZWE1ZTNjZDAxYzJh
YzNhNGEzNDFmMzE2YTlhMjExMzMyZTEuLjhkY2VhMzUyZWJmNGJiYzA5MzM2MTQxYTAwMzk1YjZm
ZDAwOWNjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNTMsMTAgKzUzLDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBh
Z2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIE1vdXNlRXZlbnQoV2ViS2l0OjpXZWJNb3VzZUV2ZW50
IGV2ZW50LCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246Okhh
bmRsZT4+IHNhbmRib3hFeHRlbnNpb25zKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAg
U2V0Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUoV2ViQ29yZTo6RmxvYXRTaXpl
IHNpemUsIGRvdWJsZSBzY2FsZUZhY3RvciwgZG91YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VX
aWR0aCkKKyAgICBTZXRNaW5pbXVtVW5vYnNjdXJlZFNpemUoV2ViQ29yZTo6RmxvYXRTaXplIHNp
emUpCiAgICAgU2V0TWF4aW11bVVub2JzY3VyZWRTaXplKFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXpl
KQogICAgIFNldERldmljZU9yaWVudGF0aW9uKGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24pCiAg
ICAgU2V0T3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50cyhzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlZp
ZXdwb3J0QXJndW1lbnRzPiBhcmd1bWVudHMpCi0gICAgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0
ZShXZWJDb3JlOjpGbG9hdFNpemUgdmlld0xheW91dFNpemUsIFdlYkNvcmU6OkZsb2F0U2l6ZSBt
YXhpbXVtVW5vYnNjdXJlZFNpemUsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRFeHBvc2VkQ29u
dGVudFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgV2ViQ29y
ZTo6RmxvYXRSZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMs
IFdlYkNvcmU6OlJlY3RFZGdlczxmbG9hdD4gdGFyZ2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRz
LCBkb3VibGUgc2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIGRvdWJsZSBtaW5pbXVt
RWZmZWN0aXZlRGV2aWNlV2lkdGgsIHVpbnQ2NF90IGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJ
RCkKKyAgICBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKFdlYkNvcmU6OkZsb2F0U2l6ZSB2aWV3
TGF5b3V0U2l6ZSwgV2ViQ29yZTo6RmxvYXRTaXplIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZSwgV2Vi
Q29yZTo6RmxvYXRTaXplIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgV2ViQ29yZTo6RmxvYXRSZWN0
IHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldFVub2Jz
Y3VyZWRSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9s
bFZpZXdDb29yZGluYXRlcywgV2ViQ29yZTo6UmVjdEVkZ2VzPGZsb2F0PiB0YXJnZXRVbm9ic2N1
cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSBzY2FsZSwgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlv
biwgZG91YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCwgdWludDY0X3QgZHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZUlEKQogICAgIAogICAgIFNldFNjcmVlbklzQmVpbmdDYXB0dXJlZChi
b29sIGNhcHR1cmVkKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDBjNWFmNGMwYTA4NTBhZmNkNTIxZmU1MjVlMGNmNjE4
YWNiNDliZjkuLjRlZGIzMWVjOGFkOGY4MjQ1Yzg4MDA4OGQyYjM0YjI3MGMzMjBiZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
CkBAIC0zNDEzLDYgKzM0MTMsMTIgQEAgdm9pZCBXZWJQYWdlOjpzZXRWaWV3cG9ydENvbmZpZ3Vy
YXRpb25WaWV3TGF5b3V0U2l6ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGRvdWIKICAgICB2aWV3
cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2VkKHpvb21Ub0luaXRpYWxTY2FsZSk7CiB9CiAKK3ZvaWQg
V2ViUGFnZTo6c2V0TWluaW11bVVub2JzY3VyZWRTaXplKGNvbnN0IEZsb2F0U2l6ZSYgbWluaW11
bVVub2JzY3VyZWRTaXplKQoreworICAgIG1fbWluaW11bVVub2JzY3VyZWRTaXplID0gbWluaW11
bVVub2JzY3VyZWRTaXplOworICAgIHVwZGF0ZVZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5p
dHMoKTsKK30KKwogdm9pZCBXZWJQYWdlOjpzZXRNYXhpbXVtVW5vYnNjdXJlZFNpemUoY29uc3Qg
RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUpCiB7CiAgICAgbV9tYXhpbXVtVW5vYnNj
dXJlZFNpemUgPSBtYXhpbXVtVW5vYnNjdXJlZFNpemU7CkBAIC0zNDMyLDcgKzM0MzgsNyBAQCB2
b2lkIFdlYlBhZ2U6OnNldE92ZXJyaWRlVmlld3BvcnRBcmd1bWVudHMoY29uc3Qgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpWaWV3cG9ydAogICAgIG1fcGFnZS0+c2V0T3ZlcnJpZGVWaWV3cG9ydEFy
Z3VtZW50cyhhcmd1bWVudHMpOwogfQogCi12b2lkIFdlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNp
emVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0
RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxW
aWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiB0YXJnZXRVbm9i
c2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSB0YXJnZXRTY2FsZSwgaW50MzJfdCBkZXZpY2VP
cmllbnRhdGlvbiwgZG91YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCwgRHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZUlEIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCkKK3ZvaWQgV2Vi
UGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIHZpZXdMYXlv
dXRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IEZs
b2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdl
dFVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3Vy
ZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0
ZW50JiB0YXJnZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSB0YXJnZXRTY2FsZSwg
aW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgZG91YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VX
aWR0aCwgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRh
dGVJRCkKIHsKICAgICBTZXRGb3JTY29wZTxib29sPiBkeW5hbWljU2l6ZVVwZGF0ZUd1YXJkKG1f
aW5EeW5hbWljU2l6ZVVwZGF0ZSwgdHJ1ZSk7CiAgICAgLy8gRklYTUU6IHRoaXMgZG9lcyBub3Qg
aGFuZGxlIHRoZSBjYXNlcyB3aGVyZSB0aGUgY29udGVudCB3b3VsZCBjaGFuZ2UgdGhlIGNvbnRl
bnQgc2l6ZSBvciBzY3JvbGwgcG9zaXRpb24gZnJvbSBKYXZhU2NyaXB0LgpAQCAtMzQ4MCw2ICsz
NDg2LDcgQEAgdm9pZCBXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IEZs
b2F0U2l6ZSYgdmlld0xheW91dFNpemUsIGNvbnN0IFcKICAgICBpZiAoc2V0Rml4ZWRMYXlvdXRT
aXplKG5ld0xheW91dFNpemUpKQogICAgICAgICByZXNldFRleHRBdXRvc2l6aW5nKCk7CiAKKyAg
ICBzZXRNaW5pbXVtVW5vYnNjdXJlZFNpemUobWluaW11bVVub2JzY3VyZWRTaXplKTsKICAgICBz
ZXRNYXhpbXVtVW5vYnNjdXJlZFNpemUobWF4aW11bVVub2JzY3VyZWRTaXplKTsKICAgICBtX3Bh
Z2UtPnNldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cyh0YXJnZXRVbm9ic2N1cmVkU2FmZUFyZWFJ
bnNldHMpOwogCkBAIC0zODI2LDEyICszODMzLDE4IEBAIHZvaWQgV2ViUGFnZTo6dmlld3BvcnRD
b25maWd1cmF0aW9uQ2hhbmdlZChab29tVG9Jbml0aWFsU2NhbGUgem9vbVRvSW5pdGlhbFNjYWxl
CiAKIHZvaWQgV2ViUGFnZTo6dXBkYXRlVmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygp
CiB7CisgICAgRmxvYXRTaXplIHNtYWxsZXN0VW5vYnNjdXJlZFNpemUgPSBtX21pbmltdW1Vbm9i
c2N1cmVkU2l6ZTsKKyAgICBpZiAoc21hbGxlc3RVbm9ic2N1cmVkU2l6ZS5pc0VtcHR5KCkpCisg
ICAgICAgIHNtYWxsZXN0VW5vYnNjdXJlZFNpemUgPSBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi52
aWV3TGF5b3V0U2l6ZSgpOworCiAgICAgRmxvYXRTaXplIGxhcmdlc3RVbm9ic2N1cmVkU2l6ZSA9
IG1fbWF4aW11bVVub2JzY3VyZWRTaXplOwogICAgIGlmIChsYXJnZXN0VW5vYnNjdXJlZFNpemUu
aXNFbXB0eSgpKQogICAgICAgICBsYXJnZXN0VW5vYnNjdXJlZFNpemUgPSBtX3ZpZXdwb3J0Q29u
ZmlndXJhdGlvbi52aWV3TGF5b3V0U2l6ZSgpOwogCiAgICAgRnJhbWVWaWV3JiBmcmFtZVZpZXcg
PSAqbWFpbkZyYW1lVmlldygpOworICAgIHNtYWxsZXN0VW5vYnNjdXJlZFNpemUuc2NhbGUoMSAv
IG1fdmlld3BvcnRDb25maWd1cmF0aW9uLmluaXRpYWxTY2FsZUlnbm9yaW5nQ29udGVudFNpemUo
KSk7CiAgICAgbGFyZ2VzdFVub2JzY3VyZWRTaXplLnNjYWxlKDEgLyBtX3ZpZXdwb3J0Q29uZmln
dXJhdGlvbi5pbml0aWFsU2NhbGVJZ25vcmluZ0NvbnRlbnRTaXplKCkpOworICAgIGZyYW1lVmll
dy5zZXRNaW5pbXVtVmlld3BvcnRTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKHJvdW5kZWRJ
bnRTaXplKHNtYWxsZXN0VW5vYnNjdXJlZFNpemUpKTsKICAgICBmcmFtZVZpZXcuc2V0Vmlld3Bv
cnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyhyb3VuZGVkSW50U2l6ZShsYXJnZXN0VW5vYnNjdXJl
ZFNpemUpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGNjNTQ4NTM5YTFjMGQ4ZmYwMmEzMDBhYzA4OWRiYTM1NDk1ZmU5NDYuLjM4OTI5
YTAyMDVmZjYwM2ZjMzZiODYxYjU4OGNmMDlhOWY2YTAxOWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAyMS0xMC0w
NSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW2Nzcy12YWx1
ZXMtNF0gU3VwcG9ydCBzbWFsbCAoc3YqKSwgbGFyZ2UgKGx2KikgYW5kIGR5bmFtaWMgKGR2Kikg
dmlld3BvcnQgdW5pdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxOTI4NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzE4NTczNzA+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0NTU1ZpZXdwb3J0VW5pdHMubW06IEFkZGVkLgorICAgICAgICAo
Z2V0RWxlbWVudEhlaWdodCk6CisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5pdHMuQWxsU2Ft
ZSk6CisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5pdHMuRW1wdHlVbm9ic2N1cmVkU2l6ZU92
ZXJyaWRlcyk6CisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5pdHMuU2FtZVVub2JzY3VyZWRT
aXplT3ZlcnJpZGVzKToKKyAgICAgICAgKFRFU1QuQ1NTVmlld3BvcnRVbml0cy5EaWZmZXJlbnRV
bm9ic2N1cmVkU2l6ZU92ZXJyaWRlcyk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9DU1NWaWV3cG9ydFVuaXRzLmh0bWw6IEFkZGVkLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BbmltYXRlZFJlc2l6ZS5tbToKKyAgICAgICAg
KFRFU1QuV2ViS2l0Lk92ZXJyaWRlTGF5b3V0U2l6ZUNoYW5nZXNEdXJpbmdBbmltYXRlZFJlc2l6
ZVN1Y2NlZWQpOgorICAgICAgICAoVEVTVC5XZWJLaXQuT3ZlcnJpZGVMYXlvdXRTaXplSXNSZXN0
b3JlZEFmdGVyUHJvY2Vzc1JlbGF1bmNoKToKKyAgICAgICAgKFRFU1QuV2ViS2l0Lk92ZXJyaWRl
TGF5b3V0U2l6ZUlzUmVzdG9yZWRBZnRlckNoYW5naW5nRHVyaW5nUHJvY2Vzc1JlbGF1bmNoKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpeGVkTGF5b3V0U2l6
ZS5tbToKKyAgICAgICAgKFRFU1QuV2ViS2l0Lk92ZXJyaWRlTWluaW11bUxheW91dFNpemVXaXRo
TmVnYXRpdmVIZWlnaHQpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1Njcm9s
bFZpZXdTY3JvbGxhYmlsaXR5VGVzdHMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
LlNjcm9sbFZpZXdTY3JvbGxhYmlsaXR5VGVzdHMuU2Nyb2xsYWJsZVdpdGhPdmVyZmxvd0hpZGRl
bkFuZFZpc2libGVVSSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNULlNjcm9sbFZpZXdT
Y3JvbGxhYmlsaXR5VGVzdHMuU2Nyb2xsYWJsZVdpdGhPdmVyZmxvd0hpZGRlbkFuZFNocnVua1VJ
KToKKyAgICAgICAgUmVwbGFjZSBgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVt
TGF5b3V0U2l6ZTptYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpgIHdpdGgKKyAgICAgICAg
YF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6bWluaW11bVVu
b2JzY3VyZWRTaXplT3ZlcnJpZGU6bWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6YC4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorCiAyMDIxLTEwLTA0ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KIAogICAgICAgICBTZW5kIEVXUyBleGNlcHRpb24gZW1haWxzIHRvIGJvdCB3YXRjaGVycyBp
bnN0ZWFkIG9mIEFha2FzaApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxNDM3NGNlNjUxOWI1
ZTA5MGNjMDk4NDg2MzNhOGYyZDE4NmNiZTMxLi4xODY0MDFmN2RiZThlYTJkM2UxZmFjMzQzOGIw
MmYxNzlkMzBmY2Y0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODg2LDYgKzg4Niw4IEBA
CiAJCTkzRkNEQjM0MjYzNjMxNTYwMDQ2REQ3RCAvKiBTb3J0ZWRBcnJheU1hcC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0ZDREIzMzI2MzYzMTU2
MDA0NkREN0QgLyogU29ydGVkQXJyYXlNYXAuY3BwICovOyB9OwogCQk5NTA5NUYyMDI2MkZGRkE1
MDAwMEQ5MjAgLyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MDk1RjFGMjYyRkZGQTUwMDAwRDkyMCAvKiBTYW1w
bGVkUGFnZVRvcENvbG9yLm1tICovOyB9OwogCQk5NTBFNENDMTI1MkU3NTI0MDA3MTY1OUYgLyog
aU9TU3R5bHVzU3VwcG9ydC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk1MEU0Q0MwMjUyRTc1MjMwMDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBwb3J0Lm1t
ICovOyB9OworCQk5NTJGNzE2NTI3MEJEOTdFMDBEMDBEQ0MgLyogQ1NTVmlld3BvcnRVbml0cy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MkY3MTY0
MjcwQkQ5N0UwMEQwMERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLm1tICovOyB9OworCQk5NTJGNzE2
NzI3MEJEOUNCMDBEMDBEQ0MgLyogQ1NTVmlld3BvcnRVbml0cy5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MkY3MTY2MjcwQkQ5OTcw
MEQwMERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLmh0bWwgKi87IH07CiAJCTk1M0FCQjM1MjVDMEQ2
ODIwMDRDOEI3MyAvKiBXS1dlYlZpZXdVbmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3IubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTNBQkIzNDI1QzBENjgx
MDA0QzhCNzMgLyogV0tXZWJWaWV3VW5kZXJQYWdlQmFja2dyb3VuZENvbG9yLm1tICovOyB9Owog
CQk5NThCNzBFMTI2QzQ2RURDMDBCMjAyMkIgLyogTlNBdHRyaWJ1dGVkU3RyaW5nV2ViS2l0QWRk
aXRpb25zLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTU4QjcwRTAyNkM0NkVEQzAwQjIwMjJCIC8qIE5TQXR0cmlidXRlZFN0cmluZ1dlYktpdEFkZGl0
aW9ucy5tbSAqLzsgfTsKIAkJOTVBNTI0OTUyNTgxQTEwRDAwNDYxRkU5IC8qIFdLV2ViVmlld1Ro
ZW1lQ29sb3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NUE1MjQ5NDI1ODFBMTBEMDA0NjFGRTkgLyogV0tXZWJWaWV3VGhlbWVDb2xvci5tbSAqLzsg
fTsKQEAgLTE0NTgsNiArMTQ2MCw3IEBACiAJCQkJOUI2MjYzMEMxRjhDMjVDODAwN0VFMjlCIC8q
IGNvcHktdXJsLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJN0FFQUQ0ODExRTIwMTIy
NzAwNDE2RUZFIC8qIENyb3NzUGFydGl0aW9uRmlsZVNjaGVtZUFjY2Vzcy5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCTQ5OTVBNkYwMjVFODc3MjAwMEU1RjBBOSAvKiBjc3AtZG9jdW1l
bnQtdXJpLXJlcG9ydC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTk1MkY3MTY3Mjcw
QkQ5Q0IwMEQwMERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJRjRBQjU3OEExRjY1MTY1NDAwREIwREExIC8qIGN1c3RvbS1kcmFnZ2FibGUtZGl2
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMjkwRjQyNzUxNzJBMjIxQzAwOTM5RkYw
IC8qIGN1c3RvbS1wcm90b2NvbC1zeW5jLXhoci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCTFDRjU5QUU1MjFFNjk3N0QwMDZFMzdFQyAvKiBkYXJrLW1vZGUuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKQEAgLTI2MjAsNiArMjYyMyw4IEBACiAJCTkzRkNEQjMzMjYzNjMxNTYwMDQ2
REQ3RCAvKiBTb3J0ZWRBcnJheU1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTb3J0ZWRBcnJheU1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk1MDk1RjFGMjYyRkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRvcENvbG9yLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2FtcGxlZFBhZ2VUb3BDb2xvci5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlG
IC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBpT1NTdHlsdXNTdXBwb3J0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5NTJGNzE2NDI3MEJEOTdFMDBEMDBEQ0MgLyogQ1NTVmlld3BvcnRVbml0cy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENTU1ZpZXdwb3J0VW5pdHMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MkY3MTY2MjcwQkQ5OTcwMEQwMERDQyAvKiBD
U1NWaWV3cG9ydFVuaXRzLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBDU1NWaWV3cG9ydFVuaXRzLmh0bWw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1M0FCQjM0MjVDMEQ2ODEwMDRDOEI3MyAvKiBX
S1dlYlZpZXdVbmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdVbmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3IubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1OEI3MEUwMjZDNDZFREMwMEIyMDIyQiAv
KiBOU0F0dHJpYnV0ZWRTdHJpbmdXZWJLaXRBZGRpdGlvbnMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOU0F0dHJpYnV0ZWRTdHJpbmdXZWJLaXRBZGRpdGlvbnMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1QTUyNDk0MjU4MUExMEQwMDQ2MUZF
OSAvKiBXS1dlYlZpZXdUaGVtZUNvbG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV0tXZWJWaWV3VGhlbWVDb2xvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTM0NzAsNiArMzQ3NSw3IEBACiAJCQkJMUM3OTIwMUIyMzRCREQ5QjAwMUVBRjIz
IC8qIENvcHlSVEYubW0gKi8sCiAJCQkJOUI3QTM3QzIxRjhBRUJBNTAwNEFBMjI4IC8qIENvcHlV
UkwubW0gKi8sCiAJCQkJNTEwQTkyMUQyNERCMzhFRDAwQkZEODlDIC8qIENyZWF0ZVdlYkFyY2hp
dmUubW0gKi8sCisJCQkJOTUyRjcxNjQyNzBCRDk3RTAwRDAwRENDIC8qIENTU1ZpZXdwb3J0VW5p
dHMubW0gKi8sCiAJCQkJNDZBOTExNTgyMTA4RTY2QjAwNzhENDBEIC8qIEN1c3RvbVVzZXJBZ2Vu
dC5tbSAqLywKIAkJCQkyREM0Q0Y3NjFEMkQ5REQ4MDBFQ0NDOTQgLyogRGF0YURldGVjdGlvbi5t
bSAqLywKIAkJCQk1MThFRTUxQzIwQTc4RDMzMDBFMDI0RjMgLyogRGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbi5tbSAqLywKQEAgLTQwMjYsNiArNDAzMiw3IEBACiAJCQkJOUIxMDU2NDIx
RjkwNDdDQzAwRDU1ODNGIC8qIGNvcHktaHRtbC5odG1sICovLAogCQkJCTlCNjI2MzBCMUY4QzI1
MTAwMDdFRTI5QiAvKiBjb3B5LXVybC5odG1sICovLAogCQkJCTQ5OTVBNkVGMjVFODc2QTMwMEU1
RjBBOSAvKiBjc3AtZG9jdW1lbnQtdXJpLXJlcG9ydC5odG1sICovLAorCQkJCTk1MkY3MTY2Mjcw
QkQ5OTcwMEQwMERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLmh0bWwgKi8sCiAJCQkJRjRBQjU3ODkx
RjY1MTY0QjAwREIwREExIC8qIGN1c3RvbS1kcmFnZ2FibGUtZGl2Lmh0bWwgKi8sCiAJCQkJRjQ3
REZCMjQyMUE4NzA0QTAwMDIxRkI2IC8qIGRhdGEtZGV0ZWN0b3JzLmh0bWwgKi8sCiAJCQkJRjQ4
NkIxQ0YxRjY3OTRGRjAwRjM0QkREIC8qIERhdGFUcmFuc2Zlci1zZXREcmFnSW1hZ2UuaHRtbCAq
LywKQEAgLTU0NzMsNiArNTQ4MCw3IEBACiAJCQkJNTEwQTkyMUUyNERCMzhGMzAwQkZEODlDIC8q
IENyZWF0ZVdlYkFyY2hpdmUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QUVBRDQ3RjFFMjAxMTZD
MDA0MTZFRkUgLyogQ3Jvc3NQYXJ0aXRpb25GaWxlU2NoZW1lQWNjZXNzLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0NDRTdFREIxQTQxMUE5MjAwNDQ3QzRDIC8qIENTU1BhcnNlci5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk5NTJGNzE2NTI3MEJEOTdFMDBEMDBEQ0MgLyogQ1NTVmlld3BvcnRVbml0
cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU3NTg1OTdGMjNBMjUyN0EwMEM3NDU3MiAvKiBDdGFw
UGluVGVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1NzJCNDAzNDIxNzY5QTg4MDAwQUQ0M0Ug
LyogQ3RhcFJlcXVlc3RUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3MkI0MDQ0MjE3ODFC
NDMwMDBBRDQzRSAvKiBDdGFwUmVzcG9uc2VUZXN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BbmltYXRlZFJlc2l6
ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQW5pbWF0ZWRSZXNp
emUubW0KaW5kZXggODI4MGY1MzkzNTRlNzE4NWU5ZWJlNDA0NDM2MTc4NjM2M2Y4YjMzMC4uMzlm
ZTU0MDQ5NmM2MjczZjMwMTI0NWM1YjY0NDU3YTEyMTUxYTM4MSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BbmltYXRlZFJlc2l6ZS5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FuaW1hdGVkUmVzaXplLm1tCkBA
IC0xOTIsNyArMTkyLDcgQEAgVEVTVChXZWJLaXQsIE92ZXJyaWRlTGF5b3V0U2l6ZUNoYW5nZXNE
dXJpbmdBbmltYXRlZFJlc2l6ZVN1Y2NlZWQpCiAgICAgYXV0byB3ZWJWaWV3ID0gY3JlYXRlQW5p
bWF0ZWRSZXNpemVXZWJWaWV3KCk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTp3ZWJWaWV3
LmdldCgpXTsKIAotICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWlu
aW11bUxheW91dFNpemU6Q0dTaXplTWFrZSgyMDAsIDUwKSBtYXhpbXVtVW5vYnNjdXJlZFNpemVP
dmVycmlkZTpDR1NpemVNYWtlKDIwMCwgNTApXTsKKyAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlv
dXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMjAwLCA1MCkgbWlu
aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgyMDAsIDUwKSBtYXhpbXVtVW5v
YnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDIwMCwgNTApXTsKIAogICAgIFt3ZWJWaWV3
IGxvYWRIVE1MU3RyaW5nOkAiPGhlYWQ+PG1ldGEgbmFtZT0ndmlld3BvcnQnIGNvbnRlbnQ9J2lu
aXRpYWwtc2NhbGU9MSc+PC9oZWFkPiIgYmFzZVVSTDpuaWxdOwogICAgIGF1dG8gbmF2aWdhdGlv
bkRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKQEAgLTIwNyw3ICsyMDcsNyBAQCBURVNUKFdlYktpdCwgT3ZlcnJpZGVMYXlvdXRTaXplQ2hh
bmdlc0R1cmluZ0FuaW1hdGVkUmVzaXplU3VjY2VlZCkKICAgICAgICAgW3dlYlZpZXcgc2V0RnJh
bWU6Q0dSZWN0TWFrZSgwLCAwLCBbd2ViVmlldyBmcmFtZV0uc2l6ZS53aWR0aCArIDEwMCwgNDAw
KV07CiAgICAgfV07CiAKLSAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0
aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMTAwLCAyMDApIG1heGltdW1Vbm9ic2N1cmVk
U2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMTAwLCAyMDApXTsKKyAgICBbd2ViVmlldyBfb3ZlcnJp
ZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMTAwLCAy
MDApIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMTAwLCAyMDApIG1h
eGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMTAwLCAyMDApXTsKICAgICBb
d2ViVmlldyBfZW5kQW5pbWF0ZWRSZXNpemVdOwogCiAgICAgX19ibG9jayBib29sIGRpZFJlYWRM
YXlvdXRTaXplID0gZmFsc2U7CkBAIC0yMzIsNyArMjMyLDcgQEAgVEVTVChXZWJLaXQsIE92ZXJy
aWRlTGF5b3V0U2l6ZUlzUmVzdG9yZWRBZnRlclByb2Nlc3NSZWxhdW5jaCkKICAgICBhdXRvIHdl
YlZpZXcgPSBjcmVhdGVBbmltYXRlZFJlc2l6ZVdlYlZpZXcoKTsKICAgICBbd2ViVmlldyBzZXRV
SURlbGVnYXRlOndlYlZpZXcuZ2V0KCldOwogCi0gICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0
UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDIwMCwgNTApIG1heGlt
dW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMjAwLCA1MCldOworICAgIFt3ZWJW
aWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXpl
TWFrZSgyMDAsIDUwKSBtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDIw
MCwgNTApIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMjAwLCA1MCld
OwogCiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8aGVhZD48bWV0YSBuYW1lPSd2aWV3
cG9ydCcgY29udGVudD0naW5pdGlhbC1zY2FsZT0xJz48L2hlYWQ+IiBiYXNlVVJMOm5pbF07CiAg
ICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOwpAQCAtMjYzLDcg
KzI2Myw3IEBAIFRFU1QoV2ViS2l0LCBPdmVycmlkZUxheW91dFNpemVJc1Jlc3RvcmVkQWZ0ZXJD
aGFuZ2luZ0R1cmluZ1Byb2Nlc3NSZWxhdW5jaCkKICAgICBhdXRvIHdlYlZpZXcgPSBjcmVhdGVB
bmltYXRlZFJlc2l6ZVdlYlZpZXcoKTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOndlYlZp
ZXcuZ2V0KCldOwogCi0gICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhN
aW5pbXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDEwMCwgMTAwKSBtYXhpbXVtVW5vYnNjdXJlZFNp
emVPdmVycmlkZTpDR1NpemVNYWtlKDEwMCwgMTAwKV07CisgICAgW3dlYlZpZXcgX292ZXJyaWRl
TGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDEwMCwgMTAw
KSBtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDEwMCwgMTAwKSBtYXhp
bXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDEwMCwgMTAwKV07CiAKICAgICBb
d2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxoZWFkPjxtZXRhIG5hbWU9J3ZpZXdwb3J0JyBjb250
ZW50PSdpbml0aWFsLXNjYWxlPTEnPjwvaGVhZD4iIGJhc2VVUkw6bmlsXTsKICAgICBbd2ViVmll
dyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CkBAIC0yNzMsNyArMjczLDcgQEAg
VEVTVChXZWJLaXQsIE92ZXJyaWRlTGF5b3V0U2l6ZUlzUmVzdG9yZWRBZnRlckNoYW5naW5nRHVy
aW5nUHJvY2Vzc1JlbGF1bmNoKQogICAgIFt3aW5kb3cgc2V0SGlkZGVuOk5PXTsKIAogICAgIFt3
ZWJWaWV3IF9raWxsV2ViQ29udGVudFByb2Nlc3NBbmRSZXNldFN0YXRlXTsKLSAgICBbd2ViVmll
dyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1h
a2UoMjAwLCA1MCkgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgyMDAs
IDUwKV07CisgICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVt
TGF5b3V0U2l6ZTpDR1NpemVNYWtlKDIwMCwgNTApIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJy
aWRlOkNHU2l6ZU1ha2UoMjAwLCA1MCkgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dT
aXplTWFrZSgyMDAsIDUwKV07CiAKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxoZWFk
PjxtZXRhIG5hbWU9J3ZpZXdwb3J0JyBjb250ZW50PSdpbml0aWFsLXNjYWxlPTEnPjwvaGVhZD4i
IGJhc2VVUkw6bmlsXTsKICAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdh
dGlvbl07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0NTU1ZpZXdwb3J0VW5pdHMuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvQ1NTVmlld3BvcnRVbml0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwMmFhMDU4OGRjZDZlZTI3
NjZjYmMwNzkyNjU5OTNjODQ4ZWVjZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NTU1ZpZXdwb3J0VW5pdHMuaHRtbApAQCAtMCwwICsx
LDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0
IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CisKKyAgICA8
c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDA7Cit9CitkaXYgeworICAgIGRpc3BsYXk6IGlu
bGluZS1ibG9jazsKKyAgICB3aWR0aDogMXB4OworfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgICA8ZGl2IGlkPSJ2dyIgc3R5bGU9ImhlaWdodDogMTAwdnc7Ij48L2Rpdj4KKyAg
ICA8ZGl2IGlkPSJ2aCIgc3R5bGU9ImhlaWdodDogMTAwdmg7Ij48L2Rpdj4KKyAgICA8ZGl2IGlk
PSJ2bWluIiBzdHlsZT0iaGVpZ2h0OiAxMDB2bWluOyI+PC9kaXY+CisgICAgPGRpdiBpZD0idm1h
eCIgc3R5bGU9ImhlaWdodDogMTAwdm1heDsiPjwvZGl2PgorCisgICAgPGRpdiBpZD0ic3Z3IiBz
dHlsZT0iaGVpZ2h0OiAxMDBzdnc7Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJzdmgiIHN0eWxlPSJo
ZWlnaHQ6IDEwMHN2aDsiPjwvZGl2PgorICAgIDxkaXYgaWQ9InN2bWluIiBzdHlsZT0iaGVpZ2h0
OiAxMDBzdm1pbjsiPjwvZGl2PgorICAgIDxkaXYgaWQ9InN2bWF4IiBzdHlsZT0iaGVpZ2h0OiAx
MDBzdm1heDsiPjwvZGl2PgorCisgICAgPGRpdiBpZD0ibHZ3IiBzdHlsZT0iaGVpZ2h0OiAxMDBs
dnc7Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJsdmgiIHN0eWxlPSJoZWlnaHQ6IDEwMGx2aDsiPjwv
ZGl2PgorICAgIDxkaXYgaWQ9Imx2bWluIiBzdHlsZT0iaGVpZ2h0OiAxMDBsdm1pbjsiPjwvZGl2
PgorICAgIDxkaXYgaWQ9Imx2bWF4IiBzdHlsZT0iaGVpZ2h0OiAxMDBsdm1heDsiPjwvZGl2Pgor
CisgICAgPGRpdiBpZD0iZHZ3IiBzdHlsZT0iaGVpZ2h0OiAxMDBkdnc7Ij48L2Rpdj4KKyAgICA8
ZGl2IGlkPSJkdmgiIHN0eWxlPSJoZWlnaHQ6IDEwMGR2aDsiPjwvZGl2PgorICAgIDxkaXYgaWQ9
ImR2bWluIiBzdHlsZT0iaGVpZ2h0OiAxMDBkdm1pbjsiPjwvZGl2PgorICAgIDxkaXYgaWQ9ImR2
bWF4IiBzdHlsZT0iaGVpZ2h0OiAxMDBkdm1heDsiPjwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DU1NWaWV3cG9ydFVuaXRz
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DU1NWaWV3cG9ydFVu
aXRzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRjOGIzMDI0ZmJiZjJkNTFiNGM4YmE3NjI2YTAwYTllNWQwYmJh
NGYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0NTU1ZpZXdwb3J0VW5pdHMubW0KQEAgLTAsMCArMSwxNTMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1w
b3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5o
PgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitzdGF0aWMgaW50IGdldEVsZW1lbnRIZWln
aHQoV0tXZWJWaWV3ICp3ZWJWaWV3LCBOU1N0cmluZyAqZWxlbWVudElEKQoreworICAgIHJldHVy
biBbKE5TTnVtYmVyICopW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpbTlNT
dHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCclQCcpLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCIsIGVsZW1lbnRJRF1dIGludFZhbHVlXTsKK30K
KworVEVTVChDU1NWaWV3cG9ydFVuaXRzLCBBbGxTYW1lKQoreworICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2Uo
MCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFn
ZU5hbWVkOkAiQ1NTVmlld3BvcnRVbml0cyJdOworCisgICAgRVhQRUNUX0VRKDMyMCwgZ2V0RWxl
bWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZ3IikpOworICAgIEVYUEVDVF9FUSg1MDAsIGdl
dEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2aCIpKTsKKyAgICBFWFBFQ1RfRVEoMzIw
LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidm1pbiIpKTsKKyAgICBFWFBFQ1Rf
RVEoNTAwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidm1heCIpKTsKKworICAg
IEVYUEVDVF9FUSgzMjAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJzdnciKSk7
CisgICAgRVhQRUNUX0VRKDUwMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInN2
aCIpKTsKKyAgICBFWFBFQ1RfRVEoMzIwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCks
IEAic3ZtaW4iKSk7CisgICAgRVhQRUNUX0VRKDUwMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3
LmdldCgpLCBAInN2bWF4IikpOworCisgICAgRVhQRUNUX0VRKDMyMCwgZ2V0RWxlbWVudEhlaWdo
dCh3ZWJWaWV3LmdldCgpLCBAImx2dyIpKTsKKyAgICBFWFBFQ1RfRVEoNTAwLCBnZXRFbGVtZW50
SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZoIikpOworICAgIEVYUEVDVF9FUSgzMjAsIGdldEVs
ZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdm1pbiIpKTsKKyAgICBFWFBFQ1RfRVEoNTAw
LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZtYXgiKSk7CisKKyAgICBFWFBF
Q1RfRVEoMzIwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZ3IikpOworICAg
IEVYUEVDVF9FUSg1MDAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJkdmgiKSk7
CisgICAgRVhQRUNUX0VRKDMyMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImR2
bWluIikpOworICAgIEVYUEVDVF9FUSg1MDAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQo
KSwgQCJkdm1heCIpKTsKK30KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKK1RFU1QoQ1NT
Vmlld3BvcnRVbml0cywgRW1wdHlVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlcykKK3sKKyAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpD
R1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOworICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91
dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFrZSgxNDEsIDE0OSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRl
OkNHU2l6ZVplcm8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGltdW1Vbm9ic2N1
cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZVplcm9dOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlM
b2FkVGVzdFBhZ2VOYW1lZDpAIkNTU1ZpZXdwb3J0VW5pdHMiXTsKKworICAgIEVYUEVDVF9FUSgx
NDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2dyIpKTsKKyAgICBFWFBFQ1Rf
RVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidmgiKSk7CisgICAgRVhQ
RUNUX0VRKDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZtaW4iKSk7Cisg
ICAgRVhQRUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZtYXgi
KSk7CisKKyAgICBFWFBFQ1RfRVEoMTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCks
IEAic3Z3IikpOworICAgIEVYUEVDVF9FUSgxNDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5n
ZXQoKSwgQCJzdmgiKSk7CisgICAgRVhQRUNUX0VRKDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJW
aWV3LmdldCgpLCBAInN2bWluIikpOworICAgIEVYUEVDVF9FUSgxNDksIGdldEVsZW1lbnRIZWln
aHQod2ViVmlldy5nZXQoKSwgQCJzdm1heCIpKTsKKworICAgIEVYUEVDVF9FUSgxNDEsIGdldEVs
ZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdnciKSk7CisgICAgRVhQRUNUX0VRKDE0OSwg
Z2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2aCIpKTsKKyAgICBFWFBFQ1RfRVEo
MTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZtaW4iKSk7CisgICAgRVhQ
RUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2bWF4IikpOwor
CisgICAgRVhQRUNUX0VRKDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImR2
dyIpKTsKKyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCks
IEAiZHZoIikpOworICAgIEVYUEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5n
ZXQoKSwgQCJkdm1pbiIpKTsKKyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdl
YlZpZXcuZ2V0KCksIEAiZHZtYXgiKSk7Cit9CisKK1RFU1QoQ1NTVmlld3BvcnRVbml0cywgU2Ft
ZVVub2JzY3VyZWRTaXplT3ZlcnJpZGVzKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIw
LCA1MDApXSk7CisgICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5p
bXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDE0MSwgMTQ5KQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgxNDEsIDE0
OSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92
ZXJyaWRlOkNHU2l6ZU1ha2UoMTQxLCAxNDkpXTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5
TG9hZFRlc3RQYWdlTmFtZWQ6QCJDU1NWaWV3cG9ydFVuaXRzIl07CisKKyAgICBFWFBFQ1RfRVEo
MTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidnciKSk7CisgICAgRVhQRUNU
X0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZoIikpOworICAgIEVY
UEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2bWluIikpOwor
ICAgIEVYUEVDVF9FUSgxNDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2bWF4
IikpOworCisgICAgRVhQRUNUX0VRKDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgp
LCBAInN2dyIpKTsKKyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcu
Z2V0KCksIEAic3ZoIikpOworICAgIEVYUEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2Vi
Vmlldy5nZXQoKSwgQCJzdm1pbiIpKTsKKyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVp
Z2h0KHdlYlZpZXcuZ2V0KCksIEAic3ZtYXgiKSk7CisKKyAgICBFWFBFQ1RfRVEoMTQxLCBnZXRF
bGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZ3IikpOworICAgIEVYUEVDVF9FUSgxNDks
IGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdmgiKSk7CisgICAgRVhQRUNUX0VR
KDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2bWluIikpOworICAgIEVY
UEVDVF9FUSgxNDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdm1heCIpKTsK
KworICAgIEVYUEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJk
dnciKSk7CisgICAgRVhQRUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgp
LCBAImR2aCIpKTsKKyAgICBFWFBFQ1RfRVEoMTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcu
Z2V0KCksIEAiZHZtaW4iKSk7CisgICAgRVhQRUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3
ZWJWaWV3LmdldCgpLCBAImR2bWF4IikpOworfQorCitURVNUKENTU1ZpZXdwb3J0VW5pdHMsIERp
ZmZlcmVudFVub2JzY3VyZWRTaXplT3ZlcnJpZGVzKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwg
MCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dp
dGhNaW5pbXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDEzMSwgMTM5KQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgx
MjEsIDEyOSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGltdW1Vbm9ic2N1cmVk
U2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMTQxLCAxNDkpXTsKKyAgICBbd2ViVmlldyBzeW5jaHJv
bm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJDU1NWaWV3cG9ydFVuaXRzIl07CisKKyAgICBFWFBF
Q1RfRVEoMTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidnciKSk7CisgICAg
RVhQRUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZoIikpOwor
ICAgIEVYUEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2bWlu
IikpOworICAgIEVYUEVDVF9FUSgxNDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwg
QCJ2bWF4IikpOworCisgICAgRVhQRUNUX0VRKDEyMSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3
LmdldCgpLCBAInN2dyIpKTsKKyAgICBFWFBFQ1RfRVEoMTI5LCBnZXRFbGVtZW50SGVpZ2h0KHdl
YlZpZXcuZ2V0KCksIEAic3ZoIikpOworICAgIEVYUEVDVF9FUSgxMjEsIGdldEVsZW1lbnRIZWln
aHQod2ViVmlldy5nZXQoKSwgQCJzdm1pbiIpKTsKKyAgICBFWFBFQ1RfRVEoMTI5LCBnZXRFbGVt
ZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAic3ZtYXgiKSk7CisKKyAgICBFWFBFQ1RfRVEoMTQx
LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZ3IikpOworICAgIEVYUEVDVF9F
USgxNDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdmgiKSk7CisgICAgRVhQ
RUNUX0VRKDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2bWluIikpOwor
ICAgIEVYUEVDVF9FUSgxNDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdm1h
eCIpKTsKKworICAgIEVYUEVDVF9FUSgxMzEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQo
KSwgQCJkdnciKSk7CisgICAgRVhQRUNUX0VRKDEzOSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3
LmdldCgpLCBAImR2aCIpKTsKKyAgICBFWFBFQ1RfRVEoMTMxLCBnZXRFbGVtZW50SGVpZ2h0KHdl
YlZpZXcuZ2V0KCksIEAiZHZtaW4iKSk7CisgICAgRVhQRUNUX0VRKDEzOSwgZ2V0RWxlbWVudEhl
aWdodCh3ZWJWaWV3LmdldCgpLCBAImR2bWF4IikpOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0o
SU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvRml4ZWRMYXlvdXRTaXplLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9GaXhlZExheW91dFNpemUubW0KaW5kZXggZjhiYmZiNTY1MGNlYzk3NmViYTVhZDhl
YjgyY2RmZWZkZTc2MmMxZi4uMGI0M2EwZjBhM2FjMmZlZTY1YjA1NjQ2MTAxMWZmMGRmNDBlNjc2
YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaXhl
ZExheW91dFNpemUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9GaXhlZExheW91dFNpemUubW0KQEAgLTM3LDcgKzM3LDcgQEAKIFRFU1QoV2ViS2l0LCBPdmVy
cmlkZU1pbmltdW1MYXlvdXRTaXplV2l0aE5lZ2F0aXZlSGVpZ2h0KQogewogICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVj
dE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7Ci0gICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFy
YW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDMyMCwgLTEwMDApIG1heGlt
dW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMCwgMCldOworICAgIFt3ZWJWaWV3
IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFr
ZSgzMjAsIC0xMDAwKSBtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDAs
IDApIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMCwgMCldOwogICAg
IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxtZXRhIG5hbWU9J3ZpZXdw
b3J0JyBjb250ZW50PSd3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSc+PGJvZHk+
SGVsbG88L2JvZHk+Il07CiAgICAgRVhQRUNUX0dFKFt3ZWJWaWV3IF9maXhlZExheW91dFNpemVd
LmhlaWdodCwgMCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lv
cy9TY3JvbGxWaWV3U2Nyb2xsYWJpbGl0eVRlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9pb3MvU2Nyb2xsVmlld1Njcm9sbGFiaWxpdHlUZXN0cy5tbQppbmRleCBjNDU1ZjUxYjM1
MjlhMTU3YWM1N2I5ZjQzZTg3ZThmMDFhMDEyN2VkLi4wZjkxMjQ0ODMxMWQ4MTg5NmYwMjhhYmI4
MjRmMzE3MTgyZmMzMWI5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lv
cy9TY3JvbGxWaWV3U2Nyb2xsYWJpbGl0eVRlc3RzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvaW9zL1Njcm9sbFZpZXdTY3JvbGxhYmlsaXR5VGVzdHMubW0KQEAgLTExNSw3ICsx
MTUsNyBAQCBURVNUKFNjcm9sbFZpZXdTY3JvbGxhYmlsaXR5VGVzdHMsIFNjcm9sbGFibGVXaXRo
T3ZlcmZsb3dIaWRkZW5BbmRWaXNpYmxlVUkpCiAgICAgb2JzY3VyZWRJbnNldHMucmlnaHQgPSAw
OwogCiAgICAgW3dlYlZpZXcgX3NldE9ic2N1cmVkSW5zZXRzOm9ic2N1cmVkSW5zZXRzXTsKLSAg
ICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXpl
OkNHU2l6ZU1ha2UoMzIwLCA0MDYpIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6
ZU1ha2UoMzIwLCA0OTApXTsKKyAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJz
V2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMzIwLCA0MDYpIG1pbmltdW1Vbm9ic2N1
cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMzIwLCA0MDYpIG1heGltdW1Vbm9ic2N1cmVkU2l6
ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMzIwLCA0OTApXTsKIAogICAgIFt3ZWJWaWV3IHN5bmNocm9u
b3VzbHlMb2FkSFRNTFN0cmluZzpub25TY3JvbGxhYmxlRG9jdW1lbnRNYXJrdXBdOwogICAgIFt3
ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKQEAgLTEzNCw3ICsxMzQsNyBA
QCBURVNUKFNjcm9sbFZpZXdTY3JvbGxhYmlsaXR5VGVzdHMsIFNjcm9sbGFibGVXaXRoT3ZlcmZs
b3dIaWRkZW5BbmRTaHJ1bmtVSSkKICAgICBvYnNjdXJlZEluc2V0cy5yaWdodCA9IDA7CiAKICAg
ICBbd2ViVmlldyBfc2V0T2JzY3VyZWRJbnNldHM6b2JzY3VyZWRJbnNldHNdOwotICAgIFt3ZWJW
aWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXpl
TWFrZSh2aWV3SGVpZ2h0LCA0MTQpIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6
ZU1ha2Uodmlld0hlaWdodCwgNDE0KV07CisgICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFy
YW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKHZpZXdIZWlnaHQsIDQxNCkg
bWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSh2aWV3SGVpZ2h0LCA0MTQp
IG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2Uodmlld0hlaWdodCwgNDE0
KV07CiAKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6bm9uU2Nyb2xs
YWJsZURvY3VtZW50TWFya3VwXTsKICAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlv
blVwZGF0ZV07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440319</attachid>
            <date>2021-10-05 19:02:21 -0700</date>
            <delta_ts>2021-10-07 17:17:36 -0700</delta_ts>
            <desc>[Patch] WIP</desc>
            <filename>bug-219287-20211005190221.patch</filename>
            <type>text/plain</type>
            <size>95949</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3MjA2Y2JkMzBkOWFlZTFkOTI5YWVlOGI3YWE5YmJhZmU1YzljMGFhLi43
ZDBhMTU4ZjE2YmRlMmYxNmM1YjMzZmUzNjliMjM3N2RiZGExODc4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsOTIgQEAKKzIwMjEtMTAtMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFtjc3MtdmFsdWVzLTRdIFN1cHBvcnQgc21hbGwgKHN2KiksIGxhcmdlIChs
diopIGFuZCBkeW5hbWljIChkdiopIHZpZXdwb3J0IHVuaXRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyODcKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzcxODU3MzcwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFNwZWM6IDxodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXZhbHVlcy00LyN2aWV3
cG9ydC12YXJpYW50cz4KKworICAgICAgICBUZXN0czogQ1NTVmlld3BvcnRVbml0cy5BbGxTYW1l
CisgICAgICAgICAgICAgICBDU1NWaWV3cG9ydFVuaXRzLkVtcHR5VW5vYnNjdXJlZFNpemVPdmVy
cmlkZXMKKyAgICAgICAgICAgICAgIENTU1ZpZXdwb3J0VW5pdHMuU2FtZVVub2JzY3VyZWRTaXpl
T3ZlcnJpZGVzCisgICAgICAgICAgICAgICBDU1NWaWV3cG9ydFVuaXRzLkRpZmZlcmVudFVub2Jz
Y3VyZWRTaXplT3ZlcnJpZGVzCisKKyAgICAgICAgKiBjc3MvQ1NTVW5pdHMuaDoKKyAgICAgICAg
KiBjc3MvQ1NTVW5pdHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAg
ICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6aXNWaWV3cG9ydFBlcmNlbnRhZ2VMZW5ndGgpOgorICAgICAgICAqIGNzcy9D
U1NQcmltaXRpdmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1ZhbGlkQ1NTVW5pdFR5
cGVGb3JEb3VibGVDb252ZXJzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmlzU3RyaW5nVHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y2xlYW51cCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZVVuem9vbWVkTm9uQ2FsY0xlbmd0
aERvdWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZU5v
bkNhbGNMZW5ndGhEb3VibGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
OnVuaXRUeXBlU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpm
b3JtYXROdW1iZXJGb3JDdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1ByaW1pdGl2ZVZhbHVlOjplcXVhbHMgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhLmg6CisgICAgICAgICogY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6c21h
bGxWaWV3cG9ydFdpZHRoRmFjdG9yIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpD
U1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpzbWFsbFZpZXdwb3J0SGVpZ2h0RmFjdG9yIGNvbnN0
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpz
bWFsbFZpZXdwb3J0TWluRmFjdG9yIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpD
U1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpzbWFsbFZpZXdwb3J0TWF4RmFjdG9yIGNvbnN0KTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpsYXJn
ZVZpZXdwb3J0V2lkdGhGYWN0b3IgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OmxhcmdlVmlld3BvcnRIZWlnaHRGYWN0b3IgY29uc3Qp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6Omxh
cmdlVmlld3BvcnRNaW5GYWN0b3IgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OmxhcmdlVmlld3BvcnRNYXhGYWN0b3IgY29uc3QpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OmR5bmFt
aWNWaWV3cG9ydFdpZHRoRmFjdG9yIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpD
U1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpkeW5hbWljVmlld3BvcnRIZWlnaHRGYWN0b3IgY29u
c3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6
OmR5bmFtaWNWaWV3cG9ydE1pbkZhY3RvciBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6ZHluYW1pY1ZpZXdwb3J0TWF4RmFjdG9yIGNv
bnN0KTogQWRkZWQuCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjc3NQcmltaXRpdmVWYWx1ZVVuaXRGcm9tVHJpZSk6CisgICAgICAg
ICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lTGVuZ3RoUmF3V2l0aEtub3du
VG9rZW5UeXBlRGltZW5zaW9uKToKKyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjQ2F0ZWdvcnlN
YXBwaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGNVbml0Q2F0ZWdvcnkpOgorICAgICAg
ICAoV2ViQ29yZTo6Y2FsY3VsYXRpb25DYXRlZ29yeUZvckNvbWJpbmF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6Omhhc0RvdWJsZVZhbHVlKToKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNp
bmcgdGhlIGZvbGxvd2luZyBhbmQgY29udmVydGluZyB0aGVtIHRvIHRoZWlyIHVuZGVybHlpbmcg
dmFsdWU6CisgICAgICAgIC0gYHN2d2AgInNtYWxsIHZpZXdwb3J0IHdpZHRoIiBpcyB0aGUgd2lk
dGggb2YgdGhlIHZpZXdwb3J0IGlmIGFsbCBVQSBpbnRlcmZhY2VzIGFyZSBtYXhpbWl6ZWQKKyAg
ICAgICAgLSBgc3ZoYCAic21hbGwgdmlld3BvcnQgaGVpZ2h0IiBpcyB0aGUgaGVpZ2h0IG9mIHRo
ZSB2aWV3cG9ydCBpZiBhbGwgVUEgaW50ZXJmYWNlcyBhcmUgbWF4aW1pemVkCisgICAgICAgIC0g
YHN2bWluYCAic21hbGwgdmlld3BvcnQgc21hbGwgZGltZW5zaW9uIiBpcyBgbWluKHN2dywgc3Zo
KWAKKyAgICAgICAgLSBgc3ZtYXhgICJzbWFsbCB2aWV3cG9ydCBsYXJnZSBkaW1lbnNpb24iIGlz
IGBtYXgoc3Z3LCBzdmgpYAorICAgICAgICAtIGBsdndgICJsYXJnZSB2aWV3cG9ydCB3aWR0aCIg
aXMgdGhlIHdpZHRoIG9mIHRoZSB2aWV3cG9ydCBpZiBhbGwgVUEgaW50ZXJmYWNlcyBhcmUgbWlu
aW1pemVkCisgICAgICAgIC0gYGx2aGAgImxhcmdlIHZpZXdwb3J0IGhlaWdodCIgaXMgdGhlIGhl
aWdodCBvZiB0aGUgdmlld3BvcnQgaWYgYWxsIFVBIGludGVyZmFjZXMgYXJlIG1pbmltaXplZAor
ICAgICAgICAtIGBsdm1pbmAgImxhcmdlIHZpZXdwb3J0IHNtYWxsIGRpbWVuc2lvbiIgaXMgYG1p
bihsdncsIGx2aClgCisgICAgICAgIC0gYGx2bWF4YCAibGFyZ2Ugdmlld3BvcnQgbGFyZ2UgZGlt
ZW5zaW9uIiBpcyBgbWF4KGx2dywgbHZoKWAKKyAgICAgICAgLSBgZHZ3YCAiZHluYW1pYyB2aWV3
cG9ydCB3aWR0aCIgaXMgdGhlIHdpZHRoIG9mIHRoZSB2aWV3cG9ydCB3aXRoIGFsbCBVQSBpbnRl
cmZhY2VzIGJlaW5nIGluIHdoYXRldmVyIHN0YXRlIHRoZXkgYXJlIGN1cnJlbnRseSBpbgorICAg
ICAgICAtIGBkdmhgICJkeW5hbWljIHZpZXdwb3J0IGhlaWdodCIgaXMgdGhlIGhlaWdodCBvZiB0
aGUgdmlld3BvcnQgd2l0aCBhbGwgVUEgaW50ZXJmYWNlcyBiZWluZyBpbiB3aGF0ZXZlciBzdGF0
ZSB0aGV5IGFyZSBjdXJyZW50bHkgaW4KKyAgICAgICAgLSBgZHZtaW5gICJkeW5hbWljIHZpZXdw
b3J0IHNtYWxsIGRpbWVuc2lvbiIgaXMgYG1pbihkdncsIGR2aClgCisgICAgICAgIC0gYGR2bWF4
YCAiZHluYW1pYyB2aWV3cG9ydCBsYXJnZSBkaW1lbnNpb24iIGlzIGBtYXgoZHZ3LCBkdmgpYAor
ICAgICAgICBUaGUgZXhpc3RpbmcgYHZ3YC9gdmhgL2B2bWluYC9gdm1heGAgY29ycmVzcG9uZCB0
byB0aGUgIlVBLWRlZmF1bHQgdmlld3BvcnQiLCB3aGljaCBXZWJLaXQKKyAgICAgICAgY29uc2lk
ZXJzIGVxdWl2YWxlbnQgdG8gdGhlICJsYXJnZSB2aWV3cG9ydCIgYGx2d2AvYGx2aGAvYGx2bWlu
YC9gbHZtYXhgLgorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnVub2JzY3VyZWRD
b250ZW50U2l6ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRNaW5p
bXVtVmlld3BvcnRTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVZpZXc6OmNsZWFyTWluaW11bVZpZXdwb3J0U2l6ZU92ZXJyaWRlRm9y
Q1NTU21hbGxWaWV3cG9ydFVuaXRzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6Om1pbmltdW1WaWV3cG9ydFNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMgY29uc3QpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6bWF4aW11bVZpZXdwb3J0U2l6ZUZv
ckNTU0xhcmdlVmlld3BvcnRVbml0cyBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjpjdXJyZW50Vmlld3BvcnRTaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMg
Y29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZp
ZXc6Om1pbmltdW1WaWV3cG9ydFNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMgY29uc3QpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6Om1heGltdW1WaWV3cG9ydFNpemVG
b3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclZpZXc6OmN1cnJlbnRWaWV3cG9ydFNpemVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0
cyBjb25zdCk6IEFkZGVkLgorICAgICAgICBGb3IgInNtYWxsIHZpZXdwb3J0IiBgc3Z3YC9gc3Zo
YC9gc3ZtaW5gL2Bzdm1heGAsIGFkZCBzdXBwb3J0IGZvciBhIG5ldyBgSW50U2l6ZWAgbWVtYmVy
CisgICAgICAgIHRoYXQgaXMgcHJvcGFnYXRlZCBmcm9tIHRoZSBVSVByb2Nlc3MuIElmIG5vdCBz
ZXQsIGZhbGwgYmFjayB0byAiVUEtZGVmYXVsdCB2aWV3cG9ydCIgYHZ3YC9gdmhgL2B2bWluYC9g
dm1heGAuCisgICAgICAgIEZvciAibGFyZ2Ugdmlld3BvcnQiIGBsdndgL2BsdmhgL2Bsdm1pbmAv
YGx2bWF4YCwgdXNlIHRoZSBzYW1lIHZhbHVlIGFzICJVQS1kZWZhdWx0IHZpZXdwb3J0IiBgdndg
L2B2aGAvYHZtaW5gL2B2bWF4YC4KKyAgICAgICAgRm9yICJkeW5hbWljIHZpZXdwb3J0IiBgZHZ3
YC9gZHZoYC9gZHZtaW5gL2Bkdm1heGAsIHVzZSB0aGUgc2FtZSB2YWx1ZSBhcyBgd2luZG93Lmlu
bmVyKmAKKworICAgICAgICAqIGNzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6cHJpbWl0
aXZlVHlwZSBjb25zdCk6CisgICAgICAgIERvbid0IGBBU1NFUlRfTk9UX1JFQUNIRURgIG5vdyB0
aGF0IHRoZXJlIGFyZSBuZXcgdW5pdCB0eXBlcy4KKwogMjAyMS0xMC0wNSAgSm9obiBXaWxhbmRl
ciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBQQ006IEFsbG93IG1lYXN1cmVtZW50
IG9mIGxpbmtzIGluIG5lc3RlZCwgY3Jvc3Mtc2l0ZSBpZnJhbWVzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5n
ZUxvZwppbmRleCA4MzBkODEyOTVmMWQ0ZjdkMzg0MjdjOTY5NTY5MmNhZjNhZjM1ODY4Li44M2Mz
MGNhNjY3ZTZkZDI1NzYxMTQ2MGQ5OTY5YTg5NGJlZDJlZWEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0xMC0wNSAgRGV2aW4gUm91c3NvICA8ZHJvdXNz
b0BhcHBsZS5jb20+CisKKyAgICAgICAgW2Nzcy12YWx1ZXMtNF0gU3VwcG9ydCBzbWFsbCAoc3Yq
KSwgbGFyZ2UgKGx2KikgYW5kIGR5bmFtaWMgKGR2Kikgdmlld3BvcnQgdW5pdHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTI4NworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzE4NTczNzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9DU1NDb21wbGV0aW9ucy5q
czoKKwogMjAyMS0xMC0wNSAgUGF0cmljayBBbmdsZSAgPHBhbmdsZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogU2hvdyBjb2xvciBzcGFjZSBmb3IgY2FudmFzZXMgaW4gdGhl
IEdyYXBoaWNzIHRhYiBvbiB0aGUgb3ZlcnZpZXcgY2FyZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjM0MTNkOWY5
ZjdlMDdhN2ZiMTRhNjczYWIwZGJiOGMxZTQxMDZmMS4uNDMwMDkxYjU5ZGU2MmM1ZTFiODFhYWUz
YjY2NTFlOWE1YmM4Yzg3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAorMjAyMS0xMC0wNSAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW2Nzcy12YWx1ZXMt
NF0gU3VwcG9ydCBzbWFsbCAoc3YqKSwgbGFyZ2UgKGx2KikgYW5kIGR5bmFtaWMgKGR2Kikgdmll
d3BvcnQgdW5pdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxOTI4NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzE4NTczNzA+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3BlYzogPGh0dHBzOi8vZHJh
ZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTQvI3ZpZXdwb3J0LXZhcmlhbnRzPgorCisgICAgICAg
IFRlc3RzOiBDU1NWaWV3cG9ydFVuaXRzLkFsbFNhbWUKKyAgICAgICAgICAgICAgIENTU1ZpZXdw
b3J0VW5pdHMuRW1wdHlVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlcworICAgICAgICAgICAgICAgQ1NT
Vmlld3BvcnRVbml0cy5TYW1lVW5vYnNjdXJlZFNpemVPdmVycmlkZXMKKyAgICAgICAgICAgICAg
IENTU1ZpZXdwb3J0VW5pdHMuRGlmZmVyZW50VW5vYnNjdXJlZFNpemVPdmVycmlkZXMKKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfcHJv
Y2Vzc1dpbGxTd2FwT3JEaWRFeGl0XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZGlzcGF0Y2hT
ZXRNaW5pbXVtVW5vYnNjdXJlZFNpemU6XSk6IEFkZGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcg
X2ZyYW1lT3JCb3VuZHNDaGFuZ2VkXSk6CisgICAgICAgIChhY3RpdmVNaW5pbXVtVW5vYnNjdXJl
ZFNpemUpOiBBZGRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaWRDb21wbGV0ZUFuaW1hdGVk
UmVzaXplXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfbWluaW11bVVub2JzY3VyZWRTaXplT3Zl
cnJpZGVdKTogQWRkZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0TWluaW11bVVub2JzY3Vy
ZWRTaXplT3ZlcnJpZGU6XSk6IEFkZGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgX2JlZ2luQW5p
bWF0ZWRSZXNpemVXaXRoVXBkYXRlczpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9vdmVycmlk
ZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6bWF4aW11bVVub2JzY3VyZWRT
aXplT3ZlcnJpZGU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJh
bWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOm1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRl
Om1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOl0pOiBBZGRlZC4KKyAgICAgICAgUmVxdWly
ZSB0aGF0IGNsaWVudHMgd2hvIG92ZXJyaWRlIGxheW91dCBwYXJhbWV0ZXJzIHRvIHByb3ZpZGUg
Ym90aCAob3IgbmVpdGhlcikgYSBtYXhpbXVtCisgICAgICAgIGFuZCBtaW5pbXVtIHVub2JzY3Vy
ZWQgc2l6ZSBvdmVycmlkZSwgdGhlIGxhdHRlciBiZWluZyBmb3IgInNtYWxsIHZpZXdwb3J0IiBg
c3Z3YC9gc3ZoYC9gc3ZtaW5gL2Bzdm1heGAuCisgICAgICAgICJsYXJnZSB2aWV3cG9ydCIgYGx2
d2AvYGx2aGAvYGx2bWluYC9gbHZtYXhgIGFuZCAiZHluYW1pYyB2aWV3cG9ydCIgYGR2d2AvYGR2
aGAvYGR2bWluYC9gZHZtYXhgCisgICAgICAgIChhcyB3ZWxsIGFzIHRoZSBleGlzdGluZyAiVUEt
ZGVmYXVsdCB2aWV3cG9ydCIgYHZ3YC9gdmhgL2B2bWluYC9gdm1heGApIGNhbiBiZSBkZXJpdmVk
IGZyb20KKyAgICAgICAgZXhpc3RpbmcgbG9naWMuIFNlZSB0aGUgV2ViQ29yZSBDaGFuZ2VMb2cg
Zm9yIG1vcmUgaW5mb3JtYXRpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0TWluaW11bVVub2JzY3VyZWRTaXplKTogQWRk
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6dXBkYXRlVmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyk6CisgICAgICAgIEFkZCBw
aXBpbmcgZnJvbSB0aGUgVUlQcm9jZXNzIHRvIHRoZSBXZWJQcm9jZXNzIGZvciB0aGUgbmV3IG1p
bmltdW0gdW5vYnNjdXJlZCBzaXplIG92ZXJyaWRlLgorCisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtX
S0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciB2aWV3V2lsbFRyYW5zaXRpb25Ub1NpemU6d2l0aFRy
YW5zaXRpb25Db29yZGluYXRvcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Z1bGxzY3Jl
ZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgKC1bV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlciBlbnRlckZ1bGxTY3JlZW5dKToKKyAgICAgICAgUmVwbGFj
ZSBgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTptYXhpbXVt
VW5vYnNjdXJlZFNpemVPdmVycmlkZTpgIHdpdGgKKyAgICAgICAgYF9vdmVycmlkZUxheW91dFBh
cmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6bWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJp
ZGU6bWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6YC4KKwogMjAyMS0xMC0wNSAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIERvIGRhaWx5
IGFjdGl2aXR5IGluIEFkQXR0cmlidXRpb25EYWVtb24gYmFzZWQgb2ZmIG9mIHdoZW4gdGhlIHhw
YyBhY3Rpdml0eSBoYXBwZW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJp
bWl0aXZlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNw
cAppbmRleCBjNDdlYjdjNGU0MmMyOGFhZmMyZmFhZDNkMTZiOTg5MjNkZGJmOTNkLi40YjI2MmM1
NGJiNDBjY2VmZWZmODA2NjViZDE1ZDIwYzVkNjkxZWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcmltaXRpdmVWYWx1ZS5jcHAKQEAgLTYwLDYgKzYwLDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBpc1ZhbGlkQ1NTVW5pdFR5cGVGb3JEb3VibGVDb252ZXJzaW9uKENTU1VuaXRUeXBlIHVuaXRU
eXBlKQogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DTToKICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfREVHOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ESU1FTlNJT046CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19EVlc6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0VNUzoKICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRVhTOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19GUjoKQEAgLTc2LDEx
ICs4MCwxOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZENTU1VuaXRUeXBlRm9yRG91Ymxl
Q29udmVyc2lvbihDU1NVbml0VHlwZSB1bml0VHlwZSkKICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfUFg6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1E6CiAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0xIUzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOgorICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19MVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
UkxIUzoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUVVJUktZX0VNUzoKICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfUkFEOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SRU1TOgogICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19TVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgogICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19UVVJOOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSDoKICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfVk1BWDoKQEAgLTEzOSw2ICsxNTEsMTAgQEAgc3RhdGljIGlu
bGluZSBib29sIGlzU3RyaW5nVHlwZShDU1NVbml0VHlwZSB0eXBlKQogICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19EUENNOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUEk6CiAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0RQUFg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoK
KyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0RWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6CiAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1g6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0VNUzoKICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfRVhTOgpAQCAtMTQ5LDYgKzE2NSwxMCBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgaXNTdHJpbmdUeXBlKENTU1VuaXRUeXBlIHR5cGUpCiAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0lERU5UOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19JTjoKICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfS0haOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19M
Vk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZXOgogICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19NTToKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTVM6CiAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX05VTUJFUjoKQEAgLTE2OCw2ICsxODgsMTAgQEAgc3RhdGljIGlubGluZSBi
b29sIGlzU3RyaW5nVHlwZShDU1NVbml0VHlwZSB0eXBlKQogICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19SRU1TOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SR0JDT0xPUjoKICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfUzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOgorICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
U1ZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWVzoKICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfU0hBUEU6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1RVUk46CiAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1VOSUNPREVfUkFOR0U6CkBAIC01MTYsNiArNTQwLDE4IEBAIHZv
aWQgQ1NTUHJpbWl0aXZlVmFsdWU6OmNsZWFudXAoKQogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19WSDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjoKICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgorICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOgor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfTFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0xWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDoKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfRFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19EVk1BWDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBQWDoKICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfWDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBJOgpAQCAtNjYw
LDYgKzY5Niw1NCBAQCBkb3VibGUgQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVVbnpvb21lZE5v
bkNhbGNMZW5ndGhEb3VibGUoQ1NTVW5pdFR5cGUgcHJpbWl0aQogICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bWluKHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMud2lkdGgoKSwgdmlld3Bv
cnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cy5oZWlnaHQoKSkgLyAxMDAuMCAqIHZhbHVlOwogICAg
ICAgICB9CiAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
U1ZIOgorICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPm1pbmltdW1WaWV3
cG9ydFNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoKS5oZWlnaHQoKSAvIDEwMC4wICogdmFs
dWUgOiAwOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6CisgICAgICAgIHJldHVybiBy
ZW5kZXJWaWV3ID8gcmVuZGVyVmlldy0+bWluaW11bVZpZXdwb3J0U2l6ZUZvckNTU1NtYWxsVmll
d3BvcnRVbml0cygpLndpZHRoKCkgLyAxMDAuMCAqIHZhbHVlIDogMDsKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfU1ZNQVg6CisgICAgICAgIGlmIChyZW5kZXJWaWV3KSB7CisgICAgICAgICAg
ICBhdXRvIG1pbmltdW1WaWV3cG9ydFNpemUgPSByZW5kZXJWaWV3LT5taW5pbXVtVmlld3BvcnRT
aXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCk7CisgICAgICAgICAgICByZXR1cm4gc3RkOjpt
YXgobWluaW11bVZpZXdwb3J0U2l6ZS53aWR0aCgpLCBtaW5pbXVtVmlld3BvcnRTaXplLmhlaWdo
dCgpKSAvIDEwMC4wICogdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHZhbHVlOwor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjoKKyAgICAgICAgaWYgKHJlbmRlclZpZXcp
IHsKKyAgICAgICAgICAgIGF1dG8gbWluaW11bVZpZXdwb3J0U2l6ZSA9IHJlbmRlclZpZXctPm1p
bmltdW1WaWV3cG9ydFNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoKTsKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om1pbihtaW5pbXVtVmlld3BvcnRTaXplLndpZHRoKCksIG1pbmltdW1WaWV3
cG9ydFNpemUuaGVpZ2h0KCkpIC8gMTAwLjAgKiB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gdmFsdWU7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDoKKyAgICAgICAgcmV0
dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5tYXhpbXVtVmlld3BvcnRTaXplRm9yQ1NTTGFy
Z2VWaWV3cG9ydFVuaXRzKCkuaGVpZ2h0KCkgLyAxMDAuMCAqIHZhbHVlIDogMDsKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfTFZXOgorICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRl
clZpZXctPm1heGltdW1WaWV3cG9ydFNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoKS53aWR0
aCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFY
OgorICAgICAgICBpZiAocmVuZGVyVmlldykgeworICAgICAgICAgICAgYXV0byBsYXJnZVZpZXdw
b3J0U2l6ZSA9IHJlbmRlclZpZXctPm1heGltdW1WaWV3cG9ydFNpemVGb3JDU1NMYXJnZVZpZXdw
b3J0VW5pdHMoKTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1heChsYXJnZVZpZXdwb3J0U2l6
ZS53aWR0aCgpLCBsYXJnZVZpZXdwb3J0U2l6ZS5oZWlnaHQoKSkgLyAxMDAuMCAqIHZhbHVlOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfTFZNSU46CisgICAgICAgIGlmIChyZW5kZXJWaWV3KSB7CisgICAgICAgICAgICBhdXRvIGxh
cmdlVmlld3BvcnRTaXplID0gcmVuZGVyVmlldy0+bWF4aW11bVZpZXdwb3J0U2l6ZUZvckNTU0xh
cmdlVmlld3BvcnRVbml0cygpOworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWluKGxhcmdlVmll
d3BvcnRTaXplLndpZHRoKCksIGxhcmdlVmlld3BvcnRTaXplLmhlaWdodCgpKSAvIDEwMC4wICog
dmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19EVkg6CisgICAgICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVuZGVyVmlldy0+
Y3VycmVudFZpZXdwb3J0U2l6ZUZvckNTU0R5bmFtaWNWaWV3cG9ydFVuaXRzKCkuaGVpZ2h0KCkg
LyAxMDAuMCAqIHZhbHVlIDogMDsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZXOgorICAg
ICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPmN1cnJlbnRWaWV3cG9ydFNpemVG
b3JDU1NEeW5hbWljVmlld3BvcnRVbml0cygpLndpZHRoKCkgLyAxMDAuMCAqIHZhbHVlIDogMDsK
KyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6CisgICAgICAgIGlmIChyZW5kZXJWaWV3
KSB7CisgICAgICAgICAgICBhdXRvIGN1cnJlbnRWaWV3cG9ydFNpemUgPSByZW5kZXJWaWV3LT5j
dXJyZW50Vmlld3BvcnRTaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMoKTsKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om1heChjdXJyZW50Vmlld3BvcnRTaXplLndpZHRoKCksIGN1cnJlbnRW
aWV3cG9ydFNpemUuaGVpZ2h0KCkpIC8gMTAwLjAgKiB2YWx1ZTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gdmFsdWU7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOgorICAgICAg
ICBpZiAocmVuZGVyVmlldykgeworICAgICAgICAgICAgYXV0byBjdXJyZW50Vmlld3BvcnRTaXpl
ID0gcmVuZGVyVmlldy0+Y3VycmVudFZpZXdwb3J0U2l6ZUZvckNTU0R5bmFtaWNWaWV3cG9ydFVu
aXRzKCk7CisgICAgICAgICAgICByZXR1cm4gc3RkOjptaW4oY3VycmVudFZpZXdwb3J0U2l6ZS53
aWR0aCgpLCBjdXJyZW50Vmlld3BvcnRTaXplLmhlaWdodCgpKSAvIDEwMC4wICogdmFsdWU7Cisg
ICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gLTEuMDsKQEAgLTcxNyw2ICs4MDEs
NDIgQEAgZG91YmxlIENTU1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlTm9uQ2FsY0xlbmd0aERvdWJs
ZShjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb24KICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
Vk1JTjoKICAgICAgICAgcmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEudmlld3BvcnRNaW5G
YWN0b3IoKTsKIAorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAgICAgIHJldHVy
biB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLnNtYWxsVmlld3BvcnRIZWlnaHRGYWN0b3IoKTsKKwor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNv
bnZlcnNpb25EYXRhLnNtYWxsVmlld3BvcnRXaWR0aEZhY3RvcigpOworCisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1NWTUFYOgorICAgICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0
YS5zbWFsbFZpZXdwb3J0TWF4RmFjdG9yKCk7CisKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
U1ZNSU46CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLnNtYWxsVmlld3Bv
cnRNaW5GYWN0b3IoKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAgICAg
IHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmxhcmdlVmlld3BvcnRIZWlnaHRGYWN0b3Io
KTsKKworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CisgICAgICAgIHJldHVybiB2YWx1
ZSAqIGNvbnZlcnNpb25EYXRhLmxhcmdlVmlld3BvcnRXaWR0aEZhY3RvcigpOworCisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOgorICAgICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJz
aW9uRGF0YS5sYXJnZVZpZXdwb3J0TWF4RmFjdG9yKCk7CisKKyAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfTFZNSU46CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmxhcmdl
Vmlld3BvcnRNaW5GYWN0b3IoKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6Cisg
ICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmR5bmFtaWNWaWV3cG9ydEhlaWdo
dEZhY3RvcigpOworCisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKKyAgICAgICAgcmV0
dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEuZHluYW1pY1ZpZXdwb3J0V2lkdGhGYWN0b3IoKTsK
KworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDoKKyAgICAgICAgcmV0dXJuIHZhbHVl
ICogY29udmVyc2lvbkRhdGEuZHluYW1pY1ZpZXdwb3J0TWF4RmFjdG9yKCk7CisKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfRFZNSU46CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNp
b25EYXRhLmR5bmFtaWNWaWV3cG9ydE1pbkZhY3RvcigpOworCiAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0xIUzoKICAgICAgICAgQVNTRVJUKGNvbnZlcnNpb25EYXRhLnN0eWxlKCkpOwogICAg
ICAgICBpZiAoY29udmVyc2lvbkRhdGEuY29tcHV0aW5nTGluZUhlaWdodCgpIHx8IGNvbnZlcnNp
b25EYXRhLmNvbXB1dGluZ0ZvbnRTaXplKCkpIHsKQEAgLTk4NCw2ICsxMTA0LDE4IEBAIFN0cmlu
ZyBDU1NQcmltaXRpdmVWYWx1ZTo6dW5pdFR5cGVTdHJpbmcoQ1NTVW5pdFR5cGUgdW5pdFR5cGUp
CiAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSDogcmV0dXJuICJ2aCI7CiAgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOiByZXR1cm4gInZtaW4iOwogICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfVk1BWDogcmV0dXJuICJ2bWF4IjsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1NWVzogcmV0dXJuICJzdnciOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfU1ZIOiByZXR1cm4gInN2aCI7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19T
Vk1JTjogcmV0dXJuICJzdm1pbiI7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1B
WDogcmV0dXJuICJzdm1heCI7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6IHJl
dHVybiAibHZ3IjsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDogcmV0dXJuICJs
dmgiOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46IHJldHVybiAibHZtaW4i
OworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6IHJldHVybiAibHZtYXgiOwor
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZXOiByZXR1cm4gImR2dyI7CisgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6IHJldHVybiAiZHZoIjsKKyAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0RWTUlOOiByZXR1cm4gImR2bWluIjsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0RWTUFYOiByZXR1cm4gImR2bWF4IjsKICAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0RQUFg6IHJldHVybiAiZHBweCI7CiAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19YOiByZXR1cm4gIngiOwogICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBJOiBy
ZXR1cm4gImRwaSI7CkBAIC0xMTQ2LDYgKzEyNzgsMzAgQEAgQUxXQVlTX0lOTElORSBTdHJpbmcg
Q1NTUHJpbWl0aXZlVmFsdWU6OmZvcm1hdE51bWJlckZvckN1c3RvbUNTU1RleHQoKSBjb25zdAog
ICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoInZtaW4iKTsKICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfVk1BWDoKICAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlclZhbHVlKCJ2bWF4
Iik7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWVzoKKyAgICAgICAgcmV0dXJuIGZvcm1h
dE51bWJlclZhbHVlKCJzdnciKTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOgorICAg
ICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoInN2aCIpOworICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19TVk1JTjoKKyAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlclZhbHVlKCJzdm1pbiIp
OworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDoKKyAgICAgICAgcmV0dXJuIGZvcm1h
dE51bWJlclZhbHVlKCJzdm1heCIpOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6Cisg
ICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJWYWx1ZSgibHZ3Iik7CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0xWSDoKKyAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlclZhbHVlKCJsdmgiKTsK
KyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46CisgICAgICAgIHJldHVybiBmb3JtYXRO
dW1iZXJWYWx1ZSgibHZtaW4iKTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6Cisg
ICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJWYWx1ZSgibHZtYXgiKTsKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRFZXOgorICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoImR2dyIp
OworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6CisgICAgICAgIHJldHVybiBmb3JtYXRO
dW1iZXJWYWx1ZSgiZHZoIik7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOgorICAg
ICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoImR2bWluIik7CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0RWTUFYOgorICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoImR2bWF4
Iik7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lERU5UOgogICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19VTklDT0RFX1JBTkdFOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DQUxDX1BF
UkNFTlRBR0VfV0lUSF9OVU1CRVI6CkBAIC0xMjEzLDYgKzEzNjksMTggQEAgYm9vbCBDU1NQcmlt
aXRpdmVWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlJiBvdGhlcikgY29uc3QK
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkg6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1ZNSU46CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg6CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1NWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOgorICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19TVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNQVg6
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfTFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjoKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfTFZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfRFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1J
TjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6CiAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0ZSOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ROgogICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19MSFM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0
aXZlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCmluZGV4
IDhiODJiOWJhOTQ5NmFhMDk0YmRmZWRiYThkZjkxOWNlMmViYTdmMzMuLmU0YTE1MmVjNThmNTgw
ZThlMTViNTlkZTI1ZWU4YmI2YmIwOGVhM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRp
dmVWYWx1ZS5oCkBAIC0xMTUsNiArMTE1LDE4IEBAIHB1YmxpYzoKICAgICBib29sIGlzVmlld3Bv
cnRQZXJjZW50YWdlSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVW5pdFR5cGUoKSA9
PSBDU1NVbml0VHlwZTo6Q1NTX1ZIOyB9CiAgICAgYm9vbCBpc1ZpZXdwb3J0UGVyY2VudGFnZU1h
eCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNT
U19WTUFYOyB9CiAgICAgYm9vbCBpc1ZpZXdwb3J0UGVyY2VudGFnZU1pbigpIGNvbnN0IHsgcmV0
dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19WTUlOOyB9CisgICAg
Ym9vbCBpc1NtYWxsVmlld3BvcnRQZXJjZW50YWdlV2lkdGgoKSBjb25zdCB7IHJldHVybiBwcmlt
aXRpdmVVbml0VHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1NfU1ZXOyB9CisgICAgYm9vbCBpc1Nt
YWxsVmlld3BvcnRQZXJjZW50YWdlSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVW5p
dFR5cGUoKSA9PSBDU1NVbml0VHlwZTo6Q1NTX1NWSDsgfQorICAgIGJvb2wgaXNTbWFsbFZpZXdw
b3J0UGVyY2VudGFnZU1heCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0g
Q1NTVW5pdFR5cGU6OkNTU19TVk1BWDsgfQorICAgIGJvb2wgaXNTbWFsbFZpZXdwb3J0UGVyY2Vu
dGFnZU1pbigpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5
cGU6OkNTU19TVk1JTjsgfQorICAgIGJvb2wgaXNMYXJnZVZpZXdwb3J0UGVyY2VudGFnZVdpZHRo
KCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVW5pdFR5cGUoKSA9PSBDU1NVbml0VHlwZTo6Q1NT
X0xWVzsgfQorICAgIGJvb2wgaXNMYXJnZVZpZXdwb3J0UGVyY2VudGFnZUhlaWdodCgpIGNvbnN0
IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19MVkg7IH0K
KyAgICBib29sIGlzTGFyZ2VWaWV3cG9ydFBlcmNlbnRhZ2VNYXgoKSBjb25zdCB7IHJldHVybiBw
cmltaXRpdmVVbml0VHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1NfTFZNQVg7IH0KKyAgICBib29s
IGlzTGFyZ2VWaWV3cG9ydFBlcmNlbnRhZ2VNaW4oKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVV
bml0VHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1NfTFZNSU47IH0KKyAgICBib29sIGlzRHluYW1p
Y1ZpZXdwb3J0UGVyY2VudGFnZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVW5pdFR5
cGUoKSA9PSBDU1NVbml0VHlwZTo6Q1NTX0RWVzsgfQorICAgIGJvb2wgaXNEeW5hbWljVmlld3Bv
cnRQZXJjZW50YWdlSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVW5pdFR5cGUoKSA9
PSBDU1NVbml0VHlwZTo6Q1NTX0RWSDsgfQorICAgIGJvb2wgaXNEeW5hbWljVmlld3BvcnRQZXJj
ZW50YWdlTWF4KCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVW5pdFR5cGUoKSA9PSBDU1NVbml0
VHlwZTo6Q1NTX0RWTUFYOyB9CisgICAgYm9vbCBpc0R5bmFtaWNWaWV3cG9ydFBlcmNlbnRhZ2VN
aW4oKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVVbml0VHlwZSgpID09IENTU1VuaXRUeXBlOjpD
U1NfRFZNSU47IH0KICAgICBib29sIGlzVmFsdWVJRCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2
ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRDsgfQogICAgIGJvb2wgaXNG
bGV4KCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1Nf
RlI7IH0KICAgICBib29sIGlzQ3VzdG9tSWRlbnQoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVV
bml0VHlwZSgpID09IENTU1VuaXRUeXBlOjpDdXN0b21JZGVudDsgfQpAQCAtMzE4LDcgKzMzMCwx
OSBAQCBjb25zdGV4cHIgYm9vbCBDU1NQcmltaXRpdmVWYWx1ZTo6aXNWaWV3cG9ydFBlcmNlbnRh
Z2VMZW5ndGgoQ1NTVW5pdFR5cGUgdHlwZSkKICAgICByZXR1cm4gdHlwZSA9PSBDU1NVbml0VHlw
ZTo6Q1NTX1ZXCiAgICAgICAgIHx8IHR5cGUgPT0gQ1NTVW5pdFR5cGU6OkNTU19WSAogICAgICAg
ICB8fCB0eXBlID09IENTU1VuaXRUeXBlOjpDU1NfVk1JTgotICAgICAgICB8fCB0eXBlID09IENT
U1VuaXRUeXBlOjpDU1NfVk1BWDsKKyAgICAgICAgfHwgdHlwZSA9PSBDU1NVbml0VHlwZTo6Q1NT
X1ZNQVgKKyAgICAgICAgfHwgdHlwZSA9PSBDU1NVbml0VHlwZTo6Q1NTX1NWVworICAgICAgICB8
fCB0eXBlID09IENTU1VuaXRUeXBlOjpDU1NfU1ZICisgICAgICAgIHx8IHR5cGUgPT0gQ1NTVW5p
dFR5cGU6OkNTU19TVk1JTgorICAgICAgICB8fCB0eXBlID09IENTU1VuaXRUeXBlOjpDU1NfU1ZN
QVgKKyAgICAgICAgfHwgdHlwZSA9PSBDU1NVbml0VHlwZTo6Q1NTX0xWVworICAgICAgICB8fCB0
eXBlID09IENTU1VuaXRUeXBlOjpDU1NfTFZICisgICAgICAgIHx8IHR5cGUgPT0gQ1NTVW5pdFR5
cGU6OkNTU19MVk1JTgorICAgICAgICB8fCB0eXBlID09IENTU1VuaXRUeXBlOjpDU1NfTFZNQVgK
KyAgICAgICAgfHwgdHlwZSA9PSBDU1NVbml0VHlwZTo6Q1NTX0RWVworICAgICAgICB8fCB0eXBl
ID09IENTU1VuaXRUeXBlOjpDU1NfRFZICisgICAgICAgIHx8IHR5cGUgPT0gQ1NTVW5pdFR5cGU6
OkNTU19EVk1JTgorICAgICAgICB8fCB0eXBlID09IENTU1VuaXRUeXBlOjpDU1NfRFZNQVg7CiB9
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IENT
U1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoVCYmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuY3BwCmluZGV4IDMxOTgwZTYyYzk1ZWI3OTBi
NTA3MjY4N2RmZTU3MzE2Mzk5MzZiNjguLjNlMTk2NGRkNTYxZmIxYWJjNjAwY2YwZjM4ZDJlMjBi
M2QxMzk0YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZl
cnNpb25EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9MZW5ndGhDb252ZXJz
aW9uRGF0YS5jcHAKQEAgLTg5LDQgKzg5LDE0MiBAQCBkb3VibGUgQ1NTVG9MZW5ndGhDb252ZXJz
aW9uRGF0YTo6dmlld3BvcnRNYXhGYWN0b3IoKSBjb25zdAogICAgIHJldHVybiBzdGQ6Om1heCh2
aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzLndpZHRoKCksIHZpZXdwb3J0U2l6ZUZvckNT
U1ZpZXdwb3J0VW5pdHMuaGVpZ2h0KCkpIC8gMTAwLjA7CiB9CiAKK2RvdWJsZSBDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhOjpzbWFsbFZpZXdwb3J0V2lkdGhGYWN0b3IoKSBjb25zdAoreworICAg
IGlmIChtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlKQorICAgICAgICBtX3ZpZXdw
b3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlLT5zZXRIYXNWaWV3cG9ydFVuaXRzKCk7CisKKyAg
ICBpZiAoIW1fcmVuZGVyVmlldykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gbV9y
ZW5kZXJWaWV3LT5taW5pbXVtVmlld3BvcnRTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCku
d2lkdGgoKSAvIDEwMC4wOworfQorCitkb3VibGUgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6
c21hbGxWaWV3cG9ydEhlaWdodEZhY3RvcigpIGNvbnN0Cit7CisgICAgaWYgKG1fdmlld3BvcnRE
ZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUpCisgICAgICAgIG1fdmlld3BvcnREZXBlbmRlbmN5RGV0
ZWN0aW9uU3R5bGUtPnNldEhhc1ZpZXdwb3J0VW5pdHMoKTsKKworICAgIGlmICghbV9yZW5kZXJW
aWV3KQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBtX3JlbmRlclZpZXctPm1pbmlt
dW1WaWV3cG9ydFNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoKS5oZWlnaHQoKSAvIDEwMC4w
OworfQorCitkb3VibGUgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6c21hbGxWaWV3cG9ydE1p
bkZhY3RvcigpIGNvbnN0Cit7CisgICAgaWYgKG1fdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9u
U3R5bGUpCisgICAgICAgIG1fdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUtPnNldEhh
c1ZpZXdwb3J0VW5pdHMoKTsKKworICAgIGlmICghbV9yZW5kZXJWaWV3KQorICAgICAgICByZXR1
cm4gMDsKKworICAgIGF1dG8gbWluaW11bVZpZXdwb3J0U2l6ZSA9IG1fcmVuZGVyVmlldy0+bWlu
aW11bVZpZXdwb3J0U2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpOworICAgIHJldHVybiBz
dGQ6Om1pbihtaW5pbXVtVmlld3BvcnRTaXplLndpZHRoKCksIG1pbmltdW1WaWV3cG9ydFNpemUu
aGVpZ2h0KCkpIC8gMTAwLjA7Cit9CisKK2RvdWJsZSBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRh
OjpzbWFsbFZpZXdwb3J0TWF4RmFjdG9yKCkgY29uc3QKK3sKKyAgICBpZiAobV92aWV3cG9ydERl
cGVuZGVuY3lEZXRlY3Rpb25TdHlsZSkKKyAgICAgICAgbV92aWV3cG9ydERlcGVuZGVuY3lEZXRl
Y3Rpb25TdHlsZS0+c2V0SGFzVmlld3BvcnRVbml0cygpOworCisgICAgaWYgKCFtX3JlbmRlclZp
ZXcpCisgICAgICAgIHJldHVybiAwOworCisgICAgYXV0byBtaW5pbXVtVmlld3BvcnRTaXplID0g
bV9yZW5kZXJWaWV3LT5taW5pbXVtVmlld3BvcnRTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRz
KCk7CisgICAgcmV0dXJuIHN0ZDo6bWF4KG1pbmltdW1WaWV3cG9ydFNpemUud2lkdGgoKSwgbWlu
aW11bVZpZXdwb3J0U2l6ZS5oZWlnaHQoKSkgLyAxMDAuMDsKK30KKworZG91YmxlIENTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGE6OmxhcmdlVmlld3BvcnRXaWR0aEZhY3RvcigpIGNvbnN0Cit7Cisg
ICAgaWYgKG1fdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUpCisgICAgICAgIG1fdmll
d3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUtPnNldEhhc1ZpZXdwb3J0VW5pdHMoKTsKKwor
ICAgIGlmICghbV9yZW5kZXJWaWV3KQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBt
X3JlbmRlclZpZXctPm1heGltdW1WaWV3cG9ydFNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMo
KS53aWR0aCgpIC8gMTAwLjA7Cit9CisKK2RvdWJsZSBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRh
OjpsYXJnZVZpZXdwb3J0SGVpZ2h0RmFjdG9yKCkgY29uc3QKK3sKKyAgICBpZiAobV92aWV3cG9y
dERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZSkKKyAgICAgICAgbV92aWV3cG9ydERlcGVuZGVuY3lE
ZXRlY3Rpb25TdHlsZS0+c2V0SGFzVmlld3BvcnRVbml0cygpOworCisgICAgaWYgKCFtX3JlbmRl
clZpZXcpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1fcmVuZGVyVmlldy0+bWF4
aW11bVZpZXdwb3J0U2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpLmhlaWdodCgpIC8gMTAw
LjA7Cit9CisKK2RvdWJsZSBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpsYXJnZVZpZXdwb3J0
TWluRmFjdG9yKCkgY29uc3QKK3sKKyAgICBpZiAobV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rp
b25TdHlsZSkKKyAgICAgICAgbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZS0+c2V0
SGFzVmlld3BvcnRVbml0cygpOworCisgICAgaWYgKCFtX3JlbmRlclZpZXcpCisgICAgICAgIHJl
dHVybiAwOworCisgICAgYXV0byBtYXhpbXVtVmlld3BvcnRTaXplID0gbV9yZW5kZXJWaWV3LT5t
YXhpbXVtVmlld3BvcnRTaXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKCk7CisgICAgcmV0dXJu
IHN0ZDo6bWluKG1heGltdW1WaWV3cG9ydFNpemUud2lkdGgoKSwgbWF4aW11bVZpZXdwb3J0U2l6
ZS5oZWlnaHQoKSkgLyAxMDAuMDsKK30KKworZG91YmxlIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGE6OmxhcmdlVmlld3BvcnRNYXhGYWN0b3IoKSBjb25zdAoreworICAgIGlmIChtX3ZpZXdwb3J0
RGVwZW5kZW5jeURldGVjdGlvblN0eWxlKQorICAgICAgICBtX3ZpZXdwb3J0RGVwZW5kZW5jeURl
dGVjdGlvblN0eWxlLT5zZXRIYXNWaWV3cG9ydFVuaXRzKCk7CisKKyAgICBpZiAoIW1fcmVuZGVy
VmlldykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBhdXRvIG1heGltdW1WaWV3cG9ydFNpemUg
PSBtX3JlbmRlclZpZXctPm1heGltdW1WaWV3cG9ydFNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5p
dHMoKTsKKyAgICByZXR1cm4gc3RkOjptYXgobWF4aW11bVZpZXdwb3J0U2l6ZS53aWR0aCgpLCBt
YXhpbXVtVmlld3BvcnRTaXplLmhlaWdodCgpKSAvIDEwMC4wOworfQorCitkb3VibGUgQ1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YTo6ZHluYW1pY1ZpZXdwb3J0V2lkdGhGYWN0b3IoKSBjb25zdAor
eworICAgIGlmIChtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlKQorICAgICAgICBt
X3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlLT5zZXRIYXNWaWV3cG9ydFVuaXRzKCk7
CisKKyAgICBpZiAoIW1fcmVuZGVyVmlldykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1
cm4gbV9yZW5kZXJWaWV3LT5jdXJyZW50Vmlld3BvcnRTaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0
VW5pdHMoKS53aWR0aCgpIC8gMTAwLjA7Cit9CisKK2RvdWJsZSBDU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhOjpkeW5hbWljVmlld3BvcnRIZWlnaHRGYWN0b3IoKSBjb25zdAoreworICAgIGlmICht
X3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlKQorICAgICAgICBtX3ZpZXdwb3J0RGVw
ZW5kZW5jeURldGVjdGlvblN0eWxlLT5zZXRIYXNWaWV3cG9ydFVuaXRzKCk7CisKKyAgICBpZiAo
IW1fcmVuZGVyVmlldykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gbV9yZW5kZXJW
aWV3LT5jdXJyZW50Vmlld3BvcnRTaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMoKS5oZWln
aHQoKSAvIDEwMC4wOworfQorCitkb3VibGUgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6ZHlu
YW1pY1ZpZXdwb3J0TWluRmFjdG9yKCkgY29uc3QKK3sKKyAgICBpZiAobV92aWV3cG9ydERlcGVu
ZGVuY3lEZXRlY3Rpb25TdHlsZSkKKyAgICAgICAgbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rp
b25TdHlsZS0+c2V0SGFzVmlld3BvcnRVbml0cygpOworCisgICAgaWYgKCFtX3JlbmRlclZpZXcp
CisgICAgICAgIHJldHVybiAwOworCisgICAgYXV0byBjdXJyZW50Vmlld3BvcnRTaXplID0gbV9y
ZW5kZXJWaWV3LT5jdXJyZW50Vmlld3BvcnRTaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMo
KTsKKyAgICByZXR1cm4gc3RkOjptaW4oY3VycmVudFZpZXdwb3J0U2l6ZS53aWR0aCgpLCBjdXJy
ZW50Vmlld3BvcnRTaXplLmhlaWdodCgpKSAvIDEwMC4wOworfQorCitkb3VibGUgQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YTo6ZHluYW1pY1ZpZXdwb3J0TWF4RmFjdG9yKCkgY29uc3QKK3sKKyAg
ICBpZiAobV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZSkKKyAgICAgICAgbV92aWV3
cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZS0+c2V0SGFzVmlld3BvcnRVbml0cygpOworCisg
ICAgaWYgKCFtX3JlbmRlclZpZXcpCisgICAgICAgIHJldHVybiAwOworCisgICAgYXV0byBjdXJy
ZW50Vmlld3BvcnRTaXplID0gbV9yZW5kZXJWaWV3LT5jdXJyZW50Vmlld3BvcnRTaXplRm9yQ1NT
RHluYW1pY1ZpZXdwb3J0VW5pdHMoKTsKKyAgICByZXR1cm4gc3RkOjptYXgoY3VycmVudFZpZXdw
b3J0U2l6ZS53aWR0aCgpLCBjdXJyZW50Vmlld3BvcnRTaXplLmhlaWdodCgpKSAvIDEwMC4wOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Rv
TGVuZ3RoQ29udmVyc2lvbkRhdGEuaAppbmRleCA5NTM3NzlmOGQ1NTVmMGJjOTgxOTI3NzVlNzM3
YzU1YjE1MDYwMGVlLi5iMjBiMWFjODljYzQ3M2UwODVmMTcwOTlhOWVhYjRjMTUwY2U4ZDVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmgKQEAg
LTc4LDYgKzc4LDE4IEBAIHB1YmxpYzoKICAgICBkb3VibGUgdmlld3BvcnRIZWlnaHRGYWN0b3Io
KSBjb25zdDsKICAgICBkb3VibGUgdmlld3BvcnRNaW5GYWN0b3IoKSBjb25zdDsKICAgICBkb3Vi
bGUgdmlld3BvcnRNYXhGYWN0b3IoKSBjb25zdDsKKyAgICBkb3VibGUgc21hbGxWaWV3cG9ydFdp
ZHRoRmFjdG9yKCkgY29uc3Q7CisgICAgZG91YmxlIHNtYWxsVmlld3BvcnRIZWlnaHRGYWN0b3Io
KSBjb25zdDsKKyAgICBkb3VibGUgc21hbGxWaWV3cG9ydE1pbkZhY3RvcigpIGNvbnN0OworICAg
IGRvdWJsZSBzbWFsbFZpZXdwb3J0TWF4RmFjdG9yKCkgY29uc3Q7CisgICAgZG91YmxlIGxhcmdl
Vmlld3BvcnRXaWR0aEZhY3RvcigpIGNvbnN0OworICAgIGRvdWJsZSBsYXJnZVZpZXdwb3J0SGVp
Z2h0RmFjdG9yKCkgY29uc3Q7CisgICAgZG91YmxlIGxhcmdlVmlld3BvcnRNaW5GYWN0b3IoKSBj
b25zdDsKKyAgICBkb3VibGUgbGFyZ2VWaWV3cG9ydE1heEZhY3RvcigpIGNvbnN0OworICAgIGRv
dWJsZSBkeW5hbWljVmlld3BvcnRXaWR0aEZhY3RvcigpIGNvbnN0OworICAgIGRvdWJsZSBkeW5h
bWljVmlld3BvcnRIZWlnaHRGYWN0b3IoKSBjb25zdDsKKyAgICBkb3VibGUgZHluYW1pY1ZpZXdw
b3J0TWluRmFjdG9yKCkgY29uc3Q7CisgICAgZG91YmxlIGR5bmFtaWNWaWV3cG9ydE1heEZhY3Rv
cigpIGNvbnN0OwogCiAgICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSBjb3B5V2l0aEFkanVz
dGVkWm9vbShmbG9hdCBuZXdab29tKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NVbml0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5pdHMuY3Bw
CmluZGV4IDRmNDY4YjNmM2I1NzEyNmMxNTRjMTM2ODY4NWQxODE5Yjc5MWQyM2UuLjI0Y2I2NjNl
MmM1ZTMzMWU1YjJkZWJmZDUyZGE0NWYzMjRiOTEzNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NVbml0cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1VuaXRzLmNw
cApAQCAtMTM4LDYgKzEzOCwxOCBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHRzLCBDU1NVbml0VHlwZSB1bml0VHlwZSkKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkg6
IHRzIDw8ICJ2aCI7IGJyZWFrOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOiB0cyA8
PCAidm1pbiI7IGJyZWFrOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOiB0cyA8PCAi
dm1heCI7IGJyZWFrOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6IHRzIDw8ICJzdnci
OyBicmVhazsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOiB0cyA8PCAic3ZoIjsgYnJl
YWs7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOiB0cyA8PCAic3ZtaW4iOyBicmVh
azsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNQVg6IHRzIDw8ICJzdm1heCI7IGJyZWFr
OworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6IHRzIDw8ICJsdnciOyBicmVhazsKKyAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOiB0cyA8PCAibHZoIjsgYnJlYWs7CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUlOOiB0cyA8PCAibHZtaW4iOyBicmVhazsKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6IHRzIDw8ICJsdm1heCI7IGJyZWFrOworICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19EVlc6IHRzIDw8ICJkdnciOyBicmVhazsKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRFZIOiB0cyA8PCAiZHZoIjsgYnJlYWs7CisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0RWTUlOOiB0cyA8PCAiZHZtaW4iOyBicmVhazsKKyAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFZNQVg6IHRzIDw8ICJkdm1heCI7IGJyZWFrOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19EUFBYOiB0cyA8PCAiZHBweCI7IGJyZWFrOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19YOiB0cyA8PCAieCI7IGJyZWFrOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUEk6IHRz
IDw8ICJkcGkiOyBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbml0
cy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1VuaXRzLmgKaW5kZXggOTcyNTVhOWVjMzc4MjVj
OGI3ZTQ0ODk1Y2Y2NTgzNWQ5YjhkMmNmYS4uYjBmN2MyZDJmNmVhYmNjNzNmNGNjMzIyYTViZWFm
NTgyZjhjMDA2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1VuaXRzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1VuaXRzLmgKQEAgLTU5LDYgKzU5LDE4IEBAIGVudW0g
Y2xhc3MgQ1NTVW5pdFR5cGUgOiB1aW50OF90IHsKICAgICBDU1NfVkgsCiAgICAgQ1NTX1ZNSU4s
CiAgICAgQ1NTX1ZNQVgsCisgICAgQ1NTX1NWVywKKyAgICBDU1NfU1ZILAorICAgIENTU19TVk1J
TiwKKyAgICBDU1NfU1ZNQVgsCisgICAgQ1NTX0xWVywKKyAgICBDU1NfTFZILAorICAgIENTU19M
Vk1JTiwKKyAgICBDU1NfTFZNQVgsCisgICAgQ1NTX0RWVywKKyAgICBDU1NfRFZILAorICAgIENT
U19EVk1JTiwKKyAgICBDU1NfRFZNQVgsCiAgICAgQ1NTX0RQUFgsCiAgICAgQ1NTX1gsCiAgICAg
Q1NTX0RQSSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01Q
cmltaXRpdmVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJp
bWl0aXZlVmFsdWUuY3BwCmluZGV4IGJiZDAxNDk5MTc5ODQ3Mzg4N2NmNDgyODljNTQ2YjYyNTNk
MzgzYTUuLjdkYjVjYmEwNjVhOTM1YTU0OTkxMmQ1NGJiNTliMWVlOGZhMDMxMTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNw
cApAQCAtOTMsMTAgKzkzLDkgQEAgdW5zaWduZWQgc2hvcnQgRGVwcmVjYXRlZENTU09NUHJpbWl0
aXZlVmFsdWU6OnByaW1pdGl2ZVR5cGUoKSBjb25zdAogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19WTUlOOiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTX1ZNSU47CiAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1ZXOiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBD
U1NfVlc7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1g6ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAzNzsKLSAgICB9CiAKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICByZXR1cm4gQ1NTX1VOS05PV047CisgICAgZGVmYXVsdDogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NfVU5LTk9XTjsKKyAgICB9CiB9CiAKIEV4
Y2VwdGlvbk9yPGZsb2F0PiBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6Z2V0RmxvYXRW
YWx1ZSh1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNDYXRlZ29yeU1hcHBpbmcuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL2NhbGMvQ1NTQ2FsY0NhdGVnb3J5TWFwcGluZy5jcHAKaW5kZXggMmQwYTFjMjAwMWYx
MmZlMjE2OGI0YzdiZDgyODc4ZWIxMGY3MThjZC4uOWVmMWQ0NTY5MjAyZWU1OTM1MjNjMGRhMmM4
MjcyNzEwMmY3NjAwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2Fs
Y0NhdGVnb3J5TWFwcGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2Fs
Y0NhdGVnb3J5TWFwcGluZy5jcHAKQEAgLTU0LDYgKzU0LDE4IEBAIENhbGN1bGF0aW9uQ2F0ZWdv
cnkgY2FsY1VuaXRDYXRlZ29yeShDU1NVbml0VHlwZSB0eXBlKQogICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19WSDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjoKICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgorICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NW
TUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDoKKyAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfTFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0xWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDoK
KyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19EVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOgorICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19EVk1BWDoKICAgICAgICAgcmV0dXJuIENhbGN1bGF0aW9uQ2F0ZWdvcnk6Okxl
bmd0aDsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRToKICAgICAgICAgcmV0
dXJuIENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnQ7CkBAIC0xMTAsNiArMTIyLDE4IEBAIENh
bGN1bGF0aW9uQ2F0ZWdvcnkgY2FsY3VsYXRpb25DYXRlZ29yeUZvckNvbWJpbmF0aW9uKENTU1Vu
aXRUeXBlIHR5cGUpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOgogICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19WTUlOOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgorICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NW
SDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU46CisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX1NWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CisgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0xWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19EVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfRFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOgogICAgIGRl
ZmF1bHQ6CiAgICAgICAgIHJldHVybiBDYWxjdWxhdGlvbkNhdGVnb3J5OjpPdGhlcjsKICAgICB9
CkBAIC0xNjIsNiArMTg2LDE4IEBAIGJvb2wgaGFzRG91YmxlVmFsdWUoQ1NTVW5pdFR5cGUgdHlw
ZSkKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkg6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1ZNSU46CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg6CisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1NWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOgorICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZN
QVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfTFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjoKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfTFZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKKyAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19E
Vk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6CiAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0RQUFg6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1g6CiAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0RQSToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyVG9rZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJz
ZXJUb2tlbi5jcHAKaW5kZXggOWJkYzEzYWRiZDUwMDc5YWQ4NDA3ODBiMjA3MDYxZDQzNzk2NzQ3
My4uZGU1NWQzNGM5NzI4NDEyYzZmYzM1MmIxMjI5NTUzNDY2ODEwNzc2ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHAKQEAgLTEzNCw4ICsxMzQsMjYg
QEAgQ1NTVW5pdFR5cGUgY3NzUHJpbWl0aXZlVmFsdWVVbml0RnJvbVRyaWUoY29uc3QgQ2hhcmFj
dGVyVHlwZSogZGF0YSwgdW5zaWduZWQgbGUKICAgICAgICAgICAgICAgICBpZiAodG9BU0NJSUxv
d2VyKGRhdGFbMl0pID09ICdpJykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRU
eXBlOjpDU1NfRFBJOwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAn
dic6CisgICAgICAgICAgICAgICAgc3dpdGNoICh0b0FTQ0lJTG93ZXIoZGF0YVsyXSkpIHsKKyAg
ICAgICAgICAgICAgICBjYXNlICdoJzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1Vu
aXRUeXBlOjpDU1NfRFZIOworICAgICAgICAgICAgICAgIGNhc2UgJ3cnOgorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19EVlc7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICdsJzoKKyAgICAgICAgICAgIGlmICh0b0FT
Q0lJTG93ZXIoZGF0YVsxXSkgPT0gJ3YnKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoICh0b0FT
Q0lJTG93ZXIoZGF0YVsyXSkpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdoJzoKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfTFZIOworICAgICAgICAgICAgICAg
IGNhc2UgJ3cnOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19M
Vlc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgJ2snOgogICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzFd
KSA9PSAnaCcgJiYgdG9BU0NJSUxvd2VyKGRhdGFbMl0pID09ICd6JykKICAgICAgICAgICAgICAg
ICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19LSFo7CkBAIC0xNTUsOSArMTczLDE5IEBAIENTU1Vu
aXRUeXBlIGNzc1ByaW1pdGl2ZVZhbHVlVW5pdEZyb21UcmllKGNvbnN0IENoYXJhY3RlclR5cGUq
IGRhdGEsIHVuc2lnbmVkIGxlCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlw
ZTo6Q1NTX1JMSFM7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAncyc6CisgICAgICAgICAgICBpZiAodG9BU0NJ
SUxvd2VyKGRhdGFbMV0pID09ICd2JykgeworICAgICAgICAgICAgICAgIHN3aXRjaCAodG9BU0NJ
SUxvd2VyKGRhdGFbMl0pKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnaCc6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX1NWSDsKKyAgICAgICAgICAgICAgICBj
YXNlICd3JzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfU1ZX
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CiAgICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBicmVhazsKICAgICBjYXNlIDQ6
CiAgICAgICAgIHN3aXRjaCAodG9BU0NJSUxvd2VyKGRhdGFbMF0pKSB7CiAgICAgICAgIGNhc2Ug
J2QnOgpAQCAtMTczLDkgKzIwMSw5IEBAIENTU1VuaXRUeXBlIGNzc1ByaW1pdGl2ZVZhbHVlVW5p
dEZyb21UcmllKGNvbnN0IENoYXJhY3RlclR5cGUqIGRhdGEsIHVuc2lnbmVkIGxlCiAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19EUFBYOwogICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSAnZyc6CiAgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2Vy
KGRhdGFbMV0pID09ICdyJyAmJiB0b0FTQ0lJTG93ZXIoZGF0YVsyXSkgPT0gJ2EnICYmIHRvQVND
SUlMb3dlcihkYXRhWzNdKSA9PSAnZCcpCiAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRU
eXBlOjpDU1NfR1JBRDsKQEAgLTIwOCw2ICsyMzYsNDggQEAgQ1NTVW5pdFR5cGUgY3NzUHJpbWl0
aXZlVmFsdWVVbml0RnJvbVRyaWUoY29uc3QgQ2hhcmFjdGVyVHlwZSogZGF0YSwgdW5zaWduZWQg
bGUKICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVsxXSkgPT0gJ18nICYmIHRvQVND
SUlMb3dlcihkYXRhWzJdKSA9PSAncScgJiYgdG9BU0NJSUxvd2VyKGRhdGFbM10pID09ICdlJyAm
JiB0b0FTQ0lJTG93ZXIoZGF0YVs0XSkgPT0gJ20nKQogICAgICAgICAgICAgICAgIHJldHVybiBD
U1NVbml0VHlwZTo6Q1NTX1FVSVJLWV9FTVM7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAnZCc6CisgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbMV0pID09ICd2JyAm
JiB0b0FTQ0lJTG93ZXIoZGF0YVsyXSkgPT0gJ20nKSB7CisgICAgICAgICAgICAgICAgc3dpdGNo
ICh0b0FTQ0lJTG93ZXIoZGF0YVszXSkpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdhJzoKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzRdKSA9PSAneCcpCisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDsKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnaSc6CisgICAgICAg
ICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVs0XSkgPT0gJ24nKQorICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfRFZNSU47CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICdsJzoKKyAgICAgICAgICAgIGlmICh0b0FTQ0lJ
TG93ZXIoZGF0YVsxXSkgPT0gJ3YnICYmIHRvQVNDSUlMb3dlcihkYXRhWzJdKSA9PSAnbScpIHsK
KyAgICAgICAgICAgICAgICBzd2l0Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzNdKSkgeworICAgICAg
ICAgICAgICAgIGNhc2UgJ2EnOgorICAgICAgICAgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2Vy
KGRhdGFbNF0pID09ICd4JykKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0
VHlwZTo6Q1NTX0xWTUFYOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICBjYXNlICdpJzoKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRh
WzRdKSA9PSAnbicpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6
OkNTU19MVk1JTjsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ3MnOgor
ICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzFdKSA9PSAndicgJiYgdG9BU0NJSUxv
d2VyKGRhdGFbMl0pID09ICdtJykgeworICAgICAgICAgICAgICAgIHN3aXRjaCAodG9BU0NJSUxv
d2VyKGRhdGFbM10pKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnYSc6CisgICAgICAgICAgICAg
ICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVs0XSkgPT0gJ3gnKQorICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfU1ZNQVg7CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ2knOgorICAgICAgICAgICAgICAgICAg
ICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbNF0pID09ICduJykKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOworICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKaW5kZXggMTg2
ZGQyYTNmMTI3ODNlMWUxMGNhZTZlOGQyYmVmNTAyZWEyZWFjZi4uMDRlMWM4NGNiNWZhYjY4Mzhk
NGU3NjQxOTkwZWU1NDc1ODAzMWE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcApAQCAtNDkyLDYgKzQ5MiwxOCBA
QCBzdGF0aWMgc3RkOjpvcHRpb25hbDxMZW5ndGhSYXc+IGNvbnN1bWVMZW5ndGhSYXdXaXRoS25v
d25Ub2tlblR5cGVEaW1lbnNpb24oQ1NTUAogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSDoK
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgorICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19TVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOgorICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZX
OgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0xWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDoKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfRFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19E
Vk1BWDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUToKICAgICAgICAgYnJlYWs7CiAgICAg
ZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAxODc3ZGNmMTE2ZmFiMzY4
MWQ2YmNkNjk5OTc0NTAwYTRhMWQ5NmQwLi5hMWMxYWUzNGI1NzNmNjUyYjk1MmM5OTIzYmNmZWI1
MzMxZTdiNzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yODYwLDYgKzI4NjAs
OSBAQCB2b2lkIEZyYW1lVmlldzo6dW5vYnNjdXJlZENvbnRlbnRTaXplQ2hhbmdlZCgpCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICB1cGRhdGVUaWxlZEJhY2tpbmdBZGFwdGl2ZVNpemlu
ZygpOwogI2VuZGlmCisKKyAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50
KCkpCisgICAgICAgIGRvY3VtZW50LT5zdHlsZVNjb3BlKCkuZGlkQ2hhbmdlU3R5bGVTaGVldEVu
dmlyb25tZW50KCk7CiB9CiAKIHZvaWQgRnJhbWVWaWV3Ojpsb2FkUHJvZ3Jlc3NpbmdTdGF0dXND
aGFuZ2VkKCkKQEAgLTU1NjgsNiArNTU3MSw0MyBAQCBJbnRTaXplIEZyYW1lVmlldzo6dmlld3Bv
cnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpIGNvbnN0CiAgICAgcmV0dXJuIHsgKnZpZXdwb3J0
U2l6ZS53aWR0aCwgKnZpZXdwb3J0U2l6ZS5oZWlnaHQgfTsKIH0KIAordm9pZCBGcmFtZVZpZXc6
OnNldE1pbmltdW1WaWV3cG9ydFNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoSW50U2l6ZSBz
aXplKQoreworICAgIGlmIChtX292ZXJyaWRlTWluaW11bVZpZXdwb3J0U2l6ZSA9PSBzaXplKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX292ZXJyaWRlTWluaW11bVZpZXdwb3J0U2l6ZSA9IHNp
emU7CisKKyAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCkpCisgICAg
ICAgIGRvY3VtZW50LT5zdHlsZVNjb3BlKCkuZGlkQ2hhbmdlU3R5bGVTaGVldEVudmlyb25tZW50
KCk7Cit9CisKK3ZvaWQgRnJhbWVWaWV3OjpjbGVhck1pbmltdW1WaWV3cG9ydFNpemVPdmVycmlk
ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpCit7CisgICAgaWYgKCFtX292ZXJyaWRlTWluaW11
bVZpZXdwb3J0U2l6ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9vdmVycmlkZU1pbmltdW1W
aWV3cG9ydFNpemUgPSBzdGQ6Om51bGxvcHQ7CisKKyAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBm
cmFtZSgpLmRvY3VtZW50KCkpCisgICAgICAgIGRvY3VtZW50LT5zdHlsZVNjb3BlKCkuZGlkQ2hh
bmdlU3R5bGVTaGVldEVudmlyb25tZW50KCk7Cit9CisKK0ludFNpemUgRnJhbWVWaWV3OjptaW5p
bXVtVmlld3BvcnRTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9vdmVycmlkZU1pbmltdW1WaWV3cG9ydFNpemUudmFsdWVfb3Iodmlld3BvcnRTaXpl
Rm9yQ1NTVmlld3BvcnRVbml0cygpKTsKK30KKworSW50U2l6ZSBGcmFtZVZpZXc6Om1heGltdW1W
aWV3cG9ydFNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoKSBjb25zdAoreworICAgIHJldHVy
biB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCk7Cit9CisKK0ludFNpemUgRnJhbWVW
aWV3OjpjdXJyZW50Vmlld3BvcnRTaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMoKSBjb25z
dAoreworICAgIHJldHVybiB2aXNpYmxlQ29udGVudFJlY3RJbmNsdWRpbmdTY3JvbGxiYXJzKCku
c2l6ZSgpOworfQorCiBib29sIEZyYW1lVmlldzo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJh
ck9uTGVmdCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHJlbmRlclZpZXcoKSAmJiByZW5kZXJWaWV3
KCktPnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oCmluZGV4IGQ5ZDQ4YWY1ZjdkMTQ5NzdmM2E1MGRlNTY1OTkzZWRlM2Q1MmEzMTguLmJh
MDUyNjRjNzFlYmZkMTgwZTI4ZmYwNjFjOWVlYTM4Y2RmYjBkY2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuaApAQCAtMjMyLDYgKzIzMiwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclZpZXdw
b3J0U2l6ZU92ZXJyaWRlRm9yQ1NTVmlld3BvcnRVbml0cygpOwogICAgIEludFNpemUgdmlld3Bv
cnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpIGNvbnN0OwogCisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRNaW5pbXVtVmlld3BvcnRTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKEludFNp
emUpOworICAgIHZvaWQgY2xlYXJNaW5pbXVtVmlld3BvcnRTaXplT3ZlcnJpZGVGb3JDU1NTbWFs
bFZpZXdwb3J0VW5pdHMoKTsKKyAgICBJbnRTaXplIG1pbmltdW1WaWV3cG9ydFNpemVGb3JDU1NT
bWFsbFZpZXdwb3J0VW5pdHMoKSBjb25zdDsKKworICAgIEludFNpemUgbWF4aW11bVZpZXdwb3J0
U2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpIGNvbnN0OworICAgIEludFNpemUgY3VycmVu
dFZpZXdwb3J0U2l6ZUZvckNTU0R5bmFtaWNWaWV3cG9ydFVuaXRzKCkgY29uc3Q7CisKICAgICBJ
bnRSZWN0IHdpbmRvd0NsaXBSZWN0KCkgY29uc3QgZmluYWw7CiAgICAgV0VCQ09SRV9FWFBPUlQg
SW50UmVjdCB3aW5kb3dDbGlwUmVjdEZvckZyYW1lT3duZXIoY29uc3QgSFRNTEZyYW1lT3duZXJF
bGVtZW50KiwgYm9vbCBjbGlwVG9MYXllckNvbnRlbnRzKSBjb25zdDsKIApAQCAtOTIwLDYgKzky
Nyw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIHN0ZDo6b3B0aW9uYWw8T3ZlcnJpZGVWaWV3
cG9ydFNpemU+IG1fb3ZlcnJpZGVWaWV3cG9ydFNpemU7CisgICAgc3RkOjpvcHRpb25hbDxJbnRT
aXplPiBtX292ZXJyaWRlTWluaW11bVZpZXdwb3J0U2l6ZTsKIAogICAgIC8vIFRoZSB2aWV3IHNp
emUgd2hlbiBhdXRvc2l6aW5nLgogICAgIEludFNpemUgbV9hdXRvU2l6ZUNvbnN0cmFpbnQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggOGEwNGVkOTAwZTY0YmRi
ZmJiZmZjZWI3MjM4MDMwNmYwZGE3OWNlMC4uNTg2NTdmYzRlYWJlNTI0ZjY0OGY2OTcwMzRkZjE5
MjY2NDQ2ZDJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAt
NzAyLDYgKzcwMiwyMSBAQCBJbnRTaXplIFJlbmRlclZpZXc6OnZpZXdwb3J0U2l6ZUZvckNTU1Zp
ZXdwb3J0VW5pdHMoKSBjb25zdAogICAgIHJldHVybiBmcmFtZVZpZXcoKS52aWV3cG9ydFNpemVG
b3JDU1NWaWV3cG9ydFVuaXRzKCk7CiB9CiAKK0ludFNpemUgUmVuZGVyVmlldzo6bWluaW11bVZp
ZXdwb3J0U2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGZyYW1lVmlldygpLm1pbmltdW1WaWV3cG9ydFNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMo
KTsKK30KKworSW50U2l6ZSBSZW5kZXJWaWV3OjptYXhpbXVtVmlld3BvcnRTaXplRm9yQ1NTTGFy
Z2VWaWV3cG9ydFVuaXRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnJhbWVWaWV3KCkubWF4aW11
bVZpZXdwb3J0U2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpOworfQorCitJbnRTaXplIFJl
bmRlclZpZXc6OmN1cnJlbnRWaWV3cG9ydFNpemVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cygp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGZyYW1lVmlldygpLmN1cnJlbnRWaWV3cG9ydFNpemVGb3JD
U1NEeW5hbWljVmlld3BvcnRVbml0cygpOworfQorCiBOb2RlKiBSZW5kZXJWaWV3Ojpub2RlRm9y
SGl0VGVzdCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCA0OGUzNjc5MzAzNTZl
MzQ4YTlmYmIyMWQzZDU3MDI0ZTE1MzQzNWE2Li40Y2U3MmI0MWQxNGZkODg1NmIxY2QwNjZkNjFh
YWVkODMwYzMwZjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKQEAgLTE0
NCw2ICsxNDQsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRQYWludEJhc2VCYWNrZ3JvdW5k
KCkgY29uc3Q7CiAKICAgICBJbnRTaXplIHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMo
KSBjb25zdDsKKyAgICBJbnRTaXplIG1pbmltdW1WaWV3cG9ydFNpemVGb3JDU1NTbWFsbFZpZXdw
b3J0VW5pdHMoKSBjb25zdDsKKyAgICBJbnRTaXplIG1heGltdW1WaWV3cG9ydFNpemVGb3JDU1NM
YXJnZVZpZXdwb3J0VW5pdHMoKSBjb25zdDsKKyAgICBJbnRTaXplIGN1cnJlbnRWaWV3cG9ydFNp
emVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cygpIGNvbnN0OwogCiAgICAgYm9vbCBoYXNRdW90
ZXNOZWVkaW5nVXBkYXRlKCkgY29uc3QgeyByZXR1cm4gbV9oYXNRdW90ZXNOZWVkaW5nVXBkYXRl
OyB9CiAgICAgdm9pZCBzZXRIYXNRdW90ZXNOZWVkaW5nVXBkYXRlKGJvb2wgYikgeyBtX2hhc1F1
b3Rlc05lZWRpbmdVcGRhdGUgPSBiOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTQ29tcGxldGlvbnMuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTQ29tcGxldGlvbnMuanMKaW5kZXggMmEx
ZjhlNGU0MzRhYTE5NzM2NTM5N2MyZDU0OTI0NDJiM2EwYjExOS4uYmRhOGE5MjljYzcyYmI5NGU0
ZmFhMWFkZDEwY2Y4ZTU5ZWZmOTE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU0NvbXBsZXRpb25zLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NDb21wbGV0aW9ucy5qcwpAQCAtMzY5
LDE1ICszNjksMjcgQEAgV0kuQ1NTQ29tcGxldGlvbnMuY3NzTmFtZUNvbXBsZXRpb25zID0gbnVs
bDsKIFdJLkNTU0NvbXBsZXRpb25zLmxlbmd0aFVuaXRzID0gbmV3IFNldChbCiAgICAgImNoIiwK
ICAgICAiY20iLAorICAgICJkdmgiLAorICAgICJkdm1heCIsCisgICAgImR2bWluIiwKKyAgICAi
ZHZ3IiwKICAgICAiZW0iLAogICAgICJleCIsCiAgICAgImluIiwKKyAgICAibHZoIiwKKyAgICAi
bHZtYXgiLAorICAgICJsdm1pbiIsCisgICAgImx2dyIsCiAgICAgIm1tIiwKICAgICAicGMiLAog
ICAgICJwdCIsCiAgICAgInB4IiwKICAgICAicSIsCiAgICAgInJlbSIsCisgICAgInN2aCIsCisg
ICAgInN2bWF4IiwKKyAgICAic3ZtaW4iLAorICAgICJzdnciLAogICAgICJ2aCIsCiAgICAgInZt
YXgiLAogICAgICJ2bWluIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKaW5kZXggYjkxOWRkOTc4ZmQ2YjQ1ZTIyODA5NGYx
OWE3NDdlMDhlN2ZjOTQ4OS4uMmVhYWNiNmZkMDIzOTFhMDM1YTAwZWM5ODEyYTk5ZDQ0YTkwYjZi
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0ludGVybmFsLmgKQEAgLTE1NSw2ICsxNTUsOCBAQCBjbGFzcyBWaWV3R2VzdHVyZUNvbnRy
b2xsZXI7CiAKICAgICBzdGQ6Om9wdGlvbmFsPENHU2l6ZT4gX3ZpZXdMYXlvdXRTaXplT3ZlcnJp
ZGU7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFNpemU+IF9sYXN0U2VudFZpZXdM
YXlvdXRTaXplOworICAgIHN0ZDo6b3B0aW9uYWw8Q0dTaXplPiBfbWluaW11bVVub2JzY3VyZWRT
aXplT3ZlcnJpZGU7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFNpemU+IF9sYXN0
U2VudE1pbmltdW1Vbm9ic2N1cmVkU2l6ZTsKICAgICBzdGQ6Om9wdGlvbmFsPENHU2l6ZT4gX21h
eGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
RmxvYXRTaXplPiBfbGFzdFNlbnRNYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgQ0dSZWN0IF9p
bnB1dFZpZXdCb3VuZHNJbldpbmRvdzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IGNiN2YzMzQzZmRlZTAyMDVhZTBj
ZTI2NmNmODMxNzlmMTFkYWQwNDEuLjI4YTQ5NzFjZTgwNTNhZTRiYzk0MjVmZDVmMzJjZjgzNTVi
ZmI3OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1ByaXZhdGUuaApAQCAtNDkyLDcgKzQ5Miw4IEBAIGZvciB0aGlzIHByb3BlcnR5Lgog
CiAtICh2b2lkKV9zbmFwc2hvdFJlY3Q6KENHUmVjdClyZWN0SW5WaWV3Q29vcmRpbmF0ZXMgaW50
b0ltYWdlT2ZXaWR0aDooQ0dGbG9hdClpbWFnZVdpZHRoIGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
KF4pKENHSW1hZ2VSZWYpKWNvbXBsZXRpb25IYW5kbGVyOwogCi0tICh2b2lkKV9vdmVycmlkZUxh
eW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6KENHU2l6ZSltaW5pbXVtTGF5b3V0
U2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTooQ0dTaXplKW1heGltdW1Vbm9ic2N1
cmVkU2l6ZU92ZXJyaWRlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOworLSAodm9pZClfb3Zl
cnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOihDR1NpemUpbWluaW11
bUxheW91dFNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6KENHU2l6ZSltYXhpbXVt
VW5vYnNjdXJlZFNpemVPdmVycmlkZSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5U
KCJfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOm1pbmltdW1V
bm9ic2N1cmVkU2l6ZU92ZXJyaWRlOm1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOiIsIGlv
cyg5XzAsIFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dp
dGhNaW5pbXVtTGF5b3V0U2l6ZTooQ0dTaXplKW1pbmltdW1MYXlvdXRTaXplIG1pbmltdW1Vbm9i
c2N1cmVkU2l6ZU92ZXJyaWRlOihDR1NpemUpbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUg
bWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6KENHU2l6ZSltYXhpbXVtVW5vYnNjdXJlZFNp
emVPdmVycmlkZSBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9j
bGVhck92ZXJyaWRlTGF5b3V0UGFyYW1ldGVycyBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7
CiAtICh2b2lkKV9vdmVycmlkZVZpZXdwb3J0V2l0aEFyZ3VtZW50czooTlNEaWN0aW9uYXJ5PE5T
U3RyaW5nICosIE5TU3RyaW5nICo+ICopYXJndW1lbnRzIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEz
LjApKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dl
YlZpZXdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lP
Uy5tbQppbmRleCAyODY2YzU4YjJlNzVlYjcwYjlkMGVmNzMzYTNkYWZjYWFmODFiNGQ1Li5iNjlm
ZWY2YTQ5NjE0ZmQ4MmFmZTgzZTMwNmU1NzFjODVlMDFkZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQpAQCAtNzAyLDYgKzcwMiw3IEBA
IC0gKHZvaWQpX3Byb2Nlc3NXaWxsU3dhcE9yRGlkRXhpdAogICAgIF9kaWREZWZlclVwZGF0ZVZp
c2libGVDb250ZW50UmVjdHNGb3JVbnN0YWJsZVNjcm9sbFZpZXcgPSBOTzsKICAgICBfY3VycmVu
dGx5QWRqdXN0aW5nU2Nyb2xsVmlld0luc2V0c0ZvcktleWJvYXJkID0gTk87CiAgICAgX2xhc3RT
ZW50Vmlld0xheW91dFNpemUgPSBzdGQ6Om51bGxvcHQ7CisgICAgX2xhc3RTZW50TWluaW11bVVu
b2JzY3VyZWRTaXplID0gc3RkOjpudWxsb3B0OwogICAgIF9sYXN0U2VudE1heGltdW1Vbm9ic2N1
cmVkU2l6ZSA9IHN0ZDo6bnVsbG9wdDsKICAgICBfbGFzdFNlbnREZXZpY2VPcmllbnRhdGlvbiA9
IHN0ZDo6bnVsbG9wdDsKIApAQCAtMTkwMyw2ICsxOTA0LDE1IEBAIC0gKHZvaWQpX2Rpc3BhdGNo
U2V0Vmlld0xheW91dFNpemU6KFdlYkNvcmU6OkZsb2F0U2l6ZSl2aWV3TGF5b3V0U2l6ZQogICAg
IF9sYXN0U2VudFZpZXdMYXlvdXRTaXplID0gdmlld0xheW91dFNpemU7CiB9CiAKKy0gKHZvaWQp
X2Rpc3BhdGNoU2V0TWluaW11bVVub2JzY3VyZWRTaXplOihXZWJDb3JlOjpGbG9hdFNpemUpbWlu
aW11bVVub2JzY3VyZWRTaXplCit7CisgICAgaWYgKF9sYXN0U2VudE1pbmltdW1Vbm9ic2N1cmVk
U2l6ZSAmJiBDR1NpemVFcXVhbFRvU2l6ZShfbGFzdFNlbnRNaW5pbXVtVW5vYnNjdXJlZFNpemUu
dmFsdWUoKSwgbWluaW11bVVub2JzY3VyZWRTaXplKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
X3BhZ2UtPnNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZShtaW5pbXVtVW5vYnNjdXJlZFNpemUpOwor
ICAgIF9sYXN0U2VudE1pbmltdW1Vbm9ic2N1cmVkU2l6ZSA9IG1pbmltdW1Vbm9ic2N1cmVkU2l6
ZTsKK30KKwogLSAodm9pZClfZGlzcGF0Y2hTZXRNYXhpbXVtVW5vYnNjdXJlZFNpemU6KFdlYkNv
cmU6OkZsb2F0U2l6ZSltYXhpbXVtVW5vYnNjdXJlZFNpemUKIHsKICAgICBpZiAoX2xhc3RTZW50
TWF4aW11bVVub2JzY3VyZWRTaXplICYmIENHU2l6ZUVxdWFsVG9TaXplKF9sYXN0U2VudE1heGlt
dW1Vbm9ic2N1cmVkU2l6ZS52YWx1ZSgpLCBtYXhpbXVtVW5vYnNjdXJlZFNpemUpKQpAQCAtMTkz
OCw2ICsxOTQ4LDggQEAgLSAodm9pZClfZnJhbWVPckJvdW5kc0NoYW5nZWQKICAgICBpZiAoX2R5
bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgPT0gV2ViS2l0OjpEeW5hbWljVmlld3BvcnRVcGRhdGVN
b2RlOjpOb3RSZXNpemluZykgewogICAgICAgICBpZiAoIV92aWV3TGF5b3V0U2l6ZU92ZXJyaWRl
KQogICAgICAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0Vmlld0xheW91dFNpemU6W3NlbGYgYWN0
aXZlVmlld0xheW91dFNpemU6c2VsZi5ib3VuZHNdXTsKKyAgICAgICAgaWYgKCFfbWluaW11bVVu
b2JzY3VyZWRTaXplT3ZlcnJpZGUpCisgICAgICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRNaW5p
bXVtVW5vYnNjdXJlZFNpemU6V2ViQ29yZTo6RmxvYXRTaXplKGJvdW5kcy5zaXplKV07CiAgICAg
ICAgIGlmICghX21heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlKQogICAgICAgICAgICAgW3Nl
bGYgX2Rpc3BhdGNoU2V0TWF4aW11bVVub2JzY3VyZWRTaXplOldlYkNvcmU6OkZsb2F0U2l6ZShi
b3VuZHMuc2l6ZSldOwogCkBAIC0yMjU4LDYgKzIyNzAsMTEgQEAgLSAodm9pZClfZGlkU3RhcnRQ
cm92aXNpb25hbExvYWRGb3JNYWluRnJhbWUKICAgICAgICAgX2dlc3R1cmVDb250cm9sbGVyLT5k
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFtZSgpOwogfQogCitzdGF0aWMgV2ViQ29y
ZTo6RmxvYXRTaXplIGFjdGl2ZU1pbmltdW1Vbm9ic2N1cmVkU2l6ZShXS1dlYlZpZXcgKndlYlZp
ZXcsIGNvbnN0IENHUmVjdCYgYm91bmRzKQoreworICAgIHJldHVybiBXZWJDb3JlOjpGbG9hdFNp
emUod2ViVmlldy0+X21pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlLnZhbHVlX29yKGJvdW5k
cy5zaXplKSk7Cit9CisKIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFNpemUgYWN0aXZlTWF4aW11bVVu
b2JzY3VyZWRTaXplKFdLV2ViVmlldyAqd2ViVmlldywgY29uc3QgQ0dSZWN0JiBib3VuZHMpCiB7
CiAgICAgcmV0dXJuIFdlYkNvcmU6OkZsb2F0U2l6ZSh3ZWJWaWV3LT5fbWF4aW11bVVub2JzY3Vy
ZWRTaXplT3ZlcnJpZGUudmFsdWVfb3IoYm91bmRzLnNpemUpKTsKQEAgLTIzNDcsMTIgKzIzNjQs
MTYgQEAgLSAodm9pZClfZGlkQ29tcGxldGVBbmltYXRlZFJlc2l6ZQogCiAgICAgQ0dSZWN0IG5l
d0JvdW5kcyA9IHNlbGYuYm91bmRzOwogICAgIGF1dG8gbmV3Vmlld0xheW91dFNpemUgPSBbc2Vs
ZiBhY3RpdmVWaWV3TGF5b3V0U2l6ZTpuZXdCb3VuZHNdOworICAgIGF1dG8gbmV3TWluaW11bVVu
b2JzY3VyZWRTaXplID0gYWN0aXZlTWluaW11bVVub2JzY3VyZWRTaXplKHNlbGYsIG5ld0JvdW5k
cyk7CiAgICAgYXV0byBuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBhY3RpdmVNYXhpbXVtVW5v
YnNjdXJlZFNpemUoc2VsZiwgbmV3Qm91bmRzKTsKICAgICBpbnQzMl90IG5ld09yaWVudGF0aW9u
ID0gYWN0aXZlT3JpZW50YXRpb24oc2VsZik7CiAKICAgICBpZiAoIV9sYXN0U2VudFZpZXdMYXlv
dXRTaXplIHx8IG5ld1ZpZXdMYXlvdXRTaXplICE9IF9sYXN0U2VudFZpZXdMYXlvdXRTaXplLnZh
bHVlKCkpCiAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldFZpZXdMYXlvdXRTaXplOm5ld1ZpZXdM
YXlvdXRTaXplXTsKIAorICAgIGlmICghX2xhc3RTZW50TWluaW11bVVub2JzY3VyZWRTaXplIHx8
IG5ld01pbmltdW1Vbm9ic2N1cmVkU2l6ZSAhPSBfbGFzdFNlbnRNaW5pbXVtVW5vYnNjdXJlZFNp
emUudmFsdWUoKSkKKyAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0TWluaW11bVVub2JzY3VyZWRT
aXplOldlYkNvcmU6OkZsb2F0U2l6ZShuZXdNaW5pbXVtVW5vYnNjdXJlZFNpemUpXTsKKwogICAg
IGlmICghX2xhc3RTZW50TWF4aW11bVVub2JzY3VyZWRTaXplIHx8IG5ld01heGltdW1Vbm9ic2N1
cmVkU2l6ZSAhPSBfbGFzdFNlbnRNYXhpbXVtVW5vYnNjdXJlZFNpemUudmFsdWUoKSkKICAgICAg
ICAgW3NlbGYgX2Rpc3BhdGNoU2V0TWF4aW11bVVub2JzY3VyZWRTaXplOldlYkNvcmU6OkZsb2F0
U2l6ZShuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUpXTsKIApAQCAtMjcwNyw2ICsyNzI4LDIxIEBA
IC0gKHZvaWQpX3NldFZpZXdMYXlvdXRTaXplT3ZlcnJpZGU6KENHU2l6ZSl2aWV3TGF5b3V0U2l6
ZU92ZXJyaWRlCiAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldFZpZXdMYXlvdXRTaXplOldlYkNv
cmU6OkZsb2F0U2l6ZSh2aWV3TGF5b3V0U2l6ZU92ZXJyaWRlKV07CiB9CiAKKy0gKENHU2l6ZSlf
bWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUKK3sKKyAgICBBU1NFUlQoX21pbmltdW1Vbm9i
c2N1cmVkU2l6ZU92ZXJyaWRlKTsKKyAgICByZXR1cm4gX21pbmltdW1Vbm9ic2N1cmVkU2l6ZU92
ZXJyaWRlLnZhbHVlX29yKENHU2l6ZVplcm8pOworfQorCistICh2b2lkKV9zZXRNaW5pbXVtVW5v
YnNjdXJlZFNpemVPdmVycmlkZTooQ0dTaXplKXNpemUKK3sKKyAgICBBU1NFUlQoc2l6ZS53aWR0
aCA8PSBzZWxmLmJvdW5kcy5zaXplLndpZHRoICYmIHNpemUuaGVpZ2h0IDw9IHNlbGYuYm91bmRz
LnNpemUuaGVpZ2h0KTsKKyAgICBfbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUgPSBzaXpl
OworCisgICAgaWYgKF9keW5hbWljVmlld3BvcnRVcGRhdGVNb2RlID09IFdlYktpdDo6RHluYW1p
Y1ZpZXdwb3J0VXBkYXRlTW9kZTo6Tm90UmVzaXppbmcpCisgICAgICAgIFtzZWxmIF9kaXNwYXRj
aFNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUoc2l6ZSldOworfQor
CiAvLyBEZXByZWNhdGVkIFNQSQogLSAoQ0dTaXplKV9tYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVy
cmlkZQogewpAQCAtMzAzMSw2ICszMDY3LDcgQEAgLSAodm9pZClfYmVnaW5BbmltYXRlZFJlc2l6
ZVdpdGhVcGRhdGVzOih2b2lkICheKSh2b2lkKSl1cGRhdGVCbG9jawogICAgICAgICBvbGRPYnNj
dXJlZEluc2V0cyA9IF9vYnNjdXJlZEluc2V0czsKICAgICB9CiAgICAgYXV0byBvbGRWaWV3TGF5
b3V0U2l6ZSA9IFtzZWxmIGFjdGl2ZVZpZXdMYXlvdXRTaXplOm9sZEJvdW5kc107CisgICAgYXV0
byBvbGRNaW5pbXVtVW5vYnNjdXJlZFNpemUgPSBhY3RpdmVNaW5pbXVtVW5vYnNjdXJlZFNpemUo
c2VsZiwgb2xkQm91bmRzKTsKICAgICBhdXRvIG9sZE1heGltdW1Vbm9ic2N1cmVkU2l6ZSA9IGFj
dGl2ZU1heGltdW1Vbm9ic2N1cmVkU2l6ZShzZWxmLCBvbGRCb3VuZHMpOwogCiAgICAgdXBkYXRl
QmxvY2soKTsKQEAgLTMwMzgsNiArMzA3NSw3IEBAIC0gKHZvaWQpX2JlZ2luQW5pbWF0ZWRSZXNp
emVXaXRoVXBkYXRlczoodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sKICAgICBDR1JlY3QgbmV3
Qm91bmRzID0gc2VsZi5ib3VuZHM7CiAgICAgYXV0byBuZXdNaW5pbXVtRWZmZWN0aXZlRGV2aWNl
V2lkdGggPSBbc2VsZiBfbWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoXTsKICAgICBhdXRvIG5l
d1ZpZXdMYXlvdXRTaXplID0gW3NlbGYgYWN0aXZlVmlld0xheW91dFNpemU6bmV3Qm91bmRzXTsK
KyAgICBhdXRvIG5ld01pbmltdW1Vbm9ic2N1cmVkU2l6ZSA9IGFjdGl2ZU1pbmltdW1Vbm9ic2N1
cmVkU2l6ZShzZWxmLCBuZXdCb3VuZHMpOwogICAgIGF1dG8gbmV3TWF4aW11bVVub2JzY3VyZWRT
aXplID0gYWN0aXZlTWF4aW11bVVub2JzY3VyZWRTaXplKHNlbGYsIG5ld0JvdW5kcyk7CiAgICAg
aW50MzJfdCBuZXdPcmllbnRhdGlvbiA9IGFjdGl2ZU9yaWVudGF0aW9uKHNlbGYpOwogICAgIFVJ
RWRnZUluc2V0cyBuZXdPYnNjdXJlZEluc2V0cyA9IF9vYnNjdXJlZEluc2V0czsKQEAgLTMwNTks
NiArMzA5Nyw4IEBAIC0gKHZvaWQpX2JlZ2luQW5pbWF0ZWRSZXNpemVXaXRoVXBkYXRlczoodm9p
ZCAoXikodm9pZCkpdXBkYXRlQmxvY2sKICAgICAgICAgW3NlbGYgX2ZyYW1lT3JCb3VuZHNDaGFu
Z2VkXTsKICAgICAgICAgaWYgKF92aWV3TGF5b3V0U2l6ZU92ZXJyaWRlKQogICAgICAgICAgICAg
W3NlbGYgX2Rpc3BhdGNoU2V0Vmlld0xheW91dFNpemU6bmV3Vmlld0xheW91dFNpemVdOworICAg
ICAgICBpZiAoX21pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlKQorICAgICAgICAgICAgW3Nl
bGYgX2Rpc3BhdGNoU2V0TWluaW11bVVub2JzY3VyZWRTaXplOldlYkNvcmU6OkZsb2F0U2l6ZShu
ZXdNaW5pbXVtVW5vYnNjdXJlZFNpemUpXTsKICAgICAgICAgaWYgKF9tYXhpbXVtVW5vYnNjdXJl
ZFNpemVPdmVycmlkZSkKICAgICAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1heGltdW1Vbm9i
c2N1cmVkU2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUobmV3TWF4aW11bVVub2JzY3VyZWRTaXplKV07
CiAgICAgICAgIGlmIChfb3ZlcnJpZGVzSW50ZXJmYWNlT3JpZW50YXRpb24pCkBAIC0zMDY5LDYg
KzMxMDksNyBAQCAtICh2b2lkKV9iZWdpbkFuaW1hdGVkUmVzaXplV2l0aFVwZGF0ZXM6KHZvaWQg
KF4pKHZvaWQpKXVwZGF0ZUJsb2NrCiAKICAgICBpZiAoQ0dSZWN0RXF1YWxUb1JlY3Qob2xkQm91
bmRzLCBuZXdCb3VuZHMpCiAgICAgICAgICYmIG9sZFZpZXdMYXlvdXRTaXplID09IG5ld1ZpZXdM
YXlvdXRTaXplCisgICAgICAgICYmIG9sZE1pbmltdW1Vbm9ic2N1cmVkU2l6ZSA9PSBuZXdNaW5p
bXVtVW5vYnNjdXJlZFNpemUKICAgICAgICAgJiYgb2xkTWF4aW11bVVub2JzY3VyZWRTaXplID09
IG5ld01heGltdW1Vbm9ic2N1cmVkU2l6ZQogICAgICAgICAmJiBvbGRPcmllbnRhdGlvbiA9PSBu
ZXdPcmllbnRhdGlvbgogICAgICAgICAmJiBvbGRNaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgg
PT0gbmV3TWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoCkBAIC0zMTM2LDEwICszMTc3LDExIEBA
IC0gKHZvaWQpX2JlZ2luQW5pbWF0ZWRSZXNpemVXaXRoVXBkYXRlczoodm9pZCAoXikodm9pZCkp
dXBkYXRlQmxvY2sKICAgICBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCB1bm9ic2N1cmVkU2FmZUFy
ZWFJbnNldHNFeHRlbnQodW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLnRvcCwgdW5vYnNjdXJlZFNh
ZmVBcmVhSW5zZXRzLnJpZ2h0LCB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMuYm90dG9tLCB1bm9i
c2N1cmVkU2FmZUFyZWFJbnNldHMubGVmdCk7CiAKICAgICBfbGFzdFNlbnRWaWV3TGF5b3V0U2l6
ZSA9IG5ld1ZpZXdMYXlvdXRTaXplOworICAgIF9sYXN0U2VudE1pbmltdW1Vbm9ic2N1cmVkU2l6
ZSA9IG5ld01pbmltdW1Vbm9ic2N1cmVkU2l6ZTsKICAgICBfbGFzdFNlbnRNYXhpbXVtVW5vYnNj
dXJlZFNpemUgPSBuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgX2xhc3RTZW50RGV2aWNl
T3JpZW50YXRpb24gPSBuZXdPcmllbnRhdGlvbjsKIAotICAgIF9wYWdlLT5keW5hbWljVmlld3Bv
cnRTaXplVXBkYXRlKG5ld1ZpZXdMYXlvdXRTaXplLCBuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUs
IHZpc2libGVSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMsIHVub2JzY3VyZWRSZWN0SW5Db250ZW50
Q29vcmRpbmF0ZXMsIGZ1dHVyZVVub2JzY3VyZWRSZWN0SW5TZWxmQ29vcmRpbmF0ZXMsIHVub2Jz
Y3VyZWRTYWZlQXJlYUluc2V0c0V4dGVudCwgdGFyZ2V0U2NhbGUsIG5ld09yaWVudGF0aW9uLCBu
ZXdNaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsICsrX2N1cnJlbnREeW5hbWljVmlld3BvcnRT
aXplVXBkYXRlSUQpOworICAgIF9wYWdlLT5keW5hbWljVmlld3BvcnRTaXplVXBkYXRlKG5ld1Zp
ZXdMYXlvdXRTaXplLCBuZXdNaW5pbXVtVW5vYnNjdXJlZFNpemUsIG5ld01heGltdW1Vbm9ic2N1
cmVkU2l6ZSwgdmlzaWJsZVJlY3RJbkNvbnRlbnRDb29yZGluYXRlcywgdW5vYnNjdXJlZFJlY3RJ
bkNvbnRlbnRDb29yZGluYXRlcywgZnV0dXJlVW5vYnNjdXJlZFJlY3RJblNlbGZDb29yZGluYXRl
cywgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzRXh0ZW50LCB0YXJnZXRTY2FsZSwgbmV3T3JpZW50
YXRpb24sIG5ld01pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCwgKytfY3VycmVudER5bmFtaWNW
aWV3cG9ydFNpemVVcGRhdGVJRCk7CiAgICAgaWYgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eSog
ZHJhd2luZ0FyZWEgPSBfcGFnZS0+ZHJhd2luZ0FyZWEoKSkKICAgICAgICAgZHJhd2luZ0FyZWEt
PnNldFNpemUoV2ViQ29yZTo6SW50U2l6ZShuZXdCb3VuZHMuc2l6ZSkpOwogCkBAIC0zMjU1LDEy
ICszMjk3LDIxIEBAIC0gKHZvaWQpX3NuYXBzaG90UmVjdDooQ0dSZWN0KXJlY3RJblZpZXdDb29y
ZGluYXRlcyBpbnRvSW1hZ2VPZldpZHRoOihDR0Zsb2F0KWltCiAKIC0gKHZvaWQpX292ZXJyaWRl
TGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTooQ0dTaXplKW1pbmltdW1MYXlv
dXRTaXplIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOihDR1NpemUpbWF4aW11bVVub2Jz
Y3VyZWRTaXplT3ZlcnJpZGUKIHsKLSAgICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBz
dHJlYW0gPDwgIi1bV0tXZWJWaWV3ICIgPDwgX3BhZ2UtPmlkZW50aWZpZXIoKSA8PCAiIF9vdmVy
cmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6IiA8PCBXZWJDb3JlOjpG
bG9hdFNpemUobWluaW11bUxheW91dFNpemUpIDw8ICIgbWF4aW11bVVub2JzY3VyZWRTaXplT3Zl
cnJpZGU6IiA8PCBXZWJDb3JlOjpGbG9hdFNpemUobWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJp
ZGUpIDw8ICJdIik7CisgICAgW3NlbGYgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5p
bXVtTGF5b3V0U2l6ZTptaW5pbXVtTGF5b3V0U2l6ZSBtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVy
cmlkZTpDR1NpemVaZXJvIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOm1heGltdW1Vbm9i
c2N1cmVkU2l6ZU92ZXJyaWRlXTsKK30KKworLSAodm9pZClfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0
ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOihDR1NpemUpbWluaW11bUxheW91dFNpemUgbWluaW11
bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6KENHU2l6ZSltaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVy
cmlkZSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTooQ0dTaXplKW1heGltdW1Vbm9ic2N1
cmVkU2l6ZU92ZXJyaWRlCit7CisgICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3Ry
ZWFtIDw8ICItW1dLV2ViVmlldyAiIDw8IF9wYWdlLT5pZGVudGlmaWVyKCkgPDwgIiBfb3ZlcnJp
ZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOiIgPDwgV2ViQ29yZTo6Rmxv
YXRTaXplKG1pbmltdW1MYXlvdXRTaXplKSA8PCAiIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJy
aWRlOiIgPDwgV2ViQ29yZTo6RmxvYXRTaXplKG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRl
KSA8PCAiIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOiIgPDwgV2ViQ29yZTo6RmxvYXRT
aXplKG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlKSA8PCAiXSIpOwogCiAgICAgaWYgKG1p
bmltdW1MYXlvdXRTaXplLndpZHRoIDwgMCB8fCBtaW5pbXVtTGF5b3V0U2l6ZS5oZWlnaHQgPCAw
KQogICAgICAgICBSRUxFQVNFX0xPR19GQVVMVChWaXNpYmxlUmVjdHMsICIlczogRXJyb3I6IGF0
dGVtcHRpbmcgdG8gb3ZlcnJpZGUgbGF5b3V0IHBhcmFtZXRlcnMgd2l0aCBuZWdhdGl2ZSB3aWR0
aCBvciBoZWlnaHQ6ICVAIiwgX19QUkVUVFlfRlVOQ1RJT05fXywgTlNTdHJpbmdGcm9tQ0dTaXpl
KG1pbmltdW1MYXlvdXRTaXplKSk7CiAKKyAgICBpZiAoQ0dTaXplRXF1YWxUb1NpemUobWluaW11
bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUsIENHU2l6ZVplcm8pICE9IENHU2l6ZUVxdWFsVG9TaXpl
KG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlLCBDR1NpemVaZXJvKSkKKyAgICAgICAgUkVM
RUFTRV9MT0dfRkFVTFQoVmlzaWJsZVJlY3RzLCAiJXM6IEVycm9yOiBhdHRlbXB0aW5nIHRvIG92
ZXJyaWRlIGxheW91dCBwYXJhbWV0ZXJzIHdpdGggb25seSBvbmUgb2YgbWluaW11bVVub2JzY3Vy
ZWRTaXplT3ZlcnJpZGUgKCVAKSBhbmQgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUgKCVA
KSIsIF9fUFJFVFRZX0ZVTkNUSU9OX18sIE5TU3RyaW5nRnJvbUNHU2l6ZShtaW5pbXVtVW5vYnNj
dXJlZFNpemVPdmVycmlkZSksIE5TU3RyaW5nRnJvbUNHU2l6ZShtYXhpbXVtVW5vYnNjdXJlZFNp
emVPdmVycmlkZSkpOworCiAgICAgW3NlbGYgX3NldFZpZXdMYXlvdXRTaXplT3ZlcnJpZGU6Q0dT
aXplTWFrZShzdGQ6Om1heDxDR0Zsb2F0PigwLCBtaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCksIHN0
ZDo6bWF4PENHRmxvYXQ+KDAsIG1pbmltdW1MYXlvdXRTaXplLmhlaWdodCkpXTsKKyAgICBbc2Vs
ZiBfc2V0TWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6bWluaW11bVVub2JzY3VyZWRTaXpl
T3ZlcnJpZGVdOwogICAgIFtzZWxmIF9zZXRNYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpt
YXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZV07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKaW5kZXggNzUxY2M0NzllYzlmZDY5Y2QzNzMwNzczNzI4MDE3NTBlNzli
MmMyZC4uYjMyMThiODU3MTgzNDAyNGUyNTMxMDgwMjM3ZmQ2OTg3MTBmMDRhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTgxNSw5ICs4MTUsMTEgQEAgcHVibGlj
OgogICAgIHZvaWQgc2Nyb2xsaW5nTm9kZVNjcm9sbFdpbGxTdGFydFNjcm9sbCgpOwogICAgIHZv
aWQgc2Nyb2xsaW5nTm9kZVNjcm9sbERpZEVuZFNjcm9sbCgpOwogCi0gICAgdm9pZCBkeW5hbWlj
Vmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdmlld0xheW91dFNp
emUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25z
dCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3Vi
bGUgdGFyZ2V0U2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIGRvdWJsZSBtaW5pbXVt
RWZmZWN0aXZlRGV2aWNlV2lkdGgsIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCk7CisgICAg
dm9pZCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYg
dmlld0xheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWluaW11bVVub2JzY3Vy
ZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywg
Y29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywg
ZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCBkb3VibGUgbWlu
aW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpOwog
CiAgICAgdm9pZCBzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZShjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmLCBkb3VibGUgc2NhbGVGYWN0b3IsIGRvdWJsZSBtaW5pbXVtRWZm
ZWN0aXZlRGV2aWNlV2lkdGgpOworICAgIHZvaWQgc2V0TWluaW11bVVub2JzY3VyZWRTaXplKGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOworICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtaW5pdW11
VW5vYnNjdXJlZFNpemUoKSBjb25zdCB7IHJldHVybiBtX21pbmltdW1Vbm9ic2N1cmVkU2l6ZTsg
fQogICAgIHZvaWQgc2V0TWF4aW11bVVub2JzY3VyZWRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYpOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemUoKSBj
b25zdCB7IHJldHVybiBtX21heGltdW1Vbm9ic2N1cmVkU2l6ZTsgfQogICAgIHZvaWQgc2V0RGV2
aWNlT3JpZW50YXRpb24oaW50MzJfdCk7CkBAIC0yOTcwLDYgKzI5NzIsNyBAQCBwcml2YXRlOgog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgRnVuY3Rpb248Ym9vbCgpPiBtX2RldmljZU9y
aWVudGF0aW9uVXNlclBlcm1pc3Npb25IYW5kbGVyRm9yVGVzdGluZzsKICAgICBib29sIG1fd2Fp
dGluZ0ZvclBvc3RMYXlvdXRFZGl0b3JTdGF0ZVVwZGF0ZUFmdGVyRm9jdXNpbmdFbGVtZW50IHsg
ZmFsc2UgfTsKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV9taW5pbXVtVW5vYnNjdXJlZFNpemU7
CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fbWF4aW11bVVub2JzY3VyZWRTaXplOwogICAgIGJv
b2wgbV9sYXN0T2JzZXJ2ZWRTdGF0ZVdhc0JhY2tncm91bmQgeyBmYWxzZSB9OwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCAx
YmZhNzE4MzJjMGVhYjM2NjdlZmFhYTc2ZjMyZTliZThmZjBlN2FkLi5iNDQ1OWY1ZDI0NmM1ZmI4
MTU0OWNjYWYxYzhjZTQ4NGZkNjI3N2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTI2NCw3ICsyNjQsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6c2Nyb2xsaW5nTm9kZVNjcm9sbERpZEVuZFNjcm9sbCgpCiAgICAgcGFnZUNsaWVudCgp
LnNjcm9sbGluZ05vZGVTY3JvbGxEaWRFbmRTY3JvbGwoKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiB2aWV3TGF5b3V0
U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNv
bnN0IEZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRS
ZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50
JiB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSB0YXJnZXRTY2FsZSwgaW50MzJfdCBk
ZXZpY2VPcmllbnRhdGlvbiwgZG91YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCwgRHlu
YW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCkKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6
ZSYgdmlld0xheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWluaW11bVVub2Jz
Y3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6
ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNj
dXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hF
eHRlbnQmIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHRhcmdldFNjYWxlLCBpbnQz
Ml90IGRldmljZU9yaWVudGF0aW9uLCBkb3VibGUgbWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRo
LCBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlE
KQogewogICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkKICAgICAgICAgcmV0dXJuOwpAQCAt
MjczLDcgKzI3Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkeW5hbWljVmlld3BvcnRTaXplVXBk
YXRlKGNvbnN0IEZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUsIGNvCiAKICAgICBtX3ZpZXdwb3J0
Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplID0gdmlld0xheW91dFNpemU7CiAgICAgbV9wcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKHZp
ZXdMYXlvdXRTaXplLAotICAgICAgICBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIHRhcmdldEV4cG9z
ZWRDb250ZW50UmVjdCwgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsCisgICAgICAgIG1pbmltdW1Vbm9i
c2N1cmVkU2l6ZSwgbWF4aW11bVVub2JzY3VyZWRTaXplLCB0YXJnZXRFeHBvc2VkQ29udGVudFJl
Y3QsIHRhcmdldFVub2JzY3VyZWRSZWN0LAogICAgICAgICB0YXJnZXRVbm9ic2N1cmVkUmVjdElu
U2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsCiAgICAgICAg
IHRhcmdldFNjYWxlLCBkZXZpY2VPcmllbnRhdGlvbiwgbWluaW11bUVmZmVjdGl2ZURldmljZVdp
ZHRoLCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpLCBtX3dlYlBhZ2VJRCk7CiAKQEAgLTMw
MCw2ICszMDAsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldEZvcmNlQWx3YXlzVXNlclNjYWxh
YmxlKGJvb2wgdXNlclNjYWxhYmxlKQogICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OlNldEZvcmNlQWx3YXlzVXNlclNjYWxhYmxlKHVzZXJTY2FsYWJsZSksIG1fd2Vi
UGFnZUlEKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnNldE1pbmltdW1Vbm9ic2N1cmVkU2l6
ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUpCit7CisgICAgbV9taW5pbXVtVW5vYnNj
dXJlZFNpemUgPSBzaXplOworCisgICAgaWYgKGhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAg
IG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0TWluaW11bVVub2JzY3VyZWRT
aXplKHNpemUpLCBtX3dlYlBhZ2VJRCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNYXhp
bXVtVW5vYnNjdXJlZFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplKQogewogICAg
IG1fbWF4aW11bVVub2JzY3VyZWRTaXplID0gc2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmll
d0NvbnRyb2xsZXIubW0KaW5kZXggNTAwNDBhNTJkNDZkZjg4NGFjNzk4YjBkYzgzNDZmZDliMWQ3
Y2VmMy4uM2JhMmM0OGYyMDVmOGE1NzkzYWYyYjRmNTRkOTA5Y2VhOTMyOTU3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmll
d0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3Jl
ZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0KQEAgLTQwMiw3ICs0MDIsNyBAQCAtICh2
b2lkKXZpZXdXaWxsVHJhbnNpdGlvblRvU2l6ZTooQ0dTaXplKXNpemUgd2l0aFRyYW5zaXRpb25D
b29yZGluYXRvcjooaWQ8VUlWaQogICAgIFtzdXBlciB2aWV3V2lsbFRyYW5zaXRpb25Ub1NpemU6
c2l6ZSB3aXRoVHJhbnNpdGlvbkNvb3JkaW5hdG9yOmNvb3JkaW5hdG9yXTsKICAgICBbY29vcmRp
bmF0b3IgYW5pbWF0ZUFsb25nc2lkZVRyYW5zaXRpb246XihpZDxVSVZpZXdDb250cm9sbGVyVHJh
bnNpdGlvbkNvb3JkaW5hdG9yQ29udGV4dD4gY29udGV4dCkgewogICAgICAgICBbc2VsZi5fd2Vi
VmlldyBfYmVnaW5BbmltYXRlZFJlc2l6ZVdpdGhVcGRhdGVzOl57Ci0gICAgICAgICAgICBbc2Vs
Zi5fd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXpl
OnNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6c2l6ZV07CisgICAgICAgICAgICBb
c2VsZi5fd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRT
aXplOnNpemUgbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6c2l6ZSBtYXhpbXVtVW5vYnNj
dXJlZFNpemVPdmVycmlkZTpzaXplXTsKICAgICAgICAgfV07CiAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgW3NlbGYuX3dlYlZpZXcgX3NldEludGVyZmFjZU9y
aWVudGF0aW9uT3ZlcnJpZGU6W1VJQXBwIHN0YXR1c0Jhck9yaWVudGF0aW9uXV07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVySU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxz
Y3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbQppbmRleCBlMTlmZjVjYjI0
ZjAxZTkzMTA4MmQ1NThmMzNlZGQyYWUwZDNiZjBkLi4wYzFjZDU1ZjIyZTY0ZDIyMmNhZDBlOGMy
NDBjMmZhMjJmM2QxZDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
ZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXJJT1MubW0KQEAgLTU5MSw3ICs1OTEsNyBAQCAtICh2b2lkKWVudGVyRnVsbFNjcmVlbgog
ICAgICAgICAKICAgICAgICAgW3dlYlZpZXcgc2V0QXV0b3Jlc2l6aW5nTWFzazooVUlWaWV3QXV0
b3Jlc2l6aW5nRmxleGlibGVXaWR0aCB8IFVJVmlld0F1dG9yZXNpemluZ0ZsZXhpYmxlSGVpZ2h0
KV07CiAgICAgICAgIFt3ZWJWaWV3IHNldEZyYW1lOltfd2luZG93IGJvdW5kc11dOwotICAgICAg
ICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXpl
Oltfd2luZG93IGJvdW5kc10uc2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpbX3dp
bmRvdyBib3VuZHNdLnNpemVdOworICAgICAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJh
bWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOltfd2luZG93IGJvdW5kc10uc2l6ZSBtaW5pbXVt
VW5vYnNjdXJlZFNpemVPdmVycmlkZTpbX3dpbmRvdyBib3VuZHNdLnNpemUgbWF4aW11bVVub2Jz
Y3VyZWRTaXplT3ZlcnJpZGU6W193aW5kb3cgYm91bmRzXS5zaXplXTsKICAgICAgICAgW193aW5k
b3cgaW5zZXJ0U3Vidmlldzp3ZWJWaWV3LmdldCgpIGF0SW5kZXg6MF07CiAgICAgICAgIFt3ZWJW
aWV3IHNldE5lZWRzTGF5b3V0XTsKICAgICAgICAgW3dlYlZpZXcgbGF5b3V0SWZOZWVkZWRdOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGMxMzg1NTcz
YjBiZTVmZWM4MDE1MGE5NWZiMzk1MTk0M2E1MDQ2NjYuLmUzMmUzZGYxODNiMGQ3NDA2MzdlMWQ4
OWI3MDljMTZkMDlkMDU4ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKQEAgLTEwNzksOSArMTA3OSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVW
aXNpYmlsaXR5U3RhdGUoYm9vbCBpc0luaXRpYWxTdGF0ZSA9IGZhbHNlKTsKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgdm9pZCBzZXRNaW5pbXVtVW5vYnNjdXJlZFNpemUoY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgdm9pZCBzZXRNYXhpbXVtVW5vYnNjdXJlZFNpemUo
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgdm9pZCBzZXREZXZpY2VPcmllbnRhdGlv
bihpbnQzMl90KTsKLSAgICB2b2lkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0
RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2Jz
Y3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0
SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiB0
YXJnZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSBzY2FsZSwgaW50MzJfdCBkZXZp
Y2VPcmllbnRhdGlvbiwgZG91YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCwgRHluYW1p
Y1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKTsKKyAgICB2b2lkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRh
dGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBtaW5pbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRh
cmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRV
bm9ic2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVk
UmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVu
dCYgdGFyZ2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2NhbGUsIGludDMyX3Qg
ZGV2aWNlT3JpZW50YXRpb24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsIER5
bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCk7CiAgICAgYm9vbCBzY2FsZVdhc1NldEJ5VUlQcm9j
ZXNzKCkgY29uc3QgeyByZXR1cm4gbV9zY2FsZVdhc1NldEJ5VUlQcm9jZXNzOyB9CiAgICAgdm9p
ZCB3aWxsU3RhcnRVc2VyVHJpZ2dlcmVkWm9vbWluZygpOwogICAgIHZvaWQgYXBwbGljYXRpb25X
aWxsUmVzaWduQWN0aXZlKCk7CkBAIC0yMjQ5LDYgKzIyNTAsNyBAQCBwcml2YXRlOgogCiAgICAg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTaW1wbGVSYW5nZT4gbV9pbml0aWFsU2VsZWN0aW9uOwog
ICAgIFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb24gbV9zdG9yZWRTZWxlY3Rpb25Gb3JBY2Nlc3Np
YmlsaXR5IHsgV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbigpIH07CisgICAgV2ViQ29yZTo6Rmxv
YXRTaXplIG1fbWluaW11bVVub2JzY3VyZWRTaXplOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBt
X21heGltdW1Vbm9ic2N1cmVkU2l6ZTsKICAgICBpbnQzMl90IG1fZGV2aWNlT3JpZW50YXRpb24g
eyAwIH07CiAgICAgYm9vbCBtX2tleWJvYXJkSXNBdHRhY2hlZCB7IGZhbHNlIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpp
bmRleCA4YWZjNGVhNWUzY2QwMWMyYWMzYTRhMzQxZjMxNmE5YTIxMTMzMmUxLi44ZGNlYTM1MmVi
ZjRiYmMwOTMzNjE0MWEwMDM5NWI2ZmQwMDljYzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTUzLDEwICs1Mywx
MSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBNb3VzZUV2ZW50
KFdlYktpdDo6V2ViTW91c2VFdmVudCBldmVudCwgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViS2l0
OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+PiBzYW5kYm94RXh0ZW5zaW9ucykKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgIFNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRT
aXplKFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXplLCBkb3VibGUgc2NhbGVGYWN0b3IsIGRvdWJsZSBt
aW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgpCisgICAgU2V0TWluaW11bVVub2JzY3VyZWRTaXpl
KFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXplKQogICAgIFNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZShX
ZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSkKICAgICBTZXREZXZpY2VPcmllbnRhdGlvbihpbnQzMl90
IGRldmljZU9yaWVudGF0aW9uKQogICAgIFNldE92ZXJyaWRlVmlld3BvcnRBcmd1bWVudHMoc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cz4gYXJndW1lbnRzKQotICAgIER5
bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoV2ViQ29yZTo6RmxvYXRTaXplIHZpZXdMYXlvdXRTaXpl
LCBXZWJDb3JlOjpGbG9hdFNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplLCBXZWJDb3JlOjpGbG9h
dFJlY3QgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0
VW5vYnNjdXJlZFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVkUmVjdElu
U2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBXZWJDb3JlOjpSZWN0RWRnZXM8ZmxvYXQ+IHRhcmdldFVu
b2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVu
dGF0aW9uLCBkb3VibGUgbWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCB1aW50NjRfdCBkeW5h
bWljVmlld3BvcnRTaXplVXBkYXRlSUQpCisgICAgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShX
ZWJDb3JlOjpGbG9hdFNpemUgdmlld0xheW91dFNpemUsIFdlYkNvcmU6OkZsb2F0U2l6ZSBtaW5p
bXVtVW5vYnNjdXJlZFNpemUsIFdlYkNvcmU6OkZsb2F0U2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNp
emUsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIFdlYkNvcmU6
OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdl
dFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIFdlYkNvcmU6OlJlY3RFZGdl
czxmbG9hdD4gdGFyZ2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2NhbGUsIGlu
dDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lk
dGgsIHVpbnQ2NF90IGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCkKICAgICAKICAgICBTZXRT
Y3JlZW5Jc0JlaW5nQ2FwdHVyZWQoYm9vbCBjYXB0dXJlZCkKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCAwYzVhZjRjMGEw
ODUwYWZjZDUyMWZlNTI1ZTBjZjYxOGFjYjQ5YmY5Li40ZWRiMzFlYzhhZDhmODI0NWM4ODAwODhk
MmIzNGIyNzBjMzIwYmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMzQxMyw2ICszNDEzLDEyIEBAIHZvaWQgV2ViUGFn
ZTo6c2V0Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUoY29uc3QgRmxvYXRTaXpl
JiBzaXplLCBkb3ViCiAgICAgdmlld3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZCh6b29tVG9Jbml0
aWFsU2NhbGUpOwogfQogCit2b2lkIFdlYlBhZ2U6OnNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZShj
b25zdCBGbG9hdFNpemUmIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZSkKK3sKKyAgICBtX21pbmltdW1V
bm9ic2N1cmVkU2l6ZSA9IG1pbmltdW1Vbm9ic2N1cmVkU2l6ZTsKKyAgICB1cGRhdGVWaWV3cG9y
dFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCk7Cit9CisKIHZvaWQgV2ViUGFnZTo6c2V0TWF4aW11
bVVub2JzY3VyZWRTaXplKGNvbnN0IEZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplKQog
ewogICAgIG1fbWF4aW11bVVub2JzY3VyZWRTaXplID0gbWF4aW11bVVub2JzY3VyZWRTaXplOwpA
QCAtMzQzMiw3ICszNDM4LDcgQEAgdm9pZCBXZWJQYWdlOjpzZXRPdmVycmlkZVZpZXdwb3J0QXJn
dW1lbnRzKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Vmlld3BvcnQKICAgICBtX3BhZ2Ut
PnNldE92ZXJyaWRlVmlld3BvcnRBcmd1bWVudHMoYXJndW1lbnRzKTsKIH0KIAotdm9pZCBXZWJQ
YWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgdmlld0xheW91
dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBj
b25zdCBGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgRmxvYXRSZWN0
JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRV
bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9h
dEJveEV4dGVudCYgdGFyZ2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0
U2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZl
RGV2aWNlV2lkdGgsIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCBkeW5hbWljVmlld3BvcnRT
aXplVXBkYXRlSUQpCit2b2lkIFdlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29u
c3QgRmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBt
aW5pbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVu
b2JzY3VyZWRTaXplLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25z
dCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdGFyZ2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRz
LCBkb3VibGUgdGFyZ2V0U2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIGRvdWJsZSBt
aW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCBk
eW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpCiB7CiAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gZHlu
YW1pY1NpemVVcGRhdGVHdWFyZChtX2luRHluYW1pY1NpemVVcGRhdGUsIHRydWUpOwogICAgIC8v
IEZJWE1FOiB0aGlzIGRvZXMgbm90IGhhbmRsZSB0aGUgY2FzZXMgd2hlcmUgdGhlIGNvbnRlbnQg
d291bGQgY2hhbmdlIHRoZSBjb250ZW50IHNpemUgb3Igc2Nyb2xsIHBvc2l0aW9uIGZyb20gSmF2
YVNjcmlwdC4KQEAgLTM0ODAsNiArMzQ4Niw3IEBAIHZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdw
b3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXCiAg
ICAgaWYgKHNldEZpeGVkTGF5b3V0U2l6ZShuZXdMYXlvdXRTaXplKSkKICAgICAgICAgcmVzZXRU
ZXh0QXV0b3NpemluZygpOwogCisgICAgc2V0TWluaW11bVVub2JzY3VyZWRTaXplKG1pbmltdW1V
bm9ic2N1cmVkU2l6ZSk7CiAgICAgc2V0TWF4aW11bVVub2JzY3VyZWRTaXplKG1heGltdW1Vbm9i
c2N1cmVkU2l6ZSk7CiAgICAgbV9wYWdlLT5zZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldHModGFy
Z2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzKTsKIApAQCAtMzgyNiwxMiArMzgzMywxOCBAQCB2
b2lkIFdlYlBhZ2U6OnZpZXdwb3J0Q29uZmlndXJhdGlvbkNoYW5nZWQoWm9vbVRvSW5pdGlhbFNj
YWxlIHpvb21Ub0luaXRpYWxTY2FsZQogCiB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVZpZXdwb3J0U2l6
ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKQogeworICAgIEZsb2F0U2l6ZSBzbWFsbGVzdFVub2JzY3Vy
ZWRTaXplID0gbV9taW5pbXVtVW5vYnNjdXJlZFNpemU7CisgICAgaWYgKHNtYWxsZXN0VW5vYnNj
dXJlZFNpemUuaXNFbXB0eSgpKQorICAgICAgICBzbWFsbGVzdFVub2JzY3VyZWRTaXplID0gbV92
aWV3cG9ydENvbmZpZ3VyYXRpb24udmlld0xheW91dFNpemUoKTsKKwogICAgIEZsb2F0U2l6ZSBs
YXJnZXN0VW5vYnNjdXJlZFNpemUgPSBtX21heGltdW1Vbm9ic2N1cmVkU2l6ZTsKICAgICBpZiAo
bGFyZ2VzdFVub2JzY3VyZWRTaXplLmlzRW1wdHkoKSkKICAgICAgICAgbGFyZ2VzdFVub2JzY3Vy
ZWRTaXplID0gbV92aWV3cG9ydENvbmZpZ3VyYXRpb24udmlld0xheW91dFNpemUoKTsKIAogICAg
IEZyYW1lVmlldyYgZnJhbWVWaWV3ID0gKm1haW5GcmFtZVZpZXcoKTsKKyAgICBzbWFsbGVzdFVu
b2JzY3VyZWRTaXplLnNjYWxlKDEgLyBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5pbml0aWFsU2Nh
bGVJZ25vcmluZ0NvbnRlbnRTaXplKCkpOwogICAgIGxhcmdlc3RVbm9ic2N1cmVkU2l6ZS5zY2Fs
ZSgxIC8gbV92aWV3cG9ydENvbmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxlSWdub3JpbmdDb250ZW50
U2l6ZSgpKTsKKyAgICBmcmFtZVZpZXcuc2V0TWluaW11bVZpZXdwb3J0U2l6ZUZvckNTU1NtYWxs
Vmlld3BvcnRVbml0cyhyb3VuZGVkSW50U2l6ZShzbWFsbGVzdFVub2JzY3VyZWRTaXplKSk7CiAg
ICAgZnJhbWVWaWV3LnNldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMocm91bmRlZElu
dFNpemUobGFyZ2VzdFVub2JzY3VyZWRTaXplKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0MWYwZGFlMDRkYmMyMTIzMGJkODJhMzE3
OTQxZDA0ODgxMDEyOWRmLi41NzRlNjFjNDBjMmM5OWQzZWM0MzdmYWE4ODVmOTk0NDJlNTk3NjU0
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzMgQEAKKzIwMjEtMTAtMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFtjc3MtdmFsdWVzLTRdIFN1cHBvcnQgc21hbGwgKHN2KiksIGxhcmdlIChs
diopIGFuZCBkeW5hbWljIChkdiopIHZpZXdwb3J0IHVuaXRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyODcKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzcxODU3MzcwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DU1NWaWV3cG9ydFVuaXRz
Lm1tOiBBZGRlZC4KKyAgICAgICAgKGdldEVsZW1lbnRIZWlnaHQpOgorICAgICAgICAoVEVTVC5D
U1NWaWV3cG9ydFVuaXRzLkFsbFNhbWUpOgorICAgICAgICAoVEVTVC5DU1NWaWV3cG9ydFVuaXRz
LkVtcHR5VW5vYnNjdXJlZFNpemVPdmVycmlkZXMpOgorICAgICAgICAoVEVTVC5DU1NWaWV3cG9y
dFVuaXRzLlNhbWVVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlcyk6CisgICAgICAgIChURVNULkNTU1Zp
ZXdwb3J0VW5pdHMuRGlmZmVyZW50VW5vYnNjdXJlZFNpemVPdmVycmlkZXMpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ1NTVmlld3BvcnRVbml0cy5odG1sOiBB
ZGRlZC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQW5pbWF0
ZWRSZXNpemUubW06CisgICAgICAgIChURVNULldlYktpdC5PdmVycmlkZUxheW91dFNpemVDaGFu
Z2VzRHVyaW5nQW5pbWF0ZWRSZXNpemVTdWNjZWVkKToKKyAgICAgICAgKFRFU1QuV2ViS2l0Lk92
ZXJyaWRlTGF5b3V0U2l6ZUlzUmVzdG9yZWRBZnRlclByb2Nlc3NSZWxhdW5jaCk6CisgICAgICAg
IChURVNULldlYktpdC5PdmVycmlkZUxheW91dFNpemVJc1Jlc3RvcmVkQWZ0ZXJDaGFuZ2luZ0R1
cmluZ1Byb2Nlc3NSZWxhdW5jaCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9GaXhlZExheW91dFNpemUubW06CisgICAgICAgIChURVNULldlYktpdC5PdmVycmlk
ZU1pbmltdW1MYXlvdXRTaXplV2l0aE5lZ2F0aXZlSGVpZ2h0KToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL2lvcy9TY3JvbGxWaWV3U2Nyb2xsYWJpbGl0eVRlc3RzLm1tOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVC5TY3JvbGxWaWV3U2Nyb2xsYWJpbGl0eVRlc3RzLlNjcm9s
bGFibGVXaXRoT3ZlcmZsb3dIaWRkZW5BbmRWaXNpYmxlVUkpOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVC5TY3JvbGxWaWV3U2Nyb2xsYWJpbGl0eVRlc3RzLlNjcm9sbGFibGVXaXRoT3Zl
cmZsb3dIaWRkZW5BbmRTaHJ1bmtVSSk6CisgICAgICAgIFJlcGxhY2UgYF9vdmVycmlkZUxheW91
dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6bWF4aW11bVVub2JzY3VyZWRTaXplT3Zl
cnJpZGU6YCB3aXRoCisgICAgICAgIGBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmlt
dW1MYXlvdXRTaXplOm1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOm1heGltdW1Vbm9ic2N1
cmVkU2l6ZU92ZXJyaWRlOmAuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0xMC0wNSAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBhbiBlbnRpdGxl
bWVudCBjaGVjayB0byBvbmx5IGFsbG93IEFkQXR0cmlidXRpb25EYWVtb24gdG8gYmUgY29ubmVj
dGVkIHRvIGJ5IHRoZSBuZXR3b3JrIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NjlkZGNkMGIwZmQyOWQwMTA4MGNmNTY4ZTA2NGIyM2I0YWYyZWJkNC4uNmU4NDMwMDQxOGM2YmMz
YzNiZGU3NWY5YzI5YmNmZDI0OGViNWVjNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg4
OCw2ICs4ODgsOCBAQAogCQk5M0ZDREIzNDI2MzYzMTU2MDA0NkREN0QgLyogU29ydGVkQXJyYXlN
YXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNG
Q0RCMzMyNjM2MzE1NjAwNDZERDdEIC8qIFNvcnRlZEFycmF5TWFwLmNwcCAqLzsgfTsKIAkJOTUw
OTVGMjAyNjJGRkZBNTAwMDBEOTIwIC8qIFNhbXBsZWRQYWdlVG9wQ29sb3IubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTA5NUYxRjI2MkZGRkE1MDAw
MEQ5MjAgLyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSAqLzsgfTsKIAkJOTUwRTRDQzEyNTJFNzUy
NDAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBFNENDMDI1MkU3NTIzMDA3MTY1OUYgLyogaU9TU3R5
bHVzU3VwcG9ydC5tbSAqLzsgfTsKKwkJOTUyRjcxNjUyNzBCRDk3RTAwRDAwRENDIC8qIENTU1Zp
ZXdwb3J0VW5pdHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NTJGNzE2NDI3MEJEOTdFMDBEMDBEQ0MgLyogQ1NTVmlld3BvcnRVbml0cy5tbSAqLzsg
fTsKKwkJOTUyRjcxNjcyNzBCRDlDQjAwRDAwRENDIC8qIENTU1ZpZXdwb3J0VW5pdHMuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTJG
NzE2NjI3MEJEOTk3MDBEMDBEQ0MgLyogQ1NTVmlld3BvcnRVbml0cy5odG1sICovOyB9OwogCQk5
NTNBQkIzNTI1QzBENjgyMDA0QzhCNzMgLyogV0tXZWJWaWV3VW5kZXJQYWdlQmFja2dyb3VuZENv
bG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUz
QUJCMzQyNUMwRDY4MTAwNEM4QjczIC8qIFdLV2ViVmlld1VuZGVyUGFnZUJhY2tncm91bmRDb2xv
ci5tbSAqLzsgfTsKIAkJOTU4QjcwRTEyNkM0NkVEQzAwQjIwMjJCIC8qIE5TQXR0cmlidXRlZFN0
cmluZ1dlYktpdEFkZGl0aW9ucy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk1OEI3MEUwMjZDNDZFREMwMEIyMDIyQiAvKiBOU0F0dHJpYnV0ZWRTdHJp
bmdXZWJLaXRBZGRpdGlvbnMubW0gKi87IH07CiAJCTk1QTUyNDk1MjU4MUExMEQwMDQ2MUZFOSAv
KiBXS1dlYlZpZXdUaGVtZUNvbG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTVBNTI0OTQyNTgxQTEwRDAwNDYxRkU5IC8qIFdLV2ViVmlld1RoZW1l
Q29sb3IubW0gKi87IH07CkBAIC0xNDYwLDYgKzE0NjIsNyBAQAogCQkJCTlCNjI2MzBDMUY4QzI1
QzgwMDdFRTI5QiAvKiBjb3B5LXVybC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTdB
RUFENDgxMUUyMDEyMjcwMDQxNkVGRSAvKiBDcm9zc1BhcnRpdGlvbkZpbGVTY2hlbWVBY2Nlc3Mu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk0OTk1QTZGMDI1RTg3NzIwMDBFNUYwQTkg
LyogY3NwLWRvY3VtZW50LXVyaS1yZXBvcnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJ
CQk5NTJGNzE2NzI3MEJEOUNCMDBEMDBEQ0MgLyogQ1NTVmlld3BvcnRVbml0cy5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAogCQkJCTJEREQ0REE0MjcwQjhCMzUwMDY1OUE2MSAvKiBjdWJlLnVz
ZHogaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjRBQjU3OEExRjY1MTY1NDAwREIwREExIC8q
IGN1c3RvbS1kcmFnZ2FibGUtZGl2Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMjkw
RjQyNzUxNzJBMjIxQzAwOTM5RkYwIC8qIGN1c3RvbS1wcm90b2NvbC1zeW5jLXhoci5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLApAQCAtMjYyOCw2ICsyNjMxLDggQEAKIAkJOTNGQ0RCMzMyNjM2
MzE1NjAwNDZERDdEIC8qIFNvcnRlZEFycmF5TWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNvcnRlZEFycmF5TWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTUwOTVGMUYyNjJGRkZBNTAwMDBEOTIwIC8qIFNhbXBsZWRQYWdlVG9wQ29sb3Iu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTYW1wbGVkUGFnZVRv
cENvbG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTBFNENDMDI1MkU3NTIz
MDA3MTY1OUYgLyogaU9TU3R5bHVzU3VwcG9ydC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IGlPU1N0eWx1c1N1cHBvcnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTk1MkY3MTY0MjcwQkQ5N0UwMEQwMERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ1NTVmlld3BvcnRVbml0
cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUyRjcxNjYyNzBCRDk5NzAwRDAw
RENDIC8qIENTU1ZpZXdwb3J0VW5pdHMuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IENTU1ZpZXdwb3J0VW5pdHMu
aHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUzQUJCMzQyNUMwRDY4MTAwNEM4
QjczIC8qIFdLV2ViVmlld1VuZGVyUGFnZUJhY2tncm91bmRDb2xvci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1VuZGVyUGFnZUJhY2tncm91bmRD
b2xvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTU4QjcwRTAyNkM0NkVEQzAw
QjIwMjJCIC8qIE5TQXR0cmlidXRlZFN0cmluZ1dlYktpdEFkZGl0aW9ucy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5TQXR0cmlidXRlZFN0cmluZ1dlYktpdEFk
ZGl0aW9ucy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVBNTI0OTQyNTgxQTEw
RDAwNDYxRkU5IC8qIFdLV2ViVmlld1RoZW1lQ29sb3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdUaGVtZUNvbG9yLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMzQ4MCw2ICszNDg1LDcgQEAKIAkJCQkxQzc5MjAxQjIzNEJERDlC
MDAxRUFGMjMgLyogQ29weVJURi5tbSAqLywKIAkJCQk5QjdBMzdDMjFGOEFFQkE1MDA0QUEyMjgg
LyogQ29weVVSTC5tbSAqLywKIAkJCQk1MTBBOTIxRDI0REIzOEVEMDBCRkQ4OUMgLyogQ3JlYXRl
V2ViQXJjaGl2ZS5tbSAqLywKKwkJCQk5NTJGNzE2NDI3MEJEOTdFMDBEMDBEQ0MgLyogQ1NTVmll
d3BvcnRVbml0cy5tbSAqLywKIAkJCQk0NkE5MTE1ODIxMDhFNjZCMDA3OEQ0MEQgLyogQ3VzdG9t
VXNlckFnZW50Lm1tICovLAogCQkJCTJEQzRDRjc2MUQyRDlERDgwMEVDQ0M5NCAvKiBEYXRhRGV0
ZWN0aW9uLm1tICovLAogCQkJCTUxOEVFNTFDMjBBNzhEMzMwMEUwMjRGMyAvKiBEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uLm1tICovLApAQCAtNDAzOCw2ICs0MDQ0LDcgQEAKIAkJCQk5
QjEwNTY0MjFGOTA0N0NDMDBENTU4M0YgLyogY29weS1odG1sLmh0bWwgKi8sCiAJCQkJOUI2MjYz
MEIxRjhDMjUxMDAwN0VFMjlCIC8qIGNvcHktdXJsLmh0bWwgKi8sCiAJCQkJNDk5NUE2RUYyNUU4
NzZBMzAwRTVGMEE5IC8qIGNzcC1kb2N1bWVudC11cmktcmVwb3J0Lmh0bWwgKi8sCisJCQkJOTUy
RjcxNjYyNzBCRDk5NzAwRDAwRENDIC8qIENTU1ZpZXdwb3J0VW5pdHMuaHRtbCAqLywKIAkJCQlG
NEFCNTc4OTFGNjUxNjRCMDBEQjBEQTEgLyogY3VzdG9tLWRyYWdnYWJsZS1kaXYuaHRtbCAqLywK
IAkJCQlGNDdERkIyNDIxQTg3MDRBMDAwMjFGQjYgLyogZGF0YS1kZXRlY3RvcnMuaHRtbCAqLywK
IAkJCQlGNDg2QjFDRjFGNjc5NEZGMDBGMzRCREQgLyogRGF0YVRyYW5zZmVyLXNldERyYWdJbWFn
ZS5odG1sICovLApAQCAtNTQ4Miw2ICs1NDg5LDcgQEAKIAkJCQk1MTBBOTIxRTI0REIzOEYzMDBC
RkQ4OUMgLyogQ3JlYXRlV2ViQXJjaGl2ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdBRUFENDdG
MUUyMDExNkMwMDQxNkVGRSAvKiBDcm9zc1BhcnRpdGlvbkZpbGVTY2hlbWVBY2Nlc3MubW0gaW4g
U291cmNlcyAqLywKIAkJCQk3Q0NFN0VEQjFBNDExQTkyMDA0NDdDNEMgLyogQ1NTUGFyc2VyLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTk1MkY3MTY1MjcwQkQ5N0UwMEQwMERDQyAvKiBDU1NWaWV3
cG9ydFVuaXRzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTc1ODU5N0YyM0EyNTI3QTAwQzc0NTcy
IC8qIEN0YXBQaW5UZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3MkI0MDM0MjE3NjlBODgw
MDBBRDQzRSAvKiBDdGFwUmVxdWVzdFRlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTcyQjQw
NDQyMTc4MUI0MzAwMEFENDNFIC8qIEN0YXBSZXNwb25zZVRlc3QuY3BwIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FuaW1h
dGVkUmVzaXplLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Bbmlt
YXRlZFJlc2l6ZS5tbQppbmRleCA4MjgwZjUzOTM1NGU3MTg1ZTllYmU0MDQ0MzYxNzg2MzYzZjhi
MzMwLi4zOWZlNTQwNDk2YzYyNzNmMzAxMjQ1YzViNjQ0NTdhMTIxNTFhMzgxIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FuaW1hdGVkUmVzaXplLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQW5pbWF0ZWRSZXNp
emUubW0KQEAgLTE5Miw3ICsxOTIsNyBAQCBURVNUKFdlYktpdCwgT3ZlcnJpZGVMYXlvdXRTaXpl
Q2hhbmdlc0R1cmluZ0FuaW1hdGVkUmVzaXplU3VjY2VlZCkKICAgICBhdXRvIHdlYlZpZXcgPSBj
cmVhdGVBbmltYXRlZFJlc2l6ZVdlYlZpZXcoKTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRl
OndlYlZpZXcuZ2V0KCldOwogCi0gICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVy
c1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDIwMCwgNTApIG1heGltdW1Vbm9ic2N1
cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMjAwLCA1MCldOworICAgIFt3ZWJWaWV3IF9vdmVy
cmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFrZSgyMDAs
IDUwKSBtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDIwMCwgNTApIG1h
eGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMjAwLCA1MCldOwogCiAgICAg
W3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8aGVhZD48bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29u
dGVudD0naW5pdGlhbC1zY2FsZT0xJz48L2hlYWQ+IiBiYXNlVVJMOm5pbF07CiAgICAgYXV0byBu
YXZpZ2F0aW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOwpAQCAtMjA3LDcgKzIwNyw3IEBAIFRFU1QoV2ViS2l0LCBPdmVycmlkZUxheW91
dFNpemVDaGFuZ2VzRHVyaW5nQW5pbWF0ZWRSZXNpemVTdWNjZWVkKQogICAgICAgICBbd2ViVmll
dyBzZXRGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIFt3ZWJWaWV3IGZyYW1lXS5zaXplLndpZHRoICsg
MTAwLCA0MDApXTsKICAgICB9XTsKIAotICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFt
ZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFrZSgxMDAsIDIwMCkgbWF4aW11bVVu
b2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgxMDAsIDIwMCldOworICAgIFt3ZWJWaWV3
IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFr
ZSgxMDAsIDIwMCkgbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgxMDAs
IDIwMCkgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgxMDAsIDIwMCld
OwogICAgIFt3ZWJWaWV3IF9lbmRBbmltYXRlZFJlc2l6ZV07CiAKICAgICBfX2Jsb2NrIGJvb2wg
ZGlkUmVhZExheW91dFNpemUgPSBmYWxzZTsKQEAgLTIzMiw3ICsyMzIsNyBAQCBURVNUKFdlYktp
dCwgT3ZlcnJpZGVMYXlvdXRTaXplSXNSZXN0b3JlZEFmdGVyUHJvY2Vzc1JlbGF1bmNoKQogICAg
IGF1dG8gd2ViVmlldyA9IGNyZWF0ZUFuaW1hdGVkUmVzaXplV2ViVmlldygpOwogICAgIFt3ZWJW
aWV3IHNldFVJRGVsZWdhdGU6d2ViVmlldy5nZXQoKV07CiAKLSAgICBbd2ViVmlldyBfb3ZlcnJp
ZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMjAwLCA1
MCkgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgyMDAsIDUwKV07Cisg
ICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6
ZTpDR1NpemVNYWtlKDIwMCwgNTApIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6
ZU1ha2UoMjAwLCA1MCkgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgy
MDAsIDUwKV07CiAKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxoZWFkPjxtZXRhIG5h
bWU9J3ZpZXdwb3J0JyBjb250ZW50PSdpbml0aWFsLXNjYWxlPTEnPjwvaGVhZD4iIGJhc2VVUkw6
bmlsXTsKICAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CkBA
IC0yNjMsNyArMjYzLDcgQEAgVEVTVChXZWJLaXQsIE92ZXJyaWRlTGF5b3V0U2l6ZUlzUmVzdG9y
ZWRBZnRlckNoYW5naW5nRHVyaW5nUHJvY2Vzc1JlbGF1bmNoKQogICAgIGF1dG8gd2ViVmlldyA9
IGNyZWF0ZUFuaW1hdGVkUmVzaXplV2ViVmlldygpOwogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdh
dGU6d2ViVmlldy5nZXQoKV07CiAKLSAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0
ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMTAwLCAxMDApIG1heGltdW1Vbm9i
c2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMTAwLCAxMDApXTsKKyAgICBbd2ViVmlldyBf
b3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2Uo
MTAwLCAxMDApIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMTAwLCAx
MDApIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMTAwLCAxMDApXTsK
IAogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGhlYWQ+PG1ldGEgbmFtZT0ndmlld3Bv
cnQnIGNvbnRlbnQ9J2luaXRpYWwtc2NhbGU9MSc+PC9oZWFkPiIgYmFzZVVSTDpuaWxdOwogICAg
IFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKQEAgLTI3Myw3ICsy
NzMsNyBAQCBURVNUKFdlYktpdCwgT3ZlcnJpZGVMYXlvdXRTaXplSXNSZXN0b3JlZEFmdGVyQ2hh
bmdpbmdEdXJpbmdQcm9jZXNzUmVsYXVuY2gpCiAgICAgW3dpbmRvdyBzZXRIaWRkZW46Tk9dOwog
CiAgICAgW3dlYlZpZXcgX2tpbGxXZWJDb250ZW50UHJvY2Vzc0FuZFJlc2V0U3RhdGVdOwotICAg
IFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6
Q0dTaXplTWFrZSgyMDAsIDUwKSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVN
YWtlKDIwMCwgNTApXTsKKyAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0
aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMjAwLCA1MCkgbWluaW11bVVub2JzY3VyZWRT
aXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgyMDAsIDUwKSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVy
cmlkZTpDR1NpemVNYWtlKDIwMCwgNTApXTsKIAogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5n
OkAiPGhlYWQ+PG1ldGEgbmFtZT0ndmlld3BvcnQnIGNvbnRlbnQ9J2luaXRpYWwtc2NhbGU9MSc+
PC9oZWFkPiIgYmFzZVVSTDpuaWxdOwogICAgIFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5p
c2hOYXZpZ2F0aW9uXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvQ1NTVmlld3BvcnRVbml0cy5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9DU1NWaWV3cG9ydFVuaXRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDAyYWEwNTg4
ZGNkNmVlMjc2NmNiYzA3OTI2NTk5M2M4NDhlZWNlNwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ1NTVmlld3BvcnRVbml0cy5odG1sCkBA
IC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0i
dmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4K
KworICAgIDxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMDsKK30KK2RpdiB7CisgICAgZGlz
cGxheTogaW5saW5lLWJsb2NrOworICAgIHdpZHRoOiAxcHg7Cit9CisgICAgPC9zdHlsZT4KKzwv
aGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InZ3IiBzdHlsZT0iaGVpZ2h0OiAxMDB2dzsiPjwv
ZGl2PgorICAgIDxkaXYgaWQ9InZoIiBzdHlsZT0iaGVpZ2h0OiAxMDB2aDsiPjwvZGl2PgorICAg
IDxkaXYgaWQ9InZtaW4iIHN0eWxlPSJoZWlnaHQ6IDEwMHZtaW47Ij48L2Rpdj4KKyAgICA8ZGl2
IGlkPSJ2bWF4IiBzdHlsZT0iaGVpZ2h0OiAxMDB2bWF4OyI+PC9kaXY+CisKKyAgICA8ZGl2IGlk
PSJzdnciIHN0eWxlPSJoZWlnaHQ6IDEwMHN2dzsiPjwvZGl2PgorICAgIDxkaXYgaWQ9InN2aCIg
c3R5bGU9ImhlaWdodDogMTAwc3ZoOyI+PC9kaXY+CisgICAgPGRpdiBpZD0ic3ZtaW4iIHN0eWxl
PSJoZWlnaHQ6IDEwMHN2bWluOyI+PC9kaXY+CisgICAgPGRpdiBpZD0ic3ZtYXgiIHN0eWxlPSJo
ZWlnaHQ6IDEwMHN2bWF4OyI+PC9kaXY+CisKKyAgICA8ZGl2IGlkPSJsdnciIHN0eWxlPSJoZWln
aHQ6IDEwMGx2dzsiPjwvZGl2PgorICAgIDxkaXYgaWQ9Imx2aCIgc3R5bGU9ImhlaWdodDogMTAw
bHZoOyI+PC9kaXY+CisgICAgPGRpdiBpZD0ibHZtaW4iIHN0eWxlPSJoZWlnaHQ6IDEwMGx2bWlu
OyI+PC9kaXY+CisgICAgPGRpdiBpZD0ibHZtYXgiIHN0eWxlPSJoZWlnaHQ6IDEwMGx2bWF4OyI+
PC9kaXY+CisKKyAgICA8ZGl2IGlkPSJkdnciIHN0eWxlPSJoZWlnaHQ6IDEwMGR2dzsiPjwvZGl2
PgorICAgIDxkaXYgaWQ9ImR2aCIgc3R5bGU9ImhlaWdodDogMTAwZHZoOyI+PC9kaXY+CisgICAg
PGRpdiBpZD0iZHZtaW4iIHN0eWxlPSJoZWlnaHQ6IDEwMGR2bWluOyI+PC9kaXY+CisgICAgPGRp
diBpZD0iZHZtYXgiIHN0eWxlPSJoZWlnaHQ6IDEwMGR2bWF4OyI+PC9kaXY+Cis8L2JvZHk+CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NTU1ZpZXdw
b3J0VW5pdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NTU1Zp
ZXdwb3J0VW5pdHMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGM4YjMwMjRmYmJmMmQ1MWI0YzhiYTc2MjZhMDBh
OWU1ZDBiYmE0ZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvQ1NTVmlld3BvcnRVbml0cy5tbQpAQCAtMCwwICsxLDE1MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMzEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMu
aCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQ
cml2YXRlLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK3N0YXRpYyBpbnQgZ2V0RWxl
bWVudEhlaWdodChXS1dlYlZpZXcgKndlYlZpZXcsIE5TU3RyaW5nICplbGVtZW50SUQpCit7Cisg
ICAgcmV0dXJuIFsoTlNOdW1iZXIgKilbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0OltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
JyVAJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0IiwgZWxlbWVudElEXV0gaW50VmFs
dWVdOworfQorCitURVNUKENTU1ZpZXdwb3J0VW5pdHMsIEFsbFNhbWUpCit7CisgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dS
ZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9h
ZFRlc3RQYWdlTmFtZWQ6QCJDU1NWaWV3cG9ydFVuaXRzIl07CisKKyAgICBFWFBFQ1RfRVEoMzIw
LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidnciKSk7CisgICAgRVhQRUNUX0VR
KDUwMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZoIikpOworICAgIEVYUEVD
VF9FUSgzMjAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2bWluIikpOworICAg
IEVYUEVDVF9FUSg1MDAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2bWF4Iikp
OworCisgICAgRVhQRUNUX0VRKDMyMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBA
InN2dyIpKTsKKyAgICBFWFBFQ1RfRVEoNTAwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0
KCksIEAic3ZoIikpOworICAgIEVYUEVDVF9FUSgzMjAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmll
dy5nZXQoKSwgQCJzdm1pbiIpKTsKKyAgICBFWFBFQ1RfRVEoNTAwLCBnZXRFbGVtZW50SGVpZ2h0
KHdlYlZpZXcuZ2V0KCksIEAic3ZtYXgiKSk7CisKKyAgICBFWFBFQ1RfRVEoMzIwLCBnZXRFbGVt
ZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZ3IikpOworICAgIEVYUEVDVF9FUSg1MDAsIGdl
dEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdmgiKSk7CisgICAgRVhQRUNUX0VRKDMy
MCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2bWluIikpOworICAgIEVYUEVD
VF9FUSg1MDAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdm1heCIpKTsKKwor
ICAgIEVYUEVDVF9FUSgzMjAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJkdnci
KSk7CisgICAgRVhQRUNUX0VRKDUwMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBA
ImR2aCIpKTsKKyAgICBFWFBFQ1RfRVEoMzIwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0
KCksIEAiZHZtaW4iKSk7CisgICAgRVhQRUNUX0VRKDUwMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJW
aWV3LmdldCgpLCBAImR2bWF4IikpOworfQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKwor
VEVTVChDU1NWaWV3cG9ydFVuaXRzLCBFbXB0eVVub2JzY3VyZWRTaXplT3ZlcnJpZGVzKQorewor
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgX292ZXJy
aWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDE0MSwg
MTQ5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluaW11bVVub2JzY3VyZWRTaXpl
T3ZlcnJpZGU6Q0dTaXplWmVybworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11
bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplWmVyb107CisgICAgW3dlYlZpZXcgc3luY2hy
b25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiQ1NTVmlld3BvcnRVbml0cyJdOworCisgICAgRVhQ
RUNUX0VRKDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZ3IikpOworICAg
IEVYUEVDVF9FUSgxNDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2aCIpKTsK
KyAgICBFWFBFQ1RfRVEoMTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidm1p
biIpKTsKKyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCks
IEAidm1heCIpKTsKKworICAgIEVYUEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmll
dy5nZXQoKSwgQCJzdnciKSk7CisgICAgRVhQRUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3
ZWJWaWV3LmdldCgpLCBAInN2aCIpKTsKKyAgICBFWFBFQ1RfRVEoMTQxLCBnZXRFbGVtZW50SGVp
Z2h0KHdlYlZpZXcuZ2V0KCksIEAic3ZtaW4iKSk7CisgICAgRVhQRUNUX0VRKDE0OSwgZ2V0RWxl
bWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInN2bWF4IikpOworCisgICAgRVhQRUNUX0VRKDE0
MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2dyIpKTsKKyAgICBFWFBFQ1Rf
RVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZoIikpOworICAgIEVY
UEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdm1pbiIpKTsK
KyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZt
YXgiKSk7CisKKyAgICBFWFBFQ1RfRVEoMTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0
KCksIEAiZHZ3IikpOworICAgIEVYUEVDVF9FUSgxNDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmll
dy5nZXQoKSwgQCJkdmgiKSk7CisgICAgRVhQRUNUX0VRKDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3
ZWJWaWV3LmdldCgpLCBAImR2bWluIikpOworICAgIEVYUEVDVF9FUSgxNDksIGdldEVsZW1lbnRI
ZWlnaHQod2ViVmlldy5nZXQoKSwgQCJkdm1heCIpKTsKK30KKworVEVTVChDU1NWaWV3cG9ydFVu
aXRzLCBTYW1lVW5vYnNjdXJlZFNpemVPdmVycmlkZXMpCit7CisgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgw
LCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJz
V2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMTQxLCAxNDkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtl
KDE0MSwgMTQ5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11bVVub2JzY3Vy
ZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgxNDEsIDE0OSldOworICAgIFt3ZWJWaWV3IHN5bmNo
cm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAIkNTU1ZpZXdwb3J0VW5pdHMiXTsKKworICAgIEVY
UEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2dyIpKTsKKyAg
ICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidmgiKSk7
CisgICAgRVhQRUNUX0VRKDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZt
aW4iKSk7CisgICAgRVhQRUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgp
LCBAInZtYXgiKSk7CisKKyAgICBFWFBFQ1RfRVEoMTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZp
ZXcuZ2V0KCksIEAic3Z3IikpOworICAgIEVYUEVDVF9FUSgxNDksIGdldEVsZW1lbnRIZWlnaHQo
d2ViVmlldy5nZXQoKSwgQCJzdmgiKSk7CisgICAgRVhQRUNUX0VRKDE0MSwgZ2V0RWxlbWVudEhl
aWdodCh3ZWJWaWV3LmdldCgpLCBAInN2bWluIikpOworICAgIEVYUEVDVF9FUSgxNDksIGdldEVs
ZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJzdm1heCIpKTsKKworICAgIEVYUEVDVF9FUSgx
NDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdnciKSk7CisgICAgRVhQRUNU
X0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2aCIpKTsKKyAgICBF
WFBFQ1RfRVEoMTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZtaW4iKSk7
CisgICAgRVhQRUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2
bWF4IikpOworCisgICAgRVhQRUNUX0VRKDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3Lmdl
dCgpLCBAImR2dyIpKTsKKyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZp
ZXcuZ2V0KCksIEAiZHZoIikpOworICAgIEVYUEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQo
d2ViVmlldy5nZXQoKSwgQCJkdm1pbiIpKTsKKyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50
SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZtYXgiKSk7Cit9CisKK1RFU1QoQ1NTVmlld3BvcnRV
bml0cywgRGlmZmVyZW50VW5vYnNjdXJlZFNpemVPdmVycmlkZXMpCit7CisgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0
TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJh
bWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMTMxLCAxMzkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1Np
emVNYWtlKDEyMSwgMTI5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11bVVu
b2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgxNDEsIDE0OSldOworICAgIFt3ZWJWaWV3
IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAIkNTU1ZpZXdwb3J0VW5pdHMiXTsKKwor
ICAgIEVYUEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2dyIp
KTsKKyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAi
dmgiKSk7CisgICAgRVhQRUNUX0VRKDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgp
LCBAInZtaW4iKSk7CisgICAgRVhQRUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3
LmdldCgpLCBAInZtYXgiKSk7CisKKyAgICBFWFBFQ1RfRVEoMTIxLCBnZXRFbGVtZW50SGVpZ2h0
KHdlYlZpZXcuZ2V0KCksIEAic3Z3IikpOworICAgIEVYUEVDVF9FUSgxMjksIGdldEVsZW1lbnRI
ZWlnaHQod2ViVmlldy5nZXQoKSwgQCJzdmgiKSk7CisgICAgRVhQRUNUX0VRKDEyMSwgZ2V0RWxl
bWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInN2bWluIikpOworICAgIEVYUEVDVF9FUSgxMjks
IGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJzdm1heCIpKTsKKworICAgIEVYUEVD
VF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdnciKSk7CisgICAg
RVhQRUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2aCIpKTsK
KyAgICBFWFBFQ1RfRVEoMTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZt
aW4iKSk7CisgICAgRVhQRUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgp
LCBAImx2bWF4IikpOworCisgICAgRVhQRUNUX0VRKDEzMSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJW
aWV3LmdldCgpLCBAImR2dyIpKTsKKyAgICBFWFBFQ1RfRVEoMTM5LCBnZXRFbGVtZW50SGVpZ2h0
KHdlYlZpZXcuZ2V0KCksIEAiZHZoIikpOworICAgIEVYUEVDVF9FUSgxMzEsIGdldEVsZW1lbnRI
ZWlnaHQod2ViVmlldy5nZXQoKSwgQCJkdm1pbiIpKTsKKyAgICBFWFBFQ1RfRVEoMTM5LCBnZXRF
bGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZtYXgiKSk7Cit9CisKKyNlbmRpZiAvLyBQ
TEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9GaXhlZExheW91dFNpemUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0ZpeGVkTGF5b3V0U2l6ZS5tbQppbmRleCBmOGJiZmI1NjUwY2VjOTc2
ZWJhNWFkOGViODJjZGZlZmRlNzYyYzFmLi4wYjQzYTBmMGEzYWMyZmVlNjViMDU2NDYxMDExZmYw
ZGY0MGU2NzZhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0ZpeGVkTGF5b3V0U2l6ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0ZpeGVkTGF5b3V0U2l6ZS5tbQpAQCAtMzcsNyArMzcsNyBAQAogVEVTVChXZWJL
aXQsIE92ZXJyaWRlTWluaW11bUxheW91dFNpemVXaXRoTmVnYXRpdmVIZWlnaHQpCiB7CiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKLSAgICBbd2ViVmlldyBfb3ZlcnJpZGVM
YXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMzIwLCAtMTAw
MCkgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgwLCAwKV07CisgICAg
W3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpD
R1NpemVNYWtlKDMyMCwgLTEwMDApIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6
ZU1ha2UoMCwgMCkgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgwLCAw
KV07CiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPG1ldGEgbmFt
ZT0ndmlld3BvcnQnIGNvbnRlbnQ9J3dpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0x
Jz48Ym9keT5IZWxsbzwvYm9keT4iXTsKICAgICBFWFBFQ1RfR0UoW3dlYlZpZXcgX2ZpeGVkTGF5
b3V0U2l6ZV0uaGVpZ2h0LCAwKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvaW9zL1Njcm9sbFZpZXdTY3JvbGxhYmlsaXR5VGVzdHMubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL2lvcy9TY3JvbGxWaWV3U2Nyb2xsYWJpbGl0eVRlc3RzLm1tCmluZGV4IGM0
NTVmNTFiMzUyOWExNTdhYzU3YjlmNDNlODdlOGYwMWEwMTI3ZWQuLjBmOTEyNDQ4MzExZDgxODk2
ZjAyOGFiYjgyNGYzMTcxODJmYzMxYjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvaW9zL1Njcm9sbFZpZXdTY3JvbGxhYmlsaXR5VGVzdHMubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9pb3MvU2Nyb2xsVmlld1Njcm9sbGFiaWxpdHlUZXN0cy5tbQpAQCAt
MTE1LDcgKzExNSw3IEBAIFRFU1QoU2Nyb2xsVmlld1Njcm9sbGFiaWxpdHlUZXN0cywgU2Nyb2xs
YWJsZVdpdGhPdmVyZmxvd0hpZGRlbkFuZFZpc2libGVVSSkKICAgICBvYnNjdXJlZEluc2V0cy5y
aWdodCA9IDA7CiAKICAgICBbd2ViVmlldyBfc2V0T2JzY3VyZWRJbnNldHM6b2JzY3VyZWRJbnNl
dHNdOwotICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxh
eW91dFNpemU6Q0dTaXplTWFrZSgzMjAsIDQwNikgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJp
ZGU6Q0dTaXplTWFrZSgzMjAsIDQ5MCldOworICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBh
cmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFrZSgzMjAsIDQwNikgbWluaW11
bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgzMjAsIDQwNikgbWF4aW11bVVub2Jz
Y3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgzMjAsIDQ5MCldOwogCiAgICAgW3dlYlZpZXcg
c3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOm5vblNjcm9sbGFibGVEb2N1bWVudE1hcmt1cF07
CiAgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOwpAQCAtMTM0LDcg
KzEzNCw3IEBAIFRFU1QoU2Nyb2xsVmlld1Njcm9sbGFiaWxpdHlUZXN0cywgU2Nyb2xsYWJsZVdp
dGhPdmVyZmxvd0hpZGRlbkFuZFNocnVua1VJKQogICAgIG9ic2N1cmVkSW5zZXRzLnJpZ2h0ID0g
MDsKIAogICAgIFt3ZWJWaWV3IF9zZXRPYnNjdXJlZEluc2V0czpvYnNjdXJlZEluc2V0c107Ci0g
ICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6
ZTpDR1NpemVNYWtlKHZpZXdIZWlnaHQsIDQxNCkgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJp
ZGU6Q0dTaXplTWFrZSh2aWV3SGVpZ2h0LCA0MTQpXTsKKyAgICBbd2ViVmlldyBfb3ZlcnJpZGVM
YXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2Uodmlld0hlaWdo
dCwgNDE0KSBtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKHZpZXdIZWln
aHQsIDQxNCkgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSh2aWV3SGVp
Z2h0LCA0MTQpXTsKIAogICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpu
b25TY3JvbGxhYmxlRG9jdW1lbnRNYXJrdXBdOwogICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJl
c2VudGF0aW9uVXBkYXRlXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440557</attachid>
            <date>2021-10-07 17:17:39 -0700</date>
            <delta_ts>2021-10-12 20:43:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219287-20211007171739.patch</filename>
            <type>text/plain</type>
            <size>106025</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3MjA2Y2JkMzBkOWFlZTFkOTI5YWVlOGI3YWE5YmJhZmU1YzljMGFhLi4w
NjJmNDU4ZThlNWMyNDc2NmNjMjMwZWY1NGNjYmQwYTRjMjE3YzJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTA2IEBACisyMDIxLTEwLTA1ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KKworICAgICAgICBbY3NzLXZhbHVlcy00XSBTdXBwb3J0IHNtYWxsIChzdiopLCBsYXJnZSAo
bHYqKSBhbmQgZHluYW1pYyAoZHYqKSB2aWV3cG9ydCB1bml0cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5Mjg3CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTg1NzM3MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTcGVjOiA8aHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy12YWx1ZXMtNC8jdmll
d3BvcnQtdmFyaWFudHM+CisKKyAgICAgICAgVGVzdHM6IENTU1ZpZXdwb3J0VW5pdHMuQWxsU2Ft
ZQorICAgICAgICAgICAgICAgQ1NTVmlld3BvcnRVbml0cy5FbXB0eVVub2JzY3VyZWRTaXplT3Zl
cnJpZGVzCisgICAgICAgICAgICAgICBDU1NWaWV3cG9ydFVuaXRzLlNhbWVVbm9ic2N1cmVkU2l6
ZU92ZXJyaWRlcworICAgICAgICAgICAgICAgQ1NTVmlld3BvcnRVbml0cy5EaWZmZXJlbnRVbm9i
c2N1cmVkU2l6ZU92ZXJyaWRlcworCisgICAgICAgICogY3NzL0NTU1VuaXRzLmg6CisgICAgICAg
ICogY3NzL0NTU1VuaXRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAg
ICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6OmlzVmlld3BvcnRQZXJjZW50YWdlTGVuZ3RoKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjppc1ZpZXdwb3J0UGVyY2VudGFnZVdpZHRoKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjppc1ZpZXdwb3J0UGVyY2Vu
dGFnZUhlaWdodCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6aXNWaWV3cG9ydFBlcmNlbnRhZ2VNYXgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJpbWl0aXZlVmFsdWU6OmlzVmlld3BvcnRQZXJjZW50YWdlTWluKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNW
YWxpZENTU1VuaXRUeXBlRm9yRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpp
c1N0cmluZ1R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmNsZWFu
dXApOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVVbnpvb21l
ZE5vbkNhbGNMZW5ndGhEb3VibGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFs
dWU6OmNvbXB1dGVOb25DYWxjTGVuZ3RoRG91YmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
aW1pdGl2ZVZhbHVlOjp1bml0VHlwZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6ZXF1YWxzIGNvbnN0KToKKyAgICAgICAgKiBj
c3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oOgorICAgICAgICAqIGNzcy9DU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvTGVuZ3RoQ29udmVy
c2lvbkRhdGE6OmRlZmF1bHRWaWV3cG9ydEZhY3RvciBjb25zdCk6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6c21hbGxWaWV3cG9ydEZhY3RvciBj
b25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0
YTo6bGFyZ2VWaWV3cG9ydEZhY3RvciBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6ZHluYW1pY1ZpZXdwb3J0RmFjdG9yIGNvbnN0KTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjp2aWV3
cG9ydFdpZHRoRmFjdG9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1Rv
TGVuZ3RoQ29udmVyc2lvbkRhdGE6OnZpZXdwb3J0SGVpZ2h0RmFjdG9yIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OnZpZXdwb3J0
TWluRmFjdG9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGE6OnZpZXdwb3J0TWF4RmFjdG9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNz
c1ByaW1pdGl2ZVZhbHVlVW5pdEZyb21UcmllKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1By
b3BlcnR5UGFyc2VySGVscGVycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBh
cnNlckhlbHBlcnM6OmNvbnN1bWVMZW5ndGhSYXdXaXRoS25vd25Ub2tlblR5cGVEaW1lbnNpb24p
OgorICAgICAgICAqIGNzcy9jYWxjL0NTU0NhbGNDYXRlZ29yeU1hcHBpbmcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y2FsY1VuaXRDYXRlZ29yeSk6CisgICAgICAgIChXZWJDb3JlOjpjYWxjdWxh
dGlvbkNhdGVnb3J5Rm9yQ29tYmluYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6aGFzRG91Ymxl
VmFsdWUpOgorICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcGFyc2luZyB0aGUgZm9sbG93aW5nIGFu
ZCBjb252ZXJ0aW5nIHRoZW0gdG8gdGhlaXIgdW5kZXJseWluZyB2YWx1ZToKKyAgICAgICAgLSBg
c3Z3YCAic21hbGwgdmlld3BvcnQgd2lkdGgiIGlzIHRoZSB3aWR0aCBvZiB0aGUgdmlld3BvcnQg
aWYgYWxsIFVBIGludGVyZmFjZXMgYXJlIG1heGltaXplZAorICAgICAgICAtIGBzdmhgICJzbWFs
bCB2aWV3cG9ydCBoZWlnaHQiIGlzIHRoZSBoZWlnaHQgb2YgdGhlIHZpZXdwb3J0IGlmIGFsbCBV
QSBpbnRlcmZhY2VzIGFyZSBtYXhpbWl6ZWQKKyAgICAgICAgLSBgc3ZtaW5gICJzbWFsbCB2aWV3
cG9ydCBzbWFsbCBkaW1lbnNpb24iIGlzIGBtaW4oc3Z3LCBzdmgpYAorICAgICAgICAtIGBzdm1h
eGAgInNtYWxsIHZpZXdwb3J0IGxhcmdlIGRpbWVuc2lvbiIgaXMgYG1heChzdncsIHN2aClgCisg
ICAgICAgIC0gYGx2d2AgImxhcmdlIHZpZXdwb3J0IHdpZHRoIiBpcyB0aGUgd2lkdGggb2YgdGhl
IHZpZXdwb3J0IGlmIGFsbCBVQSBpbnRlcmZhY2VzIGFyZSBtaW5pbWl6ZWQKKyAgICAgICAgLSBg
bHZoYCAibGFyZ2Ugdmlld3BvcnQgaGVpZ2h0IiBpcyB0aGUgaGVpZ2h0IG9mIHRoZSB2aWV3cG9y
dCBpZiBhbGwgVUEgaW50ZXJmYWNlcyBhcmUgbWluaW1pemVkCisgICAgICAgIC0gYGx2bWluYCAi
bGFyZ2Ugdmlld3BvcnQgc21hbGwgZGltZW5zaW9uIiBpcyBgbWluKGx2dywgbHZoKWAKKyAgICAg
ICAgLSBgbHZtYXhgICJsYXJnZSB2aWV3cG9ydCBsYXJnZSBkaW1lbnNpb24iIGlzIGBtYXgobHZ3
LCBsdmgpYAorICAgICAgICAtIGBkdndgICJkeW5hbWljIHZpZXdwb3J0IHdpZHRoIiBpcyB0aGUg
d2lkdGggb2YgdGhlIHZpZXdwb3J0IHdpdGggYWxsIFVBIGludGVyZmFjZXMgYmVpbmcgaW4gd2hh
dGV2ZXIgc3RhdGUgdGhleSBhcmUgY3VycmVudGx5IGluCisgICAgICAgIC0gYGR2aGAgImR5bmFt
aWMgdmlld3BvcnQgaGVpZ2h0IiBpcyB0aGUgaGVpZ2h0IG9mIHRoZSB2aWV3cG9ydCB3aXRoIGFs
bCBVQSBpbnRlcmZhY2VzIGJlaW5nIGluIHdoYXRldmVyIHN0YXRlIHRoZXkgYXJlIGN1cnJlbnRs
eSBpbgorICAgICAgICAtIGBkdm1pbmAgImR5bmFtaWMgdmlld3BvcnQgc21hbGwgZGltZW5zaW9u
IiBpcyBgbWluKGR2dywgZHZoKWAKKyAgICAgICAgLSBgZHZtYXhgICJkeW5hbWljIHZpZXdwb3J0
IGxhcmdlIGRpbWVuc2lvbiIgaXMgYG1heChkdncsIGR2aClgCisgICAgICAgIFRoZSBleGlzdGlu
ZyBgdndgL2B2aGAvYHZtaW5gL2B2bWF4YCBjb3JyZXNwb25kIHRvIHRoZSAiVUEtZGVmYXVsdCB2
aWV3cG9ydCIsIHdoaWNoIFdlYktpdAorICAgICAgICBjb25zaWRlcnMgZXF1aXZhbGVudCB0byB0
aGUgImxhcmdlIHZpZXdwb3J0IiBgbHZ3YC9gbHZoYC9gbHZtaW5gL2Bsdm1heGAuCisKKyAgICAg
ICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6dW5vYnNjdXJlZENvbnRlbnRTaXplQ2hhbmdlZCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnBlcmZvcm1TaXplVG9Db250ZW50QXV0b1Np
emUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjplbmFibGVBdXRvU2l6ZU1vZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpjYWxjdWxhdGVTaXplRm9yQ1NTVmlld3BvcnRV
bml0c092ZXJyaWRlIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OmNsZWFyU2l6ZU92ZXJyaWRlRm9yQ1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMpOiBSZW5hbWVkIGZy
b20gYGNsZWFyVmlld3BvcnRTaXplT3ZlcnJpZGVGb3JDU1NWaWV3cG9ydFVuaXRzYC4KKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0U2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRz
KTogUmVuYW1lZCBmcm9tIGBzZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzYC4KKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6b3ZlcnJpZGVXaWR0aEZvckNTU0RlZmF1bHRWaWV3
cG9ydFVuaXRzKTogUmVuYW1lZCBmcm9tIGBgLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3
OjpyZXNldE92ZXJyaWRkZW5XaWR0aEZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKTogUmVuYW1l
ZCBmcm9tIGBgLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpvdmVycmlkZVNpemVGb3JD
U1NEZWZhdWx0Vmlld3BvcnRVbml0cyk6IFJlbmFtZWQgZnJvbSBgYC4KKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6c2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzIGNvbnN0KTogUmVu
YW1lZCBmcm9tIGB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzYC4KKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6Y2xlYXJTaXplT3ZlcnJpZGVGb3JDU1NTbWFsbFZpZXdwb3J0VW5p
dHMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0U2l6ZUZvckNTU1Nt
YWxsVmlld3BvcnRVbml0cyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpv
dmVycmlkZVdpZHRoRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKTogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVZpZXc6OnJlc2V0T3ZlcnJpZGRlbldpZHRoRm9yQ1NTU21hbGxWaWV3cG9y
dFVuaXRzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6Om92ZXJyaWRlU2l6
ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVWaWV3OjpzaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzIGNvbnN0KTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMgY29u
c3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2l6ZUZvckNTU0R5bmFt
aWNWaWV3cG9ydFVuaXRzIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJWaWV3OjpzaXplRm9yQ1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMgY29uc3Qp
OiBSZW5hbWVkIGZyb20gYHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHNgLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6c2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cyBjb25z
dCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6c2l6ZUZvckNTU0xhcmdl
Vmlld3BvcnRVbml0cyBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmll
dzo6c2l6ZUZvckNTU0R5bmFtaWNWaWV3cG9ydFVuaXRzIGNvbnN0KTogQWRkZWQuCisgICAgICAg
IEZvciAic21hbGwgdmlld3BvcnQiIGBzdndgL2BzdmhgL2Bzdm1pbmAvYHN2bWF4YCwgYWRkIHN1
cHBvcnQgZm9yIGEgbmV3IGBJbnRTaXplYCBtZW1iZXIKKyAgICAgICAgdGhhdCBpcyBwcm9wYWdh
dGVkIGZyb20gdGhlIFVJUHJvY2Vzcy4gSWYgbm90IHNldCwgZmFsbCBiYWNrIHRvICJVQS1kZWZh
dWx0IHZpZXdwb3J0IiBgdndgL2B2aGAvYHZtaW5gL2B2bWF4YC4KKyAgICAgICAgRm9yICJsYXJn
ZSB2aWV3cG9ydCIgYGx2d2AvYGx2aGAvYGx2bWluYC9gbHZtYXhgLCB1c2UgdGhlIHNhbWUgdmFs
dWUgYXMgIlVBLWRlZmF1bHQgdmlld3BvcnQiIGB2d2AvYHZoYC9gdm1pbmAvYHZtYXhgLgorICAg
ICAgICBGb3IgImR5bmFtaWMgdmlld3BvcnQiIGBkdndgL2BkdmhgL2Bkdm1pbmAvYGR2bWF4YCwg
dXNlIHRoZSBzYW1lIHZhbHVlIGFzIGB3aW5kb3cuaW5uZXIqYC4KKyAgICAgICAgRHJpdmUtYnk6
IFJlbmFtZSBgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0c2AgdG8gYHNpemVGb3JDU1NE
ZWZhdWx0Vmlld3BvcnRVbml0c2AgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgKiBjc3MvRGVwcmVj
YXRlZENTU09NUHJpbWl0aXZlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRl
ZENTU09NUHJpbWl0aXZlVmFsdWU6OnByaW1pdGl2ZVR5cGUgY29uc3QpOgorICAgICAgICBEb24n
dCBgQVNTRVJUX05PVF9SRUFDSEVEYCBub3cgdGhhdCB0aGVyZSBhcmUgbmV3IHVuaXQgdHlwZXMu
CisKIDIwMjEtMTAtMDUgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgUENNOiBBbGxvdyBtZWFzdXJlbWVudCBvZiBsaW5rcyBpbiBuZXN0ZWQsIGNyb3NzLXNp
dGUgaWZyYW1lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggODMwZDgxMjk1ZjFkNGY3ZDM4
NDI3Yzk2OTU2OTJjYWYzYWYzNTg2OC4uODNjMzBjYTY2N2U2ZGQyNTc2MTE0NjBkOTk2OWE4OTRi
ZWQyZWVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEt
MTAtMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtjc3Mt
dmFsdWVzLTRdIFN1cHBvcnQgc21hbGwgKHN2KiksIGxhcmdlIChsdiopIGFuZCBkeW5hbWljIChk
diopIHZpZXdwb3J0IHVuaXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTkyODcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxODU3MzcwPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Nb2RlbHMvQ1NTQ29tcGxldGlvbnMuanM6CisKIDIwMjEtMTAtMDUgIFBhdHJpY2sgQW5n
bGUgIDxwYW5nbGVAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNob3cgY29s
b3Igc3BhY2UgZm9yIGNhbnZhc2VzIGluIHRoZSBHcmFwaGljcyB0YWIgb24gdGhlIG92ZXJ2aWV3
IGNhcmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGYzNDEzZDlmOWY3ZTA3YTdmYjE0YTY3M2FiMGRiYjhjMWU0MTA2
ZjEuLjQ5YjMwNTY1ZDdlYjMxNDI1YWRlMmE4MDY3ODg5Zjk1YTFlMzNjNDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNjIgQEAKKzIwMjEtMTAtMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUu
Y29tPgorCisgICAgICAgIFtjc3MtdmFsdWVzLTRdIFN1cHBvcnQgc21hbGwgKHN2KiksIGxhcmdl
IChsdiopIGFuZCBkeW5hbWljIChkdiopIHZpZXdwb3J0IHVuaXRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyODcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzcxODU3MzcwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFNwZWM6IDxodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXZhbHVlcy00LyN2
aWV3cG9ydC12YXJpYW50cz4KKworICAgICAgICBUZXN0czogQ1NTVmlld3BvcnRVbml0cy5BbGxT
YW1lCisgICAgICAgICAgICAgICBDU1NWaWV3cG9ydFVuaXRzLkVtcHR5VW5vYnNjdXJlZFNpemVP
dmVycmlkZXMKKyAgICAgICAgICAgICAgIENTU1ZpZXdwb3J0VW5pdHMuU2FtZVVub2JzY3VyZWRT
aXplT3ZlcnJpZGVzCisgICAgICAgICAgICAgICBDU1NWaWV3cG9ydFVuaXRzLkRpZmZlcmVudFVu
b2JzY3VyZWRTaXplT3ZlcnJpZGVzCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1t
OgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Byb2Nlc3NXaWxsU3dhcE9yRGlkRXhpdF0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX2Rpc3BhdGNoU2V0TWluaW11bVVub2JzY3VyZWRTaXplOl0pOiBB
ZGRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9mcmFtZU9yQm91bmRzQ2hhbmdlZF0pOgorICAg
ICAgICAoYWN0aXZlTWluaW11bVVub2JzY3VyZWRTaXplKTogQWRkZWQuCisgICAgICAgICgtW1dL
V2ViVmlldyBfZGlkQ29tcGxldGVBbmltYXRlZFJlc2l6ZV0pOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgX21pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlXSk6IEFkZGVkLgorICAgICAgICAoLVtX
S1dlYlZpZXcgX3NldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOl0pOiBBZGRlZC4KKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF9iZWdpbkFuaW1hdGVkUmVzaXplV2l0aFVwZGF0ZXM6XSk6Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1M
YXlvdXRTaXplOm1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOl0pOgorICAgICAgICAoLVtX
S1dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpt
aW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTptYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlk
ZTpdKTogQWRkZWQuCisgICAgICAgIFJlcXVpcmUgdGhhdCBjbGllbnRzIHdobyBvdmVycmlkZSBs
YXlvdXQgcGFyYW1ldGVycyB0byBwcm92aWRlIGJvdGggKG9yIG5laXRoZXIpIGEgbWF4aW11bQor
ICAgICAgICBhbmQgbWluaW11bSB1bm9ic2N1cmVkIHNpemUgb3ZlcnJpZGUsIHRoZSBsYXR0ZXIg
YmVpbmcgZm9yICJzbWFsbCB2aWV3cG9ydCIgYHN2d2AvYHN2aGAvYHN2bWluYC9gc3ZtYXhgLgor
ICAgICAgICAibGFyZ2Ugdmlld3BvcnQiIGBsdndgL2BsdmhgL2Bsdm1pbmAvYGx2bWF4YCBhbmQg
ImR5bmFtaWMgdmlld3BvcnQiIGBkdndgL2BkdmhgL2Bkdm1pbmAvYGR2bWF4YAorICAgICAgICAo
YXMgd2VsbCBhcyB0aGUgZXhpc3RpbmcgIlVBLWRlZmF1bHQgdmlld3BvcnQiIGB2d2AvYHZoYC9g
dm1pbmAvYHZtYXhgKSBjYW4gYmUgZGVyaXZlZCBmcm9tCisgICAgICAgIGV4aXN0aW5nIGxvZ2lj
LiBTZWUgdGhlIFdlYkNvcmUgQ2hhbmdlTG9nIGZvciBtb3JlIGluZm9ybWF0aW9uLgorCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmR5bmFt
aWNWaWV3cG9ydFNpemVVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNl
dE1pbmltdW1Vbm9ic2N1cmVkU2l6ZSk6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRNaW5pbXVtVW5vYnNjdXJlZFNpemUpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVZpZXdwb3J0U2l6ZUZvckNTU1Zp
ZXdwb3J0VW5pdHMpOgorICAgICAgICBBZGQgcGlwaW5nIGZyb20gdGhlIFVJUHJvY2VzcyB0byB0
aGUgV2ViUHJvY2VzcyBmb3IgdGhlIG5ldyBtaW5pbXVtIHVub2JzY3VyZWQgc2l6ZSBvdmVycmlk
ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3
Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgdmll
d1dpbGxUcmFuc2l0aW9uVG9TaXplOndpdGhUcmFuc2l0aW9uQ29vcmRpbmF0b3I6XSk6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXJJT1MubW06CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZW50ZXJG
dWxsU2NyZWVuXSk6CisgICAgICAgIFJlcGxhY2UgYF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNX
aXRoTWluaW11bUxheW91dFNpemU6bWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6YCB3aXRo
CisgICAgICAgIGBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXpl
Om1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOm1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJy
aWRlOmAuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlv
blRvQ29tbWl0dGVkRm9yTmV3UGFnZSk6CisgICAgICAgIERyaXZlLWJ5OiBSZW5hbWUgYHNldFZp
ZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHNgIHRvIGBzZXRTaXplRm9yQ1NTRGVmYXVsdFZp
ZXdwb3J0VW5pdHNgIGZvciBjbGFyaXR5LgorCiAyMDIxLTEwLTA1ICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRG8gZGFpbHkgYWN0aXZpdHkg
aW4gQWRBdHRyaWJ1dGlvbkRhZW1vbiBiYXNlZCBvZmYgb2Ygd2hlbiB0aGUgeHBjIGFjdGl2aXR5
IGhhcHBlbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCmluZGV4IGM0
N2ViN2M0ZTQyYzI4YWFmYzJmYWFkM2QxNmI5ODkyM2RkYmY5M2QuLjExOWZlZGRiNDIwODBiMmM1
MzAwYzdhN2FlYWJlMWM2ZWU0YzQ2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcmltaXRpdmVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlLmNwcApAQCAtNjAsNiArNjAsMTAgQEAgc3RhdGljIGlubGluZSBib29sIGlzVmFsaWRD
U1NVbml0VHlwZUZvckRvdWJsZUNvbnZlcnNpb24oQ1NTVW5pdFR5cGUgdW5pdFR5cGUpCiAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NNOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ERUc6
CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RJTUVOU0lPTjoKKyAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfRFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDoKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfRFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoK
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRU1TOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19FWFM6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0ZSOgpAQCAtNzYsMTEgKzgwLDE5IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkQ1NTVW5pdFR5cGVGb3JEb3VibGVDb252ZXJzaW9u
KENTU1VuaXRUeXBlIHVuaXRUeXBlKQogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QWDoKICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUToKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTEhT
OgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0xWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjoKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfTFZXOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19STEhTOgogICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19RVUlSS1lfRU1TOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19SQUQ6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JFTVM6CiAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1M6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDoKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfU1ZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlO
OgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1RVUk46CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOgogICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19WTUFYOgpAQCAtMTM5LDYgKzE1MSwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
aXNTdHJpbmdUeXBlKENTU1VuaXRUeXBlIHR5cGUpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0RQQ006CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQSToKICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfRFBQWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZIOgorICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19EVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfWDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRU1TOgogICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19FWFM6CkBAIC0xNDksNiArMTY1LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1N0
cmluZ1R5cGUoQ1NTVW5pdFR5cGUgdHlwZSkKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfSURF
TlQ6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lOOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19LSFo6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDoKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfTFZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUlOOgorICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX01N
OgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19NUzoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfTlVNQkVSOgpAQCAtMTY4LDYgKzE4OCwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTdHJp
bmdUeXBlKENTU1VuaXRUeXBlIHR5cGUpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JFTVM6
CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JHQkNPTE9SOgogICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19TOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1NWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjoKKyAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19T
SEFQRToKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVFVSTjoKICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfVU5JQ09ERV9SQU5HRToKQEAgLTUxNiw2ICs1NDAsMTggQEAgdm9pZCBDU1NQcmlt
aXRpdmVWYWx1ZTo6Y2xlYW51cCgpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOgogICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19W
TUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6CisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX1NWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU46CisgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1NWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
TFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOgorICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19EVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfRFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFY
OgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUFBYOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19YOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUEk6CkBAIC02NDUsMTkgKzY4MSw2
NyBAQCBkb3VibGUgQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVVbnpvb21lZE5vbkNhbGNMZW5n
dGhEb3VibGUoQ1NTVW5pdFR5cGUgcHJpbWl0aQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuIC0xLjA7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOgot
ICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnZpZXdwb3J0U2l6ZUZvckNT
U1ZpZXdwb3J0VW5pdHMoKS5oZWlnaHQoKSAvIDEwMC4wICogdmFsdWUgOiAwOworICAgICAgICBy
ZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnNpemVGb3JDU1NEZWZhdWx0Vmlld3BvcnRV
bml0cygpLmhlaWdodCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7CiAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX1ZXOgotICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnZpZXdw
b3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKS53aWR0aCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7
CisgICAgICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVuZGVyVmlldy0+c2l6ZUZvckNTU0RlZmF1
bHRWaWV3cG9ydFVuaXRzKCkud2lkdGgoKSAvIDEwMC4wICogdmFsdWUgOiAwOwogICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19WTUFYOgogICAgICAgICBpZiAocmVuZGVyVmlldykgewotICAgICAg
ICAgICAgSW50U2l6ZSB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzID0gcmVuZGVyVmll
dy0+dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpOwotICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bWF4KHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMud2lkdGgoKSwgdmlld3Bv
cnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cy5oZWlnaHQoKSkgLyAxMDAuMCAqIHZhbHVlOworICAg
ICAgICAgICAgYXV0byBzaXplID0gcmVuZGVyVmlldy0+c2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9y
dFVuaXRzKCk7CisgICAgICAgICAgICByZXR1cm4gc3RkOjptYXgoc2l6ZS53aWR0aCgpLCBzaXpl
LmhlaWdodCgpKSAvIDEwMC4wICogdmFsdWU7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHZh
bHVlOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOgogICAgICAgICBpZiAocmVuZGVy
VmlldykgewotICAgICAgICAgICAgSW50U2l6ZSB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVu
aXRzID0gcmVuZGVyVmlldy0+dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpOwotICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bWluKHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMu
d2lkdGgoKSwgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cy5oZWlnaHQoKSkgLyAxMDAu
MCAqIHZhbHVlOworICAgICAgICAgICAgYXV0byBzaXplID0gcmVuZGVyVmlldy0+c2l6ZUZvckNT
U0RlZmF1bHRWaWV3cG9ydFVuaXRzKCk7CisgICAgICAgICAgICByZXR1cm4gc3RkOjptaW4oc2l6
ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSAvIDEwMC4wICogdmFsdWU7CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIHZhbHVlOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAg
ICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVuZGVyVmlldy0+c2l6ZUZvckNTU1NtYWxsVmlld3Bv
cnRVbml0cygpLmhlaWdodCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1NWVzoKKyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5z
aXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCkud2lkdGgoKSAvIDEwMC4wICogdmFsdWUgOiAw
OworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDoKKyAgICAgICAgaWYgKHJlbmRlclZp
ZXcpIHsKKyAgICAgICAgICAgIGF1dG8gc2l6ZSA9IHJlbmRlclZpZXctPnNpemVGb3JDU1NTbWFs
bFZpZXdwb3J0VW5pdHMoKTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1heChzaXplLndpZHRo
KCksIHNpemUuaGVpZ2h0KCkpIC8gMTAwLjAgKiB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gdmFsdWU7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOgorICAgICAgICBp
ZiAocmVuZGVyVmlldykgeworICAgICAgICAgICAgYXV0byBzaXplID0gcmVuZGVyVmlldy0+c2l6
ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpOworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWlu
KHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkgLyAxMDAuMCAqIHZhbHVlOworICAgICAgICB9
CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOgor
ICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnNpemVGb3JDU1NMYXJnZVZp
ZXdwb3J0VW5pdHMoKS5oZWlnaHQoKSAvIDEwMC4wICogdmFsdWUgOiAwOworICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19MVlc6CisgICAgICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVuZGVyVmll
dy0+c2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpLndpZHRoKCkgLyAxMDAuMCAqIHZhbHVl
IDogMDsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6CisgICAgICAgIGlmIChyZW5k
ZXJWaWV3KSB7CisgICAgICAgICAgICBhdXRvIHNpemUgPSByZW5kZXJWaWV3LT5zaXplRm9yQ1NT
TGFyZ2VWaWV3cG9ydFVuaXRzKCk7CisgICAgICAgICAgICByZXR1cm4gc3RkOjptYXgoc2l6ZS53
aWR0aCgpLCBzaXplLmhlaWdodCgpKSAvIDEwMC4wICogdmFsdWU7CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIHZhbHVlOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjoKKyAgICAg
ICAgaWYgKHJlbmRlclZpZXcpIHsKKyAgICAgICAgICAgIGF1dG8gc2l6ZSA9IHJlbmRlclZpZXct
PnNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoKTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om1pbihzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpIC8gMTAwLjAgKiB2YWx1ZTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RW
SDoKKyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NTRHlu
YW1pY1ZpZXdwb3J0VW5pdHMoKS5oZWlnaHQoKSAvIDEwMC4wICogdmFsdWUgOiAwOworICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6CisgICAgICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVu
ZGVyVmlldy0+c2l6ZUZvckNTU0R5bmFtaWNWaWV3cG9ydFVuaXRzKCkud2lkdGgoKSAvIDEwMC4w
ICogdmFsdWUgOiAwOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDoKKyAgICAgICAg
aWYgKHJlbmRlclZpZXcpIHsKKyAgICAgICAgICAgIGF1dG8gc2l6ZSA9IHJlbmRlclZpZXctPnNp
emVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cygpOworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bWF4KHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkgLyAxMDAuMCAqIHZhbHVlOworICAgICAg
ICB9CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZN
SU46CisgICAgICAgIGlmIChyZW5kZXJWaWV3KSB7CisgICAgICAgICAgICBhdXRvIHNpemUgPSBy
ZW5kZXJWaWV3LT5zaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMoKTsKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om1pbihzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpIC8gMTAwLjAgKiB2
YWx1ZTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgZGVmYXVsdDoKQEAg
LTcwNiwxNiArNzkwLDY4IEBAIGRvdWJsZSBDU1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZU5vbkNh
bGNMZW5ndGhEb3VibGUoY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uCiAgICAgICAgIGJyZWFr
OwogCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOgotICAgICAgICByZXR1cm4gdmFsdWUg
KiBjb252ZXJzaW9uRGF0YS52aWV3cG9ydEhlaWdodEZhY3RvcigpOworICAgICAgICByZXR1cm4g
dmFsdWUgKiBjb252ZXJzaW9uRGF0YS5kZWZhdWx0Vmlld3BvcnRGYWN0b3IoKS5oZWlnaHQoKTsK
IAogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WVzoKLSAgICAgICAgcmV0dXJuIHZhbHVlICog
Y29udmVyc2lvbkRhdGEudmlld3BvcnRXaWR0aEZhY3RvcigpOworICAgICAgICByZXR1cm4gdmFs
dWUgKiBjb252ZXJzaW9uRGF0YS5kZWZhdWx0Vmlld3BvcnRGYWN0b3IoKS53aWR0aCgpOwogCi0g
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg6Ci0gICAgICAgIHJldHVybiB2YWx1ZSAqIGNv
bnZlcnNpb25EYXRhLnZpZXdwb3J0TWF4RmFjdG9yKCk7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1ZNQVg6IHsKKyAgICAgICAgYXV0byBkZWZhdWx0Vmlld3BvcnRGYWN0b3IgPSBjb252ZXJz
aW9uRGF0YS5kZWZhdWx0Vmlld3BvcnRGYWN0b3IoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlICog
c3RkOjpmbWF4KGRlZmF1bHRWaWV3cG9ydEZhY3Rvci53aWR0aCgpLCBkZWZhdWx0Vmlld3BvcnRG
YWN0b3IuaGVpZ2h0KCkpOworICAgIH0KIAotICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlO
OgotICAgICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0YS52aWV3cG9ydE1pbkZhY3Rv
cigpOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOiB7CisgICAgICAgIGF1dG8gZGVm
YXVsdFZpZXdwb3J0RmFjdG9yID0gY29udmVyc2lvbkRhdGEuZGVmYXVsdFZpZXdwb3J0RmFjdG9y
KCk7CisgICAgICAgIHJldHVybiB2YWx1ZSAqIHN0ZDo6Zm1pbihkZWZhdWx0Vmlld3BvcnRGYWN0
b3Iud2lkdGgoKSwgZGVmYXVsdFZpZXdwb3J0RmFjdG9yLmhlaWdodCgpKTsKKyAgICB9CisKKyAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOgorICAgICAgICByZXR1cm4gdmFsdWUgKiBjb252
ZXJzaW9uRGF0YS5zbWFsbFZpZXdwb3J0RmFjdG9yKCkuaGVpZ2h0KCk7CisKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfU1ZXOgorICAgICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0
YS5zbWFsbFZpZXdwb3J0RmFjdG9yKCkud2lkdGgoKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19TVk1BWDogeworICAgICAgICBhdXRvIHNtYWxsVmlld3BvcnRGYWN0b3IgPSBjb252ZXJz
aW9uRGF0YS5zbWFsbFZpZXdwb3J0RmFjdG9yKCk7CisgICAgICAgIHJldHVybiB2YWx1ZSAqIHN0
ZDo6Zm1heChzbWFsbFZpZXdwb3J0RmFjdG9yLndpZHRoKCksIHNtYWxsVmlld3BvcnRGYWN0b3Iu
aGVpZ2h0KCkpOworICAgIH0KKworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjogewor
ICAgICAgICBhdXRvIHNtYWxsVmlld3BvcnRGYWN0b3IgPSBjb252ZXJzaW9uRGF0YS5zbWFsbFZp
ZXdwb3J0RmFjdG9yKCk7CisgICAgICAgIHJldHVybiB2YWx1ZSAqIHN0ZDo6Zm1pbihzbWFsbFZp
ZXdwb3J0RmFjdG9yLndpZHRoKCksIHNtYWxsVmlld3BvcnRGYWN0b3IuaGVpZ2h0KCkpOworICAg
IH0KKworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAgICAgIHJldHVybiB2YWx1
ZSAqIGNvbnZlcnNpb25EYXRhLmxhcmdlVmlld3BvcnRGYWN0b3IoKS5oZWlnaHQoKTsKKworICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZl
cnNpb25EYXRhLmxhcmdlVmlld3BvcnRGYWN0b3IoKS53aWR0aCgpOworCisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0xWTUFYOiB7CisgICAgICAgIGF1dG8gbGFyZ2VWaWV3cG9ydEZhY3RvciA9
IGNvbnZlcnNpb25EYXRhLmxhcmdlVmlld3BvcnRGYWN0b3IoKTsKKyAgICAgICAgcmV0dXJuIHZh
bHVlICogc3RkOjpmbWF4KGxhcmdlVmlld3BvcnRGYWN0b3Iud2lkdGgoKSwgbGFyZ2VWaWV3cG9y
dEZhY3Rvci5oZWlnaHQoKSk7CisgICAgfQorCisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xW
TUlOOiB7CisgICAgICAgIGF1dG8gbGFyZ2VWaWV3cG9ydEZhY3RvciA9IGNvbnZlcnNpb25EYXRh
LmxhcmdlVmlld3BvcnRGYWN0b3IoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlICogc3RkOjpmbWlu
KGxhcmdlVmlld3BvcnRGYWN0b3Iud2lkdGgoKSwgbGFyZ2VWaWV3cG9ydEZhY3Rvci5oZWlnaHQo
KSk7CisgICAgfQorCisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICAgICAgcmV0
dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEuZHluYW1pY1ZpZXdwb3J0RmFjdG9yKCkuaGVpZ2h0
KCk7CisKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZXOgorICAgICAgICByZXR1cm4gdmFs
dWUgKiBjb252ZXJzaW9uRGF0YS5keW5hbWljVmlld3BvcnRGYWN0b3IoKS53aWR0aCgpOworCisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOiB7CisgICAgICAgIGF1dG8gZHluYW1pY1Zp
ZXdwb3J0RmFjdG9yID0gY29udmVyc2lvbkRhdGEuZHluYW1pY1ZpZXdwb3J0RmFjdG9yKCk7Cisg
ICAgICAgIHJldHVybiB2YWx1ZSAqIHN0ZDo6Zm1heChkeW5hbWljVmlld3BvcnRGYWN0b3Iud2lk
dGgoKSwgZHluYW1pY1ZpZXdwb3J0RmFjdG9yLmhlaWdodCgpKTsKKyAgICB9CisKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfRFZNSU46IHsKKyAgICAgICAgYXV0byBkeW5hbWljVmlld3BvcnRG
YWN0b3IgPSBjb252ZXJzaW9uRGF0YS5keW5hbWljVmlld3BvcnRGYWN0b3IoKTsKKyAgICAgICAg
cmV0dXJuIHZhbHVlICogc3RkOjpmbWluKGR5bmFtaWNWaWV3cG9ydEZhY3Rvci53aWR0aCgpLCBk
eW5hbWljVmlld3BvcnRGYWN0b3IuaGVpZ2h0KCkpOworICAgIH0KIAogICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19MSFM6CiAgICAgICAgIEFTU0VSVChjb252ZXJzaW9uRGF0YS5zdHlsZSgpKTsK
QEAgLTk4NCw2ICsxMTIwLDE4IEBAIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6dW5pdFR5cGVT
dHJpbmcoQ1NTVW5pdFR5cGUgdW5pdFR5cGUpCiAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19WSDogcmV0dXJuICJ2aCI7CiAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOiBy
ZXR1cm4gInZtaW4iOwogICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1BWDogcmV0dXJu
ICJ2bWF4IjsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWVzogcmV0dXJuICJzdnci
OworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOiByZXR1cm4gInN2aCI7CisgICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjogcmV0dXJuICJzdm1pbiI7CisgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDogcmV0dXJuICJzdm1heCI7CisgICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6IHJldHVybiAibHZ3IjsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0xWSDogcmV0dXJuICJsdmgiOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfTFZNSU46IHJldHVybiAibHZtaW4iOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfTFZNQVg6IHJldHVybiAibHZtYXgiOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
RFZXOiByZXR1cm4gImR2dyI7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6IHJl
dHVybiAiZHZoIjsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOiByZXR1cm4g
ImR2bWluIjsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOiByZXR1cm4gImR2
bWF4IjsKICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQUFg6IHJldHVybiAiZHBweCI7
CiAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19YOiByZXR1cm4gIngiOwogICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfRFBJOiByZXR1cm4gImRwaSI7CkBAIC0xMTQ2LDYgKzEyOTQs
MzAgQEAgQUxXQVlTX0lOTElORSBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmZvcm1hdE51bWJl
ckZvckN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFs
dWUoInZtaW4iKTsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1BWDoKICAgICAgICAgcmV0
dXJuIGZvcm1hdE51bWJlclZhbHVlKCJ2bWF4Iik7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1NWVzoKKyAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlclZhbHVlKCJzdnciKTsKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfU1ZIOgorICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUo
InN2aCIpOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjoKKyAgICAgICAgcmV0dXJu
IGZvcm1hdE51bWJlclZhbHVlKCJzdm1pbiIpOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19T
Vk1BWDoKKyAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlclZhbHVlKCJzdm1heCIpOworICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CisgICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJWYWx1
ZSgibHZ3Iik7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDoKKyAgICAgICAgcmV0dXJu
IGZvcm1hdE51bWJlclZhbHVlKCJsdmgiKTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZN
SU46CisgICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJWYWx1ZSgibHZtaW4iKTsKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6CisgICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJWYWx1
ZSgibHZtYXgiKTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZXOgorICAgICAgICByZXR1
cm4gZm9ybWF0TnVtYmVyVmFsdWUoImR2dyIpOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19E
Vkg6CisgICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJWYWx1ZSgiZHZoIik7CisgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0RWTUlOOgorICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUo
ImR2bWluIik7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOgorICAgICAgICByZXR1
cm4gZm9ybWF0TnVtYmVyVmFsdWUoImR2bWF4Iik7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0lERU5UOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19VTklDT0RFX1JBTkdFOgogICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19DQUxDX1BFUkNFTlRBR0VfV0lUSF9OVU1CRVI6CkBAIC0xMjEz
LDYgKzEzODUsMTggQEAgYm9vbCBDU1NQcmltaXRpdmVWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1By
aW1pdGl2ZVZhbHVlJiBvdGhlcikgY29uc3QKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkg6
CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1ZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWVzoKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfU1ZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjoKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xW
VzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19MVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6CisgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0RWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZIOgorICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
RFZNQVg6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0ZSOgogICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19ROgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MSFM6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZS5oCmluZGV4IDhiODJiOWJhOTQ5NmFhMDk0YmRmZWRiYThkZjkx
OWNlMmViYTdmMzMuLmI3NDc5YzdiZjdkOTU0NzUwODc5Mjk0OTZmNGQ0YjFhOWVkNTg4NjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCkBAIC0xMTEsMTAgKzExMSw2IEBA
IHB1YmxpYzoKICAgICBib29sIGlzWCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9
PSBDU1NVbml0VHlwZTo6Q1NTX1g7IH0KICAgICBib29sIGlzUmVzb2x1dGlvbigpIGNvbnN0IHsg
cmV0dXJuIHVuaXRDYXRlZ29yeShwcmltaXRpdmVUeXBlKCkpID09IENTU1VuaXRDYXRlZ29yeTo6
UmVzb2x1dGlvbjsgfQogICAgIGJvb2wgaXNWaWV3cG9ydFBlcmNlbnRhZ2VMZW5ndGgoKSBjb25z
dCB7IHJldHVybiBpc1ZpZXdwb3J0UGVyY2VudGFnZUxlbmd0aChwcmltaXRpdmVVbml0VHlwZSgp
KTsgfQotICAgIGJvb2wgaXNWaWV3cG9ydFBlcmNlbnRhZ2VXaWR0aCgpIGNvbnN0IHsgcmV0dXJu
IHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19WVzsgfQotICAgIGJvb2wg
aXNWaWV3cG9ydFBlcmNlbnRhZ2VIZWlnaHQoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVVbml0
VHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1NfVkg7IH0KLSAgICBib29sIGlzVmlld3BvcnRQZXJj
ZW50YWdlTWF4KCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVW5pdFR5cGUoKSA9PSBDU1NVbml0
VHlwZTo6Q1NTX1ZNQVg7IH0KLSAgICBib29sIGlzVmlld3BvcnRQZXJjZW50YWdlTWluKCkgY29u
c3QgeyByZXR1cm4gcHJpbWl0aXZlVW5pdFR5cGUoKSA9PSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU47
IH0KICAgICBib29sIGlzVmFsdWVJRCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBl
KCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRDsgfQogICAgIGJvb2wgaXNGbGV4KCkgY29u
c3QgeyByZXR1cm4gcHJpbWl0aXZlVHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1NfRlI7IH0KICAg
ICBib29sIGlzQ3VzdG9tSWRlbnQoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVVbml0VHlwZSgp
ID09IENTU1VuaXRUeXBlOjpDdXN0b21JZGVudDsgfQpAQCAtMzE1LDEwICszMTEsNyBAQCBjb25z
dGV4cHIgYm9vbCBDU1NQcmltaXRpdmVWYWx1ZTo6aXNSZXNvbHV0aW9uKENTU1VuaXRUeXBlIHR5
cGUpCiAKIGNvbnN0ZXhwciBib29sIENTU1ByaW1pdGl2ZVZhbHVlOjppc1ZpZXdwb3J0UGVyY2Vu
dGFnZUxlbmd0aChDU1NVbml0VHlwZSB0eXBlKQogewotICAgIHJldHVybiB0eXBlID09IENTU1Vu
aXRUeXBlOjpDU1NfVlcKLSAgICAgICAgfHwgdHlwZSA9PSBDU1NVbml0VHlwZTo6Q1NTX1ZICi0g
ICAgICAgIHx8IHR5cGUgPT0gQ1NTVW5pdFR5cGU6OkNTU19WTUlOCi0gICAgICAgIHx8IHR5cGUg
PT0gQ1NTVW5pdFR5cGU6OkNTU19WTUFYOworICAgIHJldHVybiB0eXBlID49IENTU1VuaXRUeXBl
OjpDU1NfVlcgJiYgdHlwZSA8PSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOwogfQogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBDU1NQcmltaXRpdmVW
YWx1ZTo6Y3JlYXRlKFQmJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhLmNwcAppbmRleCAzMTk4MGU2MmM5NWViNzkwYjUwNzI2ODdkZmU1
NzMxNjM5OTM2YjY4Li5iMDE1ZjFhZTdhMDc4NjY3YzVhNzVkNjRkNWY4OGE0ZjliMThkYTI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuY3Bw
CkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YS5oIgogCisjaW5jbHVkZSAiRmxvYXRTaXplLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAKQEAgLTQzLDUwICs0
NCw0OCBAQCBmbG9hdCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjp6b29tKCkgY29uc3QKICAg
ICByZXR1cm4gKm1fem9vbTsKIH0KIAotZG91YmxlIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6
OnZpZXdwb3J0V2lkdGhGYWN0b3IoKSBjb25zdAorRmxvYXRTaXplIENTU1RvTGVuZ3RoQ29udmVy
c2lvbkRhdGE6OmRlZmF1bHRWaWV3cG9ydEZhY3RvcigpIGNvbnN0CiB7CiAgICAgaWYgKG1fdmll
d3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUpCiAgICAgICAgIG1fdmlld3BvcnREZXBlbmRl
bmN5RGV0ZWN0aW9uU3R5bGUtPnNldEhhc1ZpZXdwb3J0VW5pdHMoKTsKIAogICAgIGlmICghbV9y
ZW5kZXJWaWV3KQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAg
IHJldHVybiBtX3JlbmRlclZpZXctPnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKS53
aWR0aCgpIC8gMTAwLjA7CisgICAgcmV0dXJuIG1fcmVuZGVyVmlldy0+c2l6ZUZvckNTU0RlZmF1
bHRWaWV3cG9ydFVuaXRzKCkgLyAxMDAuMDsKIH0KIAotZG91YmxlIENTU1RvTGVuZ3RoQ29udmVy
c2lvbkRhdGE6OnZpZXdwb3J0SGVpZ2h0RmFjdG9yKCkgY29uc3QKK0Zsb2F0U2l6ZSBDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhOjpzbWFsbFZpZXdwb3J0RmFjdG9yKCkgY29uc3QKIHsKICAgICBp
ZiAobV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZSkKICAgICAgICAgbV92aWV3cG9y
dERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZS0+c2V0SGFzVmlld3BvcnRVbml0cygpOwogCiAgICAg
aWYgKCFtX3JlbmRlclZpZXcpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4geyB9
OwogCi0gICAgcmV0dXJuIG1fcmVuZGVyVmlldy0+dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRV
bml0cygpLmhlaWdodCgpIC8gMTAwLjA7CisgICAgcmV0dXJuIG1fcmVuZGVyVmlldy0+c2l6ZUZv
ckNTU1NtYWxsVmlld3BvcnRVbml0cygpIC8gMTAwLjA7CiB9CiAKLWRvdWJsZSBDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhOjp2aWV3cG9ydE1pbkZhY3RvcigpIGNvbnN0CitGbG9hdFNpemUgQ1NT
VG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6bGFyZ2VWaWV3cG9ydEZhY3RvcigpIGNvbnN0CiB7CiAg
ICAgaWYgKG1fdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUpCiAgICAgICAgIG1fdmll
d3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUtPnNldEhhc1ZpZXdwb3J0VW5pdHMoKTsKIAog
ICAgIGlmICghbV9yZW5kZXJWaWV3KQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
IHsgfTsKIAotICAgIEludFNpemUgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyA9IG1f
cmVuZGVyVmlldy0+dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpOwotICAgIHJldHVy
biBzdGQ6Om1pbih2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzLndpZHRoKCksIHZpZXdw
b3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMuaGVpZ2h0KCkpIC8gMTAwLjA7CisgICAgcmV0dXJu
IG1fcmVuZGVyVmlldy0+c2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpIC8gMTAwLjA7CiB9
CiAKLWRvdWJsZSBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjp2aWV3cG9ydE1heEZhY3Rvcigp
IGNvbnN0CitGbG9hdFNpemUgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6ZHluYW1pY1ZpZXdw
b3J0RmFjdG9yKCkgY29uc3QKIHsKICAgICBpZiAobV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rp
b25TdHlsZSkKICAgICAgICAgbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZS0+c2V0
SGFzVmlld3BvcnRVbml0cygpOwogCiAgICAgaWYgKCFtX3JlbmRlclZpZXcpCi0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgSW50U2l6ZSB2aWV3cG9ydFNpemVG
b3JDU1NWaWV3cG9ydFVuaXRzID0gbV9yZW5kZXJWaWV3LT52aWV3cG9ydFNpemVGb3JDU1NWaWV3
cG9ydFVuaXRzKCk7Ci0gICAgcmV0dXJuIHN0ZDo6bWF4KHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdw
b3J0VW5pdHMud2lkdGgoKSwgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cy5oZWlnaHQo
KSkgLyAxMDAuMDsKKyAgICByZXR1cm4gbV9yZW5kZXJWaWV3LT5zaXplRm9yQ1NTRHluYW1pY1Zp
ZXdwb3J0VW5pdHMoKSAvIDEwMC4wOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaAppbmRleCA5NTM3
NzlmOGQ1NTVmMGJjOTgxOTI3NzVlNzM3YzU1YjE1MDYwMGVlLi5lNWMyYjYyYzUyZWMyMWEzNjUy
OTgwMWM3Y2Q0ODZhZmJjOTU2MTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhLmgKQEAgLTM2LDYgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitjbGFzcyBGbG9hdFNpemU7CiBjbGFzcyBSZW5kZXJTdHlsZTsKIGNsYXNzIFJlbmRl
clZpZXc7CiAKQEAgLTc0LDEwICs3NSwxMCBAQCBwdWJsaWM6CiAgICAgQ1NTUHJvcGVydHlJRCBw
cm9wZXJ0eVRvQ29tcHV0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydHlUb0NvbXB1dGUudmFs
dWVfb3IoQ1NTUHJvcGVydHlJbnZhbGlkKTsgfQogICAgIGNvbnN0IFJlbmRlclZpZXcqIHJlbmRl
clZpZXcoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlclZpZXc7IH0KIAotICAgIGRvdWJsZSB2aWV3
cG9ydFdpZHRoRmFjdG9yKCkgY29uc3Q7Ci0gICAgZG91YmxlIHZpZXdwb3J0SGVpZ2h0RmFjdG9y
KCkgY29uc3Q7Ci0gICAgZG91YmxlIHZpZXdwb3J0TWluRmFjdG9yKCkgY29uc3Q7Ci0gICAgZG91
YmxlIHZpZXdwb3J0TWF4RmFjdG9yKCkgY29uc3Q7CisgICAgRmxvYXRTaXplIGRlZmF1bHRWaWV3
cG9ydEZhY3RvcigpIGNvbnN0OworICAgIEZsb2F0U2l6ZSBzbWFsbFZpZXdwb3J0RmFjdG9yKCkg
Y29uc3Q7CisgICAgRmxvYXRTaXplIGxhcmdlVmlld3BvcnRGYWN0b3IoKSBjb25zdDsKKyAgICBG
bG9hdFNpemUgZHluYW1pY1ZpZXdwb3J0RmFjdG9yKCkgY29uc3Q7CiAKICAgICBDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhIGNvcHlXaXRoQWRqdXN0ZWRab29tKGZsb2F0IG5ld1pvb20pIGNvbnN0
CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1VuaXRzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NVbml0cy5jcHAKaW5kZXggNGY0NjhiM2YzYjU3MTI2YzE1NGMx
MzY4Njg1ZDE4MTliNzkxZDIzZS4uMjRjYjY2M2UyYzVlMzMxZTViMmRlYmZkNTJkYTQ1ZjMyNGI5
MTM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1VuaXRzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5pdHMuY3BwCkBAIC0xMzgsNiArMTM4LDE4IEBAIFRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIENTU1VuaXRUeXBlIHVuaXRUeXBlKQog
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSDogdHMgPDwgInZoIjsgYnJlYWs7CiAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46IHRzIDw8ICJ2bWluIjsgYnJlYWs7CiAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1ZNQVg6IHRzIDw8ICJ2bWF4IjsgYnJlYWs7CisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1NWVzogdHMgPDwgInN2dyI7IGJyZWFrOworICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19TVkg6IHRzIDw8ICJzdmgiOyBicmVhazsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfU1ZNSU46IHRzIDw8ICJzdm1pbiI7IGJyZWFrOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19TVk1BWDogdHMgPDwgInN2bWF4IjsgYnJlYWs7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0xWVzogdHMgPDwgImx2dyI7IGJyZWFrOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6
IHRzIDw8ICJsdmgiOyBicmVhazsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46IHRz
IDw8ICJsdm1pbiI7IGJyZWFrOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDogdHMg
PDwgImx2bWF4IjsgYnJlYWs7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzogdHMgPDwg
ImR2dyI7IGJyZWFrOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6IHRzIDw8ICJkdmgi
OyBicmVhazsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46IHRzIDw8ICJkdm1pbiI7
IGJyZWFrOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDogdHMgPDwgImR2bWF4Ijsg
YnJlYWs7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQUFg6IHRzIDw8ICJkcHB4IjsgYnJl
YWs7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1g6IHRzIDw8ICJ4IjsgYnJlYWs7CiAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQSTogdHMgPDwgImRwaSI7IGJyZWFrOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1VuaXRzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VW5pdHMuaAppbmRleCA5NzI1NWE5ZWMzNzgyNWM4YjdlNDQ4OTVjZjY1ODM1ZDliOGQyY2ZhLi5i
MGY3YzJkMmY2ZWFiY2M3M2Y0Y2MzMjJhNWJlYWY1ODJmOGMwMDY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVW5pdHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5p
dHMuaApAQCAtNTksNiArNTksMTggQEAgZW51bSBjbGFzcyBDU1NVbml0VHlwZSA6IHVpbnQ4X3Qg
ewogICAgIENTU19WSCwKICAgICBDU1NfVk1JTiwKICAgICBDU1NfVk1BWCwKKyAgICBDU1NfU1ZX
LAorICAgIENTU19TVkgsCisgICAgQ1NTX1NWTUlOLAorICAgIENTU19TVk1BWCwKKyAgICBDU1Nf
TFZXLAorICAgIENTU19MVkgsCisgICAgQ1NTX0xWTUlOLAorICAgIENTU19MVk1BWCwKKyAgICBD
U1NfRFZXLAorICAgIENTU19EVkgsCisgICAgQ1NTX0RWTUlOLAorICAgIENTU19EVk1BWCwKICAg
ICBDU1NfRFBQWCwKICAgICBDU1NfWCwKICAgICBDU1NfRFBJLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHAKaW5kZXggYmJkMDE0
OTkxNzk4NDczODg3Y2Y0ODI4OWM1NDZiNjI1M2QzODNhNS4uN2RiNWNiYTA2NWE5MzVhNTQ5OTEy
ZDU0YmI1OWIxZWU4ZmEwMzExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJl
Y2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVw
cmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuY3BwCkBAIC05MywxMCArOTMsOSBAQCB1bnNpZ25l
ZCBzaG9ydCBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6cHJpbWl0aXZlVHlwZSgpIGNv
bnN0CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46ICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBDU1NfVk1JTjsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVlc6ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU19WVzsKICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfWDogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDM3OwotICAgIH0KIAot
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBDU1NfVU5LTk9XTjsKKyAgICBk
ZWZhdWx0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IENTU19VTktOT1dOOworICAgIH0KIH0KIAogRXhjZXB0aW9uT3I8ZmxvYXQ+IERlcHJlY2F0ZWRD
U1NPTVByaW1pdGl2ZVZhbHVlOjpnZXRGbG9hdFZhbHVlKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBl
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY0NhdGVn
b3J5TWFwcGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjQ2F0ZWdvcnlN
YXBwaW5nLmNwcAppbmRleCAyZDBhMWMyMDAxZjEyZmUyMTY4YjRjN2JkODI4NzhlYjEwZjcxOGNk
Li45ZWYxZDQ1NjkyMDJlZTU5MzUyM2MwZGEyYzgyNzI3MTAyZjc2MDBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjQ2F0ZWdvcnlNYXBwaW5nLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjQ2F0ZWdvcnlNYXBwaW5nLmNwcApAQCAtNTQs
NiArNTQsMTggQEAgQ2FsY3VsYXRpb25DYXRlZ29yeSBjYWxjVW5pdENhdGVnb3J5KENTU1VuaXRU
eXBlIHR5cGUpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOgogICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19WTUlOOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgorICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDoK
KyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1NWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0xWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19E
Vlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOgogICAgICAgICBy
ZXR1cm4gQ2FsY3VsYXRpb25DYXRlZ29yeTo6TGVuZ3RoOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19QRVJDRU5UQUdFOgogICAgICAgICByZXR1cm4gQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVy
Y2VudDsKQEAgLTExMCw2ICsxMjIsMTggQEAgQ2FsY3VsYXRpb25DYXRlZ29yeSBjYWxjdWxhdGlv
bkNhdGVnb3J5Rm9yQ29tYmluYXRpb24oQ1NTVW5pdFR5cGUgdHlwZSkKICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfVkg6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46CiAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWVzoK
KyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19TVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNQVg6CisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0xWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOgorICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZN
QVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjoKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfRFZNQVg6CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIENhbGN1
bGF0aW9uQ2F0ZWdvcnk6Ok90aGVyOwogICAgIH0KQEAgLTE2Miw2ICsxODYsMTggQEAgYm9vbCBo
YXNEb3VibGVWYWx1ZShDU1NVbml0VHlwZSB0eXBlKQogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19WSDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjoKICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgorICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOgor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfTFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0xWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDoKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfRFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19EVk1BWDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBQWDoKICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfWDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBJOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcAppbmRleCA5YmRjMTNhZGJk
NTAwNzlhZDg0MDc4MGIyMDcwNjFkNDM3OTY3NDczLi5kZTU1ZDM0Yzk3Mjg0MTJjNmZjMzUyYjEy
Mjk1NTM0NjY4MTA3NzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlclRva2VuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
clRva2VuLmNwcApAQCAtMTM0LDggKzEzNCwyNiBAQCBDU1NVbml0VHlwZSBjc3NQcmltaXRpdmVW
YWx1ZVVuaXRGcm9tVHJpZShjb25zdCBDaGFyYWN0ZXJUeXBlKiBkYXRhLCB1bnNpZ25lZCBsZQog
ICAgICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVsyXSkgPT0gJ2knKQogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19EUEk7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICd2JzoKKyAgICAgICAgICAgICAgICBzd2l0Y2gg
KHRvQVNDSUlMb3dlcihkYXRhWzJdKSkgeworICAgICAgICAgICAgICAgIGNhc2UgJ2gnOgorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19EVkg7CisgICAgICAgICAg
ICAgICAgY2FzZSAndyc6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6
Q1NTX0RWVzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgIGJyZWFrOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgJ2wnOgorICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzFdKSA9PSAndicpIHsK
KyAgICAgICAgICAgICAgICBzd2l0Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzJdKSkgeworICAgICAg
ICAgICAgICAgIGNhc2UgJ2gnOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5
cGU6OkNTU19MVkg7CisgICAgICAgICAgICAgICAgY2FzZSAndyc6CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0xWVzsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSAnayc6CiAgICAgICAg
ICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbMV0pID09ICdoJyAmJiB0b0FTQ0lJTG93ZXIoZGF0
YVsyXSkgPT0gJ3onKQogICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0tI
WjsKQEAgLTE1NSw5ICsxNzMsMTkgQEAgQ1NTVW5pdFR5cGUgY3NzUHJpbWl0aXZlVmFsdWVVbml0
RnJvbVRyaWUoY29uc3QgQ2hhcmFjdGVyVHlwZSogZGF0YSwgdW5zaWduZWQgbGUKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfUkxIUzsKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
ICdzJzoKKyAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVsxXSkgPT0gJ3YnKSB7Cisg
ICAgICAgICAgICAgICAgc3dpdGNoICh0b0FTQ0lJTG93ZXIoZGF0YVsyXSkpIHsKKyAgICAgICAg
ICAgICAgICBjYXNlICdoJzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBl
OjpDU1NfU1ZIOworICAgICAgICAgICAgICAgIGNhc2UgJ3cnOgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19TVlc7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgICAgYnJlYWs7Ci0g
ICAgfQotICAgIGJyZWFrOwogICAgIGNhc2UgNDoKICAgICAgICAgc3dpdGNoICh0b0FTQ0lJTG93
ZXIoZGF0YVswXSkpIHsKICAgICAgICAgY2FzZSAnZCc6CkBAIC0xNzMsOSArMjAxLDkgQEAgQ1NT
VW5pdFR5cGUgY3NzUHJpbWl0aXZlVmFsdWVVbml0RnJvbVRyaWUoY29uc3QgQ2hhcmFjdGVyVHlw
ZSogZGF0YSwgdW5zaWduZWQgbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NV
bml0VHlwZTo6Q1NTX0RQUFg7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlICdnJzoK
ICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVsxXSkgPT0gJ3InICYmIHRvQVNDSUlM
b3dlcihkYXRhWzJdKSA9PSAnYScgJiYgdG9BU0NJSUxvd2VyKGRhdGFbM10pID09ICdkJykKICAg
ICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19HUkFEOwpAQCAtMjA4LDYgKzIz
Niw0OCBAQCBDU1NVbml0VHlwZSBjc3NQcmltaXRpdmVWYWx1ZVVuaXRGcm9tVHJpZShjb25zdCBD
aGFyYWN0ZXJUeXBlKiBkYXRhLCB1bnNpZ25lZCBsZQogICAgICAgICAgICAgaWYgKHRvQVNDSUlM
b3dlcihkYXRhWzFdKSA9PSAnXycgJiYgdG9BU0NJSUxvd2VyKGRhdGFbMl0pID09ICdxJyAmJiB0
b0FTQ0lJTG93ZXIoZGF0YVszXSkgPT0gJ2UnICYmIHRvQVNDSUlMb3dlcihkYXRhWzRdKSA9PSAn
bScpCiAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfUVVJUktZX0VNUzsK
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICdkJzoKKyAgICAgICAgICAgIGlmICh0
b0FTQ0lJTG93ZXIoZGF0YVsxXSkgPT0gJ3YnICYmIHRvQVNDSUlMb3dlcihkYXRhWzJdKSA9PSAn
bScpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzNdKSkgewor
ICAgICAgICAgICAgICAgIGNhc2UgJ2EnOgorICAgICAgICAgICAgICAgICAgICBpZiAodG9BU0NJ
SUxvd2VyKGRhdGFbNF0pID09ICd4JykKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBD
U1NVbml0VHlwZTo6Q1NTX0RWTUFYOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICBjYXNlICdpJzoKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dl
cihkYXRhWzRdKSA9PSAnbicpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5p
dFR5cGU6OkNTU19EVk1JTjsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
J2wnOgorICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzFdKSA9PSAndicgJiYgdG9B
U0NJSUxvd2VyKGRhdGFbMl0pID09ICdtJykgeworICAgICAgICAgICAgICAgIHN3aXRjaCAodG9B
U0NJSUxvd2VyKGRhdGFbM10pKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnYSc6CisgICAgICAg
ICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVs0XSkgPT0gJ3gnKQorICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfTFZNQVg7CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ2knOgorICAgICAgICAgICAg
ICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbNF0pID09ICduJykKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0xWTUlOOworICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAncyc6CisgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2Vy
KGRhdGFbMV0pID09ICd2JyAmJiB0b0FTQ0lJTG93ZXIoZGF0YVsyXSkgPT0gJ20nKSB7CisgICAg
ICAgICAgICAgICAgc3dpdGNoICh0b0FTQ0lJTG93ZXIoZGF0YVszXSkpIHsKKyAgICAgICAgICAg
ICAgICBjYXNlICdhJzoKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRh
WzRdKSA9PSAneCcpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6
OkNTU19TVk1BWDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
Y2FzZSAnaSc6CisgICAgICAgICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVs0XSkg
PT0gJ24nKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1Nf
U1ZNSU47CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGJyZWFr
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzLmNwcAppbmRleCAxODZkZDJhM2YxMjc4M2UxZTEwY2FlNmU4ZDJiZWY1
MDJlYTJlYWNmLi4wNGUxYzg0Y2I1ZmFiNjgzOGQ0ZTc2NDE5OTBlZTU0NzU4MDMxYTlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVy
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhl
bHBlcnMuY3BwCkBAIC00OTIsNiArNDkyLDE4IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPExlbmd0
aFJhdz4gY29uc3VtZUxlbmd0aFJhd1dpdGhLbm93blRva2VuVHlwZURpbWVuc2lvbihDU1NQCiAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19W
TUlOOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19TVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDoKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfU1ZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOgor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0xWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0xWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19ROgogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCmluZGV4IDE4NzdkY2YxMTZmYWIzNjgxZDZiY2Q2OTk5NzQ1MDBhNGExZDk2ZDAuLjk3
ZmY2NmQxNDliZWZiZmRmNDIxZmE0ZjMwNmJhMDI1NDY1YTQ0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKQEAgLTI4NjAsNiArMjg2MCw5IEBAIHZvaWQgRnJhbWVWaWV3Ojp1bm9ic2N1
cmVkQ29udGVudFNpemVDaGFuZ2VkKCkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHVw
ZGF0ZVRpbGVkQmFja2luZ0FkYXB0aXZlU2l6aW5nKCk7CiAjZW5kaWYKKworICAgIGlmIChhdXRv
KiBkb2N1bWVudCA9IGZyYW1lKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgZG9jdW1lbnQtPnN0eWxl
U2NvcGUoKS5kaWRDaGFuZ2VTdHlsZVNoZWV0RW52aXJvbm1lbnQoKTsKIH0KIAogdm9pZCBGcmFt
ZVZpZXc6OmxvYWRQcm9ncmVzc2luZ1N0YXR1c0NoYW5nZWQoKQpAQCAtMzUzNCw3ICszNTM3LDkg
QEAgdm9pZCBGcmFtZVZpZXc6OnBlcmZvcm1TaXplVG9Db250ZW50QXV0b1NpemUoKQogICAgICAg
ICBkb2N1bWVudC51cGRhdGVMYXlvdXQoKTsKICAgICB9OwogCi0gICAgcmVzZXRPdmVycmlkZGVu
Vmlld3BvcnRXaWR0aEZvckNTU1ZpZXdwb3J0VW5pdHMoKTsKKyAgICByZXNldE92ZXJyaWRkZW5X
aWR0aEZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCk7CisgICAgcmVzZXRPdmVycmlkZGVuV2lk
dGhGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoKTsKKwogICAgIC8vIFN0YXJ0IGZyb20gdGhlIG1p
bmltdW0gc2l6ZSBhbmQgYWxsb3cgaXQgdG8gZ3Jvdy4KICAgICBhdXRvIG1pbkF1dG9TaXplID0g
SW50U2l6ZSB7IDEsIDEgfTsKICAgICByZXNpemUobWluQXV0b1NpemUpOwpAQCAtMzU5NCw3ICsz
NTk5LDggQEAgdm9pZCBGcmFtZVZpZXc6OnBlcmZvcm1TaXplVG9Db250ZW50QXV0b1NpemUoKQog
ICAgICAgICByZXNpemUobmV3U2l6ZS53aWR0aCgpLCBpID8gbmV3U2l6ZS5oZWlnaHQoKSA6IG1p
bkF1dG9TaXplLmhlaWdodCgpKTsKICAgICAgICAgLy8gUHJvdGVjdCB0aGUgY29udGVudCBmcm9t
IGV2ZXJncm93aW5nIGxheW91dC4KICAgICAgICAgYXV0byBwcmVmZXJyZWRWaWV3cG9ydFdpZHRo
ID0gc3RkOjptaW4obmV3U2l6ZS53aWR0aCgpLCBtX2F1dG9TaXplQ29uc3RyYWludC53aWR0aCgp
KTsKLSAgICAgICAgb3ZlcnJpZGVWaWV3cG9ydFdpZHRoRm9yQ1NTVmlld3BvcnRVbml0cyhwcmVm
ZXJyZWRWaWV3cG9ydFdpZHRoKTsKKyAgICAgICAgb3ZlcnJpZGVXaWR0aEZvckNTU0RlZmF1bHRW
aWV3cG9ydFVuaXRzKHByZWZlcnJlZFZpZXdwb3J0V2lkdGgpOworICAgICAgICBvdmVycmlkZVdp
ZHRoRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKHByZWZlcnJlZFZpZXdwb3J0V2lkdGgpOwogICAg
ICAgICAvLyBGb3JjZSB0aGUgc2Nyb2xsYmFyIHN0YXRlIHRvIGF2b2lkIHRoZSBzY3JvbGxiYXIg
Y29kZSBhZGRpbmcgdGhlbSBhbmQgY2F1c2luZyB0aGVtIHRvIGJlIG5lZWRlZC4gRm9yIGV4YW1w
bGUsCiAgICAgICAgIC8vIGEgdmVydGljYWwgc2Nyb2xsYmFyIG1heSBjYXVzZSB0ZXh0IHRvIHdy
YXAgYW5kIHRodXMgaW5jcmVhc2UgdGhlIGhlaWdodCAod2hpY2ggaXMgdGhlIG9ubHkgcmVhc29u
IHRoZSBzY29sbGJhciBpcyBuZWVkZWQpLgogICAgICAgICBzZXRWZXJ0aWNhbFNjcm9sbGJhckxv
Y2soZmFsc2UpOwpAQCAtNDY3MywxMSArNDY3OSwxMyBAQCB2b2lkIEZyYW1lVmlldzo6ZW5hYmxl
QXV0b1NpemVNb2RlKGJvb2wgZW5hYmxlLCBjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSwgQXV0b1Np
egogICAgIHNldE5lZWRzTGF5b3V0QWZ0ZXJWaWV3Q29uZmlndXJhdGlvbkNoYW5nZSgpOwogICAg
IGxheW91dENvbnRleHQoKS5zY2hlZHVsZUxheW91dCgpOwogICAgIGlmIChtX3Nob3VsZEF1dG9T
aXplKSB7Ci0gICAgICAgIG92ZXJyaWRlVmlld3BvcnRXaWR0aEZvckNTU1ZpZXdwb3J0VW5pdHMo
bV9hdXRvU2l6ZUNvbnN0cmFpbnQud2lkdGgoKSk7CisgICAgICAgIG92ZXJyaWRlV2lkdGhGb3JD
U1NEZWZhdWx0Vmlld3BvcnRVbml0cyhtX2F1dG9TaXplQ29uc3RyYWludC53aWR0aCgpKTsKKyAg
ICAgICAgb3ZlcnJpZGVXaWR0aEZvckNTU1NtYWxsVmlld3BvcnRVbml0cyhtX2F1dG9TaXplQ29u
c3RyYWludC53aWR0aCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNsZWFyVmll
d3BvcnRTaXplT3ZlcnJpZGVGb3JDU1NWaWV3cG9ydFVuaXRzKCk7CisgICAgY2xlYXJTaXplT3Zl
cnJpZGVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cygpOworICAgIGNsZWFyU2l6ZU92ZXJyaWRl
Rm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCk7CiAgICAgLy8gU2luY2UgYXV0b3NpemUgbW9kZSBm
b3JjZXMgdGhlIHNjcm9sbGJhciBtb2RlLCBjaGFuZ2UgdGhlbSB0byBiZWluZyBhdXRvLgogICAg
IHNldFZlcnRpY2FsU2Nyb2xsYmFyTG9jayhmYWxzZSk7CiAgICAgc2V0SG9yaXpvbnRhbFNjcm9s
bGJhckxvY2soZmFsc2UpOwpAQCAtNTUwNiw2MCArNTUxNCwzMiBAQCB2b2lkIEZyYW1lVmlldzo6
c2V0Vmlld0V4cG9zZWRSZWN0KHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJl
Y3QpCiAgICAgfQogfQogCi12b2lkIEZyYW1lVmlldzo6Y2xlYXJWaWV3cG9ydFNpemVPdmVycmlk
ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKQotewotICAgIGlmICghbV9vdmVycmlkZVZpZXdwb3J0U2l6
ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9vdmVycmlkZVZpZXdwb3J0U2l6ZSA9IHN0ZDo6
bnVsbG9wdDsKLSAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCkpCi0g
ICAgICAgIGRvY3VtZW50LT5zdHlsZVNjb3BlKCkuZGlkQ2hhbmdlU3R5bGVTaGVldEVudmlyb25t
ZW50KCk7Ci19Ci0KLXZvaWQgRnJhbWVWaWV3OjpzZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9y
dFVuaXRzKEludFNpemUgc2l6ZSkKLXsKLSAgICBvdmVycmlkZVZpZXdwb3J0U2l6ZUZvckNTU1Zp
ZXdwb3J0VW5pdHMoeyBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkgfSk7Ci19Ci0KLXZvaWQg
RnJhbWVWaWV3OjpvdmVycmlkZVZpZXdwb3J0V2lkdGhGb3JDU1NWaWV3cG9ydFVuaXRzKGludCB3
aWR0aCkKLXsKLSAgICBvdmVycmlkZVZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoeyB3
aWR0aCwgbV9vdmVycmlkZVZpZXdwb3J0U2l6ZSA/IG1fb3ZlcnJpZGVWaWV3cG9ydFNpemUtPmhl
aWdodCA6IHN0ZDo6bnVsbG9wdCB9KTsKLX0KLQotdm9pZCBGcmFtZVZpZXc6OnJlc2V0T3ZlcnJp
ZGRlblZpZXdwb3J0V2lkdGhGb3JDU1NWaWV3cG9ydFVuaXRzKCkKLXsKLSAgICBvdmVycmlkZVZp
ZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoeyB7IH0sIG1fb3ZlcnJpZGVWaWV3cG9ydFNp
emUgPyBtX292ZXJyaWRlVmlld3BvcnRTaXplLT5oZWlnaHQgOiBzdGQ6Om51bGxvcHQgfSk7Ci19
Ci0KLXZvaWQgRnJhbWVWaWV3OjpvdmVycmlkZVZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5p
dHMoT3ZlcnJpZGVWaWV3cG9ydFNpemUgc2l6ZSkKLXsKLSAgICBpZiAobV9vdmVycmlkZVZpZXdw
b3J0U2l6ZSAmJiAqbV9vdmVycmlkZVZpZXdwb3J0U2l6ZSA9PSBzaXplKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBtX292ZXJyaWRlVmlld3BvcnRTaXplID0gc2l6ZTsKLQotICAgIGlmIChhdXRv
KiBkb2N1bWVudCA9IGZyYW1lKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgZG9jdW1lbnQtPnN0eWxl
U2NvcGUoKS5kaWRDaGFuZ2VTdHlsZVNoZWV0RW52aXJvbm1lbnQoKTsKLX0KLQotSW50U2l6ZSBG
cmFtZVZpZXc6OnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKSBjb25zdAorSW50U2l6
ZSBGcmFtZVZpZXc6OmNhbGN1bGF0ZVNpemVGb3JDU1NWaWV3cG9ydFVuaXRzT3ZlcnJpZGUoc3Rk
OjpvcHRpb25hbDxPdmVycmlkZVZpZXdwb3J0U2l6ZT4gb3ZlcnJpZGUpIGNvbnN0CiB7CiAgICAg
T3ZlcnJpZGVWaWV3cG9ydFNpemUgdmlld3BvcnRTaXplOwogCi0gICAgaWYgKG1fb3ZlcnJpZGVW
aWV3cG9ydFNpemUpIHsKLSAgICAgICAgdmlld3BvcnRTaXplID0gKm1fb3ZlcnJpZGVWaWV3cG9y
dFNpemU7Ci0gICAgICAgIC8vIGF1dG8tc2l6ZSBvdmVycmlkZXMgdGhlIHdpZHRoIG9ubHksIHNv
IHdlIGNhbid0IGFsd2F5cyBiYWlsIG91dCBlYXJseSBoZXJlLgotICAgICAgICBpZiAodmlld3Bv
cnRTaXplLndpZHRoICYmIHZpZXdwb3J0U2l6ZS5oZWlnaHQpCi0gICAgICAgICAgICByZXR1cm4g
eyAqdmlld3BvcnRTaXplLndpZHRoLCAqdmlld3BvcnRTaXplLmhlaWdodCB9OworICAgIGlmIChv
dmVycmlkZSkKKyAgICAgICAgdmlld3BvcnRTaXplID0gKm92ZXJyaWRlOworCisgICAgaWYgKG1f
ZGVmYXVsdFZpZXdwb3J0U2l6ZU92ZXJyaWRlKSB7CisgICAgICAgIGlmICghdmlld3BvcnRTaXpl
LndpZHRoKQorICAgICAgICAgICAgdmlld3BvcnRTaXplLndpZHRoID0gbV9kZWZhdWx0Vmlld3Bv
cnRTaXplT3ZlcnJpZGUtPndpZHRoOworCisgICAgICAgIGlmICghdmlld3BvcnRTaXplLmhlaWdo
dCkKKyAgICAgICAgICAgIHZpZXdwb3J0U2l6ZS5oZWlnaHQgPSBtX2RlZmF1bHRWaWV3cG9ydFNp
emVPdmVycmlkZS0+aGVpZ2h0OwogICAgIH0KIAorICAgIC8vIGF1dG8tc2l6ZSBvdmVycmlkZXMg
dGhlIHdpZHRoIG9ubHksIHNvIHdlIGNhbid0IGFsd2F5cyBiYWlsIG91dCBlYXJseSBoZXJlLgor
ICAgIGlmICh2aWV3cG9ydFNpemUud2lkdGggJiYgdmlld3BvcnRTaXplLmhlaWdodCkKKyAgICAg
ICAgcmV0dXJuIHsgKnZpZXdwb3J0U2l6ZS53aWR0aCwgKnZpZXdwb3J0U2l6ZS5oZWlnaHQgfTsK
KwogICAgIGlmICh1c2VGaXhlZExheW91dCgpKSB7CiAgICAgICAgIGF1dG8gZml4ZWRMYXlvdXRT
aXplID0gdGhpcy0+Zml4ZWRMYXlvdXRTaXplKCk7CiAgICAgICAgIHZpZXdwb3J0U2l6ZS53aWR0
aCA9IHZpZXdwb3J0U2l6ZS53aWR0aC52YWx1ZV9vcihmaXhlZExheW91dFNpemUud2lkdGgoKSk7
CiAgICAgICAgIHZpZXdwb3J0U2l6ZS5oZWlnaHQgPSB2aWV3cG9ydFNpemUuaGVpZ2h0LnZhbHVl
X29yKGZpeGVkTGF5b3V0U2l6ZS5oZWlnaHQoKSk7CiAgICAgICAgIHJldHVybiB7ICp2aWV3cG9y
dFNpemUud2lkdGgsICp2aWV3cG9ydFNpemUuaGVpZ2h0IH07CiAgICAgfQotICAgIAorCiAgICAg
Ly8gRklYTUU6IHRoZSB2YWx1ZSByZXR1cm5lZCBzaG91bGQgdGFrZSBpbnRvIGFjY291bnQgdGhl
IHZhbHVlIG9mIHRoZSBvdmVyZmxvdwogICAgIC8vIHByb3BlcnR5IG9uIHRoZSByb290IGVsZW1l
bnQuCiAgICAgYXV0byB2aXNpYmxlQ29udGVudFNpemVJbmNsdWRpbmdTY3JvbGxiYXJzID0gdmlz
aWJsZUNvbnRlbnRSZWN0SW5jbHVkaW5nU2Nyb2xsYmFycygpLnNpemUoKTsKQEAgLTU1NjgsNiAr
NTU0OCw5OSBAQCBJbnRTaXplIEZyYW1lVmlldzo6dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRV
bml0cygpIGNvbnN0CiAgICAgcmV0dXJuIHsgKnZpZXdwb3J0U2l6ZS53aWR0aCwgKnZpZXdwb3J0
U2l6ZS5oZWlnaHQgfTsKIH0KIAordm9pZCBGcmFtZVZpZXc6OmNsZWFyU2l6ZU92ZXJyaWRlRm9y
Q1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMoKQoreworICAgIGlmICghbV9kZWZhdWx0Vmlld3BvcnRT
aXplT3ZlcnJpZGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGVmYXVsdFZpZXdwb3J0U2l6
ZU92ZXJyaWRlID0gc3RkOjpudWxsb3B0OworICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGZyYW1l
KCkuZG9jdW1lbnQoKSkKKyAgICAgICAgZG9jdW1lbnQtPnN0eWxlU2NvcGUoKS5kaWRDaGFuZ2VT
dHlsZVNoZWV0RW52aXJvbm1lbnQoKTsKK30KKwordm9pZCBGcmFtZVZpZXc6OnNldFNpemVGb3JD
U1NEZWZhdWx0Vmlld3BvcnRVbml0cyhJbnRTaXplIHNpemUpCit7CisgICAgb3ZlcnJpZGVTaXpl
Rm9yQ1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMoeyBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkg
fSk7Cit9CisKK3ZvaWQgRnJhbWVWaWV3OjpvdmVycmlkZVdpZHRoRm9yQ1NTRGVmYXVsdFZpZXdw
b3J0VW5pdHMoaW50IHdpZHRoKQoreworICAgIG92ZXJyaWRlU2l6ZUZvckNTU0RlZmF1bHRWaWV3
cG9ydFVuaXRzKHsgd2lkdGgsIG1fZGVmYXVsdFZpZXdwb3J0U2l6ZU92ZXJyaWRlID8gbV9kZWZh
dWx0Vmlld3BvcnRTaXplT3ZlcnJpZGUtPmhlaWdodCA6IHN0ZDo6bnVsbG9wdCB9KTsKK30KKwor
dm9pZCBGcmFtZVZpZXc6OnJlc2V0T3ZlcnJpZGRlbldpZHRoRm9yQ1NTRGVmYXVsdFZpZXdwb3J0
VW5pdHMoKQoreworICAgIG92ZXJyaWRlU2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKHsg
eyB9LCBtX2RlZmF1bHRWaWV3cG9ydFNpemVPdmVycmlkZSA/IG1fZGVmYXVsdFZpZXdwb3J0U2l6
ZU92ZXJyaWRlLT5oZWlnaHQgOiBzdGQ6Om51bGxvcHQgfSk7Cit9CisKK3ZvaWQgRnJhbWVWaWV3
OjpvdmVycmlkZVNpemVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cyhPdmVycmlkZVZpZXdwb3J0
U2l6ZSBzaXplKQoreworICAgIGlmIChtX2RlZmF1bHRWaWV3cG9ydFNpemVPdmVycmlkZSAmJiAq
bV9kZWZhdWx0Vmlld3BvcnRTaXplT3ZlcnJpZGUgPT0gc2l6ZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9kZWZhdWx0Vmlld3BvcnRTaXplT3ZlcnJpZGUgPSBzaXplOworCisgICAgaWYgKGF1
dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+c3R5
bGVTY29wZSgpLmRpZENoYW5nZVN0eWxlU2hlZXRFbnZpcm9ubWVudCgpOworfQorCitJbnRTaXpl
IEZyYW1lVmlldzo6c2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gY2FsY3VsYXRlU2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHNPdmVycmlkZShtX2RlZmF1
bHRWaWV3cG9ydFNpemVPdmVycmlkZSk7Cit9CisKK3ZvaWQgRnJhbWVWaWV3OjpjbGVhclNpemVP
dmVycmlkZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpCit7CisgICAgaWYgKCFtX3NtYWxsVmll
d3BvcnRTaXplT3ZlcnJpZGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fc21hbGxWaWV3cG9y
dFNpemVPdmVycmlkZSA9IHN0ZDo6bnVsbG9wdDsKKworICAgIGlmIChhdXRvKiBkb2N1bWVudCA9
IGZyYW1lKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgZG9jdW1lbnQtPnN0eWxlU2NvcGUoKS5kaWRD
aGFuZ2VTdHlsZVNoZWV0RW52aXJvbm1lbnQoKTsKK30KKwordm9pZCBGcmFtZVZpZXc6OnNldFNp
emVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoSW50U2l6ZSBzaXplKQoreworICAgIG92ZXJyaWRl
U2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cyh7IHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQo
KSB9KTsKK30KKwordm9pZCBGcmFtZVZpZXc6Om92ZXJyaWRlV2lkdGhGb3JDU1NTbWFsbFZpZXdw
b3J0VW5pdHMoaW50IHdpZHRoKQoreworICAgIG92ZXJyaWRlU2l6ZUZvckNTU1NtYWxsVmlld3Bv
cnRVbml0cyh7IHdpZHRoLCBtX3NtYWxsVmlld3BvcnRTaXplT3ZlcnJpZGUgPyBtX3NtYWxsVmll
d3BvcnRTaXplT3ZlcnJpZGUtPmhlaWdodCA6IHN0ZDo6bnVsbG9wdCB9KTsKK30KKwordm9pZCBG
cmFtZVZpZXc6OnJlc2V0T3ZlcnJpZGRlbldpZHRoRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCkK
K3sKKyAgICBvdmVycmlkZVNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoeyB7IH0sIG1fc21h
bGxWaWV3cG9ydFNpemVPdmVycmlkZSA/IG1fc21hbGxWaWV3cG9ydFNpemVPdmVycmlkZS0+aGVp
Z2h0IDogc3RkOjpudWxsb3B0IH0pOworfQorCit2b2lkIEZyYW1lVmlldzo6b3ZlcnJpZGVTaXpl
Rm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKE92ZXJyaWRlVmlld3BvcnRTaXplIHNpemUpCit7Cisg
ICAgaWYgKG1fc21hbGxWaWV3cG9ydFNpemVPdmVycmlkZSA9PSBzaXplKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX3NtYWxsVmlld3BvcnRTaXplT3ZlcnJpZGUgPSBzaXplOworCisgICAgaWYg
KGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+
c3R5bGVTY29wZSgpLmRpZENoYW5nZVN0eWxlU2hlZXRFbnZpcm9ubWVudCgpOworfQorCitJbnRT
aXplIEZyYW1lVmlldzo6c2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGNhbGN1bGF0ZVNpemVGb3JDU1NWaWV3cG9ydFVuaXRzT3ZlcnJpZGUobV9zbWFs
bFZpZXdwb3J0U2l6ZU92ZXJyaWRlKTsKK30KKworSW50U2l6ZSBGcmFtZVZpZXc6OnNpemVGb3JD
U1NMYXJnZVZpZXdwb3J0VW5pdHMoKSBjb25zdAoreworICAgIHJldHVybiBzaXplRm9yQ1NTRGVm
YXVsdFZpZXdwb3J0VW5pdHMoKTsKK30KKworSW50U2l6ZSBGcmFtZVZpZXc6OnNpemVGb3JDU1NE
eW5hbWljVmlld3BvcnRVbml0cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHZpc2libGVDb250ZW50
UmVjdEluY2x1ZGluZ1Njcm9sbGJhcnMoKS5zaXplKCk7Cit9CisKIGJvb2wgRnJhbWVWaWV3Ojpz
aG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKIHsKICAgICByZXR1cm4g
cmVuZGVyVmlldygpICYmIHJlbmRlclZpZXcoKS0+c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJh
ck9uTGVmdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggZDlkNDhhZjVmN2QxNDk3N2Yz
YTUwZGU1NjU5OTNlZGUzZDUyYTMxOC4uNmNmMmU4ZTAyNWU5NWMyMjdjMDRlNGRhMGRlYjI2N2Rj
NDhiYTQ1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC0yMjgsOSArMjI4LDE2IEBAIHB1
YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRqdXN0Vmlld1NpemUoKTsKIAotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyhJ
bnRTaXplKTsKLSAgICB2b2lkIGNsZWFyVmlld3BvcnRTaXplT3ZlcnJpZGVGb3JDU1NWaWV3cG9y
dFVuaXRzKCk7Ci0gICAgSW50U2l6ZSB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkg
Y29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTaXplRm9yQ1NTRGVmYXVsdFZpZXdw
b3J0VW5pdHMoSW50U2l6ZSk7CisgICAgdm9pZCBjbGVhclNpemVPdmVycmlkZUZvckNTU0RlZmF1
bHRWaWV3cG9ydFVuaXRzKCk7CisgICAgSW50U2l6ZSBzaXplRm9yQ1NTRGVmYXVsdFZpZXdwb3J0
VW5pdHMoKSBjb25zdDsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2l6ZUZvckNTU1Nt
YWxsVmlld3BvcnRVbml0cyhJbnRTaXplKTsKKyAgICB2b2lkIGNsZWFyU2l6ZU92ZXJyaWRlRm9y
Q1NTU21hbGxWaWV3cG9ydFVuaXRzKCk7CisgICAgSW50U2l6ZSBzaXplRm9yQ1NTU21hbGxWaWV3
cG9ydFVuaXRzKCkgY29uc3Q7CisKKyAgICBJbnRTaXplIHNpemVGb3JDU1NMYXJnZVZpZXdwb3J0
VW5pdHMoKSBjb25zdDsKKyAgICBJbnRTaXplIHNpemVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0
cygpIGNvbnN0OwogCiAgICAgSW50UmVjdCB3aW5kb3dDbGlwUmVjdCgpIGNvbnN0IGZpbmFsOwog
ICAgIFdFQkNPUkVfRVhQT1JUIEludFJlY3Qgd2luZG93Q2xpcFJlY3RGb3JGcmFtZU93bmVyKGNv
bnN0IEhUTUxGcmFtZU93bmVyRWxlbWVudCosIGJvb2wgY2xpcFRvTGF5ZXJDb250ZW50cykgY29u
c3Q7CkBAIC04NDgsOSArODU1LDE1IEBAIHByaXZhdGU6CiAKICAgICAgICAgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IE92ZXJyaWRlVmlld3BvcnRTaXplJiByaHMpIGNvbnN0IHsgcmV0dXJuIHJocy53
aWR0aCA9PSB3aWR0aCAmJiByaHMuaGVpZ2h0ID09IGhlaWdodDsgfQogICAgIH07Ci0gICAgdm9p
ZCBvdmVycmlkZVZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoT3ZlcnJpZGVWaWV3cG9y
dFNpemUpOwotICAgIHZvaWQgb3ZlcnJpZGVWaWV3cG9ydFdpZHRoRm9yQ1NTVmlld3BvcnRVbml0
cyhpbnQpOwotICAgIHZvaWQgcmVzZXRPdmVycmlkZGVuVmlld3BvcnRXaWR0aEZvckNTU1ZpZXdw
b3J0VW5pdHMoKTsKKyAgICBJbnRTaXplIGNhbGN1bGF0ZVNpemVGb3JDU1NWaWV3cG9ydFVuaXRz
T3ZlcnJpZGUoc3RkOjpvcHRpb25hbDxPdmVycmlkZVZpZXdwb3J0U2l6ZT4pIGNvbnN0OworCisg
ICAgdm9pZCBvdmVycmlkZVNpemVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cyhPdmVycmlkZVZp
ZXdwb3J0U2l6ZSk7CisgICAgdm9pZCBvdmVycmlkZVdpZHRoRm9yQ1NTRGVmYXVsdFZpZXdwb3J0
VW5pdHMoaW50KTsKKyAgICB2b2lkIHJlc2V0T3ZlcnJpZGRlbldpZHRoRm9yQ1NTRGVmYXVsdFZp
ZXdwb3J0VW5pdHMoKTsKKworICAgIHZvaWQgb3ZlcnJpZGVTaXplRm9yQ1NTU21hbGxWaWV3cG9y
dFVuaXRzKE92ZXJyaWRlVmlld3BvcnRTaXplKTsKKyAgICB2b2lkIG92ZXJyaWRlV2lkdGhGb3JD
U1NTbWFsbFZpZXdwb3J0VW5pdHMoaW50KTsKKyAgICB2b2lkIHJlc2V0T3ZlcnJpZGRlbldpZHRo
Rm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCk7CiAKICAgICB2b2lkIGRpZEZpbmlzaFByb2hpYml0
aW5nU2Nyb2xsaW5nV2hlbkNoYW5naW5nQ29udGVudFNpemUoKSBmaW5hbDsKIApAQCAtOTE5LDcg
KzkzMiw4IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxJbnRTaXplPiBtX2N1c3RvbVNp
emVGb3JSZXNpemVFdmVudDsKICNlbmRpZgogCi0gICAgc3RkOjpvcHRpb25hbDxPdmVycmlkZVZp
ZXdwb3J0U2l6ZT4gbV9vdmVycmlkZVZpZXdwb3J0U2l6ZTsKKyAgICBzdGQ6Om9wdGlvbmFsPE92
ZXJyaWRlVmlld3BvcnRTaXplPiBtX2RlZmF1bHRWaWV3cG9ydFNpemVPdmVycmlkZTsKKyAgICBz
dGQ6Om9wdGlvbmFsPE92ZXJyaWRlVmlld3BvcnRTaXplPiBtX3NtYWxsVmlld3BvcnRTaXplT3Zl
cnJpZGU7CiAKICAgICAvLyBUaGUgdmlldyBzaXplIHdoZW4gYXV0b3NpemluZy4KICAgICBJbnRT
aXplIG1fYXV0b1NpemVDb25zdHJhaW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwCmluZGV4IDhhMDRlZDkwMGU2NGJkYmZiYmZmY2ViNzIzODAzMDZmMGRhNzljZTAuLjdl
ZDNkY2NlNjI1MDMwMDg0Njg4ZTI3YzZlMGFjOWU4YzVkOGMyMDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTY5Nyw5ICs2OTcsMjQgQEAgZmxvYXQgUmVuZGVy
Vmlldzo6em9vbUZhY3RvcigpIGNvbnN0CiAgICAgcmV0dXJuIGZyYW1lVmlldygpLmZyYW1lKCku
cGFnZVpvb21GYWN0b3IoKTsKIH0KIAotSW50U2l6ZSBSZW5kZXJWaWV3Ojp2aWV3cG9ydFNpemVG
b3JDU1NWaWV3cG9ydFVuaXRzKCkgY29uc3QKK0ludFNpemUgUmVuZGVyVmlldzo6c2l6ZUZvckNT
U0RlZmF1bHRWaWV3cG9ydFVuaXRzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZnJhbWVWaWV3KCku
dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpOworICAgIHJldHVybiBmcmFtZVZpZXco
KS5zaXplRm9yQ1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMoKTsKK30KKworSW50U2l6ZSBSZW5kZXJW
aWV3OjpzaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
ZnJhbWVWaWV3KCkuc2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpOworfQorCitJbnRTaXpl
IFJlbmRlclZpZXc6OnNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoKSBjb25zdAoreworICAg
IHJldHVybiBmcmFtZVZpZXcoKS5zaXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKCk7Cit9CisK
K0ludFNpemUgUmVuZGVyVmlldzo6c2l6ZUZvckNTU0R5bmFtaWNWaWV3cG9ydFVuaXRzKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gZnJhbWVWaWV3KCkuc2l6ZUZvckNTU0R5bmFtaWNWaWV3cG9ydFVu
aXRzKCk7CiB9CiAKIE5vZGUqIFJlbmRlclZpZXc6Om5vZGVGb3JIaXRUZXN0KCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCmluZGV4IDQ4ZTM2NzkzMDM1NmUzNDhhOWZi
YjIxZDNkNTcwMjRlMTUzNDM1YTYuLmVkMzRmMjFkYjFiZmI1MWZjOTdjMzc4NDlhODhiMGE1YTE3
YzEyODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaApAQCAtMTQzLDcgKzE0
MywxMCBAQCBwdWJsaWM6CiAKICAgICBib29sIHNob3VsZFBhaW50QmFzZUJhY2tncm91bmQoKSBj
b25zdDsKIAotICAgIEludFNpemUgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpIGNv
bnN0OworICAgIEludFNpemUgc2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCkgY29uc3Q7
CisgICAgSW50U2l6ZSBzaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCkgY29uc3Q7CisgICAg
SW50U2l6ZSBzaXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKCkgY29uc3Q7CisgICAgSW50U2l6
ZSBzaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMoKSBjb25zdDsKIAogICAgIGJvb2wgaGFz
UXVvdGVzTmVlZGluZ1VwZGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUXVvdGVzTmVlZGluZ1Vw
ZGF0ZTsgfQogICAgIHZvaWQgc2V0SGFzUXVvdGVzTmVlZGluZ1VwZGF0ZShib29sIGIpIHsgbV9o
YXNRdW90ZXNOZWVkaW5nVXBkYXRlID0gYjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU0NvbXBsZXRpb25zLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU0NvbXBsZXRpb25zLmpzCmluZGV4
IDJhMWY4ZTRlNDM0YWExOTczNjUzOTdjMmQ1NDkyNDQyYjNhMGIxMTkuLmJkYThhOTI5Y2M3MmJi
OTRlNGZhYTFhZGQxMGNmOGU1OWVmZjkxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NDb21wbGV0aW9ucy5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTQ29tcGxldGlvbnMuanMKQEAg
LTM2OSwxNSArMzY5LDI3IEBAIFdJLkNTU0NvbXBsZXRpb25zLmNzc05hbWVDb21wbGV0aW9ucyA9
IG51bGw7CiBXSS5DU1NDb21wbGV0aW9ucy5sZW5ndGhVbml0cyA9IG5ldyBTZXQoWwogICAgICJj
aCIsCiAgICAgImNtIiwKKyAgICAiZHZoIiwKKyAgICAiZHZtYXgiLAorICAgICJkdm1pbiIsCisg
ICAgImR2dyIsCiAgICAgImVtIiwKICAgICAiZXgiLAogICAgICJpbiIsCisgICAgImx2aCIsCisg
ICAgImx2bWF4IiwKKyAgICAibHZtaW4iLAorICAgICJsdnciLAogICAgICJtbSIsCiAgICAgInBj
IiwKICAgICAicHQiLAogICAgICJweCIsCiAgICAgInEiLAogICAgICJyZW0iLAorICAgICJzdmgi
LAorICAgICJzdm1heCIsCisgICAgInN2bWluIiwKKyAgICAic3Z3IiwKICAgICAidmgiLAogICAg
ICJ2bWF4IiwKICAgICAidm1pbiIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IGI5MTlkZDk3OGZkNmI0NWUyMjgw
OTRmMTlhNzQ3ZTA4ZTdmYzk0ODkuLjJlYWFjYjZmZDAyMzkxYTAzNWEwMGVjOTgxMmE5OWQ0NGE5
MGI2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdJbnRlcm5hbC5oCkBAIC0xNTUsNiArMTU1LDggQEAgY2xhc3MgVmlld0dlc3R1cmVD
b250cm9sbGVyOwogCiAgICAgc3RkOjpvcHRpb25hbDxDR1NpemU+IF92aWV3TGF5b3V0U2l6ZU92
ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRTaXplPiBfbGFzdFNlbnRW
aWV3TGF5b3V0U2l6ZTsKKyAgICBzdGQ6Om9wdGlvbmFsPENHU2l6ZT4gX21pbmltdW1Vbm9ic2N1
cmVkU2l6ZU92ZXJyaWRlOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRTaXplPiBf
bGFzdFNlbnRNaW5pbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgc3RkOjpvcHRpb25hbDxDR1NpemU+
IF9tYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkZsb2F0U2l6ZT4gX2xhc3RTZW50TWF4aW11bVVub2JzY3VyZWRTaXplOwogICAgIENHUmVj
dCBfaW5wdXRWaWV3Qm91bmRzSW5XaW5kb3c7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCBjYjdmMzM0M2ZkZWUwMjA1
YWUwY2UyNjZjZjgzMTc5ZjExZGFkMDQxLi4yOGE0OTcxY2U4MDUzYWU0YmM5NDI1ZmQ1ZjMyY2Y4
MzU1YmZiNzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTQ5Miw3ICs0OTIsOCBAQCBmb3IgdGhpcyBwcm9wZXJ0
eS4KIAogLSAodm9pZClfc25hcHNob3RSZWN0OihDR1JlY3QpcmVjdEluVmlld0Nvb3JkaW5hdGVz
IGludG9JbWFnZU9mV2lkdGg6KENHRmxvYXQpaW1hZ2VXaWR0aCBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCheKShDR0ltYWdlUmVmKSljb21wbGV0aW9uSGFuZGxlcjsKIAotLSAodm9pZClfb3ZlcnJp
ZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOihDR1NpemUpbWluaW11bUxh
eW91dFNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6KENHU2l6ZSltYXhpbXVtVW5v
YnNjdXJlZFNpemVPdmVycmlkZSBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsKKy0gKHZvaWQp
X292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTooQ0dTaXplKW1p
bmltdW1MYXlvdXRTaXplIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOihDR1NpemUpbWF4
aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNF
TUVOVCgiX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTptaW5p
bXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTptYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZToi
LCBpb3MoOV8wLCBXS19JT1NfVEJBKSk7CistICh2b2lkKV9vdmVycmlkZUxheW91dFBhcmFtZXRl
cnNXaXRoTWluaW11bUxheW91dFNpemU6KENHU2l6ZSltaW5pbXVtTGF5b3V0U2l6ZSBtaW5pbXVt
VW5vYnNjdXJlZFNpemVPdmVycmlkZTooQ0dTaXplKW1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJy
aWRlIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOihDR1NpemUpbWF4aW11bVVub2JzY3Vy
ZWRTaXplT3ZlcnJpZGUgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9p
ZClfY2xlYXJPdmVycmlkZUxheW91dFBhcmFtZXRlcnMgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEu
MCkpOwogLSAodm9pZClfb3ZlcnJpZGVWaWV3cG9ydFdpdGhBcmd1bWVudHM6KE5TRGljdGlvbmFy
eTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqKWFyZ3VtZW50cyBXS19BUElfQVZBSUxBQkxFKGlv
cygxMy4wKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3Mv
V0tXZWJWaWV3SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZp
ZXdJT1MubW0KaW5kZXggMjg2NmM1OGIyZTc1ZWI3MGI5ZDBlZjczM2EzZGFmY2FhZjgxYjRkNS4u
YjY5ZmVmNmE0OTYxNGZkODJhZmU4M2UzMDZlNTcxYzg1ZTAxZGU1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KQEAgLTcwMiw2ICs3MDIs
NyBAQCAtICh2b2lkKV9wcm9jZXNzV2lsbFN3YXBPckRpZEV4aXQKICAgICBfZGlkRGVmZXJVcGRh
dGVWaXNpYmxlQ29udGVudFJlY3RzRm9yVW5zdGFibGVTY3JvbGxWaWV3ID0gTk87CiAgICAgX2N1
cnJlbnRseUFkanVzdGluZ1Njcm9sbFZpZXdJbnNldHNGb3JLZXlib2FyZCA9IE5POwogICAgIF9s
YXN0U2VudFZpZXdMYXlvdXRTaXplID0gc3RkOjpudWxsb3B0OworICAgIF9sYXN0U2VudE1pbmlt
dW1Vbm9ic2N1cmVkU2l6ZSA9IHN0ZDo6bnVsbG9wdDsKICAgICBfbGFzdFNlbnRNYXhpbXVtVW5v
YnNjdXJlZFNpemUgPSBzdGQ6Om51bGxvcHQ7CiAgICAgX2xhc3RTZW50RGV2aWNlT3JpZW50YXRp
b24gPSBzdGQ6Om51bGxvcHQ7CiAKQEAgLTE5MDMsNiArMTkwNCwxNSBAQCAtICh2b2lkKV9kaXNw
YXRjaFNldFZpZXdMYXlvdXRTaXplOihXZWJDb3JlOjpGbG9hdFNpemUpdmlld0xheW91dFNpemUK
ICAgICBfbGFzdFNlbnRWaWV3TGF5b3V0U2l6ZSA9IHZpZXdMYXlvdXRTaXplOwogfQogCistICh2
b2lkKV9kaXNwYXRjaFNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZTooV2ViQ29yZTo6RmxvYXRTaXpl
KW1pbmltdW1Vbm9ic2N1cmVkU2l6ZQoreworICAgIGlmIChfbGFzdFNlbnRNaW5pbXVtVW5vYnNj
dXJlZFNpemUgJiYgQ0dTaXplRXF1YWxUb1NpemUoX2xhc3RTZW50TWluaW11bVVub2JzY3VyZWRT
aXplLnZhbHVlKCksIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZSkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIF9wYWdlLT5zZXRNaW5pbXVtVW5vYnNjdXJlZFNpemUobWluaW11bVVub2JzY3VyZWRTaXpl
KTsKKyAgICBfbGFzdFNlbnRNaW5pbXVtVW5vYnNjdXJlZFNpemUgPSBtaW5pbXVtVW5vYnNjdXJl
ZFNpemU7Cit9CisKIC0gKHZvaWQpX2Rpc3BhdGNoU2V0TWF4aW11bVVub2JzY3VyZWRTaXplOihX
ZWJDb3JlOjpGbG9hdFNpemUpbWF4aW11bVVub2JzY3VyZWRTaXplCiB7CiAgICAgaWYgKF9sYXN0
U2VudE1heGltdW1Vbm9ic2N1cmVkU2l6ZSAmJiBDR1NpemVFcXVhbFRvU2l6ZShfbGFzdFNlbnRN
YXhpbXVtVW5vYnNjdXJlZFNpemUudmFsdWUoKSwgbWF4aW11bVVub2JzY3VyZWRTaXplKSkKQEAg
LTE5MzgsNiArMTk0OCw4IEBAIC0gKHZvaWQpX2ZyYW1lT3JCb3VuZHNDaGFuZ2VkCiAgICAgaWYg
KF9keW5hbWljVmlld3BvcnRVcGRhdGVNb2RlID09IFdlYktpdDo6RHluYW1pY1ZpZXdwb3J0VXBk
YXRlTW9kZTo6Tm90UmVzaXppbmcpIHsKICAgICAgICAgaWYgKCFfdmlld0xheW91dFNpemVPdmVy
cmlkZSkKICAgICAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldFZpZXdMYXlvdXRTaXplOltzZWxm
IGFjdGl2ZVZpZXdMYXlvdXRTaXplOnNlbGYuYm91bmRzXV07CisgICAgICAgIGlmICghX21pbmlt
dW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlKQorICAgICAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0
TWluaW11bVVub2JzY3VyZWRTaXplOldlYkNvcmU6OkZsb2F0U2l6ZShib3VuZHMuc2l6ZSldOwog
ICAgICAgICBpZiAoIV9tYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSkKICAgICAgICAgICAg
IFtzZWxmIF9kaXNwYXRjaFNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZTpXZWJDb3JlOjpGbG9hdFNp
emUoYm91bmRzLnNpemUpXTsKIApAQCAtMjI1OCw2ICsyMjcwLDExIEBAIC0gKHZvaWQpX2RpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lCiAgICAgICAgIF9nZXN0dXJlQ29udHJvbGxl
ci0+ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWUoKTsKIH0KIAorc3RhdGljIFdl
YkNvcmU6OkZsb2F0U2l6ZSBhY3RpdmVNaW5pbXVtVW5vYnNjdXJlZFNpemUoV0tXZWJWaWV3ICp3
ZWJWaWV3LCBjb25zdCBDR1JlY3QmIGJvdW5kcykKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6Rmxv
YXRTaXplKHdlYlZpZXctPl9taW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZS52YWx1ZV9vcihi
b3VuZHMuc2l6ZSkpOworfQorCiBzdGF0aWMgV2ViQ29yZTo6RmxvYXRTaXplIGFjdGl2ZU1heGlt
dW1Vbm9ic2N1cmVkU2l6ZShXS1dlYlZpZXcgKndlYlZpZXcsIGNvbnN0IENHUmVjdCYgYm91bmRz
KQogewogICAgIHJldHVybiBXZWJDb3JlOjpGbG9hdFNpemUod2ViVmlldy0+X21heGltdW1Vbm9i
c2N1cmVkU2l6ZU92ZXJyaWRlLnZhbHVlX29yKGJvdW5kcy5zaXplKSk7CkBAIC0yMzQ3LDEyICsy
MzY0LDE2IEBAIC0gKHZvaWQpX2RpZENvbXBsZXRlQW5pbWF0ZWRSZXNpemUKIAogICAgIENHUmVj
dCBuZXdCb3VuZHMgPSBzZWxmLmJvdW5kczsKICAgICBhdXRvIG5ld1ZpZXdMYXlvdXRTaXplID0g
W3NlbGYgYWN0aXZlVmlld0xheW91dFNpemU6bmV3Qm91bmRzXTsKKyAgICBhdXRvIG5ld01pbmlt
dW1Vbm9ic2N1cmVkU2l6ZSA9IGFjdGl2ZU1pbmltdW1Vbm9ic2N1cmVkU2l6ZShzZWxmLCBuZXdC
b3VuZHMpOwogICAgIGF1dG8gbmV3TWF4aW11bVVub2JzY3VyZWRTaXplID0gYWN0aXZlTWF4aW11
bVVub2JzY3VyZWRTaXplKHNlbGYsIG5ld0JvdW5kcyk7CiAgICAgaW50MzJfdCBuZXdPcmllbnRh
dGlvbiA9IGFjdGl2ZU9yaWVudGF0aW9uKHNlbGYpOwogCiAgICAgaWYgKCFfbGFzdFNlbnRWaWV3
TGF5b3V0U2l6ZSB8fCBuZXdWaWV3TGF5b3V0U2l6ZSAhPSBfbGFzdFNlbnRWaWV3TGF5b3V0U2l6
ZS52YWx1ZSgpKQogICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRWaWV3TGF5b3V0U2l6ZTpuZXdW
aWV3TGF5b3V0U2l6ZV07CiAKKyAgICBpZiAoIV9sYXN0U2VudE1pbmltdW1Vbm9ic2N1cmVkU2l6
ZSB8fCBuZXdNaW5pbXVtVW5vYnNjdXJlZFNpemUgIT0gX2xhc3RTZW50TWluaW11bVVub2JzY3Vy
ZWRTaXplLnZhbHVlKCkpCisgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1pbmltdW1Vbm9ic2N1
cmVkU2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUobmV3TWluaW11bVVub2JzY3VyZWRTaXplKV07CisK
ICAgICBpZiAoIV9sYXN0U2VudE1heGltdW1Vbm9ic2N1cmVkU2l6ZSB8fCBuZXdNYXhpbXVtVW5v
YnNjdXJlZFNpemUgIT0gX2xhc3RTZW50TWF4aW11bVVub2JzY3VyZWRTaXplLnZhbHVlKCkpCiAg
ICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZTpXZWJDb3JlOjpG
bG9hdFNpemUobmV3TWF4aW11bVVub2JzY3VyZWRTaXplKV07CiAKQEAgLTI3MDcsNiArMjcyOCwy
MSBAQCAtICh2b2lkKV9zZXRWaWV3TGF5b3V0U2l6ZU92ZXJyaWRlOihDR1NpemUpdmlld0xheW91
dFNpemVPdmVycmlkZQogICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRWaWV3TGF5b3V0U2l6ZTpX
ZWJDb3JlOjpGbG9hdFNpemUodmlld0xheW91dFNpemVPdmVycmlkZSldOwogfQogCistIChDR1Np
emUpX21pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlCit7CisgICAgQVNTRVJUKF9taW5pbXVt
VW5vYnNjdXJlZFNpemVPdmVycmlkZSk7CisgICAgcmV0dXJuIF9taW5pbXVtVW5vYnNjdXJlZFNp
emVPdmVycmlkZS52YWx1ZV9vcihDR1NpemVaZXJvKTsKK30KKworLSAodm9pZClfc2V0TWluaW11
bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6KENHU2l6ZSlzaXplCit7CisgICAgQVNTRVJUKHNpemUu
d2lkdGggPD0gc2VsZi5ib3VuZHMuc2l6ZS53aWR0aCAmJiBzaXplLmhlaWdodCA8PSBzZWxmLmJv
dW5kcy5zaXplLmhlaWdodCk7CisgICAgX21pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlID0g
c2l6ZTsKKworICAgIGlmIChfZHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZSA9PSBXZWJLaXQ6OkR5
bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGU6Ok5vdFJlc2l6aW5nKQorICAgICAgICBbc2VsZiBfZGlz
cGF0Y2hTZXRNaW5pbXVtVW5vYnNjdXJlZFNpemU6V2ViQ29yZTo6RmxvYXRTaXplKHNpemUpXTsK
K30KKwogLy8gRGVwcmVjYXRlZCBTUEkKIC0gKENHU2l6ZSlfbWF4aW11bVVub2JzY3VyZWRTaXpl
T3ZlcnJpZGUKIHsKQEAgLTMwMzEsNiArMzA2Nyw3IEBAIC0gKHZvaWQpX2JlZ2luQW5pbWF0ZWRS
ZXNpemVXaXRoVXBkYXRlczoodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sKICAgICAgICAgb2xk
T2JzY3VyZWRJbnNldHMgPSBfb2JzY3VyZWRJbnNldHM7CiAgICAgfQogICAgIGF1dG8gb2xkVmll
d0xheW91dFNpemUgPSBbc2VsZiBhY3RpdmVWaWV3TGF5b3V0U2l6ZTpvbGRCb3VuZHNdOworICAg
IGF1dG8gb2xkTWluaW11bVVub2JzY3VyZWRTaXplID0gYWN0aXZlTWluaW11bVVub2JzY3VyZWRT
aXplKHNlbGYsIG9sZEJvdW5kcyk7CiAgICAgYXV0byBvbGRNYXhpbXVtVW5vYnNjdXJlZFNpemUg
PSBhY3RpdmVNYXhpbXVtVW5vYnNjdXJlZFNpemUoc2VsZiwgb2xkQm91bmRzKTsKIAogICAgIHVw
ZGF0ZUJsb2NrKCk7CkBAIC0zMDM4LDYgKzMwNzUsNyBAQCAtICh2b2lkKV9iZWdpbkFuaW1hdGVk
UmVzaXplV2l0aFVwZGF0ZXM6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrCiAgICAgQ0dSZWN0
IG5ld0JvdW5kcyA9IHNlbGYuYm91bmRzOwogICAgIGF1dG8gbmV3TWluaW11bUVmZmVjdGl2ZURl
dmljZVdpZHRoID0gW3NlbGYgX21pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aF07CiAgICAgYXV0
byBuZXdWaWV3TGF5b3V0U2l6ZSA9IFtzZWxmIGFjdGl2ZVZpZXdMYXlvdXRTaXplOm5ld0JvdW5k
c107CisgICAgYXV0byBuZXdNaW5pbXVtVW5vYnNjdXJlZFNpemUgPSBhY3RpdmVNaW5pbXVtVW5v
YnNjdXJlZFNpemUoc2VsZiwgbmV3Qm91bmRzKTsKICAgICBhdXRvIG5ld01heGltdW1Vbm9ic2N1
cmVkU2l6ZSA9IGFjdGl2ZU1heGltdW1Vbm9ic2N1cmVkU2l6ZShzZWxmLCBuZXdCb3VuZHMpOwog
ICAgIGludDMyX3QgbmV3T3JpZW50YXRpb24gPSBhY3RpdmVPcmllbnRhdGlvbihzZWxmKTsKICAg
ICBVSUVkZ2VJbnNldHMgbmV3T2JzY3VyZWRJbnNldHMgPSBfb2JzY3VyZWRJbnNldHM7CkBAIC0z
MDU5LDYgKzMwOTcsOCBAQCAtICh2b2lkKV9iZWdpbkFuaW1hdGVkUmVzaXplV2l0aFVwZGF0ZXM6
KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrCiAgICAgICAgIFtzZWxmIF9mcmFtZU9yQm91bmRz
Q2hhbmdlZF07CiAgICAgICAgIGlmIChfdmlld0xheW91dFNpemVPdmVycmlkZSkKICAgICAgICAg
ICAgIFtzZWxmIF9kaXNwYXRjaFNldFZpZXdMYXlvdXRTaXplOm5ld1ZpZXdMYXlvdXRTaXplXTsK
KyAgICAgICAgaWYgKF9taW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSkKKyAgICAgICAgICAg
IFtzZWxmIF9kaXNwYXRjaFNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZTpXZWJDb3JlOjpGbG9hdFNp
emUobmV3TWluaW11bVVub2JzY3VyZWRTaXplKV07CiAgICAgICAgIGlmIChfbWF4aW11bVVub2Jz
Y3VyZWRTaXplT3ZlcnJpZGUpCiAgICAgICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRNYXhpbXVt
VW5vYnNjdXJlZFNpemU6V2ViQ29yZTo6RmxvYXRTaXplKG5ld01heGltdW1Vbm9ic2N1cmVkU2l6
ZSldOwogICAgICAgICBpZiAoX292ZXJyaWRlc0ludGVyZmFjZU9yaWVudGF0aW9uKQpAQCAtMzA2
OSw2ICszMTA5LDcgQEAgLSAodm9pZClfYmVnaW5BbmltYXRlZFJlc2l6ZVdpdGhVcGRhdGVzOih2
b2lkICheKSh2b2lkKSl1cGRhdGVCbG9jawogCiAgICAgaWYgKENHUmVjdEVxdWFsVG9SZWN0KG9s
ZEJvdW5kcywgbmV3Qm91bmRzKQogICAgICAgICAmJiBvbGRWaWV3TGF5b3V0U2l6ZSA9PSBuZXdW
aWV3TGF5b3V0U2l6ZQorICAgICAgICAmJiBvbGRNaW5pbXVtVW5vYnNjdXJlZFNpemUgPT0gbmV3
TWluaW11bVVub2JzY3VyZWRTaXplCiAgICAgICAgICYmIG9sZE1heGltdW1Vbm9ic2N1cmVkU2l6
ZSA9PSBuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUKICAgICAgICAgJiYgb2xkT3JpZW50YXRpb24g
PT0gbmV3T3JpZW50YXRpb24KICAgICAgICAgJiYgb2xkTWluaW11bUVmZmVjdGl2ZURldmljZVdp
ZHRoID09IG5ld01pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aApAQCAtMzEzNiwxMCArMzE3Nywx
MSBAQCAtICh2b2lkKV9iZWdpbkFuaW1hdGVkUmVzaXplV2l0aFVwZGF0ZXM6KHZvaWQgKF4pKHZv
aWQpKXVwZGF0ZUJsb2NrCiAgICAgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQgdW5vYnNjdXJlZFNh
ZmVBcmVhSW5zZXRzRXh0ZW50KHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cy50b3AsIHVub2JzY3Vy
ZWRTYWZlQXJlYUluc2V0cy5yaWdodCwgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLmJvdHRvbSwg
dW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLmxlZnQpOwogCiAgICAgX2xhc3RTZW50Vmlld0xheW91
dFNpemUgPSBuZXdWaWV3TGF5b3V0U2l6ZTsKKyAgICBfbGFzdFNlbnRNaW5pbXVtVW5vYnNjdXJl
ZFNpemUgPSBuZXdNaW5pbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgX2xhc3RTZW50TWF4aW11bVVu
b2JzY3VyZWRTaXplID0gbmV3TWF4aW11bVVub2JzY3VyZWRTaXplOwogICAgIF9sYXN0U2VudERl
dmljZU9yaWVudGF0aW9uID0gbmV3T3JpZW50YXRpb247CiAKLSAgICBfcGFnZS0+ZHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZShuZXdWaWV3TGF5b3V0U2l6ZSwgbmV3TWF4aW11bVVub2JzY3VyZWRT
aXplLCB2aXNpYmxlUmVjdEluQ29udGVudENvb3JkaW5hdGVzLCB1bm9ic2N1cmVkUmVjdEluQ29u
dGVudENvb3JkaW5hdGVzLCBmdXR1cmVVbm9ic2N1cmVkUmVjdEluU2VsZkNvb3JkaW5hdGVzLCB1
bm9ic2N1cmVkU2FmZUFyZWFJbnNldHNFeHRlbnQsIHRhcmdldFNjYWxlLCBuZXdPcmllbnRhdGlv
biwgbmV3TWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCArK19jdXJyZW50RHluYW1pY1ZpZXdw
b3J0U2l6ZVVwZGF0ZUlEKTsKKyAgICBfcGFnZS0+ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShu
ZXdWaWV3TGF5b3V0U2l6ZSwgbmV3TWluaW11bVVub2JzY3VyZWRTaXplLCBuZXdNYXhpbXVtVW5v
YnNjdXJlZFNpemUsIHZpc2libGVSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMsIHVub2JzY3VyZWRS
ZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMsIGZ1dHVyZVVub2JzY3VyZWRSZWN0SW5TZWxmQ29vcmRp
bmF0ZXMsIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0c0V4dGVudCwgdGFyZ2V0U2NhbGUsIG5ld09y
aWVudGF0aW9uLCBuZXdNaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsICsrX2N1cnJlbnREeW5h
bWljVmlld3BvcnRTaXplVXBkYXRlSUQpOwogICAgIGlmIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJv
eHkqIGRyYXdpbmdBcmVhID0gX3BhZ2UtPmRyYXdpbmdBcmVhKCkpCiAgICAgICAgIGRyYXdpbmdB
cmVhLT5zZXRTaXplKFdlYkNvcmU6OkludFNpemUobmV3Qm91bmRzLnNpemUpKTsKIApAQCAtMzI1
NSwxMiArMzI5NywyMSBAQCAtICh2b2lkKV9zbmFwc2hvdFJlY3Q6KENHUmVjdClyZWN0SW5WaWV3
Q29vcmRpbmF0ZXMgaW50b0ltYWdlT2ZXaWR0aDooQ0dGbG9hdClpbQogCiAtICh2b2lkKV9vdmVy
cmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6KENHU2l6ZSltaW5pbXVt
TGF5b3V0U2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTooQ0dTaXplKW1heGltdW1V
bm9ic2N1cmVkU2l6ZU92ZXJyaWRlCiB7Ci0gICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVSZWN0
cywgc3RyZWFtIDw8ICItW1dLV2ViVmlldyAiIDw8IF9wYWdlLT5pZGVudGlmaWVyKCkgPDwgIiBf
b3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOiIgPDwgV2ViQ29y
ZTo6RmxvYXRTaXplKG1pbmltdW1MYXlvdXRTaXplKSA8PCAiIG1heGltdW1Vbm9ic2N1cmVkU2l6
ZU92ZXJyaWRlOiIgPDwgV2ViQ29yZTo6RmxvYXRTaXplKG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92
ZXJyaWRlKSA8PCAiXSIpOworICAgIFtzZWxmIF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRo
TWluaW11bUxheW91dFNpemU6bWluaW11bUxheW91dFNpemUgbWluaW11bVVub2JzY3VyZWRTaXpl
T3ZlcnJpZGU6Q0dTaXplWmVybyBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTptYXhpbXVt
VW5vYnNjdXJlZFNpemVPdmVycmlkZV07Cit9CisKKy0gKHZvaWQpX292ZXJyaWRlTGF5b3V0UGFy
YW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTooQ0dTaXplKW1pbmltdW1MYXlvdXRTaXplIG1p
bmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOihDR1NpemUpbWluaW11bVVub2JzY3VyZWRTaXpl
T3ZlcnJpZGUgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6KENHU2l6ZSltYXhpbXVtVW5v
YnNjdXJlZFNpemVPdmVycmlkZQoreworICAgIExPR19XSVRIX1NUUkVBTShWaXNpYmxlUmVjdHMs
IHN0cmVhbSA8PCAiLVtXS1dlYlZpZXcgIiA8PCBfcGFnZS0+aWRlbnRpZmllcigpIDw8ICIgX292
ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZToiIDw8IFdlYkNvcmU6
OkZsb2F0U2l6ZShtaW5pbXVtTGF5b3V0U2l6ZSkgPDwgIiBtaW5pbXVtVW5vYnNjdXJlZFNpemVP
dmVycmlkZToiIDw8IFdlYkNvcmU6OkZsb2F0U2l6ZShtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVy
cmlkZSkgPDwgIiBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZToiIDw8IFdlYkNvcmU6OkZs
b2F0U2l6ZShtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSkgPDwgIl0iKTsKIAogICAgIGlm
IChtaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCA8IDAgfHwgbWluaW11bUxheW91dFNpemUuaGVpZ2h0
IDwgMCkKICAgICAgICAgUkVMRUFTRV9MT0dfRkFVTFQoVmlzaWJsZVJlY3RzLCAiJXM6IEVycm9y
OiBhdHRlbXB0aW5nIHRvIG92ZXJyaWRlIGxheW91dCBwYXJhbWV0ZXJzIHdpdGggbmVnYXRpdmUg
d2lkdGggb3IgaGVpZ2h0OiAlQCIsIF9fUFJFVFRZX0ZVTkNUSU9OX18sIE5TU3RyaW5nRnJvbUNH
U2l6ZShtaW5pbXVtTGF5b3V0U2l6ZSkpOwogCisgICAgaWYgKENHU2l6ZUVxdWFsVG9TaXplKG1p
bmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlLCBDR1NpemVaZXJvKSAhPSBDR1NpemVFcXVhbFRv
U2l6ZShtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSwgQ0dTaXplWmVybykpCisgICAgICAg
IFJFTEVBU0VfTE9HX0ZBVUxUKFZpc2libGVSZWN0cywgIiVzOiBFcnJvcjogYXR0ZW1wdGluZyB0
byBvdmVycmlkZSBsYXlvdXQgcGFyYW1ldGVycyB3aXRoIG9ubHkgb25lIG9mIG1pbmltdW1Vbm9i
c2N1cmVkU2l6ZU92ZXJyaWRlICglQCkgYW5kIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRl
ICglQCkiLCBfX1BSRVRUWV9GVU5DVElPTl9fLCBOU1N0cmluZ0Zyb21DR1NpemUobWluaW11bVVu
b2JzY3VyZWRTaXplT3ZlcnJpZGUpLCBOU1N0cmluZ0Zyb21DR1NpemUobWF4aW11bVVub2JzY3Vy
ZWRTaXplT3ZlcnJpZGUpKTsKKwogICAgIFtzZWxmIF9zZXRWaWV3TGF5b3V0U2l6ZU92ZXJyaWRl
OkNHU2l6ZU1ha2Uoc3RkOjptYXg8Q0dGbG9hdD4oMCwgbWluaW11bUxheW91dFNpemUud2lkdGgp
LCBzdGQ6Om1heDxDR0Zsb2F0PigwLCBtaW5pbXVtTGF5b3V0U2l6ZS5oZWlnaHQpKV07CisgICAg
W3NlbGYgX3NldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOm1pbmltdW1Vbm9ic2N1cmVk
U2l6ZU92ZXJyaWRlXTsKICAgICBbc2VsZiBfc2V0TWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJp
ZGU6bWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGVdOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDc1MWNjNDc5ZWM5ZmQ2OWNkMzczMDc3MzcyODAxNzUw
ZTc5YjJjMmQuLmIzMjE4Yjg1NzE4MzQwMjRlMjUzMTA4MDIzN2ZkNjk4NzEwZjA0YWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC04MTUsOSArODE1LDExIEBAIHB1
YmxpYzoKICAgICB2b2lkIHNjcm9sbGluZ05vZGVTY3JvbGxXaWxsU3RhcnRTY3JvbGwoKTsKICAg
ICB2b2lkIHNjcm9sbGluZ05vZGVTY3JvbGxEaWRFbmRTY3JvbGwoKTsKIAotICAgIHZvaWQgZHlu
YW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHZpZXdMYXlv
dXRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywg
Y29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywg
ZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCBkb3VibGUgbWlu
aW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpOwor
ICAgIHZvaWQgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1pbmltdW1Vbm9i
c2N1cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNp
emUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0
ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiB1bm9ic2N1cmVkU2FmZUFyZWFJbnNl
dHMsIGRvdWJsZSB0YXJnZXRTY2FsZSwgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgZG91Ymxl
IG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCwgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlE
KTsKIAogICAgIHZvaWQgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUoY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgZG91YmxlIHNjYWxlRmFjdG9yLCBkb3VibGUgbWluaW11
bUVmZmVjdGl2ZURldmljZVdpZHRoKTsKKyAgICB2b2lkIHNldE1pbmltdW1Vbm9ic2N1cmVkU2l6
ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgbWlu
aXVtdVVub2JzY3VyZWRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9taW5pbXVtVW5vYnNjdXJlZFNp
emU7IH0KICAgICB2b2lkIHNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZShjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmKTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgbWF4aW11bVVub2JzY3VyZWRTaXpl
KCkgY29uc3QgeyByZXR1cm4gbV9tYXhpbXVtVW5vYnNjdXJlZFNpemU7IH0KICAgICB2b2lkIHNl
dERldmljZU9yaWVudGF0aW9uKGludDMyX3QpOwpAQCAtMjk3MCw2ICsyOTcyLDcgQEAgcHJpdmF0
ZToKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIEZ1bmN0aW9uPGJvb2woKT4gbV9kZXZp
Y2VPcmllbnRhdGlvblVzZXJQZXJtaXNzaW9uSGFuZGxlckZvclRlc3Rpbmc7CiAgICAgYm9vbCBt
X3dhaXRpbmdGb3JQb3N0TGF5b3V0RWRpdG9yU3RhdGVVcGRhdGVBZnRlckZvY3VzaW5nRWxlbWVu
dCB7IGZhbHNlIH07CisgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fbWluaW11bVVub2JzY3VyZWRT
aXplOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX21heGltdW1Vbm9ic2N1cmVkU2l6ZTsKICAg
ICBib29sIG1fbGFzdE9ic2VydmVkU3RhdGVXYXNCYWNrZ3JvdW5kIHsgZmFsc2UgfTsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5k
ZXggMWJmYTcxODMyYzBlYWIzNjY3ZWZhYWE3NmYzMmU5YmU4ZmYwZTdhZC4uYjQ0NTlmNWQyNDZj
NWZiODE1NDljY2FmMWM4Y2U0ODRmZDYyNzdkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC0yNjQsNyArMjY0LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnNjcm9sbGluZ05vZGVTY3JvbGxEaWRFbmRTY3JvbGwoKQogICAgIHBhZ2VDbGll
bnQoKS5zY3JvbGxpbmdOb2RlU2Nyb2xsRGlkRW5kU2Nyb2xsKCk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgdmlld0xh
eW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXpl
LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1
cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4
dGVudCYgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0U2NhbGUsIGludDMy
X3QgZGV2aWNlT3JpZW50YXRpb24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgs
IER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQp
Cit2b2lkIFdlYlBhZ2VQcm94eTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9h
dFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1pbmltdW1V
bm9ic2N1cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJl
ZFNpemUsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFVu
b2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
Qm94RXh0ZW50JiB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSB0YXJnZXRTY2FsZSwg
aW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgZG91YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VX
aWR0aCwgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRh
dGVJRCkKIHsKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCiAgICAgICAgIHJldHVybjsK
QEAgLTI3Myw3ICsyNzMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZHluYW1pY1ZpZXdwb3J0U2l6
ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjbwogCiAgICAgbV92aWV3
cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZSA9IHZpZXdMYXlvdXRTaXplOwogICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0
ZSh2aWV3TGF5b3V0U2l6ZSwKLSAgICAgICAgbWF4aW11bVVub2JzY3VyZWRTaXplLCB0YXJnZXRF
eHBvc2VkQ29udGVudFJlY3QsIHRhcmdldFVub2JzY3VyZWRSZWN0LAorICAgICAgICBtaW5pbXVt
VW5vYnNjdXJlZFNpemUsIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgdGFyZ2V0RXhwb3NlZENvbnRl
bnRSZWN0LCB0YXJnZXRVbm9ic2N1cmVkUmVjdCwKICAgICAgICAgdGFyZ2V0VW5vYnNjdXJlZFJl
Y3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLAogICAg
ICAgICB0YXJnZXRTY2FsZSwgZGV2aWNlT3JpZW50YXRpb24sIG1pbmltdW1FZmZlY3RpdmVEZXZp
Y2VXaWR0aCwgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKSwgbV93ZWJQYWdlSUQpOwogCkBA
IC0zMDAsNiArMzAwLDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRGb3JjZUFsd2F5c1VzZXJT
Y2FsYWJsZShib29sIHVzZXJTY2FsYWJsZSkKICAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpTZXRGb3JjZUFsd2F5c1VzZXJTY2FsYWJsZSh1c2VyU2NhbGFibGUpLCBt
X3dlYlBhZ2VJRCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRNaW5pbXVtVW5vYnNjdXJl
ZFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplKQoreworICAgIG1fbWluaW11bVVu
b2JzY3VyZWRTaXplID0gc2l6ZTsKKworICAgIGlmIChoYXNSdW5uaW5nUHJvY2VzcygpKQorICAg
ICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldE1pbmltdW1Vbm9ic2N1
cmVkU2l6ZShzaXplKSwgbV93ZWJQYWdlSUQpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0
TWF4aW11bVVub2JzY3VyZWRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSkKIHsK
ICAgICBtX21heGltdW1Vbm9ic2N1cmVkU2l6ZSA9IHNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxl
ci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVl
blZpZXdDb250cm9sbGVyLm1tCmluZGV4IDUwMDQwYTUyZDQ2ZGY4ODRhYzc5OGIwZGM4MzQ2ZmQ5
YjFkN2NlZjMuLjNiYTJjNDhmMjA1ZjhhNTc5M2FmMmI0ZjU0ZDkwOWNlYTkzMjk1NzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVl
blZpZXdDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxs
c2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1tCkBAIC00MDIsNyArNDAyLDcgQEAg
LSAodm9pZCl2aWV3V2lsbFRyYW5zaXRpb25Ub1NpemU6KENHU2l6ZSlzaXplIHdpdGhUcmFuc2l0
aW9uQ29vcmRpbmF0b3I6KGlkPFVJVmkKICAgICBbc3VwZXIgdmlld1dpbGxUcmFuc2l0aW9uVG9T
aXplOnNpemUgd2l0aFRyYW5zaXRpb25Db29yZGluYXRvcjpjb29yZGluYXRvcl07CiAgICAgW2Nv
b3JkaW5hdG9yIGFuaW1hdGVBbG9uZ3NpZGVUcmFuc2l0aW9uOl4oaWQ8VUlWaWV3Q29udHJvbGxl
clRyYW5zaXRpb25Db29yZGluYXRvckNvbnRleHQ+IGNvbnRleHQpIHsKICAgICAgICAgW3NlbGYu
X3dlYlZpZXcgX2JlZ2luQW5pbWF0ZWRSZXNpemVXaXRoVXBkYXRlczpeewotICAgICAgICAgICAg
W3NlbGYuX3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0
U2l6ZTpzaXplIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOnNpemVdOworICAgICAgICAg
ICAgW3NlbGYuX3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5
b3V0U2l6ZTpzaXplIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOnNpemUgbWF4aW11bVVu
b2JzY3VyZWRTaXplT3ZlcnJpZGU6c2l6ZV07CiAgICAgICAgIH1dOwogIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIFtzZWxmLl93ZWJWaWV3IF9zZXRJbnRlcmZh
Y2VPcmllbnRhdGlvbk92ZXJyaWRlOltVSUFwcCBzdGF0dXNCYXJPcmllbnRhdGlvbl1dOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9m
dWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0KaW5kZXggZTE5ZmY1
Y2IyNGYwMWU5MzEwODJkNTU4ZjMzZWRkMmFlMGQzYmYwZC4uMGMxY2Q1NWYyMmU2NGQyMjJjYWQw
ZThjMjQwYzJmYTIyZjNkMWQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVySU9TLm1tCkBAIC01OTEsNyArNTkxLDcgQEAgLSAodm9pZCllbnRlckZ1bGxTY3Jl
ZW4KICAgICAgICAgCiAgICAgICAgIFt3ZWJWaWV3IHNldEF1dG9yZXNpemluZ01hc2s6KFVJVmll
d0F1dG9yZXNpemluZ0ZsZXhpYmxlV2lkdGggfCBVSVZpZXdBdXRvcmVzaXppbmdGbGV4aWJsZUhl
aWdodCldOwogICAgICAgICBbd2ViVmlldyBzZXRGcmFtZTpbX3dpbmRvdyBib3VuZHNdXTsKLSAg
ICAgICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0
U2l6ZTpbX3dpbmRvdyBib3VuZHNdLnNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6
W193aW5kb3cgYm91bmRzXS5zaXplXTsKKyAgICAgICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0
UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpbX3dpbmRvdyBib3VuZHNdLnNpemUgbWlu
aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6W193aW5kb3cgYm91bmRzXS5zaXplIG1heGltdW1V
bm9ic2N1cmVkU2l6ZU92ZXJyaWRlOltfd2luZG93IGJvdW5kc10uc2l6ZV07CiAgICAgICAgIFtf
d2luZG93IGluc2VydFN1YnZpZXc6d2ViVmlldy5nZXQoKSBhdEluZGV4OjBdOwogICAgICAgICBb
d2ViVmlldyBzZXROZWVkc0xheW91dF07CiAgICAgICAgIFt3ZWJWaWV3IGxheW91dElmTmVlZGVk
XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDEzZDYzODc0OGUxMGI1ZGYz
N2Y5MDdiODNhMWQ1OTNlNGJlZmIzYWYuLjA3ZjZhODZmNGVmMjliZmIwMjlmMGE5ODJhMDYxZDc4
MWFhYTFhYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTU1Nyw3ICsx
NTU3LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVk
Rm9yTmV3UGFnZSgpCiAgICAgfQogCiAgICAgaWYgKGF1dG8gdmlld3BvcnRTaXplRm9yVmlld3Bv
cnRVbml0cyA9IHdlYlBhZ2UtPnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKSkKLSAg
ICAgICAgdmlldy0+c2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygqdmlld3BvcnRT
aXplRm9yVmlld3BvcnRVbml0cyk7CisgICAgICAgIHZpZXctPnNldFNpemVGb3JDU1NEZWZhdWx0
Vmlld3BvcnRVbml0cygqdmlld3BvcnRTaXplRm9yVmlld3BvcnRVbml0cyk7CiAgICAgdmlldy0+
c2V0UHJvaGliaXRzU2Nyb2xsaW5nKHNob3VsZERpc2FibGVTY3JvbGxpbmcpOwogICAgIHZpZXct
PnNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQoIXdlYlBhZ2UtPnNob3VsZEV4dGVuZElu
Y3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb24oKSk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGU2ZWU0
MjBmNDVhNDI3NTllMDYxNGNiNTAwY2E2ZWY2YjUyNGM5MDQuLjVmYjg1ZmYxMWM1ZDc1NmFkMTRl
NGI4OWZjNDVhYTExZGNmODdlMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC02MjQ0LDcgKzYyNDQsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldFZp
ZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRT
aXplPgogCiAgICAgbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzID0gdmlld3BvcnRT
aXplOwogICAgIGlmIChtX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpCi0gICAgICAg
IGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnZpZXcoKS0+c2V0Vmlld3BvcnRTaXplRm9yQ1NTVmll
d3BvcnRVbml0cygqbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKTsKKyAgICAgICAg
Y29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkudmlldygpLT5zZXRTaXplRm9yQ1NTRGVmYXVsdFZpZXdw
b3J0VW5pdHMoKm1fdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyk7CiB9CiAKIGJvb2wg
V2ViUGFnZTo6aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGMxMzg1NTczYjBiZTVmZWM4MDE1MGE5NWZi
Mzk1MTk0M2E1MDQ2NjYuLmUzMmUzZGYxODNiMGQ3NDA2MzdlMWQ4OWI3MDljMTZkMDlkMDU4ZGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEwNzks
OSArMTA3OSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVWaXNpYmlsaXR5U3RhdGUoYm9v
bCBpc0luaXRpYWxTdGF0ZSA9IGZhbHNlKTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgdm9pZCBzZXRNaW5pbXVtVW5vYnNjdXJlZFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
Jik7CiAgICAgdm9pZCBzZXRNYXhpbXVtVW5vYnNjdXJlZFNpemUoY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJik7CiAgICAgdm9pZCBzZXREZXZpY2VPcmllbnRhdGlvbihpbnQzMl90KTsKLSAgICB2
b2lkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB2
aWV3TGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJl
ZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRp
bmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiB0YXJnZXRVbm9ic2N1cmVkU2Fm
ZUFyZWFJbnNldHMsIGRvdWJsZSBzY2FsZSwgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgZG91
YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCwgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0
ZUlEKTsKKyAgICB2b2lkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtaW5p
bXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2Jz
Y3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50
UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nv
b3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdGFyZ2V0VW5vYnNjdXJl
ZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24s
IGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsIER5bmFtaWNWaWV3cG9ydFNpemVV
cGRhdGVJRCk7CiAgICAgYm9vbCBzY2FsZVdhc1NldEJ5VUlQcm9jZXNzKCkgY29uc3QgeyByZXR1
cm4gbV9zY2FsZVdhc1NldEJ5VUlQcm9jZXNzOyB9CiAgICAgdm9pZCB3aWxsU3RhcnRVc2VyVHJp
Z2dlcmVkWm9vbWluZygpOwogICAgIHZvaWQgYXBwbGljYXRpb25XaWxsUmVzaWduQWN0aXZlKCk7
CkBAIC0yMjQ5LDYgKzIyNTAsNyBAQCBwcml2YXRlOgogCiAgICAgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpTaW1wbGVSYW5nZT4gbV9pbml0aWFsU2VsZWN0aW9uOwogICAgIFdlYkNvcmU6OlZpc2li
bGVTZWxlY3Rpb24gbV9zdG9yZWRTZWxlY3Rpb25Gb3JBY2Nlc3NpYmlsaXR5IHsgV2ViQ29yZTo6
VmlzaWJsZVNlbGVjdGlvbigpIH07CisgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fbWluaW11bVVu
b2JzY3VyZWRTaXplOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX21heGltdW1Vbm9ic2N1cmVk
U2l6ZTsKICAgICBpbnQzMl90IG1fZGV2aWNlT3JpZW50YXRpb24geyAwIH07CiAgICAgYm9vbCBt
X2tleWJvYXJkSXNBdHRhY2hlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA4YWZjNGVhNWUzY2Qw
MWMyYWMzYTRhMzQxZjMxNmE5YTIxMTMzMmUxLi44ZGNlYTM1MmViZjRiYmMwOTMzNjE0MWEwMDM5
NWI2ZmQwMDljYzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTUzLDEwICs1MywxMSBAQCBtZXNzYWdlcyAtPiBX
ZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBNb3VzZUV2ZW50KFdlYktpdDo6V2ViTW91c2VF
dmVudCBldmVudCwgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGU+PiBzYW5kYm94RXh0ZW5zaW9ucykKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIFNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKFdlYkNvcmU6OkZsb2F0
U2l6ZSBzaXplLCBkb3VibGUgc2NhbGVGYWN0b3IsIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2
aWNlV2lkdGgpCisgICAgU2V0TWluaW11bVVub2JzY3VyZWRTaXplKFdlYkNvcmU6OkZsb2F0U2l6
ZSBzaXplKQogICAgIFNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZShXZWJDb3JlOjpGbG9hdFNpemUg
c2l6ZSkKICAgICBTZXREZXZpY2VPcmllbnRhdGlvbihpbnQzMl90IGRldmljZU9yaWVudGF0aW9u
KQogICAgIFNldE92ZXJyaWRlVmlld3BvcnRBcmd1bWVudHMoc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpWaWV3cG9ydEFyZ3VtZW50cz4gYXJndW1lbnRzKQotICAgIER5bmFtaWNWaWV3cG9ydFNpemVV
cGRhdGUoV2ViQ29yZTo6RmxvYXRTaXplIHZpZXdMYXlvdXRTaXplLCBXZWJDb3JlOjpGbG9hdFNp
emUgbWF4aW11bVVub2JzY3VyZWRTaXplLCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0RXhwb3Nl
ZENvbnRlbnRSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIFdl
YkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5h
dGVzLCBXZWJDb3JlOjpSZWN0RWRnZXM8ZmxvYXQ+IHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUlu
c2V0cywgZG91YmxlIHNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCBkb3VibGUgbWlu
aW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCB1aW50NjRfdCBkeW5hbWljVmlld3BvcnRTaXplVXBk
YXRlSUQpCisgICAgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShXZWJDb3JlOjpGbG9hdFNpemUg
dmlld0xheW91dFNpemUsIFdlYkNvcmU6OkZsb2F0U2l6ZSBtaW5pbXVtVW5vYnNjdXJlZFNpemUs
IFdlYkNvcmU6OkZsb2F0U2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIFdlYkNvcmU6OkZsb2F0
UmVjdCB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRV
bm9ic2N1cmVkUmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0SW5T
Y3JvbGxWaWV3Q29vcmRpbmF0ZXMsIFdlYkNvcmU6OlJlY3RFZGdlczxmbG9hdD4gdGFyZ2V0VW5v
YnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50
YXRpb24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsIHVpbnQ2NF90IGR5bmFt
aWNWaWV3cG9ydFNpemVVcGRhdGVJRCkKICAgICAKICAgICBTZXRTY3JlZW5Jc0JlaW5nQ2FwdHVy
ZWQoYm9vbCBjYXB0dXJlZCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCAwYzVhZjRjMGEwODUwYWZjZDUyMWZlNTI1ZTBj
ZjYxOGFjYjQ5YmY5Li45NjU3MDQyNTM3MTgzMWY2ODg4YTNiOGFlYzRjZmE5MjM1ZTdiNDMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQpAQCAtMzQxMyw2ICszNDEzLDEyIEBAIHZvaWQgV2ViUGFnZTo6c2V0Vmlld3BvcnRDb25m
aWd1cmF0aW9uVmlld0xheW91dFNpemUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBkb3ViCiAgICAg
dmlld3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZCh6b29tVG9Jbml0aWFsU2NhbGUpOwogfQogCit2
b2lkIFdlYlBhZ2U6OnNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZShjb25zdCBGbG9hdFNpemUmIG1p
bmltdW1Vbm9ic2N1cmVkU2l6ZSkKK3sKKyAgICBtX21pbmltdW1Vbm9ic2N1cmVkU2l6ZSA9IG1p
bmltdW1Vbm9ic2N1cmVkU2l6ZTsKKyAgICB1cGRhdGVWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9y
dFVuaXRzKCk7Cit9CisKIHZvaWQgV2ViUGFnZTo6c2V0TWF4aW11bVVub2JzY3VyZWRTaXplKGNv
bnN0IEZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplKQogewogICAgIG1fbWF4aW11bVVu
b2JzY3VyZWRTaXplID0gbWF4aW11bVVub2JzY3VyZWRTaXplOwpAQCAtMzQzMiw3ICszNDM4LDcg
QEAgdm9pZCBXZWJQYWdlOjpzZXRPdmVycmlkZVZpZXdwb3J0QXJndW1lbnRzKGNvbnN0IHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6Vmlld3BvcnQKICAgICBtX3BhZ2UtPnNldE92ZXJyaWRlVmlld3Bv
cnRBcmd1bWVudHMoYXJndW1lbnRzKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpkeW5hbWljVmlld3Bv
cnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBGbG9hdFJlY3QmIHRh
cmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVk
UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Ny
b2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdGFyZ2V0
VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0U2NhbGUsIGludDMyX3QgZGV2
aWNlT3JpZW50YXRpb24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsIER5bmFt
aWNWaWV3cG9ydFNpemVVcGRhdGVJRCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpCit2b2lk
IFdlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiB2aWV3
TGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtaW5pbXVtVW5vYnNjdXJlZFNp
emUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25z
dCBGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0
YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9i
c2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJv
eEV4dGVudCYgdGFyZ2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0U2Nh
bGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2
aWNlV2lkdGgsIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCBkeW5hbWljVmlld3BvcnRTaXpl
VXBkYXRlSUQpCiB7CiAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gZHluYW1pY1NpemVVcGRhdGVHdWFy
ZChtX2luRHluYW1pY1NpemVVcGRhdGUsIHRydWUpOwogICAgIC8vIEZJWE1FOiB0aGlzIGRvZXMg
bm90IGhhbmRsZSB0aGUgY2FzZXMgd2hlcmUgdGhlIGNvbnRlbnQgd291bGQgY2hhbmdlIHRoZSBj
b250ZW50IHNpemUgb3Igc2Nyb2xsIHBvc2l0aW9uIGZyb20gSmF2YVNjcmlwdC4KQEAgLTM0ODAs
NiArMzQ4Niw3IEBAIHZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25z
dCBGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXCiAgICAgaWYgKHNldEZpeGVkTGF5
b3V0U2l6ZShuZXdMYXlvdXRTaXplKSkKICAgICAgICAgcmVzZXRUZXh0QXV0b3NpemluZygpOwog
CisgICAgc2V0TWluaW11bVVub2JzY3VyZWRTaXplKG1pbmltdW1Vbm9ic2N1cmVkU2l6ZSk7CiAg
ICAgc2V0TWF4aW11bVVub2JzY3VyZWRTaXplKG1heGltdW1Vbm9ic2N1cmVkU2l6ZSk7CiAgICAg
bV9wYWdlLT5zZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldHModGFyZ2V0VW5vYnNjdXJlZFNhZmVB
cmVhSW5zZXRzKTsKIApAQCAtMzgyNiwxMyArMzgzMywxOSBAQCB2b2lkIFdlYlBhZ2U6OnZpZXdw
b3J0Q29uZmlndXJhdGlvbkNoYW5nZWQoWm9vbVRvSW5pdGlhbFNjYWxlIHpvb21Ub0luaXRpYWxT
Y2FsZQogCiB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5p
dHMoKQogeworICAgIEZsb2F0U2l6ZSBzbWFsbGVzdFVub2JzY3VyZWRTaXplID0gbV9taW5pbXVt
VW5vYnNjdXJlZFNpemU7CisgICAgaWYgKHNtYWxsZXN0VW5vYnNjdXJlZFNpemUuaXNFbXB0eSgp
KQorICAgICAgICBzbWFsbGVzdFVub2JzY3VyZWRTaXplID0gbV92aWV3cG9ydENvbmZpZ3VyYXRp
b24udmlld0xheW91dFNpemUoKTsKKwogICAgIEZsb2F0U2l6ZSBsYXJnZXN0VW5vYnNjdXJlZFNp
emUgPSBtX21heGltdW1Vbm9ic2N1cmVkU2l6ZTsKICAgICBpZiAobGFyZ2VzdFVub2JzY3VyZWRT
aXplLmlzRW1wdHkoKSkKICAgICAgICAgbGFyZ2VzdFVub2JzY3VyZWRTaXplID0gbV92aWV3cG9y
dENvbmZpZ3VyYXRpb24udmlld0xheW91dFNpemUoKTsKIAogICAgIEZyYW1lVmlldyYgZnJhbWVW
aWV3ID0gKm1haW5GcmFtZVZpZXcoKTsKKyAgICBzbWFsbGVzdFVub2JzY3VyZWRTaXplLnNjYWxl
KDEgLyBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5pbml0aWFsU2NhbGVJZ25vcmluZ0NvbnRlbnRT
aXplKCkpOwogICAgIGxhcmdlc3RVbm9ic2N1cmVkU2l6ZS5zY2FsZSgxIC8gbV92aWV3cG9ydENv
bmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxlSWdub3JpbmdDb250ZW50U2l6ZSgpKTsKLSAgICBmcmFt
ZVZpZXcuc2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyhyb3VuZGVkSW50U2l6ZShs
YXJnZXN0VW5vYnNjdXJlZFNpemUpKTsKKyAgICBmcmFtZVZpZXcuc2V0U2l6ZUZvckNTU1NtYWxs
Vmlld3BvcnRVbml0cyhyb3VuZGVkSW50U2l6ZShzbWFsbGVzdFVub2JzY3VyZWRTaXplKSk7Cisg
ICAgZnJhbWVWaWV3LnNldFNpemVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cyhyb3VuZGVkSW50
U2l6ZShsYXJnZXN0VW5vYnNjdXJlZFNpemUpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjphcHBsaWNh
dGlvbldpbGxSZXNpZ25BY3RpdmUoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDQxZjBkYWUwNGRiYzIxMjMwYmQ4MmEzMTc5NDFkMDQ4ODEwMTI5
ZGYuLjU3NGU2MWM0MGMyYzk5ZDNlYzQzN2ZhYTg4NWY5OTQ0MmU1OTc2NTQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAor
MjAyMS0xMC0wNSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
W2Nzcy12YWx1ZXMtNF0gU3VwcG9ydCBzbWFsbCAoc3YqKSwgbGFyZ2UgKGx2KikgYW5kIGR5bmFt
aWMgKGR2Kikgdmlld3BvcnQgdW5pdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxOTI4NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzE4NTczNzA+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NTU1ZpZXdwb3J0VW5pdHMubW06IEFkZGVkLgor
ICAgICAgICAoZ2V0RWxlbWVudEhlaWdodCk6CisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5p
dHMuQWxsU2FtZSk6CisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5pdHMuRW1wdHlVbm9ic2N1
cmVkU2l6ZU92ZXJyaWRlcyk6CisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5pdHMuU2FtZVVu
b2JzY3VyZWRTaXplT3ZlcnJpZGVzKToKKyAgICAgICAgKFRFU1QuQ1NTVmlld3BvcnRVbml0cy5E
aWZmZXJlbnRVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlcyk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9DU1NWaWV3cG9ydFVuaXRzLmh0bWw6IEFkZGVkLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BbmltYXRlZFJlc2l6ZS5tbToK
KyAgICAgICAgKFRFU1QuV2ViS2l0Lk92ZXJyaWRlTGF5b3V0U2l6ZUNoYW5nZXNEdXJpbmdBbmlt
YXRlZFJlc2l6ZVN1Y2NlZWQpOgorICAgICAgICAoVEVTVC5XZWJLaXQuT3ZlcnJpZGVMYXlvdXRT
aXplSXNSZXN0b3JlZEFmdGVyUHJvY2Vzc1JlbGF1bmNoKToKKyAgICAgICAgKFRFU1QuV2ViS2l0
Lk92ZXJyaWRlTGF5b3V0U2l6ZUlzUmVzdG9yZWRBZnRlckNoYW5naW5nRHVyaW5nUHJvY2Vzc1Jl
bGF1bmNoKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpeGVk
TGF5b3V0U2l6ZS5tbToKKyAgICAgICAgKFRFU1QuV2ViS2l0Lk92ZXJyaWRlTWluaW11bUxheW91
dFNpemVXaXRoTmVnYXRpdmVIZWlnaHQpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
aW9zL1Njcm9sbFZpZXdTY3JvbGxhYmlsaXR5VGVzdHMubW06CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNULlNjcm9sbFZpZXdTY3JvbGxhYmlsaXR5VGVzdHMuU2Nyb2xsYWJsZVdpdGhPdmVy
Zmxvd0hpZGRlbkFuZFZpc2libGVVSSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNULlNj
cm9sbFZpZXdTY3JvbGxhYmlsaXR5VGVzdHMuU2Nyb2xsYWJsZVdpdGhPdmVyZmxvd0hpZGRlbkFu
ZFNocnVua1VJKToKKyAgICAgICAgUmVwbGFjZSBgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dp
dGhNaW5pbXVtTGF5b3V0U2l6ZTptYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpgIHdpdGgK
KyAgICAgICAgYF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6
bWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6bWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJp
ZGU6YC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTEwLTA1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIGFuIGVudGl0bGVtZW50IGNoZWNrIHRv
IG9ubHkgYWxsb3cgQWRBdHRyaWJ1dGlvbkRhZW1vbiB0byBiZSBjb25uZWN0ZWQgdG8gYnkgdGhl
IG5ldHdvcmsgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2OWRkY2QwYjBmZDI5
ZDAxMDgwY2Y1NjhlMDY0YjIzYjRhZjJlYmQ0Li42ZTg0MzAwNDE4YzZiYzNjM2JkZTc1ZjljMjli
Y2ZkMjQ4ZWI1ZWM1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODg4LDYgKzg4OCw4IEBA
CiAJCTkzRkNEQjM0MjYzNjMxNTYwMDQ2REQ3RCAvKiBTb3J0ZWRBcnJheU1hcC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0ZDREIzMzI2MzYzMTU2
MDA0NkREN0QgLyogU29ydGVkQXJyYXlNYXAuY3BwICovOyB9OwogCQk5NTA5NUYyMDI2MkZGRkE1
MDAwMEQ5MjAgLyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MDk1RjFGMjYyRkZGQTUwMDAwRDkyMCAvKiBTYW1w
bGVkUGFnZVRvcENvbG9yLm1tICovOyB9OwogCQk5NTBFNENDMTI1MkU3NTI0MDA3MTY1OUYgLyog
aU9TU3R5bHVzU3VwcG9ydC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk1MEU0Q0MwMjUyRTc1MjMwMDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBwb3J0Lm1t
ICovOyB9OworCQk5NTJGNzE2NTI3MEJEOTdFMDBEMDBEQ0MgLyogQ1NTVmlld3BvcnRVbml0cy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MkY3MTY0
MjcwQkQ5N0UwMEQwMERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLm1tICovOyB9OworCQk5NTJGNzE2
NzI3MEJEOUNCMDBEMDBEQ0MgLyogQ1NTVmlld3BvcnRVbml0cy5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MkY3MTY2MjcwQkQ5OTcw
MEQwMERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLmh0bWwgKi87IH07CiAJCTk1M0FCQjM1MjVDMEQ2
ODIwMDRDOEI3MyAvKiBXS1dlYlZpZXdVbmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3IubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTNBQkIzNDI1QzBENjgx
MDA0QzhCNzMgLyogV0tXZWJWaWV3VW5kZXJQYWdlQmFja2dyb3VuZENvbG9yLm1tICovOyB9Owog
CQk5NThCNzBFMTI2QzQ2RURDMDBCMjAyMkIgLyogTlNBdHRyaWJ1dGVkU3RyaW5nV2ViS2l0QWRk
aXRpb25zLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTU4QjcwRTAyNkM0NkVEQzAwQjIwMjJCIC8qIE5TQXR0cmlidXRlZFN0cmluZ1dlYktpdEFkZGl0
aW9ucy5tbSAqLzsgfTsKIAkJOTVBNTI0OTUyNTgxQTEwRDAwNDYxRkU5IC8qIFdLV2ViVmlld1Ro
ZW1lQ29sb3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NUE1MjQ5NDI1ODFBMTBEMDA0NjFGRTkgLyogV0tXZWJWaWV3VGhlbWVDb2xvci5tbSAqLzsg
fTsKQEAgLTE0NjAsNiArMTQ2Miw3IEBACiAJCQkJOUI2MjYzMEMxRjhDMjVDODAwN0VFMjlCIC8q
IGNvcHktdXJsLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJN0FFQUQ0ODExRTIwMTIy
NzAwNDE2RUZFIC8qIENyb3NzUGFydGl0aW9uRmlsZVNjaGVtZUFjY2Vzcy5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCTQ5OTVBNkYwMjVFODc3MjAwMEU1RjBBOSAvKiBjc3AtZG9jdW1l
bnQtdXJpLXJlcG9ydC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTk1MkY3MTY3Mjcw
QkQ5Q0IwMEQwMERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJMkRERDREQTQyNzBCOEIzNTAwNjU5QTYxIC8qIGN1YmUudXNkeiBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQlGNEFCNTc4QTFGNjUxNjU0MDBEQjBEQTEgLyogY3VzdG9tLWRyYWdn
YWJsZS1kaXYuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkyOTBGNDI3NTE3MkEyMjFD
MDA5MzlGRjAgLyogY3VzdG9tLXByb3RvY29sLXN5bmMteGhyLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCkBAIC0yNjI4LDYgKzI2MzEsOCBAQAogCQk5M0ZDREIzMzI2MzYzMTU2MDA0NkREN0Qg
LyogU29ydGVkQXJyYXlNYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU29ydGVkQXJyYXlNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTA5
NUYxRjI2MkZGRkE1MDAwMEQ5MjAgLyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNhbXBsZWRQYWdlVG9wQ29sb3IubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MEU0Q0MwMjUyRTc1MjMwMDcxNjU5RiAvKiBp
T1NTdHlsdXNTdXBwb3J0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gaU9TU3R5bHVzU3VwcG9ydC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUy
RjcxNjQyNzBCRDk3RTAwRDAwRENDIC8qIENTU1ZpZXdwb3J0VW5pdHMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDU1NWaWV3cG9ydFVuaXRzLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5NTJGNzE2NjI3MEJEOTk3MDBEMDBEQ0MgLyogQ1NTVmll
d3BvcnRVbml0cy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gQ1NTVmlld3BvcnRVbml0cy5odG1sOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5NTNBQkIzNDI1QzBENjgxMDA0QzhCNzMgLyogV0tXZWJW
aWV3VW5kZXJQYWdlQmFja2dyb3VuZENvbG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3VW5kZXJQYWdlQmFja2dyb3VuZENvbG9yLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NThCNzBFMDI2QzQ2RURDMDBCMjAyMkIgLyogTlNB
dHRyaWJ1dGVkU3RyaW5nV2ViS2l0QWRkaXRpb25zLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gTlNBdHRyaWJ1dGVkU3RyaW5nV2ViS2l0QWRkaXRpb25zLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUE1MjQ5NDI1ODFBMTBEMDA0NjFGRTkgLyog
V0tXZWJWaWV3VGhlbWVDb2xvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdLV2ViVmlld1RoZW1lQ29sb3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0zNDgwLDYgKzM0ODUsNyBAQAogCQkJCTFDNzkyMDFCMjM0QkREOUIwMDFFQUYyMyAvKiBD
b3B5UlRGLm1tICovLAogCQkJCTlCN0EzN0MyMUY4QUVCQTUwMDRBQTIyOCAvKiBDb3B5VVJMLm1t
ICovLAogCQkJCTUxMEE5MjFEMjREQjM4RUQwMEJGRDg5QyAvKiBDcmVhdGVXZWJBcmNoaXZlLm1t
ICovLAorCQkJCTk1MkY3MTY0MjcwQkQ5N0UwMEQwMERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLm1t
ICovLAogCQkJCTQ2QTkxMTU4MjEwOEU2NkIwMDc4RDQwRCAvKiBDdXN0b21Vc2VyQWdlbnQubW0g
Ki8sCiAJCQkJMkRDNENGNzYxRDJEOUREODAwRUNDQzk0IC8qIERhdGFEZXRlY3Rpb24ubW0gKi8s
CiAJCQkJNTE4RUU1MUMyMEE3OEQzMzAwRTAyNEYzIC8qIERlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24ubW0gKi8sCkBAIC00MDM4LDYgKzQwNDQsNyBAQAogCQkJCTlCMTA1NjQyMUY5MDQ3
Q0MwMEQ1NTgzRiAvKiBjb3B5LWh0bWwuaHRtbCAqLywKIAkJCQk5QjYyNjMwQjFGOEMyNTEwMDA3
RUUyOUIgLyogY29weS11cmwuaHRtbCAqLywKIAkJCQk0OTk1QTZFRjI1RTg3NkEzMDBFNUYwQTkg
LyogY3NwLWRvY3VtZW50LXVyaS1yZXBvcnQuaHRtbCAqLywKKwkJCQk5NTJGNzE2NjI3MEJEOTk3
MDBEMDBEQ0MgLyogQ1NTVmlld3BvcnRVbml0cy5odG1sICovLAogCQkJCUY0QUI1Nzg5MUY2NTE2
NEIwMERCMERBMSAvKiBjdXN0b20tZHJhZ2dhYmxlLWRpdi5odG1sICovLAogCQkJCUY0N0RGQjI0
MjFBODcwNEEwMDAyMUZCNiAvKiBkYXRhLWRldGVjdG9ycy5odG1sICovLAogCQkJCUY0ODZCMUNG
MUY2Nzk0RkYwMEYzNEJERCAvKiBEYXRhVHJhbnNmZXItc2V0RHJhZ0ltYWdlLmh0bWwgKi8sCkBA
IC01NDgyLDYgKzU0ODksNyBAQAogCQkJCTUxMEE5MjFFMjREQjM4RjMwMEJGRDg5QyAvKiBDcmVh
dGVXZWJBcmNoaXZlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FFQUQ0N0YxRTIwMTE2QzAwNDE2
RUZFIC8qIENyb3NzUGFydGl0aW9uRmlsZVNjaGVtZUFjY2Vzcy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTdDQ0U3RURCMUE0MTFBOTIwMDQ0N0M0QyAvKiBDU1NQYXJzZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJOTUyRjcxNjUyNzBCRDk3RTAwRDAwRENDIC8qIENTU1ZpZXdwb3J0VW5pdHMubW0g
aW4gU291cmNlcyAqLywKIAkJCQk1NzU4NTk3RjIzQTI1MjdBMDBDNzQ1NzIgLyogQ3RhcFBpblRl
c3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTcyQjQwMzQyMTc2OUE4ODAwMEFENDNFIC8qIEN0
YXBSZXF1ZXN0VGVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1NzJCNDA0NDIxNzgxQjQzMDAw
QUQ0M0UgLyogQ3RhcFJlc3BvbnNlVGVzdC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQW5pbWF0ZWRSZXNpemUubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FuaW1hdGVkUmVzaXplLm1t
CmluZGV4IDgyODBmNTM5MzU0ZTcxODVlOWViZTQwNDQzNjE3ODYzNjNmOGIzMzAuLjM5ZmU1NDA0
OTZjNjI3M2YzMDEyNDVjNWI2NDQ1N2ExMjE1MWEzODEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQW5pbWF0ZWRSZXNpemUubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BbmltYXRlZFJlc2l6ZS5tbQpAQCAtMTky
LDcgKzE5Miw3IEBAIFRFU1QoV2ViS2l0LCBPdmVycmlkZUxheW91dFNpemVDaGFuZ2VzRHVyaW5n
QW5pbWF0ZWRSZXNpemVTdWNjZWVkKQogICAgIGF1dG8gd2ViVmlldyA9IGNyZWF0ZUFuaW1hdGVk
UmVzaXplV2ViVmlldygpOwogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6d2ViVmlldy5nZXQo
KV07CiAKLSAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1M
YXlvdXRTaXplOkNHU2l6ZU1ha2UoMjAwLCA1MCkgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJp
ZGU6Q0dTaXplTWFrZSgyMDAsIDUwKV07CisgICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFy
YW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDIwMCwgNTApIG1pbmltdW1V
bm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMjAwLCA1MCkgbWF4aW11bVVub2JzY3Vy
ZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgyMDAsIDUwKV07CiAKICAgICBbd2ViVmlldyBsb2Fk
SFRNTFN0cmluZzpAIjxoZWFkPjxtZXRhIG5hbWU9J3ZpZXdwb3J0JyBjb250ZW50PSdpbml0aWFs
LXNjYWxlPTEnPjwvaGVhZD4iIGJhc2VVUkw6bmlsXTsKICAgICBhdXRvIG5hdmlnYXRpb25EZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBA
IC0yMDcsNyArMjA3LDcgQEAgVEVTVChXZWJLaXQsIE92ZXJyaWRlTGF5b3V0U2l6ZUNoYW5nZXNE
dXJpbmdBbmltYXRlZFJlc2l6ZVN1Y2NlZWQpCiAgICAgICAgIFt3ZWJWaWV3IHNldEZyYW1lOkNH
UmVjdE1ha2UoMCwgMCwgW3dlYlZpZXcgZnJhbWVdLnNpemUud2lkdGggKyAxMDAsIDQwMCldOwog
ICAgIH1dOwogCi0gICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5p
bXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDEwMCwgMjAwKSBtYXhpbXVtVW5vYnNjdXJlZFNpemVP
dmVycmlkZTpDR1NpemVNYWtlKDEwMCwgMjAwKV07CisgICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5
b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDEwMCwgMjAwKSBt
aW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDEwMCwgMjAwKSBtYXhpbXVt
VW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDEwMCwgMjAwKV07CiAgICAgW3dlYlZp
ZXcgX2VuZEFuaW1hdGVkUmVzaXplXTsKIAogICAgIF9fYmxvY2sgYm9vbCBkaWRSZWFkTGF5b3V0
U2l6ZSA9IGZhbHNlOwpAQCAtMjMyLDcgKzIzMiw3IEBAIFRFU1QoV2ViS2l0LCBPdmVycmlkZUxh
eW91dFNpemVJc1Jlc3RvcmVkQWZ0ZXJQcm9jZXNzUmVsYXVuY2gpCiAgICAgYXV0byB3ZWJWaWV3
ID0gY3JlYXRlQW5pbWF0ZWRSZXNpemVXZWJWaWV3KCk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxl
Z2F0ZTp3ZWJWaWV3LmdldCgpXTsKIAotICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFt
ZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFrZSgyMDAsIDUwKSBtYXhpbXVtVW5v
YnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDIwMCwgNTApXTsKKyAgICBbd2ViVmlldyBf
b3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2Uo
MjAwLCA1MCkgbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgyMDAsIDUw
KSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDIwMCwgNTApXTsKIAog
ICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGhlYWQ+PG1ldGEgbmFtZT0ndmlld3BvcnQn
IGNvbnRlbnQ9J2luaXRpYWwtc2NhbGU9MSc+PC9oZWFkPiIgYmFzZVVSTDpuaWxdOwogICAgIFt3
ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKQEAgLTI2Myw3ICsyNjMs
NyBAQCBURVNUKFdlYktpdCwgT3ZlcnJpZGVMYXlvdXRTaXplSXNSZXN0b3JlZEFmdGVyQ2hhbmdp
bmdEdXJpbmdQcm9jZXNzUmVsYXVuY2gpCiAgICAgYXV0byB3ZWJWaWV3ID0gY3JlYXRlQW5pbWF0
ZWRSZXNpemVXZWJWaWV3KCk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTp3ZWJWaWV3Lmdl
dCgpXTsKIAotICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11
bUxheW91dFNpemU6Q0dTaXplTWFrZSgxMDAsIDEwMCkgbWF4aW11bVVub2JzY3VyZWRTaXplT3Zl
cnJpZGU6Q0dTaXplTWFrZSgxMDAsIDEwMCldOworICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91
dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFrZSgxMDAsIDEwMCkgbWlu
aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgxMDAsIDEwMCkgbWF4aW11bVVu
b2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgxMDAsIDEwMCldOwogCiAgICAgW3dlYlZp
ZXcgbG9hZEhUTUxTdHJpbmc6QCI8aGVhZD48bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVudD0n
aW5pdGlhbC1zY2FsZT0xJz48L2hlYWQ+IiBiYXNlVVJMOm5pbF07CiAgICAgW3dlYlZpZXcgX3Rl
c3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOwpAQCAtMjczLDcgKzI3Myw3IEBAIFRFU1Qo
V2ViS2l0LCBPdmVycmlkZUxheW91dFNpemVJc1Jlc3RvcmVkQWZ0ZXJDaGFuZ2luZ0R1cmluZ1By
b2Nlc3NSZWxhdW5jaCkKICAgICBbd2luZG93IHNldEhpZGRlbjpOT107CiAKICAgICBbd2ViVmll
dyBfa2lsbFdlYkNvbnRlbnRQcm9jZXNzQW5kUmVzZXRTdGF0ZV07Ci0gICAgW3dlYlZpZXcgX292
ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDIw
MCwgNTApIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMjAwLCA1MCld
OworICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91
dFNpemU6Q0dTaXplTWFrZSgyMDAsIDUwKSBtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpD
R1NpemVNYWtlKDIwMCwgNTApIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1h
a2UoMjAwLCA1MCldOwogCiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8aGVhZD48bWV0
YSBuYW1lPSd2aWV3cG9ydCcgY29udGVudD0naW5pdGlhbC1zY2FsZT0xJz48L2hlYWQ+IiBiYXNl
VVJMOm5pbF07CiAgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25d
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DU1NW
aWV3cG9ydFVuaXRzLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0NTU1ZpZXdwb3J0VW5pdHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDJhYTA1ODhkY2Q2ZWUyNzY2Y2Jj
MDc5MjY1OTkzYzg0OGVlY2U3Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9DU1NWaWV3cG9ydFVuaXRzLmh0bWwKQEAgLTAsMCArMSwzNSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29u
dGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorCisgICAgPHN0eWxl
PgorYm9keSB7CisgICAgbWFyZ2luOiAwOworfQorZGl2IHsKKyAgICBkaXNwbGF5OiBpbmxpbmUt
YmxvY2s7CisgICAgd2lkdGg6IDFweDsKK30KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
CisgICAgPGRpdiBpZD0idnciIHN0eWxlPSJoZWlnaHQ6IDEwMHZ3OyI+PC9kaXY+CisgICAgPGRp
diBpZD0idmgiIHN0eWxlPSJoZWlnaHQ6IDEwMHZoOyI+PC9kaXY+CisgICAgPGRpdiBpZD0idm1p
biIgc3R5bGU9ImhlaWdodDogMTAwdm1pbjsiPjwvZGl2PgorICAgIDxkaXYgaWQ9InZtYXgiIHN0
eWxlPSJoZWlnaHQ6IDEwMHZtYXg7Ij48L2Rpdj4KKworICAgIDxkaXYgaWQ9InN2dyIgc3R5bGU9
ImhlaWdodDogMTAwc3Z3OyI+PC9kaXY+CisgICAgPGRpdiBpZD0ic3ZoIiBzdHlsZT0iaGVpZ2h0
OiAxMDBzdmg7Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJzdm1pbiIgc3R5bGU9ImhlaWdodDogMTAw
c3ZtaW47Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJzdm1heCIgc3R5bGU9ImhlaWdodDogMTAwc3Zt
YXg7Ij48L2Rpdj4KKworICAgIDxkaXYgaWQ9Imx2dyIgc3R5bGU9ImhlaWdodDogMTAwbHZ3OyI+
PC9kaXY+CisgICAgPGRpdiBpZD0ibHZoIiBzdHlsZT0iaGVpZ2h0OiAxMDBsdmg7Ij48L2Rpdj4K
KyAgICA8ZGl2IGlkPSJsdm1pbiIgc3R5bGU9ImhlaWdodDogMTAwbHZtaW47Ij48L2Rpdj4KKyAg
ICA8ZGl2IGlkPSJsdm1heCIgc3R5bGU9ImhlaWdodDogMTAwbHZtYXg7Ij48L2Rpdj4KKworICAg
IDxkaXYgaWQ9ImR2dyIgc3R5bGU9ImhlaWdodDogMTAwZHZ3OyI+PC9kaXY+CisgICAgPGRpdiBp
ZD0iZHZoIiBzdHlsZT0iaGVpZ2h0OiAxMDBkdmg7Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJkdm1p
biIgc3R5bGU9ImhlaWdodDogMTAwZHZtaW47Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJkdm1heCIg
c3R5bGU9ImhlaWdodDogMTAwZHZtYXg7Ij48L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ1NTVmlld3BvcnRVbml0cy5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ1NTVmlld3BvcnRVbml0cy5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kYzhiMzAyNGZiYmYyZDUxYjRjOGJhNzYyNmEwMGE5ZTVkMGJiYTRmCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9D
U1NWaWV3cG9ydFVuaXRzLm1tCkBAIC0wLDAgKzEsMTUzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgImNvbmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAi
VGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworc3RhdGljIGludCBnZXRFbGVtZW50SGVpZ2h0KFdL
V2ViVmlldyAqd2ViVmlldywgTlNTdHJpbmcgKmVsZW1lbnRJRCkKK3sKKyAgICByZXR1cm4gWyhO
U051bWJlciAqKVt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6W05TU3RyaW5n
IHN0cmluZ1dpdGhGb3JtYXQ6QCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnJUAnKS5nZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQiLCBlbGVtZW50SURdXSBpbnRWYWx1ZV07Cit9CisKK1RF
U1QoQ1NTVmlld3BvcnRVbml0cywgQWxsU2FtZSkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAs
IDMyMCwgNTAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1l
ZDpAIkNTU1ZpZXdwb3J0VW5pdHMiXTsKKworICAgIEVYUEVDVF9FUSgzMjAsIGdldEVsZW1lbnRI
ZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2dyIpKTsKKyAgICBFWFBFQ1RfRVEoNTAwLCBnZXRFbGVt
ZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidmgiKSk7CisgICAgRVhQRUNUX0VRKDMyMCwgZ2V0
RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZtaW4iKSk7CisgICAgRVhQRUNUX0VRKDUw
MCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZtYXgiKSk7CisKKyAgICBFWFBF
Q1RfRVEoMzIwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAic3Z3IikpOworICAg
IEVYUEVDVF9FUSg1MDAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJzdmgiKSk7
CisgICAgRVhQRUNUX0VRKDMyMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInN2
bWluIikpOworICAgIEVYUEVDVF9FUSg1MDAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQo
KSwgQCJzdm1heCIpKTsKKworICAgIEVYUEVDVF9FUSgzMjAsIGdldEVsZW1lbnRIZWlnaHQod2Vi
Vmlldy5nZXQoKSwgQCJsdnciKSk7CisgICAgRVhQRUNUX0VRKDUwMCwgZ2V0RWxlbWVudEhlaWdo
dCh3ZWJWaWV3LmdldCgpLCBAImx2aCIpKTsKKyAgICBFWFBFQ1RfRVEoMzIwLCBnZXRFbGVtZW50
SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZtaW4iKSk7CisgICAgRVhQRUNUX0VRKDUwMCwgZ2V0
RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2bWF4IikpOworCisgICAgRVhQRUNUX0VR
KDMyMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImR2dyIpKTsKKyAgICBFWFBF
Q1RfRVEoNTAwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZoIikpOworICAg
IEVYUEVDVF9FUSgzMjAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJkdm1pbiIp
KTsKKyAgICBFWFBFQ1RfRVEoNTAwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAi
ZHZtYXgiKSk7Cit9CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCitURVNUKENTU1ZpZXdw
b3J0VW5pdHMsIEVtcHR5VW5vYnNjdXJlZFNpemVPdmVycmlkZXMpCit7CisgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0
TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJh
bWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMTQxLCAxNDkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1Np
emVaZXJvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbXVtVW5vYnNjdXJlZFNp
emVPdmVycmlkZTpDR1NpemVaZXJvXTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRl
c3RQYWdlTmFtZWQ6QCJDU1NWaWV3cG9ydFVuaXRzIl07CisKKyAgICBFWFBFQ1RfRVEoMTQxLCBn
ZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidnciKSk7CisgICAgRVhQRUNUX0VRKDE0
OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZoIikpOworICAgIEVYUEVDVF9F
USgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2bWluIikpOworICAgIEVY
UEVDVF9FUSgxNDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2bWF4IikpOwor
CisgICAgRVhQRUNUX0VRKDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInN2
dyIpKTsKKyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCks
IEAic3ZoIikpOworICAgIEVYUEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5n
ZXQoKSwgQCJzdm1pbiIpKTsKKyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdl
YlZpZXcuZ2V0KCksIEAic3ZtYXgiKSk7CisKKyAgICBFWFBFQ1RfRVEoMTQxLCBnZXRFbGVtZW50
SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZ3IikpOworICAgIEVYUEVDVF9FUSgxNDksIGdldEVs
ZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdmgiKSk7CisgICAgRVhQRUNUX0VRKDE0MSwg
Z2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2bWluIikpOworICAgIEVYUEVDVF9F
USgxNDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdm1heCIpKTsKKworICAg
IEVYUEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJkdnciKSk7
CisgICAgRVhQRUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImR2
aCIpKTsKKyAgICBFWFBFQ1RfRVEoMTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCks
IEAiZHZtaW4iKSk7CisgICAgRVhQRUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3
LmdldCgpLCBAImR2bWF4IikpOworfQorCitURVNUKENTU1ZpZXdwb3J0VW5pdHMsIFNhbWVVbm9i
c2N1cmVkU2l6ZU92ZXJyaWRlcykKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAw
KV0pOworICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxh
eW91dFNpemU6Q0dTaXplTWFrZSgxNDEsIDE0OSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMTQxLCAxNDkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlk
ZTpDR1NpemVNYWtlKDE0MSwgMTQ5KV07CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRU
ZXN0UGFnZU5hbWVkOkAiQ1NTVmlld3BvcnRVbml0cyJdOworCisgICAgRVhQRUNUX0VRKDE0MSwg
Z2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZ3IikpOworICAgIEVYUEVDVF9FUSgx
NDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2aCIpKTsKKyAgICBFWFBFQ1Rf
RVEoMTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidm1pbiIpKTsKKyAgICBF
WFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidm1heCIpKTsK
KworICAgIEVYUEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJz
dnciKSk7CisgICAgRVhQRUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgp
LCBAInN2aCIpKTsKKyAgICBFWFBFQ1RfRVEoMTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcu
Z2V0KCksIEAic3ZtaW4iKSk7CisgICAgRVhQRUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3
ZWJWaWV3LmdldCgpLCBAInN2bWF4IikpOworCisgICAgRVhQRUNUX0VRKDE0MSwgZ2V0RWxlbWVu
dEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2dyIpKTsKKyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRF
bGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZoIikpOworICAgIEVYUEVDVF9FUSgxNDEs
IGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdm1pbiIpKTsKKyAgICBFWFBFQ1Rf
RVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZtYXgiKSk7CisKKyAg
ICBFWFBFQ1RfRVEoMTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZ3Iikp
OworICAgIEVYUEVDVF9FUSgxNDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJk
dmgiKSk7CisgICAgRVhQRUNUX0VRKDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgp
LCBAImR2bWluIikpOworICAgIEVYUEVDVF9FUSgxNDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmll
dy5nZXQoKSwgQCJkdm1heCIpKTsKK30KKworVEVTVChDU1NWaWV3cG9ydFVuaXRzLCBEaWZmZXJl
bnRVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlcykKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMy
MCwgNTAwKV0pOworICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWlu
aW11bUxheW91dFNpemU6Q0dTaXplTWFrZSgxMzEsIDEzOSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMTIxLCAx
MjkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbXVtVW5vYnNjdXJlZFNpemVP
dmVycmlkZTpDR1NpemVNYWtlKDE0MSwgMTQ5KV07CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNs
eUxvYWRUZXN0UGFnZU5hbWVkOkAiQ1NTVmlld3BvcnRVbml0cyJdOworCisgICAgRVhQRUNUX0VR
KDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZ3IikpOworICAgIEVYUEVD
VF9FUSgxNDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2aCIpKTsKKyAgICBF
WFBFQ1RfRVEoMTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidm1pbiIpKTsK
KyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidm1h
eCIpKTsKKworICAgIEVYUEVDVF9FUSgxMjEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQo
KSwgQCJzdnciKSk7CisgICAgRVhQRUNUX0VRKDEyOSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3
LmdldCgpLCBAInN2aCIpKTsKKyAgICBFWFBFQ1RfRVEoMTIxLCBnZXRFbGVtZW50SGVpZ2h0KHdl
YlZpZXcuZ2V0KCksIEAic3ZtaW4iKSk7CisgICAgRVhQRUNUX0VRKDEyOSwgZ2V0RWxlbWVudEhl
aWdodCh3ZWJWaWV3LmdldCgpLCBAInN2bWF4IikpOworCisgICAgRVhQRUNUX0VRKDE0MSwgZ2V0
RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2dyIpKTsKKyAgICBFWFBFQ1RfRVEoMTQ5
LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZoIikpOworICAgIEVYUEVDVF9F
USgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdm1pbiIpKTsKKyAgICBF
WFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZtYXgiKSk7
CisKKyAgICBFWFBFQ1RfRVEoMTMxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAi
ZHZ3IikpOworICAgIEVYUEVDVF9FUSgxMzksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQo
KSwgQCJkdmgiKSk7CisgICAgRVhQRUNUX0VRKDEzMSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3
LmdldCgpLCBAImR2bWluIikpOworICAgIEVYUEVDVF9FUSgxMzksIGdldEVsZW1lbnRIZWlnaHQo
d2ViVmlldy5nZXQoKSwgQCJkdm1heCIpKTsKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19G
QU1JTFkpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0ZpeGVkTGF5b3V0U2l6ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRml4ZWRMYXlvdXRTaXplLm1tCmluZGV4IGY4YmJmYjU2NTBjZWM5NzZlYmE1YWQ4ZWI4MmNk
ZmVmZGU3NjJjMWYuLjBiNDNhMGYwYTNhYzJmZWU2NWIwNTY0NjEwMTFmZjBkZjQwZTY3NmEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRml4ZWRMYXlv
dXRTaXplLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRml4
ZWRMYXlvdXRTaXplLm1tCkBAIC0zNyw3ICszNyw3IEBACiBURVNUKFdlYktpdCwgT3ZlcnJpZGVN
aW5pbXVtTGF5b3V0U2l6ZVdpdGhOZWdhdGl2ZUhlaWdodCkKIHsKICAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtl
KDAsIDAsIDMyMCwgNTAwKV0pOwotICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRl
cnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFrZSgzMjAsIC0xMDAwKSBtYXhpbXVtVW5v
YnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDAsIDApXTsKKyAgICBbd2ViVmlldyBfb3Zl
cnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMzIw
LCAtMTAwMCkgbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgwLCAwKSBt
YXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDAsIDApXTsKICAgICBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8bWV0YSBuYW1lPSd2aWV3cG9ydCcg
Y29udGVudD0nd2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEnPjxib2R5PkhlbGxv
PC9ib2R5PiJdOwogICAgIEVYUEVDVF9HRShbd2ViVmlldyBfZml4ZWRMYXlvdXRTaXplXS5oZWln
aHQsIDApOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvU2Ny
b2xsVmlld1Njcm9sbGFiaWxpdHlUZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
aW9zL1Njcm9sbFZpZXdTY3JvbGxhYmlsaXR5VGVzdHMubW0KaW5kZXggYzQ1NWY1MWIzNTI5YTE1
N2FjNTdiOWY0M2U4N2U4ZjAxYTAxMjdlZC4uMGY5MTI0NDgzMTFkODE4OTZmMDI4YWJiODI0ZjMx
NzE4MmZjMzFiOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvU2Ny
b2xsVmlld1Njcm9sbGFiaWxpdHlUZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL2lvcy9TY3JvbGxWaWV3U2Nyb2xsYWJpbGl0eVRlc3RzLm1tCkBAIC0xMTUsNyArMTE1LDcg
QEAgVEVTVChTY3JvbGxWaWV3U2Nyb2xsYWJpbGl0eVRlc3RzLCBTY3JvbGxhYmxlV2l0aE92ZXJm
bG93SGlkZGVuQW5kVmlzaWJsZVVJKQogICAgIG9ic2N1cmVkSW5zZXRzLnJpZ2h0ID0gMDsKIAog
ICAgIFt3ZWJWaWV3IF9zZXRPYnNjdXJlZEluc2V0czpvYnNjdXJlZEluc2V0c107Ci0gICAgW3dl
YlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpDR1Np
emVNYWtlKDMyMCwgNDA2KSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtl
KDMyMCwgNDkwKV07CisgICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhN
aW5pbXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDMyMCwgNDA2KSBtaW5pbXVtVW5vYnNjdXJlZFNp
emVPdmVycmlkZTpDR1NpemVNYWtlKDMyMCwgNDA2KSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVy
cmlkZTpDR1NpemVNYWtlKDMyMCwgNDkwKV07CiAKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5
TG9hZEhUTUxTdHJpbmc6bm9uU2Nyb2xsYWJsZURvY3VtZW50TWFya3VwXTsKICAgICBbd2ViVmll
dyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CkBAIC0xMzQsNyArMTM0LDcgQEAgVEVT
VChTY3JvbGxWaWV3U2Nyb2xsYWJpbGl0eVRlc3RzLCBTY3JvbGxhYmxlV2l0aE92ZXJmbG93SGlk
ZGVuQW5kU2hydW5rVUkpCiAgICAgb2JzY3VyZWRJbnNldHMucmlnaHQgPSAwOwogCiAgICAgW3dl
YlZpZXcgX3NldE9ic2N1cmVkSW5zZXRzOm9ic2N1cmVkSW5zZXRzXTsKLSAgICBbd2ViVmlldyBf
b3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2Uo
dmlld0hlaWdodCwgNDE0KSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtl
KHZpZXdIZWlnaHQsIDQxNCldOworICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRl
cnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFrZSh2aWV3SGVpZ2h0LCA0MTQpIG1pbmlt
dW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2Uodmlld0hlaWdodCwgNDE0KSBtYXhp
bXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKHZpZXdIZWlnaHQsIDQxNCldOwog
CiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOm5vblNjcm9sbGFibGVE
b2N1bWVudE1hcmt1cF07CiAgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRh
dGVdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441036</attachid>
            <date>2021-10-12 20:43:25 -0700</date>
            <delta_ts>2021-10-18 15:18:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219287-20211012204324.patch</filename>
            <type>text/plain</type>
            <size>108485</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3ZmYzNmEyODhiMTYxM2FiODIxNzM2OTJmY2I1MTI3ZDQ5MTU3NzJmLi4z
ZWRlODQyOWFkY2RjNGExMjM4MjhkMjA2MjAxOTFjOGQ3MzkwNzM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTE0IEBACisyMDIxLTEwLTEyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KKworICAgICAgICBbY3NzLXZhbHVlcy00XSBTdXBwb3J0IHNtYWxsIChzdiopLCBsYXJnZSAo
bHYqKSBhbmQgZHluYW1pYyAoZHYqKSB2aWV3cG9ydCB1bml0cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5Mjg3CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTg1NzM3MD4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAg
ICAgICAgU3BlYzogPGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTQvI3ZpZXdw
b3J0LXZhcmlhbnRzPgorCisgICAgICAgIFRlc3RzOiBDU1NWaWV3cG9ydFVuaXRzLkFsbFNhbWUK
KyAgICAgICAgICAgICAgIENTU1ZpZXdwb3J0VW5pdHMuRW1wdHlVbm9ic2N1cmVkU2l6ZU92ZXJy
aWRlcworICAgICAgICAgICAgICAgQ1NTVmlld3BvcnRVbml0cy5TYW1lVW5vYnNjdXJlZFNpemVP
dmVycmlkZXMKKyAgICAgICAgICAgICAgIENTU1ZpZXdwb3J0VW5pdHMuRGlmZmVyZW50VW5vYnNj
dXJlZFNpemVPdmVycmlkZXMKKworICAgICAgICAqIGNzcy9DU1NVbml0cy5oOgorICAgICAgICAq
IGNzcy9DU1NVbml0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAg
ICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjppc1ZpZXdwb3J0UGVyY2VudGFnZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNWaWV3cG9ydFBlcmNlbnRhZ2VXaWR0aCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNWaWV3cG9ydFBlcmNlbnRh
Z2VIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
OmlzVmlld3BvcnRQZXJjZW50YWdlTWF4KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1ByaW1pdGl2ZVZhbHVlOjppc1ZpZXdwb3J0UGVyY2VudGFnZU1pbik6IERlbGV0ZWQuCisgICAg
ICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFs
aWRDU1NVbml0VHlwZUZvckRvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6aXNT
dHJpbmdUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjbGVhbnVw
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlVW56b29tZWRO
b25DYWxjTGVuZ3RoRG91YmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
Ojpjb21wdXRlTm9uQ2FsY0xlbmd0aERvdWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6dW5pdFR5cGVTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmZvcm1hdE51bWJlckZvckN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmVxdWFscyBjb25zdCk6CisgICAgICAgICogY3Nz
L0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaDoKKyAgICAgICAgKiBjc3MvQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhOjpkZWZhdWx0Vmlld3BvcnRGYWN0b3IgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OnNtYWxsVmlld3BvcnRGYWN0b3IgY29u
c3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6
OmxhcmdlVmlld3BvcnRGYWN0b3IgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OmR5bmFtaWNWaWV3cG9ydEZhY3RvciBjb25zdCk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6dmlld3Bv
cnRXaWR0aEZhY3RvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhOjp2aWV3cG9ydEhlaWdodEZhY3RvciBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjp2aWV3cG9ydE1p
bkZhY3RvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhOjp2aWV3cG9ydE1heEZhY3RvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjc3NQ
cmltaXRpdmVWYWx1ZVVuaXRGcm9tVHJpZSk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzOjpjb25zdW1lTGVuZ3RoUmF3V2l0aEtub3duVG9rZW5UeXBlRGltZW5zaW9uKToK
KyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjQ2F0ZWdvcnlNYXBwaW5nLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNhbGNVbml0Q2F0ZWdvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Y2FsY3VsYXRp
b25DYXRlZ29yeUZvckNvbWJpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc0RvdWJsZVZh
bHVlKToKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgdGhlIGZvbGxvd2luZyBhbmQg
Y29udmVydGluZyB0aGVtIHRvIHRoZWlyIHVuZGVybHlpbmcgdmFsdWU6CisgICAgICAgIC0gYHN2
d2AgInNtYWxsIHZpZXdwb3J0IHdpZHRoIiBpcyB0aGUgd2lkdGggb2YgdGhlIHZpZXdwb3J0IGlm
IGFsbCBVQSBpbnRlcmZhY2VzIGFyZSBtYXhpbWl6ZWQKKyAgICAgICAgLSBgc3ZoYCAic21hbGwg
dmlld3BvcnQgaGVpZ2h0IiBpcyB0aGUgaGVpZ2h0IG9mIHRoZSB2aWV3cG9ydCBpZiBhbGwgVUEg
aW50ZXJmYWNlcyBhcmUgbWF4aW1pemVkCisgICAgICAgIC0gYHN2bWluYCAic21hbGwgdmlld3Bv
cnQgc21hbGwgZGltZW5zaW9uIiBpcyBgbWluKHN2dywgc3ZoKWAKKyAgICAgICAgLSBgc3ZtYXhg
ICJzbWFsbCB2aWV3cG9ydCBsYXJnZSBkaW1lbnNpb24iIGlzIGBtYXgoc3Z3LCBzdmgpYAorICAg
ICAgICAtIGBsdndgICJsYXJnZSB2aWV3cG9ydCB3aWR0aCIgaXMgdGhlIHdpZHRoIG9mIHRoZSB2
aWV3cG9ydCBpZiBhbGwgVUEgaW50ZXJmYWNlcyBhcmUgbWluaW1pemVkCisgICAgICAgIC0gYGx2
aGAgImxhcmdlIHZpZXdwb3J0IGhlaWdodCIgaXMgdGhlIGhlaWdodCBvZiB0aGUgdmlld3BvcnQg
aWYgYWxsIFVBIGludGVyZmFjZXMgYXJlIG1pbmltaXplZAorICAgICAgICAtIGBsdm1pbmAgImxh
cmdlIHZpZXdwb3J0IHNtYWxsIGRpbWVuc2lvbiIgaXMgYG1pbihsdncsIGx2aClgCisgICAgICAg
IC0gYGx2bWF4YCAibGFyZ2Ugdmlld3BvcnQgbGFyZ2UgZGltZW5zaW9uIiBpcyBgbWF4KGx2dywg
bHZoKWAKKyAgICAgICAgLSBgZHZ3YCAiZHluYW1pYyB2aWV3cG9ydCB3aWR0aCIgaXMgdGhlIHdp
ZHRoIG9mIHRoZSB2aWV3cG9ydCB3aXRoIGFsbCBVQSBpbnRlcmZhY2VzIGJlaW5nIGluIHdoYXRl
dmVyIHN0YXRlIHRoZXkgYXJlIGN1cnJlbnRseSBpbgorICAgICAgICAtIGBkdmhgICJkeW5hbWlj
IHZpZXdwb3J0IGhlaWdodCIgaXMgdGhlIGhlaWdodCBvZiB0aGUgdmlld3BvcnQgd2l0aCBhbGwg
VUEgaW50ZXJmYWNlcyBiZWluZyBpbiB3aGF0ZXZlciBzdGF0ZSB0aGV5IGFyZSBjdXJyZW50bHkg
aW4KKyAgICAgICAgLSBgZHZtaW5gICJkeW5hbWljIHZpZXdwb3J0IHNtYWxsIGRpbWVuc2lvbiIg
aXMgYG1pbihkdncsIGR2aClgCisgICAgICAgIC0gYGR2bWF4YCAiZHluYW1pYyB2aWV3cG9ydCBs
YXJnZSBkaW1lbnNpb24iIGlzIGBtYXgoZHZ3LCBkdmgpYAorICAgICAgICBUaGUgZXhpc3Rpbmcg
YHZ3YC9gdmhgL2B2bWluYC9gdm1heGAgY29ycmVzcG9uZCB0byB0aGUgIlVBLWRlZmF1bHQgdmll
d3BvcnQiLCB3aGljaCBXZWJLaXQKKyAgICAgICAgY29uc2lkZXJzIGVxdWl2YWxlbnQgdG8gdGhl
ICJsYXJnZSB2aWV3cG9ydCIgYGx2d2AvYGx2aGAvYGx2bWluYC9gbHZtYXhgLgorCisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnVub2JzY3VyZWRDb250ZW50U2l6ZUNoYW5nZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpwZXJmb3JtU2l6ZVRvQ29udGVudEF1dG9TaXpl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZW5hYmxlQXV0b1NpemVNb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y2FsY3VsYXRlU2l6ZUZvckNTU1ZpZXdwb3J0VW5p
dHNPdmVycmlkZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpj
bGVhclNpemVPdmVycmlkZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKTogUmVuYW1lZCBmcm9t
IGBjbGVhclZpZXdwb3J0U2l6ZU92ZXJyaWRlRm9yQ1NTVmlld3BvcnRVbml0c2AuCisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVZpZXc6OnNldFNpemVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cyk6
IFJlbmFtZWQgZnJvbSBgc2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0c2AuCisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6Om92ZXJyaWRlV2lkdGhGb3JDU1NEZWZhdWx0Vmlld3Bv
cnRVbml0cyk6IFJlbmFtZWQgZnJvbSBgYC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
cmVzZXRPdmVycmlkZGVuV2lkdGhGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cyk6IFJlbmFtZWQg
ZnJvbSBgYC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6b3ZlcnJpZGVTaXplRm9yQ1NT
RGVmYXVsdFZpZXdwb3J0VW5pdHMpOiBSZW5hbWVkIGZyb20gYGAuCisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OnNpemVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cyBjb25zdCk6IFJlbmFt
ZWQgZnJvbSBgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0c2AuCisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OmNsZWFyU2l6ZU92ZXJyaWRlRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRz
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNldFNpemVGb3JDU1NTbWFs
bFZpZXdwb3J0VW5pdHMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6b3Zl
cnJpZGVXaWR0aEZvckNTU1NtYWxsVmlld3BvcnRVbml0cyk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3OjpyZXNldE92ZXJyaWRkZW5XaWR0aEZvckNTU1NtYWxsVmlld3BvcnRV
bml0cyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpvdmVycmlkZVNpemVG
b3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6c2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cyBjb25zdCk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzaXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzIGNvbnN0
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNpemVGb3JDU1NEeW5hbWlj
Vmlld3BvcnRVbml0cyBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJW
aWV3Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVmlldzo6c2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzIGNvbnN0KTog
UmVuYW1lZCBmcm9tIGB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzYC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclZpZXc6OnNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMgY29uc3Qp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnNpemVGb3JDU1NMYXJnZVZp
ZXdwb3J0VW5pdHMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6
OnNpemVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cyBjb25zdCk6IEFkZGVkLgorICAgICAgICBG
b3IgInNtYWxsIHZpZXdwb3J0IiBgc3Z3YC9gc3ZoYC9gc3ZtaW5gL2Bzdm1heGAsIGFkZCBzdXBw
b3J0IGZvciBhIG5ldyBgSW50U2l6ZWAgbWVtYmVyCisgICAgICAgIHRoYXQgaXMgcHJvcGFnYXRl
ZCBmcm9tIHRoZSBVSVByb2Nlc3MuIElmIG5vdCBzZXQsIGZhbGwgYmFjayB0byAiVUEtZGVmYXVs
dCB2aWV3cG9ydCIgYHZ3YC9gdmhgL2B2bWluYC9gdm1heGAuCisgICAgICAgIEZvciAibGFyZ2Ug
dmlld3BvcnQiIGBsdndgL2BsdmhgL2Bsdm1pbmAvYGx2bWF4YCwgdXNlIHRoZSBzYW1lIHZhbHVl
IGFzICJVQS1kZWZhdWx0IHZpZXdwb3J0IiBgdndgL2B2aGAvYHZtaW5gL2B2bWF4YC4KKyAgICAg
ICAgRm9yICJkeW5hbWljIHZpZXdwb3J0IiBgZHZ3YC9gZHZoYC9gZHZtaW5gL2Bkdm1heGAsIHVz
ZSB0aGUgc2FtZSB2YWx1ZSBhcyBgd2luZG93LmlubmVyKmAuCisgICAgICAgIERyaXZlLWJ5OiBS
ZW5hbWUgYHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHNgIHRvIGBzaXplRm9yQ1NTRGVm
YXVsdFZpZXdwb3J0VW5pdHNgIGZvciBjbGFyaXR5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvRmxvYXRTaXplLmg6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFNpemU6Om1pbkRpbWVu
c2lvbiBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRTaXplOjptYXhEaW1l
bnNpb24gY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRTaXpl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnRTaXplOjptaW5EaW1lbnNpb24gY29uc3QpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkludFNpemU6Om1heERpbWVuc2lvbiBjb25zdCk6IEFkZGVk
LgorICAgICAgICBBZGQgdXRpbGl0eS9oZWxwZXIgbWV0aG9kcyBmb3IgcmV0dXJuaW5nIHRoZSBt
aW5pbXVtL21heGltdW0gb2YgdGhlIHdpZHRoIHZzIGhlaWdodC4KKworICAgICAgICAqIGNzcy9E
ZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXBy
ZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6cHJpbWl0aXZlVHlwZSBjb25zdCk6CisgICAgICAg
IERvbid0IGBBU1NFUlRfTk9UX1JFQUNIRURgIG5vdyB0aGF0IHRoZXJlIGFyZSBuZXcgdW5pdCB0
eXBlcy4KKwogMjAyMS0xMC0xMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBTY3JvbGxpbmcgdGhyZWFkIGFuaW1hdGlvbnMgbmVlZCB0byBjb21taXQg
bGF5ZXJzIG9uIHRoZSBzY3JvbGxpbmcgdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRl
eCBlMWFlYjdkZjUyMTQxMGI3MjFjOWUyZGYxODU5NDU3OTliZDEwNDAzLi4xNGM5MTcyZGM3N2I3
ZTc2MWE2OTcwN2FiNzZiMWU5YjAzNmI5MmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAyMS0xMC0xMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CisKKyAgICAgICAgW2Nzcy12YWx1ZXMtNF0gU3VwcG9ydCBzbWFsbCAoc3YqKSwgbGFyZ2Ug
KGx2KikgYW5kIGR5bmFtaWMgKGR2Kikgdmlld3BvcnQgdW5pdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTI4NworICAgICAgICA8cmRhcjovL3By
b2JsZW0vNzE4NTczNzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTQ29tcGxldGlvbnMuanM6CisKIDIwMjEt
MTAtMTEgIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogYWRkIFRhYkJhciBjb250ZXh0IG1lbnUgc3VwcG9ydCBmb3IgV0kuV2ViSW5zcGVjdG9yRXh0
ZW5zaW9uVGFiQ29udGVudFZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzEyZGFhZTA3N2UzZGJkM2IyODY0NGQw
MGFmY2ExNGFiZGZjMDAwZi4uZDM4YTdjZjA0NjNhZWRlMTBkZjc0MDZhM2I4M2FiNGU1MTdhZWI5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MiBAQAorMjAyMS0xMC0xMiAgRGV2aW4gUm91c3NvICA8
ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW2Nzcy12YWx1ZXMtNF0gU3VwcG9ydCBzbWFs
bCAoc3YqKSwgbGFyZ2UgKGx2KikgYW5kIGR5bmFtaWMgKGR2Kikgdmlld3BvcnQgdW5pdHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTI4NworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNzE4NTczNzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2lt
b24gRnJhc2VyLgorCisgICAgICAgIFNwZWM6IDxodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nz
LXZhbHVlcy00LyN2aWV3cG9ydC12YXJpYW50cz4KKworICAgICAgICBUZXN0czogQ1NTVmlld3Bv
cnRVbml0cy5BbGxTYW1lCisgICAgICAgICAgICAgICBDU1NWaWV3cG9ydFVuaXRzLkVtcHR5VW5v
YnNjdXJlZFNpemVPdmVycmlkZXMKKyAgICAgICAgICAgICAgIENTU1ZpZXdwb3J0VW5pdHMuU2Ft
ZVVub2JzY3VyZWRTaXplT3ZlcnJpZGVzCisgICAgICAgICAgICAgICBDU1NWaWV3cG9ydFVuaXRz
LkRpZmZlcmVudFVub2JzY3VyZWRTaXplT3ZlcnJpZGVzCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tX
ZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Byb2Nlc3NXaWxsU3dhcE9yRGlk
RXhpdF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2Rpc3BhdGNoU2V0TWluaW11bVVub2JzY3Vy
ZWRTaXplOl0pOiBBZGRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9mcmFtZU9yQm91bmRzQ2hh
bmdlZF0pOgorICAgICAgICAoYWN0aXZlTWluaW11bVVub2JzY3VyZWRTaXplKTogQWRkZWQuCisg
ICAgICAgICgtW1dLV2ViVmlldyBfZGlkQ29tcGxldGVBbmltYXRlZFJlc2l6ZV0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX21pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlXSk6IEFkZGVkLgor
ICAgICAgICAoLVtXS1dlYlZpZXcgX3NldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOl0p
OiBBZGRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9iZWdpbkFuaW1hdGVkUmVzaXplV2l0aFVw
ZGF0ZXM6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJz
V2l0aE1pbmltdW1MYXlvdXRTaXplOm1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOl0pOgor
ICAgICAgICAoLVtXS1dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVt
TGF5b3V0U2l6ZTptaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTptYXhpbXVtVW5vYnNjdXJl
ZFNpemVPdmVycmlkZTpdKTogQWRkZWQuCisgICAgICAgIFJlcXVpcmUgdGhhdCBjbGllbnRzIHdo
byBvdmVycmlkZSBsYXlvdXQgcGFyYW1ldGVycyB0byBwcm92aWRlIGJvdGggKG9yIG5laXRoZXIp
IGEgbWF4aW11bQorICAgICAgICBhbmQgbWluaW11bSB1bm9ic2N1cmVkIHNpemUgb3ZlcnJpZGUs
IHRoZSBsYXR0ZXIgYmVpbmcgZm9yICJzbWFsbCB2aWV3cG9ydCIgYHN2d2AvYHN2aGAvYHN2bWlu
YC9gc3ZtYXhgLgorICAgICAgICAibGFyZ2Ugdmlld3BvcnQiIGBsdndgL2BsdmhgL2Bsdm1pbmAv
YGx2bWF4YCBhbmQgImR5bmFtaWMgdmlld3BvcnQiIGBkdndgL2BkdmhgL2Bkdm1pbmAvYGR2bWF4
YAorICAgICAgICAoYXMgd2VsbCBhcyB0aGUgZXhpc3RpbmcgIlVBLWRlZmF1bHQgdmlld3BvcnQi
IGB2d2AvYHZoYC9gdm1pbmAvYHZtYXhgKSBjYW4gYmUgZGVyaXZlZCBmcm9tCisgICAgICAgIGV4
aXN0aW5nIGxvZ2ljLiBTZWUgdGhlIFdlYkNvcmUgQ2hhbmdlTG9nIGZvciBtb3JlIGluZm9ybWF0
aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZSk6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRNaW5pbXVtVW5vYnNj
dXJlZFNpemUpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHluYW1pY1ZpZXdw
b3J0U2l6ZVVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVZpZXdwb3J0
U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpOgorICAgICAgICBBZGQgcGlwaW5nIGZyb20gdGhlIFVJ
UHJvY2VzcyB0byB0aGUgV2ViUHJvY2VzcyBmb3IgdGhlIG5ldyBtaW5pbXVtIHVub2JzY3VyZWQg
c2l6ZSBvdmVycmlkZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1
bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0Nv
bnRyb2xsZXIgdmlld1dpbGxUcmFuc2l0aW9uVG9TaXplOndpdGhUcmFuc2l0aW9uQ29vcmRpbmF0
b3I6XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXJJT1MubW06CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXIgZW50ZXJGdWxsU2NyZWVuXSk6CisgICAgICAgIFJlcGxhY2UgYF9vdmVycmlkZUxheW91
dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6bWF4aW11bVVub2JzY3VyZWRTaXplT3Zl
cnJpZGU6YCB3aXRoCisgICAgICAgIGBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmlt
dW1MYXlvdXRTaXplOm1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOm1heGltdW1Vbm9ic2N1
cmVkU2l6ZU92ZXJyaWRlOmAuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFZpZXdwb3J0U2l6ZUZvckNTU1Zp
ZXdwb3J0VW5pdHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVu
dDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSk6CisgICAgICAgIERyaXZlLWJ5OiBS
ZW5hbWUgYHNldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHNgIHRvIGBzZXRTaXplRm9y
Q1NTRGVmYXVsdFZpZXdwb3J0VW5pdHNgIGZvciBjbGFyaXR5LgorCiAyMDIxLTEwLTEyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNjcm9sbGluZyB0
aHJlYWQgYW5pbWF0aW9ucyBuZWVkIHRvIGNvbW1pdCBsYXllcnMgb24gdGhlIHNjcm9sbGluZyB0
aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCmluZGV4IGM0N2Vi
N2M0ZTQyYzI4YWFmYzJmYWFkM2QxNmI5ODkyM2RkYmY5M2QuLmE5ZDAyMjZmOWNkZDUwNTcyYTJk
YmM4YTU5OTA4Njk3MTcxNjg0YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cmltaXRpdmVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlLmNwcApAQCAtNjAsNiArNjAsMTAgQEAgc3RhdGljIGlubGluZSBib29sIGlzVmFsaWRDU1NV
bml0VHlwZUZvckRvdWJsZUNvbnZlcnNpb24oQ1NTVW5pdFR5cGUgdW5pdFR5cGUpCiAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0NNOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ERUc6CiAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RJTUVOU0lPTjoKKyAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDoKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfRFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRU1TOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19F
WFM6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0ZSOgpAQCAtNzYsMTEgKzgwLDE5IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkQ1NTVW5pdFR5cGVGb3JEb3VibGVDb252ZXJzaW9uKENT
U1VuaXRUeXBlIHVuaXRUeXBlKQogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QWDoKICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfUToKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTEhTOgor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0xWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjoKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfTFZXOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19STEhTOgogICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19RVUlSS1lfRU1TOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19SQUQ6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JFTVM6CiAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1M6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDoKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfU1ZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOgor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1RVUk46CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOgogICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19WTUFYOgpAQCAtMTM5LDYgKzE1MSwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNT
dHJpbmdUeXBlKENTU1VuaXRUeXBlIHR5cGUpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQ
Q006CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQSToKICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFBQWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZIOgorICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19EVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
WDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRU1TOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19FWFM6CkBAIC0xNDksNiArMTY1LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1N0cmlu
Z1R5cGUoQ1NTVW5pdFR5cGUgdHlwZSkKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfSURFTlQ6
CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lOOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19LSFo6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDoKKyAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfTFZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUlOOgorICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX01NOgog
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19NUzoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
TlVNQkVSOgpAQCAtMTY4LDYgKzE4OCwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTdHJpbmdU
eXBlKENTU1VuaXRUeXBlIHR5cGUpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JFTVM6CiAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JHQkNPTE9SOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19TOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1NWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjoKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TSEFQ
RToKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVFVSTjoKICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfVU5JQ09ERV9SQU5HRToKQEAgLTUxNiw2ICs1NDAsMTggQEAgdm9pZCBDU1NQcmltaXRp
dmVWYWx1ZTo6Y2xlYW51cCgpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOgogICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFY
OgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1NWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU46CisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1NWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZN
SU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19EVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfRFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOgog
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUFBYOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19YOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUEk6CkBAIC02NDUsMjEgKzY4MSwzNyBA
QCBkb3VibGUgQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVVbnpvb21lZE5vbkNhbGNMZW5ndGhE
b3VibGUoQ1NTVW5pdFR5cGUgcHJpbWl0aQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgcmV0dXJuIC0xLjA7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOgotICAg
ICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnZpZXdwb3J0U2l6ZUZvckNTU1Zp
ZXdwb3J0VW5pdHMoKS5oZWlnaHQoKSAvIDEwMC4wICogdmFsdWUgOiAwOworICAgICAgICByZXR1
cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnNpemVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0
cygpLmhlaWdodCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1ZXOgotICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnZpZXdwb3J0
U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKS53aWR0aCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7Cisg
ICAgICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVuZGVyVmlldy0+c2l6ZUZvckNTU0RlZmF1bHRW
aWV3cG9ydFVuaXRzKCkud2lkdGgoKSAvIDEwMC4wICogdmFsdWUgOiAwOwogICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19WTUFYOgotICAgICAgICBpZiAocmVuZGVyVmlldykgewotICAgICAgICAg
ICAgSW50U2l6ZSB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzID0gcmVuZGVyVmlldy0+
dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpOwotICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bWF4KHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMud2lkdGgoKSwgdmlld3BvcnRT
aXplRm9yQ1NTVmlld3BvcnRVbml0cy5oZWlnaHQoKSkgLyAxMDAuMCAqIHZhbHVlOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXcgPyBy
ZW5kZXJWaWV3LT5zaXplRm9yQ1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMoKS5tYXhEaW1lbnNpb24o
KSAvIDEwMC4wICogdmFsdWUgOiB2YWx1ZTsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1J
TjoKLSAgICAgICAgaWYgKHJlbmRlclZpZXcpIHsKLSAgICAgICAgICAgIEludFNpemUgdmlld3Bv
cnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyA9IHJlbmRlclZpZXctPnZpZXdwb3J0U2l6ZUZvckNT
U1ZpZXdwb3J0VW5pdHMoKTsKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om1pbih2aWV3cG9ydFNp
emVGb3JDU1NWaWV3cG9ydFVuaXRzLndpZHRoKCksIHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0
VW5pdHMuaGVpZ2h0KCkpIC8gMTAwLjAgKiB2YWx1ZTsKLSAgICAgICAgfQotICAgICAgICByZXR1
cm4gdmFsdWU7CisgICAgICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVuZGVyVmlldy0+c2l6ZUZv
ckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCkubWluRGltZW5zaW9uKCkgLyAxMDAuMCAqIHZhbHVl
IDogdmFsdWU7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDoKKyAgICAgICAgcmV0dXJu
IHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCku
aGVpZ2h0KCkgLyAxMDAuMCAqIHZhbHVlIDogMDsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
U1ZXOgorICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnNpemVGb3JDU1NT
bWFsbFZpZXdwb3J0VW5pdHMoKS53aWR0aCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOgorICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJl
bmRlclZpZXctPnNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoKS5tYXhEaW1lbnNpb24oKSAv
IDEwMC4wICogdmFsdWUgOiB2YWx1ZTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU46
CisgICAgICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVuZGVyVmlldy0+c2l6ZUZvckNTU1NtYWxs
Vmlld3BvcnRVbml0cygpLm1pbkRpbWVuc2lvbigpIC8gMTAwLjAgKiB2YWx1ZSA6IHZhbHVlOwor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAgICAgIHJldHVybiByZW5kZXJWaWV3
ID8gcmVuZGVyVmlldy0+c2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpLmhlaWdodCgpIC8g
MTAwLjAgKiB2YWx1ZSA6IDA7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzoKKyAgICAg
ICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NTTGFyZ2VWaWV3cG9y
dFVuaXRzKCkud2lkdGgoKSAvIDEwMC4wICogdmFsdWUgOiAwOworICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19MVk1BWDoKKyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5z
aXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKCkubWF4RGltZW5zaW9uKCkgLyAxMDAuMCAqIHZh
bHVlIDogdmFsdWU7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUlOOgorICAgICAgICBy
ZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5p
dHMoKS5taW5EaW1lbnNpb24oKSAvIDEwMC4wICogdmFsdWUgOiB2YWx1ZTsKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfRFZIOgorICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZp
ZXctPnNpemVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cygpLmhlaWdodCgpIC8gMTAwLjAgKiB2
YWx1ZSA6IDA7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKKyAgICAgICAgcmV0dXJu
IHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMo
KS53aWR0aCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0RWTUFYOgorICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnNpemVGb3JD
U1NEeW5hbWljVmlld3BvcnRVbml0cygpLm1heERpbWVuc2lvbigpIC8gMTAwLjAgKiB2YWx1ZSA6
IHZhbHVlOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjoKKyAgICAgICAgcmV0dXJu
IHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMo
KS5taW5EaW1lbnNpb24oKSAvIDEwMC4wICogdmFsdWUgOiB2YWx1ZTsKICAgICBkZWZhdWx0Ogog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIC0xLjA7CkBAIC03
MDYsMTYgKzc1OCw1MiBAQCBkb3VibGUgQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVOb25DYWxj
TGVuZ3RoRG91YmxlKGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbgogICAgICAgICBicmVhazsK
IAogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSDoKLSAgICAgICAgcmV0dXJuIHZhbHVlICog
Y29udmVyc2lvbkRhdGEudmlld3BvcnRIZWlnaHRGYWN0b3IoKTsKKyAgICAgICAgcmV0dXJuIHZh
bHVlICogY29udmVyc2lvbkRhdGEuZGVmYXVsdFZpZXdwb3J0RmFjdG9yKCkuaGVpZ2h0KCk7CiAK
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVlc6Ci0gICAgICAgIHJldHVybiB2YWx1ZSAqIGNv
bnZlcnNpb25EYXRhLnZpZXdwb3J0V2lkdGhGYWN0b3IoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVl
ICogY29udmVyc2lvbkRhdGEuZGVmYXVsdFZpZXdwb3J0RmFjdG9yKCkud2lkdGgoKTsKIAogICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgotICAgICAgICByZXR1cm4gdmFsdWUgKiBjb252
ZXJzaW9uRGF0YS52aWV3cG9ydE1heEZhY3RvcigpOworICAgICAgICByZXR1cm4gdmFsdWUgKiBj
b252ZXJzaW9uRGF0YS5kZWZhdWx0Vmlld3BvcnRGYWN0b3IoKS5tYXhEaW1lbnNpb24oKTsKIAog
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOgotICAgICAgICByZXR1cm4gdmFsdWUgKiBj
b252ZXJzaW9uRGF0YS52aWV3cG9ydE1pbkZhY3RvcigpOworICAgICAgICByZXR1cm4gdmFsdWUg
KiBjb252ZXJzaW9uRGF0YS5kZWZhdWx0Vmlld3BvcnRGYWN0b3IoKS5taW5EaW1lbnNpb24oKTsK
KworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAgICAgIHJldHVybiB2YWx1ZSAq
IGNvbnZlcnNpb25EYXRhLnNtYWxsVmlld3BvcnRGYWN0b3IoKS5oZWlnaHQoKTsKKworICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNp
b25EYXRhLnNtYWxsVmlld3BvcnRGYWN0b3IoKS53aWR0aCgpOworCisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1NWTUFYOgorICAgICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0YS5z
bWFsbFZpZXdwb3J0RmFjdG9yKCkubWF4RGltZW5zaW9uKCk7CisKKyAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfU1ZNSU46CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLnNt
YWxsVmlld3BvcnRGYWN0b3IoKS5taW5EaW1lbnNpb24oKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19MVkg6CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmxhcmdl
Vmlld3BvcnRGYWN0b3IoKS5oZWlnaHQoKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19M
Vlc6CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmxhcmdlVmlld3BvcnRG
YWN0b3IoKS53aWR0aCgpOworCisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOgorICAg
ICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0YS5sYXJnZVZpZXdwb3J0RmFjdG9yKCku
bWF4RGltZW5zaW9uKCk7CisKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46CisgICAg
ICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmxhcmdlVmlld3BvcnRGYWN0b3IoKS5t
aW5EaW1lbnNpb24oKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6CisgICAgICAg
IHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmR5bmFtaWNWaWV3cG9ydEZhY3RvcigpLmhl
aWdodCgpOworCisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKKyAgICAgICAgcmV0dXJu
IHZhbHVlICogY29udmVyc2lvbkRhdGEuZHluYW1pY1ZpZXdwb3J0RmFjdG9yKCkud2lkdGgoKTsK
KworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDoKKyAgICAgICAgcmV0dXJuIHZhbHVl
ICogY29udmVyc2lvbkRhdGEuZHluYW1pY1ZpZXdwb3J0RmFjdG9yKCkubWF4RGltZW5zaW9uKCk7
CisKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46CisgICAgICAgIHJldHVybiB2YWx1
ZSAqIGNvbnZlcnNpb25EYXRhLmR5bmFtaWNWaWV3cG9ydEZhY3RvcigpLm1pbkRpbWVuc2lvbigp
OwogCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xIUzoKICAgICAgICAgQVNTRVJUKGNvbnZl
cnNpb25EYXRhLnN0eWxlKCkpOwpAQCAtOTg0LDYgKzEwNzIsMTggQEAgU3RyaW5nIENTU1ByaW1p
dGl2ZVZhbHVlOjp1bml0VHlwZVN0cmluZyhDU1NVbml0VHlwZSB1bml0VHlwZSkKICAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOiByZXR1cm4gInZoIjsKICAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1ZNSU46IHJldHVybiAidm1pbiI7CiAgICAgICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19WTUFYOiByZXR1cm4gInZtYXgiOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfU1ZXOiByZXR1cm4gInN2dyI7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6
IHJldHVybiAic3ZoIjsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOiByZXR1
cm4gInN2bWluIjsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOiByZXR1cm4g
InN2bWF4IjsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzogcmV0dXJuICJsdnci
OworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOiByZXR1cm4gImx2aCI7CisgICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjogcmV0dXJuICJsdm1pbiI7CisgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDogcmV0dXJuICJsdm1heCI7CisgICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6IHJldHVybiAiZHZ3IjsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0RWSDogcmV0dXJuICJkdmgiOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFZNSU46IHJldHVybiAiZHZtaW4iOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfRFZNQVg6IHJldHVybiAiZHZtYXgiOwogICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
RFBQWDogcmV0dXJuICJkcHB4IjsKICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1g6IHJl
dHVybiAieCI7CiAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUEk6IHJldHVybiAiZHBp
IjsKQEAgLTExNDYsNiArMTI0NiwzMCBAQCBBTFdBWVNfSU5MSU5FIFN0cmluZyBDU1NQcmltaXRp
dmVWYWx1ZTo6Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHJl
dHVybiBmb3JtYXROdW1iZXJWYWx1ZSgidm1pbiIpOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19WTUFYOgogICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoInZtYXgiKTsKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgorICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFs
dWUoInN2dyIpOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAgICAgIHJldHVy
biBmb3JtYXROdW1iZXJWYWx1ZSgic3ZoIik7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NW
TUlOOgorICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoInN2bWluIik7CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOgorICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFs
dWUoInN2bWF4Iik7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzoKKyAgICAgICAgcmV0
dXJuIGZvcm1hdE51bWJlclZhbHVlKCJsdnciKTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
TFZIOgorICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoImx2aCIpOworICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19MVk1JTjoKKyAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlclZhbHVl
KCJsdm1pbiIpOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDoKKyAgICAgICAgcmV0
dXJuIGZvcm1hdE51bWJlclZhbHVlKCJsdm1heCIpOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19EVlc6CisgICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJWYWx1ZSgiZHZ3Iik7CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlclZhbHVl
KCJkdmgiKTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46CisgICAgICAgIHJldHVy
biBmb3JtYXROdW1iZXJWYWx1ZSgiZHZtaW4iKTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
RFZNQVg6CisgICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJWYWx1ZSgiZHZtYXgiKTsKICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfSURFTlQ6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1VO
SUNPREVfUkFOR0U6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NBTENfUEVSQ0VOVEFHRV9X
SVRIX05VTUJFUjoKQEAgLTEyMTMsNiArMTMzNywxOCBAQCBib29sIENTU1ByaW1pdGl2ZVZhbHVl
OjplcXVhbHMoY29uc3QgQ1NTUHJpbWl0aXZlVmFsdWUmIG90aGVyKSBjb25zdAogICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19WSDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjoKICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
U1ZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX1NWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDoKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfTFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19MVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZXOgorICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19EVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOgorICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRlI6
CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1E6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0xIUzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKaW5kZXggOGI4MmI5YmE5
NDk2YWEwOTRiZGZlZGJhOGRmOTE5Y2UyZWJhN2YzMy4uYjc0NzljN2JmN2Q5NTQ3NTA4NzkyOTQ5
NmY0ZDRiMWE5ZWQ1ODg2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgK
QEAgLTExMSwxMCArMTExLDYgQEAgcHVibGljOgogICAgIGJvb2wgaXNYKCkgY29uc3QgeyByZXR1
cm4gcHJpbWl0aXZlVHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1NfWDsgfQogICAgIGJvb2wgaXNS
ZXNvbHV0aW9uKCkgY29uc3QgeyByZXR1cm4gdW5pdENhdGVnb3J5KHByaW1pdGl2ZVR5cGUoKSkg
PT0gQ1NTVW5pdENhdGVnb3J5OjpSZXNvbHV0aW9uOyB9CiAgICAgYm9vbCBpc1ZpZXdwb3J0UGVy
Y2VudGFnZUxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIGlzVmlld3BvcnRQZXJjZW50YWdlTGVuZ3Ro
KHByaW1pdGl2ZVVuaXRUeXBlKCkpOyB9Ci0gICAgYm9vbCBpc1ZpZXdwb3J0UGVyY2VudGFnZVdp
ZHRoKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVW5pdFR5cGUoKSA9PSBDU1NVbml0VHlwZTo6
Q1NTX1ZXOyB9Ci0gICAgYm9vbCBpc1ZpZXdwb3J0UGVyY2VudGFnZUhlaWdodCgpIGNvbnN0IHsg
cmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19WSDsgfQotICAg
IGJvb2wgaXNWaWV3cG9ydFBlcmNlbnRhZ2VNYXgoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVV
bml0VHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1NfVk1BWDsgfQotICAgIGJvb2wgaXNWaWV3cG9y
dFBlcmNlbnRhZ2VNaW4oKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVVbml0VHlwZSgpID09IENT
U1VuaXRUeXBlOjpDU1NfVk1JTjsgfQogICAgIGJvb2wgaXNWYWx1ZUlEKCkgY29uc3QgeyByZXR1
cm4gcHJpbWl0aXZlVW5pdFR5cGUoKSA9PSBDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEOyB9CiAg
ICAgYm9vbCBpc0ZsZXgoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTVW5p
dFR5cGU6OkNTU19GUjsgfQogICAgIGJvb2wgaXNDdXN0b21JZGVudCgpIGNvbnN0IHsgcmV0dXJu
IHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkN1c3RvbUlkZW50OyB9CkBAIC0z
MTUsMTAgKzMxMSw3IEBAIGNvbnN0ZXhwciBib29sIENTU1ByaW1pdGl2ZVZhbHVlOjppc1Jlc29s
dXRpb24oQ1NTVW5pdFR5cGUgdHlwZSkKIAogY29uc3RleHByIGJvb2wgQ1NTUHJpbWl0aXZlVmFs
dWU6OmlzVmlld3BvcnRQZXJjZW50YWdlTGVuZ3RoKENTU1VuaXRUeXBlIHR5cGUpCiB7Ci0gICAg
cmV0dXJuIHR5cGUgPT0gQ1NTVW5pdFR5cGU6OkNTU19WVwotICAgICAgICB8fCB0eXBlID09IENT
U1VuaXRUeXBlOjpDU1NfVkgKLSAgICAgICAgfHwgdHlwZSA9PSBDU1NVbml0VHlwZTo6Q1NTX1ZN
SU4KLSAgICAgICAgfHwgdHlwZSA9PSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg7CisgICAgcmV0dXJu
IHR5cGUgPj0gQ1NTVW5pdFR5cGU6OkNTU19WVyAmJiB0eXBlIDw9IENTU1VuaXRUeXBlOjpDU1Nf
RFZNQVg7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWY8Q1NTUHJpbWl0aXZl
VmFsdWU+IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoVCYmIHZhbHVlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuY3BwCmluZGV4IDMxOTgwZTYy
Yzk1ZWI3OTBiNTA3MjY4N2RmZTU3MzE2Mzk5MzZiNjguLmIwMTVmMWFlN2EwNzg2NjdjNWE3NWQ2
NGQ1Zjg4YTRmOWIxOGRhMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmgiCiAKKyNpbmNsdWRlICJG
bG9hdFNpemUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJlbmRlclZp
ZXcuaCIKIApAQCAtNDMsNTAgKzQ0LDQ4IEBAIGZsb2F0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGE6Onpvb20oKSBjb25zdAogICAgIHJldHVybiAqbV96b29tOwogfQogCi1kb3VibGUgQ1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YTo6dmlld3BvcnRXaWR0aEZhY3RvcigpIGNvbnN0CitGbG9hdFNp
emUgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6ZGVmYXVsdFZpZXdwb3J0RmFjdG9yKCkgY29u
c3QKIHsKICAgICBpZiAobV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZSkKICAgICAg
ICAgbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZS0+c2V0SGFzVmlld3BvcnRVbml0
cygpOwogCiAgICAgaWYgKCFtX3JlbmRlclZpZXcpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIG1fcmVuZGVyVmlldy0+dmlld3BvcnRTaXplRm9y
Q1NTVmlld3BvcnRVbml0cygpLndpZHRoKCkgLyAxMDAuMDsKKyAgICByZXR1cm4gbV9yZW5kZXJW
aWV3LT5zaXplRm9yQ1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMoKSAvIDEwMC4wOwogfQogCi1kb3Vi
bGUgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6dmlld3BvcnRIZWlnaHRGYWN0b3IoKSBjb25z
dAorRmxvYXRTaXplIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OnNtYWxsVmlld3BvcnRGYWN0
b3IoKSBjb25zdAogewogICAgIGlmIChtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxl
KQogICAgICAgICBtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlLT5zZXRIYXNWaWV3
cG9ydFVuaXRzKCk7CiAKICAgICBpZiAoIW1fcmVuZGVyVmlldykKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiB7IH07CiAKLSAgICByZXR1cm4gbV9yZW5kZXJWaWV3LT52aWV3cG9y
dFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkuaGVpZ2h0KCkgLyAxMDAuMDsKKyAgICByZXR1cm4g
bV9yZW5kZXJWaWV3LT5zaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCkgLyAxMDAuMDsKIH0K
IAotZG91YmxlIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OnZpZXdwb3J0TWluRmFjdG9yKCkg
Y29uc3QKK0Zsb2F0U2l6ZSBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpsYXJnZVZpZXdwb3J0
RmFjdG9yKCkgY29uc3QKIHsKICAgICBpZiAobV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25T
dHlsZSkKICAgICAgICAgbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZS0+c2V0SGFz
Vmlld3BvcnRVbml0cygpOwogCiAgICAgaWYgKCFtX3JlbmRlclZpZXcpCi0gICAgICAgIHJldHVy
biAwOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgSW50U2l6ZSB2aWV3cG9ydFNpemVGb3JD
U1NWaWV3cG9ydFVuaXRzID0gbV9yZW5kZXJWaWV3LT52aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9y
dFVuaXRzKCk7Ci0gICAgcmV0dXJuIHN0ZDo6bWluKHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0
VW5pdHMud2lkdGgoKSwgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cy5oZWlnaHQoKSkg
LyAxMDAuMDsKKyAgICByZXR1cm4gbV9yZW5kZXJWaWV3LT5zaXplRm9yQ1NTTGFyZ2VWaWV3cG9y
dFVuaXRzKCkgLyAxMDAuMDsKIH0KIAotZG91YmxlIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6
OnZpZXdwb3J0TWF4RmFjdG9yKCkgY29uc3QKK0Zsb2F0U2l6ZSBDU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhOjpkeW5hbWljVmlld3BvcnRGYWN0b3IoKSBjb25zdAogewogICAgIGlmIChtX3ZpZXdw
b3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlKQogICAgICAgICBtX3ZpZXdwb3J0RGVwZW5kZW5j
eURldGVjdGlvblN0eWxlLT5zZXRIYXNWaWV3cG9ydFVuaXRzKCk7CiAKICAgICBpZiAoIW1fcmVu
ZGVyVmlldykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBJ
bnRTaXplIHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMgPSBtX3JlbmRlclZpZXctPnZp
ZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKTsKLSAgICByZXR1cm4gc3RkOjptYXgodmll
d3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cy53aWR0aCgpLCB2aWV3cG9ydFNpemVGb3JDU1NW
aWV3cG9ydFVuaXRzLmhlaWdodCgpKSAvIDEwMC4wOworICAgIHJldHVybiBtX3JlbmRlclZpZXct
PnNpemVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cygpIC8gMTAwLjA7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9MZW5ndGhDb252ZXJz
aW9uRGF0YS5oCmluZGV4IDk1Mzc3OWY4ZDU1NWYwYmM5ODE5Mjc3NWU3MzdjNTViMTUwNjAwZWUu
LmU1YzJiNjJjNTJlYzIxYTM2NTI5ODAxYzdjZDQ4NmFmYmM5NTYxNDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaApAQCAtMzYsNiArMzYsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIFJlbmRl
clN0eWxlOwogY2xhc3MgUmVuZGVyVmlldzsKIApAQCAtNzQsMTAgKzc1LDEwIEBAIHB1YmxpYzoK
ICAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5VG9Db21wdXRlKCkgY29uc3QgeyByZXR1cm4gbV9w
cm9wZXJ0eVRvQ29tcHV0ZS52YWx1ZV9vcihDU1NQcm9wZXJ0eUludmFsaWQpOyB9CiAgICAgY29u
c3QgUmVuZGVyVmlldyogcmVuZGVyVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyVmlldzsg
fQogCi0gICAgZG91YmxlIHZpZXdwb3J0V2lkdGhGYWN0b3IoKSBjb25zdDsKLSAgICBkb3VibGUg
dmlld3BvcnRIZWlnaHRGYWN0b3IoKSBjb25zdDsKLSAgICBkb3VibGUgdmlld3BvcnRNaW5GYWN0
b3IoKSBjb25zdDsKLSAgICBkb3VibGUgdmlld3BvcnRNYXhGYWN0b3IoKSBjb25zdDsKKyAgICBG
bG9hdFNpemUgZGVmYXVsdFZpZXdwb3J0RmFjdG9yKCkgY29uc3Q7CisgICAgRmxvYXRTaXplIHNt
YWxsVmlld3BvcnRGYWN0b3IoKSBjb25zdDsKKyAgICBGbG9hdFNpemUgbGFyZ2VWaWV3cG9ydEZh
Y3RvcigpIGNvbnN0OworICAgIEZsb2F0U2l6ZSBkeW5hbWljVmlld3BvcnRGYWN0b3IoKSBjb25z
dDsKIAogICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29weVdpdGhBZGp1c3RlZFpvb20o
ZmxvYXQgbmV3Wm9vbSkgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVW5pdHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1VuaXRzLmNwcAppbmRleCA0
ZjQ2OGIzZjNiNTcxMjZjMTU0YzEzNjg2ODVkMTgxOWI3OTFkMjNlLi4yNGNiNjYzZTJjNWUzMzFl
NWIyZGViZmQ1MmRhNDVmMzI0YjkxMzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVW5pdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbml0cy5jcHAKQEAgLTEz
OCw2ICsxMzgsMTggQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgQ1NT
VW5pdFR5cGUgdW5pdFR5cGUpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOiB0cyA8PCAi
dmgiOyBicmVhazsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjogdHMgPDwgInZtaW4i
OyBicmVhazsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1BWDogdHMgPDwgInZtYXgiOyBi
cmVhazsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOiB0cyA8PCAic3Z3IjsgYnJlYWs7
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDogdHMgPDwgInN2aCI7IGJyZWFrOworICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjogdHMgPDwgInN2bWluIjsgYnJlYWs7CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOiB0cyA8PCAic3ZtYXgiOyBicmVhazsKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfTFZXOiB0cyA8PCAibHZ3IjsgYnJlYWs7CisgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0xWSDogdHMgPDwgImx2aCI7IGJyZWFrOworICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19MVk1JTjogdHMgPDwgImx2bWluIjsgYnJlYWs7CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0xWTUFYOiB0cyA8PCAibHZtYXgiOyBicmVhazsKKyAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfRFZXOiB0cyA8PCAiZHZ3IjsgYnJlYWs7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0RWSDogdHMgPDwgImR2aCI7IGJyZWFrOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19E
Vk1JTjogdHMgPDwgImR2bWluIjsgYnJlYWs7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RW
TUFYOiB0cyA8PCAiZHZtYXgiOyBicmVhazsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBQ
WDogdHMgPDwgImRwcHgiOyBicmVhazsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfWDogdHMg
PDwgIngiOyBicmVhazsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBJOiB0cyA8PCAiZHBp
IjsgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5pdHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NVbml0cy5oCmluZGV4IDk3MjU1YTllYzM3ODI1YzhiN2U0NDg5
NWNmNjU4MzVkOWI4ZDJjZmEuLmIwZjdjMmQyZjZlYWJjYzczZjRjYzMyMmE1YmVhZjU4MmY4YzAw
NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbml0cy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NVbml0cy5oCkBAIC01OSw2ICs1OSwxOCBAQCBlbnVtIGNsYXNzIENT
U1VuaXRUeXBlIDogdWludDhfdCB7CiAgICAgQ1NTX1ZILAogICAgIENTU19WTUlOLAogICAgIENT
U19WTUFYLAorICAgIENTU19TVlcsCisgICAgQ1NTX1NWSCwKKyAgICBDU1NfU1ZNSU4sCisgICAg
Q1NTX1NWTUFYLAorICAgIENTU19MVlcsCisgICAgQ1NTX0xWSCwKKyAgICBDU1NfTFZNSU4sCisg
ICAgQ1NTX0xWTUFYLAorICAgIENTU19EVlcsCisgICAgQ1NTX0RWSCwKKyAgICBDU1NfRFZNSU4s
CisgICAgQ1NTX0RWTUFYLAogICAgIENTU19EUFBYLAogICAgIENTU19YLAogICAgIENTU19EUEks
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZl
VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZh
bHVlLmNwcAppbmRleCBiYmQwMTQ5OTE3OTg0NzM4ODdjZjQ4Mjg5YzU0NmI2MjUzZDM4M2E1Li43
ZGI1Y2JhMDY1YTkzNWE1NDk5MTJkNTRiYjU5YjFlZThmYTAzMTEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHAKQEAgLTkz
LDEwICs5Myw5IEBAIHVuc2lnbmVkIHNob3J0IERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVl
OjpwcmltaXRpdmVUeXBlKCkgY29uc3QKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjog
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU19WTUlOOwogICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19WVzogICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTX1ZXOwog
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19YOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gMzc7Ci0gICAgfQogCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJu
IENTU19VTktOT1dOOworICAgIGRlZmF1bHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gQ1NTX1VOS05PV047CisgICAgfQogfQogCiBFeGNlcHRpb25P
cjxmbG9hdD4gRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OmdldEZsb2F0VmFsdWUodW5z
aWduZWQgc2hvcnQgdW5pdFR5cGUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvY2FsYy9DU1NDYWxjQ2F0ZWdvcnlNYXBwaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9j
YWxjL0NTU0NhbGNDYXRlZ29yeU1hcHBpbmcuY3BwCmluZGV4IDJkMGExYzIwMDFmMTJmZTIxNjhi
NGM3YmQ4Mjg3OGViMTBmNzE4Y2QuLjllZjFkNDU2OTIwMmVlNTkzNTIzYzBkYTJjODI3MjcxMDJm
NzYwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNDYXRlZ29y
eU1hcHBpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNDYXRlZ29y
eU1hcHBpbmcuY3BwCkBAIC01NCw2ICs1NCwxOCBAQCBDYWxjdWxhdGlvbkNhdGVnb3J5IGNhbGNV
bml0Q2F0ZWdvcnkoQ1NTVW5pdFR5cGUgdHlwZSkKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
Vkg6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46CiAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX1ZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWVzoKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfU1ZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjoKKyAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0xWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19MVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZIOgor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfRFZNQVg6CiAgICAgICAgIHJldHVybiBDYWxjdWxhdGlvbkNhdGVnb3J5OjpMZW5ndGg7CiAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0U6CiAgICAgICAgIHJldHVybiBDYWxj
dWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50OwpAQCAtMTEwLDYgKzEyMiwxOCBAQCBDYWxjdWxhdGlv
bkNhdGVnb3J5IGNhbGN1bGF0aW9uQ2F0ZWdvcnlGb3JDb21iaW5hdGlvbihDU1NVbml0VHlwZSB0
eXBlKQogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSDoKICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfVk1JTjoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1BWDoKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfU1ZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19T
Vk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19MVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUlOOgorICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19MVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZXOgor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0RWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDoKICAgICBkZWZhdWx0Ogog
ICAgICAgICByZXR1cm4gQ2FsY3VsYXRpb25DYXRlZ29yeTo6T3RoZXI7CiAgICAgfQpAQCAtMTYy
LDYgKzE4NiwxOCBAQCBib29sIGhhc0RvdWJsZVZhbHVlKENTU1VuaXRUeXBlIHR5cGUpCiAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlO
OgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19TVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDoKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfU1ZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOgorICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xW
SDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0xWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6CisgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19EUFBYOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19YOgogICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19EUEk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlclRva2VuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4u
Y3BwCmluZGV4IDliZGMxM2FkYmQ1MDA3OWFkODQwNzgwYjIwNzA2MWQ0Mzc5Njc0NzMuLmRlNTVk
MzRjOTcyODQxMmM2ZmMzNTJiMTIyOTU1MzQ2NjgxMDc3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwCkBAIC0xMzQsOCArMTM0LDI2IEBAIENTU1Vu
aXRUeXBlIGNzc1ByaW1pdGl2ZVZhbHVlVW5pdEZyb21UcmllKGNvbnN0IENoYXJhY3RlclR5cGUq
IGRhdGEsIHVuc2lnbmVkIGxlCiAgICAgICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRh
WzJdKSA9PSAnaScpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NT
X0RQSTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ3YnOgorICAg
ICAgICAgICAgICAgIHN3aXRjaCAodG9BU0NJSUxvd2VyKGRhdGFbMl0pKSB7CisgICAgICAgICAg
ICAgICAgY2FzZSAnaCc6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6
Q1NTX0RWSDsKKyAgICAgICAgICAgICAgICBjYXNlICd3JzoKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfRFZXOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAnbCc6CisgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2Vy
KGRhdGFbMV0pID09ICd2JykgeworICAgICAgICAgICAgICAgIHN3aXRjaCAodG9BU0NJSUxvd2Vy
KGRhdGFbMl0pKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnaCc6CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0xWSDsKKyAgICAgICAgICAgICAgICBjYXNlICd3
JzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfTFZXOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlICdrJzoKICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVsxXSkgPT0gJ2gn
ICYmIHRvQVNDSUlMb3dlcihkYXRhWzJdKSA9PSAneicpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IENTU1VuaXRUeXBlOjpDU1NfS0haOwpAQCAtMTU1LDkgKzE3MywxOSBAQCBDU1NVbml0VHlwZSBj
c3NQcmltaXRpdmVWYWx1ZVVuaXRGcm9tVHJpZShjb25zdCBDaGFyYWN0ZXJUeXBlKiBkYXRhLCB1
bnNpZ25lZCBsZQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19S
TEhTOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQorICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgJ3MnOgorICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihk
YXRhWzFdKSA9PSAndicpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHRvQVNDSUlMb3dlcihk
YXRhWzJdKSkgeworICAgICAgICAgICAgICAgIGNhc2UgJ2gnOgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19TVkg7CisgICAgICAgICAgICAgICAgY2FzZSAndyc6
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX1NWVzsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQogICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgYnJlYWs7CiAgICAgY2FzZSA0OgogICAgICAg
ICBzd2l0Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzBdKSkgewogICAgICAgICBjYXNlICdkJzoKQEAg
LTE3Myw5ICsyMDEsOSBAQCBDU1NVbml0VHlwZSBjc3NQcmltaXRpdmVWYWx1ZVVuaXRGcm9tVHJp
ZShjb25zdCBDaGFyYWN0ZXJUeXBlKiBkYXRhLCB1bnNpZ25lZCBsZQogICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfRFBQWDsKICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgJ2cnOgogICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzFd
KSA9PSAncicgJiYgdG9BU0NJSUxvd2VyKGRhdGFbMl0pID09ICdhJyAmJiB0b0FTQ0lJTG93ZXIo
ZGF0YVszXSkgPT0gJ2QnKQogICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NT
X0dSQUQ7CkBAIC0yMDgsNiArMjM2LDQ4IEBAIENTU1VuaXRUeXBlIGNzc1ByaW1pdGl2ZVZhbHVl
VW5pdEZyb21UcmllKGNvbnN0IENoYXJhY3RlclR5cGUqIGRhdGEsIHVuc2lnbmVkIGxlCiAgICAg
ICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbMV0pID09ICdfJyAmJiB0b0FTQ0lJTG93ZXIo
ZGF0YVsyXSkgPT0gJ3EnICYmIHRvQVNDSUlMb3dlcihkYXRhWzNdKSA9PSAnZScgJiYgdG9BU0NJ
SUxvd2VyKGRhdGFbNF0pID09ICdtJykKICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5
cGU6OkNTU19RVUlSS1lfRU1TOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ2Qn
OgorICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzFdKSA9PSAndicgJiYgdG9BU0NJ
SUxvd2VyKGRhdGFbMl0pID09ICdtJykgeworICAgICAgICAgICAgICAgIHN3aXRjaCAodG9BU0NJ
SUxvd2VyKGRhdGFbM10pKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnYSc6CisgICAgICAgICAg
ICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVs0XSkgPT0gJ3gnKQorICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg7CisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ2knOgorICAgICAgICAgICAgICAg
ICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbNF0pID09ICduJykKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOworICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAnbCc6CisgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGRh
dGFbMV0pID09ICd2JyAmJiB0b0FTQ0lJTG93ZXIoZGF0YVsyXSkgPT0gJ20nKSB7CisgICAgICAg
ICAgICAgICAgc3dpdGNoICh0b0FTQ0lJTG93ZXIoZGF0YVszXSkpIHsKKyAgICAgICAgICAgICAg
ICBjYXNlICdhJzoKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzRd
KSA9PSAneCcpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNT
U19MVk1BWDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2Fz
ZSAnaSc6CisgICAgICAgICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVs0XSkgPT0g
J24nKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfTFZN
SU47CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICdzJzoKKyAgICAgICAg
ICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVsxXSkgPT0gJ3YnICYmIHRvQVNDSUlMb3dlcihkYXRh
WzJdKSA9PSAnbScpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHRvQVNDSUlMb3dlcihkYXRh
WzNdKSkgeworICAgICAgICAgICAgICAgIGNhc2UgJ2EnOgorICAgICAgICAgICAgICAgICAgICBp
ZiAodG9BU0NJSUxvd2VyKGRhdGFbNF0pID09ICd4JykKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICBjYXNlICdpJzoKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRv
QVNDSUlMb3dlcihkYXRhWzRdKSA9PSAnbicpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCmluZGV4IDE4NmRkMmEzZjEy
NzgzZTFlMTBjYWU2ZThkMmJlZjUwMmVhMmVhY2YuLjA0ZTFjODRjYjVmYWI2ODM4ZDRlNzY0MTk5
MGVlNTQ3NTgwMzFhOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKQEAgLTQ5Miw2ICs0OTIsMTggQEAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8TGVuZ3RoUmF3PiBjb25zdW1lTGVuZ3RoUmF3V2l0aEtub3duVG9rZW5U
eXBlRGltZW5zaW9uKENTU1AKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkg6CiAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg6
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfU1ZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjoKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfU1ZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzoKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1J
TjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0RWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZIOgorICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19EVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6CiAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1E6CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNWRhMzAwNDI4NTcxMTA5NWQyMWUxOTBj
M2M2OTUxMjE4ODI1NWVlMS4uYTI5Njg2MDc0MWMzYTVmN2Q2MjRiNzExNThmNzE0YzYwYzYyYWFi
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMjg5MSw2ICsyODkxLDkgQEAgdm9p
ZCBGcmFtZVZpZXc6OnVub2JzY3VyZWRDb250ZW50U2l6ZUNoYW5nZWQoKQogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAgICAgdXBkYXRlVGlsZWRCYWNraW5nQWRhcHRpdmVTaXppbmcoKTsKICNl
bmRpZgorCisgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpKQorICAg
ICAgICBkb2N1bWVudC0+c3R5bGVTY29wZSgpLmRpZENoYW5nZVN0eWxlU2hlZXRFbnZpcm9ubWVu
dCgpOwogfQogCiB2b2lkIEZyYW1lVmlldzo6bG9hZFByb2dyZXNzaW5nU3RhdHVzQ2hhbmdlZCgp
CkBAIC0zNTY1LDcgKzM1NjgsOSBAQCB2b2lkIEZyYW1lVmlldzo6cGVyZm9ybVNpemVUb0NvbnRl
bnRBdXRvU2l6ZSgpCiAgICAgICAgIGRvY3VtZW50LnVwZGF0ZUxheW91dCgpOwogICAgIH07CiAK
LSAgICByZXNldE92ZXJyaWRkZW5WaWV3cG9ydFdpZHRoRm9yQ1NTVmlld3BvcnRVbml0cygpOwor
ICAgIHJlc2V0T3ZlcnJpZGRlbldpZHRoRm9yQ1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMoKTsKKyAg
ICByZXNldE92ZXJyaWRkZW5XaWR0aEZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpOworCiAgICAg
Ly8gU3RhcnQgZnJvbSB0aGUgbWluaW11bSBzaXplIGFuZCBhbGxvdyBpdCB0byBncm93LgogICAg
IGF1dG8gbWluQXV0b1NpemUgPSBJbnRTaXplIHsgMSwgMSB9OwogICAgIHJlc2l6ZShtaW5BdXRv
U2l6ZSk7CkBAIC0zNjI1LDcgKzM2MzAsOCBAQCB2b2lkIEZyYW1lVmlldzo6cGVyZm9ybVNpemVU
b0NvbnRlbnRBdXRvU2l6ZSgpCiAgICAgICAgIHJlc2l6ZShuZXdTaXplLndpZHRoKCksIGkgPyBu
ZXdTaXplLmhlaWdodCgpIDogbWluQXV0b1NpemUuaGVpZ2h0KCkpOwogICAgICAgICAvLyBQcm90
ZWN0IHRoZSBjb250ZW50IGZyb20gZXZlcmdyb3dpbmcgbGF5b3V0LgogICAgICAgICBhdXRvIHBy
ZWZlcnJlZFZpZXdwb3J0V2lkdGggPSBzdGQ6Om1pbihuZXdTaXplLndpZHRoKCksIG1fYXV0b1Np
emVDb25zdHJhaW50LndpZHRoKCkpOwotICAgICAgICBvdmVycmlkZVZpZXdwb3J0V2lkdGhGb3JD
U1NWaWV3cG9ydFVuaXRzKHByZWZlcnJlZFZpZXdwb3J0V2lkdGgpOworICAgICAgICBvdmVycmlk
ZVdpZHRoRm9yQ1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMocHJlZmVycmVkVmlld3BvcnRXaWR0aCk7
CisgICAgICAgIG92ZXJyaWRlV2lkdGhGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMocHJlZmVycmVk
Vmlld3BvcnRXaWR0aCk7CiAgICAgICAgIC8vIEZvcmNlIHRoZSBzY3JvbGxiYXIgc3RhdGUgdG8g
YXZvaWQgdGhlIHNjcm9sbGJhciBjb2RlIGFkZGluZyB0aGVtIGFuZCBjYXVzaW5nIHRoZW0gdG8g
YmUgbmVlZGVkLiBGb3IgZXhhbXBsZSwKICAgICAgICAgLy8gYSB2ZXJ0aWNhbCBzY3JvbGxiYXIg
bWF5IGNhdXNlIHRleHQgdG8gd3JhcCBhbmQgdGh1cyBpbmNyZWFzZSB0aGUgaGVpZ2h0ICh3aGlj
aCBpcyB0aGUgb25seSByZWFzb24gdGhlIHNjb2xsYmFyIGlzIG5lZWRlZCkuCiAgICAgICAgIHNl
dFZlcnRpY2FsU2Nyb2xsYmFyTG9jayhmYWxzZSk7CkBAIC00NzA1LDExICs0NzExLDEzIEBAIHZv
aWQgRnJhbWVWaWV3OjplbmFibGVBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNp
emUmIHZpZXdTaXplLCBBdXRvU2l6CiAgICAgc2V0TmVlZHNMYXlvdXRBZnRlclZpZXdDb25maWd1
cmF0aW9uQ2hhbmdlKCk7CiAgICAgbGF5b3V0Q29udGV4dCgpLnNjaGVkdWxlTGF5b3V0KCk7CiAg
ICAgaWYgKG1fc2hvdWxkQXV0b1NpemUpIHsKLSAgICAgICAgb3ZlcnJpZGVWaWV3cG9ydFdpZHRo
Rm9yQ1NTVmlld3BvcnRVbml0cyhtX2F1dG9TaXplQ29uc3RyYWludC53aWR0aCgpKTsKKyAgICAg
ICAgb3ZlcnJpZGVXaWR0aEZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKG1fYXV0b1NpemVDb25z
dHJhaW50LndpZHRoKCkpOworICAgICAgICBvdmVycmlkZVdpZHRoRm9yQ1NTU21hbGxWaWV3cG9y
dFVuaXRzKG1fYXV0b1NpemVDb25zdHJhaW50LndpZHRoKCkpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgY2xlYXJWaWV3cG9ydFNpemVPdmVycmlkZUZvckNTU1ZpZXdwb3J0VW5pdHMo
KTsKKyAgICBjbGVhclNpemVPdmVycmlkZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCk7Cisg
ICAgY2xlYXJTaXplT3ZlcnJpZGVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoKTsKICAgICAvLyBT
aW5jZSBhdXRvc2l6ZSBtb2RlIGZvcmNlcyB0aGUgc2Nyb2xsYmFyIG1vZGUsIGNoYW5nZSB0aGVt
IHRvIGJlaW5nIGF1dG8uCiAgICAgc2V0VmVydGljYWxTY3JvbGxiYXJMb2NrKGZhbHNlKTsKICAg
ICBzZXRIb3Jpem9udGFsU2Nyb2xsYmFyTG9jayhmYWxzZSk7CkBAIC01NTM4LDYwICs1NTQ2LDMy
IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRWaWV3RXhwb3NlZFJlY3Qoc3RkOjpvcHRpb25hbDxGbG9h
dFJlY3Q+IHZpZXdFeHBvc2VkUmVjdCkKICAgICB9CiB9CiAKLXZvaWQgRnJhbWVWaWV3OjpjbGVh
clZpZXdwb3J0U2l6ZU92ZXJyaWRlRm9yQ1NTVmlld3BvcnRVbml0cygpCi17Ci0gICAgaWYgKCFt
X292ZXJyaWRlVmlld3BvcnRTaXplKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX292ZXJyaWRl
Vmlld3BvcnRTaXplID0gc3RkOjpudWxsb3B0OwotICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGZy
YW1lKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgZG9jdW1lbnQtPnN0eWxlU2NvcGUoKS5kaWRDaGFu
Z2VTdHlsZVNoZWV0RW52aXJvbm1lbnQoKTsKLX0KLQotdm9pZCBGcmFtZVZpZXc6OnNldFZpZXdw
b3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoSW50U2l6ZSBzaXplKQotewotICAgIG92ZXJyaWRl
Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyh7IHNpemUud2lkdGgoKSwgc2l6ZS5oZWln
aHQoKSB9KTsKLX0KLQotdm9pZCBGcmFtZVZpZXc6Om92ZXJyaWRlVmlld3BvcnRXaWR0aEZvckNT
U1ZpZXdwb3J0VW5pdHMoaW50IHdpZHRoKQotewotICAgIG92ZXJyaWRlVmlld3BvcnRTaXplRm9y
Q1NTVmlld3BvcnRVbml0cyh7IHdpZHRoLCBtX292ZXJyaWRlVmlld3BvcnRTaXplID8gbV9vdmVy
cmlkZVZpZXdwb3J0U2l6ZS0+aGVpZ2h0IDogc3RkOjpudWxsb3B0IH0pOwotfQotCi12b2lkIEZy
YW1lVmlldzo6cmVzZXRPdmVycmlkZGVuVmlld3BvcnRXaWR0aEZvckNTU1ZpZXdwb3J0VW5pdHMo
KQotewotICAgIG92ZXJyaWRlVmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyh7IHsgfSwg
bV9vdmVycmlkZVZpZXdwb3J0U2l6ZSA/IG1fb3ZlcnJpZGVWaWV3cG9ydFNpemUtPmhlaWdodCA6
IHN0ZDo6bnVsbG9wdCB9KTsKLX0KLQotdm9pZCBGcmFtZVZpZXc6Om92ZXJyaWRlVmlld3BvcnRT
aXplRm9yQ1NTVmlld3BvcnRVbml0cyhPdmVycmlkZVZpZXdwb3J0U2l6ZSBzaXplKQotewotICAg
IGlmIChtX292ZXJyaWRlVmlld3BvcnRTaXplICYmICptX292ZXJyaWRlVmlld3BvcnRTaXplID09
IHNpemUpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fb3ZlcnJpZGVWaWV3cG9ydFNpemUgPSBz
aXplOwotCi0gICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpKQotICAg
ICAgICBkb2N1bWVudC0+c3R5bGVTY29wZSgpLmRpZENoYW5nZVN0eWxlU2hlZXRFbnZpcm9ubWVu
dCgpOwotfQotCi1JbnRTaXplIEZyYW1lVmlldzo6dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRV
bml0cygpIGNvbnN0CitJbnRTaXplIEZyYW1lVmlldzo6Y2FsY3VsYXRlU2l6ZUZvckNTU1ZpZXdw
b3J0VW5pdHNPdmVycmlkZShzdGQ6Om9wdGlvbmFsPE92ZXJyaWRlVmlld3BvcnRTaXplPiBvdmVy
cmlkZSkgY29uc3QKIHsKICAgICBPdmVycmlkZVZpZXdwb3J0U2l6ZSB2aWV3cG9ydFNpemU7CiAK
LSAgICBpZiAobV9vdmVycmlkZVZpZXdwb3J0U2l6ZSkgewotICAgICAgICB2aWV3cG9ydFNpemUg
PSAqbV9vdmVycmlkZVZpZXdwb3J0U2l6ZTsKLSAgICAgICAgLy8gYXV0by1zaXplIG92ZXJyaWRl
cyB0aGUgd2lkdGggb25seSwgc28gd2UgY2FuJ3QgYWx3YXlzIGJhaWwgb3V0IGVhcmx5IGhlcmUu
Ci0gICAgICAgIGlmICh2aWV3cG9ydFNpemUud2lkdGggJiYgdmlld3BvcnRTaXplLmhlaWdodCkK
LSAgICAgICAgICAgIHJldHVybiB7ICp2aWV3cG9ydFNpemUud2lkdGgsICp2aWV3cG9ydFNpemUu
aGVpZ2h0IH07CisgICAgaWYgKG92ZXJyaWRlKQorICAgICAgICB2aWV3cG9ydFNpemUgPSAqb3Zl
cnJpZGU7CisKKyAgICBpZiAobV9kZWZhdWx0Vmlld3BvcnRTaXplT3ZlcnJpZGUpIHsKKyAgICAg
ICAgaWYgKCF2aWV3cG9ydFNpemUud2lkdGgpCisgICAgICAgICAgICB2aWV3cG9ydFNpemUud2lk
dGggPSBtX2RlZmF1bHRWaWV3cG9ydFNpemVPdmVycmlkZS0+d2lkdGg7CisKKyAgICAgICAgaWYg
KCF2aWV3cG9ydFNpemUuaGVpZ2h0KQorICAgICAgICAgICAgdmlld3BvcnRTaXplLmhlaWdodCA9
IG1fZGVmYXVsdFZpZXdwb3J0U2l6ZU92ZXJyaWRlLT5oZWlnaHQ7CiAgICAgfQogCisgICAgLy8g
YXV0by1zaXplIG92ZXJyaWRlcyB0aGUgd2lkdGggb25seSwgc28gd2UgY2FuJ3QgYWx3YXlzIGJh
aWwgb3V0IGVhcmx5IGhlcmUuCisgICAgaWYgKHZpZXdwb3J0U2l6ZS53aWR0aCAmJiB2aWV3cG9y
dFNpemUuaGVpZ2h0KQorICAgICAgICByZXR1cm4geyAqdmlld3BvcnRTaXplLndpZHRoLCAqdmll
d3BvcnRTaXplLmhlaWdodCB9OworCiAgICAgaWYgKHVzZUZpeGVkTGF5b3V0KCkpIHsKICAgICAg
ICAgYXV0byBmaXhlZExheW91dFNpemUgPSB0aGlzLT5maXhlZExheW91dFNpemUoKTsKICAgICAg
ICAgdmlld3BvcnRTaXplLndpZHRoID0gdmlld3BvcnRTaXplLndpZHRoLnZhbHVlX29yKGZpeGVk
TGF5b3V0U2l6ZS53aWR0aCgpKTsKICAgICAgICAgdmlld3BvcnRTaXplLmhlaWdodCA9IHZpZXdw
b3J0U2l6ZS5oZWlnaHQudmFsdWVfb3IoZml4ZWRMYXlvdXRTaXplLmhlaWdodCgpKTsKICAgICAg
ICAgcmV0dXJuIHsgKnZpZXdwb3J0U2l6ZS53aWR0aCwgKnZpZXdwb3J0U2l6ZS5oZWlnaHQgfTsK
ICAgICB9Ci0gICAgCisKICAgICAvLyBGSVhNRTogdGhlIHZhbHVlIHJldHVybmVkIHNob3VsZCB0
YWtlIGludG8gYWNjb3VudCB0aGUgdmFsdWUgb2YgdGhlIG92ZXJmbG93CiAgICAgLy8gcHJvcGVy
dHkgb24gdGhlIHJvb3QgZWxlbWVudC4KICAgICBhdXRvIHZpc2libGVDb250ZW50U2l6ZUluY2x1
ZGluZ1Njcm9sbGJhcnMgPSB2aXNpYmxlQ29udGVudFJlY3RJbmNsdWRpbmdTY3JvbGxiYXJzKCku
c2l6ZSgpOwpAQCAtNTYwMCw2ICs1NTgwLDk5IEBAIEludFNpemUgRnJhbWVWaWV3Ojp2aWV3cG9y
dFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkgY29uc3QKICAgICByZXR1cm4geyAqdmlld3BvcnRT
aXplLndpZHRoLCAqdmlld3BvcnRTaXplLmhlaWdodCB9OwogfQogCit2b2lkIEZyYW1lVmlldzo6
Y2xlYXJTaXplT3ZlcnJpZGVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cygpCit7CisgICAgaWYg
KCFtX2RlZmF1bHRWaWV3cG9ydFNpemVPdmVycmlkZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9kZWZhdWx0Vmlld3BvcnRTaXplT3ZlcnJpZGUgPSBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKGF1
dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+c3R5
bGVTY29wZSgpLmRpZENoYW5nZVN0eWxlU2hlZXRFbnZpcm9ubWVudCgpOworfQorCit2b2lkIEZy
YW1lVmlldzo6c2V0U2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKEludFNpemUgc2l6ZSkK
K3sKKyAgICBvdmVycmlkZVNpemVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cyh7IHNpemUud2lk
dGgoKSwgc2l6ZS5oZWlnaHQoKSB9KTsKK30KKwordm9pZCBGcmFtZVZpZXc6Om92ZXJyaWRlV2lk
dGhGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cyhpbnQgd2lkdGgpCit7CisgICAgb3ZlcnJpZGVT
aXplRm9yQ1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMoeyB3aWR0aCwgbV9kZWZhdWx0Vmlld3BvcnRT
aXplT3ZlcnJpZGUgPyBtX2RlZmF1bHRWaWV3cG9ydFNpemVPdmVycmlkZS0+aGVpZ2h0IDogc3Rk
OjpudWxsb3B0IH0pOworfQorCit2b2lkIEZyYW1lVmlldzo6cmVzZXRPdmVycmlkZGVuV2lkdGhG
b3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cygpCit7CisgICAgb3ZlcnJpZGVTaXplRm9yQ1NTRGVm
YXVsdFZpZXdwb3J0VW5pdHMoeyB7IH0sIG1fZGVmYXVsdFZpZXdwb3J0U2l6ZU92ZXJyaWRlID8g
bV9kZWZhdWx0Vmlld3BvcnRTaXplT3ZlcnJpZGUtPmhlaWdodCA6IHN0ZDo6bnVsbG9wdCB9KTsK
K30KKwordm9pZCBGcmFtZVZpZXc6Om92ZXJyaWRlU2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVu
aXRzKE92ZXJyaWRlVmlld3BvcnRTaXplIHNpemUpCit7CisgICAgaWYgKG1fZGVmYXVsdFZpZXdw
b3J0U2l6ZU92ZXJyaWRlICYmICptX2RlZmF1bHRWaWV3cG9ydFNpemVPdmVycmlkZSA9PSBzaXpl
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2RlZmF1bHRWaWV3cG9ydFNpemVPdmVycmlkZSA9
IHNpemU7CisKKyAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCkpCisg
ICAgICAgIGRvY3VtZW50LT5zdHlsZVNjb3BlKCkuZGlkQ2hhbmdlU3R5bGVTaGVldEVudmlyb25t
ZW50KCk7Cit9CisKK0ludFNpemUgRnJhbWVWaWV3OjpzaXplRm9yQ1NTRGVmYXVsdFZpZXdwb3J0
VW5pdHMoKSBjb25zdAoreworICAgIHJldHVybiBjYWxjdWxhdGVTaXplRm9yQ1NTVmlld3BvcnRV
bml0c092ZXJyaWRlKG1fZGVmYXVsdFZpZXdwb3J0U2l6ZU92ZXJyaWRlKTsKK30KKwordm9pZCBG
cmFtZVZpZXc6OmNsZWFyU2l6ZU92ZXJyaWRlRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCkKK3sK
KyAgICBpZiAoIW1fc21hbGxWaWV3cG9ydFNpemVPdmVycmlkZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9zbWFsbFZpZXdwb3J0U2l6ZU92ZXJyaWRlID0gc3RkOjpudWxsb3B0OworCisgICAg
aWYgKGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVu
dC0+c3R5bGVTY29wZSgpLmRpZENoYW5nZVN0eWxlU2hlZXRFbnZpcm9ubWVudCgpOworfQorCit2
b2lkIEZyYW1lVmlldzo6c2V0U2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cyhJbnRTaXplIHNp
emUpCit7CisgICAgb3ZlcnJpZGVTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKHsgc2l6ZS53
aWR0aCgpLCBzaXplLmhlaWdodCgpIH0pOworfQorCit2b2lkIEZyYW1lVmlldzo6b3ZlcnJpZGVX
aWR0aEZvckNTU1NtYWxsVmlld3BvcnRVbml0cyhpbnQgd2lkdGgpCit7CisgICAgb3ZlcnJpZGVT
aXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKHsgd2lkdGgsIG1fc21hbGxWaWV3cG9ydFNpemVP
dmVycmlkZSA/IG1fc21hbGxWaWV3cG9ydFNpemVPdmVycmlkZS0+aGVpZ2h0IDogc3RkOjpudWxs
b3B0IH0pOworfQorCit2b2lkIEZyYW1lVmlldzo6cmVzZXRPdmVycmlkZGVuV2lkdGhGb3JDU1NT
bWFsbFZpZXdwb3J0VW5pdHMoKQoreworICAgIG92ZXJyaWRlU2l6ZUZvckNTU1NtYWxsVmlld3Bv
cnRVbml0cyh7IHsgfSwgbV9zbWFsbFZpZXdwb3J0U2l6ZU92ZXJyaWRlID8gbV9zbWFsbFZpZXdw
b3J0U2l6ZU92ZXJyaWRlLT5oZWlnaHQgOiBzdGQ6Om51bGxvcHQgfSk7Cit9CisKK3ZvaWQgRnJh
bWVWaWV3OjpvdmVycmlkZVNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoT3ZlcnJpZGVWaWV3
cG9ydFNpemUgc2l6ZSkKK3sKKyAgICBpZiAobV9zbWFsbFZpZXdwb3J0U2l6ZU92ZXJyaWRlID09
IHNpemUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fc21hbGxWaWV3cG9ydFNpemVPdmVycmlk
ZSA9IHNpemU7CisKKyAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCkp
CisgICAgICAgIGRvY3VtZW50LT5zdHlsZVNjb3BlKCkuZGlkQ2hhbmdlU3R5bGVTaGVldEVudmly
b25tZW50KCk7Cit9CisKK0ludFNpemUgRnJhbWVWaWV3OjpzaXplRm9yQ1NTU21hbGxWaWV3cG9y
dFVuaXRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY2FsY3VsYXRlU2l6ZUZvckNTU1ZpZXdwb3J0
VW5pdHNPdmVycmlkZShtX3NtYWxsVmlld3BvcnRTaXplT3ZlcnJpZGUpOworfQorCitJbnRTaXpl
IEZyYW1lVmlldzo6c2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIHNpemVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cygpOworfQorCitJbnRTaXplIEZy
YW1lVmlldzo6c2l6ZUZvckNTU0R5bmFtaWNWaWV3cG9ydFVuaXRzKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gdmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVkaW5nU2Nyb2xsYmFycygpLnNpemUoKTsKK30K
KwogYm9vbCBGcmFtZVZpZXc6OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBj
b25zdAogewogICAgIHJldHVybiByZW5kZXJWaWV3KCkgJiYgcmVuZGVyVmlldygpLT5zaG91bGRQ
bGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRl
eCBhYzkxMjY1OWExNjRiMjQ5ODM5MmNhYWQ5N2M1YTVkZjAyYWJiZGUxLi4zMTUwMWJhZjJlYzM2
OGFlYzU4MTZlY2YxY2JkNGUxMDkyZTVlZTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAg
LTIyOCw5ICsyMjgsMTYgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGp1
c3RWaWV3U2l6ZSgpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWV3cG9ydFNpemVG
b3JDU1NWaWV3cG9ydFVuaXRzKEludFNpemUpOwotICAgIHZvaWQgY2xlYXJWaWV3cG9ydFNpemVP
dmVycmlkZUZvckNTU1ZpZXdwb3J0VW5pdHMoKTsKLSAgICBJbnRTaXplIHZpZXdwb3J0U2l6ZUZv
ckNTU1ZpZXdwb3J0VW5pdHMoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNp
emVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cyhJbnRTaXplKTsKKyAgICB2b2lkIGNsZWFyU2l6
ZU92ZXJyaWRlRm9yQ1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMoKTsKKyAgICBJbnRTaXplIHNpemVG
b3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cygpIGNvbnN0OworCisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKEludFNpemUpOworICAgIHZvaWQg
Y2xlYXJTaXplT3ZlcnJpZGVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoKTsKKyAgICBJbnRTaXpl
IHNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoKSBjb25zdDsKKworICAgIEludFNpemUgc2l6
ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpIGNvbnN0OworICAgIEludFNpemUgc2l6ZUZvckNT
U0R5bmFtaWNWaWV3cG9ydFVuaXRzKCkgY29uc3Q7CiAKICAgICBJbnRSZWN0IHdpbmRvd0NsaXBS
ZWN0KCkgY29uc3QgZmluYWw7CiAgICAgV0VCQ09SRV9FWFBPUlQgSW50UmVjdCB3aW5kb3dDbGlw
UmVjdEZvckZyYW1lT3duZXIoY29uc3QgSFRNTEZyYW1lT3duZXJFbGVtZW50KiwgYm9vbCBjbGlw
VG9MYXllckNvbnRlbnRzKSBjb25zdDsKQEAgLTg1NCw5ICs4NjEsMTUgQEAgcHJpdmF0ZToKIAog
ICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgT3ZlcnJpZGVWaWV3cG9ydFNpemUmIHJocykg
Y29uc3QgeyByZXR1cm4gcmhzLndpZHRoID09IHdpZHRoICYmIHJocy5oZWlnaHQgPT0gaGVpZ2h0
OyB9CiAgICAgfTsKLSAgICB2b2lkIG92ZXJyaWRlVmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRV
bml0cyhPdmVycmlkZVZpZXdwb3J0U2l6ZSk7Ci0gICAgdm9pZCBvdmVycmlkZVZpZXdwb3J0V2lk
dGhGb3JDU1NWaWV3cG9ydFVuaXRzKGludCk7Ci0gICAgdm9pZCByZXNldE92ZXJyaWRkZW5WaWV3
cG9ydFdpZHRoRm9yQ1NTVmlld3BvcnRVbml0cygpOworICAgIEludFNpemUgY2FsY3VsYXRlU2l6
ZUZvckNTU1ZpZXdwb3J0VW5pdHNPdmVycmlkZShzdGQ6Om9wdGlvbmFsPE92ZXJyaWRlVmlld3Bv
cnRTaXplPikgY29uc3Q7CisKKyAgICB2b2lkIG92ZXJyaWRlU2l6ZUZvckNTU0RlZmF1bHRWaWV3
cG9ydFVuaXRzKE92ZXJyaWRlVmlld3BvcnRTaXplKTsKKyAgICB2b2lkIG92ZXJyaWRlV2lkdGhG
b3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cyhpbnQpOworICAgIHZvaWQgcmVzZXRPdmVycmlkZGVu
V2lkdGhGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cygpOworCisgICAgdm9pZCBvdmVycmlkZVNp
emVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoT3ZlcnJpZGVWaWV3cG9ydFNpemUpOworICAgIHZv
aWQgb3ZlcnJpZGVXaWR0aEZvckNTU1NtYWxsVmlld3BvcnRVbml0cyhpbnQpOworICAgIHZvaWQg
cmVzZXRPdmVycmlkZGVuV2lkdGhGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoKTsKIAogICAgIHZv
aWQgZGlkRmluaXNoUHJvaGliaXRpbmdTY3JvbGxpbmdXaGVuQ2hhbmdpbmdDb250ZW50U2l6ZSgp
IGZpbmFsOwogCkBAIC05MjUsNyArOTM4LDggQEAgcHJpdmF0ZToKICAgICBzdGQ6Om9wdGlvbmFs
PEludFNpemU+IG1fY3VzdG9tU2l6ZUZvclJlc2l6ZUV2ZW50OwogI2VuZGlmCiAKLSAgICBzdGQ6
Om9wdGlvbmFsPE92ZXJyaWRlVmlld3BvcnRTaXplPiBtX292ZXJyaWRlVmlld3BvcnRTaXplOwor
ICAgIHN0ZDo6b3B0aW9uYWw8T3ZlcnJpZGVWaWV3cG9ydFNpemU+IG1fZGVmYXVsdFZpZXdwb3J0
U2l6ZU92ZXJyaWRlOworICAgIHN0ZDo6b3B0aW9uYWw8T3ZlcnJpZGVWaWV3cG9ydFNpemU+IG1f
c21hbGxWaWV3cG9ydFNpemVPdmVycmlkZTsKIAogICAgIC8vIFRoZSB2aWV3IHNpemUgd2hlbiBh
dXRvc2l6aW5nLgogICAgIEludFNpemUgbV9hdXRvU2l6ZUNvbnN0cmFpbnQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5oCmluZGV4IGQ1NWQxZGNhNTI5YjA2
NjkwYmM2Zjc2Y2U4MTUwNjg5ZTczMmMwMDYuLmUyZGVmODU3MTZlMzNlOTFhMzYzMWJlMWNiMmZj
MmJhZGI1MzFlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Zsb2F0U2l6ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0
U2l6ZS5oCkBAIC03Miw2ICs3Miw5IEBAIHB1YmxpYzoKICAgICBmbG9hdCB3aWR0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fd2lkdGg7IH0KICAgICBmbG9hdCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBt
X2hlaWdodDsgfQogCisgICAgZmxvYXQgbWluRGltZW5zaW9uKCkgY29uc3QgeyByZXR1cm4gc3Rk
OjptaW4obV93aWR0aCwgbV9oZWlnaHQpOyB9CisgICAgZmxvYXQgbWF4RGltZW5zaW9uKCkgY29u
c3QgeyByZXR1cm4gc3RkOjptYXgobV93aWR0aCwgbV9oZWlnaHQpOyB9CisKICAgICBib29sIGhh
c0ludHJpbnNpY1dpZHRoID0gZmFsc2U7CiAgICAgYm9vbCBoYXNJbnRyaW5zaWNIZWlnaHQgPSBm
YWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50
U2l6ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50U2l6ZS5oCmluZGV4
IDViMjRhMGYxMTJiNDJmNDM2ODFmN2ZmYWEyYjYyZjQwZjA2YTgwZjUuLjA5NWYwMzE0NGRmOTcy
NjdmMTAyNTVlMjU2NzRlZDk2NjJkZGZmZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ludFNpemUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbnRTaXplLmgKQEAgLTc0LDYgKzc0LDkgQEAgcHVibGljOgogICAgIGludCB3aWR0
aCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0KICAgICBpbnQgaGVpZ2h0KCkgY29uc3QgeyBy
ZXR1cm4gbV9oZWlnaHQ7IH0KIAorICAgIGZsb2F0IG1pbkRpbWVuc2lvbigpIGNvbnN0IHsgcmV0
dXJuIHN0ZDo6bWluKG1fd2lkdGgsIG1faGVpZ2h0KTsgfQorICAgIGZsb2F0IG1heERpbWVuc2lv
bigpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bWF4KG1fd2lkdGgsIG1faGVpZ2h0KTsgfQorCiAgICAg
dm9pZCBzZXRXaWR0aChpbnQgd2lkdGgpIHsgbV93aWR0aCA9IHdpZHRoOyB9CiAgICAgdm9pZCBz
ZXRIZWlnaHQoaW50IGhlaWdodCkgeyBtX2hlaWdodCA9IGhlaWdodDsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggOGEwNGVkOTAwZTY0YmRiZmJiZmZjZWI3
MjM4MDMwNmYwZGE3OWNlMC4uN2VkM2RjY2U2MjUwMzAwODQ2ODhlMjdjNmUwYWM5ZThjNWQ4YzIw
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtNjk3LDkgKzY5
NywyNCBAQCBmbG9hdCBSZW5kZXJWaWV3Ojp6b29tRmFjdG9yKCkgY29uc3QKICAgICByZXR1cm4g
ZnJhbWVWaWV3KCkuZnJhbWUoKS5wYWdlWm9vbUZhY3RvcigpOwogfQogCi1JbnRTaXplIFJlbmRl
clZpZXc6OnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKSBjb25zdAorSW50U2l6ZSBS
ZW5kZXJWaWV3OjpzaXplRm9yQ1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMoKSBjb25zdAogewotICAg
IHJldHVybiBmcmFtZVZpZXcoKS52aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCk7Cisg
ICAgcmV0dXJuIGZyYW1lVmlldygpLnNpemVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cygpOwor
fQorCitJbnRTaXplIFJlbmRlclZpZXc6OnNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoKSBj
b25zdAoreworICAgIHJldHVybiBmcmFtZVZpZXcoKS5zaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVu
aXRzKCk7Cit9CisKK0ludFNpemUgUmVuZGVyVmlldzo6c2l6ZUZvckNTU0xhcmdlVmlld3BvcnRV
bml0cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZyYW1lVmlldygpLnNpemVGb3JDU1NMYXJnZVZp
ZXdwb3J0VW5pdHMoKTsKK30KKworSW50U2l6ZSBSZW5kZXJWaWV3OjpzaXplRm9yQ1NTRHluYW1p
Y1ZpZXdwb3J0VW5pdHMoKSBjb25zdAoreworICAgIHJldHVybiBmcmFtZVZpZXcoKS5zaXplRm9y
Q1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMoKTsKIH0KIAogTm9kZSogUmVuZGVyVmlldzo6bm9kZUZv
ckhpdFRlc3QoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKaW5kZXgg
NDhlMzY3OTMwMzU2ZTM0OGE5ZmJiMjFkM2Q1NzAyNGUxNTM0MzVhNi4uZWQzNGYyMWRiMWJmYjUx
ZmM5N2MzNzg0OWE4OGIwYTVhMTdjMTI4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5oCkBAIC0xNDMsNyArMTQzLDEwIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgc2hvdWxkUGFp
bnRCYXNlQmFja2dyb3VuZCgpIGNvbnN0OwogCi0gICAgSW50U2l6ZSB2aWV3cG9ydFNpemVGb3JD
U1NWaWV3cG9ydFVuaXRzKCkgY29uc3Q7CisgICAgSW50U2l6ZSBzaXplRm9yQ1NTRGVmYXVsdFZp
ZXdwb3J0VW5pdHMoKSBjb25zdDsKKyAgICBJbnRTaXplIHNpemVGb3JDU1NTbWFsbFZpZXdwb3J0
VW5pdHMoKSBjb25zdDsKKyAgICBJbnRTaXplIHNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMo
KSBjb25zdDsKKyAgICBJbnRTaXplIHNpemVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cygpIGNv
bnN0OwogCiAgICAgYm9vbCBoYXNRdW90ZXNOZWVkaW5nVXBkYXRlKCkgY29uc3QgeyByZXR1cm4g
bV9oYXNRdW90ZXNOZWVkaW5nVXBkYXRlOyB9CiAgICAgdm9pZCBzZXRIYXNRdW90ZXNOZWVkaW5n
VXBkYXRlKGJvb2wgYikgeyBtX2hhc1F1b3Rlc05lZWRpbmdVcGRhdGUgPSBiOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTQ29tcGxl
dGlvbnMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NT
Q29tcGxldGlvbnMuanMKaW5kZXggMjNjZTg1NTA0YjJkMDZiMDZiNjBkYTVmYzRjM2IzMmFmNDE5
OTgyMy4uYzQ2ODE1MGY3MzFkYzllYTA5MWNhYzM4YjAwNWM2ZWUxOGY2ZjEzZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU0NvbXBsZXRp
b25zLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9D
U1NDb21wbGV0aW9ucy5qcwpAQCAtMzQzLDE1ICszNDMsMjcgQEAgV0kuQ1NTQ29tcGxldGlvbnMu
Y3NzTmFtZUNvbXBsZXRpb25zID0gbnVsbDsKIFdJLkNTU0NvbXBsZXRpb25zLmxlbmd0aFVuaXRz
ID0gbmV3IFNldChbCiAgICAgImNoIiwKICAgICAiY20iLAorICAgICJkdmgiLAorICAgICJkdm1h
eCIsCisgICAgImR2bWluIiwKKyAgICAiZHZ3IiwKICAgICAiZW0iLAogICAgICJleCIsCiAgICAg
ImluIiwKKyAgICAibHZoIiwKKyAgICAibHZtYXgiLAorICAgICJsdm1pbiIsCisgICAgImx2dyIs
CiAgICAgIm1tIiwKICAgICAicGMiLAogICAgICJwdCIsCiAgICAgInB4IiwKICAgICAicSIsCiAg
ICAgInJlbSIsCisgICAgInN2aCIsCisgICAgInN2bWF4IiwKKyAgICAic3ZtaW4iLAorICAgICJz
dnciLAogICAgICJ2aCIsCiAgICAgInZtYXgiLAogICAgICJ2bWluIiwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKaW5kZXgg
YjkxOWRkOTc4ZmQ2YjQ1ZTIyODA5NGYxOWE3NDdlMDhlN2ZjOTQ4OS4uMmVhYWNiNmZkMDIzOTFh
MDM1YTAwZWM5ODEyYTk5ZDQ0YTkwYjZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKQEAgLTE1NSw2ICsxNTUsOCBA
QCBjbGFzcyBWaWV3R2VzdHVyZUNvbnRyb2xsZXI7CiAKICAgICBzdGQ6Om9wdGlvbmFsPENHU2l6
ZT4gX3ZpZXdMYXlvdXRTaXplT3ZlcnJpZGU7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpG
bG9hdFNpemU+IF9sYXN0U2VudFZpZXdMYXlvdXRTaXplOworICAgIHN0ZDo6b3B0aW9uYWw8Q0dT
aXplPiBfbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU7CisgICAgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpGbG9hdFNpemU+IF9sYXN0U2VudE1pbmltdW1Vbm9ic2N1cmVkU2l6ZTsKICAgICBz
dGQ6Om9wdGlvbmFsPENHU2l6ZT4gX21heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOwogICAg
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRTaXplPiBfbGFzdFNlbnRNYXhpbXVtVW5vYnNj
dXJlZFNpemU7CiAgICAgQ0dSZWN0IF9pbnB1dFZpZXdCb3VuZHNJbldpbmRvdzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmlu
ZGV4IGNiN2YzMzQzZmRlZTAyMDVhZTBjZTI2NmNmODMxNzlmMTFkYWQwNDEuLjI4YTQ5NzFjZTgw
NTNhZTRiYzk0MjVmZDVmMzJjZjgzNTViZmI3OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtNDkyLDcgKzQ5Miw4
IEBAIGZvciB0aGlzIHByb3BlcnR5LgogCiAtICh2b2lkKV9zbmFwc2hvdFJlY3Q6KENHUmVjdCly
ZWN0SW5WaWV3Q29vcmRpbmF0ZXMgaW50b0ltYWdlT2ZXaWR0aDooQ0dGbG9hdClpbWFnZVdpZHRo
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKENHSW1hZ2VSZWYpKWNvbXBsZXRpb25IYW5kbGVy
OwogCi0tICh2b2lkKV9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNp
emU6KENHU2l6ZSltaW5pbXVtTGF5b3V0U2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlk
ZTooQ0dTaXplKW1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlIFdLX0FQSV9BVkFJTEFCTEUo
aW9zKDlfMCkpOworLSAodm9pZClfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1M
YXlvdXRTaXplOihDR1NpemUpbWluaW11bUxheW91dFNpemUgbWF4aW11bVVub2JzY3VyZWRTaXpl
T3ZlcnJpZGU6KENHU2l6ZSltYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSBXS19BUElfREVQ
UkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1p
bmltdW1MYXlvdXRTaXplOm1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOm1heGltdW1Vbm9i
c2N1cmVkU2l6ZU92ZXJyaWRlOiIsIGlvcyg5XzAsIFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX292
ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTooQ0dTaXplKW1pbmlt
dW1MYXlvdXRTaXplIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOihDR1NpemUpbWluaW11
bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6KENH
U2l6ZSltYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSBXS19BUElfQVZBSUxBQkxFKGlvcyhX
S19JT1NfVEJBKSk7CiAtICh2b2lkKV9jbGVhck92ZXJyaWRlTGF5b3V0UGFyYW1ldGVycyBXS19B
UElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAtICh2b2lkKV9vdmVycmlkZVZpZXdwb3J0V2l0aEFy
Z3VtZW50czooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIE5TU3RyaW5nICo+ICopYXJndW1lbnRz
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEzLjApKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQppbmRleCA0MzBkMzMyZGYwNGMzYzg3YWE0NWIw
MGM5ZWI3M2Q3YjJlYmVhZjUyLi5iZGY0ZGE2OTYzZTg2ZGVlOWZhYWY1ZTg0YWY1MTk1NzUyYTk5
ZDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmll
d0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lP
Uy5tbQpAQCAtNzAzLDYgKzcwMyw3IEBAIC0gKHZvaWQpX3Byb2Nlc3NXaWxsU3dhcE9yRGlkRXhp
dAogICAgIF9kaWREZWZlclVwZGF0ZVZpc2libGVDb250ZW50UmVjdHNGb3JVbnN0YWJsZVNjcm9s
bFZpZXcgPSBOTzsKICAgICBfY3VycmVudGx5QWRqdXN0aW5nU2Nyb2xsVmlld0luc2V0c0Zvcktl
eWJvYXJkID0gTk87CiAgICAgX2xhc3RTZW50Vmlld0xheW91dFNpemUgPSBzdGQ6Om51bGxvcHQ7
CisgICAgX2xhc3RTZW50TWluaW11bVVub2JzY3VyZWRTaXplID0gc3RkOjpudWxsb3B0OwogICAg
IF9sYXN0U2VudE1heGltdW1Vbm9ic2N1cmVkU2l6ZSA9IHN0ZDo6bnVsbG9wdDsKICAgICBfbGFz
dFNlbnREZXZpY2VPcmllbnRhdGlvbiA9IHN0ZDo6bnVsbG9wdDsKIApAQCAtMTkwNCw2ICsxOTA1
LDE1IEBAIC0gKHZvaWQpX2Rpc3BhdGNoU2V0Vmlld0xheW91dFNpemU6KFdlYkNvcmU6OkZsb2F0
U2l6ZSl2aWV3TGF5b3V0U2l6ZQogICAgIF9sYXN0U2VudFZpZXdMYXlvdXRTaXplID0gdmlld0xh
eW91dFNpemU7CiB9CiAKKy0gKHZvaWQpX2Rpc3BhdGNoU2V0TWluaW11bVVub2JzY3VyZWRTaXpl
OihXZWJDb3JlOjpGbG9hdFNpemUpbWluaW11bVVub2JzY3VyZWRTaXplCit7CisgICAgaWYgKF9s
YXN0U2VudE1pbmltdW1Vbm9ic2N1cmVkU2l6ZSAmJiBDR1NpemVFcXVhbFRvU2l6ZShfbGFzdFNl
bnRNaW5pbXVtVW5vYnNjdXJlZFNpemUudmFsdWUoKSwgbWluaW11bVVub2JzY3VyZWRTaXplKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgX3BhZ2UtPnNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZSht
aW5pbXVtVW5vYnNjdXJlZFNpemUpOworICAgIF9sYXN0U2VudE1pbmltdW1Vbm9ic2N1cmVkU2l6
ZSA9IG1pbmltdW1Vbm9ic2N1cmVkU2l6ZTsKK30KKwogLSAodm9pZClfZGlzcGF0Y2hTZXRNYXhp
bXVtVW5vYnNjdXJlZFNpemU6KFdlYkNvcmU6OkZsb2F0U2l6ZSltYXhpbXVtVW5vYnNjdXJlZFNp
emUKIHsKICAgICBpZiAoX2xhc3RTZW50TWF4aW11bVVub2JzY3VyZWRTaXplICYmIENHU2l6ZUVx
dWFsVG9TaXplKF9sYXN0U2VudE1heGltdW1Vbm9ic2N1cmVkU2l6ZS52YWx1ZSgpLCBtYXhpbXVt
VW5vYnNjdXJlZFNpemUpKQpAQCAtMTkzOSw2ICsxOTQ5LDggQEAgLSAodm9pZClfZnJhbWVPckJv
dW5kc0NoYW5nZWQKICAgICBpZiAoX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgPT0gV2ViS2l0
OjpEeW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNpemluZykgewogICAgICAgICBpZiAo
IV92aWV3TGF5b3V0U2l6ZU92ZXJyaWRlKQogICAgICAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0
Vmlld0xheW91dFNpemU6W3NlbGYgYWN0aXZlVmlld0xheW91dFNpemU6c2VsZi5ib3VuZHNdXTsK
KyAgICAgICAgaWYgKCFfbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUpCisgICAgICAgICAg
ICBbc2VsZiBfZGlzcGF0Y2hTZXRNaW5pbXVtVW5vYnNjdXJlZFNpemU6V2ViQ29yZTo6RmxvYXRT
aXplKGJvdW5kcy5zaXplKV07CiAgICAgICAgIGlmICghX21heGltdW1Vbm9ic2N1cmVkU2l6ZU92
ZXJyaWRlKQogICAgICAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0TWF4aW11bVVub2JzY3VyZWRT
aXplOldlYkNvcmU6OkZsb2F0U2l6ZShib3VuZHMuc2l6ZSldOwogCkBAIC0yMjU5LDYgKzIyNzEs
MTEgQEAgLSAodm9pZClfZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWUKICAgICAg
ICAgX2dlc3R1cmVDb250cm9sbGVyLT5kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFt
ZSgpOwogfQogCitzdGF0aWMgV2ViQ29yZTo6RmxvYXRTaXplIGFjdGl2ZU1pbmltdW1Vbm9ic2N1
cmVkU2l6ZShXS1dlYlZpZXcgKndlYlZpZXcsIGNvbnN0IENHUmVjdCYgYm91bmRzKQoreworICAg
IHJldHVybiBXZWJDb3JlOjpGbG9hdFNpemUod2ViVmlldy0+X21pbmltdW1Vbm9ic2N1cmVkU2l6
ZU92ZXJyaWRlLnZhbHVlX29yKGJvdW5kcy5zaXplKSk7Cit9CisKIHN0YXRpYyBXZWJDb3JlOjpG
bG9hdFNpemUgYWN0aXZlTWF4aW11bVVub2JzY3VyZWRTaXplKFdLV2ViVmlldyAqd2ViVmlldywg
Y29uc3QgQ0dSZWN0JiBib3VuZHMpCiB7CiAgICAgcmV0dXJuIFdlYkNvcmU6OkZsb2F0U2l6ZSh3
ZWJWaWV3LT5fbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUudmFsdWVfb3IoYm91bmRzLnNp
emUpKTsKQEAgLTIzNDgsMTIgKzIzNjUsMTYgQEAgLSAodm9pZClfZGlkQ29tcGxldGVBbmltYXRl
ZFJlc2l6ZQogCiAgICAgQ0dSZWN0IG5ld0JvdW5kcyA9IHNlbGYuYm91bmRzOwogICAgIGF1dG8g
bmV3Vmlld0xheW91dFNpemUgPSBbc2VsZiBhY3RpdmVWaWV3TGF5b3V0U2l6ZTpuZXdCb3VuZHNd
OworICAgIGF1dG8gbmV3TWluaW11bVVub2JzY3VyZWRTaXplID0gYWN0aXZlTWluaW11bVVub2Jz
Y3VyZWRTaXplKHNlbGYsIG5ld0JvdW5kcyk7CiAgICAgYXV0byBuZXdNYXhpbXVtVW5vYnNjdXJl
ZFNpemUgPSBhY3RpdmVNYXhpbXVtVW5vYnNjdXJlZFNpemUoc2VsZiwgbmV3Qm91bmRzKTsKICAg
ICBpbnQzMl90IG5ld09yaWVudGF0aW9uID0gYWN0aXZlT3JpZW50YXRpb24oc2VsZik7CiAKICAg
ICBpZiAoIV9sYXN0U2VudFZpZXdMYXlvdXRTaXplIHx8IG5ld1ZpZXdMYXlvdXRTaXplICE9IF9s
YXN0U2VudFZpZXdMYXlvdXRTaXplLnZhbHVlKCkpCiAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNl
dFZpZXdMYXlvdXRTaXplOm5ld1ZpZXdMYXlvdXRTaXplXTsKIAorICAgIGlmICghX2xhc3RTZW50
TWluaW11bVVub2JzY3VyZWRTaXplIHx8IG5ld01pbmltdW1Vbm9ic2N1cmVkU2l6ZSAhPSBfbGFz
dFNlbnRNaW5pbXVtVW5vYnNjdXJlZFNpemUudmFsdWUoKSkKKyAgICAgICAgW3NlbGYgX2Rpc3Bh
dGNoU2V0TWluaW11bVVub2JzY3VyZWRTaXplOldlYkNvcmU6OkZsb2F0U2l6ZShuZXdNaW5pbXVt
VW5vYnNjdXJlZFNpemUpXTsKKwogICAgIGlmICghX2xhc3RTZW50TWF4aW11bVVub2JzY3VyZWRT
aXplIHx8IG5ld01heGltdW1Vbm9ic2N1cmVkU2l6ZSAhPSBfbGFzdFNlbnRNYXhpbXVtVW5vYnNj
dXJlZFNpemUudmFsdWUoKSkKICAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0TWF4aW11bVVub2Jz
Y3VyZWRTaXplOldlYkNvcmU6OkZsb2F0U2l6ZShuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUpXTsK
IApAQCAtMjcwOCw2ICsyNzI5LDIxIEBAIC0gKHZvaWQpX3NldFZpZXdMYXlvdXRTaXplT3ZlcnJp
ZGU6KENHU2l6ZSl2aWV3TGF5b3V0U2l6ZU92ZXJyaWRlCiAgICAgICAgIFtzZWxmIF9kaXNwYXRj
aFNldFZpZXdMYXlvdXRTaXplOldlYkNvcmU6OkZsb2F0U2l6ZSh2aWV3TGF5b3V0U2l6ZU92ZXJy
aWRlKV07CiB9CiAKKy0gKENHU2l6ZSlfbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUKK3sK
KyAgICBBU1NFUlQoX21pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlKTsKKyAgICByZXR1cm4g
X21pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlLnZhbHVlX29yKENHU2l6ZVplcm8pOworfQor
CistICh2b2lkKV9zZXRNaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTooQ0dTaXplKXNpemUK
K3sKKyAgICBBU1NFUlQoc2l6ZS53aWR0aCA8PSBzZWxmLmJvdW5kcy5zaXplLndpZHRoICYmIHNp
emUuaGVpZ2h0IDw9IHNlbGYuYm91bmRzLnNpemUuaGVpZ2h0KTsKKyAgICBfbWluaW11bVVub2Jz
Y3VyZWRTaXplT3ZlcnJpZGUgPSBzaXplOworCisgICAgaWYgKF9keW5hbWljVmlld3BvcnRVcGRh
dGVNb2RlID09IFdlYktpdDo6RHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZTo6Tm90UmVzaXppbmcp
CisgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZTpXZWJDb3Jl
OjpGbG9hdFNpemUoc2l6ZSldOworfQorCiAvLyBEZXByZWNhdGVkIFNQSQogLSAoQ0dTaXplKV9t
YXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZQogewpAQCAtMzAzMiw2ICszMDY4LDcgQEAgLSAo
dm9pZClfYmVnaW5BbmltYXRlZFJlc2l6ZVdpdGhVcGRhdGVzOih2b2lkICheKSh2b2lkKSl1cGRh
dGVCbG9jawogICAgICAgICBvbGRPYnNjdXJlZEluc2V0cyA9IF9vYnNjdXJlZEluc2V0czsKICAg
ICB9CiAgICAgYXV0byBvbGRWaWV3TGF5b3V0U2l6ZSA9IFtzZWxmIGFjdGl2ZVZpZXdMYXlvdXRT
aXplOm9sZEJvdW5kc107CisgICAgYXV0byBvbGRNaW5pbXVtVW5vYnNjdXJlZFNpemUgPSBhY3Rp
dmVNaW5pbXVtVW5vYnNjdXJlZFNpemUoc2VsZiwgb2xkQm91bmRzKTsKICAgICBhdXRvIG9sZE1h
eGltdW1Vbm9ic2N1cmVkU2l6ZSA9IGFjdGl2ZU1heGltdW1Vbm9ic2N1cmVkU2l6ZShzZWxmLCBv
bGRCb3VuZHMpOwogCiAgICAgdXBkYXRlQmxvY2soKTsKQEAgLTMwMzksNiArMzA3Niw3IEBAIC0g
KHZvaWQpX2JlZ2luQW5pbWF0ZWRSZXNpemVXaXRoVXBkYXRlczoodm9pZCAoXikodm9pZCkpdXBk
YXRlQmxvY2sKICAgICBDR1JlY3QgbmV3Qm91bmRzID0gc2VsZi5ib3VuZHM7CiAgICAgYXV0byBu
ZXdNaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGggPSBbc2VsZiBfbWluaW11bUVmZmVjdGl2ZURl
dmljZVdpZHRoXTsKICAgICBhdXRvIG5ld1ZpZXdMYXlvdXRTaXplID0gW3NlbGYgYWN0aXZlVmll
d0xheW91dFNpemU6bmV3Qm91bmRzXTsKKyAgICBhdXRvIG5ld01pbmltdW1Vbm9ic2N1cmVkU2l6
ZSA9IGFjdGl2ZU1pbmltdW1Vbm9ic2N1cmVkU2l6ZShzZWxmLCBuZXdCb3VuZHMpOwogICAgIGF1
dG8gbmV3TWF4aW11bVVub2JzY3VyZWRTaXplID0gYWN0aXZlTWF4aW11bVVub2JzY3VyZWRTaXpl
KHNlbGYsIG5ld0JvdW5kcyk7CiAgICAgaW50MzJfdCBuZXdPcmllbnRhdGlvbiA9IGFjdGl2ZU9y
aWVudGF0aW9uKHNlbGYpOwogICAgIFVJRWRnZUluc2V0cyBuZXdPYnNjdXJlZEluc2V0cyA9IF9v
YnNjdXJlZEluc2V0czsKQEAgLTMwNjAsNiArMzA5OCw4IEBAIC0gKHZvaWQpX2JlZ2luQW5pbWF0
ZWRSZXNpemVXaXRoVXBkYXRlczoodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sKICAgICAgICAg
W3NlbGYgX2ZyYW1lT3JCb3VuZHNDaGFuZ2VkXTsKICAgICAgICAgaWYgKF92aWV3TGF5b3V0U2l6
ZU92ZXJyaWRlKQogICAgICAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0Vmlld0xheW91dFNpemU6
bmV3Vmlld0xheW91dFNpemVdOworICAgICAgICBpZiAoX21pbmltdW1Vbm9ic2N1cmVkU2l6ZU92
ZXJyaWRlKQorICAgICAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0TWluaW11bVVub2JzY3VyZWRT
aXplOldlYkNvcmU6OkZsb2F0U2l6ZShuZXdNaW5pbXVtVW5vYnNjdXJlZFNpemUpXTsKICAgICAg
ICAgaWYgKF9tYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSkKICAgICAgICAgICAgIFtzZWxm
IF9kaXNwYXRjaFNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUobmV3
TWF4aW11bVVub2JzY3VyZWRTaXplKV07CiAgICAgICAgIGlmIChfb3ZlcnJpZGVzSW50ZXJmYWNl
T3JpZW50YXRpb24pCkBAIC0zMDcwLDYgKzMxMTAsNyBAQCAtICh2b2lkKV9iZWdpbkFuaW1hdGVk
UmVzaXplV2l0aFVwZGF0ZXM6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrCiAKICAgICBpZiAo
Q0dSZWN0RXF1YWxUb1JlY3Qob2xkQm91bmRzLCBuZXdCb3VuZHMpCiAgICAgICAgICYmIG9sZFZp
ZXdMYXlvdXRTaXplID09IG5ld1ZpZXdMYXlvdXRTaXplCisgICAgICAgICYmIG9sZE1pbmltdW1V
bm9ic2N1cmVkU2l6ZSA9PSBuZXdNaW5pbXVtVW5vYnNjdXJlZFNpemUKICAgICAgICAgJiYgb2xk
TWF4aW11bVVub2JzY3VyZWRTaXplID09IG5ld01heGltdW1Vbm9ic2N1cmVkU2l6ZQogICAgICAg
ICAmJiBvbGRPcmllbnRhdGlvbiA9PSBuZXdPcmllbnRhdGlvbgogICAgICAgICAmJiBvbGRNaW5p
bXVtRWZmZWN0aXZlRGV2aWNlV2lkdGggPT0gbmV3TWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRo
CkBAIC0zMTM3LDEwICszMTc4LDExIEBAIC0gKHZvaWQpX2JlZ2luQW5pbWF0ZWRSZXNpemVXaXRo
VXBkYXRlczoodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sKICAgICBXZWJDb3JlOjpGbG9hdEJv
eEV4dGVudCB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHNFeHRlbnQodW5vYnNjdXJlZFNhZmVBcmVh
SW5zZXRzLnRvcCwgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLnJpZ2h0LCB1bm9ic2N1cmVkU2Fm
ZUFyZWFJbnNldHMuYm90dG9tLCB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMubGVmdCk7CiAKICAg
ICBfbGFzdFNlbnRWaWV3TGF5b3V0U2l6ZSA9IG5ld1ZpZXdMYXlvdXRTaXplOworICAgIF9sYXN0
U2VudE1pbmltdW1Vbm9ic2N1cmVkU2l6ZSA9IG5ld01pbmltdW1Vbm9ic2N1cmVkU2l6ZTsKICAg
ICBfbGFzdFNlbnRNYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBuZXdNYXhpbXVtVW5vYnNjdXJlZFNp
emU7CiAgICAgX2xhc3RTZW50RGV2aWNlT3JpZW50YXRpb24gPSBuZXdPcmllbnRhdGlvbjsKIAot
ICAgIF9wYWdlLT5keW5hbWljVmlld3BvcnRTaXplVXBkYXRlKG5ld1ZpZXdMYXlvdXRTaXplLCBu
ZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUsIHZpc2libGVSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMs
IHVub2JzY3VyZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMsIGZ1dHVyZVVub2JzY3VyZWRSZWN0
SW5TZWxmQ29vcmRpbmF0ZXMsIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0c0V4dGVudCwgdGFyZ2V0
U2NhbGUsIG5ld09yaWVudGF0aW9uLCBuZXdNaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsICsr
X2N1cnJlbnREeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpOworICAgIF9wYWdlLT5keW5hbWlj
Vmlld3BvcnRTaXplVXBkYXRlKG5ld1ZpZXdMYXlvdXRTaXplLCBuZXdNaW5pbXVtVW5vYnNjdXJl
ZFNpemUsIG5ld01heGltdW1Vbm9ic2N1cmVkU2l6ZSwgdmlzaWJsZVJlY3RJbkNvbnRlbnRDb29y
ZGluYXRlcywgdW5vYnNjdXJlZFJlY3RJbkNvbnRlbnRDb29yZGluYXRlcywgZnV0dXJlVW5vYnNj
dXJlZFJlY3RJblNlbGZDb29yZGluYXRlcywgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzRXh0ZW50
LCB0YXJnZXRTY2FsZSwgbmV3T3JpZW50YXRpb24sIG5ld01pbmltdW1FZmZlY3RpdmVEZXZpY2VX
aWR0aCwgKytfY3VycmVudER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCk7CiAgICAgaWYgKFdl
YktpdDo6RHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEgPSBfcGFnZS0+ZHJhd2luZ0FyZWEo
KSkKICAgICAgICAgZHJhd2luZ0FyZWEtPnNldFNpemUoV2ViQ29yZTo6SW50U2l6ZShuZXdCb3Vu
ZHMuc2l6ZSkpOwogCkBAIC0zMjU2LDEyICszMjk4LDIxIEBAIC0gKHZvaWQpX3NuYXBzaG90UmVj
dDooQ0dSZWN0KXJlY3RJblZpZXdDb29yZGluYXRlcyBpbnRvSW1hZ2VPZldpZHRoOihDR0Zsb2F0
KWltCiAKIC0gKHZvaWQpX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0
U2l6ZTooQ0dTaXplKW1pbmltdW1MYXlvdXRTaXplIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJy
aWRlOihDR1NpemUpbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUKIHsKLSAgICBMT0dfV0lU
SF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwgIi1bV0tXZWJWaWV3ICIgPDwgX3BhZ2Ut
PmlkZW50aWZpZXIoKSA8PCAiIF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxh
eW91dFNpemU6IiA8PCBXZWJDb3JlOjpGbG9hdFNpemUobWluaW11bUxheW91dFNpemUpIDw8ICIg
bWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6IiA8PCBXZWJDb3JlOjpGbG9hdFNpemUobWF4
aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUpIDw8ICJdIik7CisgICAgW3NlbGYgX292ZXJyaWRl
TGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTptaW5pbXVtTGF5b3V0U2l6ZSBt
aW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVaZXJvIG1heGltdW1Vbm9ic2N1cmVk
U2l6ZU92ZXJyaWRlOm1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlXTsKK30KKworLSAodm9p
ZClfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOihDR1NpemUp
bWluaW11bUxheW91dFNpemUgbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6KENHU2l6ZSlt
aW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlk
ZTooQ0dTaXplKW1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlCit7CisgICAgTE9HX1dJVEhf
U1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICItW1dLV2ViVmlldyAiIDw8IF9wYWdlLT5p
ZGVudGlmaWVyKCkgPDwgIiBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlv
dXRTaXplOiIgPDwgV2ViQ29yZTo6RmxvYXRTaXplKG1pbmltdW1MYXlvdXRTaXplKSA8PCAiIG1p
bmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOiIgPDwgV2ViQ29yZTo6RmxvYXRTaXplKG1pbmlt
dW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlKSA8PCAiIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJy
aWRlOiIgPDwgV2ViQ29yZTo6RmxvYXRTaXplKG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRl
KSA8PCAiXSIpOwogCiAgICAgaWYgKG1pbmltdW1MYXlvdXRTaXplLndpZHRoIDwgMCB8fCBtaW5p
bXVtTGF5b3V0U2l6ZS5oZWlnaHQgPCAwKQogICAgICAgICBSRUxFQVNFX0xPR19GQVVMVChWaXNp
YmxlUmVjdHMsICIlczogRXJyb3I6IGF0dGVtcHRpbmcgdG8gb3ZlcnJpZGUgbGF5b3V0IHBhcmFt
ZXRlcnMgd2l0aCBuZWdhdGl2ZSB3aWR0aCBvciBoZWlnaHQ6ICVAIiwgX19QUkVUVFlfRlVOQ1RJ
T05fXywgTlNTdHJpbmdGcm9tQ0dTaXplKG1pbmltdW1MYXlvdXRTaXplKSk7CiAKKyAgICBpZiAo
Q0dTaXplRXF1YWxUb1NpemUobWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUsIENHU2l6ZVpl
cm8pICE9IENHU2l6ZUVxdWFsVG9TaXplKG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlLCBD
R1NpemVaZXJvKSkKKyAgICAgICAgUkVMRUFTRV9MT0dfRkFVTFQoVmlzaWJsZVJlY3RzLCAiJXM6
IEVycm9yOiBhdHRlbXB0aW5nIHRvIG92ZXJyaWRlIGxheW91dCBwYXJhbWV0ZXJzIHdpdGggb25s
eSBvbmUgb2YgbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUgKCVAKSBhbmQgbWF4aW11bVVu
b2JzY3VyZWRTaXplT3ZlcnJpZGUgKCVAKSIsIF9fUFJFVFRZX0ZVTkNUSU9OX18sIE5TU3RyaW5n
RnJvbUNHU2l6ZShtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSksIE5TU3RyaW5nRnJvbUNH
U2l6ZShtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSkpOworCiAgICAgW3NlbGYgX3NldFZp
ZXdMYXlvdXRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZShzdGQ6Om1heDxDR0Zsb2F0PigwLCBtaW5p
bXVtTGF5b3V0U2l6ZS53aWR0aCksIHN0ZDo6bWF4PENHRmxvYXQ+KDAsIG1pbmltdW1MYXlvdXRT
aXplLmhlaWdodCkpXTsKKyAgICBbc2VsZiBfc2V0TWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJp
ZGU6bWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGVdOwogICAgIFtzZWxmIF9zZXRNYXhpbXVt
VW5vYnNjdXJlZFNpemVPdmVycmlkZTptYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZV07CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZjYyNjMyMDRhMjJm
Zjk1ZDM0OGRhNTFkMWY2MzYyYTg5ZjYyMzVkZC4uNzM3NWI1N2U1OTM5NGQ2OTdjNmM4Y2M3MGZh
MmY2YzEwODAyMGYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTgxNyw5ICs4MTcsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xsaW5nTm9kZVNjcm9sbFdp
bGxTdGFydFNjcm9sbCgpOwogICAgIHZvaWQgc2Nyb2xsaW5nTm9kZVNjcm9sbERpZEVuZFNjcm9s
bCgpOwogCi0gICAgdm9pZCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4
aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldEV4cG9z
ZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVk
UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Ny
b2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdW5vYnNj
dXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0U2NhbGUsIGludDMyX3QgZGV2aWNlT3Jp
ZW50YXRpb24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsIER5bmFtaWNWaWV3
cG9ydFNpemVVcGRhdGVJRCk7CisgICAgdm9pZCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgbWluaW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRF
eHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNj
dXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJ
blNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHVu
b2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmlj
ZU9yaWVudGF0aW9uLCBkb3VibGUgbWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCBEeW5hbWlj
Vmlld3BvcnRTaXplVXBkYXRlSUQpOwogCiAgICAgdm9pZCBzZXRWaWV3cG9ydENvbmZpZ3VyYXRp
b25WaWV3TGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBkb3VibGUgc2NhbGVG
YWN0b3IsIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgpOworICAgIHZvaWQgc2V0
TWluaW11bVVub2JzY3VyZWRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOworICAgIFdl
YkNvcmU6OkZsb2F0U2l6ZSBtaW5pdW11VW5vYnNjdXJlZFNpemUoKSBjb25zdCB7IHJldHVybiBt
X21pbmltdW1Vbm9ic2N1cmVkU2l6ZTsgfQogICAgIHZvaWQgc2V0TWF4aW11bVVub2JzY3VyZWRT
aXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBt
YXhpbXVtVW5vYnNjdXJlZFNpemUoKSBjb25zdCB7IHJldHVybiBtX21heGltdW1Vbm9ic2N1cmVk
U2l6ZTsgfQogICAgIHZvaWQgc2V0RGV2aWNlT3JpZW50YXRpb24oaW50MzJfdCk7CkBAIC0yOTc0
LDYgKzI5NzYsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgRnVu
Y3Rpb248Ym9vbCgpPiBtX2RldmljZU9yaWVudGF0aW9uVXNlclBlcm1pc3Npb25IYW5kbGVyRm9y
VGVzdGluZzsKICAgICBib29sIG1fd2FpdGluZ0ZvclBvc3RMYXlvdXRFZGl0b3JTdGF0ZVVwZGF0
ZUFmdGVyRm9jdXNpbmdFbGVtZW50IHsgZmFsc2UgfTsKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUg
bV9taW5pbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fbWF4aW11
bVVub2JzY3VyZWRTaXplOwogICAgIGJvb2wgbV9sYXN0T2JzZXJ2ZWRTdGF0ZVdhc0JhY2tncm91
bmQgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbQppbmRleCA0YzczOGJhODI2MTgzMjY0N2UxNjU3MzM5YTg5YTAwYzBl
MDE1NzRiLi5iNDYzYzU1ZWIxMDlkNGI2ZDJhZGQxZTg4NDgxMTU4YTMwYzc1ZjU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTI2NCw3
ICsyNjQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2Nyb2xsaW5nTm9kZVNjcm9sbERpZEVuZFNj
cm9sbCgpCiAgICAgcGFnZUNsaWVudCgpLnNjcm9sbGluZ05vZGVTY3JvbGxEaWRFbmRTY3JvbGwo
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29u
c3QgRmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBt
YXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRl
bnRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJs
ZSB0YXJnZXRTY2FsZSwgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgZG91YmxlIG1pbmltdW1F
ZmZlY3RpdmVEZXZpY2VXaWR0aCwgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEIGR5bmFtaWNW
aWV3cG9ydFNpemVVcGRhdGVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkeW5hbWljVmlld3BvcnRT
aXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgbWluaW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRFeHBvc2Vk
Q29udGVudFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywg
Y29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywg
ZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCBkb3VibGUgbWlu
aW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQgZHlu
YW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKQogewogICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3Mo
KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjczLDcgKzI3Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgdmlld0xheW91dFNp
emUsIGNvCiAKICAgICBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplID0gdmll
d0xheW91dFNpemU7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEeW5h
bWljVmlld3BvcnRTaXplVXBkYXRlKHZpZXdMYXlvdXRTaXplLAotICAgICAgICBtYXhpbXVtVW5v
YnNjdXJlZFNpemUsIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgdGFyZ2V0VW5vYnNjdXJlZFJl
Y3QsCisgICAgICAgIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZSwgbWF4aW11bVVub2JzY3VyZWRTaXpl
LCB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIHRhcmdldFVub2JzY3VyZWRSZWN0LAogICAgICAg
ICB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCB1bm9ic2N1cmVk
U2FmZUFyZWFJbnNldHMsCiAgICAgICAgIHRhcmdldFNjYWxlLCBkZXZpY2VPcmllbnRhdGlvbiwg
bWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQp
LCBtX3dlYlBhZ2VJRCk7CiAKQEAgLTMwMCw2ICszMDAsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnNldEZvcmNlQWx3YXlzVXNlclNjYWxhYmxlKGJvb2wgdXNlclNjYWxhYmxlKQogICAgICAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEZvcmNlQWx3YXlzVXNlclNjYWxh
YmxlKHVzZXJTY2FsYWJsZSksIG1fd2ViUGFnZUlEKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6
OnNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUp
Cit7CisgICAgbV9taW5pbXVtVW5vYnNjdXJlZFNpemUgPSBzaXplOworCisgICAgaWYgKGhhc1J1
bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6U2V0TWluaW11bVVub2JzY3VyZWRTaXplKHNpemUpLCBtX3dlYlBhZ2VJRCk7Cit9CisKIHZv
aWQgV2ViUGFnZVByb3h5OjpzZXRNYXhpbXVtVW5vYnNjdXJlZFNpemUoY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiBzaXplKQogewogICAgIG1fbWF4aW11bVVub2JzY3VyZWRTaXplID0gc2l6ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVs
bFNjcmVlblZpZXdDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1
bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0KaW5kZXggNTAwNDBhNTJkNDZk
Zjg4NGFjNzk4YjBkYzgzNDZmZDliMWQ3Y2VmMy4uM2JhMmM0OGYyMDVmOGE1NzkzYWYyYjRmNTRk
OTA5Y2VhOTMyOTU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1
bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0K
QEAgLTQwMiw3ICs0MDIsNyBAQCAtICh2b2lkKXZpZXdXaWxsVHJhbnNpdGlvblRvU2l6ZTooQ0dT
aXplKXNpemUgd2l0aFRyYW5zaXRpb25Db29yZGluYXRvcjooaWQ8VUlWaQogICAgIFtzdXBlciB2
aWV3V2lsbFRyYW5zaXRpb25Ub1NpemU6c2l6ZSB3aXRoVHJhbnNpdGlvbkNvb3JkaW5hdG9yOmNv
b3JkaW5hdG9yXTsKICAgICBbY29vcmRpbmF0b3IgYW5pbWF0ZUFsb25nc2lkZVRyYW5zaXRpb246
XihpZDxVSVZpZXdDb250cm9sbGVyVHJhbnNpdGlvbkNvb3JkaW5hdG9yQ29udGV4dD4gY29udGV4
dCkgewogICAgICAgICBbc2VsZi5fd2ViVmlldyBfYmVnaW5BbmltYXRlZFJlc2l6ZVdpdGhVcGRh
dGVzOl57Ci0gICAgICAgICAgICBbc2VsZi5fd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0
ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOnNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJp
ZGU6c2l6ZV07CisgICAgICAgICAgICBbc2VsZi5fd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJh
bWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOnNpemUgbWluaW11bVVub2JzY3VyZWRTaXplT3Zl
cnJpZGU6c2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpzaXplXTsKICAgICAgICAg
fV07CiAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgW3NlbGYu
X3dlYlZpZXcgX3NldEludGVyZmFjZU9yaWVudGF0aW9uT3ZlcnJpZGU6W1VJQXBwIHN0YXR1c0Jh
ck9yaWVudGF0aW9uXV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
ZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
cklPUy5tbQppbmRleCBlMTlmZjVjYjI0ZjAxZTkzMTA4MmQ1NThmMzNlZGQyYWUwZDNiZjBkLi4w
YzFjZDU1ZjIyZTY0ZDIyMmNhZDBlOGMyNDBjMmZhMjJmM2QxZDA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVu
L1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0KQEAgLTU5MSw3ICs1OTEsNyBAQCAt
ICh2b2lkKWVudGVyRnVsbFNjcmVlbgogICAgICAgICAKICAgICAgICAgW3dlYlZpZXcgc2V0QXV0
b3Jlc2l6aW5nTWFzazooVUlWaWV3QXV0b3Jlc2l6aW5nRmxleGlibGVXaWR0aCB8IFVJVmlld0F1
dG9yZXNpemluZ0ZsZXhpYmxlSGVpZ2h0KV07CiAgICAgICAgIFt3ZWJWaWV3IHNldEZyYW1lOltf
d2luZG93IGJvdW5kc11dOwotICAgICAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0
ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOltfd2luZG93IGJvdW5kc10uc2l6ZSBtYXhpbXVtVW5v
YnNjdXJlZFNpemVPdmVycmlkZTpbX3dpbmRvdyBib3VuZHNdLnNpemVdOworICAgICAgICBbd2Vi
VmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOltfd2lu
ZG93IGJvdW5kc10uc2l6ZSBtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpbX3dpbmRvdyBi
b3VuZHNdLnNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6W193aW5kb3cgYm91bmRz
XS5zaXplXTsKICAgICAgICAgW193aW5kb3cgaW5zZXJ0U3Vidmlldzp3ZWJWaWV3LmdldCgpIGF0
SW5kZXg6MF07CiAgICAgICAgIFt3ZWJWaWV3IHNldE5lZWRzTGF5b3V0XTsKICAgICAgICAgW3dl
YlZpZXcgbGF5b3V0SWZOZWVkZWRdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5k
ZXggMTNkNjM4NzQ4ZTEwYjVkZjM3ZjkwN2I4M2ExZDU5M2U0YmVmYjNhZi4uMDdmNmE4NmY0ZWYy
OWJmYjAyOWYwYTk4MmEwNjFkNzgxYWFhMWFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCkBAIC0xNTU3LDcgKzE1NTcsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0
cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICB9CiAKICAgICBpZiAoYXV0byB2
aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzID0gd2ViUGFnZS0+dmlld3BvcnRTaXplRm9yQ1NT
Vmlld3BvcnRVbml0cygpKQotICAgICAgICB2aWV3LT5zZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3
cG9ydFVuaXRzKCp2aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzKTsKKyAgICAgICAgdmlldy0+
c2V0U2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCp2aWV3cG9ydFNpemVGb3JWaWV3cG9y
dFVuaXRzKTsKICAgICB2aWV3LT5zZXRQcm9oaWJpdHNTY3JvbGxpbmcoc2hvdWxkRGlzYWJsZVNj
cm9sbGluZyk7CiAgICAgdmlldy0+c2V0VmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudCghd2Vi
UGFnZS0+c2hvdWxkRXh0ZW5kSW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvbigpKTsKICNp
ZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggMjJjMzMxOGIyMjFhNmJlZGZhYjAyNGVjZTJjZjA5ZWZmNTA5MzM2MS4u
ZjVjYTRmZDY4MjZhMTgzMTZiMzBiZjBmNjVlNjM5MGExZjJmM2RjNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYyNTEsNyArNjI1MSw3IEBA
IHZvaWQgV2ViUGFnZTo6c2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyhzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkludFNpemU+CiAKICAgICBtX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdw
b3J0VW5pdHMgPSB2aWV3cG9ydFNpemU7CiAgICAgaWYgKG1fdmlld3BvcnRTaXplRm9yQ1NTVmll
d3BvcnRVbml0cykKLSAgICAgICAgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkudmlldygpLT5zZXRW
aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCptX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdw
b3J0VW5pdHMpOworICAgICAgICBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPnNldFNp
emVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cygqbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9y
dFVuaXRzKTsKIH0KIAogYm9vbCBXZWJQYWdlOjppc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZmUyOTBj
ZmM0ZGQ2ZDMyOTMxN2MxOTQxYTgyYThlYzU3YjM0YTM0Mi4uMDc4MTQ4ZDhlNzI1ODdiNWFiYTRk
YjlkNWQyMWU3YTc4ZmEzMzRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaApAQCAtMTA4MSw5ICsxMDgxLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0
ZVZpc2liaWxpdHlTdGF0ZShib29sIGlzSW5pdGlhbFN0YXRlID0gZmFsc2UpOwogCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZShjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKICAgICB2b2lkIHNldE1heGltdW1Vbm9ic2N1cmVkU2l6
ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKICAgICB2b2lkIHNldERldmljZU9yaWVudGF0
aW9uKGludDMyX3QpOwotICAgIHZvaWQgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJn
ZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5v
YnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJl
Y3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQm
IHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHNjYWxlLCBpbnQzMl90IGRl
dmljZU9yaWVudGF0aW9uLCBkb3VibGUgbWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCBEeW5h
bWljVmlld3BvcnRTaXplVXBkYXRlSUQpOworICAgIHZvaWQgZHluYW1pY1ZpZXdwb3J0U2l6ZVVw
ZGF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
dGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdl
dFVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3Vy
ZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0
ZW50JiB0YXJnZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSBzY2FsZSwgaW50MzJf
dCBkZXZpY2VPcmllbnRhdGlvbiwgZG91YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCwg
RHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKTsKICAgICBib29sIHNjYWxlV2FzU2V0QnlVSVBy
b2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3NjYWxlV2FzU2V0QnlVSVByb2Nlc3M7IH0KICAgICB2
b2lkIHdpbGxTdGFydFVzZXJUcmlnZ2VyZWRab29taW5nKCk7CiAgICAgdm9pZCBhcHBsaWNhdGlv
bldpbGxSZXNpZ25BY3RpdmUoKTsKQEAgLTIyNTUsNiArMjI1Niw3IEBAIHByaXZhdGU6CiAKICAg
ICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNpbXBsZVJhbmdlPiBtX2luaXRpYWxTZWxlY3Rpb247
CiAgICAgV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbiBtX3N0b3JlZFNlbGVjdGlvbkZvckFjY2Vz
c2liaWxpdHkgeyBXZWJDb3JlOjpWaXNpYmxlU2VsZWN0aW9uKCkgfTsKKyAgICBXZWJDb3JlOjpG
bG9hdFNpemUgbV9taW5pbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXpl
IG1fbWF4aW11bVVub2JzY3VyZWRTaXplOwogICAgIGludDMyX3QgbV9kZXZpY2VPcmllbnRhdGlv
biB7IDAgfTsKICAgICBib29sIG1fa2V5Ym9hcmRJc0F0dGFjaGVkIHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CmluZGV4IDhhZmM0ZWE1ZTNjZDAxYzJhYzNhNGEzNDFmMzE2YTlhMjExMzMyZTEuLjhkY2VhMzUy
ZWJmNGJiYzA5MzM2MTQxYTAwMzk1YjZmZDAwOWNjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNTMsMTAgKzUz
LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIE1vdXNlRXZl
bnQoV2ViS2l0OjpXZWJNb3VzZUV2ZW50IGV2ZW50LCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJL
aXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4+IHNhbmRib3hFeHRlbnNpb25zKQogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgU2V0Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91
dFNpemUoV2ViQ29yZTo6RmxvYXRTaXplIHNpemUsIGRvdWJsZSBzY2FsZUZhY3RvciwgZG91Ymxl
IG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCkKKyAgICBTZXRNaW5pbXVtVW5vYnNjdXJlZFNp
emUoV2ViQ29yZTo6RmxvYXRTaXplIHNpemUpCiAgICAgU2V0TWF4aW11bVVub2JzY3VyZWRTaXpl
KFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXplKQogICAgIFNldERldmljZU9yaWVudGF0aW9uKGludDMy
X3QgZGV2aWNlT3JpZW50YXRpb24pCiAgICAgU2V0T3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50cyhz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiBhcmd1bWVudHMpCi0gICAg
RHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShXZWJDb3JlOjpGbG9hdFNpemUgdmlld0xheW91dFNp
emUsIFdlYkNvcmU6OkZsb2F0U2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIFdlYkNvcmU6OkZs
b2F0UmVjdCB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJn
ZXRVbm9ic2N1cmVkUmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0
SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIFdlYkNvcmU6OlJlY3RFZGdlczxmbG9hdD4gdGFyZ2V0
VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2NhbGUsIGludDMyX3QgZGV2aWNlT3Jp
ZW50YXRpb24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsIHVpbnQ2NF90IGR5
bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCkKKyAgICBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRl
KFdlYkNvcmU6OkZsb2F0U2l6ZSB2aWV3TGF5b3V0U2l6ZSwgV2ViQ29yZTo6RmxvYXRTaXplIG1p
bmltdW1Vbm9ic2N1cmVkU2l6ZSwgV2ViQ29yZTo6RmxvYXRTaXplIG1heGltdW1Vbm9ic2N1cmVk
U2l6ZSwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgV2ViQ29y
ZTo6RmxvYXRSZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFy
Z2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgV2ViQ29yZTo6UmVjdEVk
Z2VzPGZsb2F0PiB0YXJnZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSBzY2FsZSwg
aW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgZG91YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VX
aWR0aCwgdWludDY0X3QgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKQogICAgIAogICAgIFNl
dFNjcmVlbklzQmVpbmdDYXB0dXJlZChib29sIGNhcHR1cmVkKQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDgwZGU4NjBi
OTA3ZTJlYWFjMTFjYzFjNDEyMTlmNDdkNDQ0ZDk0MDguLjFkYzA4ZTYyNTI4OTIyYjE1ODEzY2Q2
OThiMTE0MDAwZjAzMGRjMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0zNDM0LDYgKzM0MzQsMTIgQEAgdm9pZCBXZWJQ
YWdlOjpzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZShjb25zdCBGbG9hdFNp
emUmIHNpemUsIGRvdWIKICAgICB2aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2VkKHpvb21Ub0lu
aXRpYWxTY2FsZSk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6c2V0TWluaW11bVVub2JzY3VyZWRTaXpl
KGNvbnN0IEZsb2F0U2l6ZSYgbWluaW11bVVub2JzY3VyZWRTaXplKQoreworICAgIG1fbWluaW11
bVVub2JzY3VyZWRTaXplID0gbWluaW11bVVub2JzY3VyZWRTaXplOworICAgIHVwZGF0ZVZpZXdw
b3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKTsKK30KKwogdm9pZCBXZWJQYWdlOjpzZXRNYXhp
bXVtVW5vYnNjdXJlZFNpemUoY29uc3QgRmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUp
CiB7CiAgICAgbV9tYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBtYXhpbXVtVW5vYnNjdXJlZFNpemU7
CkBAIC0zNDUzLDcgKzM0NTksNyBAQCB2b2lkIFdlYlBhZ2U6OnNldE92ZXJyaWRlVmlld3BvcnRB
cmd1bWVudHMoY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpWaWV3cG9ydAogICAgIG1fcGFn
ZS0+c2V0T3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50cyhhcmd1bWVudHMpOwogfQogCi12b2lkIFdl
YlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiB2aWV3TGF5
b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUs
IGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdl
dFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0Qm94RXh0ZW50JiB0YXJnZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSB0YXJn
ZXRTY2FsZSwgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgZG91YmxlIG1pbmltdW1FZmZlY3Rp
dmVEZXZpY2VXaWR0aCwgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEIGR5bmFtaWNWaWV3cG9y
dFNpemVVcGRhdGVJRCkKK3ZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShj
b25zdCBGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IG1pbmltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVt
VW5vYnNjdXJlZFNpemUsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiB0YXJnZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNl
dHMsIGRvdWJsZSB0YXJnZXRTY2FsZSwgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgZG91Ymxl
IG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCwgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlE
IGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCkKIHsKICAgICBTZXRGb3JTY29wZTxib29sPiBk
eW5hbWljU2l6ZVVwZGF0ZUd1YXJkKG1faW5EeW5hbWljU2l6ZVVwZGF0ZSwgdHJ1ZSk7CiAgICAg
Ly8gRklYTUU6IHRoaXMgZG9lcyBub3QgaGFuZGxlIHRoZSBjYXNlcyB3aGVyZSB0aGUgY29udGVu
dCB3b3VsZCBjaGFuZ2UgdGhlIGNvbnRlbnQgc2l6ZSBvciBzY3JvbGwgcG9zaXRpb24gZnJvbSBK
YXZhU2NyaXB0LgpAQCAtMzUwMSw2ICszNTA3LDcgQEAgdm9pZCBXZWJQYWdlOjpkeW5hbWljVmll
d3BvcnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUsIGNvbnN0IFcK
ICAgICBpZiAoc2V0Rml4ZWRMYXlvdXRTaXplKG5ld0xheW91dFNpemUpKQogICAgICAgICByZXNl
dFRleHRBdXRvc2l6aW5nKCk7CiAKKyAgICBzZXRNaW5pbXVtVW5vYnNjdXJlZFNpemUobWluaW11
bVVub2JzY3VyZWRTaXplKTsKICAgICBzZXRNYXhpbXVtVW5vYnNjdXJlZFNpemUobWF4aW11bVVu
b2JzY3VyZWRTaXplKTsKICAgICBtX3BhZ2UtPnNldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cyh0
YXJnZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldHMpOwogCkBAIC0zODQ3LDEzICszODU0LDE5IEBA
IHZvaWQgV2ViUGFnZTo6dmlld3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZChab29tVG9Jbml0aWFs
U2NhbGUgem9vbVRvSW5pdGlhbFNjYWxlCiAKIHZvaWQgV2ViUGFnZTo6dXBkYXRlVmlld3BvcnRT
aXplRm9yQ1NTVmlld3BvcnRVbml0cygpCiB7CisgICAgRmxvYXRTaXplIHNtYWxsZXN0VW5vYnNj
dXJlZFNpemUgPSBtX21pbmltdW1Vbm9ic2N1cmVkU2l6ZTsKKyAgICBpZiAoc21hbGxlc3RVbm9i
c2N1cmVkU2l6ZS5pc0VtcHR5KCkpCisgICAgICAgIHNtYWxsZXN0VW5vYnNjdXJlZFNpemUgPSBt
X3ZpZXdwb3J0Q29uZmlndXJhdGlvbi52aWV3TGF5b3V0U2l6ZSgpOworCiAgICAgRmxvYXRTaXpl
IGxhcmdlc3RVbm9ic2N1cmVkU2l6ZSA9IG1fbWF4aW11bVVub2JzY3VyZWRTaXplOwogICAgIGlm
IChsYXJnZXN0VW5vYnNjdXJlZFNpemUuaXNFbXB0eSgpKQogICAgICAgICBsYXJnZXN0VW5vYnNj
dXJlZFNpemUgPSBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi52aWV3TGF5b3V0U2l6ZSgpOwogCiAg
ICAgRnJhbWVWaWV3JiBmcmFtZVZpZXcgPSAqbWFpbkZyYW1lVmlldygpOworICAgIHNtYWxsZXN0
VW5vYnNjdXJlZFNpemUuc2NhbGUoMSAvIG1fdmlld3BvcnRDb25maWd1cmF0aW9uLmluaXRpYWxT
Y2FsZUlnbm9yaW5nQ29udGVudFNpemUoKSk7CiAgICAgbGFyZ2VzdFVub2JzY3VyZWRTaXplLnNj
YWxlKDEgLyBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5pbml0aWFsU2NhbGVJZ25vcmluZ0NvbnRl
bnRTaXplKCkpOwotICAgIGZyYW1lVmlldy5zZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVu
aXRzKHJvdW5kZWRJbnRTaXplKGxhcmdlc3RVbm9ic2N1cmVkU2l6ZSkpOworICAgIGZyYW1lVmll
dy5zZXRTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKHJvdW5kZWRJbnRTaXplKHNtYWxsZXN0
VW5vYnNjdXJlZFNpemUpKTsKKyAgICBmcmFtZVZpZXcuc2V0U2l6ZUZvckNTU0RlZmF1bHRWaWV3
cG9ydFVuaXRzKHJvdW5kZWRJbnRTaXplKGxhcmdlc3RVbm9ic2N1cmVkU2l6ZSkpOwogfQogCiB2
b2lkIFdlYlBhZ2U6OmFwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZSgpCmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTUxNDU3YWIzZjg0MTg0NzYz
ODVmMjFiMmEzNDI0YzE2MTc1ODdhNS4uZjQ2MWQxY2ViODlmMjEwYTk4ZjdhMGNhYjI1NTdiMmJm
NjZiZGJiMCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDQxIEBACisyMDIxLTEwLTEyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFw
cGxlLmNvbT4KKworICAgICAgICBbY3NzLXZhbHVlcy00XSBTdXBwb3J0IHNtYWxsIChzdiopLCBs
YXJnZSAobHYqKSBhbmQgZHluYW1pYyAoZHYqKSB2aWV3cG9ydCB1bml0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5Mjg3CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83MTg1NzM3MD4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIu
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NTU1ZpZXdwb3J0
VW5pdHMubW06IEFkZGVkLgorICAgICAgICAoZ2V0RWxlbWVudEhlaWdodCk6CisgICAgICAgIChU
RVNULkNTU1ZpZXdwb3J0VW5pdHMuQWxsU2FtZSk6CisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0
VW5pdHMuRW1wdHlVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlcyk6CisgICAgICAgIChURVNULkNTU1Zp
ZXdwb3J0VW5pdHMuU2FtZVVub2JzY3VyZWRTaXplT3ZlcnJpZGVzKToKKyAgICAgICAgKFRFU1Qu
Q1NTVmlld3BvcnRVbml0cy5EaWZmZXJlbnRVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlcyk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DU1NWaWV3cG9ydFVuaXRzLmh0
bWw6IEFkZGVkLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9B
bmltYXRlZFJlc2l6ZS5tbToKKyAgICAgICAgKFRFU1QuV2ViS2l0Lk92ZXJyaWRlTGF5b3V0U2l6
ZUNoYW5nZXNEdXJpbmdBbmltYXRlZFJlc2l6ZVN1Y2NlZWQpOgorICAgICAgICAoVEVTVC5XZWJL
aXQuT3ZlcnJpZGVMYXlvdXRTaXplSXNSZXN0b3JlZEFmdGVyUHJvY2Vzc1JlbGF1bmNoKToKKyAg
ICAgICAgKFRFU1QuV2ViS2l0Lk92ZXJyaWRlTGF5b3V0U2l6ZUlzUmVzdG9yZWRBZnRlckNoYW5n
aW5nRHVyaW5nUHJvY2Vzc1JlbGF1bmNoKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0ZpeGVkTGF5b3V0U2l6ZS5tbToKKyAgICAgICAgKFRFU1QuV2ViS2l0Lk92
ZXJyaWRlTWluaW11bUxheW91dFNpemVXaXRoTmVnYXRpdmVIZWlnaHQpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvaW9zL1Njcm9sbFZpZXdTY3JvbGxhYmlsaXR5VGVzdHMubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNULlNjcm9sbFZpZXdTY3JvbGxhYmlsaXR5VGVzdHMu
U2Nyb2xsYWJsZVdpdGhPdmVyZmxvd0hpZGRlbkFuZFZpc2libGVVSSk6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNULlNjcm9sbFZpZXdTY3JvbGxhYmlsaXR5VGVzdHMuU2Nyb2xsYWJsZVdp
dGhPdmVyZmxvd0hpZGRlbkFuZFNocnVua1VJKToKKyAgICAgICAgUmVwbGFjZSBgX292ZXJyaWRl
TGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTptYXhpbXVtVW5vYnNjdXJlZFNp
emVPdmVycmlkZTpgIHdpdGgKKyAgICAgICAgYF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRo
TWluaW11bUxheW91dFNpemU6bWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6bWF4aW11bVVu
b2JzY3VyZWRTaXplT3ZlcnJpZGU6YC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9GbG9hdFNpemVUZXN0cy5jcHA6CisgICAgICAgIChURVNULkZsb2F0U2l6ZS5NaW5E
aW1lbnNpb24pOiBBZGRlZC4KKyAgICAgICAgKFRFU1QuRmxvYXRTaXplLk1heERpbWVuc2lvbik6
IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9JbnRTaXplVGVz
dHMuY3BwOgorICAgICAgICAoVEVTVC5JbnRTaXplLk1pbkRpbWVuc2lvbik6IEFkZGVkLgorICAg
ICAgICAoVEVTVC5JbnRTaXplLk1heERpbWVuc2lvbik6IEFkZGVkLgorICAgICAgICBBZGQgdXRp
bGl0eS9oZWxwZXIgbWV0aG9kcyBmb3IgcmV0dXJuaW5nIHRoZSBtaW5pbXVtL21heGltdW0gb2Yg
dGhlIHdpZHRoIHZzIGhlaWdodC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTEwLTEyICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXNlIFNUTCBpbnN0
ZWFkIG9mIFdURjo6Z2V0X2lmLCBXVEY6Ok1vbm9zdGF0ZSwgV1RGOjp2aXNpdCwgYW5kIFdURjo6
aG9sZHNfYWx0ZXJuYXRpdmUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjc1YTVkMGY5Mjg5
ODc0ZmFhMDU2MzdlNWMwOGFlMjZhOWQ2NDM2OS4uMWViMmE5ZDNhYjE5NzlmYzY0YzhlMjI1YWMw
MWM5ODk4MGMxMThiMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg5MSw2ICs4OTEsOCBA
QAogCQk5M0ZDREIzNDI2MzYzMTU2MDA0NkREN0QgLyogU29ydGVkQXJyYXlNYXAuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGQ0RCMzMyNjM2MzE1
NjAwNDZERDdEIC8qIFNvcnRlZEFycmF5TWFwLmNwcCAqLzsgfTsKIAkJOTUwOTVGMjAyNjJGRkZB
NTAwMDBEOTIwIC8qIFNhbXBsZWRQYWdlVG9wQ29sb3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTA5NUYxRjI2MkZGRkE1MDAwMEQ5MjAgLyogU2Ft
cGxlZFBhZ2VUb3BDb2xvci5tbSAqLzsgfTsKIAkJOTUwRTRDQzEyNTJFNzUyNDAwNzE2NTlGIC8q
IGlPU1N0eWx1c1N1cHBvcnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NTBFNENDMDI1MkU3NTIzMDA3MTY1OUYgLyogaU9TU3R5bHVzU3VwcG9ydC5t
bSAqLzsgfTsKKwkJOTUyRjcxNjUyNzBCRDk3RTAwRDAwRENDIC8qIENTU1ZpZXdwb3J0VW5pdHMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTJGNzE2
NDI3MEJEOTdFMDBEMDBEQ0MgLyogQ1NTVmlld3BvcnRVbml0cy5tbSAqLzsgfTsKKwkJOTUyRjcx
NjcyNzBCRDlDQjAwRDAwRENDIC8qIENTU1ZpZXdwb3J0VW5pdHMuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTJGNzE2NjI3MEJEOTk3
MDBEMDBEQ0MgLyogQ1NTVmlld3BvcnRVbml0cy5odG1sICovOyB9OwogCQk5NTNBQkIzNTI1QzBE
NjgyMDA0QzhCNzMgLyogV0tXZWJWaWV3VW5kZXJQYWdlQmFja2dyb3VuZENvbG9yLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUzQUJCMzQyNUMwRDY4
MTAwNEM4QjczIC8qIFdLV2ViVmlld1VuZGVyUGFnZUJhY2tncm91bmRDb2xvci5tbSAqLzsgfTsK
IAkJOTU4QjcwRTEyNkM0NkVEQzAwQjIwMjJCIC8qIE5TQXR0cmlidXRlZFN0cmluZ1dlYktpdEFk
ZGl0aW9ucy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk1OEI3MEUwMjZDNDZFREMwMEIyMDIyQiAvKiBOU0F0dHJpYnV0ZWRTdHJpbmdXZWJLaXRBZGRp
dGlvbnMubW0gKi87IH07CiAJCTk1QTUyNDk1MjU4MUExMEQwMDQ2MUZFOSAvKiBXS1dlYlZpZXdU
aGVtZUNvbG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTVBNTI0OTQyNTgxQTEwRDAwNDYxRkU5IC8qIFdLV2ViVmlld1RoZW1lQ29sb3IubW0gKi87
IH07CkBAIC0xNDY0LDYgKzE0NjYsNyBAQAogCQkJCTlCNjI2MzBDMUY4QzI1QzgwMDdFRTI5QiAv
KiBjb3B5LXVybC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTdBRUFENDgxMUUyMDEy
MjcwMDQxNkVGRSAvKiBDcm9zc1BhcnRpdGlvbkZpbGVTY2hlbWVBY2Nlc3MuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQk0OTk1QTZGMDI1RTg3NzIwMDBFNUYwQTkgLyogY3NwLWRvY3Vt
ZW50LXVyaS1yZXBvcnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk5NTJGNzE2NzI3
MEJEOUNCMDBEMDBEQ0MgLyogQ1NTVmlld3BvcnRVbml0cy5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCTJEREQ0REE0MjcwQjhCMzUwMDY1OUE2MSAvKiBjdWJlLnVzZHogaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJRjRBQjU3OEExRjY1MTY1NDAwREIwREExIC8qIGN1c3RvbS1kcmFn
Z2FibGUtZGl2Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMjkwRjQyNzUxNzJBMjIx
QzAwOTM5RkYwIC8qIGN1c3RvbS1wcm90b2NvbC1zeW5jLXhoci5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLApAQCAtMjYzNiw2ICsyNjM5LDggQEAKIAkJOTNGQ0RCMzMyNjM2MzE1NjAwNDZERDdE
IC8qIFNvcnRlZEFycmF5TWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNvcnRlZEFycmF5TWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUw
OTVGMUYyNjJGRkZBNTAwMDBEOTIwIC8qIFNhbXBsZWRQYWdlVG9wQ29sb3IubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTYW1wbGVkUGFnZVRvcENvbG9yLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTBFNENDMDI1MkU3NTIzMDA3MTY1OUYgLyog
aU9TU3R5bHVzU3VwcG9ydC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IGlPU1N0eWx1c1N1cHBvcnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1
MkY3MTY0MjcwQkQ5N0UwMEQwMERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ1NTVmlld3BvcnRVbml0cy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUyRjcxNjYyNzBCRDk5NzAwRDAwRENDIC8qIENTU1Zp
ZXdwb3J0VW5pdHMuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IENTU1ZpZXdwb3J0VW5pdHMuaHRtbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUzQUJCMzQyNUMwRDY4MTAwNEM4QjczIC8qIFdLV2Vi
Vmlld1VuZGVyUGFnZUJhY2tncm91bmRDb2xvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1VuZGVyUGFnZUJhY2tncm91bmRDb2xvci5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTU4QjcwRTAyNkM0NkVEQzAwQjIwMjJCIC8qIE5T
QXR0cmlidXRlZFN0cmluZ1dlYktpdEFkZGl0aW9ucy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IE5TQXR0cmlidXRlZFN0cmluZ1dlYktpdEFkZGl0aW9ucy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVBNTI0OTQyNTgxQTEwRDAwNDYxRkU5IC8q
IFdLV2ViVmlld1RoZW1lQ29sb3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXS1dlYlZpZXdUaGVtZUNvbG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMzQ4OSw2ICszNDk0LDcgQEAKIAkJCQkxQzc5MjAxQjIzNEJERDlCMDAxRUFGMjMgLyog
Q29weVJURi5tbSAqLywKIAkJCQk5QjdBMzdDMjFGOEFFQkE1MDA0QUEyMjggLyogQ29weVVSTC5t
bSAqLywKIAkJCQk1MTBBOTIxRDI0REIzOEVEMDBCRkQ4OUMgLyogQ3JlYXRlV2ViQXJjaGl2ZS5t
bSAqLywKKwkJCQk5NTJGNzE2NDI3MEJEOTdFMDBEMDBEQ0MgLyogQ1NTVmlld3BvcnRVbml0cy5t
bSAqLywKIAkJCQk0NkE5MTE1ODIxMDhFNjZCMDA3OEQ0MEQgLyogQ3VzdG9tVXNlckFnZW50Lm1t
ICovLAogCQkJCTJEQzRDRjc2MUQyRDlERDgwMEVDQ0M5NCAvKiBEYXRhRGV0ZWN0aW9uLm1tICov
LAogCQkJCTUxOEVFNTFDMjBBNzhEMzMwMEUwMjRGMyAvKiBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uLm1tICovLApAQCAtNDA0OCw2ICs0MDU0LDcgQEAKIAkJCQk5QjEwNTY0MjFGOTA0
N0NDMDBENTU4M0YgLyogY29weS1odG1sLmh0bWwgKi8sCiAJCQkJOUI2MjYzMEIxRjhDMjUxMDAw
N0VFMjlCIC8qIGNvcHktdXJsLmh0bWwgKi8sCiAJCQkJNDk5NUE2RUYyNUU4NzZBMzAwRTVGMEE5
IC8qIGNzcC1kb2N1bWVudC11cmktcmVwb3J0Lmh0bWwgKi8sCisJCQkJOTUyRjcxNjYyNzBCRDk5
NzAwRDAwRENDIC8qIENTU1ZpZXdwb3J0VW5pdHMuaHRtbCAqLywKIAkJCQlGNEFCNTc4OTFGNjUx
NjRCMDBEQjBEQTEgLyogY3VzdG9tLWRyYWdnYWJsZS1kaXYuaHRtbCAqLywKIAkJCQlGNDdERkIy
NDIxQTg3MDRBMDAwMjFGQjYgLyogZGF0YS1kZXRlY3RvcnMuaHRtbCAqLywKIAkJCQlGNDg2QjFD
RjFGNjc5NEZGMDBGMzRCREQgLyogRGF0YVRyYW5zZmVyLXNldERyYWdJbWFnZS5odG1sICovLApA
QCAtNTQ5Nyw2ICs1NTA0LDcgQEAKIAkJCQk1MTBBOTIxRTI0REIzOEYzMDBCRkQ4OUMgLyogQ3Jl
YXRlV2ViQXJjaGl2ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdBRUFENDdGMUUyMDExNkMwMDQx
NkVGRSAvKiBDcm9zc1BhcnRpdGlvbkZpbGVTY2hlbWVBY2Nlc3MubW0gaW4gU291cmNlcyAqLywK
IAkJCQk3Q0NFN0VEQjFBNDExQTkyMDA0NDdDNEMgLyogQ1NTUGFyc2VyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTk1MkY3MTY1MjcwQkQ5N0UwMEQwMERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTc1ODU5N0YyM0EyNTI3QTAwQzc0NTcyIC8qIEN0YXBQaW5U
ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3MkI0MDM0MjE3NjlBODgwMDBBRDQzRSAvKiBD
dGFwUmVxdWVzdFRlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTcyQjQwNDQyMTc4MUI0MzAw
MEFENDNFIC8qIEN0YXBSZXNwb25zZVRlc3QuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmxvYXRTaXplVGVzdHMuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Zsb2F0U2l6ZVRlc3RzLmNwcAppbmRl
eCA3NTZlNzZmMWRiYWM5ZTY4Yzg2M2JjZDVmMmY5Y2IzY2E2YjZlMWVkLi4yNjcxYjg3OGIxZjE4
OTkzOTk4MzJiNmI1Y2VmZTk3MTAxYWI1MjBhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvRmxvYXRTaXplVGVzdHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9GbG9hdFNpemVUZXN0cy5jcHAKQEAgLTkzLDYgKzkzLDI4IEBA
IFRFU1QoRmxvYXRTaXplLCBJbnRTaXplQ29uc3RydWN0aW9uKQogICAgIHRlc3RHZXRBbmRTZXQo
dGVzdCk7CiB9CiAKK1RFU1QoRmxvYXRTaXplLCBNaW5EaW1lbnNpb24pCit7CisgICAgV2ViQ29y
ZTo6RmxvYXRTaXplIHRlc3QoMTAyNC4wZiwgNzY4LjBmKTsKKworICAgIEVYUEVDVF9GTE9BVF9F
USg3NjguMGYsIHRlc3QubWluRGltZW5zaW9uKCkpOworCisgICAgdGVzdC5zY2FsZSgxLjBmLCAy
LjBmKTsKKworICAgIEVYUEVDVF9GTE9BVF9FUSgxMDI0LjBmLCB0ZXN0Lm1pbkRpbWVuc2lvbigp
KTsKK30KKworVEVTVChGbG9hdFNpemUsIE1heERpbWVuc2lvbikKK3sKKyAgICBXZWJDb3JlOjpG
bG9hdFNpemUgdGVzdCgxMDI0LjBmLCA3NjguMGYpOworCisgICAgRVhQRUNUX0ZMT0FUX0VRKDEw
MjQuMGYsIHRlc3QubWF4RGltZW5zaW9uKCkpOworCisgICAgdGVzdC5zY2FsZSgxLjBmLCAyLjBm
KTsKKworICAgIEVYUEVDVF9GTE9BVF9FUSgxNTM2LjBmLCB0ZXN0Lm1heERpbWVuc2lvbigpKTsK
K30KKwogVEVTVChGbG9hdFNpemUsIFNjYWxlKQogewogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSB0
ZXN0KDEwMjQuMGYsIDc2OC4wZik7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvSW50U2l6ZVRlc3RzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9JbnRTaXplVGVzdHMuY3BwCmluZGV4IDYyMmYwYTg4Y2RkYWVhZGJlNmJkNDU2YzU2
ZThjNGQ4MjI5ZjVkYmYuLjQ0YmEzNDc5MWZiNGYzYjJhOTcxNWFkYWE4N2VkODQxZjFhZWNiYTMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9JbnRTaXplVGVz
dHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9JbnRTaXplVGVz
dHMuY3BwCkBAIC05Myw2ICs5MywyOCBAQCBURVNUKEludFNpemUsIEZsb2F0U2l6ZUNvbnN0cnVj
dGlvbikKICAgICB0ZXN0R2V0QW5kU2V0KHRlc3QpOwogfQogCitURVNUKEludFNpemUsIE1pbkRp
bWVuc2lvbikKK3sKKyAgICBXZWJDb3JlOjpJbnRTaXplIHRlc3QoMTAyNCwgNzY4KTsKKworICAg
IEVYUEVDVF9FUSg3NjgsIHRlc3QubWluRGltZW5zaW9uKCkpOworCisgICAgdGVzdC5zY2FsZSgx
LjBmLCAyLjBmKTsKKworICAgIEVYUEVDVF9FUSgxMDI0LCB0ZXN0Lm1pbkRpbWVuc2lvbigpKTsK
K30KKworVEVTVChJbnRTaXplLCBNYXhEaW1lbnNpb24pCit7CisgICAgV2ViQ29yZTo6SW50U2l6
ZSB0ZXN0KDEwMjQsIDc2OCk7CisKKyAgICBFWFBFQ1RfRVEoMTAyNCwgdGVzdC5tYXhEaW1lbnNp
b24oKSk7CisKKyAgICB0ZXN0LnNjYWxlKDEuMGYsIDIuMGYpOworCisgICAgRVhQRUNUX0VRKDE1
MzYsIHRlc3QubWF4RGltZW5zaW9uKCkpOworfQorCiBURVNUKEludFNpemUsIERpYWdvbmFsTGVu
Z3RoQW5kQXJlYSkKIHsKICAgICBXZWJDb3JlOjpJbnRTaXplIHRlc3QoMTAyNCwgNzY4KTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQW5pbWF0ZWRS
ZXNpemUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FuaW1hdGVk
UmVzaXplLm1tCmluZGV4IDgyODBmNTM5MzU0ZTcxODVlOWViZTQwNDQzNjE3ODYzNjNmOGIzMzAu
LjM5ZmU1NDA0OTZjNjI3M2YzMDEyNDVjNWI2NDQ1N2ExMjE1MWEzODEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQW5pbWF0ZWRSZXNpemUubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BbmltYXRlZFJlc2l6ZS5t
bQpAQCAtMTkyLDcgKzE5Miw3IEBAIFRFU1QoV2ViS2l0LCBPdmVycmlkZUxheW91dFNpemVDaGFu
Z2VzRHVyaW5nQW5pbWF0ZWRSZXNpemVTdWNjZWVkKQogICAgIGF1dG8gd2ViVmlldyA9IGNyZWF0
ZUFuaW1hdGVkUmVzaXplV2ViVmlldygpOwogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6d2Vi
Vmlldy5nZXQoKV07CiAKLSAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0
aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMjAwLCA1MCkgbWF4aW11bVVub2JzY3VyZWRT
aXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgyMDAsIDUwKV07CisgICAgW3dlYlZpZXcgX292ZXJyaWRl
TGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDIwMCwgNTAp
IG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMjAwLCA1MCkgbWF4aW11
bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgyMDAsIDUwKV07CiAKICAgICBbd2Vi
VmlldyBsb2FkSFRNTFN0cmluZzpAIjxoZWFkPjxtZXRhIG5hbWU9J3ZpZXdwb3J0JyBjb250ZW50
PSdpbml0aWFsLXNjYWxlPTEnPjwvaGVhZD4iIGJhc2VVUkw6bmlsXTsKICAgICBhdXRvIG5hdmln
YXRpb25EZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CkBAIC0yMDcsNyArMjA3LDcgQEAgVEVTVChXZWJLaXQsIE92ZXJyaWRlTGF5b3V0U2l6
ZUNoYW5nZXNEdXJpbmdBbmltYXRlZFJlc2l6ZVN1Y2NlZWQpCiAgICAgICAgIFt3ZWJWaWV3IHNl
dEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgW3dlYlZpZXcgZnJhbWVdLnNpemUud2lkdGggKyAxMDAs
IDQwMCldOwogICAgIH1dOwogCi0gICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVy
c1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDEwMCwgMjAwKSBtYXhpbXVtVW5vYnNj
dXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDEwMCwgMjAwKV07CisgICAgW3dlYlZpZXcgX292
ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDEw
MCwgMjAwKSBtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDEwMCwgMjAw
KSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDEwMCwgMjAwKV07CiAg
ICAgW3dlYlZpZXcgX2VuZEFuaW1hdGVkUmVzaXplXTsKIAogICAgIF9fYmxvY2sgYm9vbCBkaWRS
ZWFkTGF5b3V0U2l6ZSA9IGZhbHNlOwpAQCAtMjMyLDcgKzIzMiw3IEBAIFRFU1QoV2ViS2l0LCBP
dmVycmlkZUxheW91dFNpemVJc1Jlc3RvcmVkQWZ0ZXJQcm9jZXNzUmVsYXVuY2gpCiAgICAgYXV0
byB3ZWJWaWV3ID0gY3JlYXRlQW5pbWF0ZWRSZXNpemVXZWJWaWV3KCk7CiAgICAgW3dlYlZpZXcg
c2V0VUlEZWxlZ2F0ZTp3ZWJWaWV3LmdldCgpXTsKIAotICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxh
eW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFrZSgyMDAsIDUwKSBt
YXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDIwMCwgNTApXTsKKyAgICBb
d2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNH
U2l6ZU1ha2UoMjAwLCA1MCkgbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFr
ZSgyMDAsIDUwKSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDIwMCwg
NTApXTsKIAogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGhlYWQ+PG1ldGEgbmFtZT0n
dmlld3BvcnQnIGNvbnRlbnQ9J2luaXRpYWwtc2NhbGU9MSc+PC9oZWFkPiIgYmFzZVVSTDpuaWxd
OwogICAgIFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKQEAgLTI2
Myw3ICsyNjMsNyBAQCBURVNUKFdlYktpdCwgT3ZlcnJpZGVMYXlvdXRTaXplSXNSZXN0b3JlZEFm
dGVyQ2hhbmdpbmdEdXJpbmdQcm9jZXNzUmVsYXVuY2gpCiAgICAgYXV0byB3ZWJWaWV3ID0gY3Jl
YXRlQW5pbWF0ZWRSZXNpemVXZWJWaWV3KCk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTp3
ZWJWaWV3LmdldCgpXTsKIAotICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNX
aXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFrZSgxMDAsIDEwMCkgbWF4aW11bVVub2JzY3Vy
ZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgxMDAsIDEwMCldOworICAgIFt3ZWJWaWV3IF9vdmVy
cmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFrZSgxMDAs
IDEwMCkgbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgxMDAsIDEwMCkg
bWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgxMDAsIDEwMCldOwogCiAg
ICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8aGVhZD48bWV0YSBuYW1lPSd2aWV3cG9ydCcg
Y29udGVudD0naW5pdGlhbC1zY2FsZT0xJz48L2hlYWQ+IiBiYXNlVVJMOm5pbF07CiAgICAgW3dl
YlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOwpAQCAtMjczLDcgKzI3Myw3
IEBAIFRFU1QoV2ViS2l0LCBPdmVycmlkZUxheW91dFNpemVJc1Jlc3RvcmVkQWZ0ZXJDaGFuZ2lu
Z0R1cmluZ1Byb2Nlc3NSZWxhdW5jaCkKICAgICBbd2luZG93IHNldEhpZGRlbjpOT107CiAKICAg
ICBbd2ViVmlldyBfa2lsbFdlYkNvbnRlbnRQcm9jZXNzQW5kUmVzZXRTdGF0ZV07Ci0gICAgW3dl
YlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpDR1Np
emVNYWtlKDIwMCwgNTApIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2Uo
MjAwLCA1MCldOworICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWlu
aW11bUxheW91dFNpemU6Q0dTaXplTWFrZSgyMDAsIDUwKSBtaW5pbXVtVW5vYnNjdXJlZFNpemVP
dmVycmlkZTpDR1NpemVNYWtlKDIwMCwgNTApIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRl
OkNHU2l6ZU1ha2UoMjAwLCA1MCldOwogCiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8
aGVhZD48bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVudD0naW5pdGlhbC1zY2FsZT0xJz48L2hl
YWQ+IiBiYXNlVVJMOm5pbF07CiAgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5h
dmlnYXRpb25dOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9DU1NWaWV3cG9ydFVuaXRzLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0NTU1ZpZXdwb3J0VW5pdHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDJhYTA1ODhkY2Q2
ZWUyNzY2Y2JjMDc5MjY1OTkzYzg0OGVlY2U3Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DU1NWaWV3cG9ydFVuaXRzLmh0bWwKQEAgLTAs
MCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3
cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorCisg
ICAgPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwOworfQorZGl2IHsKKyAgICBkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7CisgICAgd2lkdGg6IDFweDsKK30KKyAgICA8L3N0eWxlPgorPC9oZWFk
PgorPGJvZHk+CisgICAgPGRpdiBpZD0idnciIHN0eWxlPSJoZWlnaHQ6IDEwMHZ3OyI+PC9kaXY+
CisgICAgPGRpdiBpZD0idmgiIHN0eWxlPSJoZWlnaHQ6IDEwMHZoOyI+PC9kaXY+CisgICAgPGRp
diBpZD0idm1pbiIgc3R5bGU9ImhlaWdodDogMTAwdm1pbjsiPjwvZGl2PgorICAgIDxkaXYgaWQ9
InZtYXgiIHN0eWxlPSJoZWlnaHQ6IDEwMHZtYXg7Ij48L2Rpdj4KKworICAgIDxkaXYgaWQ9InN2
dyIgc3R5bGU9ImhlaWdodDogMTAwc3Z3OyI+PC9kaXY+CisgICAgPGRpdiBpZD0ic3ZoIiBzdHls
ZT0iaGVpZ2h0OiAxMDBzdmg7Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJzdm1pbiIgc3R5bGU9Imhl
aWdodDogMTAwc3ZtaW47Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJzdm1heCIgc3R5bGU9ImhlaWdo
dDogMTAwc3ZtYXg7Ij48L2Rpdj4KKworICAgIDxkaXYgaWQ9Imx2dyIgc3R5bGU9ImhlaWdodDog
MTAwbHZ3OyI+PC9kaXY+CisgICAgPGRpdiBpZD0ibHZoIiBzdHlsZT0iaGVpZ2h0OiAxMDBsdmg7
Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJsdm1pbiIgc3R5bGU9ImhlaWdodDogMTAwbHZtaW47Ij48
L2Rpdj4KKyAgICA8ZGl2IGlkPSJsdm1heCIgc3R5bGU9ImhlaWdodDogMTAwbHZtYXg7Ij48L2Rp
dj4KKworICAgIDxkaXYgaWQ9ImR2dyIgc3R5bGU9ImhlaWdodDogMTAwZHZ3OyI+PC9kaXY+Cisg
ICAgPGRpdiBpZD0iZHZoIiBzdHlsZT0iaGVpZ2h0OiAxMDBkdmg7Ij48L2Rpdj4KKyAgICA8ZGl2
IGlkPSJkdm1pbiIgc3R5bGU9ImhlaWdodDogMTAwZHZtaW47Ij48L2Rpdj4KKyAgICA8ZGl2IGlk
PSJkdm1heCIgc3R5bGU9ImhlaWdodDogMTAwZHZtYXg7Ij48L2Rpdj4KKzwvYm9keT4KZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ1NTVmlld3BvcnRV
bml0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ1NTVmlld3Bv
cnRVbml0cy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzhiMzAyNGZiYmYyZDUxYjRjOGJhNzYyNmEwMGE5ZTVk
MGJiYTRmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9DU1NWaWV3cG9ydFVuaXRzLm1tCkBAIC0wLDAgKzEsMTUzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgor
I2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZh
dGUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworc3RhdGljIGludCBnZXRFbGVtZW50
SGVpZ2h0KFdLV2ViVmlldyAqd2ViVmlldywgTlNTdHJpbmcgKmVsZW1lbnRJRCkKK3sKKyAgICBy
ZXR1cm4gWyhOU051bWJlciAqKVt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnJUAn
KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQiLCBlbGVtZW50SURdXSBpbnRWYWx1ZV07
Cit9CisKK1RFU1QoQ1NTVmlld3BvcnRVbml0cywgQWxsU2FtZSkKK3sKKyAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RN
YWtlKDAsIDAsIDMyMCwgNTAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVz
dFBhZ2VOYW1lZDpAIkNTU1ZpZXdwb3J0VW5pdHMiXTsKKworICAgIEVYUEVDVF9FUSgzMjAsIGdl
dEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2dyIpKTsKKyAgICBFWFBFQ1RfRVEoNTAw
LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidmgiKSk7CisgICAgRVhQRUNUX0VR
KDMyMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZtaW4iKSk7CisgICAgRVhQ
RUNUX0VRKDUwMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZtYXgiKSk7CisK
KyAgICBFWFBFQ1RfRVEoMzIwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAic3Z3
IikpOworICAgIEVYUEVDVF9FUSg1MDAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwg
QCJzdmgiKSk7CisgICAgRVhQRUNUX0VRKDMyMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3Lmdl
dCgpLCBAInN2bWluIikpOworICAgIEVYUEVDVF9FUSg1MDAsIGdldEVsZW1lbnRIZWlnaHQod2Vi
Vmlldy5nZXQoKSwgQCJzdm1heCIpKTsKKworICAgIEVYUEVDVF9FUSgzMjAsIGdldEVsZW1lbnRI
ZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdnciKSk7CisgICAgRVhQRUNUX0VRKDUwMCwgZ2V0RWxl
bWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2aCIpKTsKKyAgICBFWFBFQ1RfRVEoMzIwLCBn
ZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZtaW4iKSk7CisgICAgRVhQRUNUX0VR
KDUwMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2bWF4IikpOworCisgICAg
RVhQRUNUX0VRKDMyMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImR2dyIpKTsK
KyAgICBFWFBFQ1RfRVEoNTAwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZo
IikpOworICAgIEVYUEVDVF9FUSgzMjAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwg
QCJkdm1pbiIpKTsKKyAgICBFWFBFQ1RfRVEoNTAwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcu
Z2V0KCksIEAiZHZtYXgiKSk7Cit9CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCitURVNU
KENTU1ZpZXdwb3J0VW5pdHMsIEVtcHR5VW5vYnNjdXJlZFNpemVPdmVycmlkZXMpCit7CisgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBfb3ZlcnJpZGVM
YXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMTQxLCAxNDkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVy
cmlkZTpDR1NpemVaZXJvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbXVtVW5v
YnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVaZXJvXTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91
c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJDU1NWaWV3cG9ydFVuaXRzIl07CisKKyAgICBFWFBFQ1Rf
RVEoMTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidnciKSk7CisgICAgRVhQ
RUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZoIikpOworICAg
IEVYUEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2bWluIikp
OworICAgIEVYUEVDVF9FUSgxNDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2
bWF4IikpOworCisgICAgRVhQRUNUX0VRKDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3Lmdl
dCgpLCBAInN2dyIpKTsKKyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZp
ZXcuZ2V0KCksIEAic3ZoIikpOworICAgIEVYUEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQo
d2ViVmlldy5nZXQoKSwgQCJzdm1pbiIpKTsKKyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50
SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAic3ZtYXgiKSk7CisKKyAgICBFWFBFQ1RfRVEoMTQxLCBn
ZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZ3IikpOworICAgIEVYUEVDVF9FUSgx
NDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdmgiKSk7CisgICAgRVhQRUNU
X0VRKDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2bWluIikpOworICAg
IEVYUEVDVF9FUSgxNDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdm1heCIp
KTsKKworICAgIEVYUEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwg
QCJkdnciKSk7CisgICAgRVhQRUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3Lmdl
dCgpLCBAImR2aCIpKTsKKyAgICBFWFBFQ1RfRVEoMTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZp
ZXcuZ2V0KCksIEAiZHZtaW4iKSk7CisgICAgRVhQRUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdo
dCh3ZWJWaWV3LmdldCgpLCBAImR2bWF4IikpOworfQorCitURVNUKENTU1ZpZXdwb3J0VW5pdHMs
IFNhbWVVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlcykKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAs
IDMyMCwgNTAwKV0pOworICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRo
TWluaW11bUxheW91dFNpemU6Q0dTaXplTWFrZSgxNDEsIDE0OSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMTQx
LCAxNDkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbXVtVW5vYnNjdXJlZFNp
emVPdmVycmlkZTpDR1NpemVNYWtlKDE0MSwgMTQ5KV07CisgICAgW3dlYlZpZXcgc3luY2hyb25v
dXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiQ1NTVmlld3BvcnRVbml0cyJdOworCisgICAgRVhQRUNU
X0VRKDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZ3IikpOworICAgIEVY
UEVDVF9FUSgxNDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2aCIpKTsKKyAg
ICBFWFBFQ1RfRVEoMTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidm1pbiIp
KTsKKyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAi
dm1heCIpKTsKKworICAgIEVYUEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5n
ZXQoKSwgQCJzdnciKSk7CisgICAgRVhQRUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJW
aWV3LmdldCgpLCBAInN2aCIpKTsKKyAgICBFWFBFQ1RfRVEoMTQxLCBnZXRFbGVtZW50SGVpZ2h0
KHdlYlZpZXcuZ2V0KCksIEAic3ZtaW4iKSk7CisgICAgRVhQRUNUX0VRKDE0OSwgZ2V0RWxlbWVu
dEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInN2bWF4IikpOworCisgICAgRVhQRUNUX0VRKDE0MSwg
Z2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2dyIpKTsKKyAgICBFWFBFQ1RfRVEo
MTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZoIikpOworICAgIEVYUEVD
VF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdm1pbiIpKTsKKyAg
ICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZtYXgi
KSk7CisKKyAgICBFWFBFQ1RfRVEoMTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCks
IEAiZHZ3IikpOworICAgIEVYUEVDVF9FUSgxNDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5n
ZXQoKSwgQCJkdmgiKSk7CisgICAgRVhQRUNUX0VRKDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJW
aWV3LmdldCgpLCBAImR2bWluIikpOworICAgIEVYUEVDVF9FUSgxNDksIGdldEVsZW1lbnRIZWln
aHQod2ViVmlldy5nZXQoKSwgQCJkdm1heCIpKTsKK30KKworVEVTVChDU1NWaWV3cG9ydFVuaXRz
LCBEaWZmZXJlbnRVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlcykKK3sKKyAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtl
KDAsIDAsIDMyMCwgNTAwKV0pOworICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRl
cnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFrZSgxMzEsIDEzOSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1h
a2UoMTIxLCAxMjkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbXVtVW5vYnNj
dXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDE0MSwgMTQ5KV07CisgICAgW3dlYlZpZXcgc3lu
Y2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiQ1NTVmlld3BvcnRVbml0cyJdOworCisgICAg
RVhQRUNUX0VRKDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZ3IikpOwor
ICAgIEVYUEVDVF9FUSgxNDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2aCIp
KTsKKyAgICBFWFBFQ1RfRVEoMTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAi
dm1pbiIpKTsKKyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0
KCksIEAidm1heCIpKTsKKworICAgIEVYUEVDVF9FUSgxMjEsIGdldEVsZW1lbnRIZWlnaHQod2Vi
Vmlldy5nZXQoKSwgQCJzdnciKSk7CisgICAgRVhQRUNUX0VRKDEyOSwgZ2V0RWxlbWVudEhlaWdo
dCh3ZWJWaWV3LmdldCgpLCBAInN2aCIpKTsKKyAgICBFWFBFQ1RfRVEoMTIxLCBnZXRFbGVtZW50
SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAic3ZtaW4iKSk7CisgICAgRVhQRUNUX0VRKDEyOSwgZ2V0
RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInN2bWF4IikpOworCisgICAgRVhQRUNUX0VR
KDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2dyIpKTsKKyAgICBFWFBF
Q1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZoIikpOworICAg
IEVYUEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdm1pbiIp
KTsKKyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAi
bHZtYXgiKSk7CisKKyAgICBFWFBFQ1RfRVEoMTMxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcu
Z2V0KCksIEAiZHZ3IikpOworICAgIEVYUEVDVF9FUSgxMzksIGdldEVsZW1lbnRIZWlnaHQod2Vi
Vmlldy5nZXQoKSwgQCJkdmgiKSk7CisgICAgRVhQRUNUX0VRKDEzMSwgZ2V0RWxlbWVudEhlaWdo
dCh3ZWJWaWV3LmdldCgpLCBAImR2bWluIikpOworICAgIEVYUEVDVF9FUSgxMzksIGdldEVsZW1l
bnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJkdm1heCIpKTsKK30KKworI2VuZGlmIC8vIFBMQVRG
T1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0ZpeGVkTGF5b3V0U2l6ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRml4ZWRMYXlvdXRTaXplLm1tCmluZGV4IGY4YmJmYjU2NTBjZWM5NzZlYmE1
YWQ4ZWI4MmNkZmVmZGU3NjJjMWYuLjBiNDNhMGYwYTNhYzJmZWU2NWIwNTY0NjEwMTFmZjBkZjQw
ZTY3NmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
Rml4ZWRMYXlvdXRTaXplLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvRml4ZWRMYXlvdXRTaXplLm1tCkBAIC0zNyw3ICszNyw3IEBACiBURVNUKFdlYktpdCwg
T3ZlcnJpZGVNaW5pbXVtTGF5b3V0U2l6ZVdpdGhOZWdhdGl2ZUhlaWdodCkKIHsKICAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpD
R1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwotICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91
dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFrZSgzMjAsIC0xMDAwKSBt
YXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDAsIDApXTsKKyAgICBbd2Vi
VmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6
ZU1ha2UoMzIwLCAtMTAwMCkgbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFr
ZSgwLCAwKSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDAsIDApXTsK
ICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8bWV0YSBuYW1lPSd2
aWV3cG9ydCcgY29udGVudD0nd2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEnPjxi
b2R5PkhlbGxvPC9ib2R5PiJdOwogICAgIEVYUEVDVF9HRShbd2ViVmlldyBfZml4ZWRMYXlvdXRT
aXplXS5oZWlnaHQsIDApOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9pb3MvU2Nyb2xsVmlld1Njcm9sbGFiaWxpdHlUZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvaW9zL1Njcm9sbFZpZXdTY3JvbGxhYmlsaXR5VGVzdHMubW0KaW5kZXggYzQ1NWY1
MWIzNTI5YTE1N2FjNTdiOWY0M2U4N2U4ZjAxYTAxMjdlZC4uMGY5MTI0NDgzMTFkODE4OTZmMDI4
YWJiODI0ZjMxNzE4MmZjMzFiOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9pb3MvU2Nyb2xsVmlld1Njcm9sbGFiaWxpdHlUZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL2lvcy9TY3JvbGxWaWV3U2Nyb2xsYWJpbGl0eVRlc3RzLm1tCkBAIC0xMTUs
NyArMTE1LDcgQEAgVEVTVChTY3JvbGxWaWV3U2Nyb2xsYWJpbGl0eVRlc3RzLCBTY3JvbGxhYmxl
V2l0aE92ZXJmbG93SGlkZGVuQW5kVmlzaWJsZVVJKQogICAgIG9ic2N1cmVkSW5zZXRzLnJpZ2h0
ID0gMDsKIAogICAgIFt3ZWJWaWV3IF9zZXRPYnNjdXJlZEluc2V0czpvYnNjdXJlZEluc2V0c107
Ci0gICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0
U2l6ZTpDR1NpemVNYWtlKDMyMCwgNDA2KSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpD
R1NpemVNYWtlKDMyMCwgNDkwKV07CisgICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1l
dGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDMyMCwgNDA2KSBtaW5pbXVtVW5v
YnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDMyMCwgNDA2KSBtYXhpbXVtVW5vYnNjdXJl
ZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDMyMCwgNDkwKV07CiAKICAgICBbd2ViVmlldyBzeW5j
aHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6bm9uU2Nyb2xsYWJsZURvY3VtZW50TWFya3VwXTsKICAg
ICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CkBAIC0xMzQsNyArMTM0
LDcgQEAgVEVTVChTY3JvbGxWaWV3U2Nyb2xsYWJpbGl0eVRlc3RzLCBTY3JvbGxhYmxlV2l0aE92
ZXJmbG93SGlkZGVuQW5kU2hydW5rVUkpCiAgICAgb2JzY3VyZWRJbnNldHMucmlnaHQgPSAwOwog
CiAgICAgW3dlYlZpZXcgX3NldE9ic2N1cmVkSW5zZXRzOm9ic2N1cmVkSW5zZXRzXTsKLSAgICBb
d2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNH
U2l6ZU1ha2Uodmlld0hlaWdodCwgNDE0KSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpD
R1NpemVNYWtlKHZpZXdIZWlnaHQsIDQxNCldOworICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91
dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFrZSh2aWV3SGVpZ2h0LCA0
MTQpIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2Uodmlld0hlaWdodCwg
NDE0KSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKHZpZXdIZWlnaHQs
IDQxNCldOwogCiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOm5vblNj
cm9sbGFibGVEb2N1bWVudE1hcmt1cF07CiAgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50
YXRpb25VcGRhdGVdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441643</attachid>
            <date>2021-10-18 15:18:04 -0700</date>
            <delta_ts>2021-10-19 18:46:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219287-20211018151803.patch</filename>
            <type>text/plain</type>
            <size>109358</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3ZmYzNmEyODhiMTYxM2FiODIxNzM2OTJmY2I1MTI3ZDQ5MTU3NzJmLi4z
ZWRlODQyOWFkY2RjNGExMjM4MjhkMjA2MjAxOTFjOGQ3MzkwNzM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTE0IEBACisyMDIxLTEwLTEyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KKworICAgICAgICBbY3NzLXZhbHVlcy00XSBTdXBwb3J0IHNtYWxsIChzdiopLCBsYXJnZSAo
bHYqKSBhbmQgZHluYW1pYyAoZHYqKSB2aWV3cG9ydCB1bml0cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5Mjg3CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTg1NzM3MD4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAg
ICAgICAgU3BlYzogPGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTQvI3ZpZXdw
b3J0LXZhcmlhbnRzPgorCisgICAgICAgIFRlc3RzOiBDU1NWaWV3cG9ydFVuaXRzLkFsbFNhbWUK
KyAgICAgICAgICAgICAgIENTU1ZpZXdwb3J0VW5pdHMuRW1wdHlVbm9ic2N1cmVkU2l6ZU92ZXJy
aWRlcworICAgICAgICAgICAgICAgQ1NTVmlld3BvcnRVbml0cy5TYW1lVW5vYnNjdXJlZFNpemVP
dmVycmlkZXMKKyAgICAgICAgICAgICAgIENTU1ZpZXdwb3J0VW5pdHMuRGlmZmVyZW50VW5vYnNj
dXJlZFNpemVPdmVycmlkZXMKKworICAgICAgICAqIGNzcy9DU1NVbml0cy5oOgorICAgICAgICAq
IGNzcy9DU1NVbml0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAg
ICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjppc1ZpZXdwb3J0UGVyY2VudGFnZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNWaWV3cG9ydFBlcmNlbnRhZ2VXaWR0aCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNWaWV3cG9ydFBlcmNlbnRh
Z2VIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
OmlzVmlld3BvcnRQZXJjZW50YWdlTWF4KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1ByaW1pdGl2ZVZhbHVlOjppc1ZpZXdwb3J0UGVyY2VudGFnZU1pbik6IERlbGV0ZWQuCisgICAg
ICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFs
aWRDU1NVbml0VHlwZUZvckRvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6aXNT
dHJpbmdUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjbGVhbnVw
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlVW56b29tZWRO
b25DYWxjTGVuZ3RoRG91YmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
Ojpjb21wdXRlTm9uQ2FsY0xlbmd0aERvdWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6dW5pdFR5cGVTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmZvcm1hdE51bWJlckZvckN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmVxdWFscyBjb25zdCk6CisgICAgICAgICogY3Nz
L0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaDoKKyAgICAgICAgKiBjc3MvQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhOjpkZWZhdWx0Vmlld3BvcnRGYWN0b3IgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OnNtYWxsVmlld3BvcnRGYWN0b3IgY29u
c3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6
OmxhcmdlVmlld3BvcnRGYWN0b3IgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OmR5bmFtaWNWaWV3cG9ydEZhY3RvciBjb25zdCk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6dmlld3Bv
cnRXaWR0aEZhY3RvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhOjp2aWV3cG9ydEhlaWdodEZhY3RvciBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjp2aWV3cG9ydE1p
bkZhY3RvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhOjp2aWV3cG9ydE1heEZhY3RvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjc3NQ
cmltaXRpdmVWYWx1ZVVuaXRGcm9tVHJpZSk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzOjpjb25zdW1lTGVuZ3RoUmF3V2l0aEtub3duVG9rZW5UeXBlRGltZW5zaW9uKToK
KyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjQ2F0ZWdvcnlNYXBwaW5nLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNhbGNVbml0Q2F0ZWdvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Y2FsY3VsYXRp
b25DYXRlZ29yeUZvckNvbWJpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc0RvdWJsZVZh
bHVlKToKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgdGhlIGZvbGxvd2luZyBhbmQg
Y29udmVydGluZyB0aGVtIHRvIHRoZWlyIHVuZGVybHlpbmcgdmFsdWU6CisgICAgICAgIC0gYHN2
d2AgInNtYWxsIHZpZXdwb3J0IHdpZHRoIiBpcyB0aGUgd2lkdGggb2YgdGhlIHZpZXdwb3J0IGlm
IGFsbCBVQSBpbnRlcmZhY2VzIGFyZSBtYXhpbWl6ZWQKKyAgICAgICAgLSBgc3ZoYCAic21hbGwg
dmlld3BvcnQgaGVpZ2h0IiBpcyB0aGUgaGVpZ2h0IG9mIHRoZSB2aWV3cG9ydCBpZiBhbGwgVUEg
aW50ZXJmYWNlcyBhcmUgbWF4aW1pemVkCisgICAgICAgIC0gYHN2bWluYCAic21hbGwgdmlld3Bv
cnQgc21hbGwgZGltZW5zaW9uIiBpcyBgbWluKHN2dywgc3ZoKWAKKyAgICAgICAgLSBgc3ZtYXhg
ICJzbWFsbCB2aWV3cG9ydCBsYXJnZSBkaW1lbnNpb24iIGlzIGBtYXgoc3Z3LCBzdmgpYAorICAg
ICAgICAtIGBsdndgICJsYXJnZSB2aWV3cG9ydCB3aWR0aCIgaXMgdGhlIHdpZHRoIG9mIHRoZSB2
aWV3cG9ydCBpZiBhbGwgVUEgaW50ZXJmYWNlcyBhcmUgbWluaW1pemVkCisgICAgICAgIC0gYGx2
aGAgImxhcmdlIHZpZXdwb3J0IGhlaWdodCIgaXMgdGhlIGhlaWdodCBvZiB0aGUgdmlld3BvcnQg
aWYgYWxsIFVBIGludGVyZmFjZXMgYXJlIG1pbmltaXplZAorICAgICAgICAtIGBsdm1pbmAgImxh
cmdlIHZpZXdwb3J0IHNtYWxsIGRpbWVuc2lvbiIgaXMgYG1pbihsdncsIGx2aClgCisgICAgICAg
IC0gYGx2bWF4YCAibGFyZ2Ugdmlld3BvcnQgbGFyZ2UgZGltZW5zaW9uIiBpcyBgbWF4KGx2dywg
bHZoKWAKKyAgICAgICAgLSBgZHZ3YCAiZHluYW1pYyB2aWV3cG9ydCB3aWR0aCIgaXMgdGhlIHdp
ZHRoIG9mIHRoZSB2aWV3cG9ydCB3aXRoIGFsbCBVQSBpbnRlcmZhY2VzIGJlaW5nIGluIHdoYXRl
dmVyIHN0YXRlIHRoZXkgYXJlIGN1cnJlbnRseSBpbgorICAgICAgICAtIGBkdmhgICJkeW5hbWlj
IHZpZXdwb3J0IGhlaWdodCIgaXMgdGhlIGhlaWdodCBvZiB0aGUgdmlld3BvcnQgd2l0aCBhbGwg
VUEgaW50ZXJmYWNlcyBiZWluZyBpbiB3aGF0ZXZlciBzdGF0ZSB0aGV5IGFyZSBjdXJyZW50bHkg
aW4KKyAgICAgICAgLSBgZHZtaW5gICJkeW5hbWljIHZpZXdwb3J0IHNtYWxsIGRpbWVuc2lvbiIg
aXMgYG1pbihkdncsIGR2aClgCisgICAgICAgIC0gYGR2bWF4YCAiZHluYW1pYyB2aWV3cG9ydCBs
YXJnZSBkaW1lbnNpb24iIGlzIGBtYXgoZHZ3LCBkdmgpYAorICAgICAgICBUaGUgZXhpc3Rpbmcg
YHZ3YC9gdmhgL2B2bWluYC9gdm1heGAgY29ycmVzcG9uZCB0byB0aGUgIlVBLWRlZmF1bHQgdmll
d3BvcnQiLCB3aGljaCBXZWJLaXQKKyAgICAgICAgY29uc2lkZXJzIGVxdWl2YWxlbnQgdG8gdGhl
ICJsYXJnZSB2aWV3cG9ydCIgYGx2d2AvYGx2aGAvYGx2bWluYC9gbHZtYXhgLgorCisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnVub2JzY3VyZWRDb250ZW50U2l6ZUNoYW5nZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpwZXJmb3JtU2l6ZVRvQ29udGVudEF1dG9TaXpl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZW5hYmxlQXV0b1NpemVNb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y2FsY3VsYXRlU2l6ZUZvckNTU1ZpZXdwb3J0VW5p
dHNPdmVycmlkZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpj
bGVhclNpemVPdmVycmlkZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKTogUmVuYW1lZCBmcm9t
IGBjbGVhclZpZXdwb3J0U2l6ZU92ZXJyaWRlRm9yQ1NTVmlld3BvcnRVbml0c2AuCisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVZpZXc6OnNldFNpemVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cyk6
IFJlbmFtZWQgZnJvbSBgc2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0c2AuCisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6Om92ZXJyaWRlV2lkdGhGb3JDU1NEZWZhdWx0Vmlld3Bv
cnRVbml0cyk6IFJlbmFtZWQgZnJvbSBgYC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
cmVzZXRPdmVycmlkZGVuV2lkdGhGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cyk6IFJlbmFtZWQg
ZnJvbSBgYC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6b3ZlcnJpZGVTaXplRm9yQ1NT
RGVmYXVsdFZpZXdwb3J0VW5pdHMpOiBSZW5hbWVkIGZyb20gYGAuCisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OnNpemVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cyBjb25zdCk6IFJlbmFt
ZWQgZnJvbSBgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0c2AuCisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OmNsZWFyU2l6ZU92ZXJyaWRlRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRz
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNldFNpemVGb3JDU1NTbWFs
bFZpZXdwb3J0VW5pdHMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6b3Zl
cnJpZGVXaWR0aEZvckNTU1NtYWxsVmlld3BvcnRVbml0cyk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3OjpyZXNldE92ZXJyaWRkZW5XaWR0aEZvckNTU1NtYWxsVmlld3BvcnRV
bml0cyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpvdmVycmlkZVNpemVG
b3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6c2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cyBjb25zdCk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzaXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzIGNvbnN0
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNpemVGb3JDU1NEeW5hbWlj
Vmlld3BvcnRVbml0cyBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJW
aWV3Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVmlldzo6c2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzIGNvbnN0KTog
UmVuYW1lZCBmcm9tIGB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzYC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclZpZXc6OnNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMgY29uc3Qp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnNpemVGb3JDU1NMYXJnZVZp
ZXdwb3J0VW5pdHMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6
OnNpemVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cyBjb25zdCk6IEFkZGVkLgorICAgICAgICBG
b3IgInNtYWxsIHZpZXdwb3J0IiBgc3Z3YC9gc3ZoYC9gc3ZtaW5gL2Bzdm1heGAsIGFkZCBzdXBw
b3J0IGZvciBhIG5ldyBgSW50U2l6ZWAgbWVtYmVyCisgICAgICAgIHRoYXQgaXMgcHJvcGFnYXRl
ZCBmcm9tIHRoZSBVSVByb2Nlc3MuIElmIG5vdCBzZXQsIGZhbGwgYmFjayB0byAiVUEtZGVmYXVs
dCB2aWV3cG9ydCIgYHZ3YC9gdmhgL2B2bWluYC9gdm1heGAuCisgICAgICAgIEZvciAibGFyZ2Ug
dmlld3BvcnQiIGBsdndgL2BsdmhgL2Bsdm1pbmAvYGx2bWF4YCwgdXNlIHRoZSBzYW1lIHZhbHVl
IGFzICJVQS1kZWZhdWx0IHZpZXdwb3J0IiBgdndgL2B2aGAvYHZtaW5gL2B2bWF4YC4KKyAgICAg
ICAgRm9yICJkeW5hbWljIHZpZXdwb3J0IiBgZHZ3YC9gZHZoYC9gZHZtaW5gL2Bkdm1heGAsIHVz
ZSB0aGUgc2FtZSB2YWx1ZSBhcyBgd2luZG93LmlubmVyKmAuCisgICAgICAgIERyaXZlLWJ5OiBS
ZW5hbWUgYHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHNgIHRvIGBzaXplRm9yQ1NTRGVm
YXVsdFZpZXdwb3J0VW5pdHNgIGZvciBjbGFyaXR5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvRmxvYXRTaXplLmg6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFNpemU6Om1pbkRpbWVu
c2lvbiBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRTaXplOjptYXhEaW1l
bnNpb24gY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRTaXpl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnRTaXplOjptaW5EaW1lbnNpb24gY29uc3QpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkludFNpemU6Om1heERpbWVuc2lvbiBjb25zdCk6IEFkZGVk
LgorICAgICAgICBBZGQgdXRpbGl0eS9oZWxwZXIgbWV0aG9kcyBmb3IgcmV0dXJuaW5nIHRoZSBt
aW5pbXVtL21heGltdW0gb2YgdGhlIHdpZHRoIHZzIGhlaWdodC4KKworICAgICAgICAqIGNzcy9E
ZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXBy
ZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6cHJpbWl0aXZlVHlwZSBjb25zdCk6CisgICAgICAg
IERvbid0IGBBU1NFUlRfTk9UX1JFQUNIRURgIG5vdyB0aGF0IHRoZXJlIGFyZSBuZXcgdW5pdCB0
eXBlcy4KKwogMjAyMS0xMC0xMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBTY3JvbGxpbmcgdGhyZWFkIGFuaW1hdGlvbnMgbmVlZCB0byBjb21taXQg
bGF5ZXJzIG9uIHRoZSBzY3JvbGxpbmcgdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRl
eCBlMWFlYjdkZjUyMTQxMGI3MjFjOWUyZGYxODU5NDU3OTliZDEwNDAzLi4xNGM5MTcyZGM3N2I3
ZTc2MWE2OTcwN2FiNzZiMWU5YjAzNmI5MmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAyMS0xMC0xMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CisKKyAgICAgICAgW2Nzcy12YWx1ZXMtNF0gU3VwcG9ydCBzbWFsbCAoc3YqKSwgbGFyZ2Ug
KGx2KikgYW5kIGR5bmFtaWMgKGR2Kikgdmlld3BvcnQgdW5pdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTI4NworICAgICAgICA8cmRhcjovL3By
b2JsZW0vNzE4NTczNzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTQ29tcGxldGlvbnMuanM6CisKIDIwMjEt
MTAtMTEgIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogYWRkIFRhYkJhciBjb250ZXh0IG1lbnUgc3VwcG9ydCBmb3IgV0kuV2ViSW5zcGVjdG9yRXh0
ZW5zaW9uVGFiQ29udGVudFZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzEyZGFhZTA3N2UzZGJkM2IyODY0NGQw
MGFmY2ExNGFiZGZjMDAwZi4uZDM4YTdjZjA0NjNhZWRlMTBkZjc0MDZhM2I4M2FiNGU1MTdhZWI5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MiBAQAorMjAyMS0xMC0xMiAgRGV2aW4gUm91c3NvICA8
ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW2Nzcy12YWx1ZXMtNF0gU3VwcG9ydCBzbWFs
bCAoc3YqKSwgbGFyZ2UgKGx2KikgYW5kIGR5bmFtaWMgKGR2Kikgdmlld3BvcnQgdW5pdHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTI4NworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNzE4NTczNzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2lt
b24gRnJhc2VyLgorCisgICAgICAgIFNwZWM6IDxodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nz
LXZhbHVlcy00LyN2aWV3cG9ydC12YXJpYW50cz4KKworICAgICAgICBUZXN0czogQ1NTVmlld3Bv
cnRVbml0cy5BbGxTYW1lCisgICAgICAgICAgICAgICBDU1NWaWV3cG9ydFVuaXRzLkVtcHR5VW5v
YnNjdXJlZFNpemVPdmVycmlkZXMKKyAgICAgICAgICAgICAgIENTU1ZpZXdwb3J0VW5pdHMuU2Ft
ZVVub2JzY3VyZWRTaXplT3ZlcnJpZGVzCisgICAgICAgICAgICAgICBDU1NWaWV3cG9ydFVuaXRz
LkRpZmZlcmVudFVub2JzY3VyZWRTaXplT3ZlcnJpZGVzCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tX
ZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Byb2Nlc3NXaWxsU3dhcE9yRGlk
RXhpdF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2Rpc3BhdGNoU2V0TWluaW11bVVub2JzY3Vy
ZWRTaXplOl0pOiBBZGRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9mcmFtZU9yQm91bmRzQ2hh
bmdlZF0pOgorICAgICAgICAoYWN0aXZlTWluaW11bVVub2JzY3VyZWRTaXplKTogQWRkZWQuCisg
ICAgICAgICgtW1dLV2ViVmlldyBfZGlkQ29tcGxldGVBbmltYXRlZFJlc2l6ZV0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX21pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlXSk6IEFkZGVkLgor
ICAgICAgICAoLVtXS1dlYlZpZXcgX3NldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOl0p
OiBBZGRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9iZWdpbkFuaW1hdGVkUmVzaXplV2l0aFVw
ZGF0ZXM6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJz
V2l0aE1pbmltdW1MYXlvdXRTaXplOm1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOl0pOgor
ICAgICAgICAoLVtXS1dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVt
TGF5b3V0U2l6ZTptaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTptYXhpbXVtVW5vYnNjdXJl
ZFNpemVPdmVycmlkZTpdKTogQWRkZWQuCisgICAgICAgIFJlcXVpcmUgdGhhdCBjbGllbnRzIHdo
byBvdmVycmlkZSBsYXlvdXQgcGFyYW1ldGVycyB0byBwcm92aWRlIGJvdGggKG9yIG5laXRoZXIp
IGEgbWF4aW11bQorICAgICAgICBhbmQgbWluaW11bSB1bm9ic2N1cmVkIHNpemUgb3ZlcnJpZGUs
IHRoZSBsYXR0ZXIgYmVpbmcgZm9yICJzbWFsbCB2aWV3cG9ydCIgYHN2d2AvYHN2aGAvYHN2bWlu
YC9gc3ZtYXhgLgorICAgICAgICAibGFyZ2Ugdmlld3BvcnQiIGBsdndgL2BsdmhgL2Bsdm1pbmAv
YGx2bWF4YCBhbmQgImR5bmFtaWMgdmlld3BvcnQiIGBkdndgL2BkdmhgL2Bkdm1pbmAvYGR2bWF4
YAorICAgICAgICAoYXMgd2VsbCBhcyB0aGUgZXhpc3RpbmcgIlVBLWRlZmF1bHQgdmlld3BvcnQi
IGB2d2AvYHZoYC9gdm1pbmAvYHZtYXhgKSBjYW4gYmUgZGVyaXZlZCBmcm9tCisgICAgICAgIGV4
aXN0aW5nIGxvZ2ljLiBTZWUgdGhlIFdlYkNvcmUgQ2hhbmdlTG9nIGZvciBtb3JlIGluZm9ybWF0
aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZSk6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRNaW5pbXVtVW5vYnNj
dXJlZFNpemUpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHluYW1pY1ZpZXdw
b3J0U2l6ZVVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVZpZXdwb3J0
U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpOgorICAgICAgICBBZGQgcGlwaW5nIGZyb20gdGhlIFVJ
UHJvY2VzcyB0byB0aGUgV2ViUHJvY2VzcyBmb3IgdGhlIG5ldyBtaW5pbXVtIHVub2JzY3VyZWQg
c2l6ZSBvdmVycmlkZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1
bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0Nv
bnRyb2xsZXIgdmlld1dpbGxUcmFuc2l0aW9uVG9TaXplOndpdGhUcmFuc2l0aW9uQ29vcmRpbmF0
b3I6XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXJJT1MubW06CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXIgZW50ZXJGdWxsU2NyZWVuXSk6CisgICAgICAgIFJlcGxhY2UgYF9vdmVycmlkZUxheW91
dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6bWF4aW11bVVub2JzY3VyZWRTaXplT3Zl
cnJpZGU6YCB3aXRoCisgICAgICAgIGBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmlt
dW1MYXlvdXRTaXplOm1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOm1heGltdW1Vbm9ic2N1
cmVkU2l6ZU92ZXJyaWRlOmAuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFZpZXdwb3J0U2l6ZUZvckNTU1Zp
ZXdwb3J0VW5pdHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVu
dDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSk6CisgICAgICAgIERyaXZlLWJ5OiBS
ZW5hbWUgYHNldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHNgIHRvIGBzZXRTaXplRm9y
Q1NTRGVmYXVsdFZpZXdwb3J0VW5pdHNgIGZvciBjbGFyaXR5LgorCiAyMDIxLTEwLTEyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNjcm9sbGluZyB0
aHJlYWQgYW5pbWF0aW9ucyBuZWVkIHRvIGNvbW1pdCBsYXllcnMgb24gdGhlIHNjcm9sbGluZyB0
aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCmluZGV4IGM0N2Vi
N2M0ZTQyYzI4YWFmYzJmYWFkM2QxNmI5ODkyM2RkYmY5M2QuLmE5ZDAyMjZmOWNkZDUwNTcyYTJk
YmM4YTU5OTA4Njk3MTcxNjg0YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cmltaXRpdmVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlLmNwcApAQCAtNjAsNiArNjAsMTAgQEAgc3RhdGljIGlubGluZSBib29sIGlzVmFsaWRDU1NV
bml0VHlwZUZvckRvdWJsZUNvbnZlcnNpb24oQ1NTVW5pdFR5cGUgdW5pdFR5cGUpCiAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0NNOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ERUc6CiAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RJTUVOU0lPTjoKKyAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDoKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfRFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRU1TOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19F
WFM6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0ZSOgpAQCAtNzYsMTEgKzgwLDE5IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkQ1NTVW5pdFR5cGVGb3JEb3VibGVDb252ZXJzaW9uKENT
U1VuaXRUeXBlIHVuaXRUeXBlKQogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QWDoKICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfUToKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTEhTOgor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0xWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjoKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfTFZXOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19STEhTOgogICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19RVUlSS1lfRU1TOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19SQUQ6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JFTVM6CiAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1M6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDoKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfU1ZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOgor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1RVUk46CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOgogICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19WTUFYOgpAQCAtMTM5LDYgKzE1MSwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNT
dHJpbmdUeXBlKENTU1VuaXRUeXBlIHR5cGUpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQ
Q006CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQSToKICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFBQWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZIOgorICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19EVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
WDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRU1TOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19FWFM6CkBAIC0xNDksNiArMTY1LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1N0cmlu
Z1R5cGUoQ1NTVW5pdFR5cGUgdHlwZSkKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfSURFTlQ6
CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lOOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19LSFo6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDoKKyAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfTFZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUlOOgorICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX01NOgog
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19NUzoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
TlVNQkVSOgpAQCAtMTY4LDYgKzE4OCwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTdHJpbmdU
eXBlKENTU1VuaXRUeXBlIHR5cGUpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JFTVM6CiAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JHQkNPTE9SOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19TOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1NWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjoKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TSEFQ
RToKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVFVSTjoKICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfVU5JQ09ERV9SQU5HRToKQEAgLTUxNiw2ICs1NDAsMTggQEAgdm9pZCBDU1NQcmltaXRp
dmVWYWx1ZTo6Y2xlYW51cCgpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOgogICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFY
OgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1NWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU46CisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1NWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZN
SU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19EVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfRFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOgog
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUFBYOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19YOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUEk6CkBAIC02NDUsMjEgKzY4MSwzNyBA
QCBkb3VibGUgQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVVbnpvb21lZE5vbkNhbGNMZW5ndGhE
b3VibGUoQ1NTVW5pdFR5cGUgcHJpbWl0aQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgcmV0dXJuIC0xLjA7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOgotICAg
ICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnZpZXdwb3J0U2l6ZUZvckNTU1Zp
ZXdwb3J0VW5pdHMoKS5oZWlnaHQoKSAvIDEwMC4wICogdmFsdWUgOiAwOworICAgICAgICByZXR1
cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnNpemVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0
cygpLmhlaWdodCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1ZXOgotICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnZpZXdwb3J0
U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKS53aWR0aCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7Cisg
ICAgICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVuZGVyVmlldy0+c2l6ZUZvckNTU0RlZmF1bHRW
aWV3cG9ydFVuaXRzKCkud2lkdGgoKSAvIDEwMC4wICogdmFsdWUgOiAwOwogICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19WTUFYOgotICAgICAgICBpZiAocmVuZGVyVmlldykgewotICAgICAgICAg
ICAgSW50U2l6ZSB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzID0gcmVuZGVyVmlldy0+
dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpOwotICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bWF4KHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMud2lkdGgoKSwgdmlld3BvcnRT
aXplRm9yQ1NTVmlld3BvcnRVbml0cy5oZWlnaHQoKSkgLyAxMDAuMCAqIHZhbHVlOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXcgPyBy
ZW5kZXJWaWV3LT5zaXplRm9yQ1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMoKS5tYXhEaW1lbnNpb24o
KSAvIDEwMC4wICogdmFsdWUgOiB2YWx1ZTsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1J
TjoKLSAgICAgICAgaWYgKHJlbmRlclZpZXcpIHsKLSAgICAgICAgICAgIEludFNpemUgdmlld3Bv
cnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyA9IHJlbmRlclZpZXctPnZpZXdwb3J0U2l6ZUZvckNT
U1ZpZXdwb3J0VW5pdHMoKTsKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om1pbih2aWV3cG9ydFNp
emVGb3JDU1NWaWV3cG9ydFVuaXRzLndpZHRoKCksIHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0
VW5pdHMuaGVpZ2h0KCkpIC8gMTAwLjAgKiB2YWx1ZTsKLSAgICAgICAgfQotICAgICAgICByZXR1
cm4gdmFsdWU7CisgICAgICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVuZGVyVmlldy0+c2l6ZUZv
ckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCkubWluRGltZW5zaW9uKCkgLyAxMDAuMCAqIHZhbHVl
IDogdmFsdWU7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDoKKyAgICAgICAgcmV0dXJu
IHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCku
aGVpZ2h0KCkgLyAxMDAuMCAqIHZhbHVlIDogMDsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
U1ZXOgorICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnNpemVGb3JDU1NT
bWFsbFZpZXdwb3J0VW5pdHMoKS53aWR0aCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOgorICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJl
bmRlclZpZXctPnNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoKS5tYXhEaW1lbnNpb24oKSAv
IDEwMC4wICogdmFsdWUgOiB2YWx1ZTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU46
CisgICAgICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVuZGVyVmlldy0+c2l6ZUZvckNTU1NtYWxs
Vmlld3BvcnRVbml0cygpLm1pbkRpbWVuc2lvbigpIC8gMTAwLjAgKiB2YWx1ZSA6IHZhbHVlOwor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAgICAgIHJldHVybiByZW5kZXJWaWV3
ID8gcmVuZGVyVmlldy0+c2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpLmhlaWdodCgpIC8g
MTAwLjAgKiB2YWx1ZSA6IDA7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzoKKyAgICAg
ICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NTTGFyZ2VWaWV3cG9y
dFVuaXRzKCkud2lkdGgoKSAvIDEwMC4wICogdmFsdWUgOiAwOworICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19MVk1BWDoKKyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5z
aXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKCkubWF4RGltZW5zaW9uKCkgLyAxMDAuMCAqIHZh
bHVlIDogdmFsdWU7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUlOOgorICAgICAgICBy
ZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5p
dHMoKS5taW5EaW1lbnNpb24oKSAvIDEwMC4wICogdmFsdWUgOiB2YWx1ZTsKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfRFZIOgorICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZp
ZXctPnNpemVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cygpLmhlaWdodCgpIC8gMTAwLjAgKiB2
YWx1ZSA6IDA7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKKyAgICAgICAgcmV0dXJu
IHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMo
KS53aWR0aCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0RWTUFYOgorICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnNpemVGb3JD
U1NEeW5hbWljVmlld3BvcnRVbml0cygpLm1heERpbWVuc2lvbigpIC8gMTAwLjAgKiB2YWx1ZSA6
IHZhbHVlOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjoKKyAgICAgICAgcmV0dXJu
IHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMo
KS5taW5EaW1lbnNpb24oKSAvIDEwMC4wICogdmFsdWUgOiB2YWx1ZTsKICAgICBkZWZhdWx0Ogog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIC0xLjA7CkBAIC03
MDYsMTYgKzc1OCw1MiBAQCBkb3VibGUgQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVOb25DYWxj
TGVuZ3RoRG91YmxlKGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbgogICAgICAgICBicmVhazsK
IAogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSDoKLSAgICAgICAgcmV0dXJuIHZhbHVlICog
Y29udmVyc2lvbkRhdGEudmlld3BvcnRIZWlnaHRGYWN0b3IoKTsKKyAgICAgICAgcmV0dXJuIHZh
bHVlICogY29udmVyc2lvbkRhdGEuZGVmYXVsdFZpZXdwb3J0RmFjdG9yKCkuaGVpZ2h0KCk7CiAK
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVlc6Ci0gICAgICAgIHJldHVybiB2YWx1ZSAqIGNv
bnZlcnNpb25EYXRhLnZpZXdwb3J0V2lkdGhGYWN0b3IoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVl
ICogY29udmVyc2lvbkRhdGEuZGVmYXVsdFZpZXdwb3J0RmFjdG9yKCkud2lkdGgoKTsKIAogICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgotICAgICAgICByZXR1cm4gdmFsdWUgKiBjb252
ZXJzaW9uRGF0YS52aWV3cG9ydE1heEZhY3RvcigpOworICAgICAgICByZXR1cm4gdmFsdWUgKiBj
b252ZXJzaW9uRGF0YS5kZWZhdWx0Vmlld3BvcnRGYWN0b3IoKS5tYXhEaW1lbnNpb24oKTsKIAog
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOgotICAgICAgICByZXR1cm4gdmFsdWUgKiBj
b252ZXJzaW9uRGF0YS52aWV3cG9ydE1pbkZhY3RvcigpOworICAgICAgICByZXR1cm4gdmFsdWUg
KiBjb252ZXJzaW9uRGF0YS5kZWZhdWx0Vmlld3BvcnRGYWN0b3IoKS5taW5EaW1lbnNpb24oKTsK
KworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAgICAgIHJldHVybiB2YWx1ZSAq
IGNvbnZlcnNpb25EYXRhLnNtYWxsVmlld3BvcnRGYWN0b3IoKS5oZWlnaHQoKTsKKworICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNp
b25EYXRhLnNtYWxsVmlld3BvcnRGYWN0b3IoKS53aWR0aCgpOworCisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1NWTUFYOgorICAgICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0YS5z
bWFsbFZpZXdwb3J0RmFjdG9yKCkubWF4RGltZW5zaW9uKCk7CisKKyAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfU1ZNSU46CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLnNt
YWxsVmlld3BvcnRGYWN0b3IoKS5taW5EaW1lbnNpb24oKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19MVkg6CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmxhcmdl
Vmlld3BvcnRGYWN0b3IoKS5oZWlnaHQoKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19M
Vlc6CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmxhcmdlVmlld3BvcnRG
YWN0b3IoKS53aWR0aCgpOworCisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOgorICAg
ICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0YS5sYXJnZVZpZXdwb3J0RmFjdG9yKCku
bWF4RGltZW5zaW9uKCk7CisKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46CisgICAg
ICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmxhcmdlVmlld3BvcnRGYWN0b3IoKS5t
aW5EaW1lbnNpb24oKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6CisgICAgICAg
IHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmR5bmFtaWNWaWV3cG9ydEZhY3RvcigpLmhl
aWdodCgpOworCisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKKyAgICAgICAgcmV0dXJu
IHZhbHVlICogY29udmVyc2lvbkRhdGEuZHluYW1pY1ZpZXdwb3J0RmFjdG9yKCkud2lkdGgoKTsK
KworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDoKKyAgICAgICAgcmV0dXJuIHZhbHVl
ICogY29udmVyc2lvbkRhdGEuZHluYW1pY1ZpZXdwb3J0RmFjdG9yKCkubWF4RGltZW5zaW9uKCk7
CisKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46CisgICAgICAgIHJldHVybiB2YWx1
ZSAqIGNvbnZlcnNpb25EYXRhLmR5bmFtaWNWaWV3cG9ydEZhY3RvcigpLm1pbkRpbWVuc2lvbigp
OwogCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xIUzoKICAgICAgICAgQVNTRVJUKGNvbnZl
cnNpb25EYXRhLnN0eWxlKCkpOwpAQCAtOTg0LDYgKzEwNzIsMTggQEAgU3RyaW5nIENTU1ByaW1p
dGl2ZVZhbHVlOjp1bml0VHlwZVN0cmluZyhDU1NVbml0VHlwZSB1bml0VHlwZSkKICAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOiByZXR1cm4gInZoIjsKICAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1ZNSU46IHJldHVybiAidm1pbiI7CiAgICAgICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19WTUFYOiByZXR1cm4gInZtYXgiOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfU1ZXOiByZXR1cm4gInN2dyI7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6
IHJldHVybiAic3ZoIjsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOiByZXR1
cm4gInN2bWluIjsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOiByZXR1cm4g
InN2bWF4IjsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzogcmV0dXJuICJsdnci
OworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOiByZXR1cm4gImx2aCI7CisgICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjogcmV0dXJuICJsdm1pbiI7CisgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDogcmV0dXJuICJsdm1heCI7CisgICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6IHJldHVybiAiZHZ3IjsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0RWSDogcmV0dXJuICJkdmgiOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFZNSU46IHJldHVybiAiZHZtaW4iOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfRFZNQVg6IHJldHVybiAiZHZtYXgiOwogICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
RFBQWDogcmV0dXJuICJkcHB4IjsKICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1g6IHJl
dHVybiAieCI7CiAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUEk6IHJldHVybiAiZHBp
IjsKQEAgLTExNDYsNiArMTI0NiwzMCBAQCBBTFdBWVNfSU5MSU5FIFN0cmluZyBDU1NQcmltaXRp
dmVWYWx1ZTo6Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHJl
dHVybiBmb3JtYXROdW1iZXJWYWx1ZSgidm1pbiIpOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19WTUFYOgogICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoInZtYXgiKTsKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgorICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFs
dWUoInN2dyIpOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAgICAgIHJldHVy
biBmb3JtYXROdW1iZXJWYWx1ZSgic3ZoIik7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NW
TUlOOgorICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoInN2bWluIik7CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOgorICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFs
dWUoInN2bWF4Iik7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzoKKyAgICAgICAgcmV0
dXJuIGZvcm1hdE51bWJlclZhbHVlKCJsdnciKTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
TFZIOgorICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoImx2aCIpOworICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19MVk1JTjoKKyAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlclZhbHVl
KCJsdm1pbiIpOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDoKKyAgICAgICAgcmV0
dXJuIGZvcm1hdE51bWJlclZhbHVlKCJsdm1heCIpOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19EVlc6CisgICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJWYWx1ZSgiZHZ3Iik7CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlclZhbHVl
KCJkdmgiKTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46CisgICAgICAgIHJldHVy
biBmb3JtYXROdW1iZXJWYWx1ZSgiZHZtaW4iKTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
RFZNQVg6CisgICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJWYWx1ZSgiZHZtYXgiKTsKICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfSURFTlQ6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1VO
SUNPREVfUkFOR0U6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NBTENfUEVSQ0VOVEFHRV9X
SVRIX05VTUJFUjoKQEAgLTEyMTMsNiArMTMzNywxOCBAQCBib29sIENTU1ByaW1pdGl2ZVZhbHVl
OjplcXVhbHMoY29uc3QgQ1NTUHJpbWl0aXZlVmFsdWUmIG90aGVyKSBjb25zdAogICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19WSDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjoKICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
U1ZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX1NWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDoKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfTFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19MVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZXOgorICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19EVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOgorICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRlI6
CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1E6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0xIUzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKaW5kZXggOGI4MmI5YmE5
NDk2YWEwOTRiZGZlZGJhOGRmOTE5Y2UyZWJhN2YzMy4uYjc0NzljN2JmN2Q5NTQ3NTA4NzkyOTQ5
NmY0ZDRiMWE5ZWQ1ODg2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgK
QEAgLTExMSwxMCArMTExLDYgQEAgcHVibGljOgogICAgIGJvb2wgaXNYKCkgY29uc3QgeyByZXR1
cm4gcHJpbWl0aXZlVHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1NfWDsgfQogICAgIGJvb2wgaXNS
ZXNvbHV0aW9uKCkgY29uc3QgeyByZXR1cm4gdW5pdENhdGVnb3J5KHByaW1pdGl2ZVR5cGUoKSkg
PT0gQ1NTVW5pdENhdGVnb3J5OjpSZXNvbHV0aW9uOyB9CiAgICAgYm9vbCBpc1ZpZXdwb3J0UGVy
Y2VudGFnZUxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIGlzVmlld3BvcnRQZXJjZW50YWdlTGVuZ3Ro
KHByaW1pdGl2ZVVuaXRUeXBlKCkpOyB9Ci0gICAgYm9vbCBpc1ZpZXdwb3J0UGVyY2VudGFnZVdp
ZHRoKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVW5pdFR5cGUoKSA9PSBDU1NVbml0VHlwZTo6
Q1NTX1ZXOyB9Ci0gICAgYm9vbCBpc1ZpZXdwb3J0UGVyY2VudGFnZUhlaWdodCgpIGNvbnN0IHsg
cmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19WSDsgfQotICAg
IGJvb2wgaXNWaWV3cG9ydFBlcmNlbnRhZ2VNYXgoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVV
bml0VHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1NfVk1BWDsgfQotICAgIGJvb2wgaXNWaWV3cG9y
dFBlcmNlbnRhZ2VNaW4oKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVVbml0VHlwZSgpID09IENT
U1VuaXRUeXBlOjpDU1NfVk1JTjsgfQogICAgIGJvb2wgaXNWYWx1ZUlEKCkgY29uc3QgeyByZXR1
cm4gcHJpbWl0aXZlVW5pdFR5cGUoKSA9PSBDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEOyB9CiAg
ICAgYm9vbCBpc0ZsZXgoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTVW5p
dFR5cGU6OkNTU19GUjsgfQogICAgIGJvb2wgaXNDdXN0b21JZGVudCgpIGNvbnN0IHsgcmV0dXJu
IHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkN1c3RvbUlkZW50OyB9CkBAIC0z
MTUsMTAgKzMxMSw3IEBAIGNvbnN0ZXhwciBib29sIENTU1ByaW1pdGl2ZVZhbHVlOjppc1Jlc29s
dXRpb24oQ1NTVW5pdFR5cGUgdHlwZSkKIAogY29uc3RleHByIGJvb2wgQ1NTUHJpbWl0aXZlVmFs
dWU6OmlzVmlld3BvcnRQZXJjZW50YWdlTGVuZ3RoKENTU1VuaXRUeXBlIHR5cGUpCiB7Ci0gICAg
cmV0dXJuIHR5cGUgPT0gQ1NTVW5pdFR5cGU6OkNTU19WVwotICAgICAgICB8fCB0eXBlID09IENT
U1VuaXRUeXBlOjpDU1NfVkgKLSAgICAgICAgfHwgdHlwZSA9PSBDU1NVbml0VHlwZTo6Q1NTX1ZN
SU4KLSAgICAgICAgfHwgdHlwZSA9PSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg7CisgICAgcmV0dXJu
IHR5cGUgPj0gQ1NTVW5pdFR5cGU6OkNTU19WVyAmJiB0eXBlIDw9IENTU1VuaXRUeXBlOjpDU1Nf
RFZNQVg7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWY8Q1NTUHJpbWl0aXZl
VmFsdWU+IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoVCYmIHZhbHVlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuY3BwCmluZGV4IDMxOTgwZTYy
Yzk1ZWI3OTBiNTA3MjY4N2RmZTU3MzE2Mzk5MzZiNjguLmIwMTVmMWFlN2EwNzg2NjdjNWE3NWQ2
NGQ1Zjg4YTRmOWIxOGRhMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmgiCiAKKyNpbmNsdWRlICJG
bG9hdFNpemUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJlbmRlclZp
ZXcuaCIKIApAQCAtNDMsNTAgKzQ0LDQ4IEBAIGZsb2F0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGE6Onpvb20oKSBjb25zdAogICAgIHJldHVybiAqbV96b29tOwogfQogCi1kb3VibGUgQ1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YTo6dmlld3BvcnRXaWR0aEZhY3RvcigpIGNvbnN0CitGbG9hdFNp
emUgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6ZGVmYXVsdFZpZXdwb3J0RmFjdG9yKCkgY29u
c3QKIHsKICAgICBpZiAobV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZSkKICAgICAg
ICAgbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZS0+c2V0SGFzVmlld3BvcnRVbml0
cygpOwogCiAgICAgaWYgKCFtX3JlbmRlclZpZXcpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIG1fcmVuZGVyVmlldy0+dmlld3BvcnRTaXplRm9y
Q1NTVmlld3BvcnRVbml0cygpLndpZHRoKCkgLyAxMDAuMDsKKyAgICByZXR1cm4gbV9yZW5kZXJW
aWV3LT5zaXplRm9yQ1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMoKSAvIDEwMC4wOwogfQogCi1kb3Vi
bGUgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6dmlld3BvcnRIZWlnaHRGYWN0b3IoKSBjb25z
dAorRmxvYXRTaXplIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OnNtYWxsVmlld3BvcnRGYWN0
b3IoKSBjb25zdAogewogICAgIGlmIChtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxl
KQogICAgICAgICBtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlLT5zZXRIYXNWaWV3
cG9ydFVuaXRzKCk7CiAKICAgICBpZiAoIW1fcmVuZGVyVmlldykKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiB7IH07CiAKLSAgICByZXR1cm4gbV9yZW5kZXJWaWV3LT52aWV3cG9y
dFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkuaGVpZ2h0KCkgLyAxMDAuMDsKKyAgICByZXR1cm4g
bV9yZW5kZXJWaWV3LT5zaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCkgLyAxMDAuMDsKIH0K
IAotZG91YmxlIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OnZpZXdwb3J0TWluRmFjdG9yKCkg
Y29uc3QKK0Zsb2F0U2l6ZSBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpsYXJnZVZpZXdwb3J0
RmFjdG9yKCkgY29uc3QKIHsKICAgICBpZiAobV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25T
dHlsZSkKICAgICAgICAgbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZS0+c2V0SGFz
Vmlld3BvcnRVbml0cygpOwogCiAgICAgaWYgKCFtX3JlbmRlclZpZXcpCi0gICAgICAgIHJldHVy
biAwOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgSW50U2l6ZSB2aWV3cG9ydFNpemVGb3JD
U1NWaWV3cG9ydFVuaXRzID0gbV9yZW5kZXJWaWV3LT52aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9y
dFVuaXRzKCk7Ci0gICAgcmV0dXJuIHN0ZDo6bWluKHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0
VW5pdHMud2lkdGgoKSwgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cy5oZWlnaHQoKSkg
LyAxMDAuMDsKKyAgICByZXR1cm4gbV9yZW5kZXJWaWV3LT5zaXplRm9yQ1NTTGFyZ2VWaWV3cG9y
dFVuaXRzKCkgLyAxMDAuMDsKIH0KIAotZG91YmxlIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6
OnZpZXdwb3J0TWF4RmFjdG9yKCkgY29uc3QKK0Zsb2F0U2l6ZSBDU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhOjpkeW5hbWljVmlld3BvcnRGYWN0b3IoKSBjb25zdAogewogICAgIGlmIChtX3ZpZXdw
b3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlKQogICAgICAgICBtX3ZpZXdwb3J0RGVwZW5kZW5j
eURldGVjdGlvblN0eWxlLT5zZXRIYXNWaWV3cG9ydFVuaXRzKCk7CiAKICAgICBpZiAoIW1fcmVu
ZGVyVmlldykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBJ
bnRTaXplIHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMgPSBtX3JlbmRlclZpZXctPnZp
ZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKTsKLSAgICByZXR1cm4gc3RkOjptYXgodmll
d3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cy53aWR0aCgpLCB2aWV3cG9ydFNpemVGb3JDU1NW
aWV3cG9ydFVuaXRzLmhlaWdodCgpKSAvIDEwMC4wOworICAgIHJldHVybiBtX3JlbmRlclZpZXct
PnNpemVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cygpIC8gMTAwLjA7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9MZW5ndGhDb252ZXJz
aW9uRGF0YS5oCmluZGV4IDk1Mzc3OWY4ZDU1NWYwYmM5ODE5Mjc3NWU3MzdjNTViMTUwNjAwZWUu
LmU1YzJiNjJjNTJlYzIxYTM2NTI5ODAxYzdjZDQ4NmFmYmM5NTYxNDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaApAQCAtMzYsNiArMzYsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIFJlbmRl
clN0eWxlOwogY2xhc3MgUmVuZGVyVmlldzsKIApAQCAtNzQsMTAgKzc1LDEwIEBAIHB1YmxpYzoK
ICAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5VG9Db21wdXRlKCkgY29uc3QgeyByZXR1cm4gbV9w
cm9wZXJ0eVRvQ29tcHV0ZS52YWx1ZV9vcihDU1NQcm9wZXJ0eUludmFsaWQpOyB9CiAgICAgY29u
c3QgUmVuZGVyVmlldyogcmVuZGVyVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyVmlldzsg
fQogCi0gICAgZG91YmxlIHZpZXdwb3J0V2lkdGhGYWN0b3IoKSBjb25zdDsKLSAgICBkb3VibGUg
dmlld3BvcnRIZWlnaHRGYWN0b3IoKSBjb25zdDsKLSAgICBkb3VibGUgdmlld3BvcnRNaW5GYWN0
b3IoKSBjb25zdDsKLSAgICBkb3VibGUgdmlld3BvcnRNYXhGYWN0b3IoKSBjb25zdDsKKyAgICBG
bG9hdFNpemUgZGVmYXVsdFZpZXdwb3J0RmFjdG9yKCkgY29uc3Q7CisgICAgRmxvYXRTaXplIHNt
YWxsVmlld3BvcnRGYWN0b3IoKSBjb25zdDsKKyAgICBGbG9hdFNpemUgbGFyZ2VWaWV3cG9ydEZh
Y3RvcigpIGNvbnN0OworICAgIEZsb2F0U2l6ZSBkeW5hbWljVmlld3BvcnRGYWN0b3IoKSBjb25z
dDsKIAogICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29weVdpdGhBZGp1c3RlZFpvb20o
ZmxvYXQgbmV3Wm9vbSkgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVW5pdHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1VuaXRzLmNwcAppbmRleCA0
ZjQ2OGIzZjNiNTcxMjZjMTU0YzEzNjg2ODVkMTgxOWI3OTFkMjNlLi4yNGNiNjYzZTJjNWUzMzFl
NWIyZGViZmQ1MmRhNDVmMzI0YjkxMzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVW5pdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbml0cy5jcHAKQEAgLTEz
OCw2ICsxMzgsMTggQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgQ1NT
VW5pdFR5cGUgdW5pdFR5cGUpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOiB0cyA8PCAi
dmgiOyBicmVhazsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjogdHMgPDwgInZtaW4i
OyBicmVhazsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1BWDogdHMgPDwgInZtYXgiOyBi
cmVhazsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOiB0cyA8PCAic3Z3IjsgYnJlYWs7
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDogdHMgPDwgInN2aCI7IGJyZWFrOworICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjogdHMgPDwgInN2bWluIjsgYnJlYWs7CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOiB0cyA8PCAic3ZtYXgiOyBicmVhazsKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfTFZXOiB0cyA8PCAibHZ3IjsgYnJlYWs7CisgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0xWSDogdHMgPDwgImx2aCI7IGJyZWFrOworICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19MVk1JTjogdHMgPDwgImx2bWluIjsgYnJlYWs7CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0xWTUFYOiB0cyA8PCAibHZtYXgiOyBicmVhazsKKyAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfRFZXOiB0cyA8PCAiZHZ3IjsgYnJlYWs7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0RWSDogdHMgPDwgImR2aCI7IGJyZWFrOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19E
Vk1JTjogdHMgPDwgImR2bWluIjsgYnJlYWs7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RW
TUFYOiB0cyA8PCAiZHZtYXgiOyBicmVhazsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBQ
WDogdHMgPDwgImRwcHgiOyBicmVhazsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfWDogdHMg
PDwgIngiOyBicmVhazsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBJOiB0cyA8PCAiZHBp
IjsgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5pdHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NVbml0cy5oCmluZGV4IDk3MjU1YTllYzM3ODI1YzhiN2U0NDg5
NWNmNjU4MzVkOWI4ZDJjZmEuLmIwZjdjMmQyZjZlYWJjYzczZjRjYzMyMmE1YmVhZjU4MmY4YzAw
NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbml0cy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NVbml0cy5oCkBAIC01OSw2ICs1OSwxOCBAQCBlbnVtIGNsYXNzIENT
U1VuaXRUeXBlIDogdWludDhfdCB7CiAgICAgQ1NTX1ZILAogICAgIENTU19WTUlOLAogICAgIENT
U19WTUFYLAorICAgIENTU19TVlcsCisgICAgQ1NTX1NWSCwKKyAgICBDU1NfU1ZNSU4sCisgICAg
Q1NTX1NWTUFYLAorICAgIENTU19MVlcsCisgICAgQ1NTX0xWSCwKKyAgICBDU1NfTFZNSU4sCisg
ICAgQ1NTX0xWTUFYLAorICAgIENTU19EVlcsCisgICAgQ1NTX0RWSCwKKyAgICBDU1NfRFZNSU4s
CisgICAgQ1NTX0RWTUFYLAogICAgIENTU19EUFBYLAogICAgIENTU19YLAogICAgIENTU19EUEks
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZl
VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZh
bHVlLmNwcAppbmRleCBiYmQwMTQ5OTE3OTg0NzM4ODdjZjQ4Mjg5YzU0NmI2MjUzZDM4M2E1Li43
ZGI1Y2JhMDY1YTkzNWE1NDk5MTJkNTRiYjU5YjFlZThmYTAzMTEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHAKQEAgLTkz
LDEwICs5Myw5IEBAIHVuc2lnbmVkIHNob3J0IERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVl
OjpwcmltaXRpdmVUeXBlKCkgY29uc3QKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjog
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU19WTUlOOwogICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19WVzogICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTX1ZXOwog
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19YOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gMzc7Ci0gICAgfQogCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJu
IENTU19VTktOT1dOOworICAgIGRlZmF1bHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gQ1NTX1VOS05PV047CisgICAgfQogfQogCiBFeGNlcHRpb25P
cjxmbG9hdD4gRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OmdldEZsb2F0VmFsdWUodW5z
aWduZWQgc2hvcnQgdW5pdFR5cGUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvY2FsYy9DU1NDYWxjQ2F0ZWdvcnlNYXBwaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9j
YWxjL0NTU0NhbGNDYXRlZ29yeU1hcHBpbmcuY3BwCmluZGV4IDJkMGExYzIwMDFmMTJmZTIxNjhi
NGM3YmQ4Mjg3OGViMTBmNzE4Y2QuLjllZjFkNDU2OTIwMmVlNTkzNTIzYzBkYTJjODI3MjcxMDJm
NzYwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNDYXRlZ29y
eU1hcHBpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNDYXRlZ29y
eU1hcHBpbmcuY3BwCkBAIC01NCw2ICs1NCwxOCBAQCBDYWxjdWxhdGlvbkNhdGVnb3J5IGNhbGNV
bml0Q2F0ZWdvcnkoQ1NTVW5pdFR5cGUgdHlwZSkKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
Vkg6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46CiAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX1ZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWVzoKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfU1ZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjoKKyAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0xWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19MVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZIOgor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfRFZNQVg6CiAgICAgICAgIHJldHVybiBDYWxjdWxhdGlvbkNhdGVnb3J5OjpMZW5ndGg7CiAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0U6CiAgICAgICAgIHJldHVybiBDYWxj
dWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50OwpAQCAtMTEwLDYgKzEyMiwxOCBAQCBDYWxjdWxhdGlv
bkNhdGVnb3J5IGNhbGN1bGF0aW9uQ2F0ZWdvcnlGb3JDb21iaW5hdGlvbihDU1NVbml0VHlwZSB0
eXBlKQogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSDoKICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfVk1JTjoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1BWDoKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfU1ZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19T
Vk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19MVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUlOOgorICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19MVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZXOgor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0RWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDoKICAgICBkZWZhdWx0Ogog
ICAgICAgICByZXR1cm4gQ2FsY3VsYXRpb25DYXRlZ29yeTo6T3RoZXI7CiAgICAgfQpAQCAtMTYy
LDYgKzE4NiwxOCBAQCBib29sIGhhc0RvdWJsZVZhbHVlKENTU1VuaXRUeXBlIHR5cGUpCiAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlO
OgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19TVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDoKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfU1ZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOgorICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xW
SDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0xWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6CisgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19EUFBYOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19YOgogICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19EUEk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlclRva2VuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4u
Y3BwCmluZGV4IDliZGMxM2FkYmQ1MDA3OWFkODQwNzgwYjIwNzA2MWQ0Mzc5Njc0NzMuLmRlNTVk
MzRjOTcyODQxMmM2ZmMzNTJiMTIyOTU1MzQ2NjgxMDc3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwCkBAIC0xMzQsOCArMTM0LDI2IEBAIENTU1Vu
aXRUeXBlIGNzc1ByaW1pdGl2ZVZhbHVlVW5pdEZyb21UcmllKGNvbnN0IENoYXJhY3RlclR5cGUq
IGRhdGEsIHVuc2lnbmVkIGxlCiAgICAgICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRh
WzJdKSA9PSAnaScpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NT
X0RQSTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ3YnOgorICAg
ICAgICAgICAgICAgIHN3aXRjaCAodG9BU0NJSUxvd2VyKGRhdGFbMl0pKSB7CisgICAgICAgICAg
ICAgICAgY2FzZSAnaCc6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6
Q1NTX0RWSDsKKyAgICAgICAgICAgICAgICBjYXNlICd3JzoKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfRFZXOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAnbCc6CisgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2Vy
KGRhdGFbMV0pID09ICd2JykgeworICAgICAgICAgICAgICAgIHN3aXRjaCAodG9BU0NJSUxvd2Vy
KGRhdGFbMl0pKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnaCc6CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0xWSDsKKyAgICAgICAgICAgICAgICBjYXNlICd3
JzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfTFZXOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlICdrJzoKICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVsxXSkgPT0gJ2gn
ICYmIHRvQVNDSUlMb3dlcihkYXRhWzJdKSA9PSAneicpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IENTU1VuaXRUeXBlOjpDU1NfS0haOwpAQCAtMTU1LDkgKzE3MywxOSBAQCBDU1NVbml0VHlwZSBj
c3NQcmltaXRpdmVWYWx1ZVVuaXRGcm9tVHJpZShjb25zdCBDaGFyYWN0ZXJUeXBlKiBkYXRhLCB1
bnNpZ25lZCBsZQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19S
TEhTOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQorICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgJ3MnOgorICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihk
YXRhWzFdKSA9PSAndicpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHRvQVNDSUlMb3dlcihk
YXRhWzJdKSkgeworICAgICAgICAgICAgICAgIGNhc2UgJ2gnOgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19TVkg7CisgICAgICAgICAgICAgICAgY2FzZSAndyc6
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX1NWVzsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQogICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgYnJlYWs7CiAgICAgY2FzZSA0OgogICAgICAg
ICBzd2l0Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzBdKSkgewogICAgICAgICBjYXNlICdkJzoKQEAg
LTE3Myw5ICsyMDEsOSBAQCBDU1NVbml0VHlwZSBjc3NQcmltaXRpdmVWYWx1ZVVuaXRGcm9tVHJp
ZShjb25zdCBDaGFyYWN0ZXJUeXBlKiBkYXRhLCB1bnNpZ25lZCBsZQogICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfRFBQWDsKICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgJ2cnOgogICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzFd
KSA9PSAncicgJiYgdG9BU0NJSUxvd2VyKGRhdGFbMl0pID09ICdhJyAmJiB0b0FTQ0lJTG93ZXIo
ZGF0YVszXSkgPT0gJ2QnKQogICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NT
X0dSQUQ7CkBAIC0yMDgsNiArMjM2LDQ4IEBAIENTU1VuaXRUeXBlIGNzc1ByaW1pdGl2ZVZhbHVl
VW5pdEZyb21UcmllKGNvbnN0IENoYXJhY3RlclR5cGUqIGRhdGEsIHVuc2lnbmVkIGxlCiAgICAg
ICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbMV0pID09ICdfJyAmJiB0b0FTQ0lJTG93ZXIo
ZGF0YVsyXSkgPT0gJ3EnICYmIHRvQVNDSUlMb3dlcihkYXRhWzNdKSA9PSAnZScgJiYgdG9BU0NJ
SUxvd2VyKGRhdGFbNF0pID09ICdtJykKICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5
cGU6OkNTU19RVUlSS1lfRU1TOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ2Qn
OgorICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzFdKSA9PSAndicgJiYgdG9BU0NJ
SUxvd2VyKGRhdGFbMl0pID09ICdtJykgeworICAgICAgICAgICAgICAgIHN3aXRjaCAodG9BU0NJ
SUxvd2VyKGRhdGFbM10pKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnYSc6CisgICAgICAgICAg
ICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVs0XSkgPT0gJ3gnKQorICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg7CisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ2knOgorICAgICAgICAgICAgICAg
ICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbNF0pID09ICduJykKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOworICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAnbCc6CisgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGRh
dGFbMV0pID09ICd2JyAmJiB0b0FTQ0lJTG93ZXIoZGF0YVsyXSkgPT0gJ20nKSB7CisgICAgICAg
ICAgICAgICAgc3dpdGNoICh0b0FTQ0lJTG93ZXIoZGF0YVszXSkpIHsKKyAgICAgICAgICAgICAg
ICBjYXNlICdhJzoKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzRd
KSA9PSAneCcpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNT
U19MVk1BWDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2Fz
ZSAnaSc6CisgICAgICAgICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVs0XSkgPT0g
J24nKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfTFZN
SU47CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICdzJzoKKyAgICAgICAg
ICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVsxXSkgPT0gJ3YnICYmIHRvQVNDSUlMb3dlcihkYXRh
WzJdKSA9PSAnbScpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHRvQVNDSUlMb3dlcihkYXRh
WzNdKSkgeworICAgICAgICAgICAgICAgIGNhc2UgJ2EnOgorICAgICAgICAgICAgICAgICAgICBp
ZiAodG9BU0NJSUxvd2VyKGRhdGFbNF0pID09ICd4JykKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICBjYXNlICdpJzoKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRv
QVNDSUlMb3dlcihkYXRhWzRdKSA9PSAnbicpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCmluZGV4IDE4NmRkMmEzZjEy
NzgzZTFlMTBjYWU2ZThkMmJlZjUwMmVhMmVhY2YuLjA0ZTFjODRjYjVmYWI2ODM4ZDRlNzY0MTk5
MGVlNTQ3NTgwMzFhOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKQEAgLTQ5Miw2ICs0OTIsMTggQEAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8TGVuZ3RoUmF3PiBjb25zdW1lTGVuZ3RoUmF3V2l0aEtub3duVG9rZW5U
eXBlRGltZW5zaW9uKENTU1AKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkg6CiAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg6
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfU1ZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjoKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfU1ZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzoKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1J
TjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0RWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZIOgorICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19EVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6CiAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1E6CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNWRhMzAwNDI4NTcxMTA5NWQyMWUxOTBj
M2M2OTUxMjE4ODI1NWVlMS4uYTI5Njg2MDc0MWMzYTVmN2Q2MjRiNzExNThmNzE0YzYwYzYyYWFi
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMjg5MSw2ICsyODkxLDkgQEAgdm9p
ZCBGcmFtZVZpZXc6OnVub2JzY3VyZWRDb250ZW50U2l6ZUNoYW5nZWQoKQogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAgICAgdXBkYXRlVGlsZWRCYWNraW5nQWRhcHRpdmVTaXppbmcoKTsKICNl
bmRpZgorCisgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpKQorICAg
ICAgICBkb2N1bWVudC0+c3R5bGVTY29wZSgpLmRpZENoYW5nZVN0eWxlU2hlZXRFbnZpcm9ubWVu
dCgpOwogfQogCiB2b2lkIEZyYW1lVmlldzo6bG9hZFByb2dyZXNzaW5nU3RhdHVzQ2hhbmdlZCgp
CkBAIC0zNTY1LDcgKzM1NjgsOSBAQCB2b2lkIEZyYW1lVmlldzo6cGVyZm9ybVNpemVUb0NvbnRl
bnRBdXRvU2l6ZSgpCiAgICAgICAgIGRvY3VtZW50LnVwZGF0ZUxheW91dCgpOwogICAgIH07CiAK
LSAgICByZXNldE92ZXJyaWRkZW5WaWV3cG9ydFdpZHRoRm9yQ1NTVmlld3BvcnRVbml0cygpOwor
ICAgIHJlc2V0T3ZlcnJpZGRlbldpZHRoRm9yQ1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMoKTsKKyAg
ICByZXNldE92ZXJyaWRkZW5XaWR0aEZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpOworCiAgICAg
Ly8gU3RhcnQgZnJvbSB0aGUgbWluaW11bSBzaXplIGFuZCBhbGxvdyBpdCB0byBncm93LgogICAg
IGF1dG8gbWluQXV0b1NpemUgPSBJbnRTaXplIHsgMSwgMSB9OwogICAgIHJlc2l6ZShtaW5BdXRv
U2l6ZSk7CkBAIC0zNjI1LDcgKzM2MzAsOCBAQCB2b2lkIEZyYW1lVmlldzo6cGVyZm9ybVNpemVU
b0NvbnRlbnRBdXRvU2l6ZSgpCiAgICAgICAgIHJlc2l6ZShuZXdTaXplLndpZHRoKCksIGkgPyBu
ZXdTaXplLmhlaWdodCgpIDogbWluQXV0b1NpemUuaGVpZ2h0KCkpOwogICAgICAgICAvLyBQcm90
ZWN0IHRoZSBjb250ZW50IGZyb20gZXZlcmdyb3dpbmcgbGF5b3V0LgogICAgICAgICBhdXRvIHBy
ZWZlcnJlZFZpZXdwb3J0V2lkdGggPSBzdGQ6Om1pbihuZXdTaXplLndpZHRoKCksIG1fYXV0b1Np
emVDb25zdHJhaW50LndpZHRoKCkpOwotICAgICAgICBvdmVycmlkZVZpZXdwb3J0V2lkdGhGb3JD
U1NWaWV3cG9ydFVuaXRzKHByZWZlcnJlZFZpZXdwb3J0V2lkdGgpOworICAgICAgICBvdmVycmlk
ZVdpZHRoRm9yQ1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMocHJlZmVycmVkVmlld3BvcnRXaWR0aCk7
CisgICAgICAgIG92ZXJyaWRlV2lkdGhGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMocHJlZmVycmVk
Vmlld3BvcnRXaWR0aCk7CiAgICAgICAgIC8vIEZvcmNlIHRoZSBzY3JvbGxiYXIgc3RhdGUgdG8g
YXZvaWQgdGhlIHNjcm9sbGJhciBjb2RlIGFkZGluZyB0aGVtIGFuZCBjYXVzaW5nIHRoZW0gdG8g
YmUgbmVlZGVkLiBGb3IgZXhhbXBsZSwKICAgICAgICAgLy8gYSB2ZXJ0aWNhbCBzY3JvbGxiYXIg
bWF5IGNhdXNlIHRleHQgdG8gd3JhcCBhbmQgdGh1cyBpbmNyZWFzZSB0aGUgaGVpZ2h0ICh3aGlj
aCBpcyB0aGUgb25seSByZWFzb24gdGhlIHNjb2xsYmFyIGlzIG5lZWRlZCkuCiAgICAgICAgIHNl
dFZlcnRpY2FsU2Nyb2xsYmFyTG9jayhmYWxzZSk7CkBAIC00NzA1LDExICs0NzExLDEzIEBAIHZv
aWQgRnJhbWVWaWV3OjplbmFibGVBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNp
emUmIHZpZXdTaXplLCBBdXRvU2l6CiAgICAgc2V0TmVlZHNMYXlvdXRBZnRlclZpZXdDb25maWd1
cmF0aW9uQ2hhbmdlKCk7CiAgICAgbGF5b3V0Q29udGV4dCgpLnNjaGVkdWxlTGF5b3V0KCk7CiAg
ICAgaWYgKG1fc2hvdWxkQXV0b1NpemUpIHsKLSAgICAgICAgb3ZlcnJpZGVWaWV3cG9ydFdpZHRo
Rm9yQ1NTVmlld3BvcnRVbml0cyhtX2F1dG9TaXplQ29uc3RyYWludC53aWR0aCgpKTsKKyAgICAg
ICAgb3ZlcnJpZGVXaWR0aEZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKG1fYXV0b1NpemVDb25z
dHJhaW50LndpZHRoKCkpOworICAgICAgICBvdmVycmlkZVdpZHRoRm9yQ1NTU21hbGxWaWV3cG9y
dFVuaXRzKG1fYXV0b1NpemVDb25zdHJhaW50LndpZHRoKCkpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgY2xlYXJWaWV3cG9ydFNpemVPdmVycmlkZUZvckNTU1ZpZXdwb3J0VW5pdHMo
KTsKKyAgICBjbGVhclNpemVPdmVycmlkZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCk7Cisg
ICAgY2xlYXJTaXplT3ZlcnJpZGVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoKTsKICAgICAvLyBT
aW5jZSBhdXRvc2l6ZSBtb2RlIGZvcmNlcyB0aGUgc2Nyb2xsYmFyIG1vZGUsIGNoYW5nZSB0aGVt
IHRvIGJlaW5nIGF1dG8uCiAgICAgc2V0VmVydGljYWxTY3JvbGxiYXJMb2NrKGZhbHNlKTsKICAg
ICBzZXRIb3Jpem9udGFsU2Nyb2xsYmFyTG9jayhmYWxzZSk7CkBAIC01NTM4LDYwICs1NTQ2LDMy
IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRWaWV3RXhwb3NlZFJlY3Qoc3RkOjpvcHRpb25hbDxGbG9h
dFJlY3Q+IHZpZXdFeHBvc2VkUmVjdCkKICAgICB9CiB9CiAKLXZvaWQgRnJhbWVWaWV3OjpjbGVh
clZpZXdwb3J0U2l6ZU92ZXJyaWRlRm9yQ1NTVmlld3BvcnRVbml0cygpCi17Ci0gICAgaWYgKCFt
X292ZXJyaWRlVmlld3BvcnRTaXplKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX292ZXJyaWRl
Vmlld3BvcnRTaXplID0gc3RkOjpudWxsb3B0OwotICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGZy
YW1lKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgZG9jdW1lbnQtPnN0eWxlU2NvcGUoKS5kaWRDaGFu
Z2VTdHlsZVNoZWV0RW52aXJvbm1lbnQoKTsKLX0KLQotdm9pZCBGcmFtZVZpZXc6OnNldFZpZXdw
b3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoSW50U2l6ZSBzaXplKQotewotICAgIG92ZXJyaWRl
Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyh7IHNpemUud2lkdGgoKSwgc2l6ZS5oZWln
aHQoKSB9KTsKLX0KLQotdm9pZCBGcmFtZVZpZXc6Om92ZXJyaWRlVmlld3BvcnRXaWR0aEZvckNT
U1ZpZXdwb3J0VW5pdHMoaW50IHdpZHRoKQotewotICAgIG92ZXJyaWRlVmlld3BvcnRTaXplRm9y
Q1NTVmlld3BvcnRVbml0cyh7IHdpZHRoLCBtX292ZXJyaWRlVmlld3BvcnRTaXplID8gbV9vdmVy
cmlkZVZpZXdwb3J0U2l6ZS0+aGVpZ2h0IDogc3RkOjpudWxsb3B0IH0pOwotfQotCi12b2lkIEZy
YW1lVmlldzo6cmVzZXRPdmVycmlkZGVuVmlld3BvcnRXaWR0aEZvckNTU1ZpZXdwb3J0VW5pdHMo
KQotewotICAgIG92ZXJyaWRlVmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyh7IHsgfSwg
bV9vdmVycmlkZVZpZXdwb3J0U2l6ZSA/IG1fb3ZlcnJpZGVWaWV3cG9ydFNpemUtPmhlaWdodCA6
IHN0ZDo6bnVsbG9wdCB9KTsKLX0KLQotdm9pZCBGcmFtZVZpZXc6Om92ZXJyaWRlVmlld3BvcnRT
aXplRm9yQ1NTVmlld3BvcnRVbml0cyhPdmVycmlkZVZpZXdwb3J0U2l6ZSBzaXplKQotewotICAg
IGlmIChtX292ZXJyaWRlVmlld3BvcnRTaXplICYmICptX292ZXJyaWRlVmlld3BvcnRTaXplID09
IHNpemUpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fb3ZlcnJpZGVWaWV3cG9ydFNpemUgPSBz
aXplOwotCi0gICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpKQotICAg
ICAgICBkb2N1bWVudC0+c3R5bGVTY29wZSgpLmRpZENoYW5nZVN0eWxlU2hlZXRFbnZpcm9ubWVu
dCgpOwotfQotCi1JbnRTaXplIEZyYW1lVmlldzo6dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRV
bml0cygpIGNvbnN0CitJbnRTaXplIEZyYW1lVmlldzo6Y2FsY3VsYXRlU2l6ZUZvckNTU1ZpZXdw
b3J0VW5pdHNPdmVycmlkZShzdGQ6Om9wdGlvbmFsPE92ZXJyaWRlVmlld3BvcnRTaXplPiBvdmVy
cmlkZSkgY29uc3QKIHsKICAgICBPdmVycmlkZVZpZXdwb3J0U2l6ZSB2aWV3cG9ydFNpemU7CiAK
LSAgICBpZiAobV9vdmVycmlkZVZpZXdwb3J0U2l6ZSkgewotICAgICAgICB2aWV3cG9ydFNpemUg
PSAqbV9vdmVycmlkZVZpZXdwb3J0U2l6ZTsKLSAgICAgICAgLy8gYXV0by1zaXplIG92ZXJyaWRl
cyB0aGUgd2lkdGggb25seSwgc28gd2UgY2FuJ3QgYWx3YXlzIGJhaWwgb3V0IGVhcmx5IGhlcmUu
Ci0gICAgICAgIGlmICh2aWV3cG9ydFNpemUud2lkdGggJiYgdmlld3BvcnRTaXplLmhlaWdodCkK
LSAgICAgICAgICAgIHJldHVybiB7ICp2aWV3cG9ydFNpemUud2lkdGgsICp2aWV3cG9ydFNpemUu
aGVpZ2h0IH07CisgICAgaWYgKG92ZXJyaWRlKQorICAgICAgICB2aWV3cG9ydFNpemUgPSAqb3Zl
cnJpZGU7CisKKyAgICBpZiAobV9kZWZhdWx0Vmlld3BvcnRTaXplT3ZlcnJpZGUpIHsKKyAgICAg
ICAgaWYgKCF2aWV3cG9ydFNpemUud2lkdGgpCisgICAgICAgICAgICB2aWV3cG9ydFNpemUud2lk
dGggPSBtX2RlZmF1bHRWaWV3cG9ydFNpemVPdmVycmlkZS0+d2lkdGg7CisKKyAgICAgICAgaWYg
KCF2aWV3cG9ydFNpemUuaGVpZ2h0KQorICAgICAgICAgICAgdmlld3BvcnRTaXplLmhlaWdodCA9
IG1fZGVmYXVsdFZpZXdwb3J0U2l6ZU92ZXJyaWRlLT5oZWlnaHQ7CiAgICAgfQogCisgICAgLy8g
YXV0by1zaXplIG92ZXJyaWRlcyB0aGUgd2lkdGggb25seSwgc28gd2UgY2FuJ3QgYWx3YXlzIGJh
aWwgb3V0IGVhcmx5IGhlcmUuCisgICAgaWYgKHZpZXdwb3J0U2l6ZS53aWR0aCAmJiB2aWV3cG9y
dFNpemUuaGVpZ2h0KQorICAgICAgICByZXR1cm4geyAqdmlld3BvcnRTaXplLndpZHRoLCAqdmll
d3BvcnRTaXplLmhlaWdodCB9OworCiAgICAgaWYgKHVzZUZpeGVkTGF5b3V0KCkpIHsKICAgICAg
ICAgYXV0byBmaXhlZExheW91dFNpemUgPSB0aGlzLT5maXhlZExheW91dFNpemUoKTsKICAgICAg
ICAgdmlld3BvcnRTaXplLndpZHRoID0gdmlld3BvcnRTaXplLndpZHRoLnZhbHVlX29yKGZpeGVk
TGF5b3V0U2l6ZS53aWR0aCgpKTsKICAgICAgICAgdmlld3BvcnRTaXplLmhlaWdodCA9IHZpZXdw
b3J0U2l6ZS5oZWlnaHQudmFsdWVfb3IoZml4ZWRMYXlvdXRTaXplLmhlaWdodCgpKTsKICAgICAg
ICAgcmV0dXJuIHsgKnZpZXdwb3J0U2l6ZS53aWR0aCwgKnZpZXdwb3J0U2l6ZS5oZWlnaHQgfTsK
ICAgICB9Ci0gICAgCisKICAgICAvLyBGSVhNRTogdGhlIHZhbHVlIHJldHVybmVkIHNob3VsZCB0
YWtlIGludG8gYWNjb3VudCB0aGUgdmFsdWUgb2YgdGhlIG92ZXJmbG93CiAgICAgLy8gcHJvcGVy
dHkgb24gdGhlIHJvb3QgZWxlbWVudC4KICAgICBhdXRvIHZpc2libGVDb250ZW50U2l6ZUluY2x1
ZGluZ1Njcm9sbGJhcnMgPSB2aXNpYmxlQ29udGVudFJlY3RJbmNsdWRpbmdTY3JvbGxiYXJzKCku
c2l6ZSgpOwpAQCAtNTYwMCw2ICs1NTgwLDk5IEBAIEludFNpemUgRnJhbWVWaWV3Ojp2aWV3cG9y
dFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkgY29uc3QKICAgICByZXR1cm4geyAqdmlld3BvcnRT
aXplLndpZHRoLCAqdmlld3BvcnRTaXplLmhlaWdodCB9OwogfQogCit2b2lkIEZyYW1lVmlldzo6
Y2xlYXJTaXplT3ZlcnJpZGVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cygpCit7CisgICAgaWYg
KCFtX2RlZmF1bHRWaWV3cG9ydFNpemVPdmVycmlkZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9kZWZhdWx0Vmlld3BvcnRTaXplT3ZlcnJpZGUgPSBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKGF1
dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+c3R5
bGVTY29wZSgpLmRpZENoYW5nZVN0eWxlU2hlZXRFbnZpcm9ubWVudCgpOworfQorCit2b2lkIEZy
YW1lVmlldzo6c2V0U2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKEludFNpemUgc2l6ZSkK
K3sKKyAgICBvdmVycmlkZVNpemVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cyh7IHNpemUud2lk
dGgoKSwgc2l6ZS5oZWlnaHQoKSB9KTsKK30KKwordm9pZCBGcmFtZVZpZXc6Om92ZXJyaWRlV2lk
dGhGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cyhpbnQgd2lkdGgpCit7CisgICAgb3ZlcnJpZGVT
aXplRm9yQ1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMoeyB3aWR0aCwgbV9kZWZhdWx0Vmlld3BvcnRT
aXplT3ZlcnJpZGUgPyBtX2RlZmF1bHRWaWV3cG9ydFNpemVPdmVycmlkZS0+aGVpZ2h0IDogc3Rk
OjpudWxsb3B0IH0pOworfQorCit2b2lkIEZyYW1lVmlldzo6cmVzZXRPdmVycmlkZGVuV2lkdGhG
b3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cygpCit7CisgICAgb3ZlcnJpZGVTaXplRm9yQ1NTRGVm
YXVsdFZpZXdwb3J0VW5pdHMoeyB7IH0sIG1fZGVmYXVsdFZpZXdwb3J0U2l6ZU92ZXJyaWRlID8g
bV9kZWZhdWx0Vmlld3BvcnRTaXplT3ZlcnJpZGUtPmhlaWdodCA6IHN0ZDo6bnVsbG9wdCB9KTsK
K30KKwordm9pZCBGcmFtZVZpZXc6Om92ZXJyaWRlU2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVu
aXRzKE92ZXJyaWRlVmlld3BvcnRTaXplIHNpemUpCit7CisgICAgaWYgKG1fZGVmYXVsdFZpZXdw
b3J0U2l6ZU92ZXJyaWRlICYmICptX2RlZmF1bHRWaWV3cG9ydFNpemVPdmVycmlkZSA9PSBzaXpl
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2RlZmF1bHRWaWV3cG9ydFNpemVPdmVycmlkZSA9
IHNpemU7CisKKyAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCkpCisg
ICAgICAgIGRvY3VtZW50LT5zdHlsZVNjb3BlKCkuZGlkQ2hhbmdlU3R5bGVTaGVldEVudmlyb25t
ZW50KCk7Cit9CisKK0ludFNpemUgRnJhbWVWaWV3OjpzaXplRm9yQ1NTRGVmYXVsdFZpZXdwb3J0
VW5pdHMoKSBjb25zdAoreworICAgIHJldHVybiBjYWxjdWxhdGVTaXplRm9yQ1NTVmlld3BvcnRV
bml0c092ZXJyaWRlKG1fZGVmYXVsdFZpZXdwb3J0U2l6ZU92ZXJyaWRlKTsKK30KKwordm9pZCBG
cmFtZVZpZXc6OmNsZWFyU2l6ZU92ZXJyaWRlRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCkKK3sK
KyAgICBpZiAoIW1fc21hbGxWaWV3cG9ydFNpemVPdmVycmlkZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9zbWFsbFZpZXdwb3J0U2l6ZU92ZXJyaWRlID0gc3RkOjpudWxsb3B0OworCisgICAg
aWYgKGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVu
dC0+c3R5bGVTY29wZSgpLmRpZENoYW5nZVN0eWxlU2hlZXRFbnZpcm9ubWVudCgpOworfQorCit2
b2lkIEZyYW1lVmlldzo6c2V0U2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cyhJbnRTaXplIHNp
emUpCit7CisgICAgb3ZlcnJpZGVTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKHsgc2l6ZS53
aWR0aCgpLCBzaXplLmhlaWdodCgpIH0pOworfQorCit2b2lkIEZyYW1lVmlldzo6b3ZlcnJpZGVX
aWR0aEZvckNTU1NtYWxsVmlld3BvcnRVbml0cyhpbnQgd2lkdGgpCit7CisgICAgb3ZlcnJpZGVT
aXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKHsgd2lkdGgsIG1fc21hbGxWaWV3cG9ydFNpemVP
dmVycmlkZSA/IG1fc21hbGxWaWV3cG9ydFNpemVPdmVycmlkZS0+aGVpZ2h0IDogc3RkOjpudWxs
b3B0IH0pOworfQorCit2b2lkIEZyYW1lVmlldzo6cmVzZXRPdmVycmlkZGVuV2lkdGhGb3JDU1NT
bWFsbFZpZXdwb3J0VW5pdHMoKQoreworICAgIG92ZXJyaWRlU2l6ZUZvckNTU1NtYWxsVmlld3Bv
cnRVbml0cyh7IHsgfSwgbV9zbWFsbFZpZXdwb3J0U2l6ZU92ZXJyaWRlID8gbV9zbWFsbFZpZXdw
b3J0U2l6ZU92ZXJyaWRlLT5oZWlnaHQgOiBzdGQ6Om51bGxvcHQgfSk7Cit9CisKK3ZvaWQgRnJh
bWVWaWV3OjpvdmVycmlkZVNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoT3ZlcnJpZGVWaWV3
cG9ydFNpemUgc2l6ZSkKK3sKKyAgICBpZiAobV9zbWFsbFZpZXdwb3J0U2l6ZU92ZXJyaWRlID09
IHNpemUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fc21hbGxWaWV3cG9ydFNpemVPdmVycmlk
ZSA9IHNpemU7CisKKyAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCkp
CisgICAgICAgIGRvY3VtZW50LT5zdHlsZVNjb3BlKCkuZGlkQ2hhbmdlU3R5bGVTaGVldEVudmly
b25tZW50KCk7Cit9CisKK0ludFNpemUgRnJhbWVWaWV3OjpzaXplRm9yQ1NTU21hbGxWaWV3cG9y
dFVuaXRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY2FsY3VsYXRlU2l6ZUZvckNTU1ZpZXdwb3J0
VW5pdHNPdmVycmlkZShtX3NtYWxsVmlld3BvcnRTaXplT3ZlcnJpZGUpOworfQorCitJbnRTaXpl
IEZyYW1lVmlldzo6c2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIHNpemVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cygpOworfQorCitJbnRTaXplIEZy
YW1lVmlldzo6c2l6ZUZvckNTU0R5bmFtaWNWaWV3cG9ydFVuaXRzKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gdmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVkaW5nU2Nyb2xsYmFycygpLnNpemUoKTsKK30K
KwogYm9vbCBGcmFtZVZpZXc6OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBj
b25zdAogewogICAgIHJldHVybiByZW5kZXJWaWV3KCkgJiYgcmVuZGVyVmlldygpLT5zaG91bGRQ
bGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRl
eCBhYzkxMjY1OWExNjRiMjQ5ODM5MmNhYWQ5N2M1YTVkZjAyYWJiZGUxLi4zMTUwMWJhZjJlYzM2
OGFlYzU4MTZlY2YxY2JkNGUxMDkyZTVlZTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAg
LTIyOCw5ICsyMjgsMTYgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGp1
c3RWaWV3U2l6ZSgpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWV3cG9ydFNpemVG
b3JDU1NWaWV3cG9ydFVuaXRzKEludFNpemUpOwotICAgIHZvaWQgY2xlYXJWaWV3cG9ydFNpemVP
dmVycmlkZUZvckNTU1ZpZXdwb3J0VW5pdHMoKTsKLSAgICBJbnRTaXplIHZpZXdwb3J0U2l6ZUZv
ckNTU1ZpZXdwb3J0VW5pdHMoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNp
emVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cyhJbnRTaXplKTsKKyAgICB2b2lkIGNsZWFyU2l6
ZU92ZXJyaWRlRm9yQ1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMoKTsKKyAgICBJbnRTaXplIHNpemVG
b3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cygpIGNvbnN0OworCisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKEludFNpemUpOworICAgIHZvaWQg
Y2xlYXJTaXplT3ZlcnJpZGVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoKTsKKyAgICBJbnRTaXpl
IHNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoKSBjb25zdDsKKworICAgIEludFNpemUgc2l6
ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpIGNvbnN0OworICAgIEludFNpemUgc2l6ZUZvckNT
U0R5bmFtaWNWaWV3cG9ydFVuaXRzKCkgY29uc3Q7CiAKICAgICBJbnRSZWN0IHdpbmRvd0NsaXBS
ZWN0KCkgY29uc3QgZmluYWw7CiAgICAgV0VCQ09SRV9FWFBPUlQgSW50UmVjdCB3aW5kb3dDbGlw
UmVjdEZvckZyYW1lT3duZXIoY29uc3QgSFRNTEZyYW1lT3duZXJFbGVtZW50KiwgYm9vbCBjbGlw
VG9MYXllckNvbnRlbnRzKSBjb25zdDsKQEAgLTg1NCw5ICs4NjEsMTUgQEAgcHJpdmF0ZToKIAog
ICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgT3ZlcnJpZGVWaWV3cG9ydFNpemUmIHJocykg
Y29uc3QgeyByZXR1cm4gcmhzLndpZHRoID09IHdpZHRoICYmIHJocy5oZWlnaHQgPT0gaGVpZ2h0
OyB9CiAgICAgfTsKLSAgICB2b2lkIG92ZXJyaWRlVmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRV
bml0cyhPdmVycmlkZVZpZXdwb3J0U2l6ZSk7Ci0gICAgdm9pZCBvdmVycmlkZVZpZXdwb3J0V2lk
dGhGb3JDU1NWaWV3cG9ydFVuaXRzKGludCk7Ci0gICAgdm9pZCByZXNldE92ZXJyaWRkZW5WaWV3
cG9ydFdpZHRoRm9yQ1NTVmlld3BvcnRVbml0cygpOworICAgIEludFNpemUgY2FsY3VsYXRlU2l6
ZUZvckNTU1ZpZXdwb3J0VW5pdHNPdmVycmlkZShzdGQ6Om9wdGlvbmFsPE92ZXJyaWRlVmlld3Bv
cnRTaXplPikgY29uc3Q7CisKKyAgICB2b2lkIG92ZXJyaWRlU2l6ZUZvckNTU0RlZmF1bHRWaWV3
cG9ydFVuaXRzKE92ZXJyaWRlVmlld3BvcnRTaXplKTsKKyAgICB2b2lkIG92ZXJyaWRlV2lkdGhG
b3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cyhpbnQpOworICAgIHZvaWQgcmVzZXRPdmVycmlkZGVu
V2lkdGhGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cygpOworCisgICAgdm9pZCBvdmVycmlkZVNp
emVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoT3ZlcnJpZGVWaWV3cG9ydFNpemUpOworICAgIHZv
aWQgb3ZlcnJpZGVXaWR0aEZvckNTU1NtYWxsVmlld3BvcnRVbml0cyhpbnQpOworICAgIHZvaWQg
cmVzZXRPdmVycmlkZGVuV2lkdGhGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoKTsKIAogICAgIHZv
aWQgZGlkRmluaXNoUHJvaGliaXRpbmdTY3JvbGxpbmdXaGVuQ2hhbmdpbmdDb250ZW50U2l6ZSgp
IGZpbmFsOwogCkBAIC05MjUsNyArOTM4LDggQEAgcHJpdmF0ZToKICAgICBzdGQ6Om9wdGlvbmFs
PEludFNpemU+IG1fY3VzdG9tU2l6ZUZvclJlc2l6ZUV2ZW50OwogI2VuZGlmCiAKLSAgICBzdGQ6
Om9wdGlvbmFsPE92ZXJyaWRlVmlld3BvcnRTaXplPiBtX292ZXJyaWRlVmlld3BvcnRTaXplOwor
ICAgIHN0ZDo6b3B0aW9uYWw8T3ZlcnJpZGVWaWV3cG9ydFNpemU+IG1fZGVmYXVsdFZpZXdwb3J0
U2l6ZU92ZXJyaWRlOworICAgIHN0ZDo6b3B0aW9uYWw8T3ZlcnJpZGVWaWV3cG9ydFNpemU+IG1f
c21hbGxWaWV3cG9ydFNpemVPdmVycmlkZTsKIAogICAgIC8vIFRoZSB2aWV3IHNpemUgd2hlbiBh
dXRvc2l6aW5nLgogICAgIEludFNpemUgbV9hdXRvU2l6ZUNvbnN0cmFpbnQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5oCmluZGV4IGQ1NWQxZGNhNTI5YjA2
NjkwYmM2Zjc2Y2U4MTUwNjg5ZTczMmMwMDYuLmUyZGVmODU3MTZlMzNlOTFhMzYzMWJlMWNiMmZj
MmJhZGI1MzFlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Zsb2F0U2l6ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0
U2l6ZS5oCkBAIC03Miw2ICs3Miw5IEBAIHB1YmxpYzoKICAgICBmbG9hdCB3aWR0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fd2lkdGg7IH0KICAgICBmbG9hdCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBt
X2hlaWdodDsgfQogCisgICAgZmxvYXQgbWluRGltZW5zaW9uKCkgY29uc3QgeyByZXR1cm4gc3Rk
OjptaW4obV93aWR0aCwgbV9oZWlnaHQpOyB9CisgICAgZmxvYXQgbWF4RGltZW5zaW9uKCkgY29u
c3QgeyByZXR1cm4gc3RkOjptYXgobV93aWR0aCwgbV9oZWlnaHQpOyB9CisKICAgICBib29sIGhh
c0ludHJpbnNpY1dpZHRoID0gZmFsc2U7CiAgICAgYm9vbCBoYXNJbnRyaW5zaWNIZWlnaHQgPSBm
YWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50
U2l6ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50U2l6ZS5oCmluZGV4
IDViMjRhMGYxMTJiNDJmNDM2ODFmN2ZmYWEyYjYyZjQwZjA2YTgwZjUuLjA5NWYwMzE0NGRmOTcy
NjdmMTAyNTVlMjU2NzRlZDk2NjJkZGZmZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ludFNpemUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbnRTaXplLmgKQEAgLTc0LDYgKzc0LDkgQEAgcHVibGljOgogICAgIGludCB3aWR0
aCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0KICAgICBpbnQgaGVpZ2h0KCkgY29uc3QgeyBy
ZXR1cm4gbV9oZWlnaHQ7IH0KIAorICAgIGZsb2F0IG1pbkRpbWVuc2lvbigpIGNvbnN0IHsgcmV0
dXJuIHN0ZDo6bWluKG1fd2lkdGgsIG1faGVpZ2h0KTsgfQorICAgIGZsb2F0IG1heERpbWVuc2lv
bigpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bWF4KG1fd2lkdGgsIG1faGVpZ2h0KTsgfQorCiAgICAg
dm9pZCBzZXRXaWR0aChpbnQgd2lkdGgpIHsgbV93aWR0aCA9IHdpZHRoOyB9CiAgICAgdm9pZCBz
ZXRIZWlnaHQoaW50IGhlaWdodCkgeyBtX2hlaWdodCA9IGhlaWdodDsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggOGEwNGVkOTAwZTY0YmRiZmJiZmZjZWI3
MjM4MDMwNmYwZGE3OWNlMC4uN2VkM2RjY2U2MjUwMzAwODQ2ODhlMjdjNmUwYWM5ZThjNWQ4YzIw
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtNjk3LDkgKzY5
NywyNCBAQCBmbG9hdCBSZW5kZXJWaWV3Ojp6b29tRmFjdG9yKCkgY29uc3QKICAgICByZXR1cm4g
ZnJhbWVWaWV3KCkuZnJhbWUoKS5wYWdlWm9vbUZhY3RvcigpOwogfQogCi1JbnRTaXplIFJlbmRl
clZpZXc6OnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKSBjb25zdAorSW50U2l6ZSBS
ZW5kZXJWaWV3OjpzaXplRm9yQ1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMoKSBjb25zdAogewotICAg
IHJldHVybiBmcmFtZVZpZXcoKS52aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCk7Cisg
ICAgcmV0dXJuIGZyYW1lVmlldygpLnNpemVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cygpOwor
fQorCitJbnRTaXplIFJlbmRlclZpZXc6OnNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoKSBj
b25zdAoreworICAgIHJldHVybiBmcmFtZVZpZXcoKS5zaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVu
aXRzKCk7Cit9CisKK0ludFNpemUgUmVuZGVyVmlldzo6c2l6ZUZvckNTU0xhcmdlVmlld3BvcnRV
bml0cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZyYW1lVmlldygpLnNpemVGb3JDU1NMYXJnZVZp
ZXdwb3J0VW5pdHMoKTsKK30KKworSW50U2l6ZSBSZW5kZXJWaWV3OjpzaXplRm9yQ1NTRHluYW1p
Y1ZpZXdwb3J0VW5pdHMoKSBjb25zdAoreworICAgIHJldHVybiBmcmFtZVZpZXcoKS5zaXplRm9y
Q1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMoKTsKIH0KIAogTm9kZSogUmVuZGVyVmlldzo6bm9kZUZv
ckhpdFRlc3QoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKaW5kZXgg
NDhlMzY3OTMwMzU2ZTM0OGE5ZmJiMjFkM2Q1NzAyNGUxNTM0MzVhNi4uZWQzNGYyMWRiMWJmYjUx
ZmM5N2MzNzg0OWE4OGIwYTVhMTdjMTI4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5oCkBAIC0xNDMsNyArMTQzLDEwIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgc2hvdWxkUGFp
bnRCYXNlQmFja2dyb3VuZCgpIGNvbnN0OwogCi0gICAgSW50U2l6ZSB2aWV3cG9ydFNpemVGb3JD
U1NWaWV3cG9ydFVuaXRzKCkgY29uc3Q7CisgICAgSW50U2l6ZSBzaXplRm9yQ1NTRGVmYXVsdFZp
ZXdwb3J0VW5pdHMoKSBjb25zdDsKKyAgICBJbnRTaXplIHNpemVGb3JDU1NTbWFsbFZpZXdwb3J0
VW5pdHMoKSBjb25zdDsKKyAgICBJbnRTaXplIHNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMo
KSBjb25zdDsKKyAgICBJbnRTaXplIHNpemVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cygpIGNv
bnN0OwogCiAgICAgYm9vbCBoYXNRdW90ZXNOZWVkaW5nVXBkYXRlKCkgY29uc3QgeyByZXR1cm4g
bV9oYXNRdW90ZXNOZWVkaW5nVXBkYXRlOyB9CiAgICAgdm9pZCBzZXRIYXNRdW90ZXNOZWVkaW5n
VXBkYXRlKGJvb2wgYikgeyBtX2hhc1F1b3Rlc05lZWRpbmdVcGRhdGUgPSBiOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTQ29tcGxl
dGlvbnMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NT
Q29tcGxldGlvbnMuanMKaW5kZXggMjNjZTg1NTA0YjJkMDZiMDZiNjBkYTVmYzRjM2IzMmFmNDE5
OTgyMy4uYzQ2ODE1MGY3MzFkYzllYTA5MWNhYzM4YjAwNWM2ZWUxOGY2ZjEzZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU0NvbXBsZXRp
b25zLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9D
U1NDb21wbGV0aW9ucy5qcwpAQCAtMzQzLDE1ICszNDMsMjcgQEAgV0kuQ1NTQ29tcGxldGlvbnMu
Y3NzTmFtZUNvbXBsZXRpb25zID0gbnVsbDsKIFdJLkNTU0NvbXBsZXRpb25zLmxlbmd0aFVuaXRz
ID0gbmV3IFNldChbCiAgICAgImNoIiwKICAgICAiY20iLAorICAgICJkdmgiLAorICAgICJkdm1h
eCIsCisgICAgImR2bWluIiwKKyAgICAiZHZ3IiwKICAgICAiZW0iLAogICAgICJleCIsCiAgICAg
ImluIiwKKyAgICAibHZoIiwKKyAgICAibHZtYXgiLAorICAgICJsdm1pbiIsCisgICAgImx2dyIs
CiAgICAgIm1tIiwKICAgICAicGMiLAogICAgICJwdCIsCiAgICAgInB4IiwKICAgICAicSIsCiAg
ICAgInJlbSIsCisgICAgInN2aCIsCisgICAgInN2bWF4IiwKKyAgICAic3ZtaW4iLAorICAgICJz
dnciLAogICAgICJ2aCIsCiAgICAgInZtYXgiLAogICAgICJ2bWluIiwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKaW5kZXgg
YjkxOWRkOTc4ZmQ2YjQ1ZTIyODA5NGYxOWE3NDdlMDhlN2ZjOTQ4OS4uMmVhYWNiNmZkMDIzOTFh
MDM1YTAwZWM5ODEyYTk5ZDQ0YTkwYjZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKQEAgLTE1NSw2ICsxNTUsOCBA
QCBjbGFzcyBWaWV3R2VzdHVyZUNvbnRyb2xsZXI7CiAKICAgICBzdGQ6Om9wdGlvbmFsPENHU2l6
ZT4gX3ZpZXdMYXlvdXRTaXplT3ZlcnJpZGU7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpG
bG9hdFNpemU+IF9sYXN0U2VudFZpZXdMYXlvdXRTaXplOworICAgIHN0ZDo6b3B0aW9uYWw8Q0dT
aXplPiBfbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU7CisgICAgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpGbG9hdFNpemU+IF9sYXN0U2VudE1pbmltdW1Vbm9ic2N1cmVkU2l6ZTsKICAgICBz
dGQ6Om9wdGlvbmFsPENHU2l6ZT4gX21heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOwogICAg
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRTaXplPiBfbGFzdFNlbnRNYXhpbXVtVW5vYnNj
dXJlZFNpemU7CiAgICAgQ0dSZWN0IF9pbnB1dFZpZXdCb3VuZHNJbldpbmRvdzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmlu
ZGV4IGNiN2YzMzQzZmRlZTAyMDVhZTBjZTI2NmNmODMxNzlmMTFkYWQwNDEuLjI4YTQ5NzFjZTgw
NTNhZTRiYzk0MjVmZDVmMzJjZjgzNTViZmI3OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtNDkyLDcgKzQ5Miw4
IEBAIGZvciB0aGlzIHByb3BlcnR5LgogCiAtICh2b2lkKV9zbmFwc2hvdFJlY3Q6KENHUmVjdCly
ZWN0SW5WaWV3Q29vcmRpbmF0ZXMgaW50b0ltYWdlT2ZXaWR0aDooQ0dGbG9hdClpbWFnZVdpZHRo
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKENHSW1hZ2VSZWYpKWNvbXBsZXRpb25IYW5kbGVy
OwogCi0tICh2b2lkKV9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNp
emU6KENHU2l6ZSltaW5pbXVtTGF5b3V0U2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlk
ZTooQ0dTaXplKW1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlIFdLX0FQSV9BVkFJTEFCTEUo
aW9zKDlfMCkpOworLSAodm9pZClfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1M
YXlvdXRTaXplOihDR1NpemUpbWluaW11bUxheW91dFNpemUgbWF4aW11bVVub2JzY3VyZWRTaXpl
T3ZlcnJpZGU6KENHU2l6ZSltYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSBXS19BUElfREVQ
UkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1p
bmltdW1MYXlvdXRTaXplOm1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOm1heGltdW1Vbm9i
c2N1cmVkU2l6ZU92ZXJyaWRlOiIsIGlvcyg5XzAsIFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX292
ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTooQ0dTaXplKW1pbmlt
dW1MYXlvdXRTaXplIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOihDR1NpemUpbWluaW11
bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6KENH
U2l6ZSltYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSBXS19BUElfQVZBSUxBQkxFKGlvcyhX
S19JT1NfVEJBKSk7CiAtICh2b2lkKV9jbGVhck92ZXJyaWRlTGF5b3V0UGFyYW1ldGVycyBXS19B
UElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAtICh2b2lkKV9vdmVycmlkZVZpZXdwb3J0V2l0aEFy
Z3VtZW50czooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIE5TU3RyaW5nICo+ICopYXJndW1lbnRz
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEzLjApKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQppbmRleCA0MzBkMzMyZGYwNGMzYzg3YWE0NWIw
MGM5ZWI3M2Q3YjJlYmVhZjUyLi5iZGY0ZGE2OTYzZTg2ZGVlOWZhYWY1ZTg0YWY1MTk1NzUyYTk5
ZDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmll
d0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lP
Uy5tbQpAQCAtNzAzLDYgKzcwMyw3IEBAIC0gKHZvaWQpX3Byb2Nlc3NXaWxsU3dhcE9yRGlkRXhp
dAogICAgIF9kaWREZWZlclVwZGF0ZVZpc2libGVDb250ZW50UmVjdHNGb3JVbnN0YWJsZVNjcm9s
bFZpZXcgPSBOTzsKICAgICBfY3VycmVudGx5QWRqdXN0aW5nU2Nyb2xsVmlld0luc2V0c0Zvcktl
eWJvYXJkID0gTk87CiAgICAgX2xhc3RTZW50Vmlld0xheW91dFNpemUgPSBzdGQ6Om51bGxvcHQ7
CisgICAgX2xhc3RTZW50TWluaW11bVVub2JzY3VyZWRTaXplID0gc3RkOjpudWxsb3B0OwogICAg
IF9sYXN0U2VudE1heGltdW1Vbm9ic2N1cmVkU2l6ZSA9IHN0ZDo6bnVsbG9wdDsKICAgICBfbGFz
dFNlbnREZXZpY2VPcmllbnRhdGlvbiA9IHN0ZDo6bnVsbG9wdDsKIApAQCAtMTkwNCw2ICsxOTA1
LDE1IEBAIC0gKHZvaWQpX2Rpc3BhdGNoU2V0Vmlld0xheW91dFNpemU6KFdlYkNvcmU6OkZsb2F0
U2l6ZSl2aWV3TGF5b3V0U2l6ZQogICAgIF9sYXN0U2VudFZpZXdMYXlvdXRTaXplID0gdmlld0xh
eW91dFNpemU7CiB9CiAKKy0gKHZvaWQpX2Rpc3BhdGNoU2V0TWluaW11bVVub2JzY3VyZWRTaXpl
OihXZWJDb3JlOjpGbG9hdFNpemUpbWluaW11bVVub2JzY3VyZWRTaXplCit7CisgICAgaWYgKF9s
YXN0U2VudE1pbmltdW1Vbm9ic2N1cmVkU2l6ZSAmJiBDR1NpemVFcXVhbFRvU2l6ZShfbGFzdFNl
bnRNaW5pbXVtVW5vYnNjdXJlZFNpemUudmFsdWUoKSwgbWluaW11bVVub2JzY3VyZWRTaXplKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgX3BhZ2UtPnNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZSht
aW5pbXVtVW5vYnNjdXJlZFNpemUpOworICAgIF9sYXN0U2VudE1pbmltdW1Vbm9ic2N1cmVkU2l6
ZSA9IG1pbmltdW1Vbm9ic2N1cmVkU2l6ZTsKK30KKwogLSAodm9pZClfZGlzcGF0Y2hTZXRNYXhp
bXVtVW5vYnNjdXJlZFNpemU6KFdlYkNvcmU6OkZsb2F0U2l6ZSltYXhpbXVtVW5vYnNjdXJlZFNp
emUKIHsKICAgICBpZiAoX2xhc3RTZW50TWF4aW11bVVub2JzY3VyZWRTaXplICYmIENHU2l6ZUVx
dWFsVG9TaXplKF9sYXN0U2VudE1heGltdW1Vbm9ic2N1cmVkU2l6ZS52YWx1ZSgpLCBtYXhpbXVt
VW5vYnNjdXJlZFNpemUpKQpAQCAtMTkzOSw2ICsxOTQ5LDggQEAgLSAodm9pZClfZnJhbWVPckJv
dW5kc0NoYW5nZWQKICAgICBpZiAoX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgPT0gV2ViS2l0
OjpEeW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNpemluZykgewogICAgICAgICBpZiAo
IV92aWV3TGF5b3V0U2l6ZU92ZXJyaWRlKQogICAgICAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0
Vmlld0xheW91dFNpemU6W3NlbGYgYWN0aXZlVmlld0xheW91dFNpemU6c2VsZi5ib3VuZHNdXTsK
KyAgICAgICAgaWYgKCFfbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUpCisgICAgICAgICAg
ICBbc2VsZiBfZGlzcGF0Y2hTZXRNaW5pbXVtVW5vYnNjdXJlZFNpemU6V2ViQ29yZTo6RmxvYXRT
aXplKGJvdW5kcy5zaXplKV07CiAgICAgICAgIGlmICghX21heGltdW1Vbm9ic2N1cmVkU2l6ZU92
ZXJyaWRlKQogICAgICAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0TWF4aW11bVVub2JzY3VyZWRT
aXplOldlYkNvcmU6OkZsb2F0U2l6ZShib3VuZHMuc2l6ZSldOwogCkBAIC0yMjU5LDYgKzIyNzEs
MTEgQEAgLSAodm9pZClfZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWUKICAgICAg
ICAgX2dlc3R1cmVDb250cm9sbGVyLT5kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFt
ZSgpOwogfQogCitzdGF0aWMgV2ViQ29yZTo6RmxvYXRTaXplIGFjdGl2ZU1pbmltdW1Vbm9ic2N1
cmVkU2l6ZShXS1dlYlZpZXcgKndlYlZpZXcsIGNvbnN0IENHUmVjdCYgYm91bmRzKQoreworICAg
IHJldHVybiBXZWJDb3JlOjpGbG9hdFNpemUod2ViVmlldy0+X21pbmltdW1Vbm9ic2N1cmVkU2l6
ZU92ZXJyaWRlLnZhbHVlX29yKGJvdW5kcy5zaXplKSk7Cit9CisKIHN0YXRpYyBXZWJDb3JlOjpG
bG9hdFNpemUgYWN0aXZlTWF4aW11bVVub2JzY3VyZWRTaXplKFdLV2ViVmlldyAqd2ViVmlldywg
Y29uc3QgQ0dSZWN0JiBib3VuZHMpCiB7CiAgICAgcmV0dXJuIFdlYkNvcmU6OkZsb2F0U2l6ZSh3
ZWJWaWV3LT5fbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUudmFsdWVfb3IoYm91bmRzLnNp
emUpKTsKQEAgLTIzNDgsMTIgKzIzNjUsMTYgQEAgLSAodm9pZClfZGlkQ29tcGxldGVBbmltYXRl
ZFJlc2l6ZQogCiAgICAgQ0dSZWN0IG5ld0JvdW5kcyA9IHNlbGYuYm91bmRzOwogICAgIGF1dG8g
bmV3Vmlld0xheW91dFNpemUgPSBbc2VsZiBhY3RpdmVWaWV3TGF5b3V0U2l6ZTpuZXdCb3VuZHNd
OworICAgIGF1dG8gbmV3TWluaW11bVVub2JzY3VyZWRTaXplID0gYWN0aXZlTWluaW11bVVub2Jz
Y3VyZWRTaXplKHNlbGYsIG5ld0JvdW5kcyk7CiAgICAgYXV0byBuZXdNYXhpbXVtVW5vYnNjdXJl
ZFNpemUgPSBhY3RpdmVNYXhpbXVtVW5vYnNjdXJlZFNpemUoc2VsZiwgbmV3Qm91bmRzKTsKICAg
ICBpbnQzMl90IG5ld09yaWVudGF0aW9uID0gYWN0aXZlT3JpZW50YXRpb24oc2VsZik7CiAKICAg
ICBpZiAoIV9sYXN0U2VudFZpZXdMYXlvdXRTaXplIHx8IG5ld1ZpZXdMYXlvdXRTaXplICE9IF9s
YXN0U2VudFZpZXdMYXlvdXRTaXplLnZhbHVlKCkpCiAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNl
dFZpZXdMYXlvdXRTaXplOm5ld1ZpZXdMYXlvdXRTaXplXTsKIAorICAgIGlmICghX2xhc3RTZW50
TWluaW11bVVub2JzY3VyZWRTaXplIHx8IG5ld01pbmltdW1Vbm9ic2N1cmVkU2l6ZSAhPSBfbGFz
dFNlbnRNaW5pbXVtVW5vYnNjdXJlZFNpemUudmFsdWUoKSkKKyAgICAgICAgW3NlbGYgX2Rpc3Bh
dGNoU2V0TWluaW11bVVub2JzY3VyZWRTaXplOldlYkNvcmU6OkZsb2F0U2l6ZShuZXdNaW5pbXVt
VW5vYnNjdXJlZFNpemUpXTsKKwogICAgIGlmICghX2xhc3RTZW50TWF4aW11bVVub2JzY3VyZWRT
aXplIHx8IG5ld01heGltdW1Vbm9ic2N1cmVkU2l6ZSAhPSBfbGFzdFNlbnRNYXhpbXVtVW5vYnNj
dXJlZFNpemUudmFsdWUoKSkKICAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0TWF4aW11bVVub2Jz
Y3VyZWRTaXplOldlYkNvcmU6OkZsb2F0U2l6ZShuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUpXTsK
IApAQCAtMjcwOCw2ICsyNzI5LDIxIEBAIC0gKHZvaWQpX3NldFZpZXdMYXlvdXRTaXplT3ZlcnJp
ZGU6KENHU2l6ZSl2aWV3TGF5b3V0U2l6ZU92ZXJyaWRlCiAgICAgICAgIFtzZWxmIF9kaXNwYXRj
aFNldFZpZXdMYXlvdXRTaXplOldlYkNvcmU6OkZsb2F0U2l6ZSh2aWV3TGF5b3V0U2l6ZU92ZXJy
aWRlKV07CiB9CiAKKy0gKENHU2l6ZSlfbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUKK3sK
KyAgICBBU1NFUlQoX21pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlKTsKKyAgICByZXR1cm4g
X21pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlLnZhbHVlX29yKENHU2l6ZVplcm8pOworfQor
CistICh2b2lkKV9zZXRNaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTooQ0dTaXplKXNpemUK
K3sKKyAgICBBU1NFUlQoc2l6ZS53aWR0aCA8PSBzZWxmLmJvdW5kcy5zaXplLndpZHRoICYmIHNp
emUuaGVpZ2h0IDw9IHNlbGYuYm91bmRzLnNpemUuaGVpZ2h0KTsKKyAgICBfbWluaW11bVVub2Jz
Y3VyZWRTaXplT3ZlcnJpZGUgPSBzaXplOworCisgICAgaWYgKF9keW5hbWljVmlld3BvcnRVcGRh
dGVNb2RlID09IFdlYktpdDo6RHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZTo6Tm90UmVzaXppbmcp
CisgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZTpXZWJDb3Jl
OjpGbG9hdFNpemUoc2l6ZSldOworfQorCiAvLyBEZXByZWNhdGVkIFNQSQogLSAoQ0dTaXplKV9t
YXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZQogewpAQCAtMzAzMiw2ICszMDY4LDcgQEAgLSAo
dm9pZClfYmVnaW5BbmltYXRlZFJlc2l6ZVdpdGhVcGRhdGVzOih2b2lkICheKSh2b2lkKSl1cGRh
dGVCbG9jawogICAgICAgICBvbGRPYnNjdXJlZEluc2V0cyA9IF9vYnNjdXJlZEluc2V0czsKICAg
ICB9CiAgICAgYXV0byBvbGRWaWV3TGF5b3V0U2l6ZSA9IFtzZWxmIGFjdGl2ZVZpZXdMYXlvdXRT
aXplOm9sZEJvdW5kc107CisgICAgYXV0byBvbGRNaW5pbXVtVW5vYnNjdXJlZFNpemUgPSBhY3Rp
dmVNaW5pbXVtVW5vYnNjdXJlZFNpemUoc2VsZiwgb2xkQm91bmRzKTsKICAgICBhdXRvIG9sZE1h
eGltdW1Vbm9ic2N1cmVkU2l6ZSA9IGFjdGl2ZU1heGltdW1Vbm9ic2N1cmVkU2l6ZShzZWxmLCBv
bGRCb3VuZHMpOwogCiAgICAgdXBkYXRlQmxvY2soKTsKQEAgLTMwMzksNiArMzA3Niw3IEBAIC0g
KHZvaWQpX2JlZ2luQW5pbWF0ZWRSZXNpemVXaXRoVXBkYXRlczoodm9pZCAoXikodm9pZCkpdXBk
YXRlQmxvY2sKICAgICBDR1JlY3QgbmV3Qm91bmRzID0gc2VsZi5ib3VuZHM7CiAgICAgYXV0byBu
ZXdNaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGggPSBbc2VsZiBfbWluaW11bUVmZmVjdGl2ZURl
dmljZVdpZHRoXTsKICAgICBhdXRvIG5ld1ZpZXdMYXlvdXRTaXplID0gW3NlbGYgYWN0aXZlVmll
d0xheW91dFNpemU6bmV3Qm91bmRzXTsKKyAgICBhdXRvIG5ld01pbmltdW1Vbm9ic2N1cmVkU2l6
ZSA9IGFjdGl2ZU1pbmltdW1Vbm9ic2N1cmVkU2l6ZShzZWxmLCBuZXdCb3VuZHMpOwogICAgIGF1
dG8gbmV3TWF4aW11bVVub2JzY3VyZWRTaXplID0gYWN0aXZlTWF4aW11bVVub2JzY3VyZWRTaXpl
KHNlbGYsIG5ld0JvdW5kcyk7CiAgICAgaW50MzJfdCBuZXdPcmllbnRhdGlvbiA9IGFjdGl2ZU9y
aWVudGF0aW9uKHNlbGYpOwogICAgIFVJRWRnZUluc2V0cyBuZXdPYnNjdXJlZEluc2V0cyA9IF9v
YnNjdXJlZEluc2V0czsKQEAgLTMwNjAsNiArMzA5OCw4IEBAIC0gKHZvaWQpX2JlZ2luQW5pbWF0
ZWRSZXNpemVXaXRoVXBkYXRlczoodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sKICAgICAgICAg
W3NlbGYgX2ZyYW1lT3JCb3VuZHNDaGFuZ2VkXTsKICAgICAgICAgaWYgKF92aWV3TGF5b3V0U2l6
ZU92ZXJyaWRlKQogICAgICAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0Vmlld0xheW91dFNpemU6
bmV3Vmlld0xheW91dFNpemVdOworICAgICAgICBpZiAoX21pbmltdW1Vbm9ic2N1cmVkU2l6ZU92
ZXJyaWRlKQorICAgICAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0TWluaW11bVVub2JzY3VyZWRT
aXplOldlYkNvcmU6OkZsb2F0U2l6ZShuZXdNaW5pbXVtVW5vYnNjdXJlZFNpemUpXTsKICAgICAg
ICAgaWYgKF9tYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSkKICAgICAgICAgICAgIFtzZWxm
IF9kaXNwYXRjaFNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUobmV3
TWF4aW11bVVub2JzY3VyZWRTaXplKV07CiAgICAgICAgIGlmIChfb3ZlcnJpZGVzSW50ZXJmYWNl
T3JpZW50YXRpb24pCkBAIC0zMDcwLDYgKzMxMTAsNyBAQCAtICh2b2lkKV9iZWdpbkFuaW1hdGVk
UmVzaXplV2l0aFVwZGF0ZXM6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrCiAKICAgICBpZiAo
Q0dSZWN0RXF1YWxUb1JlY3Qob2xkQm91bmRzLCBuZXdCb3VuZHMpCiAgICAgICAgICYmIG9sZFZp
ZXdMYXlvdXRTaXplID09IG5ld1ZpZXdMYXlvdXRTaXplCisgICAgICAgICYmIG9sZE1pbmltdW1V
bm9ic2N1cmVkU2l6ZSA9PSBuZXdNaW5pbXVtVW5vYnNjdXJlZFNpemUKICAgICAgICAgJiYgb2xk
TWF4aW11bVVub2JzY3VyZWRTaXplID09IG5ld01heGltdW1Vbm9ic2N1cmVkU2l6ZQogICAgICAg
ICAmJiBvbGRPcmllbnRhdGlvbiA9PSBuZXdPcmllbnRhdGlvbgogICAgICAgICAmJiBvbGRNaW5p
bXVtRWZmZWN0aXZlRGV2aWNlV2lkdGggPT0gbmV3TWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRo
CkBAIC0zMTM3LDEwICszMTc4LDExIEBAIC0gKHZvaWQpX2JlZ2luQW5pbWF0ZWRSZXNpemVXaXRo
VXBkYXRlczoodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sKICAgICBXZWJDb3JlOjpGbG9hdEJv
eEV4dGVudCB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHNFeHRlbnQodW5vYnNjdXJlZFNhZmVBcmVh
SW5zZXRzLnRvcCwgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLnJpZ2h0LCB1bm9ic2N1cmVkU2Fm
ZUFyZWFJbnNldHMuYm90dG9tLCB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMubGVmdCk7CiAKICAg
ICBfbGFzdFNlbnRWaWV3TGF5b3V0U2l6ZSA9IG5ld1ZpZXdMYXlvdXRTaXplOworICAgIF9sYXN0
U2VudE1pbmltdW1Vbm9ic2N1cmVkU2l6ZSA9IG5ld01pbmltdW1Vbm9ic2N1cmVkU2l6ZTsKICAg
ICBfbGFzdFNlbnRNYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBuZXdNYXhpbXVtVW5vYnNjdXJlZFNp
emU7CiAgICAgX2xhc3RTZW50RGV2aWNlT3JpZW50YXRpb24gPSBuZXdPcmllbnRhdGlvbjsKIAot
ICAgIF9wYWdlLT5keW5hbWljVmlld3BvcnRTaXplVXBkYXRlKG5ld1ZpZXdMYXlvdXRTaXplLCBu
ZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUsIHZpc2libGVSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMs
IHVub2JzY3VyZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMsIGZ1dHVyZVVub2JzY3VyZWRSZWN0
SW5TZWxmQ29vcmRpbmF0ZXMsIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0c0V4dGVudCwgdGFyZ2V0
U2NhbGUsIG5ld09yaWVudGF0aW9uLCBuZXdNaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsICsr
X2N1cnJlbnREeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpOworICAgIF9wYWdlLT5keW5hbWlj
Vmlld3BvcnRTaXplVXBkYXRlKG5ld1ZpZXdMYXlvdXRTaXplLCBuZXdNaW5pbXVtVW5vYnNjdXJl
ZFNpemUsIG5ld01heGltdW1Vbm9ic2N1cmVkU2l6ZSwgdmlzaWJsZVJlY3RJbkNvbnRlbnRDb29y
ZGluYXRlcywgdW5vYnNjdXJlZFJlY3RJbkNvbnRlbnRDb29yZGluYXRlcywgZnV0dXJlVW5vYnNj
dXJlZFJlY3RJblNlbGZDb29yZGluYXRlcywgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzRXh0ZW50
LCB0YXJnZXRTY2FsZSwgbmV3T3JpZW50YXRpb24sIG5ld01pbmltdW1FZmZlY3RpdmVEZXZpY2VX
aWR0aCwgKytfY3VycmVudER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCk7CiAgICAgaWYgKFdl
YktpdDo6RHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEgPSBfcGFnZS0+ZHJhd2luZ0FyZWEo
KSkKICAgICAgICAgZHJhd2luZ0FyZWEtPnNldFNpemUoV2ViQ29yZTo6SW50U2l6ZShuZXdCb3Vu
ZHMuc2l6ZSkpOwogCkBAIC0zMjU2LDEyICszMjk4LDIxIEBAIC0gKHZvaWQpX3NuYXBzaG90UmVj
dDooQ0dSZWN0KXJlY3RJblZpZXdDb29yZGluYXRlcyBpbnRvSW1hZ2VPZldpZHRoOihDR0Zsb2F0
KWltCiAKIC0gKHZvaWQpX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0
U2l6ZTooQ0dTaXplKW1pbmltdW1MYXlvdXRTaXplIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJy
aWRlOihDR1NpemUpbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUKIHsKLSAgICBMT0dfV0lU
SF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwgIi1bV0tXZWJWaWV3ICIgPDwgX3BhZ2Ut
PmlkZW50aWZpZXIoKSA8PCAiIF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxh
eW91dFNpemU6IiA8PCBXZWJDb3JlOjpGbG9hdFNpemUobWluaW11bUxheW91dFNpemUpIDw8ICIg
bWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6IiA8PCBXZWJDb3JlOjpGbG9hdFNpemUobWF4
aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUpIDw8ICJdIik7CisgICAgW3NlbGYgX292ZXJyaWRl
TGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTptaW5pbXVtTGF5b3V0U2l6ZSBt
aW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVaZXJvIG1heGltdW1Vbm9ic2N1cmVk
U2l6ZU92ZXJyaWRlOm1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlXTsKK30KKworLSAodm9p
ZClfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOihDR1NpemUp
bWluaW11bUxheW91dFNpemUgbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6KENHU2l6ZSlt
aW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlk
ZTooQ0dTaXplKW1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlCit7CisgICAgTE9HX1dJVEhf
U1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICItW1dLV2ViVmlldyAiIDw8IF9wYWdlLT5p
ZGVudGlmaWVyKCkgPDwgIiBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlv
dXRTaXplOiIgPDwgV2ViQ29yZTo6RmxvYXRTaXplKG1pbmltdW1MYXlvdXRTaXplKSA8PCAiIG1p
bmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOiIgPDwgV2ViQ29yZTo6RmxvYXRTaXplKG1pbmlt
dW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlKSA8PCAiIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJy
aWRlOiIgPDwgV2ViQ29yZTo6RmxvYXRTaXplKG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRl
KSA8PCAiXSIpOwogCiAgICAgaWYgKG1pbmltdW1MYXlvdXRTaXplLndpZHRoIDwgMCB8fCBtaW5p
bXVtTGF5b3V0U2l6ZS5oZWlnaHQgPCAwKQogICAgICAgICBSRUxFQVNFX0xPR19GQVVMVChWaXNp
YmxlUmVjdHMsICIlczogRXJyb3I6IGF0dGVtcHRpbmcgdG8gb3ZlcnJpZGUgbGF5b3V0IHBhcmFt
ZXRlcnMgd2l0aCBuZWdhdGl2ZSB3aWR0aCBvciBoZWlnaHQ6ICVAIiwgX19QUkVUVFlfRlVOQ1RJ
T05fXywgTlNTdHJpbmdGcm9tQ0dTaXplKG1pbmltdW1MYXlvdXRTaXplKSk7CiAKKyAgICBpZiAo
Q0dTaXplRXF1YWxUb1NpemUobWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUsIENHU2l6ZVpl
cm8pICE9IENHU2l6ZUVxdWFsVG9TaXplKG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlLCBD
R1NpemVaZXJvKSkKKyAgICAgICAgUkVMRUFTRV9MT0dfRkFVTFQoVmlzaWJsZVJlY3RzLCAiJXM6
IEVycm9yOiBhdHRlbXB0aW5nIHRvIG92ZXJyaWRlIGxheW91dCBwYXJhbWV0ZXJzIHdpdGggb25s
eSBvbmUgb2YgbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUgKCVAKSBhbmQgbWF4aW11bVVu
b2JzY3VyZWRTaXplT3ZlcnJpZGUgKCVAKSIsIF9fUFJFVFRZX0ZVTkNUSU9OX18sIE5TU3RyaW5n
RnJvbUNHU2l6ZShtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSksIE5TU3RyaW5nRnJvbUNH
U2l6ZShtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSkpOworCiAgICAgW3NlbGYgX3NldFZp
ZXdMYXlvdXRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZShzdGQ6Om1heDxDR0Zsb2F0PigwLCBtaW5p
bXVtTGF5b3V0U2l6ZS53aWR0aCksIHN0ZDo6bWF4PENHRmxvYXQ+KDAsIG1pbmltdW1MYXlvdXRT
aXplLmhlaWdodCkpXTsKKyAgICBbc2VsZiBfc2V0TWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJp
ZGU6bWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGVdOwogICAgIFtzZWxmIF9zZXRNYXhpbXVt
VW5vYnNjdXJlZFNpemVPdmVycmlkZTptYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZV07CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZjYyNjMyMDRhMjJm
Zjk1ZDM0OGRhNTFkMWY2MzYyYTg5ZjYyMzVkZC4uNzM3NWI1N2U1OTM5NGQ2OTdjNmM4Y2M3MGZh
MmY2YzEwODAyMGYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTgxNyw5ICs4MTcsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xsaW5nTm9kZVNjcm9sbFdp
bGxTdGFydFNjcm9sbCgpOwogICAgIHZvaWQgc2Nyb2xsaW5nTm9kZVNjcm9sbERpZEVuZFNjcm9s
bCgpOwogCi0gICAgdm9pZCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4
aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldEV4cG9z
ZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVk
UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Ny
b2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdW5vYnNj
dXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0U2NhbGUsIGludDMyX3QgZGV2aWNlT3Jp
ZW50YXRpb24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsIER5bmFtaWNWaWV3
cG9ydFNpemVVcGRhdGVJRCk7CisgICAgdm9pZCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgbWluaW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRF
eHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNj
dXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJ
blNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHVu
b2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmlj
ZU9yaWVudGF0aW9uLCBkb3VibGUgbWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCBEeW5hbWlj
Vmlld3BvcnRTaXplVXBkYXRlSUQpOwogCiAgICAgdm9pZCBzZXRWaWV3cG9ydENvbmZpZ3VyYXRp
b25WaWV3TGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBkb3VibGUgc2NhbGVG
YWN0b3IsIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgpOworICAgIHZvaWQgc2V0
TWluaW11bVVub2JzY3VyZWRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOworICAgIFdl
YkNvcmU6OkZsb2F0U2l6ZSBtaW5pdW11VW5vYnNjdXJlZFNpemUoKSBjb25zdCB7IHJldHVybiBt
X21pbmltdW1Vbm9ic2N1cmVkU2l6ZTsgfQogICAgIHZvaWQgc2V0TWF4aW11bVVub2JzY3VyZWRT
aXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBt
YXhpbXVtVW5vYnNjdXJlZFNpemUoKSBjb25zdCB7IHJldHVybiBtX21heGltdW1Vbm9ic2N1cmVk
U2l6ZTsgfQogICAgIHZvaWQgc2V0RGV2aWNlT3JpZW50YXRpb24oaW50MzJfdCk7CkBAIC0yOTc0
LDYgKzI5NzYsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgRnVu
Y3Rpb248Ym9vbCgpPiBtX2RldmljZU9yaWVudGF0aW9uVXNlclBlcm1pc3Npb25IYW5kbGVyRm9y
VGVzdGluZzsKICAgICBib29sIG1fd2FpdGluZ0ZvclBvc3RMYXlvdXRFZGl0b3JTdGF0ZVVwZGF0
ZUFmdGVyRm9jdXNpbmdFbGVtZW50IHsgZmFsc2UgfTsKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUg
bV9taW5pbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fbWF4aW11
bVVub2JzY3VyZWRTaXplOwogICAgIGJvb2wgbV9sYXN0T2JzZXJ2ZWRTdGF0ZVdhc0JhY2tncm91
bmQgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbQppbmRleCA0YzczOGJhODI2MTgzMjY0N2UxNjU3MzM5YTg5YTAwYzBl
MDE1NzRiLi5iNDYzYzU1ZWIxMDlkNGI2ZDJhZGQxZTg4NDgxMTU4YTMwYzc1ZjU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTI2NCw3
ICsyNjQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2Nyb2xsaW5nTm9kZVNjcm9sbERpZEVuZFNj
cm9sbCgpCiAgICAgcGFnZUNsaWVudCgpLnNjcm9sbGluZ05vZGVTY3JvbGxEaWRFbmRTY3JvbGwo
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29u
c3QgRmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBt
YXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRl
bnRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJs
ZSB0YXJnZXRTY2FsZSwgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgZG91YmxlIG1pbmltdW1F
ZmZlY3RpdmVEZXZpY2VXaWR0aCwgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEIGR5bmFtaWNW
aWV3cG9ydFNpemVVcGRhdGVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkeW5hbWljVmlld3BvcnRT
aXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgbWluaW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRFeHBvc2Vk
Q29udGVudFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywg
Y29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywg
ZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCBkb3VibGUgbWlu
aW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQgZHlu
YW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKQogewogICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3Mo
KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjczLDcgKzI3Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgdmlld0xheW91dFNp
emUsIGNvCiAKICAgICBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplID0gdmll
d0xheW91dFNpemU7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEeW5h
bWljVmlld3BvcnRTaXplVXBkYXRlKHZpZXdMYXlvdXRTaXplLAotICAgICAgICBtYXhpbXVtVW5v
YnNjdXJlZFNpemUsIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgdGFyZ2V0VW5vYnNjdXJlZFJl
Y3QsCisgICAgICAgIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZSwgbWF4aW11bVVub2JzY3VyZWRTaXpl
LCB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIHRhcmdldFVub2JzY3VyZWRSZWN0LAogICAgICAg
ICB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCB1bm9ic2N1cmVk
U2FmZUFyZWFJbnNldHMsCiAgICAgICAgIHRhcmdldFNjYWxlLCBkZXZpY2VPcmllbnRhdGlvbiwg
bWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQp
LCBtX3dlYlBhZ2VJRCk7CiAKQEAgLTMwMCw2ICszMDAsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnNldEZvcmNlQWx3YXlzVXNlclNjYWxhYmxlKGJvb2wgdXNlclNjYWxhYmxlKQogICAgICAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEZvcmNlQWx3YXlzVXNlclNjYWxh
YmxlKHVzZXJTY2FsYWJsZSksIG1fd2ViUGFnZUlEKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6
OnNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUp
Cit7CisgICAgbV9taW5pbXVtVW5vYnNjdXJlZFNpemUgPSBzaXplOworCisgICAgaWYgKGhhc1J1
bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6U2V0TWluaW11bVVub2JzY3VyZWRTaXplKHNpemUpLCBtX3dlYlBhZ2VJRCk7Cit9CisKIHZv
aWQgV2ViUGFnZVByb3h5OjpzZXRNYXhpbXVtVW5vYnNjdXJlZFNpemUoY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiBzaXplKQogewogICAgIG1fbWF4aW11bVVub2JzY3VyZWRTaXplID0gc2l6ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVs
bFNjcmVlblZpZXdDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1
bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0KaW5kZXggNTAwNDBhNTJkNDZk
Zjg4NGFjNzk4YjBkYzgzNDZmZDliMWQ3Y2VmMy4uM2JhMmM0OGYyMDVmOGE1NzkzYWYyYjRmNTRk
OTA5Y2VhOTMyOTU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1
bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0K
QEAgLTQwMiw3ICs0MDIsNyBAQCAtICh2b2lkKXZpZXdXaWxsVHJhbnNpdGlvblRvU2l6ZTooQ0dT
aXplKXNpemUgd2l0aFRyYW5zaXRpb25Db29yZGluYXRvcjooaWQ8VUlWaQogICAgIFtzdXBlciB2
aWV3V2lsbFRyYW5zaXRpb25Ub1NpemU6c2l6ZSB3aXRoVHJhbnNpdGlvbkNvb3JkaW5hdG9yOmNv
b3JkaW5hdG9yXTsKICAgICBbY29vcmRpbmF0b3IgYW5pbWF0ZUFsb25nc2lkZVRyYW5zaXRpb246
XihpZDxVSVZpZXdDb250cm9sbGVyVHJhbnNpdGlvbkNvb3JkaW5hdG9yQ29udGV4dD4gY29udGV4
dCkgewogICAgICAgICBbc2VsZi5fd2ViVmlldyBfYmVnaW5BbmltYXRlZFJlc2l6ZVdpdGhVcGRh
dGVzOl57Ci0gICAgICAgICAgICBbc2VsZi5fd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0
ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOnNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJp
ZGU6c2l6ZV07CisgICAgICAgICAgICBbc2VsZi5fd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJh
bWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOnNpemUgbWluaW11bVVub2JzY3VyZWRTaXplT3Zl
cnJpZGU6c2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpzaXplXTsKICAgICAgICAg
fV07CiAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgW3NlbGYu
X3dlYlZpZXcgX3NldEludGVyZmFjZU9yaWVudGF0aW9uT3ZlcnJpZGU6W1VJQXBwIHN0YXR1c0Jh
ck9yaWVudGF0aW9uXV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
ZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
cklPUy5tbQppbmRleCBlMTlmZjVjYjI0ZjAxZTkzMTA4MmQ1NThmMzNlZGQyYWUwZDNiZjBkLi4w
YzFjZDU1ZjIyZTY0ZDIyMmNhZDBlOGMyNDBjMmZhMjJmM2QxZDA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVu
L1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0KQEAgLTU5MSw3ICs1OTEsNyBAQCAt
ICh2b2lkKWVudGVyRnVsbFNjcmVlbgogICAgICAgICAKICAgICAgICAgW3dlYlZpZXcgc2V0QXV0
b3Jlc2l6aW5nTWFzazooVUlWaWV3QXV0b3Jlc2l6aW5nRmxleGlibGVXaWR0aCB8IFVJVmlld0F1
dG9yZXNpemluZ0ZsZXhpYmxlSGVpZ2h0KV07CiAgICAgICAgIFt3ZWJWaWV3IHNldEZyYW1lOltf
d2luZG93IGJvdW5kc11dOwotICAgICAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0
ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOltfd2luZG93IGJvdW5kc10uc2l6ZSBtYXhpbXVtVW5v
YnNjdXJlZFNpemVPdmVycmlkZTpbX3dpbmRvdyBib3VuZHNdLnNpemVdOworICAgICAgICBbd2Vi
VmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOltfd2lu
ZG93IGJvdW5kc10uc2l6ZSBtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpbX3dpbmRvdyBi
b3VuZHNdLnNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6W193aW5kb3cgYm91bmRz
XS5zaXplXTsKICAgICAgICAgW193aW5kb3cgaW5zZXJ0U3Vidmlldzp3ZWJWaWV3LmdldCgpIGF0
SW5kZXg6MF07CiAgICAgICAgIFt3ZWJWaWV3IHNldE5lZWRzTGF5b3V0XTsKICAgICAgICAgW3dl
YlZpZXcgbGF5b3V0SWZOZWVkZWRdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5k
ZXggMTNkNjM4NzQ4ZTEwYjVkZjM3ZjkwN2I4M2ExZDU5M2U0YmVmYjNhZi4uMDdmNmE4NmY0ZWYy
OWJmYjAyOWYwYTk4MmEwNjFkNzgxYWFhMWFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCkBAIC0xNTU3LDcgKzE1NTcsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0
cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICB9CiAKICAgICBpZiAoYXV0byB2
aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzID0gd2ViUGFnZS0+dmlld3BvcnRTaXplRm9yQ1NT
Vmlld3BvcnRVbml0cygpKQotICAgICAgICB2aWV3LT5zZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3
cG9ydFVuaXRzKCp2aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzKTsKKyAgICAgICAgdmlldy0+
c2V0U2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCp2aWV3cG9ydFNpemVGb3JWaWV3cG9y
dFVuaXRzKTsKICAgICB2aWV3LT5zZXRQcm9oaWJpdHNTY3JvbGxpbmcoc2hvdWxkRGlzYWJsZVNj
cm9sbGluZyk7CiAgICAgdmlldy0+c2V0VmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudCghd2Vi
UGFnZS0+c2hvdWxkRXh0ZW5kSW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvbigpKTsKICNp
ZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggMjJjMzMxOGIyMjFhNmJlZGZhYjAyNGVjZTJjZjA5ZWZmNTA5MzM2MS4u
ZjVjYTRmZDY4MjZhMTgzMTZiMzBiZjBmNjVlNjM5MGExZjJmM2RjNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYyNTEsNyArNjI1MSw3IEBA
IHZvaWQgV2ViUGFnZTo6c2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyhzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkludFNpemU+CiAKICAgICBtX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdw
b3J0VW5pdHMgPSB2aWV3cG9ydFNpemU7CiAgICAgaWYgKG1fdmlld3BvcnRTaXplRm9yQ1NTVmll
d3BvcnRVbml0cykKLSAgICAgICAgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkudmlldygpLT5zZXRW
aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCptX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdw
b3J0VW5pdHMpOworICAgICAgICBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPnNldFNp
emVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cygqbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9y
dFVuaXRzKTsKIH0KIAogYm9vbCBXZWJQYWdlOjppc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZmUyOTBj
ZmM0ZGQ2ZDMyOTMxN2MxOTQxYTgyYThlYzU3YjM0YTM0Mi4uMDc4MTQ4ZDhlNzI1ODdiNWFiYTRk
YjlkNWQyMWU3YTc4ZmEzMzRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaApAQCAtMTA4MSw5ICsxMDgxLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0
ZVZpc2liaWxpdHlTdGF0ZShib29sIGlzSW5pdGlhbFN0YXRlID0gZmFsc2UpOwogCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZShjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKICAgICB2b2lkIHNldE1heGltdW1Vbm9ic2N1cmVkU2l6
ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKICAgICB2b2lkIHNldERldmljZU9yaWVudGF0
aW9uKGludDMyX3QpOwotICAgIHZvaWQgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJn
ZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5v
YnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJl
Y3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQm
IHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHNjYWxlLCBpbnQzMl90IGRl
dmljZU9yaWVudGF0aW9uLCBkb3VibGUgbWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCBEeW5h
bWljVmlld3BvcnRTaXplVXBkYXRlSUQpOworICAgIHZvaWQgZHluYW1pY1ZpZXdwb3J0U2l6ZVVw
ZGF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
dGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdl
dFVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3Vy
ZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0
ZW50JiB0YXJnZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSBzY2FsZSwgaW50MzJf
dCBkZXZpY2VPcmllbnRhdGlvbiwgZG91YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCwg
RHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKTsKICAgICBib29sIHNjYWxlV2FzU2V0QnlVSVBy
b2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3NjYWxlV2FzU2V0QnlVSVByb2Nlc3M7IH0KICAgICB2
b2lkIHdpbGxTdGFydFVzZXJUcmlnZ2VyZWRab29taW5nKCk7CiAgICAgdm9pZCBhcHBsaWNhdGlv
bldpbGxSZXNpZ25BY3RpdmUoKTsKQEAgLTIyNTUsNiArMjI1Niw3IEBAIHByaXZhdGU6CiAKICAg
ICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNpbXBsZVJhbmdlPiBtX2luaXRpYWxTZWxlY3Rpb247
CiAgICAgV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbiBtX3N0b3JlZFNlbGVjdGlvbkZvckFjY2Vz
c2liaWxpdHkgeyBXZWJDb3JlOjpWaXNpYmxlU2VsZWN0aW9uKCkgfTsKKyAgICBXZWJDb3JlOjpG
bG9hdFNpemUgbV9taW5pbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXpl
IG1fbWF4aW11bVVub2JzY3VyZWRTaXplOwogICAgIGludDMyX3QgbV9kZXZpY2VPcmllbnRhdGlv
biB7IDAgfTsKICAgICBib29sIG1fa2V5Ym9hcmRJc0F0dGFjaGVkIHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CmluZGV4IDhhZmM0ZWE1ZTNjZDAxYzJhYzNhNGEzNDFmMzE2YTlhMjExMzMyZTEuLjhkY2VhMzUy
ZWJmNGJiYzA5MzM2MTQxYTAwMzk1YjZmZDAwOWNjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNTMsMTAgKzUz
LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIE1vdXNlRXZl
bnQoV2ViS2l0OjpXZWJNb3VzZUV2ZW50IGV2ZW50LCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJL
aXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4+IHNhbmRib3hFeHRlbnNpb25zKQogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgU2V0Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91
dFNpemUoV2ViQ29yZTo6RmxvYXRTaXplIHNpemUsIGRvdWJsZSBzY2FsZUZhY3RvciwgZG91Ymxl
IG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCkKKyAgICBTZXRNaW5pbXVtVW5vYnNjdXJlZFNp
emUoV2ViQ29yZTo6RmxvYXRTaXplIHNpemUpCiAgICAgU2V0TWF4aW11bVVub2JzY3VyZWRTaXpl
KFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXplKQogICAgIFNldERldmljZU9yaWVudGF0aW9uKGludDMy
X3QgZGV2aWNlT3JpZW50YXRpb24pCiAgICAgU2V0T3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50cyhz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiBhcmd1bWVudHMpCi0gICAg
RHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShXZWJDb3JlOjpGbG9hdFNpemUgdmlld0xheW91dFNp
emUsIFdlYkNvcmU6OkZsb2F0U2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIFdlYkNvcmU6OkZs
b2F0UmVjdCB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJn
ZXRVbm9ic2N1cmVkUmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0
SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIFdlYkNvcmU6OlJlY3RFZGdlczxmbG9hdD4gdGFyZ2V0
VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2NhbGUsIGludDMyX3QgZGV2aWNlT3Jp
ZW50YXRpb24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsIHVpbnQ2NF90IGR5
bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCkKKyAgICBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRl
KFdlYkNvcmU6OkZsb2F0U2l6ZSB2aWV3TGF5b3V0U2l6ZSwgV2ViQ29yZTo6RmxvYXRTaXplIG1p
bmltdW1Vbm9ic2N1cmVkU2l6ZSwgV2ViQ29yZTo6RmxvYXRTaXplIG1heGltdW1Vbm9ic2N1cmVk
U2l6ZSwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgV2ViQ29y
ZTo6RmxvYXRSZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFy
Z2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgV2ViQ29yZTo6UmVjdEVk
Z2VzPGZsb2F0PiB0YXJnZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSBzY2FsZSwg
aW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgZG91YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VX
aWR0aCwgdWludDY0X3QgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKQogICAgIAogICAgIFNl
dFNjcmVlbklzQmVpbmdDYXB0dXJlZChib29sIGNhcHR1cmVkKQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDgwZGU4NjBi
OTA3ZTJlYWFjMTFjYzFjNDEyMTlmNDdkNDQ0ZDk0MDguLjFkYzA4ZTYyNTI4OTIyYjE1ODEzY2Q2
OThiMTE0MDAwZjAzMGRjMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0zNDM0LDYgKzM0MzQsMTIgQEAgdm9pZCBXZWJQ
YWdlOjpzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZShjb25zdCBGbG9hdFNp
emUmIHNpemUsIGRvdWIKICAgICB2aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2VkKHpvb21Ub0lu
aXRpYWxTY2FsZSk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6c2V0TWluaW11bVVub2JzY3VyZWRTaXpl
KGNvbnN0IEZsb2F0U2l6ZSYgbWluaW11bVVub2JzY3VyZWRTaXplKQoreworICAgIG1fbWluaW11
bVVub2JzY3VyZWRTaXplID0gbWluaW11bVVub2JzY3VyZWRTaXplOworICAgIHVwZGF0ZVZpZXdw
b3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKTsKK30KKwogdm9pZCBXZWJQYWdlOjpzZXRNYXhp
bXVtVW5vYnNjdXJlZFNpemUoY29uc3QgRmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUp
CiB7CiAgICAgbV9tYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBtYXhpbXVtVW5vYnNjdXJlZFNpemU7
CkBAIC0zNDUzLDcgKzM0NTksNyBAQCB2b2lkIFdlYlBhZ2U6OnNldE92ZXJyaWRlVmlld3BvcnRB
cmd1bWVudHMoY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpWaWV3cG9ydAogICAgIG1fcGFn
ZS0+c2V0T3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50cyhhcmd1bWVudHMpOwogfQogCi12b2lkIFdl
YlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiB2aWV3TGF5
b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUs
IGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdl
dFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0Qm94RXh0ZW50JiB0YXJnZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSB0YXJn
ZXRTY2FsZSwgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgZG91YmxlIG1pbmltdW1FZmZlY3Rp
dmVEZXZpY2VXaWR0aCwgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEIGR5bmFtaWNWaWV3cG9y
dFNpemVVcGRhdGVJRCkKK3ZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShj
b25zdCBGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IG1pbmltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVt
VW5vYnNjdXJlZFNpemUsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiB0YXJnZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNl
dHMsIGRvdWJsZSB0YXJnZXRTY2FsZSwgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgZG91Ymxl
IG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCwgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlE
IGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCkKIHsKICAgICBTZXRGb3JTY29wZTxib29sPiBk
eW5hbWljU2l6ZVVwZGF0ZUd1YXJkKG1faW5EeW5hbWljU2l6ZVVwZGF0ZSwgdHJ1ZSk7CiAgICAg
Ly8gRklYTUU6IHRoaXMgZG9lcyBub3QgaGFuZGxlIHRoZSBjYXNlcyB3aGVyZSB0aGUgY29udGVu
dCB3b3VsZCBjaGFuZ2UgdGhlIGNvbnRlbnQgc2l6ZSBvciBzY3JvbGwgcG9zaXRpb24gZnJvbSBK
YXZhU2NyaXB0LgpAQCAtMzUwMSw2ICszNTA3LDcgQEAgdm9pZCBXZWJQYWdlOjpkeW5hbWljVmll
d3BvcnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUsIGNvbnN0IFcK
ICAgICBpZiAoc2V0Rml4ZWRMYXlvdXRTaXplKG5ld0xheW91dFNpemUpKQogICAgICAgICByZXNl
dFRleHRBdXRvc2l6aW5nKCk7CiAKKyAgICBzZXRNaW5pbXVtVW5vYnNjdXJlZFNpemUobWluaW11
bVVub2JzY3VyZWRTaXplKTsKICAgICBzZXRNYXhpbXVtVW5vYnNjdXJlZFNpemUobWF4aW11bVVu
b2JzY3VyZWRTaXplKTsKICAgICBtX3BhZ2UtPnNldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cyh0
YXJnZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldHMpOwogCkBAIC0zODQ3LDEzICszODU0LDE5IEBA
IHZvaWQgV2ViUGFnZTo6dmlld3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZChab29tVG9Jbml0aWFs
U2NhbGUgem9vbVRvSW5pdGlhbFNjYWxlCiAKIHZvaWQgV2ViUGFnZTo6dXBkYXRlVmlld3BvcnRT
aXplRm9yQ1NTVmlld3BvcnRVbml0cygpCiB7CisgICAgRmxvYXRTaXplIHNtYWxsZXN0VW5vYnNj
dXJlZFNpemUgPSBtX21pbmltdW1Vbm9ic2N1cmVkU2l6ZTsKKyAgICBpZiAoc21hbGxlc3RVbm9i
c2N1cmVkU2l6ZS5pc0VtcHR5KCkpCisgICAgICAgIHNtYWxsZXN0VW5vYnNjdXJlZFNpemUgPSBt
X3ZpZXdwb3J0Q29uZmlndXJhdGlvbi52aWV3TGF5b3V0U2l6ZSgpOworCiAgICAgRmxvYXRTaXpl
IGxhcmdlc3RVbm9ic2N1cmVkU2l6ZSA9IG1fbWF4aW11bVVub2JzY3VyZWRTaXplOwogICAgIGlm
IChsYXJnZXN0VW5vYnNjdXJlZFNpemUuaXNFbXB0eSgpKQogICAgICAgICBsYXJnZXN0VW5vYnNj
dXJlZFNpemUgPSBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi52aWV3TGF5b3V0U2l6ZSgpOwogCiAg
ICAgRnJhbWVWaWV3JiBmcmFtZVZpZXcgPSAqbWFpbkZyYW1lVmlldygpOworICAgIHNtYWxsZXN0
VW5vYnNjdXJlZFNpemUuc2NhbGUoMSAvIG1fdmlld3BvcnRDb25maWd1cmF0aW9uLmluaXRpYWxT
Y2FsZUlnbm9yaW5nQ29udGVudFNpemUoKSk7CiAgICAgbGFyZ2VzdFVub2JzY3VyZWRTaXplLnNj
YWxlKDEgLyBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5pbml0aWFsU2NhbGVJZ25vcmluZ0NvbnRl
bnRTaXplKCkpOwotICAgIGZyYW1lVmlldy5zZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVu
aXRzKHJvdW5kZWRJbnRTaXplKGxhcmdlc3RVbm9ic2N1cmVkU2l6ZSkpOworICAgIGZyYW1lVmll
dy5zZXRTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKHJvdW5kZWRJbnRTaXplKHNtYWxsZXN0
VW5vYnNjdXJlZFNpemUpKTsKKyAgICBmcmFtZVZpZXcuc2V0U2l6ZUZvckNTU0RlZmF1bHRWaWV3
cG9ydFVuaXRzKHJvdW5kZWRJbnRTaXplKGxhcmdlc3RVbm9ic2N1cmVkU2l6ZSkpOwogfQogCiB2
b2lkIFdlYlBhZ2U6OmFwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZSgpCmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTUxNDU3YWIzZjg0MTg0NzYz
ODVmMjFiMmEzNDI0YzE2MTc1ODdhNS4uMjMxZjVhMzM3ODUxYTBlN2ZhOTc2MzdlODQwZjA2MjAx
NmUxNTYzNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTEwLTEyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFw
cGxlLmNvbT4KKworICAgICAgICBbY3NzLXZhbHVlcy00XSBTdXBwb3J0IHNtYWxsIChzdiopLCBs
YXJnZSAobHYqKSBhbmQgZHluYW1pYyAoZHYqKSB2aWV3cG9ydCB1bml0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5Mjg3CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83MTg1NzM3MD4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIu
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NTU1ZpZXdwb3J0
VW5pdHMubW06IEFkZGVkLgorICAgICAgICAoZXZhbHVhdGVGb3JJbnQpOgorICAgICAgICAoZ2V0
RWxlbWVudEhlaWdodCk6CisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5pdHMuQWxsU2FtZSk6
CisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5pdHMuRW1wdHlVbm9ic2N1cmVkU2l6ZU92ZXJy
aWRlcyk6CisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5pdHMuU2FtZVVub2JzY3VyZWRTaXpl
T3ZlcnJpZGVzKToKKyAgICAgICAgKFRFU1QuQ1NTVmlld3BvcnRVbml0cy5EaWZmZXJlbnRVbm9i
c2N1cmVkU2l6ZU92ZXJyaWRlcyk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9DU1NWaWV3cG9ydFVuaXRzLmh0bWw6IEFkZGVkLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BbmltYXRlZFJlc2l6ZS5tbToKKyAgICAgICAgKFRF
U1QuV2ViS2l0Lk92ZXJyaWRlTGF5b3V0U2l6ZUNoYW5nZXNEdXJpbmdBbmltYXRlZFJlc2l6ZVN1
Y2NlZWQpOgorICAgICAgICAoVEVTVC5XZWJLaXQuT3ZlcnJpZGVMYXlvdXRTaXplSXNSZXN0b3Jl
ZEFmdGVyUHJvY2Vzc1JlbGF1bmNoKToKKyAgICAgICAgKFRFU1QuV2ViS2l0Lk92ZXJyaWRlTGF5
b3V0U2l6ZUlzUmVzdG9yZWRBZnRlckNoYW5naW5nRHVyaW5nUHJvY2Vzc1JlbGF1bmNoKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpeGVkTGF5b3V0U2l6ZS5t
bToKKyAgICAgICAgKFRFU1QuV2ViS2l0Lk92ZXJyaWRlTWluaW11bUxheW91dFNpemVXaXRoTmVn
YXRpdmVIZWlnaHQpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1Njcm9sbFZp
ZXdTY3JvbGxhYmlsaXR5VGVzdHMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNULlNj
cm9sbFZpZXdTY3JvbGxhYmlsaXR5VGVzdHMuU2Nyb2xsYWJsZVdpdGhPdmVyZmxvd0hpZGRlbkFu
ZFZpc2libGVVSSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNULlNjcm9sbFZpZXdTY3Jv
bGxhYmlsaXR5VGVzdHMuU2Nyb2xsYWJsZVdpdGhPdmVyZmxvd0hpZGRlbkFuZFNocnVua1VJKToK
KyAgICAgICAgUmVwbGFjZSBgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5
b3V0U2l6ZTptYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpgIHdpdGgKKyAgICAgICAgYF9v
dmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6bWluaW11bVVub2Jz
Y3VyZWRTaXplT3ZlcnJpZGU6bWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6YC4KKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GbG9hdFNpemVUZXN0cy5jcHA6Cisg
ICAgICAgIChURVNULkZsb2F0U2l6ZS5NaW5EaW1lbnNpb24pOiBBZGRlZC4KKyAgICAgICAgKFRF
U1QuRmxvYXRTaXplLk1heERpbWVuc2lvbik6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9JbnRTaXplVGVzdHMuY3BwOgorICAgICAgICAoVEVTVC5JbnRTaXpl
Lk1pbkRpbWVuc2lvbik6IEFkZGVkLgorICAgICAgICAoVEVTVC5JbnRTaXplLk1heERpbWVuc2lv
bik6IEFkZGVkLgorICAgICAgICBBZGQgdXRpbGl0eS9oZWxwZXIgbWV0aG9kcyBmb3IgcmV0dXJu
aW5nIHRoZSBtaW5pbXVtL21heGltdW0gb2YgdGhlIHdpZHRoIHZzIGhlaWdodC4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorCiAyMDIxLTEwLTEyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgVXNlIFNUTCBpbnN0ZWFkIG9mIFdURjo6Z2V0X2lmLCBXVEY6Ok1vbm9z
dGF0ZSwgV1RGOjp2aXNpdCwgYW5kIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmUKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggYjc1YTVkMGY5Mjg5ODc0ZmFhMDU2MzdlNWMwOGFlMjZhOWQ2NDM2OS4u
MWViMmE5ZDNhYjE5NzlmYzY0YzhlMjI1YWMwMWM5ODk4MGMxMThiMiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTg5MSw2ICs4OTEsOCBAQAogCQk5M0ZDREIzNDI2MzYzMTU2MDA0NkREN0Qg
LyogU29ydGVkQXJyYXlNYXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNGQ0RCMzMyNjM2MzE1NjAwNDZERDdEIC8qIFNvcnRlZEFycmF5TWFwLmNw
cCAqLzsgfTsKIAkJOTUwOTVGMjAyNjJGRkZBNTAwMDBEOTIwIC8qIFNhbXBsZWRQYWdlVG9wQ29s
b3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTA5
NUYxRjI2MkZGRkE1MDAwMEQ5MjAgLyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSAqLzsgfTsKIAkJ
OTUwRTRDQzEyNTJFNzUyNDAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBFNENDMDI1MkU3NTIzMDA3
MTY1OUYgLyogaU9TU3R5bHVzU3VwcG9ydC5tbSAqLzsgfTsKKwkJOTUyRjcxNjUyNzBCRDk3RTAw
RDAwRENDIC8qIENTU1ZpZXdwb3J0VW5pdHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NTJGNzE2NDI3MEJEOTdFMDBEMDBEQ0MgLyogQ1NTVmlld3Bv
cnRVbml0cy5tbSAqLzsgfTsKKwkJOTUyRjcxNjcyNzBCRDlDQjAwRDAwRENDIC8qIENTU1ZpZXdw
b3J0VW5pdHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NTJGNzE2NjI3MEJEOTk3MDBEMDBEQ0MgLyogQ1NTVmlld3BvcnRVbml0cy5o
dG1sICovOyB9OwogCQk5NTNBQkIzNTI1QzBENjgyMDA0QzhCNzMgLyogV0tXZWJWaWV3VW5kZXJQ
YWdlQmFja2dyb3VuZENvbG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTUzQUJCMzQyNUMwRDY4MTAwNEM4QjczIC8qIFdLV2ViVmlld1VuZGVyUGFn
ZUJhY2tncm91bmRDb2xvci5tbSAqLzsgfTsKIAkJOTU4QjcwRTEyNkM0NkVEQzAwQjIwMjJCIC8q
IE5TQXR0cmlidXRlZFN0cmluZ1dlYktpdEFkZGl0aW9ucy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1OEI3MEUwMjZDNDZFREMwMEIyMDIyQiAvKiBO
U0F0dHJpYnV0ZWRTdHJpbmdXZWJLaXRBZGRpdGlvbnMubW0gKi87IH07CiAJCTk1QTUyNDk1MjU4
MUExMEQwMDQ2MUZFOSAvKiBXS1dlYlZpZXdUaGVtZUNvbG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVBNTI0OTQyNTgxQTEwRDAwNDYxRkU5IC8q
IFdLV2ViVmlld1RoZW1lQ29sb3IubW0gKi87IH07CkBAIC0xNDY0LDYgKzE0NjYsNyBAQAogCQkJ
CTlCNjI2MzBDMUY4QzI1QzgwMDdFRTI5QiAvKiBjb3B5LXVybC5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTdBRUFENDgxMUUyMDEyMjcwMDQxNkVGRSAvKiBDcm9zc1BhcnRpdGlvbkZp
bGVTY2hlbWVBY2Nlc3MuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk0OTk1QTZGMDI1
RTg3NzIwMDBFNUYwQTkgLyogY3NwLWRvY3VtZW50LXVyaS1yZXBvcnQuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKKwkJCQk5NTJGNzE2NzI3MEJEOUNCMDBEMDBEQ0MgLyogQ1NTVmlld3BvcnRV
bml0cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJEREQ0REE0MjcwQjhCMzUwMDY1
OUE2MSAvKiBjdWJlLnVzZHogaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjRBQjU3OEExRjY1
MTY1NDAwREIwREExIC8qIGN1c3RvbS1kcmFnZ2FibGUtZGl2Lmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCiAJCQkJMjkwRjQyNzUxNzJBMjIxQzAwOTM5RkYwIC8qIGN1c3RvbS1wcm90b2NvbC1z
eW5jLXhoci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMjYzNiw2ICsyNjM5LDggQEAK
IAkJOTNGQ0RCMzMyNjM2MzE1NjAwNDZERDdEIC8qIFNvcnRlZEFycmF5TWFwLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvcnRlZEFycmF5TWFwLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUwOTVGMUYyNjJGRkZBNTAwMDBEOTIwIC8qIFNhbXBs
ZWRQYWdlVG9wQ29sb3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBTYW1wbGVkUGFnZVRvcENvbG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NTBFNENDMDI1MkU3NTIzMDA3MTY1OUYgLyogaU9TU3R5bHVzU3VwcG9ydC5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IGlPU1N0eWx1c1N1cHBvcnQubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MkY3MTY0MjcwQkQ5N0UwMEQwMERDQyAvKiBDU1NW
aWV3cG9ydFVuaXRzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
Q1NTVmlld3BvcnRVbml0cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUyRjcx
NjYyNzBCRDk5NzAwRDAwRENDIC8qIENTU1ZpZXdwb3J0VW5pdHMuaHRtbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IENT
U1ZpZXdwb3J0VW5pdHMuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUzQUJC
MzQyNUMwRDY4MTAwNEM4QjczIC8qIFdLV2ViVmlld1VuZGVyUGFnZUJhY2tncm91bmRDb2xvci5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1VuZGVy
UGFnZUJhY2tncm91bmRDb2xvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTU4
QjcwRTAyNkM0NkVEQzAwQjIwMjJCIC8qIE5TQXR0cmlidXRlZFN0cmluZ1dlYktpdEFkZGl0aW9u
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5TQXR0cmlidXRl
ZFN0cmluZ1dlYktpdEFkZGl0aW9ucy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTVBNTI0OTQyNTgxQTEwRDAwNDYxRkU5IC8qIFdLV2ViVmlld1RoZW1lQ29sb3IubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdUaGVtZUNvbG9yLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzQ4OSw2ICszNDk0LDcgQEAKIAkJCQkx
Qzc5MjAxQjIzNEJERDlCMDAxRUFGMjMgLyogQ29weVJURi5tbSAqLywKIAkJCQk5QjdBMzdDMjFG
OEFFQkE1MDA0QUEyMjggLyogQ29weVVSTC5tbSAqLywKIAkJCQk1MTBBOTIxRDI0REIzOEVEMDBC
RkQ4OUMgLyogQ3JlYXRlV2ViQXJjaGl2ZS5tbSAqLywKKwkJCQk5NTJGNzE2NDI3MEJEOTdFMDBE
MDBEQ0MgLyogQ1NTVmlld3BvcnRVbml0cy5tbSAqLywKIAkJCQk0NkE5MTE1ODIxMDhFNjZCMDA3
OEQ0MEQgLyogQ3VzdG9tVXNlckFnZW50Lm1tICovLAogCQkJCTJEQzRDRjc2MUQyRDlERDgwMEVD
Q0M5NCAvKiBEYXRhRGV0ZWN0aW9uLm1tICovLAogCQkJCTUxOEVFNTFDMjBBNzhEMzMwMEUwMjRG
MyAvKiBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uLm1tICovLApAQCAtNDA0OCw2ICs0
MDU0LDcgQEAKIAkJCQk5QjEwNTY0MjFGOTA0N0NDMDBENTU4M0YgLyogY29weS1odG1sLmh0bWwg
Ki8sCiAJCQkJOUI2MjYzMEIxRjhDMjUxMDAwN0VFMjlCIC8qIGNvcHktdXJsLmh0bWwgKi8sCiAJ
CQkJNDk5NUE2RUYyNUU4NzZBMzAwRTVGMEE5IC8qIGNzcC1kb2N1bWVudC11cmktcmVwb3J0Lmh0
bWwgKi8sCisJCQkJOTUyRjcxNjYyNzBCRDk5NzAwRDAwRENDIC8qIENTU1ZpZXdwb3J0VW5pdHMu
aHRtbCAqLywKIAkJCQlGNEFCNTc4OTFGNjUxNjRCMDBEQjBEQTEgLyogY3VzdG9tLWRyYWdnYWJs
ZS1kaXYuaHRtbCAqLywKIAkJCQlGNDdERkIyNDIxQTg3MDRBMDAwMjFGQjYgLyogZGF0YS1kZXRl
Y3RvcnMuaHRtbCAqLywKIAkJCQlGNDg2QjFDRjFGNjc5NEZGMDBGMzRCREQgLyogRGF0YVRyYW5z
ZmVyLXNldERyYWdJbWFnZS5odG1sICovLApAQCAtNTQ5Nyw2ICs1NTA0LDcgQEAKIAkJCQk1MTBB
OTIxRTI0REIzOEYzMDBCRkQ4OUMgLyogQ3JlYXRlV2ViQXJjaGl2ZS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTdBRUFENDdGMUUyMDExNkMwMDQxNkVGRSAvKiBDcm9zc1BhcnRpdGlvbkZpbGVTY2hl
bWVBY2Nlc3MubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VEQjFBNDExQTkyMDA0NDdDNEMg
LyogQ1NTUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk1MkY3MTY1MjcwQkQ5N0UwMEQw
MERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTc1ODU5N0Yy
M0EyNTI3QTAwQzc0NTcyIC8qIEN0YXBQaW5UZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3
MkI0MDM0MjE3NjlBODgwMDBBRDQzRSAvKiBDdGFwUmVxdWVzdFRlc3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNTcyQjQwNDQyMTc4MUI0MzAwMEFENDNFIC8qIEN0YXBSZXNwb25zZVRlc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvRmxvYXRTaXplVGVzdHMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0Zsb2F0U2l6ZVRlc3RzLmNwcAppbmRleCA3NTZlNzZmMWRiYWM5ZTY4Yzg2M2JjZDVmMmY5
Y2IzY2E2YjZlMWVkLi4yNjcxYjg3OGIxZjE4OTkzOTk4MzJiNmI1Y2VmZTk3MTAxYWI1MjBhIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmxvYXRTaXplVGVz
dHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GbG9hdFNpemVU
ZXN0cy5jcHAKQEAgLTkzLDYgKzkzLDI4IEBAIFRFU1QoRmxvYXRTaXplLCBJbnRTaXplQ29uc3Ry
dWN0aW9uKQogICAgIHRlc3RHZXRBbmRTZXQodGVzdCk7CiB9CiAKK1RFU1QoRmxvYXRTaXplLCBN
aW5EaW1lbnNpb24pCit7CisgICAgV2ViQ29yZTo6RmxvYXRTaXplIHRlc3QoMTAyNC4wZiwgNzY4
LjBmKTsKKworICAgIEVYUEVDVF9GTE9BVF9FUSg3NjguMGYsIHRlc3QubWluRGltZW5zaW9uKCkp
OworCisgICAgdGVzdC5zY2FsZSgxLjBmLCAyLjBmKTsKKworICAgIEVYUEVDVF9GTE9BVF9FUSgx
MDI0LjBmLCB0ZXN0Lm1pbkRpbWVuc2lvbigpKTsKK30KKworVEVTVChGbG9hdFNpemUsIE1heERp
bWVuc2lvbikKK3sKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgdGVzdCgxMDI0LjBmLCA3NjguMGYp
OworCisgICAgRVhQRUNUX0ZMT0FUX0VRKDEwMjQuMGYsIHRlc3QubWF4RGltZW5zaW9uKCkpOwor
CisgICAgdGVzdC5zY2FsZSgxLjBmLCAyLjBmKTsKKworICAgIEVYUEVDVF9GTE9BVF9FUSgxNTM2
LjBmLCB0ZXN0Lm1heERpbWVuc2lvbigpKTsKK30KKwogVEVTVChGbG9hdFNpemUsIFNjYWxlKQog
ewogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSB0ZXN0KDEwMjQuMGYsIDc2OC4wZik7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSW50U2l6ZVRlc3RzLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9JbnRTaXplVGVzdHMuY3BwCmluZGV4
IDYyMmYwYTg4Y2RkYWVhZGJlNmJkNDU2YzU2ZThjNGQ4MjI5ZjVkYmYuLjQ0YmEzNDc5MWZiNGYz
YjJhOTcxNWFkYWE4N2VkODQxZjFhZWNiYTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9JbnRTaXplVGVzdHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9JbnRTaXplVGVzdHMuY3BwCkBAIC05Myw2ICs5MywyOCBAQCBURVNU
KEludFNpemUsIEZsb2F0U2l6ZUNvbnN0cnVjdGlvbikKICAgICB0ZXN0R2V0QW5kU2V0KHRlc3Qp
OwogfQogCitURVNUKEludFNpemUsIE1pbkRpbWVuc2lvbikKK3sKKyAgICBXZWJDb3JlOjpJbnRT
aXplIHRlc3QoMTAyNCwgNzY4KTsKKworICAgIEVYUEVDVF9FUSg3NjgsIHRlc3QubWluRGltZW5z
aW9uKCkpOworCisgICAgdGVzdC5zY2FsZSgxLjBmLCAyLjBmKTsKKworICAgIEVYUEVDVF9FUSgx
MDI0LCB0ZXN0Lm1pbkRpbWVuc2lvbigpKTsKK30KKworVEVTVChJbnRTaXplLCBNYXhEaW1lbnNp
b24pCit7CisgICAgV2ViQ29yZTo6SW50U2l6ZSB0ZXN0KDEwMjQsIDc2OCk7CisKKyAgICBFWFBF
Q1RfRVEoMTAyNCwgdGVzdC5tYXhEaW1lbnNpb24oKSk7CisKKyAgICB0ZXN0LnNjYWxlKDEuMGYs
IDIuMGYpOworCisgICAgRVhQRUNUX0VRKDE1MzYsIHRlc3QubWF4RGltZW5zaW9uKCkpOworfQor
CiBURVNUKEludFNpemUsIERpYWdvbmFsTGVuZ3RoQW5kQXJlYSkKIHsKICAgICBXZWJDb3JlOjpJ
bnRTaXplIHRlc3QoMTAyNCwgNzY4KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvQW5pbWF0ZWRSZXNpemUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0FuaW1hdGVkUmVzaXplLm1tCmluZGV4IDgyODBmNTM5MzU0ZTcx
ODVlOWViZTQwNDQzNjE3ODYzNjNmOGIzMzAuLjM5ZmU1NDA0OTZjNjI3M2YzMDEyNDVjNWI2NDQ1
N2ExMjE1MWEzODEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvQW5pbWF0ZWRSZXNpemUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9BbmltYXRlZFJlc2l6ZS5tbQpAQCAtMTkyLDcgKzE5Miw3IEBAIFRFU1QoV2Vi
S2l0LCBPdmVycmlkZUxheW91dFNpemVDaGFuZ2VzRHVyaW5nQW5pbWF0ZWRSZXNpemVTdWNjZWVk
KQogICAgIGF1dG8gd2ViVmlldyA9IGNyZWF0ZUFuaW1hdGVkUmVzaXplV2ViVmlldygpOwogICAg
IFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6d2ViVmlldy5nZXQoKV07CiAKLSAgICBbd2ViVmlldyBf
b3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2Uo
MjAwLCA1MCkgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgyMDAsIDUw
KV07CisgICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5
b3V0U2l6ZTpDR1NpemVNYWtlKDIwMCwgNTApIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRl
OkNHU2l6ZU1ha2UoMjAwLCA1MCkgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXpl
TWFrZSgyMDAsIDUwKV07CiAKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxoZWFkPjxt
ZXRhIG5hbWU9J3ZpZXdwb3J0JyBjb250ZW50PSdpbml0aWFsLXNjYWxlPTEnPjwvaGVhZD4iIGJh
c2VVUkw6bmlsXTsKICAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0
TmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0yMDcsNyArMjA3LDcgQEAgVEVT
VChXZWJLaXQsIE92ZXJyaWRlTGF5b3V0U2l6ZUNoYW5nZXNEdXJpbmdBbmltYXRlZFJlc2l6ZVN1
Y2NlZWQpCiAgICAgICAgIFt3ZWJWaWV3IHNldEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgW3dlYlZp
ZXcgZnJhbWVdLnNpemUud2lkdGggKyAxMDAsIDQwMCldOwogICAgIH1dOwogCi0gICAgW3dlYlZp
ZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpDR1NpemVN
YWtlKDEwMCwgMjAwKSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDEw
MCwgMjAwKV07CisgICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5p
bXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDEwMCwgMjAwKSBtaW5pbXVtVW5vYnNjdXJlZFNpemVP
dmVycmlkZTpDR1NpemVNYWtlKDEwMCwgMjAwKSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlk
ZTpDR1NpemVNYWtlKDEwMCwgMjAwKV07CiAgICAgW3dlYlZpZXcgX2VuZEFuaW1hdGVkUmVzaXpl
XTsKIAogICAgIF9fYmxvY2sgYm9vbCBkaWRSZWFkTGF5b3V0U2l6ZSA9IGZhbHNlOwpAQCAtMjMy
LDcgKzIzMiw3IEBAIFRFU1QoV2ViS2l0LCBPdmVycmlkZUxheW91dFNpemVJc1Jlc3RvcmVkQWZ0
ZXJQcm9jZXNzUmVsYXVuY2gpCiAgICAgYXV0byB3ZWJWaWV3ID0gY3JlYXRlQW5pbWF0ZWRSZXNp
emVXZWJWaWV3KCk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTp3ZWJWaWV3LmdldCgpXTsK
IAotICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91
dFNpemU6Q0dTaXplTWFrZSgyMDAsIDUwKSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpD
R1NpemVNYWtlKDIwMCwgNTApXTsKKyAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0
ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMjAwLCA1MCkgbWluaW11bVVub2Jz
Y3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgyMDAsIDUwKSBtYXhpbXVtVW5vYnNjdXJlZFNp
emVPdmVycmlkZTpDR1NpemVNYWtlKDIwMCwgNTApXTsKIAogICAgIFt3ZWJWaWV3IGxvYWRIVE1M
U3RyaW5nOkAiPGhlYWQ+PG1ldGEgbmFtZT0ndmlld3BvcnQnIGNvbnRlbnQ9J2luaXRpYWwtc2Nh
bGU9MSc+PC9oZWFkPiIgYmFzZVVSTDpuaWxdOwogICAgIFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JE
aWRGaW5pc2hOYXZpZ2F0aW9uXTsKQEAgLTI2Myw3ICsyNjMsNyBAQCBURVNUKFdlYktpdCwgT3Zl
cnJpZGVMYXlvdXRTaXplSXNSZXN0b3JlZEFmdGVyQ2hhbmdpbmdEdXJpbmdQcm9jZXNzUmVsYXVu
Y2gpCiAgICAgYXV0byB3ZWJWaWV3ID0gY3JlYXRlQW5pbWF0ZWRSZXNpemVXZWJWaWV3KCk7CiAg
ICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTp3ZWJWaWV3LmdldCgpXTsKIAotICAgIFt3ZWJWaWV3
IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFr
ZSgxMDAsIDEwMCkgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgxMDAs
IDEwMCldOworICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11
bUxheW91dFNpemU6Q0dTaXplTWFrZSgxMDAsIDEwMCkgbWluaW11bVVub2JzY3VyZWRTaXplT3Zl
cnJpZGU6Q0dTaXplTWFrZSgxMDAsIDEwMCkgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6
Q0dTaXplTWFrZSgxMDAsIDEwMCldOwogCiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8
aGVhZD48bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVudD0naW5pdGlhbC1zY2FsZT0xJz48L2hl
YWQ+IiBiYXNlVVJMOm5pbF07CiAgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5h
dmlnYXRpb25dOwpAQCAtMjczLDcgKzI3Myw3IEBAIFRFU1QoV2ViS2l0LCBPdmVycmlkZUxheW91
dFNpemVJc1Jlc3RvcmVkQWZ0ZXJDaGFuZ2luZ0R1cmluZ1Byb2Nlc3NSZWxhdW5jaCkKICAgICBb
d2luZG93IHNldEhpZGRlbjpOT107CiAKICAgICBbd2ViVmlldyBfa2lsbFdlYkNvbnRlbnRQcm9j
ZXNzQW5kUmVzZXRTdGF0ZV07Ci0gICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVy
c1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDIwMCwgNTApIG1heGltdW1Vbm9ic2N1
cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMjAwLCA1MCldOworICAgIFt3ZWJWaWV3IF9vdmVy
cmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFrZSgyMDAs
IDUwKSBtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDIwMCwgNTApIG1h
eGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZU1ha2UoMjAwLCA1MCldOwogCiAgICAg
W3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8aGVhZD48bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29u
dGVudD0naW5pdGlhbC1zY2FsZT0xJz48L2hlYWQ+IiBiYXNlVVJMOm5pbF07CiAgICAgW3dlYlZp
ZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DU1NWaWV3cG9ydFVuaXRzLmh0bWwgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NTU1ZpZXdwb3J0VW5pdHMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kMDJhYTA1ODhkY2Q2ZWUyNzY2Y2JjMDc5MjY1OTkzYzg0OGVlY2U3Ci0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9D
U1NWaWV3cG9ydFVuaXRzLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aGVhZD4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdp
ZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorCisgICAgPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2lu
OiAwOworfQorZGl2IHsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgd2lkdGg6IDFw
eDsKK30KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0idnciIHN0
eWxlPSJoZWlnaHQ6IDEwMHZ3OyI+PC9kaXY+CisgICAgPGRpdiBpZD0idmgiIHN0eWxlPSJoZWln
aHQ6IDEwMHZoOyI+PC9kaXY+CisgICAgPGRpdiBpZD0idm1pbiIgc3R5bGU9ImhlaWdodDogMTAw
dm1pbjsiPjwvZGl2PgorICAgIDxkaXYgaWQ9InZtYXgiIHN0eWxlPSJoZWlnaHQ6IDEwMHZtYXg7
Ij48L2Rpdj4KKworICAgIDxkaXYgaWQ9InN2dyIgc3R5bGU9ImhlaWdodDogMTAwc3Z3OyI+PC9k
aXY+CisgICAgPGRpdiBpZD0ic3ZoIiBzdHlsZT0iaGVpZ2h0OiAxMDBzdmg7Ij48L2Rpdj4KKyAg
ICA8ZGl2IGlkPSJzdm1pbiIgc3R5bGU9ImhlaWdodDogMTAwc3ZtaW47Ij48L2Rpdj4KKyAgICA8
ZGl2IGlkPSJzdm1heCIgc3R5bGU9ImhlaWdodDogMTAwc3ZtYXg7Ij48L2Rpdj4KKworICAgIDxk
aXYgaWQ9Imx2dyIgc3R5bGU9ImhlaWdodDogMTAwbHZ3OyI+PC9kaXY+CisgICAgPGRpdiBpZD0i
bHZoIiBzdHlsZT0iaGVpZ2h0OiAxMDBsdmg7Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJsdm1pbiIg
c3R5bGU9ImhlaWdodDogMTAwbHZtaW47Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJsdm1heCIgc3R5
bGU9ImhlaWdodDogMTAwbHZtYXg7Ij48L2Rpdj4KKworICAgIDxkaXYgaWQ9ImR2dyIgc3R5bGU9
ImhlaWdodDogMTAwZHZ3OyI+PC9kaXY+CisgICAgPGRpdiBpZD0iZHZoIiBzdHlsZT0iaGVpZ2h0
OiAxMDBkdmg7Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJkdm1pbiIgc3R5bGU9ImhlaWdodDogMTAw
ZHZtaW47Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJkdm1heCIgc3R5bGU9ImhlaWdodDogMTAwZHZt
YXg7Ij48L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvQ1NTVmlld3BvcnRVbml0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvQ1NTVmlld3BvcnRVbml0cy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDZmZjI5
YTBmMmE0ZmVjZTliYmFmZjZiMTg3ODExYjdmMTUzYWY4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DU1NWaWV3cG9ydFVuaXRzLm1tCkBA
IC0wLDAgKzEsMTY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaW1w
b3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2lt
cG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KKworc3RhdGljIGludCBldmFsdWF0ZUZvckludChXS1dlYlZpZXcgKndlYlZpZXcsIE5TU3Ry
aW5nICpzY3JpcHQpCit7CisgICAgcmV0dXJuIFsoTlNOdW1iZXIgKilbd2ViVmlldyBvYmplY3RC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0OnNjcmlwdF0gaW50VmFsdWVdOworfQorCitzdGF0aWMgaW50
IGdldEVsZW1lbnRIZWlnaHQoV0tXZWJWaWV3ICp3ZWJWaWV3LCBOU1N0cmluZyAqZWxlbWVudElE
KQoreworICAgIHJldHVybiBldmFsdWF0ZUZvckludCh3ZWJWaWV3LCBbTlNTdHJpbmcgc3RyaW5n
V2l0aEZvcm1hdDpAImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCclQCcpLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpLmhlaWdodCIsIGVsZW1lbnRJRF0pOworfQorCitURVNUKENTU1ZpZXdwb3J0VW5p
dHMsIEFsbFNhbWUpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAg
ICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJDU1NWaWV3cG9ydFVu
aXRzIl07CisKKyAgICBFWFBFQ1RfRVEoMzIwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0
KCksIEAidnciKSk7CisgICAgRVhQRUNUX0VRKDUwMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3
LmdldCgpLCBAInZoIikpOworICAgIEVYUEVDVF9FUSgzMjAsIGdldEVsZW1lbnRIZWlnaHQod2Vi
Vmlldy5nZXQoKSwgQCJ2bWluIikpOworICAgIEVYUEVDVF9FUSg1MDAsIGdldEVsZW1lbnRIZWln
aHQod2ViVmlldy5nZXQoKSwgQCJ2bWF4IikpOworCisgICAgRVhQRUNUX0VRKDMyMCwgZ2V0RWxl
bWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInN2dyIpKTsKKyAgICBFWFBFQ1RfRVEoNTAwLCBn
ZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAic3ZoIikpOworICAgIEVYUEVDVF9FUSgz
MjAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJzdm1pbiIpKTsKKyAgICBFWFBF
Q1RfRVEoNTAwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAic3ZtYXgiKSk7CisK
KyAgICBFWFBFQ1RfRVEoMzIwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZ3
IikpOworICAgIEVYUEVDVF9FUSg1MDAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwg
QCJsdmgiKSk7CisgICAgRVhQRUNUX0VRKDMyMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3Lmdl
dCgpLCBAImx2bWluIikpOworICAgIEVYUEVDVF9FUSg1MDAsIGdldEVsZW1lbnRIZWlnaHQod2Vi
Vmlldy5nZXQoKSwgQCJsdm1heCIpKTsKKworICAgIGludCBpbm5lcldpZHRoID0gZXZhbHVhdGVG
b3JJbnQod2ViVmlldy5nZXQoKSwgQCJ3aW5kb3cuaW5uZXJXaWR0aCIpOworICAgIGludCBpbm5l
ckhlaWdodCA9IGV2YWx1YXRlRm9ySW50KHdlYlZpZXcuZ2V0KCksIEAid2luZG93LmlubmVySGVp
Z2h0Iik7CisgICAgRVhQRUNUX0VRKGlubmVyV2lkdGgsIGdldEVsZW1lbnRIZWlnaHQod2ViVmll
dy5nZXQoKSwgQCJkdnciKSk7CisgICAgRVhQRUNUX0VRKGlubmVySGVpZ2h0LCBnZXRFbGVtZW50
SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZoIikpOworICAgIEVYUEVDVF9FUShpbm5lcldpZHRo
LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZtaW4iKSk7CisgICAgRVhQRUNU
X0VRKGlubmVySGVpZ2h0LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZtYXgi
KSk7Cit9CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCitURVNUKENTU1ZpZXdwb3J0VW5p
dHMsIEVtcHR5VW5vYnNjdXJlZFNpemVPdmVycmlkZXMpCit7CisgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgw
LCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJz
V2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMTQxLCAxNDkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVaZXJv
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVy
cmlkZTpDR1NpemVaZXJvXTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdl
TmFtZWQ6QCJDU1NWaWV3cG9ydFVuaXRzIl07CisKKyAgICBFWFBFQ1RfRVEoMTQxLCBnZXRFbGVt
ZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidnciKSk7CisgICAgRVhQRUNUX0VRKDE0OSwgZ2V0
RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZoIikpOworICAgIEVYUEVDVF9FUSgxNDEs
IGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2bWluIikpOworICAgIEVYUEVDVF9F
USgxNDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2bWF4IikpOworCisgICAg
RVhQRUNUX0VRKDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInN2dyIpKTsK
KyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAic3Zo
IikpOworICAgIEVYUEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwg
QCJzdm1pbiIpKTsKKyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcu
Z2V0KCksIEAic3ZtYXgiKSk7CisKKyAgICBFWFBFQ1RfRVEoMTQxLCBnZXRFbGVtZW50SGVpZ2h0
KHdlYlZpZXcuZ2V0KCksIEAibHZ3IikpOworICAgIEVYUEVDVF9FUSgxNDksIGdldEVsZW1lbnRI
ZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdmgiKSk7CisgICAgRVhQRUNUX0VRKDE0MSwgZ2V0RWxl
bWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2bWluIikpOworICAgIEVYUEVDVF9FUSgxNDks
IGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdm1heCIpKTsKKworICAgIGludCBp
bm5lcldpZHRoID0gZXZhbHVhdGVGb3JJbnQod2ViVmlldy5nZXQoKSwgQCJ3aW5kb3cuaW5uZXJX
aWR0aCIpOworICAgIGludCBpbm5lckhlaWdodCA9IGV2YWx1YXRlRm9ySW50KHdlYlZpZXcuZ2V0
KCksIEAid2luZG93LmlubmVySGVpZ2h0Iik7CisgICAgRVhQRUNUX0VRKGlubmVyV2lkdGgsIGdl
dEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJkdnciKSk7CisgICAgRVhQRUNUX0VRKGlu
bmVySGVpZ2h0LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZoIikpOworICAg
IEVYUEVDVF9FUShpbm5lcldpZHRoLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAi
ZHZtaW4iKSk7CisgICAgRVhQRUNUX0VRKGlubmVySGVpZ2h0LCBnZXRFbGVtZW50SGVpZ2h0KHdl
YlZpZXcuZ2V0KCksIEAiZHZtYXgiKSk7Cit9CisKK1RFU1QoQ1NTVmlld3BvcnRVbml0cywgU2Ft
ZVVub2JzY3VyZWRTaXplT3ZlcnJpZGVzKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIw
LCA1MDApXSk7CisgICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5p
bXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDE0MSwgMTQ5KQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgxNDEsIDE0
OSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92
ZXJyaWRlOkNHU2l6ZU1ha2UoMTQxLCAxNDkpXTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5
TG9hZFRlc3RQYWdlTmFtZWQ6QCJDU1NWaWV3cG9ydFVuaXRzIl07CisKKyAgICBFWFBFQ1RfRVEo
MTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidnciKSk7CisgICAgRVhQRUNU
X0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZoIikpOworICAgIEVY
UEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2bWluIikpOwor
ICAgIEVYUEVDVF9FUSgxNDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2bWF4
IikpOworCisgICAgRVhQRUNUX0VRKDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgp
LCBAInN2dyIpKTsKKyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcu
Z2V0KCksIEAic3ZoIikpOworICAgIEVYUEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2Vi
Vmlldy5nZXQoKSwgQCJzdm1pbiIpKTsKKyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVp
Z2h0KHdlYlZpZXcuZ2V0KCksIEAic3ZtYXgiKSk7CisKKyAgICBFWFBFQ1RfRVEoMTQxLCBnZXRF
bGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZ3IikpOworICAgIEVYUEVDVF9FUSgxNDks
IGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdmgiKSk7CisgICAgRVhQRUNUX0VR
KDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2bWluIikpOworICAgIEVY
UEVDVF9FUSgxNDksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdm1heCIpKTsK
KworICAgIGludCBpbm5lcldpZHRoID0gZXZhbHVhdGVGb3JJbnQod2ViVmlldy5nZXQoKSwgQCJ3
aW5kb3cuaW5uZXJXaWR0aCIpOworICAgIGludCBpbm5lckhlaWdodCA9IGV2YWx1YXRlRm9ySW50
KHdlYlZpZXcuZ2V0KCksIEAid2luZG93LmlubmVySGVpZ2h0Iik7CisgICAgRVhQRUNUX0VRKGlu
bmVyV2lkdGgsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJkdnciKSk7CisgICAg
RVhQRUNUX0VRKGlubmVySGVpZ2h0LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAi
ZHZoIikpOworICAgIEVYUEVDVF9FUShpbm5lcldpZHRoLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZp
ZXcuZ2V0KCksIEAiZHZtaW4iKSk7CisgICAgRVhQRUNUX0VRKGlubmVySGVpZ2h0LCBnZXRFbGVt
ZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZtYXgiKSk7Cit9CisKK1RFU1QoQ1NTVmlld3Bv
cnRVbml0cywgRGlmZmVyZW50VW5vYnNjdXJlZFNpemVPdmVycmlkZXMpCit7CisgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dS
ZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQ
YXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMTMxLCAxMzkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpD
R1NpemVNYWtlKDEyMSwgMTI5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11
bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgxNDEsIDE0OSldOworICAgIFt3ZWJW
aWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAIkNTU1ZpZXdwb3J0VW5pdHMiXTsK
KworICAgIEVYUEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2
dyIpKTsKKyAgICBFWFBFQ1RfRVEoMTQ5LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCks
IEAidmgiKSk7CisgICAgRVhQRUNUX0VRKDE0MSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3Lmdl
dCgpLCBAInZtaW4iKSk7CisgICAgRVhQRUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJW
aWV3LmdldCgpLCBAInZtYXgiKSk7CisKKyAgICBFWFBFQ1RfRVEoMTIxLCBnZXRFbGVtZW50SGVp
Z2h0KHdlYlZpZXcuZ2V0KCksIEAic3Z3IikpOworICAgIEVYUEVDVF9FUSgxMjksIGdldEVsZW1l
bnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJzdmgiKSk7CisgICAgRVhQRUNUX0VRKDEyMSwgZ2V0
RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInN2bWluIikpOworICAgIEVYUEVDVF9FUSgx
MjksIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJzdm1heCIpKTsKKworICAgIEVY
UEVDVF9FUSgxNDEsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdnciKSk7Cisg
ICAgRVhQRUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2aCIp
KTsKKyAgICBFWFBFQ1RfRVEoMTQxLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAi
bHZtaW4iKSk7CisgICAgRVhQRUNUX0VRKDE0OSwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3Lmdl
dCgpLCBAImx2bWF4IikpOworCisgICAgaW50IGlubmVyV2lkdGggPSBldmFsdWF0ZUZvckludCh3
ZWJWaWV3LmdldCgpLCBAIndpbmRvdy5pbm5lcldpZHRoIik7CisgICAgaW50IGlubmVySGVpZ2h0
ID0gZXZhbHVhdGVGb3JJbnQod2ViVmlldy5nZXQoKSwgQCJ3aW5kb3cuaW5uZXJIZWlnaHQiKTsK
KyAgICBFWFBFQ1RfRVEoaW5uZXJXaWR0aCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgp
LCBAImR2dyIpKTsKKyAgICBFWFBFQ1RfRVEoaW5uZXJIZWlnaHQsIGdldEVsZW1lbnRIZWlnaHQo
d2ViVmlldy5nZXQoKSwgQCJkdmgiKSk7CisgICAgRVhQRUNUX0VRKGlubmVyV2lkdGgsIGdldEVs
ZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJkdm1pbiIpKTsKKyAgICBFWFBFQ1RfRVEoaW5u
ZXJIZWlnaHQsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJkdm1heCIpKTsKK30K
KworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpeGVkTGF5b3V0U2l6ZS5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRml4ZWRMYXlvdXRTaXplLm1tCmluZGV4IGY4
YmJmYjU2NTBjZWM5NzZlYmE1YWQ4ZWI4MmNkZmVmZGU3NjJjMWYuLjBiNDNhMGYwYTNhYzJmZWU2
NWIwNTY0NjEwMTFmZjBkZjQwZTY3NmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvRml4ZWRMYXlvdXRTaXplLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRml4ZWRMYXlvdXRTaXplLm1tCkBAIC0zNyw3ICszNyw3
IEBACiBURVNUKFdlYktpdCwgT3ZlcnJpZGVNaW5pbXVtTGF5b3V0U2l6ZVdpdGhOZWdhdGl2ZUhl
aWdodCkKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwotICAgIFt3ZWJW
aWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXpl
TWFrZSgzMjAsIC0xMDAwKSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtl
KDAsIDApXTsKKyAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmlt
dW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMzIwLCAtMTAwMCkgbWluaW11bVVub2JzY3VyZWRTaXpl
T3ZlcnJpZGU6Q0dTaXplTWFrZSgwLCAwKSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpD
R1NpemVNYWtlKDAsIDApXTsKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJp
bmc6QCI8bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVudD0nd2lkdGg9ZGV2aWNlLXdpZHRoLCBp
bml0aWFsLXNjYWxlPTEnPjxib2R5PkhlbGxvPC9ib2R5PiJdOwogICAgIEVYUEVDVF9HRShbd2Vi
VmlldyBfZml4ZWRMYXlvdXRTaXplXS5oZWlnaHQsIDApOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvU2Nyb2xsVmlld1Njcm9sbGFiaWxpdHlUZXN0cy5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1Njcm9sbFZpZXdTY3JvbGxhYmlsaXR5VGVz
dHMubW0KaW5kZXggYzQ1NWY1MWIzNTI5YTE1N2FjNTdiOWY0M2U4N2U4ZjAxYTAxMjdlZC4uMGY5
MTI0NDgzMTFkODE4OTZmMDI4YWJiODI0ZjMxNzE4MmZjMzFiOSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvU2Nyb2xsVmlld1Njcm9sbGFiaWxpdHlUZXN0cy5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9TY3JvbGxWaWV3U2Nyb2xsYWJpbGl0
eVRlc3RzLm1tCkBAIC0xMTUsNyArMTE1LDcgQEAgVEVTVChTY3JvbGxWaWV3U2Nyb2xsYWJpbGl0
eVRlc3RzLCBTY3JvbGxhYmxlV2l0aE92ZXJmbG93SGlkZGVuQW5kVmlzaWJsZVVJKQogICAgIG9i
c2N1cmVkSW5zZXRzLnJpZ2h0ID0gMDsKIAogICAgIFt3ZWJWaWV3IF9zZXRPYnNjdXJlZEluc2V0
czpvYnNjdXJlZEluc2V0c107Ci0gICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVy
c1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDMyMCwgNDA2KSBtYXhpbXVtVW5vYnNj
dXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDMyMCwgNDkwKV07CisgICAgW3dlYlZpZXcgX292
ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDMy
MCwgNDA2KSBtaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDMyMCwgNDA2
KSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKDMyMCwgNDkwKV07CiAK
ICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6bm9uU2Nyb2xsYWJsZURv
Y3VtZW50TWFya3VwXTsKICAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0
ZV07CkBAIC0xMzQsNyArMTM0LDcgQEAgVEVTVChTY3JvbGxWaWV3U2Nyb2xsYWJpbGl0eVRlc3Rz
LCBTY3JvbGxhYmxlV2l0aE92ZXJmbG93SGlkZGVuQW5kU2hydW5rVUkpCiAgICAgb2JzY3VyZWRJ
bnNldHMucmlnaHQgPSAwOwogCiAgICAgW3dlYlZpZXcgX3NldE9ic2N1cmVkSW5zZXRzOm9ic2N1
cmVkSW5zZXRzXTsKLSAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1p
bmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2Uodmlld0hlaWdodCwgNDE0KSBtYXhpbXVtVW5vYnNj
dXJlZFNpemVPdmVycmlkZTpDR1NpemVNYWtlKHZpZXdIZWlnaHQsIDQxNCldOworICAgIFt3ZWJW
aWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXpl
TWFrZSh2aWV3SGVpZ2h0LCA0MTQpIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6
ZU1ha2Uodmlld0hlaWdodCwgNDE0KSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1Np
emVNYWtlKHZpZXdIZWlnaHQsIDQxNCldOwogCiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxv
YWRIVE1MU3RyaW5nOm5vblNjcm9sbGFibGVEb2N1bWVudE1hcmt1cF07CiAgICAgW3dlYlZpZXcg
d2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441833</attachid>
            <date>2021-10-19 18:46:04 -0700</date>
            <delta_ts>2021-10-19 18:49:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219287-20211019184603.patch</filename>
            <type>text/plain</type>
            <size>89056</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2ZTQ0MTA5Y2Q4NGFhNjQ1MDEwMjUyNGJhZDFmZmZhNGYyZjRmMjA0Li5h
YmQ3MTk0YzNhMGIxNjcxZWYxMTkzMjYzMTE2NmEwZmY3OWExYzBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTE0IEBACisyMDIxLTEwLTEyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KKworICAgICAgICBbY3NzLXZhbHVlcy00XSBTdXBwb3J0IHNtYWxsIChzdiopLCBsYXJnZSAo
bHYqKSBhbmQgZHluYW1pYyAoZHYqKSB2aWV3cG9ydCB1bml0cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5Mjg3CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTg1NzM3MD4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAg
ICAgICAgU3BlYzogPGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTQvI3ZpZXdw
b3J0LXZhcmlhbnRzPgorCisgICAgICAgIFRlc3RzOiBDU1NWaWV3cG9ydFVuaXRzLkFsbFNhbWUK
KyAgICAgICAgICAgICAgIENTU1ZpZXdwb3J0VW5pdHMuRW1wdHlVbm9ic2N1cmVkU2l6ZU92ZXJy
aWRlcworICAgICAgICAgICAgICAgQ1NTVmlld3BvcnRVbml0cy5TYW1lVW5vYnNjdXJlZFNpemVP
dmVycmlkZXMKKyAgICAgICAgICAgICAgIENTU1ZpZXdwb3J0VW5pdHMuRGlmZmVyZW50VW5vYnNj
dXJlZFNpemVPdmVycmlkZXMKKworICAgICAgICAqIGNzcy9DU1NVbml0cy5oOgorICAgICAgICAq
IGNzcy9DU1NVbml0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAg
ICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjppc1ZpZXdwb3J0UGVyY2VudGFnZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNWaWV3cG9ydFBlcmNlbnRhZ2VXaWR0aCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNWaWV3cG9ydFBlcmNlbnRh
Z2VIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
OmlzVmlld3BvcnRQZXJjZW50YWdlTWF4KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1ByaW1pdGl2ZVZhbHVlOjppc1ZpZXdwb3J0UGVyY2VudGFnZU1pbik6IERlbGV0ZWQuCisgICAg
ICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFs
aWRDU1NVbml0VHlwZUZvckRvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6aXNT
dHJpbmdUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjbGVhbnVw
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlVW56b29tZWRO
b25DYWxjTGVuZ3RoRG91YmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
Ojpjb21wdXRlTm9uQ2FsY0xlbmd0aERvdWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6dW5pdFR5cGVTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmZvcm1hdE51bWJlckZvckN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmVxdWFscyBjb25zdCk6CisgICAgICAgICogY3Nz
L0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaDoKKyAgICAgICAgKiBjc3MvQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhOjpkZWZhdWx0Vmlld3BvcnRGYWN0b3IgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OnNtYWxsVmlld3BvcnRGYWN0b3IgY29u
c3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6
OmxhcmdlVmlld3BvcnRGYWN0b3IgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OmR5bmFtaWNWaWV3cG9ydEZhY3RvciBjb25zdCk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6dmlld3Bv
cnRXaWR0aEZhY3RvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhOjp2aWV3cG9ydEhlaWdodEZhY3RvciBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjp2aWV3cG9ydE1p
bkZhY3RvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhOjp2aWV3cG9ydE1heEZhY3RvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjc3NQ
cmltaXRpdmVWYWx1ZVVuaXRGcm9tVHJpZSk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzOjpjb25zdW1lTGVuZ3RoUmF3V2l0aEtub3duVG9rZW5UeXBlRGltZW5zaW9uKToK
KyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjQ2F0ZWdvcnlNYXBwaW5nLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNhbGNVbml0Q2F0ZWdvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Y2FsY3VsYXRp
b25DYXRlZ29yeUZvckNvbWJpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc0RvdWJsZVZh
bHVlKToKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgdGhlIGZvbGxvd2luZyBhbmQg
Y29udmVydGluZyB0aGVtIHRvIHRoZWlyIHVuZGVybHlpbmcgdmFsdWU6CisgICAgICAgIC0gYHN2
d2AgInNtYWxsIHZpZXdwb3J0IHdpZHRoIiBpcyB0aGUgd2lkdGggb2YgdGhlIHZpZXdwb3J0IGlm
IGFsbCBVQSBpbnRlcmZhY2VzIGFyZSBtYXhpbWl6ZWQKKyAgICAgICAgLSBgc3ZoYCAic21hbGwg
dmlld3BvcnQgaGVpZ2h0IiBpcyB0aGUgaGVpZ2h0IG9mIHRoZSB2aWV3cG9ydCBpZiBhbGwgVUEg
aW50ZXJmYWNlcyBhcmUgbWF4aW1pemVkCisgICAgICAgIC0gYHN2bWluYCAic21hbGwgdmlld3Bv
cnQgc21hbGwgZGltZW5zaW9uIiBpcyBgbWluKHN2dywgc3ZoKWAKKyAgICAgICAgLSBgc3ZtYXhg
ICJzbWFsbCB2aWV3cG9ydCBsYXJnZSBkaW1lbnNpb24iIGlzIGBtYXgoc3Z3LCBzdmgpYAorICAg
ICAgICAtIGBsdndgICJsYXJnZSB2aWV3cG9ydCB3aWR0aCIgaXMgdGhlIHdpZHRoIG9mIHRoZSB2
aWV3cG9ydCBpZiBhbGwgVUEgaW50ZXJmYWNlcyBhcmUgbWluaW1pemVkCisgICAgICAgIC0gYGx2
aGAgImxhcmdlIHZpZXdwb3J0IGhlaWdodCIgaXMgdGhlIGhlaWdodCBvZiB0aGUgdmlld3BvcnQg
aWYgYWxsIFVBIGludGVyZmFjZXMgYXJlIG1pbmltaXplZAorICAgICAgICAtIGBsdm1pbmAgImxh
cmdlIHZpZXdwb3J0IHNtYWxsIGRpbWVuc2lvbiIgaXMgYG1pbihsdncsIGx2aClgCisgICAgICAg
IC0gYGx2bWF4YCAibGFyZ2Ugdmlld3BvcnQgbGFyZ2UgZGltZW5zaW9uIiBpcyBgbWF4KGx2dywg
bHZoKWAKKyAgICAgICAgLSBgZHZ3YCAiZHluYW1pYyB2aWV3cG9ydCB3aWR0aCIgaXMgdGhlIHdp
ZHRoIG9mIHRoZSB2aWV3cG9ydCB3aXRoIGFsbCBVQSBpbnRlcmZhY2VzIGJlaW5nIGluIHdoYXRl
dmVyIHN0YXRlIHRoZXkgYXJlIGN1cnJlbnRseSBpbgorICAgICAgICAtIGBkdmhgICJkeW5hbWlj
IHZpZXdwb3J0IGhlaWdodCIgaXMgdGhlIGhlaWdodCBvZiB0aGUgdmlld3BvcnQgd2l0aCBhbGwg
VUEgaW50ZXJmYWNlcyBiZWluZyBpbiB3aGF0ZXZlciBzdGF0ZSB0aGV5IGFyZSBjdXJyZW50bHkg
aW4KKyAgICAgICAgLSBgZHZtaW5gICJkeW5hbWljIHZpZXdwb3J0IHNtYWxsIGRpbWVuc2lvbiIg
aXMgYG1pbihkdncsIGR2aClgCisgICAgICAgIC0gYGR2bWF4YCAiZHluYW1pYyB2aWV3cG9ydCBs
YXJnZSBkaW1lbnNpb24iIGlzIGBtYXgoZHZ3LCBkdmgpYAorICAgICAgICBUaGUgZXhpc3Rpbmcg
YHZ3YC9gdmhgL2B2bWluYC9gdm1heGAgY29ycmVzcG9uZCB0byB0aGUgIlVBLWRlZmF1bHQgdmll
d3BvcnQiLCB3aGljaCBXZWJLaXQKKyAgICAgICAgY29uc2lkZXJzIGVxdWl2YWxlbnQgdG8gdGhl
ICJsYXJnZSB2aWV3cG9ydCIgYGx2d2AvYGx2aGAvYGx2bWluYC9gbHZtYXhgLgorCisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnVub2JzY3VyZWRDb250ZW50U2l6ZUNoYW5nZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpwZXJmb3JtU2l6ZVRvQ29udGVudEF1dG9TaXpl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZW5hYmxlQXV0b1NpemVNb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y2xlYXJTaXplT3ZlcnJpZGVGb3JDU1NTbWFsbFZp
ZXdwb3J0VW5pdHMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0U2l6
ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVWaWV3OjpvdmVycmlkZVdpZHRoRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnJlc2V0T3ZlcnJpZGRlbldpZHRoRm9yQ1NTU21h
bGxWaWV3cG9ydFVuaXRzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6Om92
ZXJyaWRlU2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cyk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3OjpzaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzIGNvbnN0KTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmNsZWFyU2l6ZU92ZXJyaWRlRm9yQ1NT
TGFyZ2VWaWV3cG9ydFVuaXRzKTogUmVuYW1lZCBmcm9tIGBjbGVhclZpZXdwb3J0U2l6ZU92ZXJy
aWRlRm9yQ1NTVmlld3BvcnRVbml0c2AuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNl
dFNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMpOiBSZW5hbWVkIGZyb20gYHNldFZpZXdwb3J0
U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHNgLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpv
dmVycmlkZVdpZHRoRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKTogUmVuYW1lZCBmcm9tIGBvdmVy
cmlkZVZpZXdwb3J0V2lkdGhGb3JDU1NWaWV3cG9ydFVuaXRzYC4KKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6cmVzZXRPdmVycmlkZGVuV2lkdGhGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMp
OiBSZW5hbWVkIGZyb20gYHJlc2V0T3ZlcnJpZGRlblZpZXdwb3J0V2lkdGhGb3JDU1NWaWV3cG9y
dFVuaXRzYC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6b3ZlcnJpZGVTaXplRm9yQ1NT
TGFyZ2VWaWV3cG9ydFVuaXRzKTogUmVuYW1lZCBmcm9tIGBvdmVycmlkZVZpZXdwb3J0U2l6ZUZv
ckNTU1ZpZXdwb3J0VW5pdHNgLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzaXplRm9y
Q1NTTGFyZ2VWaWV3cG9ydFVuaXRzIGNvbnN0KTogUmVuYW1lZCBmcm9tIGB2aWV3cG9ydFNpemVG
b3JDU1NWaWV3cG9ydFVuaXRzYC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y2FsY3Vs
YXRlU2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHNPdmVycmlkZSBjb25zdCk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMgY29u
c3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2l6ZUZvckNTU0RlZmF1
bHRWaWV3cG9ydFVuaXRzIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJWaWV3OjpzaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzIGNvbnN0KTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpzaXplRm9yQ1NTTGFyZ2VWaWV3
cG9ydFVuaXRzIGNvbnN0KTogUmVuYW1lZCBmcm9tIGB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9y
dFVuaXRzYC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnNpemVGb3JDU1NEeW5hbWlj
Vmlld3BvcnRVbml0cyBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmll
dzo6c2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzIGNvbnN0KTogQWRkZWQuCisgICAgICAg
IEZvciAic21hbGwgdmlld3BvcnQiIGBzdndgL2BzdmhgL2Bzdm1pbmAvYHN2bWF4YCwgYWRkIHN1
cHBvcnQgZm9yIGEgbmV3IGBJbnRTaXplYCBtZW1iZXIKKyAgICAgICAgdGhhdCBpcyBwcm9wYWdh
dGVkIGZyb20gdGhlIFVJUHJvY2Vzcy4gSWYgbm90IHNldCwgZmFsbCBiYWNrIHRvICJVQS1kZWZh
dWx0IHZpZXdwb3J0IiBgdndgL2B2aGAvYHZtaW5gL2B2bWF4YC4KKyAgICAgICAgRm9yICJsYXJn
ZSB2aWV3cG9ydCIgYGx2d2AvYGx2aGAvYGx2bWluYC9gbHZtYXhgLCB1c2UgdGhlIHNhbWUgdmFs
dWUgYXMgIlVBLWRlZmF1bHQgdmlld3BvcnQiIGB2d2AvYHZoYC9gdm1pbmAvYHZtYXhgLgorICAg
ICAgICBGb3IgImR5bmFtaWMgdmlld3BvcnQiIGBkdndgL2BkdmhgL2Bkdm1pbmAvYGR2bWF4YCwg
dXNlIHRoZSBzYW1lIHZhbHVlIGFzIGB3aW5kb3cuaW5uZXIqYC4KKyAgICAgICAgRHJpdmUtYnk6
IFJlbmFtZSBgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0c2AgdG8gYHNpemVGb3JDU1NM
YXJnZVZpZXdwb3J0VW5pdHNgIGZvciBjbGFyaXR5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvRmxvYXRTaXplLmg6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFNpemU6Om1pbkRpbWVu
c2lvbiBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRTaXplOjptYXhEaW1l
bnNpb24gY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRTaXpl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnRTaXplOjptaW5EaW1lbnNpb24gY29uc3QpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkludFNpemU6Om1heERpbWVuc2lvbiBjb25zdCk6IEFkZGVk
LgorICAgICAgICBBZGQgdXRpbGl0eS9oZWxwZXIgbWV0aG9kcyBmb3IgcmV0dXJuaW5nIHRoZSBt
aW5pbXVtL21heGltdW0gb2YgdGhlIHdpZHRoIHZzIGhlaWdodC4KKworICAgICAgICAqIGNzcy9E
ZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXBy
ZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6cHJpbWl0aXZlVHlwZSBjb25zdCk6CisgICAgICAg
IERvbid0IGBBU1NFUlRfTk9UX1JFQUNIRURgIG5vdyB0aGF0IHRoZXJlIGFyZSBuZXcgdW5pdCB0
eXBlcy4KKwogMjAyMS0xMC0xOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgR3VhcmFudGVlIG9yZGVyIG9mIFdlYlNvY2tldCBldmVudHMgaW4gY2FzZSBvZiBi
ZWluZyByZXN1bWVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBiYTkxNDNlMWJlMGY3ZDI3
OTZjMTliZmJmMzc1MjljOTU3ZmRlNjQ2Li5mZjIzY2E2YTlmODYyYzUyOGYwMjQ4NDk3OTEwYmE2
ZTI3YmZhZjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAy
MS0xMC0xMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW2Nz
cy12YWx1ZXMtNF0gU3VwcG9ydCBzbWFsbCAoc3YqKSwgbGFyZ2UgKGx2KikgYW5kIGR5bmFtaWMg
KGR2Kikgdmlld3BvcnQgdW5pdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxOTI4NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzE4NTczNzA+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Nb2RlbHMvQ1NTQ29tcGxldGlvbnMuanM6CisKIDIwMjEtMTAtMTggIERhdmlkIEtpbHpl
ciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUg
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5zcGVj
dG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qcy5vcmlnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdmYjZjNmE5YTQ0ZDhl
MjMzY2RkN2U5MzVlYTQ5YWM3N2QzNDgyZTAuLjFlM2VjNjVjM2JjMzg1MjkxOTdmNjdhNjE5ZmZm
ZDVhNTQ2MGU4YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMjEtMTAtMTIgIERldmlu
IFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtjc3MtdmFsdWVzLTRdIFN1
cHBvcnQgc21hbGwgKHN2KiksIGxhcmdlIChsdiopIGFuZCBkeW5hbWljIChkdiopIHZpZXdwb3J0
IHVuaXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTkyODcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxODU3MzcwPgorCisgICAgICAgIFJldmll
d2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBTcGVjOiA8aHR0cHM6Ly9kcmFmdHMuY3Nz
d2cub3JnL2Nzcy12YWx1ZXMtNC8jdmlld3BvcnQtdmFyaWFudHM+CisKKyAgICAgICAgVGVzdHM6
IENTU1ZpZXdwb3J0VW5pdHMuQWxsU2FtZQorICAgICAgICAgICAgICAgQ1NTVmlld3BvcnRVbml0
cy5FbXB0eVVub2JzY3VyZWRTaXplT3ZlcnJpZGVzCisgICAgICAgICAgICAgICBDU1NWaWV3cG9y
dFVuaXRzLlNhbWVVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlcworICAgICAgICAgICAgICAgQ1NTVmll
d3BvcnRVbml0cy5EaWZmZXJlbnRVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlcworCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvaW9zL1dLV2ViVmlld0lPUy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9wcm9jZXNzV2ls
bFN3YXBPckRpZEV4aXRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaXNwYXRjaFNldE1pbmlt
dW1Vbm9ic2N1cmVkU2l6ZTpdKTogQWRkZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBfZnJhbWVP
ckJvdW5kc0NoYW5nZWRdKToKKyAgICAgICAgKGFjdGl2ZU1pbmltdW1Vbm9ic2N1cmVkU2l6ZSk6
IEFkZGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RpZENvbXBsZXRlQW5pbWF0ZWRSZXNpemVd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9taW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZV0p
OiBBZGRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRNaW5pbXVtVW5vYnNjdXJlZFNpemVP
dmVycmlkZTpdKTogQWRkZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBfYmVnaW5BbmltYXRlZFJl
c2l6ZVdpdGhVcGRhdGVzOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX292ZXJyaWRlTGF5b3V0
UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTptYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVy
cmlkZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9jbGVhck92ZXJyaWRlTGF5b3V0UGFyYW1l
dGVyc10pOgorICAgICAgICBXaGVuIHRoaXMgdmFsdWUgaXMgc2V0IGZyb20gYC1bV0tXZWJWaWV3
IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6bWF4aW11bVVu
b2JzY3VyZWRTaXplT3ZlcnJpZGU6XWAKKyAgICAgICAgaXQgc2hvdWxkIGJlIHVzZWQgYXMgdGhl
IHZhbHVlIGZvciAic21hbGwgdmlld3BvcnQiIGBzdndgL2BzdmhgL2Bzdm1pbmAvYHN2bWF4YCwg
YnV0IG9ubHkKKyAgICAgICAgZnJvbSB0aGF0IGNvZGVwYXRoLiBEeW5hbWljIHZpZXdwb3J0IGNo
YW5nZXMgc2hvdWxkIG5vdCB1cGRhdGUgaXQgYXMgdGhleSBkb24ndCBuZWNlc3NhcmlseQorICAg
ICAgICByZXByZXNlbnQgYSBjaGFuZ2UgaW4gdGhlIG1pbmltdW0vbWF4aW11bSB2aWV3cG9ydCBz
aXplLCBqdXN0IHRoZSBjdXJyZW50IHNpemUuCisgICAgICAgICJsYXJnZSB2aWV3cG9ydCIgYGx2
d2AvYGx2aGAvYGx2bWluYC9gbHZtYXhgIGFuZCAiZHluYW1pYyB2aWV3cG9ydCIgYGR2d2AvYGR2
aGAvYGR2bWluYC9gZHZtYXhgCisgICAgICAgIChhcyB3ZWxsIGFzIHRoZSBleGlzdGluZyAiVUEt
ZGVmYXVsdCB2aWV3cG9ydCIgYHZ3YC9gdmhgL2B2bWluYC9gdm1heGApIGNhbiBiZSBkZXJpdmVk
IGZyb20KKyAgICAgICAgZXhpc3RpbmcgbG9naWMuCisgICAgICAgIFNlZSB0aGUgV2ViQ29yZSBD
aGFuZ2VMb2cgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0TWluaW11bVVub2JzY3VyZWRT
aXplKTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZSk6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6c2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpzZXRNaW5pbXVtVW5vYnNjdXJlZFNpemUpOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnVwZGF0ZVZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpOgorICAg
ICAgICBBZGQgcGlwaW5nIGZyb20gdGhlIFVJUHJvY2VzcyB0byB0aGUgV2ViUHJvY2VzcyBmb3Ig
dGhlIG5ldyBtaW5pbXVtIHVub2JzY3VyZWQgc2l6ZSBvdmVycmlkZS4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9y
TmV3UGFnZSk6CisgICAgICAgIERyaXZlLWJ5OiBSZW5hbWUgYHNldFZpZXdwb3J0U2l6ZUZvckNT
U1ZpZXdwb3J0VW5pdHNgIHRvIGBzZXRTaXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzYCBmb3Ig
Y2xhcml0eS4KKwogMjAyMS0xMC0xOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjg0MDc5KTogZmFzdC9jYW52YXMvZ3JhZGll
bnQtd2l0aC1jbGlwLmh0bWwgYW5kIGZhc3QvY2FudmFzL2dyYWRpZW50LXRleHQtd2l0aC1zaGFk
b3cuaHRtbCBhcmUgZmxha3kgZmFpbHVyZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZl
VmFsdWUuY3BwCmluZGV4IDQ5ZWU4MGRiZmE4Nzg3MDYwY2VjODAzZDA3YmExOThlYjA2MDI2NTAu
LmY1YjAwYjc4MmFkNzlhZjYzZWM1ZTFjYjg3OTk4ZGU4ZGIyOTg1ZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcApAQCAtNjEsNiArNjEsMTAgQEAgc3RhdGljIGlu
bGluZSBib29sIGlzVmFsaWRDU1NVbml0VHlwZUZvckRvdWJsZUNvbnZlcnNpb24oQ1NTVW5pdFR5
cGUgdW5pdFR5cGUpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NNOgogICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19ERUc6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RJTUVOU0lPTjoK
KyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19EVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46CisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0RWVzoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRU1TOgogICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19FWFM6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0ZSOgpA
QCAtNzcsMTEgKzgxLDE5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkQ1NTVW5pdFR5cGVG
b3JEb3VibGVDb252ZXJzaW9uKENTU1VuaXRUeXBlIHVuaXRUeXBlKQogICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19QWDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUToKICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfTEhTOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19M
Vk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZXOgogICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19STEhTOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19RVUlSS1lfRU1TOgogICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SQUQ6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JF
TVM6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1M6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1NWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNQVg6CisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1NWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6CiAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1RVUk46CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZI
OgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgpAQCAtMTQwLDYgKzE1MiwxMCBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgaXNTdHJpbmdUeXBlKENTU1VuaXRUeXBlIHR5cGUpCiAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0RQQ006CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQSToK
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBQWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfRFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDoKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfWDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRU1TOgog
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19FWFM6CkBAIC0xNTAsNiArMTY2LDEwIEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBpc1N0cmluZ1R5cGUoQ1NTVW5pdFR5cGUgdHlwZSkKICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfSURFTlQ6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lOOgogICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19LSFo6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xW
SDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0xWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CiAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX01NOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19NUzoKICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSOgpAQCAtMTY5LDYgKzE4OSwxMCBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgaXNTdHJpbmdUeXBlKENTU1VuaXRUeXBlIHR5cGUpCiAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1JFTVM6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JHQkNPTE9SOgog
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19T
Vkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19TVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgogICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19TSEFQRToKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVFVSTjoK
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVU5JQ09ERV9SQU5HRToKQEAgLTUyMiw2ICs1NDYs
MTggQEAgdm9pZCBDU1NQcmltaXRpdmVWYWx1ZTo6Y2xlYW51cCgpCiAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1ZIOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOgogICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19WTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
U1ZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOgorICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19MVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDoKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfTFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFY
OgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0RWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46CisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0RWTUFYOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUFBYOgogICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19YOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUEk6
CkBAIC02NTEsMjEgKzY4NywzNyBAQCBkb3VibGUgQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVV
bnpvb21lZE5vbkNhbGNMZW5ndGhEb3VibGUoQ1NTVW5pdFR5cGUgcHJpbWl0aQogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIC0xLjA7CiAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1ZIOgotICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXct
PnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKS5oZWlnaHQoKSAvIDEwMC4wICogdmFs
dWUgOiAwOworICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnNpemVGb3JD
U1NEZWZhdWx0Vmlld3BvcnRVbml0cygpLmhlaWdodCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7CiAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZXOgotICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/
IHJlbmRlclZpZXctPnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKS53aWR0aCgpIC8g
MTAwLjAgKiB2YWx1ZSA6IDA7CisgICAgICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVuZGVyVmll
dy0+c2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCkud2lkdGgoKSAvIDEwMC4wICogdmFs
dWUgOiAwOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgotICAgICAgICBpZiAocmVu
ZGVyVmlldykgewotICAgICAgICAgICAgSW50U2l6ZSB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9y
dFVuaXRzID0gcmVuZGVyVmlldy0+dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpOwot
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWF4KHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5p
dHMud2lkdGgoKSwgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cy5oZWlnaHQoKSkgLyAx
MDAuMCAqIHZhbHVlOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAg
cmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NTRGVmYXVsdFZpZXdwb3J0
VW5pdHMoKS5tYXhEaW1lbnNpb24oKSAvIDEwMC4wICogdmFsdWUgOiB2YWx1ZTsKICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfVk1JTjoKLSAgICAgICAgaWYgKHJlbmRlclZpZXcpIHsKLSAgICAg
ICAgICAgIEludFNpemUgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyA9IHJlbmRlclZp
ZXctPnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKTsKLSAgICAgICAgICAgIHJldHVy
biBzdGQ6Om1pbih2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzLndpZHRoKCksIHZpZXdw
b3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMuaGVpZ2h0KCkpIC8gMTAwLjAgKiB2YWx1ZTsKLSAg
ICAgICAgfQotICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIHJldHVybiByZW5kZXJWaWV3
ID8gcmVuZGVyVmlldy0+c2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCkubWluRGltZW5z
aW9uKCkgLyAxMDAuMCAqIHZhbHVlIDogdmFsdWU7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1NWSDoKKyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NT
U21hbGxWaWV3cG9ydFVuaXRzKCkuaGVpZ2h0KCkgLyAxMDAuMCAqIHZhbHVlIDogMDsKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgorICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJl
bmRlclZpZXctPnNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoKS53aWR0aCgpIC8gMTAwLjAg
KiB2YWx1ZSA6IDA7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOgorICAgICAgICBy
ZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5p
dHMoKS5tYXhEaW1lbnNpb24oKSAvIDEwMC4wICogdmFsdWUgOiB2YWx1ZTsKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfU1ZNSU46CisgICAgICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVuZGVy
Vmlldy0+c2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpLm1pbkRpbWVuc2lvbigpIC8gMTAw
LjAgKiB2YWx1ZSA6IHZhbHVlOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAg
ICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVuZGVyVmlldy0+c2l6ZUZvckNTU0xhcmdlVmlld3Bv
cnRVbml0cygpLmhlaWdodCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0xWVzoKKyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5z
aXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKCkud2lkdGgoKSAvIDEwMC4wICogdmFsdWUgOiAw
OworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDoKKyAgICAgICAgcmV0dXJuIHJlbmRl
clZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKCkubWF4RGlt
ZW5zaW9uKCkgLyAxMDAuMCAqIHZhbHVlIDogdmFsdWU7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0xWTUlOOgorICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnNpemVG
b3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoKS5taW5EaW1lbnNpb24oKSAvIDEwMC4wICogdmFsdWUg
OiB2YWx1ZTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZIOgorICAgICAgICByZXR1cm4g
cmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnNpemVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cygp
LmhlaWdodCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0RWVzoKKyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NT
RHluYW1pY1ZpZXdwb3J0VW5pdHMoKS53aWR0aCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOgorICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/
IHJlbmRlclZpZXctPnNpemVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cygpLm1heERpbWVuc2lv
bigpIC8gMTAwLjAgKiB2YWx1ZSA6IHZhbHVlOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19E
Vk1JTjoKKyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NT
RHluYW1pY1ZpZXdwb3J0VW5pdHMoKS5taW5EaW1lbnNpb24oKSAvIDEwMC4wICogdmFsdWUgOiB2
YWx1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgcmV0dXJuIC0xLjA7CkBAIC03MTIsMTYgKzc2NCw1MiBAQCBkb3VibGUgQ1NTUHJpbWl0aXZl
VmFsdWU6OmNvbXB1dGVOb25DYWxjTGVuZ3RoRG91YmxlKGNvbnN0IENTU1RvTGVuZ3RoQ29udmVy
c2lvbgogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSDoKLSAg
ICAgICAgcmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEudmlld3BvcnRIZWlnaHRGYWN0b3Io
KTsKKyAgICAgICAgcmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEuZGVmYXVsdFZpZXdwb3J0
RmFjdG9yKCkuaGVpZ2h0KCk7CiAKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVlc6Ci0gICAg
ICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLnZpZXdwb3J0V2lkdGhGYWN0b3IoKTsK
KyAgICAgICAgcmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEuZGVmYXVsdFZpZXdwb3J0RmFj
dG9yKCkud2lkdGgoKTsKIAogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgotICAgICAg
ICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0YS52aWV3cG9ydE1heEZhY3RvcigpOworICAg
ICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0YS5kZWZhdWx0Vmlld3BvcnRGYWN0b3Io
KS5tYXhEaW1lbnNpb24oKTsKIAogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOgotICAg
ICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0YS52aWV3cG9ydE1pbkZhY3RvcigpOwor
ICAgICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0YS5kZWZhdWx0Vmlld3BvcnRGYWN0
b3IoKS5taW5EaW1lbnNpb24oKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6Cisg
ICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLnNtYWxsVmlld3BvcnRGYWN0b3Io
KS5oZWlnaHQoKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6CisgICAgICAgIHJl
dHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLnNtYWxsVmlld3BvcnRGYWN0b3IoKS53aWR0aCgp
OworCisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOgorICAgICAgICByZXR1cm4gdmFs
dWUgKiBjb252ZXJzaW9uRGF0YS5zbWFsbFZpZXdwb3J0RmFjdG9yKCkubWF4RGltZW5zaW9uKCk7
CisKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU46CisgICAgICAgIHJldHVybiB2YWx1
ZSAqIGNvbnZlcnNpb25EYXRhLnNtYWxsVmlld3BvcnRGYWN0b3IoKS5taW5EaW1lbnNpb24oKTsK
KworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAgICAgIHJldHVybiB2YWx1ZSAq
IGNvbnZlcnNpb25EYXRhLmxhcmdlVmlld3BvcnRGYWN0b3IoKS5oZWlnaHQoKTsKKworICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNp
b25EYXRhLmxhcmdlVmlld3BvcnRGYWN0b3IoKS53aWR0aCgpOworCisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0xWTUFYOgorICAgICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0YS5s
YXJnZVZpZXdwb3J0RmFjdG9yKCkubWF4RGltZW5zaW9uKCk7CisKKyAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfTFZNSU46CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmxh
cmdlVmlld3BvcnRGYWN0b3IoKS5taW5EaW1lbnNpb24oKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19EVkg6CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmR5bmFt
aWNWaWV3cG9ydEZhY3RvcigpLmhlaWdodCgpOworCisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0RWVzoKKyAgICAgICAgcmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEuZHluYW1pY1ZpZXdw
b3J0RmFjdG9yKCkud2lkdGgoKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDoK
KyAgICAgICAgcmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEuZHluYW1pY1ZpZXdwb3J0RmFj
dG9yKCkubWF4RGltZW5zaW9uKCk7CisKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46
CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmR5bmFtaWNWaWV3cG9ydEZh
Y3RvcigpLm1pbkRpbWVuc2lvbigpOwogCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xIUzoK
ICAgICAgICAgQVNTRVJUKGNvbnZlcnNpb25EYXRhLnN0eWxlKCkpOwpAQCAtOTkwLDYgKzEwNzgs
MTggQEAgU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjp1bml0VHlwZVN0cmluZyhDU1NVbml0VHlw
ZSB1bml0VHlwZSkKICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOiByZXR1cm4gInZo
IjsKICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46IHJldHVybiAidm1pbiI7CiAg
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOiByZXR1cm4gInZtYXgiOworICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOiByZXR1cm4gInN2dyI7CisgICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19TVkg6IHJldHVybiAic3ZoIjsKKyAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1NWTUlOOiByZXR1cm4gInN2bWluIjsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX1NWTUFYOiByZXR1cm4gInN2bWF4IjsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0xWVzogcmV0dXJuICJsdnciOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZI
OiByZXR1cm4gImx2aCI7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjogcmV0
dXJuICJsdm1pbiI7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDogcmV0dXJu
ICJsdm1heCI7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6IHJldHVybiAiZHZ3
IjsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDogcmV0dXJuICJkdmgiOworICAg
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46IHJldHVybiAiZHZtaW4iOworICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6IHJldHVybiAiZHZtYXgiOwogICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfRFBQWDogcmV0dXJuICJkcHB4IjsKICAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1g6IHJldHVybiAieCI7CiAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19EUEk6IHJldHVybiAiZHBpIjsKQEAgLTExNTIsNiArMTI1MiwzMCBAQCBBTFdBWVNfSU5M
SU5FIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4
dCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJWYWx1ZSgidm1pbiIpOwogICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgogICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVy
VmFsdWUoInZtYXgiKTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgorICAgICAgICBy
ZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoInN2dyIpOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19TVkg6CisgICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJWYWx1ZSgic3ZoIik7CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOgorICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFs
dWUoInN2bWluIik7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOgorICAgICAgICBy
ZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoInN2bWF4Iik7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0xWVzoKKyAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlclZhbHVlKCJsdnciKTsKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOgorICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFs
dWUoImx2aCIpOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjoKKyAgICAgICAgcmV0
dXJuIGZvcm1hdE51bWJlclZhbHVlKCJsdm1pbiIpOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19MVk1BWDoKKyAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlclZhbHVlKCJsdm1heCIpOworICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6CisgICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJW
YWx1ZSgiZHZ3Iik7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICAgICAgcmV0
dXJuIGZvcm1hdE51bWJlclZhbHVlKCJkdmgiKTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
RFZNSU46CisgICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJWYWx1ZSgiZHZtaW4iKTsKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6CisgICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJW
YWx1ZSgiZHZtYXgiKTsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfSURFTlQ6CiAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1VOSUNPREVfUkFOR0U6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0NBTENfUEVSQ0VOVEFHRV9XSVRIX05VTUJFUjoKQEAgLTEyMTksNiArMTM0MywxOCBAQCBi
b29sIENTU1ByaW1pdGl2ZVZhbHVlOjplcXVhbHMoY29uc3QgQ1NTUHJpbWl0aXZlVmFsdWUmIG90
aGVyKSBjb25zdAogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSDoKICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfVk1JTjoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1BWDoKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19TVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZXOgorICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19MVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUlOOgorICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
RFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6CisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0RWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDoKICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfRlI6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1E6CiAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xIUzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlLmgKaW5kZXggOGI4MmI5YmE5NDk2YWEwOTRiZGZlZGJhOGRmOTE5Y2UyZWJhN2YzMy4uYjc0
NzljN2JmN2Q5NTQ3NTA4NzkyOTQ5NmY0ZDRiMWE5ZWQ1ODg2MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ByaW1pdGl2ZVZhbHVlLmgKQEAgLTExMSwxMCArMTExLDYgQEAgcHVibGljOgogICAgIGJv
b2wgaXNYKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVHlwZSgpID09IENTU1VuaXRUeXBlOjpD
U1NfWDsgfQogICAgIGJvb2wgaXNSZXNvbHV0aW9uKCkgY29uc3QgeyByZXR1cm4gdW5pdENhdGVn
b3J5KHByaW1pdGl2ZVR5cGUoKSkgPT0gQ1NTVW5pdENhdGVnb3J5OjpSZXNvbHV0aW9uOyB9CiAg
ICAgYm9vbCBpc1ZpZXdwb3J0UGVyY2VudGFnZUxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIGlzVmll
d3BvcnRQZXJjZW50YWdlTGVuZ3RoKHByaW1pdGl2ZVVuaXRUeXBlKCkpOyB9Ci0gICAgYm9vbCBp
c1ZpZXdwb3J0UGVyY2VudGFnZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVW5pdFR5
cGUoKSA9PSBDU1NVbml0VHlwZTo6Q1NTX1ZXOyB9Ci0gICAgYm9vbCBpc1ZpZXdwb3J0UGVyY2Vu
dGFnZUhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5p
dFR5cGU6OkNTU19WSDsgfQotICAgIGJvb2wgaXNWaWV3cG9ydFBlcmNlbnRhZ2VNYXgoKSBjb25z
dCB7IHJldHVybiBwcmltaXRpdmVVbml0VHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1NfVk1BWDsg
fQotICAgIGJvb2wgaXNWaWV3cG9ydFBlcmNlbnRhZ2VNaW4oKSBjb25zdCB7IHJldHVybiBwcmlt
aXRpdmVVbml0VHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1NfVk1JTjsgfQogICAgIGJvb2wgaXNW
YWx1ZUlEKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVW5pdFR5cGUoKSA9PSBDU1NVbml0VHlw
ZTo6Q1NTX1ZBTFVFX0lEOyB9CiAgICAgYm9vbCBpc0ZsZXgoKSBjb25zdCB7IHJldHVybiBwcmlt
aXRpdmVUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19GUjsgfQogICAgIGJvb2wgaXNDdXN0b21J
ZGVudCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6
OkN1c3RvbUlkZW50OyB9CkBAIC0zMTUsMTAgKzMxMSw3IEBAIGNvbnN0ZXhwciBib29sIENTU1By
aW1pdGl2ZVZhbHVlOjppc1Jlc29sdXRpb24oQ1NTVW5pdFR5cGUgdHlwZSkKIAogY29uc3RleHBy
IGJvb2wgQ1NTUHJpbWl0aXZlVmFsdWU6OmlzVmlld3BvcnRQZXJjZW50YWdlTGVuZ3RoKENTU1Vu
aXRUeXBlIHR5cGUpCiB7Ci0gICAgcmV0dXJuIHR5cGUgPT0gQ1NTVW5pdFR5cGU6OkNTU19WVwot
ICAgICAgICB8fCB0eXBlID09IENTU1VuaXRUeXBlOjpDU1NfVkgKLSAgICAgICAgfHwgdHlwZSA9
PSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU4KLSAgICAgICAgfHwgdHlwZSA9PSBDU1NVbml0VHlwZTo6
Q1NTX1ZNQVg7CisgICAgcmV0dXJuIHR5cGUgPj0gQ1NTVW5pdFR5cGU6OkNTU19WVyAmJiB0eXBl
IDw9IENTU1VuaXRUeXBlOjpDU1NfRFZNQVg7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlu
bGluZSBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoVCYm
IHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVy
c2lvbkRhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGEuY3BwCmluZGV4IDMxOTgwZTYyYzk1ZWI3OTBiNTA3MjY4N2RmZTU3MzE2Mzk5MzZiNjguLmIw
MTVmMWFlN2EwNzg2NjdjNWE3NWQ2NGQ1Zjg4YTRmOWIxOGRhMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5jcHAKQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDU1NUb0xlbmd0aENvbnZlcnNpb25E
YXRhLmgiCiAKKyNpbmNsdWRlICJGbG9hdFNpemUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5o
IgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKIApAQCAtNDMsNTAgKzQ0LDQ4IEBAIGZsb2F0IENT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6Onpvb20oKSBjb25zdAogICAgIHJldHVybiAqbV96b29t
OwogfQogCi1kb3VibGUgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6dmlld3BvcnRXaWR0aEZh
Y3RvcigpIGNvbnN0CitGbG9hdFNpemUgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6ZGVmYXVs
dFZpZXdwb3J0RmFjdG9yKCkgY29uc3QKIHsKICAgICBpZiAobV92aWV3cG9ydERlcGVuZGVuY3lE
ZXRlY3Rpb25TdHlsZSkKICAgICAgICAgbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHls
ZS0+c2V0SGFzVmlld3BvcnRVbml0cygpOwogCiAgICAgaWYgKCFtX3JlbmRlclZpZXcpCi0gICAg
ICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIG1fcmVuZGVy
Vmlldy0+dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpLndpZHRoKCkgLyAxMDAuMDsK
KyAgICByZXR1cm4gbV9yZW5kZXJWaWV3LT5zaXplRm9yQ1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMo
KSAvIDEwMC4wOwogfQogCi1kb3VibGUgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6dmlld3Bv
cnRIZWlnaHRGYWN0b3IoKSBjb25zdAorRmxvYXRTaXplIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGE6OnNtYWxsVmlld3BvcnRGYWN0b3IoKSBjb25zdAogewogICAgIGlmIChtX3ZpZXdwb3J0RGVw
ZW5kZW5jeURldGVjdGlvblN0eWxlKQogICAgICAgICBtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVj
dGlvblN0eWxlLT5zZXRIYXNWaWV3cG9ydFVuaXRzKCk7CiAKICAgICBpZiAoIW1fcmVuZGVyVmll
dykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiB7IH07CiAKLSAgICByZXR1cm4g
bV9yZW5kZXJWaWV3LT52aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkuaGVpZ2h0KCkg
LyAxMDAuMDsKKyAgICByZXR1cm4gbV9yZW5kZXJWaWV3LT5zaXplRm9yQ1NTU21hbGxWaWV3cG9y
dFVuaXRzKCkgLyAxMDAuMDsKIH0KIAotZG91YmxlIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6
OnZpZXdwb3J0TWluRmFjdG9yKCkgY29uc3QKK0Zsb2F0U2l6ZSBDU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhOjpsYXJnZVZpZXdwb3J0RmFjdG9yKCkgY29uc3QKIHsKICAgICBpZiAobV92aWV3cG9y
dERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZSkKICAgICAgICAgbV92aWV3cG9ydERlcGVuZGVuY3lE
ZXRlY3Rpb25TdHlsZS0+c2V0SGFzVmlld3BvcnRVbml0cygpOwogCiAgICAgaWYgKCFtX3JlbmRl
clZpZXcpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgSW50
U2l6ZSB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzID0gbV9yZW5kZXJWaWV3LT52aWV3
cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCk7Ci0gICAgcmV0dXJuIHN0ZDo6bWluKHZpZXdw
b3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMud2lkdGgoKSwgdmlld3BvcnRTaXplRm9yQ1NTVmll
d3BvcnRVbml0cy5oZWlnaHQoKSkgLyAxMDAuMDsKKyAgICByZXR1cm4gbV9yZW5kZXJWaWV3LT5z
aXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKCkgLyAxMDAuMDsKIH0KIAotZG91YmxlIENTU1Rv
TGVuZ3RoQ29udmVyc2lvbkRhdGE6OnZpZXdwb3J0TWF4RmFjdG9yKCkgY29uc3QKK0Zsb2F0U2l6
ZSBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpkeW5hbWljVmlld3BvcnRGYWN0b3IoKSBjb25z
dAogewogICAgIGlmIChtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlKQogICAgICAg
ICBtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlLT5zZXRIYXNWaWV3cG9ydFVuaXRz
KCk7CiAKICAgICBpZiAoIW1fcmVuZGVyVmlldykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
IHJldHVybiB7IH07CiAKLSAgICBJbnRTaXplIHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5p
dHMgPSBtX3JlbmRlclZpZXctPnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKTsKLSAg
ICByZXR1cm4gc3RkOjptYXgodmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cy53aWR0aCgp
LCB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzLmhlaWdodCgpKSAvIDEwMC4wOworICAg
IHJldHVybiBtX3JlbmRlclZpZXctPnNpemVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cygpIC8g
MTAwLjA7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oCmluZGV4IDk1Mzc3OWY4ZDU1NWYwYmM5ODE5
Mjc3NWU3MzdjNTViMTUwNjAwZWUuLmU1YzJiNjJjNTJlYzIxYTM2NTI5ODAxYzdjZDQ4NmFmYmM5
NTYxNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGEuaApAQCAtMzYsNiArMzYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEZs
b2F0U2l6ZTsKIGNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgUmVuZGVyVmlldzsKIApAQCAtNzQs
MTAgKzc1LDEwIEBAIHB1YmxpYzoKICAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5VG9Db21wdXRl
KCkgY29uc3QgeyByZXR1cm4gbV9wcm9wZXJ0eVRvQ29tcHV0ZS52YWx1ZV9vcihDU1NQcm9wZXJ0
eUludmFsaWQpOyB9CiAgICAgY29uc3QgUmVuZGVyVmlldyogcmVuZGVyVmlldygpIGNvbnN0IHsg
cmV0dXJuIG1fcmVuZGVyVmlldzsgfQogCi0gICAgZG91YmxlIHZpZXdwb3J0V2lkdGhGYWN0b3Io
KSBjb25zdDsKLSAgICBkb3VibGUgdmlld3BvcnRIZWlnaHRGYWN0b3IoKSBjb25zdDsKLSAgICBk
b3VibGUgdmlld3BvcnRNaW5GYWN0b3IoKSBjb25zdDsKLSAgICBkb3VibGUgdmlld3BvcnRNYXhG
YWN0b3IoKSBjb25zdDsKKyAgICBGbG9hdFNpemUgZGVmYXVsdFZpZXdwb3J0RmFjdG9yKCkgY29u
c3Q7CisgICAgRmxvYXRTaXplIHNtYWxsVmlld3BvcnRGYWN0b3IoKSBjb25zdDsKKyAgICBGbG9h
dFNpemUgbGFyZ2VWaWV3cG9ydEZhY3RvcigpIGNvbnN0OworICAgIEZsb2F0U2l6ZSBkeW5hbWlj
Vmlld3BvcnRGYWN0b3IoKSBjb25zdDsKIAogICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEg
Y29weVdpdGhBZGp1c3RlZFpvb20oZmxvYXQgbmV3Wm9vbSkgY29uc3QKICAgICB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5pdHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1VuaXRzLmNwcAppbmRleCA0ZjQ2OGIzZjNiNTcxMjZjMTU0YzEzNjg2ODVkMTgxOWI3OTFk
MjNlLi4yNGNiNjYzZTJjNWUzMzFlNWIyZGViZmQ1MmRhNDVmMzI0YjkxMzUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5pdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NVbml0cy5jcHAKQEAgLTEzOCw2ICsxMzgsMTggQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgQ1NTVW5pdFR5cGUgdW5pdFR5cGUpCiAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1ZIOiB0cyA8PCAidmgiOyBicmVhazsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfVk1JTjogdHMgPDwgInZtaW4iOyBicmVhazsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
Vk1BWDogdHMgPDwgInZtYXgiOyBicmVhazsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZX
OiB0cyA8PCAic3Z3IjsgYnJlYWs7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDogdHMg
PDwgInN2aCI7IGJyZWFrOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjogdHMgPDwg
InN2bWluIjsgYnJlYWs7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOiB0cyA8PCAi
c3ZtYXgiOyBicmVhazsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZXOiB0cyA8PCAibHZ3
IjsgYnJlYWs7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDogdHMgPDwgImx2aCI7IGJy
ZWFrOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjogdHMgPDwgImx2bWluIjsgYnJl
YWs7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOiB0cyA8PCAibHZtYXgiOyBicmVh
azsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZXOiB0cyA8PCAiZHZ3IjsgYnJlYWs7Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDogdHMgPDwgImR2aCI7IGJyZWFrOworICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjogdHMgPDwgImR2bWluIjsgYnJlYWs7CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOiB0cyA8PCAiZHZtYXgiOyBicmVhazsKICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfRFBQWDogdHMgPDwgImRwcHgiOyBicmVhazsKICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfWDogdHMgPDwgIngiOyBicmVhazsKICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFBJOiB0cyA8PCAiZHBpIjsgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVW5pdHMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbml0cy5oCmluZGV4IDk3
MjU1YTllYzM3ODI1YzhiN2U0NDg5NWNmNjU4MzVkOWI4ZDJjZmEuLmIwZjdjMmQyZjZlYWJjYzcz
ZjRjYzMyMmE1YmVhZjU4MmY4YzAwNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NVbml0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbml0cy5oCkBAIC01OSw2ICs1
OSwxOCBAQCBlbnVtIGNsYXNzIENTU1VuaXRUeXBlIDogdWludDhfdCB7CiAgICAgQ1NTX1ZILAog
ICAgIENTU19WTUlOLAogICAgIENTU19WTUFYLAorICAgIENTU19TVlcsCisgICAgQ1NTX1NWSCwK
KyAgICBDU1NfU1ZNSU4sCisgICAgQ1NTX1NWTUFYLAorICAgIENTU19MVlcsCisgICAgQ1NTX0xW
SCwKKyAgICBDU1NfTFZNSU4sCisgICAgQ1NTX0xWTUFYLAorICAgIENTU19EVlcsCisgICAgQ1NT
X0RWSCwKKyAgICBDU1NfRFZNSU4sCisgICAgQ1NTX0RWTUFYLAogICAgIENTU19EUFBYLAogICAg
IENTU19YLAogICAgIENTU19EUEksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVw
cmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJl
Y2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNwcAppbmRleCBiYmQwMTQ5OTE3OTg0NzM4ODdjZjQ4
Mjg5YzU0NmI2MjUzZDM4M2E1Li43ZGI1Y2JhMDY1YTkzNWE1NDk5MTJkNTRiYjU5YjFlZThmYTAz
MTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0
aXZlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01Qcmlt
aXRpdmVWYWx1ZS5jcHAKQEAgLTkzLDEwICs5Myw5IEBAIHVuc2lnbmVkIHNob3J0IERlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpwcmltaXRpdmVUeXBlKCkgY29uc3QKICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfVk1JTjogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU19W
TUlOOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WVzogICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gQ1NTX1ZXOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19YOiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gMzc7Ci0gICAgfQogCi0gICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgcmV0dXJuIENTU19VTktOT1dOOworICAgIGRlZmF1bHQ6ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTX1VOS05PV047Cisg
ICAgfQogfQogCiBFeGNlcHRpb25PcjxmbG9hdD4gRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFs
dWU6OmdldEZsb2F0VmFsdWUodW5zaWduZWQgc2hvcnQgdW5pdFR5cGUpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjQ2F0ZWdvcnlNYXBwaW5nLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNDYXRlZ29yeU1hcHBpbmcuY3BwCmluZGV4
IDJkMGExYzIwMDFmMTJmZTIxNjhiNGM3YmQ4Mjg3OGViMTBmNzE4Y2QuLjllZjFkNDU2OTIwMmVl
NTkzNTIzYzBkYTJjODI3MjcxMDJmNzYwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9jYWxjL0NTU0NhbGNDYXRlZ29yeU1hcHBpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9jYWxjL0NTU0NhbGNDYXRlZ29yeU1hcHBpbmcuY3BwCkBAIC01NCw2ICs1NCwxOCBAQCBDYWxj
dWxhdGlvbkNhdGVnb3J5IGNhbGNVbml0Q2F0ZWdvcnkoQ1NTVW5pdFR5cGUgdHlwZSkKICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfVkg6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46
CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1NWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOgorICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19TVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNQVg6CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZI
OgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfTFZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfRFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjoKKyAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6CiAgICAgICAgIHJldHVybiBDYWxjdWxhdGlv
bkNhdGVnb3J5OjpMZW5ndGg7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0U6
CiAgICAgICAgIHJldHVybiBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50OwpAQCAtMTEwLDYg
KzEyMiwxOCBAQCBDYWxjdWxhdGlvbkNhdGVnb3J5IGNhbGN1bGF0aW9uQ2F0ZWdvcnlGb3JDb21i
aW5hdGlvbihDU1NVbml0VHlwZSB0eXBlKQogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSDoK
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgorICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19TVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOgorICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZX
OgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0xWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDoKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfRFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19E
Vk1BWDoKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gQ2FsY3VsYXRpb25DYXRlZ29yeTo6
T3RoZXI7CiAgICAgfQpAQCAtMTYyLDYgKzE4NiwxOCBAQCBib29sIGhhc0RvdWJsZVZhbHVlKENT
U1VuaXRUeXBlIHR5cGUpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOgogICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19WTUlOOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1NWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU46CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1NWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19EVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOgogICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUFBYOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19Y
OgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUEk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwCmluZGV4IDliZGMxM2FkYmQ1MDA3OWFkODQwNzgwYjIw
NzA2MWQ0Mzc5Njc0NzMuLmRlNTVkMzRjOTcyODQxMmM2ZmMzNTJiMTIyOTU1MzQ2NjgxMDc3NmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwCkBAIC0x
MzQsOCArMTM0LDI2IEBAIENTU1VuaXRUeXBlIGNzc1ByaW1pdGl2ZVZhbHVlVW5pdEZyb21Ucmll
KGNvbnN0IENoYXJhY3RlclR5cGUqIGRhdGEsIHVuc2lnbmVkIGxlCiAgICAgICAgICAgICAgICAg
aWYgKHRvQVNDSUlMb3dlcihkYXRhWzJdKSA9PSAnaScpCiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBDU1NVbml0VHlwZTo6Q1NTX0RQSTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgJ3YnOgorICAgICAgICAgICAgICAgIHN3aXRjaCAodG9BU0NJSUxvd2VyKGRh
dGFbMl0pKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnaCc6CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0RWSDsKKyAgICAgICAgICAgICAgICBjYXNlICd3JzoK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfRFZXOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAnbCc6CisgICAgICAg
ICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbMV0pID09ICd2JykgeworICAgICAgICAgICAgICAg
IHN3aXRjaCAodG9BU0NJSUxvd2VyKGRhdGFbMl0pKSB7CisgICAgICAgICAgICAgICAgY2FzZSAn
aCc6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0xWSDsKKyAg
ICAgICAgICAgICAgICBjYXNlICd3JzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1Vu
aXRUeXBlOjpDU1NfTFZXOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlICdrJzoKICAgICAgICAgICAgIGlmICh0b0FTQ0lJ
TG93ZXIoZGF0YVsxXSkgPT0gJ2gnICYmIHRvQVNDSUlMb3dlcihkYXRhWzJdKSA9PSAneicpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfS0haOwpAQCAtMTU1LDkgKzE3
MywxOSBAQCBDU1NVbml0VHlwZSBjc3NQcmltaXRpdmVWYWx1ZVVuaXRGcm9tVHJpZShjb25zdCBD
aGFyYWN0ZXJUeXBlKiBkYXRhLCB1bnNpZ25lZCBsZQogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gQ1NTVW5pdFR5cGU6OkNTU19STEhTOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ3MnOgorICAgICAgICAg
ICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzFdKSA9PSAndicpIHsKKyAgICAgICAgICAgICAgICBz
d2l0Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzJdKSkgeworICAgICAgICAgICAgICAgIGNhc2UgJ2gn
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19TVkg7CisgICAg
ICAgICAgICAgICAgY2FzZSAndyc6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0
VHlwZTo6Q1NTX1NWVzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgYnJlYWs7
CiAgICAgY2FzZSA0OgogICAgICAgICBzd2l0Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzBdKSkgewog
ICAgICAgICBjYXNlICdkJzoKQEAgLTE3Myw5ICsyMDEsOSBAQCBDU1NVbml0VHlwZSBjc3NQcmlt
aXRpdmVWYWx1ZVVuaXRGcm9tVHJpZShjb25zdCBDaGFyYWN0ZXJUeXBlKiBkYXRhLCB1bnNpZ25l
ZCBsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfRFBQ
WDsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIH0KLSAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgJ2cnOgogICAgICAgICAgICAgaWYg
KHRvQVNDSUlMb3dlcihkYXRhWzFdKSA9PSAncicgJiYgdG9BU0NJSUxvd2VyKGRhdGFbMl0pID09
ICdhJyAmJiB0b0FTQ0lJTG93ZXIoZGF0YVszXSkgPT0gJ2QnKQogICAgICAgICAgICAgICAgIHJl
dHVybiBDU1NVbml0VHlwZTo6Q1NTX0dSQUQ7CkBAIC0yMDgsNiArMjM2LDQ4IEBAIENTU1VuaXRU
eXBlIGNzc1ByaW1pdGl2ZVZhbHVlVW5pdEZyb21UcmllKGNvbnN0IENoYXJhY3RlclR5cGUqIGRh
dGEsIHVuc2lnbmVkIGxlCiAgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbMV0pID09
ICdfJyAmJiB0b0FTQ0lJTG93ZXIoZGF0YVsyXSkgPT0gJ3EnICYmIHRvQVNDSUlMb3dlcihkYXRh
WzNdKSA9PSAnZScgJiYgdG9BU0NJSUxvd2VyKGRhdGFbNF0pID09ICdtJykKICAgICAgICAgICAg
ICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19RVUlSS1lfRU1TOwogICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgJ2QnOgorICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRh
WzFdKSA9PSAndicgJiYgdG9BU0NJSUxvd2VyKGRhdGFbMl0pID09ICdtJykgeworICAgICAgICAg
ICAgICAgIHN3aXRjaCAodG9BU0NJSUxvd2VyKGRhdGFbM10pKSB7CisgICAgICAgICAgICAgICAg
Y2FzZSAnYSc6CisgICAgICAgICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVs0XSkg
PT0gJ3gnKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1Nf
RFZNQVg7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2Ug
J2knOgorICAgICAgICAgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbNF0pID09ICdu
JykKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0RWTUlO
OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAnbCc6CisgICAgICAgICAg
ICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbMV0pID09ICd2JyAmJiB0b0FTQ0lJTG93ZXIoZGF0YVsy
XSkgPT0gJ20nKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoICh0b0FTQ0lJTG93ZXIoZGF0YVsz
XSkpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdhJzoKKyAgICAgICAgICAgICAgICAgICAgaWYg
KHRvQVNDSUlMb3dlcihkYXRhWzRdKSA9PSAneCcpCisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgY2FzZSAnaSc6CisgICAgICAgICAgICAgICAgICAgIGlmICh0b0FT
Q0lJTG93ZXIoZGF0YVs0XSkgPT0gJ24nKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IENTU1VuaXRUeXBlOjpDU1NfTFZNSU47CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlICdzJzoKKyAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVsxXSkgPT0gJ3Yn
ICYmIHRvQVNDSUlMb3dlcihkYXRhWzJdKSA9PSAnbScpIHsKKyAgICAgICAgICAgICAgICBzd2l0
Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzNdKSkgeworICAgICAgICAgICAgICAgIGNhc2UgJ2EnOgor
ICAgICAgICAgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbNF0pID09ICd4JykKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOworICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdpJzoKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzRdKSA9PSAnbicpCisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMu
Y3BwCmluZGV4IDE4NmRkMmEzZjEyNzgzZTFlMTBjYWU2ZThkMmJlZjUwMmVhMmVhY2YuLjA0ZTFj
ODRjYjVmYWI2ODM4ZDRlNzY0MTk5MGVlNTQ3NTgwMzFhOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKQEAgLTQ5
Miw2ICs0OTIsMTggQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGVuZ3RoUmF3PiBjb25zdW1lTGVu
Z3RoUmF3V2l0aEtub3duVG9rZW5UeXBlRGltZW5zaW9uKENTU1AKICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfVkg6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46CiAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1ZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWVzoKKyAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19T
Vk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNQVg6CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0xWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOgorICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19MVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfRFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjoKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRFZNQVg6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1E6CiAgICAgICAg
IGJyZWFrOwogICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggYjg2
N2MwOGQ2OGM2MGMwYjNjNzMzN2E2Y2MyNTk5YjUzYjgxODNhNy4uNjhiODJjNjVmMjdhYzhlZjZj
Y2U3NWQzMzZlZjQ0ZmYwNTFlMGVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAt
Mjg5Miw2ICsyODkyLDkgQEAgdm9pZCBGcmFtZVZpZXc6OnVub2JzY3VyZWRDb250ZW50U2l6ZUNo
YW5nZWQoKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdXBkYXRlVGlsZWRCYWNraW5n
QWRhcHRpdmVTaXppbmcoKTsKICNlbmRpZgorCisgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gZnJh
bWUoKS5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+c3R5bGVTY29wZSgpLmRpZENoYW5n
ZVN0eWxlU2hlZXRFbnZpcm9ubWVudCgpOwogfQogCiB2b2lkIEZyYW1lVmlldzo6bG9hZFByb2dy
ZXNzaW5nU3RhdHVzQ2hhbmdlZCgpCkBAIC0zNTY2LDcgKzM1NjksOSBAQCB2b2lkIEZyYW1lVmll
dzo6cGVyZm9ybVNpemVUb0NvbnRlbnRBdXRvU2l6ZSgpCiAgICAgICAgIGRvY3VtZW50LnVwZGF0
ZUxheW91dCgpOwogICAgIH07CiAKLSAgICByZXNldE92ZXJyaWRkZW5WaWV3cG9ydFdpZHRoRm9y
Q1NTVmlld3BvcnRVbml0cygpOworICAgIHJlc2V0T3ZlcnJpZGRlbldpZHRoRm9yQ1NTU21hbGxW
aWV3cG9ydFVuaXRzKCk7CisgICAgcmVzZXRPdmVycmlkZGVuV2lkdGhGb3JDU1NMYXJnZVZpZXdw
b3J0VW5pdHMoKTsKKwogICAgIC8vIFN0YXJ0IGZyb20gdGhlIG1pbmltdW0gc2l6ZSBhbmQgYWxs
b3cgaXQgdG8gZ3Jvdy4KICAgICBhdXRvIG1pbkF1dG9TaXplID0gSW50U2l6ZSB7IDEsIDEgfTsK
ICAgICByZXNpemUobWluQXV0b1NpemUpOwpAQCAtMzYyNiw3ICszNjMxLDggQEAgdm9pZCBGcmFt
ZVZpZXc6OnBlcmZvcm1TaXplVG9Db250ZW50QXV0b1NpemUoKQogICAgICAgICByZXNpemUobmV3
U2l6ZS53aWR0aCgpLCBpID8gbmV3U2l6ZS5oZWlnaHQoKSA6IG1pbkF1dG9TaXplLmhlaWdodCgp
KTsKICAgICAgICAgLy8gUHJvdGVjdCB0aGUgY29udGVudCBmcm9tIGV2ZXJncm93aW5nIGxheW91
dC4KICAgICAgICAgYXV0byBwcmVmZXJyZWRWaWV3cG9ydFdpZHRoID0gc3RkOjptaW4obmV3U2l6
ZS53aWR0aCgpLCBtX2F1dG9TaXplQ29uc3RyYWludC53aWR0aCgpKTsKLSAgICAgICAgb3ZlcnJp
ZGVWaWV3cG9ydFdpZHRoRm9yQ1NTVmlld3BvcnRVbml0cyhwcmVmZXJyZWRWaWV3cG9ydFdpZHRo
KTsKKyAgICAgICAgb3ZlcnJpZGVXaWR0aEZvckNTU1NtYWxsVmlld3BvcnRVbml0cyhwcmVmZXJy
ZWRWaWV3cG9ydFdpZHRoKTsKKyAgICAgICAgb3ZlcnJpZGVXaWR0aEZvckNTU0xhcmdlVmlld3Bv
cnRVbml0cyhwcmVmZXJyZWRWaWV3cG9ydFdpZHRoKTsKICAgICAgICAgLy8gRm9yY2UgdGhlIHNj
cm9sbGJhciBzdGF0ZSB0byBhdm9pZCB0aGUgc2Nyb2xsYmFyIGNvZGUgYWRkaW5nIHRoZW0gYW5k
IGNhdXNpbmcgdGhlbSB0byBiZSBuZWVkZWQuIEZvciBleGFtcGxlLAogICAgICAgICAvLyBhIHZl
cnRpY2FsIHNjcm9sbGJhciBtYXkgY2F1c2UgdGV4dCB0byB3cmFwIGFuZCB0aHVzIGluY3JlYXNl
IHRoZSBoZWlnaHQgKHdoaWNoIGlzIHRoZSBvbmx5IHJlYXNvbiB0aGUgc2NvbGxiYXIgaXMgbmVl
ZGVkKS4KICAgICAgICAgc2V0VmVydGljYWxTY3JvbGxiYXJMb2NrKGZhbHNlKTsKQEAgLTQ3MDYs
MTEgKzQ3MTIsMTMgQEAgdm9pZCBGcmFtZVZpZXc6OmVuYWJsZUF1dG9TaXplTW9kZShib29sIGVu
YWJsZSwgY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIEF1dG9TaXoKICAgICBzZXROZWVkc0xheW91
dEFmdGVyVmlld0NvbmZpZ3VyYXRpb25DaGFuZ2UoKTsKICAgICBsYXlvdXRDb250ZXh0KCkuc2No
ZWR1bGVMYXlvdXQoKTsKICAgICBpZiAobV9zaG91bGRBdXRvU2l6ZSkgewotICAgICAgICBvdmVy
cmlkZVZpZXdwb3J0V2lkdGhGb3JDU1NWaWV3cG9ydFVuaXRzKG1fYXV0b1NpemVDb25zdHJhaW50
LndpZHRoKCkpOworICAgICAgICBvdmVycmlkZVdpZHRoRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRz
KG1fYXV0b1NpemVDb25zdHJhaW50LndpZHRoKCkpOworICAgICAgICBvdmVycmlkZVdpZHRoRm9y
Q1NTTGFyZ2VWaWV3cG9ydFVuaXRzKG1fYXV0b1NpemVDb25zdHJhaW50LndpZHRoKCkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY2xlYXJWaWV3cG9ydFNpemVPdmVycmlkZUZvckNT
U1ZpZXdwb3J0VW5pdHMoKTsKKyAgICBjbGVhclNpemVPdmVycmlkZUZvckNTU1NtYWxsVmlld3Bv
cnRVbml0cygpOworICAgIGNsZWFyU2l6ZU92ZXJyaWRlRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRz
KCk7CiAgICAgLy8gU2luY2UgYXV0b3NpemUgbW9kZSBmb3JjZXMgdGhlIHNjcm9sbGJhciBtb2Rl
LCBjaGFuZ2UgdGhlbSB0byBiZWluZyBhdXRvLgogICAgIHNldFZlcnRpY2FsU2Nyb2xsYmFyTG9j
ayhmYWxzZSk7CiAgICAgc2V0SG9yaXpvbnRhbFNjcm9sbGJhckxvY2soZmFsc2UpOwpAQCAtNTUz
OSw1MiArNTU0NywxMDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNldFZpZXdFeHBvc2VkUmVjdChzdGQ6
Om9wdGlvbmFsPEZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KQogICAgIH0KIH0KIAotdm9pZCBG
cmFtZVZpZXc6OmNsZWFyVmlld3BvcnRTaXplT3ZlcnJpZGVGb3JDU1NWaWV3cG9ydFVuaXRzKCkK
K3ZvaWQgRnJhbWVWaWV3OjpjbGVhclNpemVPdmVycmlkZUZvckNTU1NtYWxsVmlld3BvcnRVbml0
cygpCiB7Ci0gICAgaWYgKCFtX292ZXJyaWRlVmlld3BvcnRTaXplKQorICAgIGlmICghbV9zbWFs
bFZpZXdwb3J0U2l6ZU92ZXJyaWRlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX292ZXJyaWRl
Vmlld3BvcnRTaXplID0gc3RkOjpudWxsb3B0OworICAgIG1fc21hbGxWaWV3cG9ydFNpemVPdmVy
cmlkZSA9IHN0ZDo6bnVsbG9wdDsKICAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZSgpLmRv
Y3VtZW50KCkpCiAgICAgICAgIGRvY3VtZW50LT5zdHlsZVNjb3BlKCkuZGlkQ2hhbmdlU3R5bGVT
aGVldEVudmlyb25tZW50KCk7CiB9CiAKLXZvaWQgRnJhbWVWaWV3OjpzZXRWaWV3cG9ydFNpemVG
b3JDU1NWaWV3cG9ydFVuaXRzKEludFNpemUgc2l6ZSkKK3ZvaWQgRnJhbWVWaWV3OjpzZXRTaXpl
Rm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKEludFNpemUgc2l6ZSkKIHsKLSAgICBvdmVycmlkZVZp
ZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoeyBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0
KCkgfSk7CisgICAgb3ZlcnJpZGVTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKHsgc2l6ZS53
aWR0aCgpLCBzaXplLmhlaWdodCgpIH0pOwogfQogCi12b2lkIEZyYW1lVmlldzo6b3ZlcnJpZGVW
aWV3cG9ydFdpZHRoRm9yQ1NTVmlld3BvcnRVbml0cyhpbnQgd2lkdGgpCit2b2lkIEZyYW1lVmll
dzo6b3ZlcnJpZGVXaWR0aEZvckNTU1NtYWxsVmlld3BvcnRVbml0cyhpbnQgd2lkdGgpCiB7Ci0g
ICAgb3ZlcnJpZGVWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKHsgd2lkdGgsIG1fb3Zl
cnJpZGVWaWV3cG9ydFNpemUgPyBtX292ZXJyaWRlVmlld3BvcnRTaXplLT5oZWlnaHQgOiBzdGQ6
Om51bGxvcHQgfSk7CisgICAgb3ZlcnJpZGVTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKHsg
d2lkdGgsIG1fc21hbGxWaWV3cG9ydFNpemVPdmVycmlkZSA/IG1fc21hbGxWaWV3cG9ydFNpemVP
dmVycmlkZS0+aGVpZ2h0IDogc3RkOjpudWxsb3B0IH0pOwogfQogCi12b2lkIEZyYW1lVmlldzo6
cmVzZXRPdmVycmlkZGVuVmlld3BvcnRXaWR0aEZvckNTU1ZpZXdwb3J0VW5pdHMoKQordm9pZCBG
cmFtZVZpZXc6OnJlc2V0T3ZlcnJpZGRlbldpZHRoRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCkK
IHsKLSAgICBvdmVycmlkZVZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoeyB7IH0sIG1f
b3ZlcnJpZGVWaWV3cG9ydFNpemUgPyBtX292ZXJyaWRlVmlld3BvcnRTaXplLT5oZWlnaHQgOiBz
dGQ6Om51bGxvcHQgfSk7CisgICAgb3ZlcnJpZGVTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRz
KHsgeyB9LCBtX3NtYWxsVmlld3BvcnRTaXplT3ZlcnJpZGUgPyBtX3NtYWxsVmlld3BvcnRTaXpl
T3ZlcnJpZGUtPmhlaWdodCA6IHN0ZDo6bnVsbG9wdCB9KTsKIH0KIAotdm9pZCBGcmFtZVZpZXc6
Om92ZXJyaWRlVmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyhPdmVycmlkZVZpZXdwb3J0
U2l6ZSBzaXplKQordm9pZCBGcmFtZVZpZXc6Om92ZXJyaWRlU2l6ZUZvckNTU1NtYWxsVmlld3Bv
cnRVbml0cyhPdmVycmlkZVZpZXdwb3J0U2l6ZSBzaXplKQogewotICAgIGlmIChtX292ZXJyaWRl
Vmlld3BvcnRTaXplICYmICptX292ZXJyaWRlVmlld3BvcnRTaXplID09IHNpemUpCisgICAgaWYg
KG1fc21hbGxWaWV3cG9ydFNpemVPdmVycmlkZSAmJiAqbV9zbWFsbFZpZXdwb3J0U2l6ZU92ZXJy
aWRlID09IHNpemUpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fb3ZlcnJpZGVWaWV3cG9ydFNp
emUgPSBzaXplOworICAgIG1fc21hbGxWaWV3cG9ydFNpemVPdmVycmlkZSA9IHNpemU7CiAKICAg
ICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCkpCiAgICAgICAgIGRvY3Vt
ZW50LT5zdHlsZVNjb3BlKCkuZGlkQ2hhbmdlU3R5bGVTaGVldEVudmlyb25tZW50KCk7CiB9CiAK
LUludFNpemUgRnJhbWVWaWV3Ojp2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkgY29u
c3QKK0ludFNpemUgRnJhbWVWaWV3OjpzaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gY2FsY3VsYXRlU2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHNPdmVycmlk
ZShtX3NtYWxsVmlld3BvcnRTaXplT3ZlcnJpZGUpOworfQorCit2b2lkIEZyYW1lVmlldzo6Y2xl
YXJTaXplT3ZlcnJpZGVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoKQoreworICAgIGlmICghbV9s
YXJnZVZpZXdwb3J0U2l6ZU92ZXJyaWRlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2xhcmdl
Vmlld3BvcnRTaXplT3ZlcnJpZGUgPSBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKGF1dG8qIGRvY3Vt
ZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+c3R5bGVTY29wZSgp
LmRpZENoYW5nZVN0eWxlU2hlZXRFbnZpcm9ubWVudCgpOworfQorCit2b2lkIEZyYW1lVmlldzo6
c2V0U2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cyhJbnRTaXplIHNpemUpCit7CisgICAgb3Zl
cnJpZGVTaXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKHsgc2l6ZS53aWR0aCgpLCBzaXplLmhl
aWdodCgpIH0pOworfQorCit2b2lkIEZyYW1lVmlldzo6b3ZlcnJpZGVXaWR0aEZvckNTU0xhcmdl
Vmlld3BvcnRVbml0cyhpbnQgd2lkdGgpCit7CisgICAgb3ZlcnJpZGVTaXplRm9yQ1NTTGFyZ2VW
aWV3cG9ydFVuaXRzKHsgd2lkdGgsIG1fbGFyZ2VWaWV3cG9ydFNpemVPdmVycmlkZSA/IG1fbGFy
Z2VWaWV3cG9ydFNpemVPdmVycmlkZS0+aGVpZ2h0IDogc3RkOjpudWxsb3B0IH0pOworfQorCit2
b2lkIEZyYW1lVmlldzo6cmVzZXRPdmVycmlkZGVuV2lkdGhGb3JDU1NMYXJnZVZpZXdwb3J0VW5p
dHMoKQoreworICAgIG92ZXJyaWRlU2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cyh7IHsgfSwg
bV9sYXJnZVZpZXdwb3J0U2l6ZU92ZXJyaWRlID8gbV9sYXJnZVZpZXdwb3J0U2l6ZU92ZXJyaWRl
LT5oZWlnaHQgOiBzdGQ6Om51bGxvcHQgfSk7Cit9CisKK3ZvaWQgRnJhbWVWaWV3OjpvdmVycmlk
ZVNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoT3ZlcnJpZGVWaWV3cG9ydFNpemUgc2l6ZSkK
K3sKKyAgICBpZiAobV9sYXJnZVZpZXdwb3J0U2l6ZU92ZXJyaWRlICYmICptX2xhcmdlVmlld3Bv
cnRTaXplT3ZlcnJpZGUgPT0gc2l6ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9sYXJnZVZp
ZXdwb3J0U2l6ZU92ZXJyaWRlID0gc2l6ZTsKKworICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGZy
YW1lKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgZG9jdW1lbnQtPnN0eWxlU2NvcGUoKS5kaWRDaGFu
Z2VTdHlsZVNoZWV0RW52aXJvbm1lbnQoKTsKK30KKworSW50U2l6ZSBGcmFtZVZpZXc6OnNpemVG
b3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoKSBjb25zdAoreworICAgIHJldHVybiBjYWxjdWxhdGVT
aXplRm9yQ1NTVmlld3BvcnRVbml0c092ZXJyaWRlKG1fbGFyZ2VWaWV3cG9ydFNpemVPdmVycmlk
ZSk7Cit9CisKK0ludFNpemUgRnJhbWVWaWV3OjpjYWxjdWxhdGVTaXplRm9yQ1NTVmlld3BvcnRV
bml0c092ZXJyaWRlKHN0ZDo6b3B0aW9uYWw8T3ZlcnJpZGVWaWV3cG9ydFNpemU+IG92ZXJyaWRl
KSBjb25zdAogewogICAgIE92ZXJyaWRlVmlld3BvcnRTaXplIHZpZXdwb3J0U2l6ZTsKIAotICAg
IGlmIChtX292ZXJyaWRlVmlld3BvcnRTaXplKSB7Ci0gICAgICAgIHZpZXdwb3J0U2l6ZSA9ICpt
X292ZXJyaWRlVmlld3BvcnRTaXplOwotICAgICAgICAvLyBhdXRvLXNpemUgb3ZlcnJpZGVzIHRo
ZSB3aWR0aCBvbmx5LCBzbyB3ZSBjYW4ndCBhbHdheXMgYmFpbCBvdXQgZWFybHkgaGVyZS4KLSAg
ICAgICAgaWYgKHZpZXdwb3J0U2l6ZS53aWR0aCAmJiB2aWV3cG9ydFNpemUuaGVpZ2h0KQotICAg
ICAgICAgICAgcmV0dXJuIHsgKnZpZXdwb3J0U2l6ZS53aWR0aCwgKnZpZXdwb3J0U2l6ZS5oZWln
aHQgfTsKLSAgICB9CisgICAgaWYgKG92ZXJyaWRlKQorICAgICAgICB2aWV3cG9ydFNpemUgPSAq
b3ZlcnJpZGU7CisKKyAgICAvLyBVc2UgdGhlIGxhcmdlIHNpemUgaWYgbm8gb3ZlcnJpZGUgaXMg
Z2l2ZW4gc2luY2UgaXQncyBjb25zaWRlcmVkIHRoZSBkZWZhdWx0IHNpemUuCisgICAgLy8gaWYg
KG1fbGFyZ2VWaWV3cG9ydFNpemVPdmVycmlkZSkgeworICAgIC8vICAgICBpZiAoIXZpZXdwb3J0
U2l6ZS53aWR0aCkKKyAgICAvLyAgICAgICAgIHZpZXdwb3J0U2l6ZS53aWR0aCA9IG1fbGFyZ2VW
aWV3cG9ydFNpemVPdmVycmlkZS0+d2lkdGg7CisKKyAgICAvLyAgICAgaWYgKCF2aWV3cG9ydFNp
emUuaGVpZ2h0KQorICAgIC8vICAgICAgICAgdmlld3BvcnRTaXplLmhlaWdodCA9IG1fbGFyZ2VW
aWV3cG9ydFNpemVPdmVycmlkZS0+aGVpZ2h0OworICAgIC8vIH0KKworICAgIC8vIGF1dG8tc2l6
ZSBvdmVycmlkZXMgdGhlIHdpZHRoIG9ubHksIHNvIHdlIGNhbid0IGFsd2F5cyBiYWlsIG91dCBl
YXJseSBoZXJlLgorICAgIGlmICh2aWV3cG9ydFNpemUud2lkdGggJiYgdmlld3BvcnRTaXplLmhl
aWdodCkKKyAgICAgICAgcmV0dXJuIHsgKnZpZXdwb3J0U2l6ZS53aWR0aCwgKnZpZXdwb3J0U2l6
ZS5oZWlnaHQgfTsKIAogICAgIGlmICh1c2VGaXhlZExheW91dCgpKSB7CiAgICAgICAgIGF1dG8g
Zml4ZWRMYXlvdXRTaXplID0gdGhpcy0+Zml4ZWRMYXlvdXRTaXplKCk7CkBAIC01NjAxLDYgKzU2
NjQsMTYgQEAgSW50U2l6ZSBGcmFtZVZpZXc6OnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5p
dHMoKSBjb25zdAogICAgIHJldHVybiB7ICp2aWV3cG9ydFNpemUud2lkdGgsICp2aWV3cG9ydFNp
emUuaGVpZ2h0IH07CiB9CiAKK0ludFNpemUgRnJhbWVWaWV3OjpzaXplRm9yQ1NTRHluYW1pY1Zp
ZXdwb3J0VW5pdHMoKSBjb25zdAoreworICAgIHJldHVybiB2aXNpYmxlQ29udGVudFJlY3RJbmNs
dWRpbmdTY3JvbGxiYXJzKCkuc2l6ZSgpOworfQorCitJbnRTaXplIEZyYW1lVmlldzo6c2l6ZUZv
ckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gc2l6ZUZvckNT
U0xhcmdlVmlld3BvcnRVbml0cygpOworfQorCiBib29sIEZyYW1lVmlldzo6c2hvdWxkUGxhY2VW
ZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHJlbmRlclZpZXco
KSAmJiByZW5kZXJWaWV3KCktPnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGY0NGEzZjJlOWQ5YjczYmI4N2UyYWNmYWI1Y2Vh
Y2Y2M2MwYzM1NGUuLmY0Y2Y3ZDA4MTUyOGFhYWExMGM5MjZiZTlkOWYyNzVmZmU0OGY2MmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMjI4LDkgKzIyOCwxNyBAQCBwdWJsaWM6CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkanVzdFZpZXdTaXplKCk7CiAKLSAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoSW50U2l6ZSk7Ci0g
ICAgdm9pZCBjbGVhclZpZXdwb3J0U2l6ZU92ZXJyaWRlRm9yQ1NTVmlld3BvcnRVbml0cygpOwot
ICAgIEludFNpemUgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpIGNvbnN0OworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cyhJbnRT
aXplKTsKKyAgICB2b2lkIGNsZWFyU2l6ZU92ZXJyaWRlRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRz
KCk7CisgICAgSW50U2l6ZSBzaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCkgY29uc3Q7CisK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMo
SW50U2l6ZSk7CisgICAgdm9pZCBjbGVhclNpemVPdmVycmlkZUZvckNTU0xhcmdlVmlld3BvcnRV
bml0cygpOworICAgIEludFNpemUgc2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpIGNvbnN0
OworCisgICAgSW50U2l6ZSBzaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMoKSBjb25zdDsK
KworICAgIEludFNpemUgc2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCkgY29uc3Q7CiAK
ICAgICBJbnRSZWN0IHdpbmRvd0NsaXBSZWN0KCkgY29uc3QgZmluYWw7CiAgICAgV0VCQ09SRV9F
WFBPUlQgSW50UmVjdCB3aW5kb3dDbGlwUmVjdEZvckZyYW1lT3duZXIoY29uc3QgSFRNTEZyYW1l
T3duZXJFbGVtZW50KiwgYm9vbCBjbGlwVG9MYXllckNvbnRlbnRzKSBjb25zdDsKQEAgLTg1NCw5
ICs4NjIsMTUgQEAgcHJpdmF0ZToKIAogICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgT3Zl
cnJpZGVWaWV3cG9ydFNpemUmIHJocykgY29uc3QgeyByZXR1cm4gcmhzLndpZHRoID09IHdpZHRo
ICYmIHJocy5oZWlnaHQgPT0gaGVpZ2h0OyB9CiAgICAgfTsKLSAgICB2b2lkIG92ZXJyaWRlVmll
d3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyhPdmVycmlkZVZpZXdwb3J0U2l6ZSk7Ci0gICAg
dm9pZCBvdmVycmlkZVZpZXdwb3J0V2lkdGhGb3JDU1NWaWV3cG9ydFVuaXRzKGludCk7Ci0gICAg
dm9pZCByZXNldE92ZXJyaWRkZW5WaWV3cG9ydFdpZHRoRm9yQ1NTVmlld3BvcnRVbml0cygpOwor
ICAgIEludFNpemUgY2FsY3VsYXRlU2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHNPdmVycmlkZShzdGQ6
Om9wdGlvbmFsPE92ZXJyaWRlVmlld3BvcnRTaXplPikgY29uc3Q7CisKKyAgICB2b2lkIG92ZXJy
aWRlU2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cyhPdmVycmlkZVZpZXdwb3J0U2l6ZSk7Cisg
ICAgdm9pZCBvdmVycmlkZVdpZHRoRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKGludCk7CisgICAg
dm9pZCByZXNldE92ZXJyaWRkZW5XaWR0aEZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpOworCisg
ICAgdm9pZCBvdmVycmlkZVNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoT3ZlcnJpZGVWaWV3
cG9ydFNpemUpOworICAgIHZvaWQgb3ZlcnJpZGVXaWR0aEZvckNTU0xhcmdlVmlld3BvcnRVbml0
cyhpbnQpOworICAgIHZvaWQgcmVzZXRPdmVycmlkZGVuV2lkdGhGb3JDU1NMYXJnZVZpZXdwb3J0
VW5pdHMoKTsKIAogICAgIHZvaWQgZGlkRmluaXNoUHJvaGliaXRpbmdTY3JvbGxpbmdXaGVuQ2hh
bmdpbmdDb250ZW50U2l6ZSgpIGZpbmFsOwogCkBAIC05MjUsNyArOTM5LDggQEAgcHJpdmF0ZToK
ICAgICBzdGQ6Om9wdGlvbmFsPEludFNpemU+IG1fY3VzdG9tU2l6ZUZvclJlc2l6ZUV2ZW50Owog
I2VuZGlmCiAKLSAgICBzdGQ6Om9wdGlvbmFsPE92ZXJyaWRlVmlld3BvcnRTaXplPiBtX292ZXJy
aWRlVmlld3BvcnRTaXplOworICAgIHN0ZDo6b3B0aW9uYWw8T3ZlcnJpZGVWaWV3cG9ydFNpemU+
IG1fc21hbGxWaWV3cG9ydFNpemVPdmVycmlkZTsKKyAgICBzdGQ6Om9wdGlvbmFsPE92ZXJyaWRl
Vmlld3BvcnRTaXplPiBtX2xhcmdlVmlld3BvcnRTaXplT3ZlcnJpZGU7CiAKICAgICAvLyBUaGUg
dmlldyBzaXplIHdoZW4gYXV0b3NpemluZy4KICAgICBJbnRTaXplIG1fYXV0b1NpemVDb25zdHJh
aW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRT
aXplLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaAppbmRl
eCBkNTVkMWRjYTUyOWIwNjY5MGJjNmY3NmNlODE1MDY4OWU3MzJjMDA2Li5lMmRlZjg1NzE2ZTMz
ZTkxYTM2MzFiZTFjYjJmYzJiYWRiNTMxZTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9GbG9hdFNpemUuaApAQCAtNzIsNiArNzIsOSBAQCBwdWJsaWM6CiAgICAgZmxv
YXQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoOyB9CiAgICAgZmxvYXQgaGVpZ2h0KCkg
Y29uc3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KIAorICAgIGZsb2F0IG1pbkRpbWVuc2lvbigpIGNv
bnN0IHsgcmV0dXJuIHN0ZDo6bWluKG1fd2lkdGgsIG1faGVpZ2h0KTsgfQorICAgIGZsb2F0IG1h
eERpbWVuc2lvbigpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bWF4KG1fd2lkdGgsIG1faGVpZ2h0KTsg
fQorCiAgICAgYm9vbCBoYXNJbnRyaW5zaWNXaWR0aCA9IGZhbHNlOwogICAgIGJvb2wgaGFzSW50
cmluc2ljSGVpZ2h0ID0gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ludFNpemUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ludFNpemUuaAppbmRleCA1YjI0YTBmMTEyYjQyZjQzNjgxZjdmZmFhMmI2MmY0MGYwNmE4MGY1
Li4wOTVmMDMxNDRkZjk3MjY3ZjEwMjU1ZTI1Njc0ZWQ5NjYyZGRmZmY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRTaXplLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50U2l6ZS5oCkBAIC03NCw2ICs3NCw5IEBAIHB1Ymxp
YzoKICAgICBpbnQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoOyB9CiAgICAgaW50IGhl
aWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9CiAKKyAgICBmbG9hdCBtaW5EaW1lbnNp
b24oKSBjb25zdCB7IHJldHVybiBzdGQ6Om1pbihtX3dpZHRoLCBtX2hlaWdodCk7IH0KKyAgICBm
bG9hdCBtYXhEaW1lbnNpb24oKSBjb25zdCB7IHJldHVybiBzdGQ6Om1heChtX3dpZHRoLCBtX2hl
aWdodCk7IH0KKwogICAgIHZvaWQgc2V0V2lkdGgoaW50IHdpZHRoKSB7IG1fd2lkdGggPSB3aWR0
aDsgfQogICAgIHZvaWQgc2V0SGVpZ2h0KGludCBoZWlnaHQpIHsgbV9oZWlnaHQgPSBoZWlnaHQ7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDc5OTQ1MzYw
ZGQxZWFlZDM0ODgxNzBhMWY4NTU1MDU3MjExNzhiODAuLjFkMjNiNmU5NDk5YjIyYjAzOTk4YTIw
ODdhNTk3ZjVmNjAzMmZmYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKQEAgLTY5Nyw5ICs2OTcsMjQgQEAgZmxvYXQgUmVuZGVyVmlldzo6em9vbUZhY3RvcigpIGNv
bnN0CiAgICAgcmV0dXJuIGZyYW1lVmlldygpLmZyYW1lKCkucGFnZVpvb21GYWN0b3IoKTsKIH0K
IAotSW50U2l6ZSBSZW5kZXJWaWV3Ojp2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkg
Y29uc3QKK0ludFNpemUgUmVuZGVyVmlldzo6c2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZyYW1lVmlldygpLnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdw
b3J0VW5pdHMoKTsKKyAgICByZXR1cm4gZnJhbWVWaWV3KCkuc2l6ZUZvckNTU1NtYWxsVmlld3Bv
cnRVbml0cygpOworfQorCitJbnRTaXplIFJlbmRlclZpZXc6OnNpemVGb3JDU1NMYXJnZVZpZXdw
b3J0VW5pdHMoKSBjb25zdAoreworICAgIHJldHVybiBmcmFtZVZpZXcoKS5zaXplRm9yQ1NTTGFy
Z2VWaWV3cG9ydFVuaXRzKCk7Cit9CisKK0ludFNpemUgUmVuZGVyVmlldzo6c2l6ZUZvckNTU0R5
bmFtaWNWaWV3cG9ydFVuaXRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnJhbWVWaWV3KCkuc2l6
ZUZvckNTU0R5bmFtaWNWaWV3cG9ydFVuaXRzKCk7Cit9CisKK0ludFNpemUgUmVuZGVyVmlldzo6
c2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnJh
bWVWaWV3KCkuc2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCk7CiB9CiAKIE5vZGUqIFJl
bmRlclZpZXc6Om5vZGVGb3JIaXRUZXN0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVmlldy5oCmluZGV4IDQ4ZTM2NzkzMDM1NmUzNDhhOWZiYjIxZDNkNTcwMjRlMTUzNDM1YTYu
LmEwYmI5NGUxNjcxMmFmODk2N2M4ZGU2YWQ3ODE1YjBjMGE3MWNkNTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZXcuaApAQCAtMTQzLDcgKzE0MywxMCBAQCBwdWJsaWM6CiAKICAg
ICBib29sIHNob3VsZFBhaW50QmFzZUJhY2tncm91bmQoKSBjb25zdDsKIAotICAgIEludFNpemUg
dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpIGNvbnN0OworICAgIEludFNpemUgc2l6
ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpIGNvbnN0OworICAgIEludFNpemUgc2l6ZUZvckNT
U0xhcmdlVmlld3BvcnRVbml0cygpIGNvbnN0OworICAgIEludFNpemUgc2l6ZUZvckNTU0R5bmFt
aWNWaWV3cG9ydFVuaXRzKCkgY29uc3Q7CisgICAgSW50U2l6ZSBzaXplRm9yQ1NTRGVmYXVsdFZp
ZXdwb3J0VW5pdHMoKSBjb25zdDsKIAogICAgIGJvb2wgaGFzUXVvdGVzTmVlZGluZ1VwZGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIG1faGFzUXVvdGVzTmVlZGluZ1VwZGF0ZTsgfQogICAgIHZvaWQgc2V0
SGFzUXVvdGVzTmVlZGluZ1VwZGF0ZShib29sIGIpIHsgbV9oYXNRdW90ZXNOZWVkaW5nVXBkYXRl
ID0gYjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0NTU0NvbXBsZXRpb25zLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0NTU0NvbXBsZXRpb25zLmpzCmluZGV4IDIzY2U4NTUwNGIyZDA2YjA2YjYw
ZGE1ZmM0YzNiMzJhZjQxOTk4MjMuLmM0NjgxNTBmNzMxZGM5ZWEwOTFjYWMzOGIwMDVjNmVlMThm
NmYxM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9DU1NDb21wbGV0aW9ucy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQ1NTQ29tcGxldGlvbnMuanMKQEAgLTM0MywxNSArMzQzLDI3IEBAIFdJ
LkNTU0NvbXBsZXRpb25zLmNzc05hbWVDb21wbGV0aW9ucyA9IG51bGw7CiBXSS5DU1NDb21wbGV0
aW9ucy5sZW5ndGhVbml0cyA9IG5ldyBTZXQoWwogICAgICJjaCIsCiAgICAgImNtIiwKKyAgICAi
ZHZoIiwKKyAgICAiZHZtYXgiLAorICAgICJkdm1pbiIsCisgICAgImR2dyIsCiAgICAgImVtIiwK
ICAgICAiZXgiLAogICAgICJpbiIsCisgICAgImx2aCIsCisgICAgImx2bWF4IiwKKyAgICAibHZt
aW4iLAorICAgICJsdnciLAogICAgICJtbSIsCiAgICAgInBjIiwKICAgICAicHQiLAogICAgICJw
eCIsCiAgICAgInEiLAogICAgICJyZW0iLAorICAgICJzdmgiLAorICAgICJzdm1heCIsCisgICAg
InN2bWluIiwKKyAgICAic3Z3IiwKICAgICAidmgiLAogICAgICJ2bWF4IiwKICAgICAidm1pbiIs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCmluZGV4IGNiY2E5MDhlMzgzNjBkMWQ5Yzk5NDQyZTA5M2ZhMDg5MTUxZTk2ZDYuLjcxYzcy
OWY3NGJjODcyYTJiYTZiNTQ5YzM2ZTllNmZjODNmYmZjMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0xMDUsNiArMTA1
LDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgYXZhaWxhYmxlU2NyZWVuU2l6ZTsKICAg
ICBlbmNvZGVyIDw8IG92ZXJyaWRlU2NyZWVuU2l6ZTsKICAgICBlbmNvZGVyIDw8IHRleHRBdXRv
c2l6aW5nV2lkdGg7CisgICAgZW5jb2RlciA8PCBtaW5pbXVtVW5vYnNjdXJlZFNpemU7CiAgICAg
ZW5jb2RlciA8PCBtYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgZW5jb2RlciA8PCBkZXZpY2VP
cmllbnRhdGlvbjsKICAgICBlbmNvZGVyIDw8IGtleWJvYXJkSXNBdHRhY2hlZDsKQEAgLTM3Nyw2
ICszNzgsOCBAQCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OgogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy50ZXh0QXV0b3Npemlu
Z1dpZHRoKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHBhcmFtZXRlcnMubWluaW11bVVub2JzY3VyZWRTaXplKSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubWF4aW11
bVVub2JzY3VyZWRTaXplKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuZGV2aWNlT3JpZW50YXRpb24pKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGViMWVl
MDk1OWE1MTNkYjgyNTdkNjRhZGRjZWVhNTA5YjdhM2U4NmUuLjQ5ZjYyNmJiNmJlMDg3ODQ4MWI5
NzVhN2RlZTEwZmY4MmYwZWQ5ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTE2OCw2ICsxNjgsNyBAQCBzdHJ1Y3QgV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIGF2YWlsYWJsZVNj
cmVlblNpemU7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG92ZXJyaWRlU2NyZWVuU2l6ZTsKICAg
ICBmbG9hdCB0ZXh0QXV0b3NpemluZ1dpZHRoOworICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtaW5p
bXVtVW5vYnNjdXJlZFNpemU7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1heGltdW1Vbm9ic2N1
cmVkU2l6ZTsKICAgICBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uIHsgMCB9OwogICAgIGJvb2wg
a2V5Ym9hcmRJc0F0dGFjaGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKaW5kZXggMTk2NGE1MzYzNjNj
MTJjNGNjNzg1MjE0YWY4ZjUzZmU1ZmM2N2VjYi4uYzMwMjFmNmJlZWJhNDNlMzlhNjRjNjYxZjAw
ODlkZTQ1ZDM0NzFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKQEAgLTE1NSw2ICsxNTUsOCBAQCBjbGFzcyBWaWV3
R2VzdHVyZUNvbnRyb2xsZXI7CiAKICAgICBzdGQ6Om9wdGlvbmFsPENHU2l6ZT4gX3ZpZXdMYXlv
dXRTaXplT3ZlcnJpZGU7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFNpemU+IF9s
YXN0U2VudFZpZXdMYXlvdXRTaXplOworICAgIHN0ZDo6b3B0aW9uYWw8Q0dTaXplPiBfbWluaW11
bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9h
dFNpemU+IF9sYXN0U2VudE1pbmltdW1Vbm9ic2N1cmVkU2l6ZTsKICAgICBzdGQ6Om9wdGlvbmFs
PENHU2l6ZT4gX21heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6RmxvYXRTaXplPiBfbGFzdFNlbnRNYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAg
ICAgQ0dSZWN0IF9pbnB1dFZpZXdCb3VuZHNJbldpbmRvdzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KaW5kZXggYWYzMDQ2YjkyYzU2MzZiNzFl
ZjM1ODRkNDdlNmNhM2ZmN2U0ZTM4YS4uZDc4Y2I5OGZkMzU3ZThhNGZhNDhmYTE3MTkxY2E5YzEw
ZmM4ZDkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dl
YlZpZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZp
ZXdJT1MubW0KQEAgLTcwMyw2ICs3MDMsNyBAQCAtICh2b2lkKV9wcm9jZXNzV2lsbFN3YXBPckRp
ZEV4aXQKICAgICBfZGlkRGVmZXJVcGRhdGVWaXNpYmxlQ29udGVudFJlY3RzRm9yVW5zdGFibGVT
Y3JvbGxWaWV3ID0gTk87CiAgICAgX2N1cnJlbnRseUFkanVzdGluZ1Njcm9sbFZpZXdJbnNldHNG
b3JLZXlib2FyZCA9IE5POwogICAgIF9sYXN0U2VudFZpZXdMYXlvdXRTaXplID0gc3RkOjpudWxs
b3B0OworICAgIF9sYXN0U2VudE1pbmltdW1Vbm9ic2N1cmVkU2l6ZSA9IHN0ZDo6bnVsbG9wdDsK
ICAgICBfbGFzdFNlbnRNYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBzdGQ6Om51bGxvcHQ7CiAgICAg
X2xhc3RTZW50RGV2aWNlT3JpZW50YXRpb24gPSBzdGQ6Om51bGxvcHQ7CiAKQEAgLTE5MTAsNiAr
MTkxMSwxNSBAQCAtICh2b2lkKV9kaXNwYXRjaFNldFZpZXdMYXlvdXRTaXplOihXZWJDb3JlOjpG
bG9hdFNpemUpdmlld0xheW91dFNpemUKICAgICBfbGFzdFNlbnRWaWV3TGF5b3V0U2l6ZSA9IHZp
ZXdMYXlvdXRTaXplOwogfQogCistICh2b2lkKV9kaXNwYXRjaFNldE1pbmltdW1Vbm9ic2N1cmVk
U2l6ZTooV2ViQ29yZTo6RmxvYXRTaXplKW1pbmltdW1Vbm9ic2N1cmVkU2l6ZQoreworICAgIGlm
IChfbGFzdFNlbnRNaW5pbXVtVW5vYnNjdXJlZFNpemUgJiYgQ0dTaXplRXF1YWxUb1NpemUoX2xh
c3RTZW50TWluaW11bVVub2JzY3VyZWRTaXplLnZhbHVlKCksIG1pbmltdW1Vbm9ic2N1cmVkU2l6
ZSkpCisgICAgICAgIHJldHVybjsKKworICAgIF9wYWdlLT5zZXRNaW5pbXVtVW5vYnNjdXJlZFNp
emUobWluaW11bVVub2JzY3VyZWRTaXplKTsKKyAgICBfbGFzdFNlbnRNaW5pbXVtVW5vYnNjdXJl
ZFNpemUgPSBtaW5pbXVtVW5vYnNjdXJlZFNpemU7Cit9CisKIC0gKHZvaWQpX2Rpc3BhdGNoU2V0
TWF4aW11bVVub2JzY3VyZWRTaXplOihXZWJDb3JlOjpGbG9hdFNpemUpbWF4aW11bVVub2JzY3Vy
ZWRTaXplCiB7CiAgICAgaWYgKF9sYXN0U2VudE1heGltdW1Vbm9ic2N1cmVkU2l6ZSAmJiBDR1Np
emVFcXVhbFRvU2l6ZShfbGFzdFNlbnRNYXhpbXVtVW5vYnNjdXJlZFNpemUudmFsdWUoKSwgbWF4
aW11bVVub2JzY3VyZWRTaXplKSkKQEAgLTE5NDUsNiArMTk1NSw4IEBAIC0gKHZvaWQpX2ZyYW1l
T3JCb3VuZHNDaGFuZ2VkCiAgICAgaWYgKF9keW5hbWljVmlld3BvcnRVcGRhdGVNb2RlID09IFdl
YktpdDo6RHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZTo6Tm90UmVzaXppbmcpIHsKICAgICAgICAg
aWYgKCFfdmlld0xheW91dFNpemVPdmVycmlkZSkKICAgICAgICAgICAgIFtzZWxmIF9kaXNwYXRj
aFNldFZpZXdMYXlvdXRTaXplOltzZWxmIGFjdGl2ZVZpZXdMYXlvdXRTaXplOnNlbGYuYm91bmRz
XV07CisgICAgICAgIGlmICghX21pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlKQorICAgICAg
ICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0TWluaW11bVVub2JzY3VyZWRTaXplOldlYkNvcmU6OkZs
b2F0U2l6ZShib3VuZHMuc2l6ZSldOwogICAgICAgICBpZiAoIV9tYXhpbXVtVW5vYnNjdXJlZFNp
emVPdmVycmlkZSkKICAgICAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1heGltdW1Vbm9ic2N1
cmVkU2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUoYm91bmRzLnNpemUpXTsKIApAQCAtMjI2NSw2ICsy
Mjc3LDExIEBAIC0gKHZvaWQpX2RpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lCiAg
ICAgICAgIF9nZXN0dXJlQ29udHJvbGxlci0+ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWlu
RnJhbWUoKTsKIH0KIAorc3RhdGljIFdlYkNvcmU6OkZsb2F0U2l6ZSBhY3RpdmVNaW5pbXVtVW5v
YnNjdXJlZFNpemUoV0tXZWJWaWV3ICp3ZWJWaWV3LCBjb25zdCBDR1JlY3QmIGJvdW5kcykKK3sK
KyAgICByZXR1cm4gV2ViQ29yZTo6RmxvYXRTaXplKHdlYlZpZXctPl9taW5pbXVtVW5vYnNjdXJl
ZFNpemVPdmVycmlkZS52YWx1ZV9vcihib3VuZHMuc2l6ZSkpOworfQorCiBzdGF0aWMgV2ViQ29y
ZTo6RmxvYXRTaXplIGFjdGl2ZU1heGltdW1Vbm9ic2N1cmVkU2l6ZShXS1dlYlZpZXcgKndlYlZp
ZXcsIGNvbnN0IENHUmVjdCYgYm91bmRzKQogewogICAgIHJldHVybiBXZWJDb3JlOjpGbG9hdFNp
emUod2ViVmlldy0+X21heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlLnZhbHVlX29yKGJvdW5k
cy5zaXplKSk7CkBAIC0yMzU0LDEyICsyMzcxLDE2IEBAIC0gKHZvaWQpX2RpZENvbXBsZXRlQW5p
bWF0ZWRSZXNpemUKIAogICAgIENHUmVjdCBuZXdCb3VuZHMgPSBzZWxmLmJvdW5kczsKICAgICBh
dXRvIG5ld1ZpZXdMYXlvdXRTaXplID0gW3NlbGYgYWN0aXZlVmlld0xheW91dFNpemU6bmV3Qm91
bmRzXTsKKyAgICBhdXRvIG5ld01pbmltdW1Vbm9ic2N1cmVkU2l6ZSA9IGFjdGl2ZU1pbmltdW1V
bm9ic2N1cmVkU2l6ZShzZWxmLCBuZXdCb3VuZHMpOwogICAgIGF1dG8gbmV3TWF4aW11bVVub2Jz
Y3VyZWRTaXplID0gYWN0aXZlTWF4aW11bVVub2JzY3VyZWRTaXplKHNlbGYsIG5ld0JvdW5kcyk7
CiAgICAgaW50MzJfdCBuZXdPcmllbnRhdGlvbiA9IGFjdGl2ZU9yaWVudGF0aW9uKHNlbGYpOwog
CiAgICAgaWYgKCFfbGFzdFNlbnRWaWV3TGF5b3V0U2l6ZSB8fCBuZXdWaWV3TGF5b3V0U2l6ZSAh
PSBfbGFzdFNlbnRWaWV3TGF5b3V0U2l6ZS52YWx1ZSgpKQogICAgICAgICBbc2VsZiBfZGlzcGF0
Y2hTZXRWaWV3TGF5b3V0U2l6ZTpuZXdWaWV3TGF5b3V0U2l6ZV07CiAKKyAgICBpZiAoIV9sYXN0
U2VudE1pbmltdW1Vbm9ic2N1cmVkU2l6ZSB8fCBuZXdNaW5pbXVtVW5vYnNjdXJlZFNpemUgIT0g
X2xhc3RTZW50TWluaW11bVVub2JzY3VyZWRTaXplLnZhbHVlKCkpCisgICAgICAgIFtzZWxmIF9k
aXNwYXRjaFNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUobmV3TWlu
aW11bVVub2JzY3VyZWRTaXplKV07CisKICAgICBpZiAoIV9sYXN0U2VudE1heGltdW1Vbm9ic2N1
cmVkU2l6ZSB8fCBuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUgIT0gX2xhc3RTZW50TWF4aW11bVVu
b2JzY3VyZWRTaXplLnZhbHVlKCkpCiAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1heGltdW1V
bm9ic2N1cmVkU2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUobmV3TWF4aW11bVVub2JzY3VyZWRTaXpl
KV07CiAKQEAgLTI3MTQsNiArMjczNSwyMSBAQCAtICh2b2lkKV9zZXRWaWV3TGF5b3V0U2l6ZU92
ZXJyaWRlOihDR1NpemUpdmlld0xheW91dFNpemVPdmVycmlkZQogICAgICAgICBbc2VsZiBfZGlz
cGF0Y2hTZXRWaWV3TGF5b3V0U2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUodmlld0xheW91dFNpemVP
dmVycmlkZSldOwogfQogCistIChDR1NpemUpX21pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRl
Cit7CisgICAgQVNTRVJUKF9taW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSk7CisgICAgcmV0
dXJuIF9taW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZS52YWx1ZV9vcihDR1NpemVaZXJvKTsK
K30KKworLSAodm9pZClfc2V0TWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6KENHU2l6ZSlz
aXplCit7CisgICAgQVNTRVJUKHNpemUud2lkdGggPD0gc2VsZi5ib3VuZHMuc2l6ZS53aWR0aCAm
JiBzaXplLmhlaWdodCA8PSBzZWxmLmJvdW5kcy5zaXplLmhlaWdodCk7CisgICAgX21pbmltdW1V
bm9ic2N1cmVkU2l6ZU92ZXJyaWRlID0gc2l6ZTsKKworICAgIGlmIChfZHluYW1pY1ZpZXdwb3J0
VXBkYXRlTW9kZSA9PSBXZWJLaXQ6OkR5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGU6Ok5vdFJlc2l6
aW5nKQorICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRNaW5pbXVtVW5vYnNjdXJlZFNpemU6V2Vi
Q29yZTo6RmxvYXRTaXplKHNpemUpXTsKK30KKwogLy8gRGVwcmVjYXRlZCBTUEkKIC0gKENHU2l6
ZSlfbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUKIHsKQEAgLTMwMzgsNiArMzA3NCw3IEBA
IC0gKHZvaWQpX2JlZ2luQW5pbWF0ZWRSZXNpemVXaXRoVXBkYXRlczoodm9pZCAoXikodm9pZCkp
dXBkYXRlQmxvY2sKICAgICAgICAgb2xkT2JzY3VyZWRJbnNldHMgPSBfb2JzY3VyZWRJbnNldHM7
CiAgICAgfQogICAgIGF1dG8gb2xkVmlld0xheW91dFNpemUgPSBbc2VsZiBhY3RpdmVWaWV3TGF5
b3V0U2l6ZTpvbGRCb3VuZHNdOworICAgIGF1dG8gb2xkTWluaW11bVVub2JzY3VyZWRTaXplID0g
YWN0aXZlTWluaW11bVVub2JzY3VyZWRTaXplKHNlbGYsIG9sZEJvdW5kcyk7CiAgICAgYXV0byBv
bGRNYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBhY3RpdmVNYXhpbXVtVW5vYnNjdXJlZFNpemUoc2Vs
Ziwgb2xkQm91bmRzKTsKIAogICAgIHVwZGF0ZUJsb2NrKCk7CkBAIC0zMDQ1LDYgKzMwODIsNyBA
QCAtICh2b2lkKV9iZWdpbkFuaW1hdGVkUmVzaXplV2l0aFVwZGF0ZXM6KHZvaWQgKF4pKHZvaWQp
KXVwZGF0ZUJsb2NrCiAgICAgQ0dSZWN0IG5ld0JvdW5kcyA9IHNlbGYuYm91bmRzOwogICAgIGF1
dG8gbmV3TWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoID0gW3NlbGYgX21pbmltdW1FZmZlY3Rp
dmVEZXZpY2VXaWR0aF07CiAgICAgYXV0byBuZXdWaWV3TGF5b3V0U2l6ZSA9IFtzZWxmIGFjdGl2
ZVZpZXdMYXlvdXRTaXplOm5ld0JvdW5kc107CisgICAgYXV0byBuZXdNaW5pbXVtVW5vYnNjdXJl
ZFNpemUgPSBhY3RpdmVNaW5pbXVtVW5vYnNjdXJlZFNpemUoc2VsZiwgbmV3Qm91bmRzKTsKICAg
ICBhdXRvIG5ld01heGltdW1Vbm9ic2N1cmVkU2l6ZSA9IGFjdGl2ZU1heGltdW1Vbm9ic2N1cmVk
U2l6ZShzZWxmLCBuZXdCb3VuZHMpOwogICAgIGludDMyX3QgbmV3T3JpZW50YXRpb24gPSBhY3Rp
dmVPcmllbnRhdGlvbihzZWxmKTsKICAgICBVSUVkZ2VJbnNldHMgbmV3T2JzY3VyZWRJbnNldHMg
PSBfb2JzY3VyZWRJbnNldHM7CkBAIC0zMDY2LDYgKzMxMDQsOCBAQCAtICh2b2lkKV9iZWdpbkFu
aW1hdGVkUmVzaXplV2l0aFVwZGF0ZXM6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrCiAgICAg
ICAgIFtzZWxmIF9mcmFtZU9yQm91bmRzQ2hhbmdlZF07CiAgICAgICAgIGlmIChfdmlld0xheW91
dFNpemVPdmVycmlkZSkKICAgICAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldFZpZXdMYXlvdXRT
aXplOm5ld1ZpZXdMYXlvdXRTaXplXTsKKyAgICAgICAgaWYgKF9taW5pbXVtVW5vYnNjdXJlZFNp
emVPdmVycmlkZSkKKyAgICAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1pbmltdW1Vbm9ic2N1
cmVkU2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUobmV3TWluaW11bVVub2JzY3VyZWRTaXplKV07CiAg
ICAgICAgIGlmIChfbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUpCiAgICAgICAgICAgICBb
c2VsZiBfZGlzcGF0Y2hTZXRNYXhpbXVtVW5vYnNjdXJlZFNpemU6V2ViQ29yZTo6RmxvYXRTaXpl
KG5ld01heGltdW1Vbm9ic2N1cmVkU2l6ZSldOwogICAgICAgICBpZiAoX292ZXJyaWRlc0ludGVy
ZmFjZU9yaWVudGF0aW9uKQpAQCAtMzA3Niw2ICszMTE2LDcgQEAgLSAodm9pZClfYmVnaW5Bbmlt
YXRlZFJlc2l6ZVdpdGhVcGRhdGVzOih2b2lkICheKSh2b2lkKSl1cGRhdGVCbG9jawogCiAgICAg
aWYgKENHUmVjdEVxdWFsVG9SZWN0KG9sZEJvdW5kcywgbmV3Qm91bmRzKQogICAgICAgICAmJiBv
bGRWaWV3TGF5b3V0U2l6ZSA9PSBuZXdWaWV3TGF5b3V0U2l6ZQorICAgICAgICAmJiBvbGRNaW5p
bXVtVW5vYnNjdXJlZFNpemUgPT0gbmV3TWluaW11bVVub2JzY3VyZWRTaXplCiAgICAgICAgICYm
IG9sZE1heGltdW1Vbm9ic2N1cmVkU2l6ZSA9PSBuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUKICAg
ICAgICAgJiYgb2xkT3JpZW50YXRpb24gPT0gbmV3T3JpZW50YXRpb24KICAgICAgICAgJiYgb2xk
TWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoID09IG5ld01pbmltdW1FZmZlY3RpdmVEZXZpY2VX
aWR0aApAQCAtMzE0MywxMCArMzE4NCwxMSBAQCAtICh2b2lkKV9iZWdpbkFuaW1hdGVkUmVzaXpl
V2l0aFVwZGF0ZXM6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrCiAgICAgV2ViQ29yZTo6Rmxv
YXRCb3hFeHRlbnQgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzRXh0ZW50KHVub2JzY3VyZWRTYWZl
QXJlYUluc2V0cy50b3AsIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cy5yaWdodCwgdW5vYnNjdXJl
ZFNhZmVBcmVhSW5zZXRzLmJvdHRvbSwgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLmxlZnQpOwog
CiAgICAgX2xhc3RTZW50Vmlld0xheW91dFNpemUgPSBuZXdWaWV3TGF5b3V0U2l6ZTsKKyAgICBf
bGFzdFNlbnRNaW5pbXVtVW5vYnNjdXJlZFNpemUgPSBuZXdNaW5pbXVtVW5vYnNjdXJlZFNpemU7
CiAgICAgX2xhc3RTZW50TWF4aW11bVVub2JzY3VyZWRTaXplID0gbmV3TWF4aW11bVVub2JzY3Vy
ZWRTaXplOwogICAgIF9sYXN0U2VudERldmljZU9yaWVudGF0aW9uID0gbmV3T3JpZW50YXRpb247
CiAKLSAgICBfcGFnZS0+ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShuZXdWaWV3TGF5b3V0U2l6
ZSwgbmV3TWF4aW11bVVub2JzY3VyZWRTaXplLCB2aXNpYmxlUmVjdEluQ29udGVudENvb3JkaW5h
dGVzLCB1bm9ic2N1cmVkUmVjdEluQ29udGVudENvb3JkaW5hdGVzLCBmdXR1cmVVbm9ic2N1cmVk
UmVjdEluU2VsZkNvb3JkaW5hdGVzLCB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHNFeHRlbnQsIHRh
cmdldFNjYWxlLCBuZXdPcmllbnRhdGlvbiwgbmV3TWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRo
LCArK19jdXJyZW50RHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKTsKKyAgICBfcGFnZS0+ZHlu
YW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShuZXdWaWV3TGF5b3V0U2l6ZSwgbmV3TWluaW11bVVub2Jz
Y3VyZWRTaXplLCBuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUsIHZpc2libGVSZWN0SW5Db250ZW50
Q29vcmRpbmF0ZXMsIHVub2JzY3VyZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMsIGZ1dHVyZVVu
b2JzY3VyZWRSZWN0SW5TZWxmQ29vcmRpbmF0ZXMsIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0c0V4
dGVudCwgdGFyZ2V0U2NhbGUsIG5ld09yaWVudGF0aW9uLCBuZXdNaW5pbXVtRWZmZWN0aXZlRGV2
aWNlV2lkdGgsICsrX2N1cnJlbnREeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpOwogICAgIGlm
IChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVhID0gX3BhZ2UtPmRyYXdpbmdB
cmVhKCkpCiAgICAgICAgIGRyYXdpbmdBcmVhLT5zZXRTaXplKFdlYkNvcmU6OkludFNpemUobmV3
Qm91bmRzLnNpemUpKTsKIApAQCAtMzI2OCwxMiArMzMxMCwxNCBAQCAtICh2b2lkKV9vdmVycmlk
ZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6KENHU2l6ZSltaW5pbXVtTGF5
b3V0U2l6ZQogICAgICAgICBSRUxFQVNFX0xPR19GQVVMVChWaXNpYmxlUmVjdHMsICIlczogRXJy
b3I6IGF0dGVtcHRpbmcgdG8gb3ZlcnJpZGUgbGF5b3V0IHBhcmFtZXRlcnMgd2l0aCBuZWdhdGl2
ZSB3aWR0aCBvciBoZWlnaHQ6ICVAIiwgX19QUkVUVFlfRlVOQ1RJT05fXywgTlNTdHJpbmdGcm9t
Q0dTaXplKG1pbmltdW1MYXlvdXRTaXplKSk7CiAKICAgICBbc2VsZiBfc2V0Vmlld0xheW91dFNp
emVPdmVycmlkZTpDR1NpemVNYWtlKHN0ZDo6bWF4PENHRmxvYXQ+KDAsIG1pbmltdW1MYXlvdXRT
aXplLndpZHRoKSwgc3RkOjptYXg8Q0dGbG9hdD4oMCwgbWluaW11bUxheW91dFNpemUuaGVpZ2h0
KSldOworICAgIFtzZWxmIF9zZXRNaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTptaW5pbXVt
TGF5b3V0U2l6ZV07CiAgICAgW3NlbGYgX3NldE1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRl
Om1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlXTsKIH0KIAogLSAodm9pZClfY2xlYXJPdmVy
cmlkZUxheW91dFBhcmFtZXRlcnMKIHsKICAgICBfdmlld0xheW91dFNpemVPdmVycmlkZSA9IHN0
ZDo6bnVsbG9wdDsKKyAgICBfbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUgPSBzdGQ6Om51
bGxvcHQ7CiAgICAgX21heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlID0gc3RkOjpudWxsb3B0
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAzODJi
NTNlZjdlOTc2Y2JiZjJhNDliODM4YjdiYTYxZmQyNDY3YWIyLi45Mzk3Zjc4YmU2ZTBmMDQ1YzQ4
YTQ0NDM5ZTE1NjRmZDFhMWZlODVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKQEAgLTgyNDAsNiArODI0MCw3IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMg
V2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAg
ICAgcGFyYW1ldGVycy5vdmVycmlkZVNjcmVlblNpemUgPSBvdmVycmlkZVNjcmVlblNpemUoKTsK
ICAgICBwYXJhbWV0ZXJzLnRleHRBdXRvc2l6aW5nV2lkdGggPSB0ZXh0QXV0b3NpemluZ1dpZHRo
KCk7CiAgICAgcGFyYW1ldGVycy5taW1lVHlwZXNXaXRoQ3VzdG9tQ29udGVudFByb3ZpZGVycyA9
IHBhZ2VDbGllbnQoKS5taW1lVHlwZXNXaXRoQ3VzdG9tQ29udGVudFByb3ZpZGVycygpOworICAg
IHBhcmFtZXRlcnMubWluaW11bVVub2JzY3VyZWRTaXplID0gbV9taW5pbXVtVW5vYnNjdXJlZFNp
emU7CiAgICAgcGFyYW1ldGVycy5tYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBtX21heGltdW1Vbm9i
c2N1cmVkU2l6ZTsKICAgICBwYXJhbWV0ZXJzLmRldmljZU9yaWVudGF0aW9uID0gbV9kZXZpY2VP
cmllbnRhdGlvbjsKICAgICBwYXJhbWV0ZXJzLmtleWJvYXJkSXNBdHRhY2hlZCA9IGlzSW5IYXJk
d2FyZUtleWJvYXJkTW9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCAyYWVlMDg0Yzc2NjE4YmNmNzI1NmMxZmQ4MWMxYzgyYjJiMDQ2Njk2Li5hMzQ2YTY4OTMz
ODI5ZTBkZGYwM2YwNjcyYTUxNDIwZGU1ZWU4NzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtODE3LDkgKzgxNywxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3Jv
bGxpbmdOb2RlU2Nyb2xsV2lsbFN0YXJ0U2Nyb2xsKCk7CiAgICAgdm9pZCBzY3JvbGxpbmdOb2Rl
U2Nyb2xsRGlkRW5kU2Nyb2xsKCk7CiAKLSAgICB2b2lkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRh
dGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVu
b2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
Qm94RXh0ZW50JiB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSB0YXJnZXRTY2FsZSwg
aW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgZG91YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VX
aWR0aCwgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKTsKKyAgICB2b2lkIGR5bmFtaWNWaWV3
cG9ydFNpemVVcGRhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtaW5pbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJn
ZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpG
bG9hdEJveEV4dGVudCYgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0U2Nh
bGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2
aWNlV2lkdGgsIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCk7CiAKICAgICB2b2lkIHNldFZp
ZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYsIGRvdWJsZSBzY2FsZUZhY3RvciwgZG91YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0
aCk7CisgICAgdm9pZCBzZXRNaW5pbXVtVW5vYnNjdXJlZFNpemUoY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJik7CisgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbWluaW11bVVub2JzY3VyZWRTaXplOyB9CiAgICAgdm9pZCBzZXRN
YXhpbXVtVW5vYnNjdXJlZFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgV2Vi
Q29yZTo6RmxvYXRTaXplIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bWF4aW11bVVub2JzY3VyZWRTaXplOyB9CiAgICAgdm9pZCBzZXREZXZpY2VPcmllbnRhdGlvbihp
bnQzMl90KTsKQEAgLTI5ODAsNiArMjk4Miw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICBGdW5jdGlvbjxib29sKCk+IG1fZGV2aWNlT3JpZW50YXRpb25Vc2VyUGVy
bWlzc2lvbkhhbmRsZXJGb3JUZXN0aW5nOwogICAgIGJvb2wgbV93YWl0aW5nRm9yUG9zdExheW91
dEVkaXRvclN0YXRlVXBkYXRlQWZ0ZXJGb2N1c2luZ0VsZW1lbnQgeyBmYWxzZSB9OworICAgIFdl
YkNvcmU6OkZsb2F0U2l6ZSBtX21pbmltdW1Vbm9ic2N1cmVkU2l6ZTsKICAgICBXZWJDb3JlOjpG
bG9hdFNpemUgbV9tYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgYm9vbCBtX2xhc3RPYnNlcnZl
ZFN0YXRlV2FzQmFja2dyb3VuZCB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IDRjNzM4YmE4MjYxODMyNjQ3
ZTE2NTczMzlhODlhMDBjMGUwMTU3NGIuLmI0NjNjNTVlYjEwOWQ0YjZkMmFkZDFlODg0ODExNThh
MzBjNzVmNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdl
UHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94
eUlPUy5tbQpAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzY3JvbGxpbmdO
b2RlU2Nyb2xsRGlkRW5kU2Nyb2xsKCkKICAgICBwYWdlQ2xpZW50KCkuc2Nyb2xsaW5nTm9kZVNj
cm9sbERpZEVuZFNjcm9sbCgpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZHluYW1pY1ZpZXdw
b3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0
YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJl
ZFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdD
b29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHVub2JzY3VyZWRTYWZl
QXJlYUluc2V0cywgZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9u
LCBkb3VibGUgbWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCBEeW5hbWljVmlld3BvcnRTaXpl
VXBkYXRlSUQgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKQordm9pZCBXZWJQYWdlUHJveHk6
OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6
ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtaW5pbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBGbG9hdFJl
Y3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRVbm9i
c2N1cmVkUmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xs
Vmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdW5vYnNjdXJl
ZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0U2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50
YXRpb24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsIER5bmFtaWNWaWV3cG9y
dFNpemVVcGRhdGVJRCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpCiB7CiAgICAgaWYgKCFo
YXNSdW5uaW5nUHJvY2VzcygpKQogICAgICAgICByZXR1cm47CkBAIC0yNzMsNyArMjczLDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRT
aXplJiB2aWV3TGF5b3V0U2l6ZSwgY28KIAogICAgIG1fdmlld3BvcnRDb25maWd1cmF0aW9uVmll
d0xheW91dFNpemUgPSB2aWV3TGF5b3V0U2l6ZTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUodmlld0xheW91dFNpemUsCi0g
ICAgICAgIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCB0
YXJnZXRVbm9ic2N1cmVkUmVjdCwKKyAgICAgICAgbWluaW11bVVub2JzY3VyZWRTaXplLCBtYXhp
bXVtVW5vYnNjdXJlZFNpemUsIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgdGFyZ2V0VW5vYnNj
dXJlZFJlY3QsCiAgICAgICAgIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRp
bmF0ZXMsIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywKICAgICAgICAgdGFyZ2V0U2NhbGUsIGRl
dmljZU9yaWVudGF0aW9uLCBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsIGR5bmFtaWNWaWV3
cG9ydFNpemVVcGRhdGVJRCksIG1fd2ViUGFnZUlEKTsKIApAQCAtMzAwLDYgKzMwMCwxNCBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6c2V0Rm9yY2VBbHdheXNVc2VyU2NhbGFibGUoYm9vbCB1c2VyU2Nh
bGFibGUpCiAgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0Rm9y
Y2VBbHdheXNVc2VyU2NhbGFibGUodXNlclNjYWxhYmxlKSwgbV93ZWJQYWdlSUQpOwogfQogCit2
b2lkIFdlYlBhZ2VQcm94eTo6c2V0TWluaW11bVVub2JzY3VyZWRTaXplKGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgc2l6ZSkKK3sKKyAgICBtX21pbmltdW1Vbm9ic2N1cmVkU2l6ZSA9IHNpemU7
CisKKyAgICBpZiAoaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAgbV9wcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRNaW5pbXVtVW5vYnNjdXJlZFNpemUoc2l6ZSksIG1fd2Vi
UGFnZUlEKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnNldE1heGltdW1Vbm9ic2N1cmVkU2l6
ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUpCiB7CiAgICAgbV9tYXhpbXVtVW5vYnNj
dXJlZFNpemUgPSBzaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggOTlh
NTFhYjVmZWFhZTQ3OWEwM2EzZDU4MWM4ODk0NzBiMDBlZTljMi4uYjBhOWI4OTg4NjlhNTFlZDQ5
ZDNmZjUwMTc1Y2I3ZDMyY2EyN2U5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CkBAIC0xNTU3LDcgKzE1NTcsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0
aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICB9CiAKICAgICBpZiAoYXV0byB2aWV3cG9y
dFNpemVGb3JWaWV3cG9ydFVuaXRzID0gd2ViUGFnZS0+dmlld3BvcnRTaXplRm9yQ1NTVmlld3Bv
cnRVbml0cygpKQotICAgICAgICB2aWV3LT5zZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVu
aXRzKCp2aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzKTsKKyAgICAgICAgdmlldy0+c2V0U2l6
ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygqdmlld3BvcnRTaXplRm9yVmlld3BvcnRVbml0cyk7
CiAgICAgdmlldy0+c2V0UHJvaGliaXRzU2Nyb2xsaW5nKHNob3VsZERpc2FibGVTY3JvbGxpbmcp
OwogICAgIHZpZXctPnNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQoIXdlYlBhZ2UtPnNo
b3VsZEV4dGVuZEluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb24oKSk7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IGMxODY2YTI1YmI5ZDQ3NjcxMTA4YzQwOWE4ZjJmNGIzM2FhYTM3ZjcuLmE4MzBhYTNm
OTlmMjc1ZDEwYzRlZWE2NjE1ZGNmZWYzNWNhMjg3YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC04NjgsNiArODY4LDcgQEAgV2ViUGFnZTo6
V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMm
JiBwYXJhbWV0ZXJzKQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBzZXRWaWV3cG9y
dENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZShwYXJhbWV0ZXJzLnZpZXdwb3J0Q29uZmlndXJh
dGlvblZpZXdMYXlvdXRTaXplLCBwYXJhbWV0ZXJzLnZpZXdwb3J0Q29uZmlndXJhdGlvbkxheW91
dFNpemVTY2FsZUZhY3RvciwgcGFyYW1ldGVycy52aWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVt
RWZmZWN0aXZlRGV2aWNlV2lkdGgpOworICAgIHNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZShwYXJh
bWV0ZXJzLm1pbmltdW1Vbm9ic2N1cmVkU2l6ZSk7CiAgICAgc2V0TWF4aW11bVVub2JzY3VyZWRT
aXplKHBhcmFtZXRlcnMubWF4aW11bVVub2JzY3VyZWRTaXplKTsKICNlbmRpZgogCkBAIC02MjYw
LDcgKzYyNjEsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0
VW5pdHMoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPgogCiAgICAgbV92aWV3cG9ydFNp
emVGb3JDU1NWaWV3cG9ydFVuaXRzID0gdmlld3BvcnRTaXplOwogICAgIGlmIChtX3ZpZXdwb3J0
U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpCi0gICAgICAgIGNvcmVQYWdlKCktPm1haW5GcmFtZSgp
LnZpZXcoKS0+c2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygqbV92aWV3cG9ydFNp
emVGb3JDU1NWaWV3cG9ydFVuaXRzKTsKKyAgICAgICAgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCku
dmlldygpLT5zZXRTaXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKCptX3ZpZXdwb3J0U2l6ZUZv
ckNTU1ZpZXdwb3J0VW5pdHMpOwogfQogCiBib29sIFdlYlBhZ2U6OmlzU21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApp
bmRleCBhMmJhMjMwNjEwMThkN2UwNjQ2ZmNhYjlmMGY2Mzc0ZjBjNGU5ZDU3Li41Y2Q3MzE1NDA0
N2JjMTg5NTFjZmUwMjBmNGE0Zjc2MGQ0Y2Y0ZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMDgxLDkgKzEwODEsMTAgQEAgcHVibGljOgogICAg
IHZvaWQgdXBkYXRlVmlzaWJpbGl0eVN0YXRlKGJvb2wgaXNJbml0aWFsU3RhdGUgPSBmYWxzZSk7
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2V0TWluaW11bVVub2JzY3Vy
ZWRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwogICAgIHZvaWQgc2V0TWF4aW11bVVu
b2JzY3VyZWRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwogICAgIHZvaWQgc2V0RGV2
aWNlT3JpZW50YXRpb24oaW50MzJfdCk7Ci0gICAgdm9pZCBkeW5hbWljVmlld3BvcnRTaXplVXBk
YXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRV
bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9h
dEJveEV4dGVudCYgdGFyZ2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2NhbGUs
IGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2aWNl
V2lkdGgsIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCk7CisgICAgdm9pZCBkeW5hbWljVmll
d3BvcnRTaXplVXBkYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWluaW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFy
Z2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6
RmxvYXRCb3hFeHRlbnQmIHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHNj
YWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCBkb3VibGUgbWluaW11bUVmZmVjdGl2ZURl
dmljZVdpZHRoLCBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpOwogICAgIGJvb2wgc2NhbGVX
YXNTZXRCeVVJUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fc2NhbGVXYXNTZXRCeVVJUHJvY2Vz
czsgfQogICAgIHZvaWQgd2lsbFN0YXJ0VXNlclRyaWdnZXJlZFpvb21pbmcoKTsKICAgICB2b2lk
IGFwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZSgpOwpAQCAtMjI1OCw2ICsyMjU5LDcgQEAgcHJp
dmF0ZToKIAogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2ltcGxlUmFuZ2U+IG1faW5pdGlh
bFNlbGVjdGlvbjsKICAgICBXZWJDb3JlOjpWaXNpYmxlU2VsZWN0aW9uIG1fc3RvcmVkU2VsZWN0
aW9uRm9yQWNjZXNzaWJpbGl0eSB7IFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb24oKSB9OworICAg
IFdlYkNvcmU6OkZsb2F0U2l6ZSBtX21pbmltdW1Vbm9ic2N1cmVkU2l6ZTsKICAgICBXZWJDb3Jl
OjpGbG9hdFNpemUgbV9tYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgaW50MzJfdCBtX2Rldmlj
ZU9yaWVudGF0aW9uIHsgMCB9OwogICAgIGJvb2wgbV9rZXlib2FyZElzQXR0YWNoZWQgeyBmYWxz
ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KaW5kZXggOWViNzEyMTJiZWQ3YjA1NmQ2YzYzNGE5M2ZiNmU5ZTJmMmVmZTUx
OS4uMzhjZTQ1NzBjOThhOGI3YTkyYTEwMzhhMjE1NWExYjI3ZWE0MTg0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBA
IC01MywxMCArNTMsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAg
ICAgTW91c2VFdmVudChXZWJLaXQ6OldlYk1vdXNlRXZlbnQgZXZlbnQsIHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gc2FuZGJveEV4dGVuc2lv
bnMpCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBTZXRWaWV3cG9ydENvbmZpZ3VyYXRp
b25WaWV3TGF5b3V0U2l6ZShXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSwgZG91YmxlIHNjYWxlRmFj
dG9yLCBkb3VibGUgbWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoKQorICAgIFNldE1pbmltdW1V
bm9ic2N1cmVkU2l6ZShXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSkKICAgICBTZXRNYXhpbXVtVW5v
YnNjdXJlZFNpemUoV2ViQ29yZTo6RmxvYXRTaXplIHNpemUpCiAgICAgU2V0RGV2aWNlT3JpZW50
YXRpb24oaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbikKICAgICBTZXRPdmVycmlkZVZpZXdwb3J0
QXJndW1lbnRzKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM+IGFyZ3Vt
ZW50cykKLSAgICBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKFdlYkNvcmU6OkZsb2F0U2l6ZSB2
aWV3TGF5b3V0U2l6ZSwgV2ViQ29yZTo6RmxvYXRTaXplIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwg
V2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgV2ViQ29yZTo6Rmxv
YXRSZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0VW5v
YnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgV2ViQ29yZTo6UmVjdEVkZ2VzPGZs
b2F0PiB0YXJnZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSBzY2FsZSwgaW50MzJf
dCBkZXZpY2VPcmllbnRhdGlvbiwgZG91YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCwg
dWludDY0X3QgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKQorICAgIER5bmFtaWNWaWV3cG9y
dFNpemVVcGRhdGUoV2ViQ29yZTo6RmxvYXRTaXplIHZpZXdMYXlvdXRTaXplLCBXZWJDb3JlOjpG
bG9hdFNpemUgbWluaW11bVVub2JzY3VyZWRTaXplLCBXZWJDb3JlOjpGbG9hdFNpemUgbWF4aW11
bVVub2JzY3VyZWRTaXplLCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0RXhwb3NlZENvbnRlbnRS
ZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIFdlYkNvcmU6OkZs
b2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBXZWJD
b3JlOjpSZWN0RWRnZXM8ZmxvYXQ+IHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91
YmxlIHNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCBkb3VibGUgbWluaW11bUVmZmVj
dGl2ZURldmljZVdpZHRoLCB1aW50NjRfdCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpCiAg
ICAgCiAgICAgU2V0U2NyZWVuSXNCZWluZ0NhcHR1cmVkKGJvb2wgY2FwdHVyZWQpCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5k
ZXggZTdlNjJmMzRkMTAyYjI5MGMxNDk4YjA3ZmI1YjRhY2QwYjY1MmE5MS4uZTczNjdhYWRmYjEz
OGFmOTIwYTcxNzA0ZjYxNDBkNDg3ZjFiZGE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTM0MzQsNiArMzQzNCwxMiBA
QCB2b2lkIFdlYlBhZ2U6OnNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKGNv
bnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZG91YgogICAgIHZpZXdwb3J0Q29uZmlndXJhdGlvbkNoYW5n
ZWQoem9vbVRvSW5pdGlhbFNjYWxlKTsKIH0KIAordm9pZCBXZWJQYWdlOjpzZXRNaW5pbXVtVW5v
YnNjdXJlZFNpemUoY29uc3QgRmxvYXRTaXplJiBtaW5pbXVtVW5vYnNjdXJlZFNpemUpCit7Cisg
ICAgbV9taW5pbXVtVW5vYnNjdXJlZFNpemUgPSBtaW5pbXVtVW5vYnNjdXJlZFNpemU7CisgICAg
dXBkYXRlVmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpOworfQorCiB2b2lkIFdlYlBh
Z2U6OnNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZShjb25zdCBGbG9hdFNpemUmIG1heGltdW1Vbm9i
c2N1cmVkU2l6ZSkKIHsKICAgICBtX21heGltdW1Vbm9ic2N1cmVkU2l6ZSA9IG1heGltdW1Vbm9i
c2N1cmVkU2l6ZTsKQEAgLTM0NTMsNyArMzQ1OSw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0T3ZlcnJp
ZGVWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlZpZXdwb3J0
CiAgICAgbV9wYWdlLT5zZXRPdmVycmlkZVZpZXdwb3J0QXJndW1lbnRzKGFyZ3VtZW50cyk7CiB9
CiAKLXZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNp
emUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9i
c2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3Qg
V2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywg
ZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCBkb3VibGUgbWlu
aW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQgZHlu
YW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKQordm9pZCBXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRT
aXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgbWluaW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRFeHBvc2Vk
Q29udGVudFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29y
ZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHRhcmdldFVub2JzY3VyZWRT
YWZlQXJlYUluc2V0cywgZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0
aW9uLCBkb3VibGUgbWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCBEeW5hbWljVmlld3BvcnRT
aXplVXBkYXRlSUQgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKQogewogICAgIFNldEZvclNj
b3BlPGJvb2w+IGR5bmFtaWNTaXplVXBkYXRlR3VhcmQobV9pbkR5bmFtaWNTaXplVXBkYXRlLCB0
cnVlKTsKICAgICAvLyBGSVhNRTogdGhpcyBkb2VzIG5vdCBoYW5kbGUgdGhlIGNhc2VzIHdoZXJl
IHRoZSBjb250ZW50IHdvdWxkIGNoYW5nZSB0aGUgY29udGVudCBzaXplIG9yIHNjcm9sbCBwb3Np
dGlvbiBmcm9tIEphdmFTY3JpcHQuCkBAIC0zNTAxLDYgKzM1MDcsNyBAQCB2b2lkIFdlYlBhZ2U6
OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6
ZSwgY29uc3QgVwogICAgIGlmIChzZXRGaXhlZExheW91dFNpemUobmV3TGF5b3V0U2l6ZSkpCiAg
ICAgICAgIHJlc2V0VGV4dEF1dG9zaXppbmcoKTsKIAorICAgIHNldE1pbmltdW1Vbm9ic2N1cmVk
U2l6ZShtaW5pbXVtVW5vYnNjdXJlZFNpemUpOwogICAgIHNldE1heGltdW1Vbm9ic2N1cmVkU2l6
ZShtYXhpbXVtVW5vYnNjdXJlZFNpemUpOwogICAgIG1fcGFnZS0+c2V0VW5vYnNjdXJlZFNhZmVB
cmVhSW5zZXRzKHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cyk7CiAKQEAgLTM4NDcsMTMg
KzM4NTQsMTkgQEAgdm9pZCBXZWJQYWdlOjp2aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2VkKFpv
b21Ub0luaXRpYWxTY2FsZSB6b29tVG9Jbml0aWFsU2NhbGUKIAogdm9pZCBXZWJQYWdlOjp1cGRh
dGVWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkKIHsKKyAgICBGbG9hdFNpemUgc21h
bGxlc3RVbm9ic2N1cmVkU2l6ZSA9IG1fbWluaW11bVVub2JzY3VyZWRTaXplOworICAgIGlmIChz
bWFsbGVzdFVub2JzY3VyZWRTaXplLmlzRW1wdHkoKSkKKyAgICAgICAgc21hbGxlc3RVbm9ic2N1
cmVkU2l6ZSA9IG1fdmlld3BvcnRDb25maWd1cmF0aW9uLnZpZXdMYXlvdXRTaXplKCk7CisKICAg
ICBGbG9hdFNpemUgbGFyZ2VzdFVub2JzY3VyZWRTaXplID0gbV9tYXhpbXVtVW5vYnNjdXJlZFNp
emU7CiAgICAgaWYgKGxhcmdlc3RVbm9ic2N1cmVkU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIGxh
cmdlc3RVbm9ic2N1cmVkU2l6ZSA9IG1fdmlld3BvcnRDb25maWd1cmF0aW9uLnZpZXdMYXlvdXRT
aXplKCk7CiAKICAgICBGcmFtZVZpZXcmIGZyYW1lVmlldyA9ICptYWluRnJhbWVWaWV3KCk7Cisg
ICAgc21hbGxlc3RVbm9ic2N1cmVkU2l6ZS5zY2FsZSgxIC8gbV92aWV3cG9ydENvbmZpZ3VyYXRp
b24uaW5pdGlhbFNjYWxlSWdub3JpbmdDb250ZW50U2l6ZSgpKTsKICAgICBsYXJnZXN0VW5vYnNj
dXJlZFNpemUuc2NhbGUoMSAvIG1fdmlld3BvcnRDb25maWd1cmF0aW9uLmluaXRpYWxTY2FsZUln
bm9yaW5nQ29udGVudFNpemUoKSk7Ci0gICAgZnJhbWVWaWV3LnNldFZpZXdwb3J0U2l6ZUZvckNT
U1ZpZXdwb3J0VW5pdHMocm91bmRlZEludFNpemUobGFyZ2VzdFVub2JzY3VyZWRTaXplKSk7Cisg
ICAgZnJhbWVWaWV3LnNldFNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMocm91bmRlZEludFNp
emUoc21hbGxlc3RVbm9ic2N1cmVkU2l6ZSkpOworICAgIGZyYW1lVmlldy5zZXRTaXplRm9yQ1NT
TGFyZ2VWaWV3cG9ydFVuaXRzKHJvdW5kZWRJbnRTaXplKGxhcmdlc3RVbm9ic2N1cmVkU2l6ZSkp
OwogfQogCiB2b2lkIFdlYlBhZ2U6OmFwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZSgpCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjAzNmNlODdl
ODZmODRiNDVjNGU2YTdkMjdkYjNiN2FmZDBkMmUwOC4uZjI4ZDdiM2MxMjJiMzc1NTBlOTVhMzA5
MjdiOWRkOWM4OTMwN2JkNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTEwLTEyICBEZXZpbiBSb3Vzc28gIDxk
cm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbY3NzLXZhbHVlcy00XSBTdXBwb3J0IHNtYWxs
IChzdiopLCBsYXJnZSAobHYqKSBhbmQgZHluYW1pYyAoZHYqKSB2aWV3cG9ydCB1bml0cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5Mjg3CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83MTg1NzM3MD4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1v
biBGcmFzZXIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NT
U1ZpZXdwb3J0VW5pdHMubW06IEFkZGVkLgorICAgICAgICAoZXZhbHVhdGVGb3JJbnQpOgorICAg
ICAgICAoZ2V0RWxlbWVudEhlaWdodCk6CisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5pdHMu
QWxsU2FtZSk6CisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5pdHMuRW1wdHlVbm9ic2N1cmVk
U2l6ZU92ZXJyaWRlcyk6CisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5pdHMuU2FtZVVub2Jz
Y3VyZWRTaXplT3ZlcnJpZGVzKToKKyAgICAgICAgKFRFU1QuQ1NTVmlld3BvcnRVbml0cy5EaWZm
ZXJlbnRVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlcyk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9DU1NWaWV3cG9ydFVuaXRzLmh0bWw6IEFkZGVkLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Zsb2F0U2l6ZVRlc3RzLmNwcDoKKyAgICAg
ICAgKFRFU1QuRmxvYXRTaXplLk1pbkRpbWVuc2lvbik6IEFkZGVkLgorICAgICAgICAoVEVTVC5G
bG9hdFNpemUuTWF4RGltZW5zaW9uKTogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0ludFNpemVUZXN0cy5jcHA6CisgICAgICAgIChURVNULkludFNpemUuTWlu
RGltZW5zaW9uKTogQWRkZWQuCisgICAgICAgIChURVNULkludFNpemUuTWF4RGltZW5zaW9uKTog
QWRkZWQuCisgICAgICAgIEFkZCB1dGlsaXR5L2hlbHBlciBtZXRob2RzIGZvciByZXR1cm5pbmcg
dGhlIG1pbmltdW0vbWF4aW11bSBvZiB0aGUgd2lkdGggdnMgaGVpZ2h0LgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisK
IDIwMjEtMTAtMTkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBGaXggaU9TIEFQSSB0ZXN0cyBhZnRlciByMjg0MzA0CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGMxNzkxNjc2YjU4YTU5NGFhMGVmOGIzNDRkYmExYzUwYmMyZDZjMWIuLjk0
ZjA2MzE4ODhjYjgyMDQ5NGQwZjlmZTUxOTcyMDMwYmUzNjBmZDggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC04OTMsNiArODkzLDggQEAKIAkJOTNGQ0RCMzQyNjM2MzE1NjAwNDZERDdEIC8q
IFNvcnRlZEFycmF5TWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzRkNEQjMzMjYzNjMxNTYwMDQ2REQ3RCAvKiBTb3J0ZWRBcnJheU1hcC5jcHAg
Ki87IH07CiAJCTk1MDk1RjIwMjYyRkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRvcENvbG9y
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwOTVG
MUYyNjJGRkZBNTAwMDBEOTIwIC8qIFNhbXBsZWRQYWdlVG9wQ29sb3IubW0gKi87IH07CiAJCTk1
MEU0Q0MxMjUyRTc1MjQwMDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBwb3J0Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwRTRDQzAyNTJFNzUyMzAwNzE2
NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gKi87IH07CisJCTk1MkY3MTY1MjcwQkQ5N0UwMEQw
MERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTUyRjcxNjQyNzBCRDk3RTAwRDAwRENDIC8qIENTU1ZpZXdwb3J0
VW5pdHMubW0gKi87IH07CisJCTk1MkY3MTY3MjcwQkQ5Q0IwMEQwMERDQyAvKiBDU1NWaWV3cG9y
dFVuaXRzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTUyRjcxNjYyNzBCRDk5NzAwRDAwRENDIC8qIENTU1ZpZXdwb3J0VW5pdHMuaHRt
bCAqLzsgfTsKIAkJOTUzQUJCMzUyNUMwRDY4MjAwNEM4QjczIC8qIFdLV2ViVmlld1VuZGVyUGFn
ZUJhY2tncm91bmRDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk1M0FCQjM0MjVDMEQ2ODEwMDRDOEI3MyAvKiBXS1dlYlZpZXdVbmRlclBhZ2VC
YWNrZ3JvdW5kQ29sb3IubW0gKi87IH07CiAJCTk1OEI3MEUxMjZDNDZFREMwMEIyMDIyQiAvKiBO
U0F0dHJpYnV0ZWRTdHJpbmdXZWJLaXRBZGRpdGlvbnMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NThCNzBFMDI2QzQ2RURDMDBCMjAyMkIgLyogTlNB
dHRyaWJ1dGVkU3RyaW5nV2ViS2l0QWRkaXRpb25zLm1tICovOyB9OwogCQk5NUE1MjQ5NTI1ODFB
MTBEMDA0NjFGRTkgLyogV0tXZWJWaWV3VGhlbWVDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QTUyNDk0MjU4MUExMEQwMDQ2MUZFOSAvKiBX
S1dlYlZpZXdUaGVtZUNvbG9yLm1tICovOyB9OwpAQCAtMTQ2Niw2ICsxNDY4LDcgQEAKIAkJCQk5
QjYyNjMwQzFGOEMyNUM4MDA3RUUyOUIgLyogY29weS11cmwuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQk3QUVBRDQ4MTFFMjAxMjI3MDA0MTZFRkUgLyogQ3Jvc3NQYXJ0aXRpb25GaWxl
U2NoZW1lQWNjZXNzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNDk5NUE2RjAyNUU4
NzcyMDAwRTVGMEE5IC8qIGNzcC1kb2N1bWVudC11cmktcmVwb3J0Lmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCisJCQkJOTUyRjcxNjcyNzBCRDlDQjAwRDAwRENDIC8qIENTU1ZpZXdwb3J0VW5p
dHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkyRERENERBNDI3MEI4QjM1MDA2NTlB
NjEgLyogY3ViZS51c2R6IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0QUI1NzhBMUY2NTE2
NTQwMERCMERBMSAvKiBjdXN0b20tZHJhZ2dhYmxlLWRpdi5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCTI5MEY0Mjc1MTcyQTIyMUMwMDkzOUZGMCAvKiBjdXN0b20tcHJvdG9jb2wtc3lu
Yy14aHIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTI2NDEsNiArMjY0NCw4IEBACiAJ
CTkzRkNEQjMzMjYzNjMxNTYwMDQ2REQ3RCAvKiBTb3J0ZWRBcnJheU1hcC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb3J0ZWRBcnJheU1hcC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MDk1RjFGMjYyRkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVk
UGFnZVRvcENvbG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
U2FtcGxlZFBhZ2VUb3BDb2xvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUw
RTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBpT1NTdHlsdXNTdXBwb3J0Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5NTJGNzE2NDI3MEJEOTdFMDBEMDBEQ0MgLyogQ1NTVmll
d3BvcnRVbml0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENT
U1ZpZXdwb3J0VW5pdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MkY3MTY2
MjcwQkQ5OTcwMEQwMERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBDU1NW
aWV3cG9ydFVuaXRzLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1M0FCQjM0
MjVDMEQ2ODEwMDRDOEI3MyAvKiBXS1dlYlZpZXdVbmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3IubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdVbmRlclBh
Z2VCYWNrZ3JvdW5kQ29sb3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1OEI3
MEUwMjZDNDZFREMwMEIyMDIyQiAvKiBOU0F0dHJpYnV0ZWRTdHJpbmdXZWJLaXRBZGRpdGlvbnMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOU0F0dHJpYnV0ZWRT
dHJpbmdXZWJLaXRBZGRpdGlvbnMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1
QTUyNDk0MjU4MUExMEQwMDQ2MUZFOSAvKiBXS1dlYlZpZXdUaGVtZUNvbG9yLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3VGhlbWVDb2xvci5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM0OTQsNiArMzQ5OSw3IEBACiAJCQkJMUM3
OTIwMUIyMzRCREQ5QjAwMUVBRjIzIC8qIENvcHlSVEYubW0gKi8sCiAJCQkJOUI3QTM3QzIxRjhB
RUJBNTAwNEFBMjI4IC8qIENvcHlVUkwubW0gKi8sCiAJCQkJNTEwQTkyMUQyNERCMzhFRDAwQkZE
ODlDIC8qIENyZWF0ZVdlYkFyY2hpdmUubW0gKi8sCisJCQkJOTUyRjcxNjQyNzBCRDk3RTAwRDAw
RENDIC8qIENTU1ZpZXdwb3J0VW5pdHMubW0gKi8sCiAJCQkJNDZBOTExNTgyMTA4RTY2QjAwNzhE
NDBEIC8qIEN1c3RvbVVzZXJBZ2VudC5tbSAqLywKIAkJCQkyREM0Q0Y3NjFEMkQ5REQ4MDBFQ0ND
OTQgLyogRGF0YURldGVjdGlvbi5tbSAqLywKIAkJCQk1MThFRTUxQzIwQTc4RDMzMDBFMDI0RjMg
LyogRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbi5tbSAqLywKQEAgLTQwNTcsNiArNDA2
Myw3IEBACiAJCQkJOUIxMDU2NDIxRjkwNDdDQzAwRDU1ODNGIC8qIGNvcHktaHRtbC5odG1sICov
LAogCQkJCTlCNjI2MzBCMUY4QzI1MTAwMDdFRTI5QiAvKiBjb3B5LXVybC5odG1sICovLAogCQkJ
CTQ5OTVBNkVGMjVFODc2QTMwMEU1RjBBOSAvKiBjc3AtZG9jdW1lbnQtdXJpLXJlcG9ydC5odG1s
ICovLAorCQkJCTk1MkY3MTY2MjcwQkQ5OTcwMEQwMERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLmh0
bWwgKi8sCiAJCQkJRjRBQjU3ODkxRjY1MTY0QjAwREIwREExIC8qIGN1c3RvbS1kcmFnZ2FibGUt
ZGl2Lmh0bWwgKi8sCiAJCQkJRjQ3REZCMjQyMUE4NzA0QTAwMDIxRkI2IC8qIGRhdGEtZGV0ZWN0
b3JzLmh0bWwgKi8sCiAJCQkJRjQ4NkIxQ0YxRjY3OTRGRjAwRjM0QkREIC8qIERhdGFUcmFuc2Zl
ci1zZXREcmFnSW1hZ2UuaHRtbCAqLywKQEAgLTU1MDYsNiArNTUxMyw3IEBACiAJCQkJNTEwQTky
MUUyNERCMzhGMzAwQkZEODlDIC8qIENyZWF0ZVdlYkFyY2hpdmUubW0gaW4gU291cmNlcyAqLywK
IAkJCQk3QUVBRDQ3RjFFMjAxMTZDMDA0MTZFRkUgLyogQ3Jvc3NQYXJ0aXRpb25GaWxlU2NoZW1l
QWNjZXNzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFREIxQTQxMUE5MjAwNDQ3QzRDIC8q
IENTU1BhcnNlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5NTJGNzE2NTI3MEJEOTdFMDBEMDBE
Q0MgLyogQ1NTVmlld3BvcnRVbml0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU3NTg1OTdGMjNB
MjUyN0EwMEM3NDU3MiAvKiBDdGFwUGluVGVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1NzJC
NDAzNDIxNzY5QTg4MDAwQUQ0M0UgLyogQ3RhcFJlcXVlc3RUZXN0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTU3MkI0MDQ0MjE3ODFCNDMwMDBBRDQzRSAvKiBDdGFwUmVzcG9uc2VUZXN0LmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0Zsb2F0U2l6ZVRlc3RzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9GbG9hdFNpemVUZXN0cy5jcHAKaW5kZXggNzU2ZTc2ZjFkYmFjOWU2OGM4NjNiY2Q1ZjJmOWNi
M2NhNmI2ZTFlZC4uMjY3MWI4NzhiMWYxODk5Mzk5ODMyYjZiNWNlZmU5NzEwMWFiNTIwYSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Zsb2F0U2l6ZVRlc3Rz
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmxvYXRTaXplVGVz
dHMuY3BwCkBAIC05Myw2ICs5MywyOCBAQCBURVNUKEZsb2F0U2l6ZSwgSW50U2l6ZUNvbnN0cnVj
dGlvbikKICAgICB0ZXN0R2V0QW5kU2V0KHRlc3QpOwogfQogCitURVNUKEZsb2F0U2l6ZSwgTWlu
RGltZW5zaW9uKQoreworICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSB0ZXN0KDEwMjQuMGYsIDc2OC4w
Zik7CisKKyAgICBFWFBFQ1RfRkxPQVRfRVEoNzY4LjBmLCB0ZXN0Lm1pbkRpbWVuc2lvbigpKTsK
KworICAgIHRlc3Quc2NhbGUoMS4wZiwgMi4wZik7CisKKyAgICBFWFBFQ1RfRkxPQVRfRVEoMTAy
NC4wZiwgdGVzdC5taW5EaW1lbnNpb24oKSk7Cit9CisKK1RFU1QoRmxvYXRTaXplLCBNYXhEaW1l
bnNpb24pCit7CisgICAgV2ViQ29yZTo6RmxvYXRTaXplIHRlc3QoMTAyNC4wZiwgNzY4LjBmKTsK
KworICAgIEVYUEVDVF9GTE9BVF9FUSgxMDI0LjBmLCB0ZXN0Lm1heERpbWVuc2lvbigpKTsKKwor
ICAgIHRlc3Quc2NhbGUoMS4wZiwgMi4wZik7CisKKyAgICBFWFBFQ1RfRkxPQVRfRVEoMTUzNi4w
ZiwgdGVzdC5tYXhEaW1lbnNpb24oKSk7Cit9CisKIFRFU1QoRmxvYXRTaXplLCBTY2FsZSkKIHsK
ICAgICBXZWJDb3JlOjpGbG9hdFNpemUgdGVzdCgxMDI0LjBmLCA3NjguMGYpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ludFNpemVUZXN0cy5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSW50U2l6ZVRlc3RzLmNwcAppbmRleCA2
MjJmMGE4OGNkZGFlYWRiZTZiZDQ1NmM1NmU4YzRkODIyOWY1ZGJmLi40NGJhMzQ3OTFmYjRmM2Iy
YTk3MTVhZGFhODdlZDg0MWYxYWVjYmEzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvSW50U2l6ZVRlc3RzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvSW50U2l6ZVRlc3RzLmNwcApAQCAtOTMsNiArOTMsMjggQEAgVEVTVChJ
bnRTaXplLCBGbG9hdFNpemVDb25zdHJ1Y3Rpb24pCiAgICAgdGVzdEdldEFuZFNldCh0ZXN0KTsK
IH0KIAorVEVTVChJbnRTaXplLCBNaW5EaW1lbnNpb24pCit7CisgICAgV2ViQ29yZTo6SW50U2l6
ZSB0ZXN0KDEwMjQsIDc2OCk7CisKKyAgICBFWFBFQ1RfRVEoNzY4LCB0ZXN0Lm1pbkRpbWVuc2lv
bigpKTsKKworICAgIHRlc3Quc2NhbGUoMS4wZiwgMi4wZik7CisKKyAgICBFWFBFQ1RfRVEoMTAy
NCwgdGVzdC5taW5EaW1lbnNpb24oKSk7Cit9CisKK1RFU1QoSW50U2l6ZSwgTWF4RGltZW5zaW9u
KQoreworICAgIFdlYkNvcmU6OkludFNpemUgdGVzdCgxMDI0LCA3NjgpOworCisgICAgRVhQRUNU
X0VRKDEwMjQsIHRlc3QubWF4RGltZW5zaW9uKCkpOworCisgICAgdGVzdC5zY2FsZSgxLjBmLCAy
LjBmKTsKKworICAgIEVYUEVDVF9FUSgxNTM2LCB0ZXN0Lm1heERpbWVuc2lvbigpKTsKK30KKwog
VEVTVChJbnRTaXplLCBEaWFnb25hbExlbmd0aEFuZEFyZWEpCiB7CiAgICAgV2ViQ29yZTo6SW50
U2l6ZSB0ZXN0KDEwMjQsIDc2OCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441834</attachid>
            <date>2021-10-19 18:49:17 -0700</date>
            <delta_ts>2021-10-20 12:44:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219287-20211019184916.patch</filename>
            <type>text/plain</type>
            <size>98852</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2ZTQ0MTA5Y2Q4NGFhNjQ1MDEwMjUyNGJhZDFmZmZhNGYyZjRmMjA0Li5h
YmQ3MTk0YzNhMGIxNjcxZWYxMTkzMjYzMTE2NmEwZmY3OWExYzBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTE0IEBACisyMDIxLTEwLTEyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KKworICAgICAgICBbY3NzLXZhbHVlcy00XSBTdXBwb3J0IHNtYWxsIChzdiopLCBsYXJnZSAo
bHYqKSBhbmQgZHluYW1pYyAoZHYqKSB2aWV3cG9ydCB1bml0cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5Mjg3CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTg1NzM3MD4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAg
ICAgICAgU3BlYzogPGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTQvI3ZpZXdw
b3J0LXZhcmlhbnRzPgorCisgICAgICAgIFRlc3RzOiBDU1NWaWV3cG9ydFVuaXRzLkFsbFNhbWUK
KyAgICAgICAgICAgICAgIENTU1ZpZXdwb3J0VW5pdHMuRW1wdHlVbm9ic2N1cmVkU2l6ZU92ZXJy
aWRlcworICAgICAgICAgICAgICAgQ1NTVmlld3BvcnRVbml0cy5TYW1lVW5vYnNjdXJlZFNpemVP
dmVycmlkZXMKKyAgICAgICAgICAgICAgIENTU1ZpZXdwb3J0VW5pdHMuRGlmZmVyZW50VW5vYnNj
dXJlZFNpemVPdmVycmlkZXMKKworICAgICAgICAqIGNzcy9DU1NVbml0cy5oOgorICAgICAgICAq
IGNzcy9DU1NVbml0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAg
ICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjppc1ZpZXdwb3J0UGVyY2VudGFnZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNWaWV3cG9ydFBlcmNlbnRhZ2VXaWR0aCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNWaWV3cG9ydFBlcmNlbnRh
Z2VIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
OmlzVmlld3BvcnRQZXJjZW50YWdlTWF4KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1ByaW1pdGl2ZVZhbHVlOjppc1ZpZXdwb3J0UGVyY2VudGFnZU1pbik6IERlbGV0ZWQuCisgICAg
ICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFs
aWRDU1NVbml0VHlwZUZvckRvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6aXNT
dHJpbmdUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjbGVhbnVw
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlVW56b29tZWRO
b25DYWxjTGVuZ3RoRG91YmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
Ojpjb21wdXRlTm9uQ2FsY0xlbmd0aERvdWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6dW5pdFR5cGVTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmZvcm1hdE51bWJlckZvckN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmVxdWFscyBjb25zdCk6CisgICAgICAgICogY3Nz
L0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaDoKKyAgICAgICAgKiBjc3MvQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhOjpkZWZhdWx0Vmlld3BvcnRGYWN0b3IgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OnNtYWxsVmlld3BvcnRGYWN0b3IgY29u
c3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6
OmxhcmdlVmlld3BvcnRGYWN0b3IgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OmR5bmFtaWNWaWV3cG9ydEZhY3RvciBjb25zdCk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6dmlld3Bv
cnRXaWR0aEZhY3RvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhOjp2aWV3cG9ydEhlaWdodEZhY3RvciBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjp2aWV3cG9ydE1p
bkZhY3RvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhOjp2aWV3cG9ydE1heEZhY3RvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjc3NQ
cmltaXRpdmVWYWx1ZVVuaXRGcm9tVHJpZSk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzOjpjb25zdW1lTGVuZ3RoUmF3V2l0aEtub3duVG9rZW5UeXBlRGltZW5zaW9uKToK
KyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjQ2F0ZWdvcnlNYXBwaW5nLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNhbGNVbml0Q2F0ZWdvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Y2FsY3VsYXRp
b25DYXRlZ29yeUZvckNvbWJpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc0RvdWJsZVZh
bHVlKToKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgdGhlIGZvbGxvd2luZyBhbmQg
Y29udmVydGluZyB0aGVtIHRvIHRoZWlyIHVuZGVybHlpbmcgdmFsdWU6CisgICAgICAgIC0gYHN2
d2AgInNtYWxsIHZpZXdwb3J0IHdpZHRoIiBpcyB0aGUgd2lkdGggb2YgdGhlIHZpZXdwb3J0IGlm
IGFsbCBVQSBpbnRlcmZhY2VzIGFyZSBtYXhpbWl6ZWQKKyAgICAgICAgLSBgc3ZoYCAic21hbGwg
dmlld3BvcnQgaGVpZ2h0IiBpcyB0aGUgaGVpZ2h0IG9mIHRoZSB2aWV3cG9ydCBpZiBhbGwgVUEg
aW50ZXJmYWNlcyBhcmUgbWF4aW1pemVkCisgICAgICAgIC0gYHN2bWluYCAic21hbGwgdmlld3Bv
cnQgc21hbGwgZGltZW5zaW9uIiBpcyBgbWluKHN2dywgc3ZoKWAKKyAgICAgICAgLSBgc3ZtYXhg
ICJzbWFsbCB2aWV3cG9ydCBsYXJnZSBkaW1lbnNpb24iIGlzIGBtYXgoc3Z3LCBzdmgpYAorICAg
ICAgICAtIGBsdndgICJsYXJnZSB2aWV3cG9ydCB3aWR0aCIgaXMgdGhlIHdpZHRoIG9mIHRoZSB2
aWV3cG9ydCBpZiBhbGwgVUEgaW50ZXJmYWNlcyBhcmUgbWluaW1pemVkCisgICAgICAgIC0gYGx2
aGAgImxhcmdlIHZpZXdwb3J0IGhlaWdodCIgaXMgdGhlIGhlaWdodCBvZiB0aGUgdmlld3BvcnQg
aWYgYWxsIFVBIGludGVyZmFjZXMgYXJlIG1pbmltaXplZAorICAgICAgICAtIGBsdm1pbmAgImxh
cmdlIHZpZXdwb3J0IHNtYWxsIGRpbWVuc2lvbiIgaXMgYG1pbihsdncsIGx2aClgCisgICAgICAg
IC0gYGx2bWF4YCAibGFyZ2Ugdmlld3BvcnQgbGFyZ2UgZGltZW5zaW9uIiBpcyBgbWF4KGx2dywg
bHZoKWAKKyAgICAgICAgLSBgZHZ3YCAiZHluYW1pYyB2aWV3cG9ydCB3aWR0aCIgaXMgdGhlIHdp
ZHRoIG9mIHRoZSB2aWV3cG9ydCB3aXRoIGFsbCBVQSBpbnRlcmZhY2VzIGJlaW5nIGluIHdoYXRl
dmVyIHN0YXRlIHRoZXkgYXJlIGN1cnJlbnRseSBpbgorICAgICAgICAtIGBkdmhgICJkeW5hbWlj
IHZpZXdwb3J0IGhlaWdodCIgaXMgdGhlIGhlaWdodCBvZiB0aGUgdmlld3BvcnQgd2l0aCBhbGwg
VUEgaW50ZXJmYWNlcyBiZWluZyBpbiB3aGF0ZXZlciBzdGF0ZSB0aGV5IGFyZSBjdXJyZW50bHkg
aW4KKyAgICAgICAgLSBgZHZtaW5gICJkeW5hbWljIHZpZXdwb3J0IHNtYWxsIGRpbWVuc2lvbiIg
aXMgYG1pbihkdncsIGR2aClgCisgICAgICAgIC0gYGR2bWF4YCAiZHluYW1pYyB2aWV3cG9ydCBs
YXJnZSBkaW1lbnNpb24iIGlzIGBtYXgoZHZ3LCBkdmgpYAorICAgICAgICBUaGUgZXhpc3Rpbmcg
YHZ3YC9gdmhgL2B2bWluYC9gdm1heGAgY29ycmVzcG9uZCB0byB0aGUgIlVBLWRlZmF1bHQgdmll
d3BvcnQiLCB3aGljaCBXZWJLaXQKKyAgICAgICAgY29uc2lkZXJzIGVxdWl2YWxlbnQgdG8gdGhl
ICJsYXJnZSB2aWV3cG9ydCIgYGx2d2AvYGx2aGAvYGx2bWluYC9gbHZtYXhgLgorCisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnVub2JzY3VyZWRDb250ZW50U2l6ZUNoYW5nZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpwZXJmb3JtU2l6ZVRvQ29udGVudEF1dG9TaXpl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZW5hYmxlQXV0b1NpemVNb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y2xlYXJTaXplT3ZlcnJpZGVGb3JDU1NTbWFsbFZp
ZXdwb3J0VW5pdHMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0U2l6
ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVWaWV3OjpvdmVycmlkZVdpZHRoRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnJlc2V0T3ZlcnJpZGRlbldpZHRoRm9yQ1NTU21h
bGxWaWV3cG9ydFVuaXRzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6Om92
ZXJyaWRlU2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cyk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3OjpzaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzIGNvbnN0KTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmNsZWFyU2l6ZU92ZXJyaWRlRm9yQ1NT
TGFyZ2VWaWV3cG9ydFVuaXRzKTogUmVuYW1lZCBmcm9tIGBjbGVhclZpZXdwb3J0U2l6ZU92ZXJy
aWRlRm9yQ1NTVmlld3BvcnRVbml0c2AuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNl
dFNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMpOiBSZW5hbWVkIGZyb20gYHNldFZpZXdwb3J0
U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHNgLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpv
dmVycmlkZVdpZHRoRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKTogUmVuYW1lZCBmcm9tIGBvdmVy
cmlkZVZpZXdwb3J0V2lkdGhGb3JDU1NWaWV3cG9ydFVuaXRzYC4KKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6cmVzZXRPdmVycmlkZGVuV2lkdGhGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMp
OiBSZW5hbWVkIGZyb20gYHJlc2V0T3ZlcnJpZGRlblZpZXdwb3J0V2lkdGhGb3JDU1NWaWV3cG9y
dFVuaXRzYC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6b3ZlcnJpZGVTaXplRm9yQ1NT
TGFyZ2VWaWV3cG9ydFVuaXRzKTogUmVuYW1lZCBmcm9tIGBvdmVycmlkZVZpZXdwb3J0U2l6ZUZv
ckNTU1ZpZXdwb3J0VW5pdHNgLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzaXplRm9y
Q1NTTGFyZ2VWaWV3cG9ydFVuaXRzIGNvbnN0KTogUmVuYW1lZCBmcm9tIGB2aWV3cG9ydFNpemVG
b3JDU1NWaWV3cG9ydFVuaXRzYC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y2FsY3Vs
YXRlU2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHNPdmVycmlkZSBjb25zdCk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMgY29u
c3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2l6ZUZvckNTU0RlZmF1
bHRWaWV3cG9ydFVuaXRzIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJWaWV3OjpzaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzIGNvbnN0KTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpzaXplRm9yQ1NTTGFyZ2VWaWV3
cG9ydFVuaXRzIGNvbnN0KTogUmVuYW1lZCBmcm9tIGB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9y
dFVuaXRzYC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnNpemVGb3JDU1NEeW5hbWlj
Vmlld3BvcnRVbml0cyBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmll
dzo6c2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzIGNvbnN0KTogQWRkZWQuCisgICAgICAg
IEZvciAic21hbGwgdmlld3BvcnQiIGBzdndgL2BzdmhgL2Bzdm1pbmAvYHN2bWF4YCwgYWRkIHN1
cHBvcnQgZm9yIGEgbmV3IGBJbnRTaXplYCBtZW1iZXIKKyAgICAgICAgdGhhdCBpcyBwcm9wYWdh
dGVkIGZyb20gdGhlIFVJUHJvY2Vzcy4gSWYgbm90IHNldCwgZmFsbCBiYWNrIHRvICJVQS1kZWZh
dWx0IHZpZXdwb3J0IiBgdndgL2B2aGAvYHZtaW5gL2B2bWF4YC4KKyAgICAgICAgRm9yICJsYXJn
ZSB2aWV3cG9ydCIgYGx2d2AvYGx2aGAvYGx2bWluYC9gbHZtYXhgLCB1c2UgdGhlIHNhbWUgdmFs
dWUgYXMgIlVBLWRlZmF1bHQgdmlld3BvcnQiIGB2d2AvYHZoYC9gdm1pbmAvYHZtYXhgLgorICAg
ICAgICBGb3IgImR5bmFtaWMgdmlld3BvcnQiIGBkdndgL2BkdmhgL2Bkdm1pbmAvYGR2bWF4YCwg
dXNlIHRoZSBzYW1lIHZhbHVlIGFzIGB3aW5kb3cuaW5uZXIqYC4KKyAgICAgICAgRHJpdmUtYnk6
IFJlbmFtZSBgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0c2AgdG8gYHNpemVGb3JDU1NM
YXJnZVZpZXdwb3J0VW5pdHNgIGZvciBjbGFyaXR5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvRmxvYXRTaXplLmg6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFNpemU6Om1pbkRpbWVu
c2lvbiBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRTaXplOjptYXhEaW1l
bnNpb24gY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRTaXpl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnRTaXplOjptaW5EaW1lbnNpb24gY29uc3QpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkludFNpemU6Om1heERpbWVuc2lvbiBjb25zdCk6IEFkZGVk
LgorICAgICAgICBBZGQgdXRpbGl0eS9oZWxwZXIgbWV0aG9kcyBmb3IgcmV0dXJuaW5nIHRoZSBt
aW5pbXVtL21heGltdW0gb2YgdGhlIHdpZHRoIHZzIGhlaWdodC4KKworICAgICAgICAqIGNzcy9E
ZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXBy
ZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6cHJpbWl0aXZlVHlwZSBjb25zdCk6CisgICAgICAg
IERvbid0IGBBU1NFUlRfTk9UX1JFQUNIRURgIG5vdyB0aGF0IHRoZXJlIGFyZSBuZXcgdW5pdCB0
eXBlcy4KKwogMjAyMS0xMC0xOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgR3VhcmFudGVlIG9yZGVyIG9mIFdlYlNvY2tldCBldmVudHMgaW4gY2FzZSBvZiBi
ZWluZyByZXN1bWVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBiYTkxNDNlMWJlMGY3ZDI3
OTZjMTliZmJmMzc1MjljOTU3ZmRlNjQ2Li5mZjIzY2E2YTlmODYyYzUyOGYwMjQ4NDk3OTEwYmE2
ZTI3YmZhZjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAy
MS0xMC0xMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW2Nz
cy12YWx1ZXMtNF0gU3VwcG9ydCBzbWFsbCAoc3YqKSwgbGFyZ2UgKGx2KikgYW5kIGR5bmFtaWMg
KGR2Kikgdmlld3BvcnQgdW5pdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxOTI4NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzE4NTczNzA+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Nb2RlbHMvQ1NTQ29tcGxldGlvbnMuanM6CisKIDIwMjEtMTAtMTggIERhdmlkIEtpbHpl
ciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUg
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5zcGVj
dG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qcy5vcmlnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdmYjZjNmE5YTQ0ZDhl
MjMzY2RkN2U5MzVlYTQ5YWM3N2QzNDgyZTAuLjFlM2VjNjVjM2JjMzg1MjkxOTdmNjdhNjE5ZmZm
ZDVhNTQ2MGU4YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMjEtMTAtMTIgIERldmlu
IFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtjc3MtdmFsdWVzLTRdIFN1
cHBvcnQgc21hbGwgKHN2KiksIGxhcmdlIChsdiopIGFuZCBkeW5hbWljIChkdiopIHZpZXdwb3J0
IHVuaXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTkyODcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxODU3MzcwPgorCisgICAgICAgIFJldmll
d2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBTcGVjOiA8aHR0cHM6Ly9kcmFmdHMuY3Nz
d2cub3JnL2Nzcy12YWx1ZXMtNC8jdmlld3BvcnQtdmFyaWFudHM+CisKKyAgICAgICAgVGVzdHM6
IENTU1ZpZXdwb3J0VW5pdHMuQWxsU2FtZQorICAgICAgICAgICAgICAgQ1NTVmlld3BvcnRVbml0
cy5FbXB0eVVub2JzY3VyZWRTaXplT3ZlcnJpZGVzCisgICAgICAgICAgICAgICBDU1NWaWV3cG9y
dFVuaXRzLlNhbWVVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlcworICAgICAgICAgICAgICAgQ1NTVmll
d3BvcnRVbml0cy5EaWZmZXJlbnRVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlcworCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvaW9zL1dLV2ViVmlld0lPUy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9wcm9jZXNzV2ls
bFN3YXBPckRpZEV4aXRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaXNwYXRjaFNldE1pbmlt
dW1Vbm9ic2N1cmVkU2l6ZTpdKTogQWRkZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBfZnJhbWVP
ckJvdW5kc0NoYW5nZWRdKToKKyAgICAgICAgKGFjdGl2ZU1pbmltdW1Vbm9ic2N1cmVkU2l6ZSk6
IEFkZGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RpZENvbXBsZXRlQW5pbWF0ZWRSZXNpemVd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9taW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZV0p
OiBBZGRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRNaW5pbXVtVW5vYnNjdXJlZFNpemVP
dmVycmlkZTpdKTogQWRkZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBfYmVnaW5BbmltYXRlZFJl
c2l6ZVdpdGhVcGRhdGVzOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX292ZXJyaWRlTGF5b3V0
UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTptYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVy
cmlkZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9jbGVhck92ZXJyaWRlTGF5b3V0UGFyYW1l
dGVyc10pOgorICAgICAgICBXaGVuIHRoaXMgdmFsdWUgaXMgc2V0IGZyb20gYC1bV0tXZWJWaWV3
IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6bWF4aW11bVVu
b2JzY3VyZWRTaXplT3ZlcnJpZGU6XWAKKyAgICAgICAgaXQgc2hvdWxkIGJlIHVzZWQgYXMgdGhl
IHZhbHVlIGZvciAic21hbGwgdmlld3BvcnQiIGBzdndgL2BzdmhgL2Bzdm1pbmAvYHN2bWF4YCwg
YnV0IG9ubHkKKyAgICAgICAgZnJvbSB0aGF0IGNvZGVwYXRoLiBEeW5hbWljIHZpZXdwb3J0IGNo
YW5nZXMgc2hvdWxkIG5vdCB1cGRhdGUgaXQgYXMgdGhleSBkb24ndCBuZWNlc3NhcmlseQorICAg
ICAgICByZXByZXNlbnQgYSBjaGFuZ2UgaW4gdGhlIG1pbmltdW0vbWF4aW11bSB2aWV3cG9ydCBz
aXplLCBqdXN0IHRoZSBjdXJyZW50IHNpemUuCisgICAgICAgICJsYXJnZSB2aWV3cG9ydCIgYGx2
d2AvYGx2aGAvYGx2bWluYC9gbHZtYXhgIGFuZCAiZHluYW1pYyB2aWV3cG9ydCIgYGR2d2AvYGR2
aGAvYGR2bWluYC9gZHZtYXhgCisgICAgICAgIChhcyB3ZWxsIGFzIHRoZSBleGlzdGluZyAiVUEt
ZGVmYXVsdCB2aWV3cG9ydCIgYHZ3YC9gdmhgL2B2bWluYC9gdm1heGApIGNhbiBiZSBkZXJpdmVk
IGZyb20KKyAgICAgICAgZXhpc3RpbmcgbG9naWMuCisgICAgICAgIFNlZSB0aGUgV2ViQ29yZSBD
aGFuZ2VMb2cgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0TWluaW11bVVub2JzY3VyZWRT
aXplKTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZSk6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6c2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpzZXRNaW5pbXVtVW5vYnNjdXJlZFNpemUpOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnVwZGF0ZVZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpOgorICAg
ICAgICBBZGQgcGlwaW5nIGZyb20gdGhlIFVJUHJvY2VzcyB0byB0aGUgV2ViUHJvY2VzcyBmb3Ig
dGhlIG5ldyBtaW5pbXVtIHVub2JzY3VyZWQgc2l6ZSBvdmVycmlkZS4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9y
TmV3UGFnZSk6CisgICAgICAgIERyaXZlLWJ5OiBSZW5hbWUgYHNldFZpZXdwb3J0U2l6ZUZvckNT
U1ZpZXdwb3J0VW5pdHNgIHRvIGBzZXRTaXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzYCBmb3Ig
Y2xhcml0eS4KKwogMjAyMS0xMC0xOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjg0MDc5KTogZmFzdC9jYW52YXMvZ3JhZGll
bnQtd2l0aC1jbGlwLmh0bWwgYW5kIGZhc3QvY2FudmFzL2dyYWRpZW50LXRleHQtd2l0aC1zaGFk
b3cuaHRtbCBhcmUgZmxha3kgZmFpbHVyZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZl
VmFsdWUuY3BwCmluZGV4IDQ5ZWU4MGRiZmE4Nzg3MDYwY2VjODAzZDA3YmExOThlYjA2MDI2NTAu
LmY1YjAwYjc4MmFkNzlhZjYzZWM1ZTFjYjg3OTk4ZGU4ZGIyOTg1ZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcApAQCAtNjEsNiArNjEsMTAgQEAgc3RhdGljIGlu
bGluZSBib29sIGlzVmFsaWRDU1NVbml0VHlwZUZvckRvdWJsZUNvbnZlcnNpb24oQ1NTVW5pdFR5
cGUgdW5pdFR5cGUpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NNOgogICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19ERUc6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RJTUVOU0lPTjoK
KyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19EVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46CisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0RWVzoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRU1TOgogICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19FWFM6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0ZSOgpA
QCAtNzcsMTEgKzgxLDE5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkQ1NTVW5pdFR5cGVG
b3JEb3VibGVDb252ZXJzaW9uKENTU1VuaXRUeXBlIHVuaXRUeXBlKQogICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19QWDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUToKICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfTEhTOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19M
Vk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZXOgogICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19STEhTOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19RVUlSS1lfRU1TOgogICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SQUQ6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JF
TVM6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1M6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1NWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNQVg6CisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1NWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6CiAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1RVUk46CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZI
OgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgpAQCAtMTQwLDYgKzE1MiwxMCBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgaXNTdHJpbmdUeXBlKENTU1VuaXRUeXBlIHR5cGUpCiAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0RQQ006CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQSToK
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBQWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfRFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDoKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfWDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRU1TOgog
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19FWFM6CkBAIC0xNTAsNiArMTY2LDEwIEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBpc1N0cmluZ1R5cGUoQ1NTVW5pdFR5cGUgdHlwZSkKICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfSURFTlQ6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lOOgogICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19LSFo6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xW
SDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0xWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CiAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX01NOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19NUzoKICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSOgpAQCAtMTY5LDYgKzE4OSwxMCBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgaXNTdHJpbmdUeXBlKENTU1VuaXRUeXBlIHR5cGUpCiAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1JFTVM6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JHQkNPTE9SOgog
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19T
Vkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19TVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgogICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19TSEFQRToKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVFVSTjoK
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVU5JQ09ERV9SQU5HRToKQEAgLTUyMiw2ICs1NDYs
MTggQEAgdm9pZCBDU1NQcmltaXRpdmVWYWx1ZTo6Y2xlYW51cCgpCiAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1ZIOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOgogICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19WTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
U1ZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOgorICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19MVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDoKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfTFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFY
OgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0RWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46CisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0RWTUFYOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUFBYOgogICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19YOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUEk6
CkBAIC02NTEsMjEgKzY4NywzNyBAQCBkb3VibGUgQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVV
bnpvb21lZE5vbkNhbGNMZW5ndGhEb3VibGUoQ1NTVW5pdFR5cGUgcHJpbWl0aQogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIC0xLjA7CiAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1ZIOgotICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXct
PnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKS5oZWlnaHQoKSAvIDEwMC4wICogdmFs
dWUgOiAwOworICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnNpemVGb3JD
U1NEZWZhdWx0Vmlld3BvcnRVbml0cygpLmhlaWdodCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7CiAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZXOgotICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/
IHJlbmRlclZpZXctPnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKS53aWR0aCgpIC8g
MTAwLjAgKiB2YWx1ZSA6IDA7CisgICAgICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVuZGVyVmll
dy0+c2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCkud2lkdGgoKSAvIDEwMC4wICogdmFs
dWUgOiAwOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgotICAgICAgICBpZiAocmVu
ZGVyVmlldykgewotICAgICAgICAgICAgSW50U2l6ZSB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9y
dFVuaXRzID0gcmVuZGVyVmlldy0+dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpOwot
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWF4KHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5p
dHMud2lkdGgoKSwgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cy5oZWlnaHQoKSkgLyAx
MDAuMCAqIHZhbHVlOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAg
cmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NTRGVmYXVsdFZpZXdwb3J0
VW5pdHMoKS5tYXhEaW1lbnNpb24oKSAvIDEwMC4wICogdmFsdWUgOiB2YWx1ZTsKICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfVk1JTjoKLSAgICAgICAgaWYgKHJlbmRlclZpZXcpIHsKLSAgICAg
ICAgICAgIEludFNpemUgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyA9IHJlbmRlclZp
ZXctPnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKTsKLSAgICAgICAgICAgIHJldHVy
biBzdGQ6Om1pbih2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzLndpZHRoKCksIHZpZXdw
b3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMuaGVpZ2h0KCkpIC8gMTAwLjAgKiB2YWx1ZTsKLSAg
ICAgICAgfQotICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIHJldHVybiByZW5kZXJWaWV3
ID8gcmVuZGVyVmlldy0+c2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCkubWluRGltZW5z
aW9uKCkgLyAxMDAuMCAqIHZhbHVlIDogdmFsdWU7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1NWSDoKKyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NT
U21hbGxWaWV3cG9ydFVuaXRzKCkuaGVpZ2h0KCkgLyAxMDAuMCAqIHZhbHVlIDogMDsKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgorICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJl
bmRlclZpZXctPnNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoKS53aWR0aCgpIC8gMTAwLjAg
KiB2YWx1ZSA6IDA7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOgorICAgICAgICBy
ZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5p
dHMoKS5tYXhEaW1lbnNpb24oKSAvIDEwMC4wICogdmFsdWUgOiB2YWx1ZTsKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfU1ZNSU46CisgICAgICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVuZGVy
Vmlldy0+c2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpLm1pbkRpbWVuc2lvbigpIC8gMTAw
LjAgKiB2YWx1ZSA6IHZhbHVlOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAg
ICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVuZGVyVmlldy0+c2l6ZUZvckNTU0xhcmdlVmlld3Bv
cnRVbml0cygpLmhlaWdodCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0xWVzoKKyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5z
aXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKCkud2lkdGgoKSAvIDEwMC4wICogdmFsdWUgOiAw
OworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDoKKyAgICAgICAgcmV0dXJuIHJlbmRl
clZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKCkubWF4RGlt
ZW5zaW9uKCkgLyAxMDAuMCAqIHZhbHVlIDogdmFsdWU7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0xWTUlOOgorICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnNpemVG
b3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoKS5taW5EaW1lbnNpb24oKSAvIDEwMC4wICogdmFsdWUg
OiB2YWx1ZTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZIOgorICAgICAgICByZXR1cm4g
cmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnNpemVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cygp
LmhlaWdodCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0RWVzoKKyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NT
RHluYW1pY1ZpZXdwb3J0VW5pdHMoKS53aWR0aCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOgorICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/
IHJlbmRlclZpZXctPnNpemVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cygpLm1heERpbWVuc2lv
bigpIC8gMTAwLjAgKiB2YWx1ZSA6IHZhbHVlOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19E
Vk1JTjoKKyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NT
RHluYW1pY1ZpZXdwb3J0VW5pdHMoKS5taW5EaW1lbnNpb24oKSAvIDEwMC4wICogdmFsdWUgOiB2
YWx1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgcmV0dXJuIC0xLjA7CkBAIC03MTIsMTYgKzc2NCw1MiBAQCBkb3VibGUgQ1NTUHJpbWl0aXZl
VmFsdWU6OmNvbXB1dGVOb25DYWxjTGVuZ3RoRG91YmxlKGNvbnN0IENTU1RvTGVuZ3RoQ29udmVy
c2lvbgogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSDoKLSAg
ICAgICAgcmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEudmlld3BvcnRIZWlnaHRGYWN0b3Io
KTsKKyAgICAgICAgcmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEuZGVmYXVsdFZpZXdwb3J0
RmFjdG9yKCkuaGVpZ2h0KCk7CiAKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVlc6Ci0gICAg
ICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLnZpZXdwb3J0V2lkdGhGYWN0b3IoKTsK
KyAgICAgICAgcmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEuZGVmYXVsdFZpZXdwb3J0RmFj
dG9yKCkud2lkdGgoKTsKIAogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgotICAgICAg
ICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0YS52aWV3cG9ydE1heEZhY3RvcigpOworICAg
ICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0YS5kZWZhdWx0Vmlld3BvcnRGYWN0b3Io
KS5tYXhEaW1lbnNpb24oKTsKIAogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOgotICAg
ICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0YS52aWV3cG9ydE1pbkZhY3RvcigpOwor
ICAgICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0YS5kZWZhdWx0Vmlld3BvcnRGYWN0
b3IoKS5taW5EaW1lbnNpb24oKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6Cisg
ICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLnNtYWxsVmlld3BvcnRGYWN0b3Io
KS5oZWlnaHQoKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6CisgICAgICAgIHJl
dHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLnNtYWxsVmlld3BvcnRGYWN0b3IoKS53aWR0aCgp
OworCisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOgorICAgICAgICByZXR1cm4gdmFs
dWUgKiBjb252ZXJzaW9uRGF0YS5zbWFsbFZpZXdwb3J0RmFjdG9yKCkubWF4RGltZW5zaW9uKCk7
CisKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU46CisgICAgICAgIHJldHVybiB2YWx1
ZSAqIGNvbnZlcnNpb25EYXRhLnNtYWxsVmlld3BvcnRGYWN0b3IoKS5taW5EaW1lbnNpb24oKTsK
KworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAgICAgIHJldHVybiB2YWx1ZSAq
IGNvbnZlcnNpb25EYXRhLmxhcmdlVmlld3BvcnRGYWN0b3IoKS5oZWlnaHQoKTsKKworICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNp
b25EYXRhLmxhcmdlVmlld3BvcnRGYWN0b3IoKS53aWR0aCgpOworCisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0xWTUFYOgorICAgICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0YS5s
YXJnZVZpZXdwb3J0RmFjdG9yKCkubWF4RGltZW5zaW9uKCk7CisKKyAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfTFZNSU46CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmxh
cmdlVmlld3BvcnRGYWN0b3IoKS5taW5EaW1lbnNpb24oKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19EVkg6CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmR5bmFt
aWNWaWV3cG9ydEZhY3RvcigpLmhlaWdodCgpOworCisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0RWVzoKKyAgICAgICAgcmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEuZHluYW1pY1ZpZXdw
b3J0RmFjdG9yKCkud2lkdGgoKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDoK
KyAgICAgICAgcmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEuZHluYW1pY1ZpZXdwb3J0RmFj
dG9yKCkubWF4RGltZW5zaW9uKCk7CisKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46
CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmR5bmFtaWNWaWV3cG9ydEZh
Y3RvcigpLm1pbkRpbWVuc2lvbigpOwogCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xIUzoK
ICAgICAgICAgQVNTRVJUKGNvbnZlcnNpb25EYXRhLnN0eWxlKCkpOwpAQCAtOTkwLDYgKzEwNzgs
MTggQEAgU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjp1bml0VHlwZVN0cmluZyhDU1NVbml0VHlw
ZSB1bml0VHlwZSkKICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOiByZXR1cm4gInZo
IjsKICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46IHJldHVybiAidm1pbiI7CiAg
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOiByZXR1cm4gInZtYXgiOworICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOiByZXR1cm4gInN2dyI7CisgICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19TVkg6IHJldHVybiAic3ZoIjsKKyAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1NWTUlOOiByZXR1cm4gInN2bWluIjsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX1NWTUFYOiByZXR1cm4gInN2bWF4IjsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0xWVzogcmV0dXJuICJsdnciOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZI
OiByZXR1cm4gImx2aCI7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjogcmV0
dXJuICJsdm1pbiI7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDogcmV0dXJu
ICJsdm1heCI7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6IHJldHVybiAiZHZ3
IjsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDogcmV0dXJuICJkdmgiOworICAg
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46IHJldHVybiAiZHZtaW4iOworICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6IHJldHVybiAiZHZtYXgiOwogICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfRFBQWDogcmV0dXJuICJkcHB4IjsKICAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1g6IHJldHVybiAieCI7CiAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19EUEk6IHJldHVybiAiZHBpIjsKQEAgLTExNTIsNiArMTI1MiwzMCBAQCBBTFdBWVNfSU5M
SU5FIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4
dCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJWYWx1ZSgidm1pbiIpOwogICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgogICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVy
VmFsdWUoInZtYXgiKTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgorICAgICAgICBy
ZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoInN2dyIpOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19TVkg6CisgICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJWYWx1ZSgic3ZoIik7CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOgorICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFs
dWUoInN2bWluIik7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOgorICAgICAgICBy
ZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoInN2bWF4Iik7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0xWVzoKKyAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlclZhbHVlKCJsdnciKTsKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOgorICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFs
dWUoImx2aCIpOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjoKKyAgICAgICAgcmV0
dXJuIGZvcm1hdE51bWJlclZhbHVlKCJsdm1pbiIpOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19MVk1BWDoKKyAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlclZhbHVlKCJsdm1heCIpOworICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6CisgICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJW
YWx1ZSgiZHZ3Iik7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICAgICAgcmV0
dXJuIGZvcm1hdE51bWJlclZhbHVlKCJkdmgiKTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
RFZNSU46CisgICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJWYWx1ZSgiZHZtaW4iKTsKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6CisgICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJW
YWx1ZSgiZHZtYXgiKTsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfSURFTlQ6CiAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1VOSUNPREVfUkFOR0U6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0NBTENfUEVSQ0VOVEFHRV9XSVRIX05VTUJFUjoKQEAgLTEyMTksNiArMTM0MywxOCBAQCBi
b29sIENTU1ByaW1pdGl2ZVZhbHVlOjplcXVhbHMoY29uc3QgQ1NTUHJpbWl0aXZlVmFsdWUmIG90
aGVyKSBjb25zdAogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSDoKICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfVk1JTjoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1BWDoKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19TVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZXOgorICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19MVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUlOOgorICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
RFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6CisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0RWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDoKICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfRlI6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1E6CiAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xIUzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlLmgKaW5kZXggOGI4MmI5YmE5NDk2YWEwOTRiZGZlZGJhOGRmOTE5Y2UyZWJhN2YzMy4uYjc0
NzljN2JmN2Q5NTQ3NTA4NzkyOTQ5NmY0ZDRiMWE5ZWQ1ODg2MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ByaW1pdGl2ZVZhbHVlLmgKQEAgLTExMSwxMCArMTExLDYgQEAgcHVibGljOgogICAgIGJv
b2wgaXNYKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVHlwZSgpID09IENTU1VuaXRUeXBlOjpD
U1NfWDsgfQogICAgIGJvb2wgaXNSZXNvbHV0aW9uKCkgY29uc3QgeyByZXR1cm4gdW5pdENhdGVn
b3J5KHByaW1pdGl2ZVR5cGUoKSkgPT0gQ1NTVW5pdENhdGVnb3J5OjpSZXNvbHV0aW9uOyB9CiAg
ICAgYm9vbCBpc1ZpZXdwb3J0UGVyY2VudGFnZUxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIGlzVmll
d3BvcnRQZXJjZW50YWdlTGVuZ3RoKHByaW1pdGl2ZVVuaXRUeXBlKCkpOyB9Ci0gICAgYm9vbCBp
c1ZpZXdwb3J0UGVyY2VudGFnZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVW5pdFR5
cGUoKSA9PSBDU1NVbml0VHlwZTo6Q1NTX1ZXOyB9Ci0gICAgYm9vbCBpc1ZpZXdwb3J0UGVyY2Vu
dGFnZUhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5p
dFR5cGU6OkNTU19WSDsgfQotICAgIGJvb2wgaXNWaWV3cG9ydFBlcmNlbnRhZ2VNYXgoKSBjb25z
dCB7IHJldHVybiBwcmltaXRpdmVVbml0VHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1NfVk1BWDsg
fQotICAgIGJvb2wgaXNWaWV3cG9ydFBlcmNlbnRhZ2VNaW4oKSBjb25zdCB7IHJldHVybiBwcmlt
aXRpdmVVbml0VHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1NfVk1JTjsgfQogICAgIGJvb2wgaXNW
YWx1ZUlEKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVW5pdFR5cGUoKSA9PSBDU1NVbml0VHlw
ZTo6Q1NTX1ZBTFVFX0lEOyB9CiAgICAgYm9vbCBpc0ZsZXgoKSBjb25zdCB7IHJldHVybiBwcmlt
aXRpdmVUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19GUjsgfQogICAgIGJvb2wgaXNDdXN0b21J
ZGVudCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6
OkN1c3RvbUlkZW50OyB9CkBAIC0zMTUsMTAgKzMxMSw3IEBAIGNvbnN0ZXhwciBib29sIENTU1By
aW1pdGl2ZVZhbHVlOjppc1Jlc29sdXRpb24oQ1NTVW5pdFR5cGUgdHlwZSkKIAogY29uc3RleHBy
IGJvb2wgQ1NTUHJpbWl0aXZlVmFsdWU6OmlzVmlld3BvcnRQZXJjZW50YWdlTGVuZ3RoKENTU1Vu
aXRUeXBlIHR5cGUpCiB7Ci0gICAgcmV0dXJuIHR5cGUgPT0gQ1NTVW5pdFR5cGU6OkNTU19WVwot
ICAgICAgICB8fCB0eXBlID09IENTU1VuaXRUeXBlOjpDU1NfVkgKLSAgICAgICAgfHwgdHlwZSA9
PSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU4KLSAgICAgICAgfHwgdHlwZSA9PSBDU1NVbml0VHlwZTo6
Q1NTX1ZNQVg7CisgICAgcmV0dXJuIHR5cGUgPj0gQ1NTVW5pdFR5cGU6OkNTU19WVyAmJiB0eXBl
IDw9IENTU1VuaXRUeXBlOjpDU1NfRFZNQVg7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlu
bGluZSBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoVCYm
IHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVy
c2lvbkRhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGEuY3BwCmluZGV4IDMxOTgwZTYyYzk1ZWI3OTBiNTA3MjY4N2RmZTU3MzE2Mzk5MzZiNjguLmIw
MTVmMWFlN2EwNzg2NjdjNWE3NWQ2NGQ1Zjg4YTRmOWIxOGRhMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5jcHAKQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDU1NUb0xlbmd0aENvbnZlcnNpb25E
YXRhLmgiCiAKKyNpbmNsdWRlICJGbG9hdFNpemUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5o
IgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKIApAQCAtNDMsNTAgKzQ0LDQ4IEBAIGZsb2F0IENT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6Onpvb20oKSBjb25zdAogICAgIHJldHVybiAqbV96b29t
OwogfQogCi1kb3VibGUgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6dmlld3BvcnRXaWR0aEZh
Y3RvcigpIGNvbnN0CitGbG9hdFNpemUgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6ZGVmYXVs
dFZpZXdwb3J0RmFjdG9yKCkgY29uc3QKIHsKICAgICBpZiAobV92aWV3cG9ydERlcGVuZGVuY3lE
ZXRlY3Rpb25TdHlsZSkKICAgICAgICAgbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHls
ZS0+c2V0SGFzVmlld3BvcnRVbml0cygpOwogCiAgICAgaWYgKCFtX3JlbmRlclZpZXcpCi0gICAg
ICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIG1fcmVuZGVy
Vmlldy0+dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpLndpZHRoKCkgLyAxMDAuMDsK
KyAgICByZXR1cm4gbV9yZW5kZXJWaWV3LT5zaXplRm9yQ1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMo
KSAvIDEwMC4wOwogfQogCi1kb3VibGUgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6dmlld3Bv
cnRIZWlnaHRGYWN0b3IoKSBjb25zdAorRmxvYXRTaXplIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGE6OnNtYWxsVmlld3BvcnRGYWN0b3IoKSBjb25zdAogewogICAgIGlmIChtX3ZpZXdwb3J0RGVw
ZW5kZW5jeURldGVjdGlvblN0eWxlKQogICAgICAgICBtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVj
dGlvblN0eWxlLT5zZXRIYXNWaWV3cG9ydFVuaXRzKCk7CiAKICAgICBpZiAoIW1fcmVuZGVyVmll
dykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiB7IH07CiAKLSAgICByZXR1cm4g
bV9yZW5kZXJWaWV3LT52aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkuaGVpZ2h0KCkg
LyAxMDAuMDsKKyAgICByZXR1cm4gbV9yZW5kZXJWaWV3LT5zaXplRm9yQ1NTU21hbGxWaWV3cG9y
dFVuaXRzKCkgLyAxMDAuMDsKIH0KIAotZG91YmxlIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6
OnZpZXdwb3J0TWluRmFjdG9yKCkgY29uc3QKK0Zsb2F0U2l6ZSBDU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhOjpsYXJnZVZpZXdwb3J0RmFjdG9yKCkgY29uc3QKIHsKICAgICBpZiAobV92aWV3cG9y
dERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZSkKICAgICAgICAgbV92aWV3cG9ydERlcGVuZGVuY3lE
ZXRlY3Rpb25TdHlsZS0+c2V0SGFzVmlld3BvcnRVbml0cygpOwogCiAgICAgaWYgKCFtX3JlbmRl
clZpZXcpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgSW50
U2l6ZSB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzID0gbV9yZW5kZXJWaWV3LT52aWV3
cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCk7Ci0gICAgcmV0dXJuIHN0ZDo6bWluKHZpZXdw
b3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMud2lkdGgoKSwgdmlld3BvcnRTaXplRm9yQ1NTVmll
d3BvcnRVbml0cy5oZWlnaHQoKSkgLyAxMDAuMDsKKyAgICByZXR1cm4gbV9yZW5kZXJWaWV3LT5z
aXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKCkgLyAxMDAuMDsKIH0KIAotZG91YmxlIENTU1Rv
TGVuZ3RoQ29udmVyc2lvbkRhdGE6OnZpZXdwb3J0TWF4RmFjdG9yKCkgY29uc3QKK0Zsb2F0U2l6
ZSBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpkeW5hbWljVmlld3BvcnRGYWN0b3IoKSBjb25z
dAogewogICAgIGlmIChtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlKQogICAgICAg
ICBtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlLT5zZXRIYXNWaWV3cG9ydFVuaXRz
KCk7CiAKICAgICBpZiAoIW1fcmVuZGVyVmlldykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
IHJldHVybiB7IH07CiAKLSAgICBJbnRTaXplIHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5p
dHMgPSBtX3JlbmRlclZpZXctPnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKTsKLSAg
ICByZXR1cm4gc3RkOjptYXgodmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cy53aWR0aCgp
LCB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzLmhlaWdodCgpKSAvIDEwMC4wOworICAg
IHJldHVybiBtX3JlbmRlclZpZXctPnNpemVGb3JDU1NEeW5hbWljVmlld3BvcnRVbml0cygpIC8g
MTAwLjA7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oCmluZGV4IDk1Mzc3OWY4ZDU1NWYwYmM5ODE5
Mjc3NWU3MzdjNTViMTUwNjAwZWUuLmU1YzJiNjJjNTJlYzIxYTM2NTI5ODAxYzdjZDQ4NmFmYmM5
NTYxNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGEuaApAQCAtMzYsNiArMzYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEZs
b2F0U2l6ZTsKIGNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgUmVuZGVyVmlldzsKIApAQCAtNzQs
MTAgKzc1LDEwIEBAIHB1YmxpYzoKICAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5VG9Db21wdXRl
KCkgY29uc3QgeyByZXR1cm4gbV9wcm9wZXJ0eVRvQ29tcHV0ZS52YWx1ZV9vcihDU1NQcm9wZXJ0
eUludmFsaWQpOyB9CiAgICAgY29uc3QgUmVuZGVyVmlldyogcmVuZGVyVmlldygpIGNvbnN0IHsg
cmV0dXJuIG1fcmVuZGVyVmlldzsgfQogCi0gICAgZG91YmxlIHZpZXdwb3J0V2lkdGhGYWN0b3Io
KSBjb25zdDsKLSAgICBkb3VibGUgdmlld3BvcnRIZWlnaHRGYWN0b3IoKSBjb25zdDsKLSAgICBk
b3VibGUgdmlld3BvcnRNaW5GYWN0b3IoKSBjb25zdDsKLSAgICBkb3VibGUgdmlld3BvcnRNYXhG
YWN0b3IoKSBjb25zdDsKKyAgICBGbG9hdFNpemUgZGVmYXVsdFZpZXdwb3J0RmFjdG9yKCkgY29u
c3Q7CisgICAgRmxvYXRTaXplIHNtYWxsVmlld3BvcnRGYWN0b3IoKSBjb25zdDsKKyAgICBGbG9h
dFNpemUgbGFyZ2VWaWV3cG9ydEZhY3RvcigpIGNvbnN0OworICAgIEZsb2F0U2l6ZSBkeW5hbWlj
Vmlld3BvcnRGYWN0b3IoKSBjb25zdDsKIAogICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEg
Y29weVdpdGhBZGp1c3RlZFpvb20oZmxvYXQgbmV3Wm9vbSkgY29uc3QKICAgICB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5pdHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1VuaXRzLmNwcAppbmRleCA0ZjQ2OGIzZjNiNTcxMjZjMTU0YzEzNjg2ODVkMTgxOWI3OTFk
MjNlLi4yNGNiNjYzZTJjNWUzMzFlNWIyZGViZmQ1MmRhNDVmMzI0YjkxMzUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5pdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NVbml0cy5jcHAKQEAgLTEzOCw2ICsxMzgsMTggQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgQ1NTVW5pdFR5cGUgdW5pdFR5cGUpCiAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1ZIOiB0cyA8PCAidmgiOyBicmVhazsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfVk1JTjogdHMgPDwgInZtaW4iOyBicmVhazsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
Vk1BWDogdHMgPDwgInZtYXgiOyBicmVhazsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZX
OiB0cyA8PCAic3Z3IjsgYnJlYWs7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDogdHMg
PDwgInN2aCI7IGJyZWFrOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjogdHMgPDwg
InN2bWluIjsgYnJlYWs7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOiB0cyA8PCAi
c3ZtYXgiOyBicmVhazsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZXOiB0cyA8PCAibHZ3
IjsgYnJlYWs7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDogdHMgPDwgImx2aCI7IGJy
ZWFrOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjogdHMgPDwgImx2bWluIjsgYnJl
YWs7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOiB0cyA8PCAibHZtYXgiOyBicmVh
azsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZXOiB0cyA8PCAiZHZ3IjsgYnJlYWs7Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDogdHMgPDwgImR2aCI7IGJyZWFrOworICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjogdHMgPDwgImR2bWluIjsgYnJlYWs7CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOiB0cyA8PCAiZHZtYXgiOyBicmVhazsKICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfRFBQWDogdHMgPDwgImRwcHgiOyBicmVhazsKICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfWDogdHMgPDwgIngiOyBicmVhazsKICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFBJOiB0cyA8PCAiZHBpIjsgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVW5pdHMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbml0cy5oCmluZGV4IDk3
MjU1YTllYzM3ODI1YzhiN2U0NDg5NWNmNjU4MzVkOWI4ZDJjZmEuLmIwZjdjMmQyZjZlYWJjYzcz
ZjRjYzMyMmE1YmVhZjU4MmY4YzAwNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NVbml0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbml0cy5oCkBAIC01OSw2ICs1
OSwxOCBAQCBlbnVtIGNsYXNzIENTU1VuaXRUeXBlIDogdWludDhfdCB7CiAgICAgQ1NTX1ZILAog
ICAgIENTU19WTUlOLAogICAgIENTU19WTUFYLAorICAgIENTU19TVlcsCisgICAgQ1NTX1NWSCwK
KyAgICBDU1NfU1ZNSU4sCisgICAgQ1NTX1NWTUFYLAorICAgIENTU19MVlcsCisgICAgQ1NTX0xW
SCwKKyAgICBDU1NfTFZNSU4sCisgICAgQ1NTX0xWTUFYLAorICAgIENTU19EVlcsCisgICAgQ1NT
X0RWSCwKKyAgICBDU1NfRFZNSU4sCisgICAgQ1NTX0RWTUFYLAogICAgIENTU19EUFBYLAogICAg
IENTU19YLAogICAgIENTU19EUEksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVw
cmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJl
Y2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNwcAppbmRleCBiYmQwMTQ5OTE3OTg0NzM4ODdjZjQ4
Mjg5YzU0NmI2MjUzZDM4M2E1Li43ZGI1Y2JhMDY1YTkzNWE1NDk5MTJkNTRiYjU5YjFlZThmYTAz
MTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0
aXZlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01Qcmlt
aXRpdmVWYWx1ZS5jcHAKQEAgLTkzLDEwICs5Myw5IEBAIHVuc2lnbmVkIHNob3J0IERlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpwcmltaXRpdmVUeXBlKCkgY29uc3QKICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfVk1JTjogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU19W
TUlOOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WVzogICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gQ1NTX1ZXOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19YOiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gMzc7Ci0gICAgfQogCi0gICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgcmV0dXJuIENTU19VTktOT1dOOworICAgIGRlZmF1bHQ6ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTX1VOS05PV047Cisg
ICAgfQogfQogCiBFeGNlcHRpb25PcjxmbG9hdD4gRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFs
dWU6OmdldEZsb2F0VmFsdWUodW5zaWduZWQgc2hvcnQgdW5pdFR5cGUpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjQ2F0ZWdvcnlNYXBwaW5nLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNDYXRlZ29yeU1hcHBpbmcuY3BwCmluZGV4
IDJkMGExYzIwMDFmMTJmZTIxNjhiNGM3YmQ4Mjg3OGViMTBmNzE4Y2QuLjllZjFkNDU2OTIwMmVl
NTkzNTIzYzBkYTJjODI3MjcxMDJmNzYwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9jYWxjL0NTU0NhbGNDYXRlZ29yeU1hcHBpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9jYWxjL0NTU0NhbGNDYXRlZ29yeU1hcHBpbmcuY3BwCkBAIC01NCw2ICs1NCwxOCBAQCBDYWxj
dWxhdGlvbkNhdGVnb3J5IGNhbGNVbml0Q2F0ZWdvcnkoQ1NTVW5pdFR5cGUgdHlwZSkKICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfVkg6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46
CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1NWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOgorICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19TVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNQVg6CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZI
OgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfTFZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfRFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjoKKyAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6CiAgICAgICAgIHJldHVybiBDYWxjdWxhdGlv
bkNhdGVnb3J5OjpMZW5ndGg7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0U6
CiAgICAgICAgIHJldHVybiBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50OwpAQCAtMTEwLDYg
KzEyMiwxOCBAQCBDYWxjdWxhdGlvbkNhdGVnb3J5IGNhbGN1bGF0aW9uQ2F0ZWdvcnlGb3JDb21i
aW5hdGlvbihDU1NVbml0VHlwZSB0eXBlKQogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSDoK
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgorICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19TVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOgorICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZX
OgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0xWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDoKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfRFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19E
Vk1BWDoKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gQ2FsY3VsYXRpb25DYXRlZ29yeTo6
T3RoZXI7CiAgICAgfQpAQCAtMTYyLDYgKzE4NiwxOCBAQCBib29sIGhhc0RvdWJsZVZhbHVlKENT
U1VuaXRUeXBlIHR5cGUpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOgogICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19WTUlOOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1NWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU46CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1NWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19EVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOgogICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUFBYOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19Y
OgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUEk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwCmluZGV4IDliZGMxM2FkYmQ1MDA3OWFkODQwNzgwYjIw
NzA2MWQ0Mzc5Njc0NzMuLmRlNTVkMzRjOTcyODQxMmM2ZmMzNTJiMTIyOTU1MzQ2NjgxMDc3NmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwCkBAIC0x
MzQsOCArMTM0LDI2IEBAIENTU1VuaXRUeXBlIGNzc1ByaW1pdGl2ZVZhbHVlVW5pdEZyb21Ucmll
KGNvbnN0IENoYXJhY3RlclR5cGUqIGRhdGEsIHVuc2lnbmVkIGxlCiAgICAgICAgICAgICAgICAg
aWYgKHRvQVNDSUlMb3dlcihkYXRhWzJdKSA9PSAnaScpCiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBDU1NVbml0VHlwZTo6Q1NTX0RQSTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgJ3YnOgorICAgICAgICAgICAgICAgIHN3aXRjaCAodG9BU0NJSUxvd2VyKGRh
dGFbMl0pKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnaCc6CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0RWSDsKKyAgICAgICAgICAgICAgICBjYXNlICd3JzoK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfRFZXOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAnbCc6CisgICAgICAg
ICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbMV0pID09ICd2JykgeworICAgICAgICAgICAgICAg
IHN3aXRjaCAodG9BU0NJSUxvd2VyKGRhdGFbMl0pKSB7CisgICAgICAgICAgICAgICAgY2FzZSAn
aCc6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0xWSDsKKyAg
ICAgICAgICAgICAgICBjYXNlICd3JzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1Vu
aXRUeXBlOjpDU1NfTFZXOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlICdrJzoKICAgICAgICAgICAgIGlmICh0b0FTQ0lJ
TG93ZXIoZGF0YVsxXSkgPT0gJ2gnICYmIHRvQVNDSUlMb3dlcihkYXRhWzJdKSA9PSAneicpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfS0haOwpAQCAtMTU1LDkgKzE3
MywxOSBAQCBDU1NVbml0VHlwZSBjc3NQcmltaXRpdmVWYWx1ZVVuaXRGcm9tVHJpZShjb25zdCBD
aGFyYWN0ZXJUeXBlKiBkYXRhLCB1bnNpZ25lZCBsZQogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gQ1NTVW5pdFR5cGU6OkNTU19STEhTOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ3MnOgorICAgICAgICAg
ICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzFdKSA9PSAndicpIHsKKyAgICAgICAgICAgICAgICBz
d2l0Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzJdKSkgeworICAgICAgICAgICAgICAgIGNhc2UgJ2gn
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19TVkg7CisgICAg
ICAgICAgICAgICAgY2FzZSAndyc6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0
VHlwZTo6Q1NTX1NWVzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgYnJlYWs7
CiAgICAgY2FzZSA0OgogICAgICAgICBzd2l0Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzBdKSkgewog
ICAgICAgICBjYXNlICdkJzoKQEAgLTE3Myw5ICsyMDEsOSBAQCBDU1NVbml0VHlwZSBjc3NQcmlt
aXRpdmVWYWx1ZVVuaXRGcm9tVHJpZShjb25zdCBDaGFyYWN0ZXJUeXBlKiBkYXRhLCB1bnNpZ25l
ZCBsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfRFBQ
WDsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIH0KLSAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgJ2cnOgogICAgICAgICAgICAgaWYg
KHRvQVNDSUlMb3dlcihkYXRhWzFdKSA9PSAncicgJiYgdG9BU0NJSUxvd2VyKGRhdGFbMl0pID09
ICdhJyAmJiB0b0FTQ0lJTG93ZXIoZGF0YVszXSkgPT0gJ2QnKQogICAgICAgICAgICAgICAgIHJl
dHVybiBDU1NVbml0VHlwZTo6Q1NTX0dSQUQ7CkBAIC0yMDgsNiArMjM2LDQ4IEBAIENTU1VuaXRU
eXBlIGNzc1ByaW1pdGl2ZVZhbHVlVW5pdEZyb21UcmllKGNvbnN0IENoYXJhY3RlclR5cGUqIGRh
dGEsIHVuc2lnbmVkIGxlCiAgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbMV0pID09
ICdfJyAmJiB0b0FTQ0lJTG93ZXIoZGF0YVsyXSkgPT0gJ3EnICYmIHRvQVNDSUlMb3dlcihkYXRh
WzNdKSA9PSAnZScgJiYgdG9BU0NJSUxvd2VyKGRhdGFbNF0pID09ICdtJykKICAgICAgICAgICAg
ICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19RVUlSS1lfRU1TOwogICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgJ2QnOgorICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRh
WzFdKSA9PSAndicgJiYgdG9BU0NJSUxvd2VyKGRhdGFbMl0pID09ICdtJykgeworICAgICAgICAg
ICAgICAgIHN3aXRjaCAodG9BU0NJSUxvd2VyKGRhdGFbM10pKSB7CisgICAgICAgICAgICAgICAg
Y2FzZSAnYSc6CisgICAgICAgICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVs0XSkg
PT0gJ3gnKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1Nf
RFZNQVg7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2Ug
J2knOgorICAgICAgICAgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbNF0pID09ICdu
JykKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0RWTUlO
OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAnbCc6CisgICAgICAgICAg
ICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbMV0pID09ICd2JyAmJiB0b0FTQ0lJTG93ZXIoZGF0YVsy
XSkgPT0gJ20nKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoICh0b0FTQ0lJTG93ZXIoZGF0YVsz
XSkpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdhJzoKKyAgICAgICAgICAgICAgICAgICAgaWYg
KHRvQVNDSUlMb3dlcihkYXRhWzRdKSA9PSAneCcpCisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgY2FzZSAnaSc6CisgICAgICAgICAgICAgICAgICAgIGlmICh0b0FT
Q0lJTG93ZXIoZGF0YVs0XSkgPT0gJ24nKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IENTU1VuaXRUeXBlOjpDU1NfTFZNSU47CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlICdzJzoKKyAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVsxXSkgPT0gJ3Yn
ICYmIHRvQVNDSUlMb3dlcihkYXRhWzJdKSA9PSAnbScpIHsKKyAgICAgICAgICAgICAgICBzd2l0
Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzNdKSkgeworICAgICAgICAgICAgICAgIGNhc2UgJ2EnOgor
ICAgICAgICAgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbNF0pID09ICd4JykKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOworICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdpJzoKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzRdKSA9PSAnbicpCisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMu
Y3BwCmluZGV4IDE4NmRkMmEzZjEyNzgzZTFlMTBjYWU2ZThkMmJlZjUwMmVhMmVhY2YuLjA0ZTFj
ODRjYjVmYWI2ODM4ZDRlNzY0MTk5MGVlNTQ3NTgwMzFhOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKQEAgLTQ5
Miw2ICs0OTIsMTggQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGVuZ3RoUmF3PiBjb25zdW1lTGVu
Z3RoUmF3V2l0aEtub3duVG9rZW5UeXBlRGltZW5zaW9uKENTU1AKICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfVkg6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46CiAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1ZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWVzoKKyAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19T
Vk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNQVg6CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0xWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOgorICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19MVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfRFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjoKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRFZNQVg6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1E6CiAgICAgICAg
IGJyZWFrOwogICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggYjg2
N2MwOGQ2OGM2MGMwYjNjNzMzN2E2Y2MyNTk5YjUzYjgxODNhNy4uNjhiODJjNjVmMjdhYzhlZjZj
Y2U3NWQzMzZlZjQ0ZmYwNTFlMGVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAt
Mjg5Miw2ICsyODkyLDkgQEAgdm9pZCBGcmFtZVZpZXc6OnVub2JzY3VyZWRDb250ZW50U2l6ZUNo
YW5nZWQoKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdXBkYXRlVGlsZWRCYWNraW5n
QWRhcHRpdmVTaXppbmcoKTsKICNlbmRpZgorCisgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gZnJh
bWUoKS5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+c3R5bGVTY29wZSgpLmRpZENoYW5n
ZVN0eWxlU2hlZXRFbnZpcm9ubWVudCgpOwogfQogCiB2b2lkIEZyYW1lVmlldzo6bG9hZFByb2dy
ZXNzaW5nU3RhdHVzQ2hhbmdlZCgpCkBAIC0zNTY2LDcgKzM1NjksOSBAQCB2b2lkIEZyYW1lVmll
dzo6cGVyZm9ybVNpemVUb0NvbnRlbnRBdXRvU2l6ZSgpCiAgICAgICAgIGRvY3VtZW50LnVwZGF0
ZUxheW91dCgpOwogICAgIH07CiAKLSAgICByZXNldE92ZXJyaWRkZW5WaWV3cG9ydFdpZHRoRm9y
Q1NTVmlld3BvcnRVbml0cygpOworICAgIHJlc2V0T3ZlcnJpZGRlbldpZHRoRm9yQ1NTU21hbGxW
aWV3cG9ydFVuaXRzKCk7CisgICAgcmVzZXRPdmVycmlkZGVuV2lkdGhGb3JDU1NMYXJnZVZpZXdw
b3J0VW5pdHMoKTsKKwogICAgIC8vIFN0YXJ0IGZyb20gdGhlIG1pbmltdW0gc2l6ZSBhbmQgYWxs
b3cgaXQgdG8gZ3Jvdy4KICAgICBhdXRvIG1pbkF1dG9TaXplID0gSW50U2l6ZSB7IDEsIDEgfTsK
ICAgICByZXNpemUobWluQXV0b1NpemUpOwpAQCAtMzYyNiw3ICszNjMxLDggQEAgdm9pZCBGcmFt
ZVZpZXc6OnBlcmZvcm1TaXplVG9Db250ZW50QXV0b1NpemUoKQogICAgICAgICByZXNpemUobmV3
U2l6ZS53aWR0aCgpLCBpID8gbmV3U2l6ZS5oZWlnaHQoKSA6IG1pbkF1dG9TaXplLmhlaWdodCgp
KTsKICAgICAgICAgLy8gUHJvdGVjdCB0aGUgY29udGVudCBmcm9tIGV2ZXJncm93aW5nIGxheW91
dC4KICAgICAgICAgYXV0byBwcmVmZXJyZWRWaWV3cG9ydFdpZHRoID0gc3RkOjptaW4obmV3U2l6
ZS53aWR0aCgpLCBtX2F1dG9TaXplQ29uc3RyYWludC53aWR0aCgpKTsKLSAgICAgICAgb3ZlcnJp
ZGVWaWV3cG9ydFdpZHRoRm9yQ1NTVmlld3BvcnRVbml0cyhwcmVmZXJyZWRWaWV3cG9ydFdpZHRo
KTsKKyAgICAgICAgb3ZlcnJpZGVXaWR0aEZvckNTU1NtYWxsVmlld3BvcnRVbml0cyhwcmVmZXJy
ZWRWaWV3cG9ydFdpZHRoKTsKKyAgICAgICAgb3ZlcnJpZGVXaWR0aEZvckNTU0xhcmdlVmlld3Bv
cnRVbml0cyhwcmVmZXJyZWRWaWV3cG9ydFdpZHRoKTsKICAgICAgICAgLy8gRm9yY2UgdGhlIHNj
cm9sbGJhciBzdGF0ZSB0byBhdm9pZCB0aGUgc2Nyb2xsYmFyIGNvZGUgYWRkaW5nIHRoZW0gYW5k
IGNhdXNpbmcgdGhlbSB0byBiZSBuZWVkZWQuIEZvciBleGFtcGxlLAogICAgICAgICAvLyBhIHZl
cnRpY2FsIHNjcm9sbGJhciBtYXkgY2F1c2UgdGV4dCB0byB3cmFwIGFuZCB0aHVzIGluY3JlYXNl
IHRoZSBoZWlnaHQgKHdoaWNoIGlzIHRoZSBvbmx5IHJlYXNvbiB0aGUgc2NvbGxiYXIgaXMgbmVl
ZGVkKS4KICAgICAgICAgc2V0VmVydGljYWxTY3JvbGxiYXJMb2NrKGZhbHNlKTsKQEAgLTQ3MDYs
MTEgKzQ3MTIsMTMgQEAgdm9pZCBGcmFtZVZpZXc6OmVuYWJsZUF1dG9TaXplTW9kZShib29sIGVu
YWJsZSwgY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIEF1dG9TaXoKICAgICBzZXROZWVkc0xheW91
dEFmdGVyVmlld0NvbmZpZ3VyYXRpb25DaGFuZ2UoKTsKICAgICBsYXlvdXRDb250ZXh0KCkuc2No
ZWR1bGVMYXlvdXQoKTsKICAgICBpZiAobV9zaG91bGRBdXRvU2l6ZSkgewotICAgICAgICBvdmVy
cmlkZVZpZXdwb3J0V2lkdGhGb3JDU1NWaWV3cG9ydFVuaXRzKG1fYXV0b1NpemVDb25zdHJhaW50
LndpZHRoKCkpOworICAgICAgICBvdmVycmlkZVdpZHRoRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRz
KG1fYXV0b1NpemVDb25zdHJhaW50LndpZHRoKCkpOworICAgICAgICBvdmVycmlkZVdpZHRoRm9y
Q1NTTGFyZ2VWaWV3cG9ydFVuaXRzKG1fYXV0b1NpemVDb25zdHJhaW50LndpZHRoKCkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY2xlYXJWaWV3cG9ydFNpemVPdmVycmlkZUZvckNT
U1ZpZXdwb3J0VW5pdHMoKTsKKyAgICBjbGVhclNpemVPdmVycmlkZUZvckNTU1NtYWxsVmlld3Bv
cnRVbml0cygpOworICAgIGNsZWFyU2l6ZU92ZXJyaWRlRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRz
KCk7CiAgICAgLy8gU2luY2UgYXV0b3NpemUgbW9kZSBmb3JjZXMgdGhlIHNjcm9sbGJhciBtb2Rl
LCBjaGFuZ2UgdGhlbSB0byBiZWluZyBhdXRvLgogICAgIHNldFZlcnRpY2FsU2Nyb2xsYmFyTG9j
ayhmYWxzZSk7CiAgICAgc2V0SG9yaXpvbnRhbFNjcm9sbGJhckxvY2soZmFsc2UpOwpAQCAtNTUz
OSw1MiArNTU0NywxMDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNldFZpZXdFeHBvc2VkUmVjdChzdGQ6
Om9wdGlvbmFsPEZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KQogICAgIH0KIH0KIAotdm9pZCBG
cmFtZVZpZXc6OmNsZWFyVmlld3BvcnRTaXplT3ZlcnJpZGVGb3JDU1NWaWV3cG9ydFVuaXRzKCkK
K3ZvaWQgRnJhbWVWaWV3OjpjbGVhclNpemVPdmVycmlkZUZvckNTU1NtYWxsVmlld3BvcnRVbml0
cygpCiB7Ci0gICAgaWYgKCFtX292ZXJyaWRlVmlld3BvcnRTaXplKQorICAgIGlmICghbV9zbWFs
bFZpZXdwb3J0U2l6ZU92ZXJyaWRlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX292ZXJyaWRl
Vmlld3BvcnRTaXplID0gc3RkOjpudWxsb3B0OworICAgIG1fc21hbGxWaWV3cG9ydFNpemVPdmVy
cmlkZSA9IHN0ZDo6bnVsbG9wdDsKICAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZSgpLmRv
Y3VtZW50KCkpCiAgICAgICAgIGRvY3VtZW50LT5zdHlsZVNjb3BlKCkuZGlkQ2hhbmdlU3R5bGVT
aGVldEVudmlyb25tZW50KCk7CiB9CiAKLXZvaWQgRnJhbWVWaWV3OjpzZXRWaWV3cG9ydFNpemVG
b3JDU1NWaWV3cG9ydFVuaXRzKEludFNpemUgc2l6ZSkKK3ZvaWQgRnJhbWVWaWV3OjpzZXRTaXpl
Rm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKEludFNpemUgc2l6ZSkKIHsKLSAgICBvdmVycmlkZVZp
ZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoeyBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0
KCkgfSk7CisgICAgb3ZlcnJpZGVTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKHsgc2l6ZS53
aWR0aCgpLCBzaXplLmhlaWdodCgpIH0pOwogfQogCi12b2lkIEZyYW1lVmlldzo6b3ZlcnJpZGVW
aWV3cG9ydFdpZHRoRm9yQ1NTVmlld3BvcnRVbml0cyhpbnQgd2lkdGgpCit2b2lkIEZyYW1lVmll
dzo6b3ZlcnJpZGVXaWR0aEZvckNTU1NtYWxsVmlld3BvcnRVbml0cyhpbnQgd2lkdGgpCiB7Ci0g
ICAgb3ZlcnJpZGVWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKHsgd2lkdGgsIG1fb3Zl
cnJpZGVWaWV3cG9ydFNpemUgPyBtX292ZXJyaWRlVmlld3BvcnRTaXplLT5oZWlnaHQgOiBzdGQ6
Om51bGxvcHQgfSk7CisgICAgb3ZlcnJpZGVTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKHsg
d2lkdGgsIG1fc21hbGxWaWV3cG9ydFNpemVPdmVycmlkZSA/IG1fc21hbGxWaWV3cG9ydFNpemVP
dmVycmlkZS0+aGVpZ2h0IDogc3RkOjpudWxsb3B0IH0pOwogfQogCi12b2lkIEZyYW1lVmlldzo6
cmVzZXRPdmVycmlkZGVuVmlld3BvcnRXaWR0aEZvckNTU1ZpZXdwb3J0VW5pdHMoKQordm9pZCBG
cmFtZVZpZXc6OnJlc2V0T3ZlcnJpZGRlbldpZHRoRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCkK
IHsKLSAgICBvdmVycmlkZVZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoeyB7IH0sIG1f
b3ZlcnJpZGVWaWV3cG9ydFNpemUgPyBtX292ZXJyaWRlVmlld3BvcnRTaXplLT5oZWlnaHQgOiBz
dGQ6Om51bGxvcHQgfSk7CisgICAgb3ZlcnJpZGVTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRz
KHsgeyB9LCBtX3NtYWxsVmlld3BvcnRTaXplT3ZlcnJpZGUgPyBtX3NtYWxsVmlld3BvcnRTaXpl
T3ZlcnJpZGUtPmhlaWdodCA6IHN0ZDo6bnVsbG9wdCB9KTsKIH0KIAotdm9pZCBGcmFtZVZpZXc6
Om92ZXJyaWRlVmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyhPdmVycmlkZVZpZXdwb3J0
U2l6ZSBzaXplKQordm9pZCBGcmFtZVZpZXc6Om92ZXJyaWRlU2l6ZUZvckNTU1NtYWxsVmlld3Bv
cnRVbml0cyhPdmVycmlkZVZpZXdwb3J0U2l6ZSBzaXplKQogewotICAgIGlmIChtX292ZXJyaWRl
Vmlld3BvcnRTaXplICYmICptX292ZXJyaWRlVmlld3BvcnRTaXplID09IHNpemUpCisgICAgaWYg
KG1fc21hbGxWaWV3cG9ydFNpemVPdmVycmlkZSAmJiAqbV9zbWFsbFZpZXdwb3J0U2l6ZU92ZXJy
aWRlID09IHNpemUpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fb3ZlcnJpZGVWaWV3cG9ydFNp
emUgPSBzaXplOworICAgIG1fc21hbGxWaWV3cG9ydFNpemVPdmVycmlkZSA9IHNpemU7CiAKICAg
ICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCkpCiAgICAgICAgIGRvY3Vt
ZW50LT5zdHlsZVNjb3BlKCkuZGlkQ2hhbmdlU3R5bGVTaGVldEVudmlyb25tZW50KCk7CiB9CiAK
LUludFNpemUgRnJhbWVWaWV3Ojp2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkgY29u
c3QKK0ludFNpemUgRnJhbWVWaWV3OjpzaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gY2FsY3VsYXRlU2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHNPdmVycmlk
ZShtX3NtYWxsVmlld3BvcnRTaXplT3ZlcnJpZGUpOworfQorCit2b2lkIEZyYW1lVmlldzo6Y2xl
YXJTaXplT3ZlcnJpZGVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoKQoreworICAgIGlmICghbV9s
YXJnZVZpZXdwb3J0U2l6ZU92ZXJyaWRlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2xhcmdl
Vmlld3BvcnRTaXplT3ZlcnJpZGUgPSBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKGF1dG8qIGRvY3Vt
ZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+c3R5bGVTY29wZSgp
LmRpZENoYW5nZVN0eWxlU2hlZXRFbnZpcm9ubWVudCgpOworfQorCit2b2lkIEZyYW1lVmlldzo6
c2V0U2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cyhJbnRTaXplIHNpemUpCit7CisgICAgb3Zl
cnJpZGVTaXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKHsgc2l6ZS53aWR0aCgpLCBzaXplLmhl
aWdodCgpIH0pOworfQorCit2b2lkIEZyYW1lVmlldzo6b3ZlcnJpZGVXaWR0aEZvckNTU0xhcmdl
Vmlld3BvcnRVbml0cyhpbnQgd2lkdGgpCit7CisgICAgb3ZlcnJpZGVTaXplRm9yQ1NTTGFyZ2VW
aWV3cG9ydFVuaXRzKHsgd2lkdGgsIG1fbGFyZ2VWaWV3cG9ydFNpemVPdmVycmlkZSA/IG1fbGFy
Z2VWaWV3cG9ydFNpemVPdmVycmlkZS0+aGVpZ2h0IDogc3RkOjpudWxsb3B0IH0pOworfQorCit2
b2lkIEZyYW1lVmlldzo6cmVzZXRPdmVycmlkZGVuV2lkdGhGb3JDU1NMYXJnZVZpZXdwb3J0VW5p
dHMoKQoreworICAgIG92ZXJyaWRlU2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cyh7IHsgfSwg
bV9sYXJnZVZpZXdwb3J0U2l6ZU92ZXJyaWRlID8gbV9sYXJnZVZpZXdwb3J0U2l6ZU92ZXJyaWRl
LT5oZWlnaHQgOiBzdGQ6Om51bGxvcHQgfSk7Cit9CisKK3ZvaWQgRnJhbWVWaWV3OjpvdmVycmlk
ZVNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoT3ZlcnJpZGVWaWV3cG9ydFNpemUgc2l6ZSkK
K3sKKyAgICBpZiAobV9sYXJnZVZpZXdwb3J0U2l6ZU92ZXJyaWRlICYmICptX2xhcmdlVmlld3Bv
cnRTaXplT3ZlcnJpZGUgPT0gc2l6ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9sYXJnZVZp
ZXdwb3J0U2l6ZU92ZXJyaWRlID0gc2l6ZTsKKworICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGZy
YW1lKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgZG9jdW1lbnQtPnN0eWxlU2NvcGUoKS5kaWRDaGFu
Z2VTdHlsZVNoZWV0RW52aXJvbm1lbnQoKTsKK30KKworSW50U2l6ZSBGcmFtZVZpZXc6OnNpemVG
b3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoKSBjb25zdAoreworICAgIHJldHVybiBjYWxjdWxhdGVT
aXplRm9yQ1NTVmlld3BvcnRVbml0c092ZXJyaWRlKG1fbGFyZ2VWaWV3cG9ydFNpemVPdmVycmlk
ZSk7Cit9CisKK0ludFNpemUgRnJhbWVWaWV3OjpjYWxjdWxhdGVTaXplRm9yQ1NTVmlld3BvcnRV
bml0c092ZXJyaWRlKHN0ZDo6b3B0aW9uYWw8T3ZlcnJpZGVWaWV3cG9ydFNpemU+IG92ZXJyaWRl
KSBjb25zdAogewogICAgIE92ZXJyaWRlVmlld3BvcnRTaXplIHZpZXdwb3J0U2l6ZTsKIAotICAg
IGlmIChtX292ZXJyaWRlVmlld3BvcnRTaXplKSB7Ci0gICAgICAgIHZpZXdwb3J0U2l6ZSA9ICpt
X292ZXJyaWRlVmlld3BvcnRTaXplOwotICAgICAgICAvLyBhdXRvLXNpemUgb3ZlcnJpZGVzIHRo
ZSB3aWR0aCBvbmx5LCBzbyB3ZSBjYW4ndCBhbHdheXMgYmFpbCBvdXQgZWFybHkgaGVyZS4KLSAg
ICAgICAgaWYgKHZpZXdwb3J0U2l6ZS53aWR0aCAmJiB2aWV3cG9ydFNpemUuaGVpZ2h0KQotICAg
ICAgICAgICAgcmV0dXJuIHsgKnZpZXdwb3J0U2l6ZS53aWR0aCwgKnZpZXdwb3J0U2l6ZS5oZWln
aHQgfTsKLSAgICB9CisgICAgaWYgKG92ZXJyaWRlKQorICAgICAgICB2aWV3cG9ydFNpemUgPSAq
b3ZlcnJpZGU7CisKKyAgICAvLyBVc2UgdGhlIGxhcmdlIHNpemUgaWYgbm8gb3ZlcnJpZGUgaXMg
Z2l2ZW4gc2luY2UgaXQncyBjb25zaWRlcmVkIHRoZSBkZWZhdWx0IHNpemUuCisgICAgLy8gaWYg
KG1fbGFyZ2VWaWV3cG9ydFNpemVPdmVycmlkZSkgeworICAgIC8vICAgICBpZiAoIXZpZXdwb3J0
U2l6ZS53aWR0aCkKKyAgICAvLyAgICAgICAgIHZpZXdwb3J0U2l6ZS53aWR0aCA9IG1fbGFyZ2VW
aWV3cG9ydFNpemVPdmVycmlkZS0+d2lkdGg7CisKKyAgICAvLyAgICAgaWYgKCF2aWV3cG9ydFNp
emUuaGVpZ2h0KQorICAgIC8vICAgICAgICAgdmlld3BvcnRTaXplLmhlaWdodCA9IG1fbGFyZ2VW
aWV3cG9ydFNpemVPdmVycmlkZS0+aGVpZ2h0OworICAgIC8vIH0KKworICAgIC8vIGF1dG8tc2l6
ZSBvdmVycmlkZXMgdGhlIHdpZHRoIG9ubHksIHNvIHdlIGNhbid0IGFsd2F5cyBiYWlsIG91dCBl
YXJseSBoZXJlLgorICAgIGlmICh2aWV3cG9ydFNpemUud2lkdGggJiYgdmlld3BvcnRTaXplLmhl
aWdodCkKKyAgICAgICAgcmV0dXJuIHsgKnZpZXdwb3J0U2l6ZS53aWR0aCwgKnZpZXdwb3J0U2l6
ZS5oZWlnaHQgfTsKIAogICAgIGlmICh1c2VGaXhlZExheW91dCgpKSB7CiAgICAgICAgIGF1dG8g
Zml4ZWRMYXlvdXRTaXplID0gdGhpcy0+Zml4ZWRMYXlvdXRTaXplKCk7CkBAIC01NjAxLDYgKzU2
NjQsMTYgQEAgSW50U2l6ZSBGcmFtZVZpZXc6OnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5p
dHMoKSBjb25zdAogICAgIHJldHVybiB7ICp2aWV3cG9ydFNpemUud2lkdGgsICp2aWV3cG9ydFNp
emUuaGVpZ2h0IH07CiB9CiAKK0ludFNpemUgRnJhbWVWaWV3OjpzaXplRm9yQ1NTRHluYW1pY1Zp
ZXdwb3J0VW5pdHMoKSBjb25zdAoreworICAgIHJldHVybiB2aXNpYmxlQ29udGVudFJlY3RJbmNs
dWRpbmdTY3JvbGxiYXJzKCkuc2l6ZSgpOworfQorCitJbnRTaXplIEZyYW1lVmlldzo6c2l6ZUZv
ckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gc2l6ZUZvckNT
U0xhcmdlVmlld3BvcnRVbml0cygpOworfQorCiBib29sIEZyYW1lVmlldzo6c2hvdWxkUGxhY2VW
ZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHJlbmRlclZpZXco
KSAmJiByZW5kZXJWaWV3KCktPnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGY0NGEzZjJlOWQ5YjczYmI4N2UyYWNmYWI1Y2Vh
Y2Y2M2MwYzM1NGUuLmY0Y2Y3ZDA4MTUyOGFhYWExMGM5MjZiZTlkOWYyNzVmZmU0OGY2MmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMjI4LDkgKzIyOCwxNyBAQCBwdWJsaWM6CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkanVzdFZpZXdTaXplKCk7CiAKLSAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoSW50U2l6ZSk7Ci0g
ICAgdm9pZCBjbGVhclZpZXdwb3J0U2l6ZU92ZXJyaWRlRm9yQ1NTVmlld3BvcnRVbml0cygpOwot
ICAgIEludFNpemUgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpIGNvbnN0OworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cyhJbnRT
aXplKTsKKyAgICB2b2lkIGNsZWFyU2l6ZU92ZXJyaWRlRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRz
KCk7CisgICAgSW50U2l6ZSBzaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCkgY29uc3Q7CisK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMo
SW50U2l6ZSk7CisgICAgdm9pZCBjbGVhclNpemVPdmVycmlkZUZvckNTU0xhcmdlVmlld3BvcnRV
bml0cygpOworICAgIEludFNpemUgc2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpIGNvbnN0
OworCisgICAgSW50U2l6ZSBzaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMoKSBjb25zdDsK
KworICAgIEludFNpemUgc2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCkgY29uc3Q7CiAK
ICAgICBJbnRSZWN0IHdpbmRvd0NsaXBSZWN0KCkgY29uc3QgZmluYWw7CiAgICAgV0VCQ09SRV9F
WFBPUlQgSW50UmVjdCB3aW5kb3dDbGlwUmVjdEZvckZyYW1lT3duZXIoY29uc3QgSFRNTEZyYW1l
T3duZXJFbGVtZW50KiwgYm9vbCBjbGlwVG9MYXllckNvbnRlbnRzKSBjb25zdDsKQEAgLTg1NCw5
ICs4NjIsMTUgQEAgcHJpdmF0ZToKIAogICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgT3Zl
cnJpZGVWaWV3cG9ydFNpemUmIHJocykgY29uc3QgeyByZXR1cm4gcmhzLndpZHRoID09IHdpZHRo
ICYmIHJocy5oZWlnaHQgPT0gaGVpZ2h0OyB9CiAgICAgfTsKLSAgICB2b2lkIG92ZXJyaWRlVmll
d3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyhPdmVycmlkZVZpZXdwb3J0U2l6ZSk7Ci0gICAg
dm9pZCBvdmVycmlkZVZpZXdwb3J0V2lkdGhGb3JDU1NWaWV3cG9ydFVuaXRzKGludCk7Ci0gICAg
dm9pZCByZXNldE92ZXJyaWRkZW5WaWV3cG9ydFdpZHRoRm9yQ1NTVmlld3BvcnRVbml0cygpOwor
ICAgIEludFNpemUgY2FsY3VsYXRlU2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHNPdmVycmlkZShzdGQ6
Om9wdGlvbmFsPE92ZXJyaWRlVmlld3BvcnRTaXplPikgY29uc3Q7CisKKyAgICB2b2lkIG92ZXJy
aWRlU2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cyhPdmVycmlkZVZpZXdwb3J0U2l6ZSk7Cisg
ICAgdm9pZCBvdmVycmlkZVdpZHRoRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKGludCk7CisgICAg
dm9pZCByZXNldE92ZXJyaWRkZW5XaWR0aEZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpOworCisg
ICAgdm9pZCBvdmVycmlkZVNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoT3ZlcnJpZGVWaWV3
cG9ydFNpemUpOworICAgIHZvaWQgb3ZlcnJpZGVXaWR0aEZvckNTU0xhcmdlVmlld3BvcnRVbml0
cyhpbnQpOworICAgIHZvaWQgcmVzZXRPdmVycmlkZGVuV2lkdGhGb3JDU1NMYXJnZVZpZXdwb3J0
VW5pdHMoKTsKIAogICAgIHZvaWQgZGlkRmluaXNoUHJvaGliaXRpbmdTY3JvbGxpbmdXaGVuQ2hh
bmdpbmdDb250ZW50U2l6ZSgpIGZpbmFsOwogCkBAIC05MjUsNyArOTM5LDggQEAgcHJpdmF0ZToK
ICAgICBzdGQ6Om9wdGlvbmFsPEludFNpemU+IG1fY3VzdG9tU2l6ZUZvclJlc2l6ZUV2ZW50Owog
I2VuZGlmCiAKLSAgICBzdGQ6Om9wdGlvbmFsPE92ZXJyaWRlVmlld3BvcnRTaXplPiBtX292ZXJy
aWRlVmlld3BvcnRTaXplOworICAgIHN0ZDo6b3B0aW9uYWw8T3ZlcnJpZGVWaWV3cG9ydFNpemU+
IG1fc21hbGxWaWV3cG9ydFNpemVPdmVycmlkZTsKKyAgICBzdGQ6Om9wdGlvbmFsPE92ZXJyaWRl
Vmlld3BvcnRTaXplPiBtX2xhcmdlVmlld3BvcnRTaXplT3ZlcnJpZGU7CiAKICAgICAvLyBUaGUg
dmlldyBzaXplIHdoZW4gYXV0b3NpemluZy4KICAgICBJbnRTaXplIG1fYXV0b1NpemVDb25zdHJh
aW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRT
aXplLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaAppbmRl
eCBkNTVkMWRjYTUyOWIwNjY5MGJjNmY3NmNlODE1MDY4OWU3MzJjMDA2Li5lMmRlZjg1NzE2ZTMz
ZTkxYTM2MzFiZTFjYjJmYzJiYWRiNTMxZTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9GbG9hdFNpemUuaApAQCAtNzIsNiArNzIsOSBAQCBwdWJsaWM6CiAgICAgZmxv
YXQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoOyB9CiAgICAgZmxvYXQgaGVpZ2h0KCkg
Y29uc3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KIAorICAgIGZsb2F0IG1pbkRpbWVuc2lvbigpIGNv
bnN0IHsgcmV0dXJuIHN0ZDo6bWluKG1fd2lkdGgsIG1faGVpZ2h0KTsgfQorICAgIGZsb2F0IG1h
eERpbWVuc2lvbigpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bWF4KG1fd2lkdGgsIG1faGVpZ2h0KTsg
fQorCiAgICAgYm9vbCBoYXNJbnRyaW5zaWNXaWR0aCA9IGZhbHNlOwogICAgIGJvb2wgaGFzSW50
cmluc2ljSGVpZ2h0ID0gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ludFNpemUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ludFNpemUuaAppbmRleCA1YjI0YTBmMTEyYjQyZjQzNjgxZjdmZmFhMmI2MmY0MGYwNmE4MGY1
Li4wOTVmMDMxNDRkZjk3MjY3ZjEwMjU1ZTI1Njc0ZWQ5NjYyZGRmZmY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRTaXplLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50U2l6ZS5oCkBAIC03NCw2ICs3NCw5IEBAIHB1Ymxp
YzoKICAgICBpbnQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoOyB9CiAgICAgaW50IGhl
aWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9CiAKKyAgICBmbG9hdCBtaW5EaW1lbnNp
b24oKSBjb25zdCB7IHJldHVybiBzdGQ6Om1pbihtX3dpZHRoLCBtX2hlaWdodCk7IH0KKyAgICBm
bG9hdCBtYXhEaW1lbnNpb24oKSBjb25zdCB7IHJldHVybiBzdGQ6Om1heChtX3dpZHRoLCBtX2hl
aWdodCk7IH0KKwogICAgIHZvaWQgc2V0V2lkdGgoaW50IHdpZHRoKSB7IG1fd2lkdGggPSB3aWR0
aDsgfQogICAgIHZvaWQgc2V0SGVpZ2h0KGludCBoZWlnaHQpIHsgbV9oZWlnaHQgPSBoZWlnaHQ7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDc5OTQ1MzYw
ZGQxZWFlZDM0ODgxNzBhMWY4NTU1MDU3MjExNzhiODAuLjFkMjNiNmU5NDk5YjIyYjAzOTk4YTIw
ODdhNTk3ZjVmNjAzMmZmYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKQEAgLTY5Nyw5ICs2OTcsMjQgQEAgZmxvYXQgUmVuZGVyVmlldzo6em9vbUZhY3RvcigpIGNv
bnN0CiAgICAgcmV0dXJuIGZyYW1lVmlldygpLmZyYW1lKCkucGFnZVpvb21GYWN0b3IoKTsKIH0K
IAotSW50U2l6ZSBSZW5kZXJWaWV3Ojp2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkg
Y29uc3QKK0ludFNpemUgUmVuZGVyVmlldzo6c2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZyYW1lVmlldygpLnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdw
b3J0VW5pdHMoKTsKKyAgICByZXR1cm4gZnJhbWVWaWV3KCkuc2l6ZUZvckNTU1NtYWxsVmlld3Bv
cnRVbml0cygpOworfQorCitJbnRTaXplIFJlbmRlclZpZXc6OnNpemVGb3JDU1NMYXJnZVZpZXdw
b3J0VW5pdHMoKSBjb25zdAoreworICAgIHJldHVybiBmcmFtZVZpZXcoKS5zaXplRm9yQ1NTTGFy
Z2VWaWV3cG9ydFVuaXRzKCk7Cit9CisKK0ludFNpemUgUmVuZGVyVmlldzo6c2l6ZUZvckNTU0R5
bmFtaWNWaWV3cG9ydFVuaXRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnJhbWVWaWV3KCkuc2l6
ZUZvckNTU0R5bmFtaWNWaWV3cG9ydFVuaXRzKCk7Cit9CisKK0ludFNpemUgUmVuZGVyVmlldzo6
c2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnJh
bWVWaWV3KCkuc2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCk7CiB9CiAKIE5vZGUqIFJl
bmRlclZpZXc6Om5vZGVGb3JIaXRUZXN0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVmlldy5oCmluZGV4IDQ4ZTM2NzkzMDM1NmUzNDhhOWZiYjIxZDNkNTcwMjRlMTUzNDM1YTYu
LmEwYmI5NGUxNjcxMmFmODk2N2M4ZGU2YWQ3ODE1YjBjMGE3MWNkNTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZXcuaApAQCAtMTQzLDcgKzE0MywxMCBAQCBwdWJsaWM6CiAKICAg
ICBib29sIHNob3VsZFBhaW50QmFzZUJhY2tncm91bmQoKSBjb25zdDsKIAotICAgIEludFNpemUg
dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpIGNvbnN0OworICAgIEludFNpemUgc2l6
ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpIGNvbnN0OworICAgIEludFNpemUgc2l6ZUZvckNT
U0xhcmdlVmlld3BvcnRVbml0cygpIGNvbnN0OworICAgIEludFNpemUgc2l6ZUZvckNTU0R5bmFt
aWNWaWV3cG9ydFVuaXRzKCkgY29uc3Q7CisgICAgSW50U2l6ZSBzaXplRm9yQ1NTRGVmYXVsdFZp
ZXdwb3J0VW5pdHMoKSBjb25zdDsKIAogICAgIGJvb2wgaGFzUXVvdGVzTmVlZGluZ1VwZGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIG1faGFzUXVvdGVzTmVlZGluZ1VwZGF0ZTsgfQogICAgIHZvaWQgc2V0
SGFzUXVvdGVzTmVlZGluZ1VwZGF0ZShib29sIGIpIHsgbV9oYXNRdW90ZXNOZWVkaW5nVXBkYXRl
ID0gYjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0NTU0NvbXBsZXRpb25zLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0NTU0NvbXBsZXRpb25zLmpzCmluZGV4IDIzY2U4NTUwNGIyZDA2YjA2YjYw
ZGE1ZmM0YzNiMzJhZjQxOTk4MjMuLmM0NjgxNTBmNzMxZGM5ZWEwOTFjYWMzOGIwMDVjNmVlMThm
NmYxM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9DU1NDb21wbGV0aW9ucy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQ1NTQ29tcGxldGlvbnMuanMKQEAgLTM0MywxNSArMzQzLDI3IEBAIFdJ
LkNTU0NvbXBsZXRpb25zLmNzc05hbWVDb21wbGV0aW9ucyA9IG51bGw7CiBXSS5DU1NDb21wbGV0
aW9ucy5sZW5ndGhVbml0cyA9IG5ldyBTZXQoWwogICAgICJjaCIsCiAgICAgImNtIiwKKyAgICAi
ZHZoIiwKKyAgICAiZHZtYXgiLAorICAgICJkdm1pbiIsCisgICAgImR2dyIsCiAgICAgImVtIiwK
ICAgICAiZXgiLAogICAgICJpbiIsCisgICAgImx2aCIsCisgICAgImx2bWF4IiwKKyAgICAibHZt
aW4iLAorICAgICJsdnciLAogICAgICJtbSIsCiAgICAgInBjIiwKICAgICAicHQiLAogICAgICJw
eCIsCiAgICAgInEiLAogICAgICJyZW0iLAorICAgICJzdmgiLAorICAgICJzdm1heCIsCisgICAg
InN2bWluIiwKKyAgICAic3Z3IiwKICAgICAidmgiLAogICAgICJ2bWF4IiwKICAgICAidm1pbiIs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCmluZGV4IGNiY2E5MDhlMzgzNjBkMWQ5Yzk5NDQyZTA5M2ZhMDg5MTUxZTk2ZDYuLjcxYzcy
OWY3NGJjODcyYTJiYTZiNTQ5YzM2ZTllNmZjODNmYmZjMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0xMDUsNiArMTA1
LDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgYXZhaWxhYmxlU2NyZWVuU2l6ZTsKICAg
ICBlbmNvZGVyIDw8IG92ZXJyaWRlU2NyZWVuU2l6ZTsKICAgICBlbmNvZGVyIDw8IHRleHRBdXRv
c2l6aW5nV2lkdGg7CisgICAgZW5jb2RlciA8PCBtaW5pbXVtVW5vYnNjdXJlZFNpemU7CiAgICAg
ZW5jb2RlciA8PCBtYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgZW5jb2RlciA8PCBkZXZpY2VP
cmllbnRhdGlvbjsKICAgICBlbmNvZGVyIDw8IGtleWJvYXJkSXNBdHRhY2hlZDsKQEAgLTM3Nyw2
ICszNzgsOCBAQCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OgogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy50ZXh0QXV0b3Npemlu
Z1dpZHRoKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHBhcmFtZXRlcnMubWluaW11bVVub2JzY3VyZWRTaXplKSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubWF4aW11
bVVub2JzY3VyZWRTaXplKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuZGV2aWNlT3JpZW50YXRpb24pKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGViMWVl
MDk1OWE1MTNkYjgyNTdkNjRhZGRjZWVhNTA5YjdhM2U4NmUuLjQ5ZjYyNmJiNmJlMDg3ODQ4MWI5
NzVhN2RlZTEwZmY4MmYwZWQ5ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTE2OCw2ICsxNjgsNyBAQCBzdHJ1Y3QgV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIGF2YWlsYWJsZVNj
cmVlblNpemU7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG92ZXJyaWRlU2NyZWVuU2l6ZTsKICAg
ICBmbG9hdCB0ZXh0QXV0b3NpemluZ1dpZHRoOworICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtaW5p
bXVtVW5vYnNjdXJlZFNpemU7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1heGltdW1Vbm9ic2N1
cmVkU2l6ZTsKICAgICBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uIHsgMCB9OwogICAgIGJvb2wg
a2V5Ym9hcmRJc0F0dGFjaGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKaW5kZXggMTk2NGE1MzYzNjNj
MTJjNGNjNzg1MjE0YWY4ZjUzZmU1ZmM2N2VjYi4uYzMwMjFmNmJlZWJhNDNlMzlhNjRjNjYxZjAw
ODlkZTQ1ZDM0NzFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKQEAgLTE1NSw2ICsxNTUsOCBAQCBjbGFzcyBWaWV3
R2VzdHVyZUNvbnRyb2xsZXI7CiAKICAgICBzdGQ6Om9wdGlvbmFsPENHU2l6ZT4gX3ZpZXdMYXlv
dXRTaXplT3ZlcnJpZGU7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFNpemU+IF9s
YXN0U2VudFZpZXdMYXlvdXRTaXplOworICAgIHN0ZDo6b3B0aW9uYWw8Q0dTaXplPiBfbWluaW11
bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9h
dFNpemU+IF9sYXN0U2VudE1pbmltdW1Vbm9ic2N1cmVkU2l6ZTsKICAgICBzdGQ6Om9wdGlvbmFs
PENHU2l6ZT4gX21heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6RmxvYXRTaXplPiBfbGFzdFNlbnRNYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAg
ICAgQ0dSZWN0IF9pbnB1dFZpZXdCb3VuZHNJbldpbmRvdzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KaW5kZXggYWYzMDQ2YjkyYzU2MzZiNzFl
ZjM1ODRkNDdlNmNhM2ZmN2U0ZTM4YS4uZDc4Y2I5OGZkMzU3ZThhNGZhNDhmYTE3MTkxY2E5YzEw
ZmM4ZDkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dl
YlZpZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZp
ZXdJT1MubW0KQEAgLTcwMyw2ICs3MDMsNyBAQCAtICh2b2lkKV9wcm9jZXNzV2lsbFN3YXBPckRp
ZEV4aXQKICAgICBfZGlkRGVmZXJVcGRhdGVWaXNpYmxlQ29udGVudFJlY3RzRm9yVW5zdGFibGVT
Y3JvbGxWaWV3ID0gTk87CiAgICAgX2N1cnJlbnRseUFkanVzdGluZ1Njcm9sbFZpZXdJbnNldHNG
b3JLZXlib2FyZCA9IE5POwogICAgIF9sYXN0U2VudFZpZXdMYXlvdXRTaXplID0gc3RkOjpudWxs
b3B0OworICAgIF9sYXN0U2VudE1pbmltdW1Vbm9ic2N1cmVkU2l6ZSA9IHN0ZDo6bnVsbG9wdDsK
ICAgICBfbGFzdFNlbnRNYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBzdGQ6Om51bGxvcHQ7CiAgICAg
X2xhc3RTZW50RGV2aWNlT3JpZW50YXRpb24gPSBzdGQ6Om51bGxvcHQ7CiAKQEAgLTE5MTAsNiAr
MTkxMSwxNSBAQCAtICh2b2lkKV9kaXNwYXRjaFNldFZpZXdMYXlvdXRTaXplOihXZWJDb3JlOjpG
bG9hdFNpemUpdmlld0xheW91dFNpemUKICAgICBfbGFzdFNlbnRWaWV3TGF5b3V0U2l6ZSA9IHZp
ZXdMYXlvdXRTaXplOwogfQogCistICh2b2lkKV9kaXNwYXRjaFNldE1pbmltdW1Vbm9ic2N1cmVk
U2l6ZTooV2ViQ29yZTo6RmxvYXRTaXplKW1pbmltdW1Vbm9ic2N1cmVkU2l6ZQoreworICAgIGlm
IChfbGFzdFNlbnRNaW5pbXVtVW5vYnNjdXJlZFNpemUgJiYgQ0dTaXplRXF1YWxUb1NpemUoX2xh
c3RTZW50TWluaW11bVVub2JzY3VyZWRTaXplLnZhbHVlKCksIG1pbmltdW1Vbm9ic2N1cmVkU2l6
ZSkpCisgICAgICAgIHJldHVybjsKKworICAgIF9wYWdlLT5zZXRNaW5pbXVtVW5vYnNjdXJlZFNp
emUobWluaW11bVVub2JzY3VyZWRTaXplKTsKKyAgICBfbGFzdFNlbnRNaW5pbXVtVW5vYnNjdXJl
ZFNpemUgPSBtaW5pbXVtVW5vYnNjdXJlZFNpemU7Cit9CisKIC0gKHZvaWQpX2Rpc3BhdGNoU2V0
TWF4aW11bVVub2JzY3VyZWRTaXplOihXZWJDb3JlOjpGbG9hdFNpemUpbWF4aW11bVVub2JzY3Vy
ZWRTaXplCiB7CiAgICAgaWYgKF9sYXN0U2VudE1heGltdW1Vbm9ic2N1cmVkU2l6ZSAmJiBDR1Np
emVFcXVhbFRvU2l6ZShfbGFzdFNlbnRNYXhpbXVtVW5vYnNjdXJlZFNpemUudmFsdWUoKSwgbWF4
aW11bVVub2JzY3VyZWRTaXplKSkKQEAgLTE5NDUsNiArMTk1NSw4IEBAIC0gKHZvaWQpX2ZyYW1l
T3JCb3VuZHNDaGFuZ2VkCiAgICAgaWYgKF9keW5hbWljVmlld3BvcnRVcGRhdGVNb2RlID09IFdl
YktpdDo6RHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZTo6Tm90UmVzaXppbmcpIHsKICAgICAgICAg
aWYgKCFfdmlld0xheW91dFNpemVPdmVycmlkZSkKICAgICAgICAgICAgIFtzZWxmIF9kaXNwYXRj
aFNldFZpZXdMYXlvdXRTaXplOltzZWxmIGFjdGl2ZVZpZXdMYXlvdXRTaXplOnNlbGYuYm91bmRz
XV07CisgICAgICAgIGlmICghX21pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlKQorICAgICAg
ICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0TWluaW11bVVub2JzY3VyZWRTaXplOldlYkNvcmU6OkZs
b2F0U2l6ZShib3VuZHMuc2l6ZSldOwogICAgICAgICBpZiAoIV9tYXhpbXVtVW5vYnNjdXJlZFNp
emVPdmVycmlkZSkKICAgICAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1heGltdW1Vbm9ic2N1
cmVkU2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUoYm91bmRzLnNpemUpXTsKIApAQCAtMjI2NSw2ICsy
Mjc3LDExIEBAIC0gKHZvaWQpX2RpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lCiAg
ICAgICAgIF9nZXN0dXJlQ29udHJvbGxlci0+ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWlu
RnJhbWUoKTsKIH0KIAorc3RhdGljIFdlYkNvcmU6OkZsb2F0U2l6ZSBhY3RpdmVNaW5pbXVtVW5v
YnNjdXJlZFNpemUoV0tXZWJWaWV3ICp3ZWJWaWV3LCBjb25zdCBDR1JlY3QmIGJvdW5kcykKK3sK
KyAgICByZXR1cm4gV2ViQ29yZTo6RmxvYXRTaXplKHdlYlZpZXctPl9taW5pbXVtVW5vYnNjdXJl
ZFNpemVPdmVycmlkZS52YWx1ZV9vcihib3VuZHMuc2l6ZSkpOworfQorCiBzdGF0aWMgV2ViQ29y
ZTo6RmxvYXRTaXplIGFjdGl2ZU1heGltdW1Vbm9ic2N1cmVkU2l6ZShXS1dlYlZpZXcgKndlYlZp
ZXcsIGNvbnN0IENHUmVjdCYgYm91bmRzKQogewogICAgIHJldHVybiBXZWJDb3JlOjpGbG9hdFNp
emUod2ViVmlldy0+X21heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlLnZhbHVlX29yKGJvdW5k
cy5zaXplKSk7CkBAIC0yMzU0LDEyICsyMzcxLDE2IEBAIC0gKHZvaWQpX2RpZENvbXBsZXRlQW5p
bWF0ZWRSZXNpemUKIAogICAgIENHUmVjdCBuZXdCb3VuZHMgPSBzZWxmLmJvdW5kczsKICAgICBh
dXRvIG5ld1ZpZXdMYXlvdXRTaXplID0gW3NlbGYgYWN0aXZlVmlld0xheW91dFNpemU6bmV3Qm91
bmRzXTsKKyAgICBhdXRvIG5ld01pbmltdW1Vbm9ic2N1cmVkU2l6ZSA9IGFjdGl2ZU1pbmltdW1V
bm9ic2N1cmVkU2l6ZShzZWxmLCBuZXdCb3VuZHMpOwogICAgIGF1dG8gbmV3TWF4aW11bVVub2Jz
Y3VyZWRTaXplID0gYWN0aXZlTWF4aW11bVVub2JzY3VyZWRTaXplKHNlbGYsIG5ld0JvdW5kcyk7
CiAgICAgaW50MzJfdCBuZXdPcmllbnRhdGlvbiA9IGFjdGl2ZU9yaWVudGF0aW9uKHNlbGYpOwog
CiAgICAgaWYgKCFfbGFzdFNlbnRWaWV3TGF5b3V0U2l6ZSB8fCBuZXdWaWV3TGF5b3V0U2l6ZSAh
PSBfbGFzdFNlbnRWaWV3TGF5b3V0U2l6ZS52YWx1ZSgpKQogICAgICAgICBbc2VsZiBfZGlzcGF0
Y2hTZXRWaWV3TGF5b3V0U2l6ZTpuZXdWaWV3TGF5b3V0U2l6ZV07CiAKKyAgICBpZiAoIV9sYXN0
U2VudE1pbmltdW1Vbm9ic2N1cmVkU2l6ZSB8fCBuZXdNaW5pbXVtVW5vYnNjdXJlZFNpemUgIT0g
X2xhc3RTZW50TWluaW11bVVub2JzY3VyZWRTaXplLnZhbHVlKCkpCisgICAgICAgIFtzZWxmIF9k
aXNwYXRjaFNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUobmV3TWlu
aW11bVVub2JzY3VyZWRTaXplKV07CisKICAgICBpZiAoIV9sYXN0U2VudE1heGltdW1Vbm9ic2N1
cmVkU2l6ZSB8fCBuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUgIT0gX2xhc3RTZW50TWF4aW11bVVu
b2JzY3VyZWRTaXplLnZhbHVlKCkpCiAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1heGltdW1V
bm9ic2N1cmVkU2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUobmV3TWF4aW11bVVub2JzY3VyZWRTaXpl
KV07CiAKQEAgLTI3MTQsNiArMjczNSwyMSBAQCAtICh2b2lkKV9zZXRWaWV3TGF5b3V0U2l6ZU92
ZXJyaWRlOihDR1NpemUpdmlld0xheW91dFNpemVPdmVycmlkZQogICAgICAgICBbc2VsZiBfZGlz
cGF0Y2hTZXRWaWV3TGF5b3V0U2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUodmlld0xheW91dFNpemVP
dmVycmlkZSldOwogfQogCistIChDR1NpemUpX21pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRl
Cit7CisgICAgQVNTRVJUKF9taW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSk7CisgICAgcmV0
dXJuIF9taW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZS52YWx1ZV9vcihDR1NpemVaZXJvKTsK
K30KKworLSAodm9pZClfc2V0TWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6KENHU2l6ZSlz
aXplCit7CisgICAgQVNTRVJUKHNpemUud2lkdGggPD0gc2VsZi5ib3VuZHMuc2l6ZS53aWR0aCAm
JiBzaXplLmhlaWdodCA8PSBzZWxmLmJvdW5kcy5zaXplLmhlaWdodCk7CisgICAgX21pbmltdW1V
bm9ic2N1cmVkU2l6ZU92ZXJyaWRlID0gc2l6ZTsKKworICAgIGlmIChfZHluYW1pY1ZpZXdwb3J0
VXBkYXRlTW9kZSA9PSBXZWJLaXQ6OkR5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGU6Ok5vdFJlc2l6
aW5nKQorICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRNaW5pbXVtVW5vYnNjdXJlZFNpemU6V2Vi
Q29yZTo6RmxvYXRTaXplKHNpemUpXTsKK30KKwogLy8gRGVwcmVjYXRlZCBTUEkKIC0gKENHU2l6
ZSlfbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUKIHsKQEAgLTMwMzgsNiArMzA3NCw3IEBA
IC0gKHZvaWQpX2JlZ2luQW5pbWF0ZWRSZXNpemVXaXRoVXBkYXRlczoodm9pZCAoXikodm9pZCkp
dXBkYXRlQmxvY2sKICAgICAgICAgb2xkT2JzY3VyZWRJbnNldHMgPSBfb2JzY3VyZWRJbnNldHM7
CiAgICAgfQogICAgIGF1dG8gb2xkVmlld0xheW91dFNpemUgPSBbc2VsZiBhY3RpdmVWaWV3TGF5
b3V0U2l6ZTpvbGRCb3VuZHNdOworICAgIGF1dG8gb2xkTWluaW11bVVub2JzY3VyZWRTaXplID0g
YWN0aXZlTWluaW11bVVub2JzY3VyZWRTaXplKHNlbGYsIG9sZEJvdW5kcyk7CiAgICAgYXV0byBv
bGRNYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBhY3RpdmVNYXhpbXVtVW5vYnNjdXJlZFNpemUoc2Vs
Ziwgb2xkQm91bmRzKTsKIAogICAgIHVwZGF0ZUJsb2NrKCk7CkBAIC0zMDQ1LDYgKzMwODIsNyBA
QCAtICh2b2lkKV9iZWdpbkFuaW1hdGVkUmVzaXplV2l0aFVwZGF0ZXM6KHZvaWQgKF4pKHZvaWQp
KXVwZGF0ZUJsb2NrCiAgICAgQ0dSZWN0IG5ld0JvdW5kcyA9IHNlbGYuYm91bmRzOwogICAgIGF1
dG8gbmV3TWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoID0gW3NlbGYgX21pbmltdW1FZmZlY3Rp
dmVEZXZpY2VXaWR0aF07CiAgICAgYXV0byBuZXdWaWV3TGF5b3V0U2l6ZSA9IFtzZWxmIGFjdGl2
ZVZpZXdMYXlvdXRTaXplOm5ld0JvdW5kc107CisgICAgYXV0byBuZXdNaW5pbXVtVW5vYnNjdXJl
ZFNpemUgPSBhY3RpdmVNaW5pbXVtVW5vYnNjdXJlZFNpemUoc2VsZiwgbmV3Qm91bmRzKTsKICAg
ICBhdXRvIG5ld01heGltdW1Vbm9ic2N1cmVkU2l6ZSA9IGFjdGl2ZU1heGltdW1Vbm9ic2N1cmVk
U2l6ZShzZWxmLCBuZXdCb3VuZHMpOwogICAgIGludDMyX3QgbmV3T3JpZW50YXRpb24gPSBhY3Rp
dmVPcmllbnRhdGlvbihzZWxmKTsKICAgICBVSUVkZ2VJbnNldHMgbmV3T2JzY3VyZWRJbnNldHMg
PSBfb2JzY3VyZWRJbnNldHM7CkBAIC0zMDY2LDYgKzMxMDQsOCBAQCAtICh2b2lkKV9iZWdpbkFu
aW1hdGVkUmVzaXplV2l0aFVwZGF0ZXM6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrCiAgICAg
ICAgIFtzZWxmIF9mcmFtZU9yQm91bmRzQ2hhbmdlZF07CiAgICAgICAgIGlmIChfdmlld0xheW91
dFNpemVPdmVycmlkZSkKICAgICAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldFZpZXdMYXlvdXRT
aXplOm5ld1ZpZXdMYXlvdXRTaXplXTsKKyAgICAgICAgaWYgKF9taW5pbXVtVW5vYnNjdXJlZFNp
emVPdmVycmlkZSkKKyAgICAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1pbmltdW1Vbm9ic2N1
cmVkU2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUobmV3TWluaW11bVVub2JzY3VyZWRTaXplKV07CiAg
ICAgICAgIGlmIChfbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUpCiAgICAgICAgICAgICBb
c2VsZiBfZGlzcGF0Y2hTZXRNYXhpbXVtVW5vYnNjdXJlZFNpemU6V2ViQ29yZTo6RmxvYXRTaXpl
KG5ld01heGltdW1Vbm9ic2N1cmVkU2l6ZSldOwogICAgICAgICBpZiAoX292ZXJyaWRlc0ludGVy
ZmFjZU9yaWVudGF0aW9uKQpAQCAtMzA3Niw2ICszMTE2LDcgQEAgLSAodm9pZClfYmVnaW5Bbmlt
YXRlZFJlc2l6ZVdpdGhVcGRhdGVzOih2b2lkICheKSh2b2lkKSl1cGRhdGVCbG9jawogCiAgICAg
aWYgKENHUmVjdEVxdWFsVG9SZWN0KG9sZEJvdW5kcywgbmV3Qm91bmRzKQogICAgICAgICAmJiBv
bGRWaWV3TGF5b3V0U2l6ZSA9PSBuZXdWaWV3TGF5b3V0U2l6ZQorICAgICAgICAmJiBvbGRNaW5p
bXVtVW5vYnNjdXJlZFNpemUgPT0gbmV3TWluaW11bVVub2JzY3VyZWRTaXplCiAgICAgICAgICYm
IG9sZE1heGltdW1Vbm9ic2N1cmVkU2l6ZSA9PSBuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUKICAg
ICAgICAgJiYgb2xkT3JpZW50YXRpb24gPT0gbmV3T3JpZW50YXRpb24KICAgICAgICAgJiYgb2xk
TWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoID09IG5ld01pbmltdW1FZmZlY3RpdmVEZXZpY2VX
aWR0aApAQCAtMzE0MywxMCArMzE4NCwxMSBAQCAtICh2b2lkKV9iZWdpbkFuaW1hdGVkUmVzaXpl
V2l0aFVwZGF0ZXM6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrCiAgICAgV2ViQ29yZTo6Rmxv
YXRCb3hFeHRlbnQgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzRXh0ZW50KHVub2JzY3VyZWRTYWZl
QXJlYUluc2V0cy50b3AsIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cy5yaWdodCwgdW5vYnNjdXJl
ZFNhZmVBcmVhSW5zZXRzLmJvdHRvbSwgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLmxlZnQpOwog
CiAgICAgX2xhc3RTZW50Vmlld0xheW91dFNpemUgPSBuZXdWaWV3TGF5b3V0U2l6ZTsKKyAgICBf
bGFzdFNlbnRNaW5pbXVtVW5vYnNjdXJlZFNpemUgPSBuZXdNaW5pbXVtVW5vYnNjdXJlZFNpemU7
CiAgICAgX2xhc3RTZW50TWF4aW11bVVub2JzY3VyZWRTaXplID0gbmV3TWF4aW11bVVub2JzY3Vy
ZWRTaXplOwogICAgIF9sYXN0U2VudERldmljZU9yaWVudGF0aW9uID0gbmV3T3JpZW50YXRpb247
CiAKLSAgICBfcGFnZS0+ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShuZXdWaWV3TGF5b3V0U2l6
ZSwgbmV3TWF4aW11bVVub2JzY3VyZWRTaXplLCB2aXNpYmxlUmVjdEluQ29udGVudENvb3JkaW5h
dGVzLCB1bm9ic2N1cmVkUmVjdEluQ29udGVudENvb3JkaW5hdGVzLCBmdXR1cmVVbm9ic2N1cmVk
UmVjdEluU2VsZkNvb3JkaW5hdGVzLCB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHNFeHRlbnQsIHRh
cmdldFNjYWxlLCBuZXdPcmllbnRhdGlvbiwgbmV3TWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRo
LCArK19jdXJyZW50RHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKTsKKyAgICBfcGFnZS0+ZHlu
YW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShuZXdWaWV3TGF5b3V0U2l6ZSwgbmV3TWluaW11bVVub2Jz
Y3VyZWRTaXplLCBuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUsIHZpc2libGVSZWN0SW5Db250ZW50
Q29vcmRpbmF0ZXMsIHVub2JzY3VyZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMsIGZ1dHVyZVVu
b2JzY3VyZWRSZWN0SW5TZWxmQ29vcmRpbmF0ZXMsIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0c0V4
dGVudCwgdGFyZ2V0U2NhbGUsIG5ld09yaWVudGF0aW9uLCBuZXdNaW5pbXVtRWZmZWN0aXZlRGV2
aWNlV2lkdGgsICsrX2N1cnJlbnREeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpOwogICAgIGlm
IChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVhID0gX3BhZ2UtPmRyYXdpbmdB
cmVhKCkpCiAgICAgICAgIGRyYXdpbmdBcmVhLT5zZXRTaXplKFdlYkNvcmU6OkludFNpemUobmV3
Qm91bmRzLnNpemUpKTsKIApAQCAtMzI2OCwxMiArMzMxMCwxNCBAQCAtICh2b2lkKV9vdmVycmlk
ZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6KENHU2l6ZSltaW5pbXVtTGF5
b3V0U2l6ZQogICAgICAgICBSRUxFQVNFX0xPR19GQVVMVChWaXNpYmxlUmVjdHMsICIlczogRXJy
b3I6IGF0dGVtcHRpbmcgdG8gb3ZlcnJpZGUgbGF5b3V0IHBhcmFtZXRlcnMgd2l0aCBuZWdhdGl2
ZSB3aWR0aCBvciBoZWlnaHQ6ICVAIiwgX19QUkVUVFlfRlVOQ1RJT05fXywgTlNTdHJpbmdGcm9t
Q0dTaXplKG1pbmltdW1MYXlvdXRTaXplKSk7CiAKICAgICBbc2VsZiBfc2V0Vmlld0xheW91dFNp
emVPdmVycmlkZTpDR1NpemVNYWtlKHN0ZDo6bWF4PENHRmxvYXQ+KDAsIG1pbmltdW1MYXlvdXRT
aXplLndpZHRoKSwgc3RkOjptYXg8Q0dGbG9hdD4oMCwgbWluaW11bUxheW91dFNpemUuaGVpZ2h0
KSldOworICAgIFtzZWxmIF9zZXRNaW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTptaW5pbXVt
TGF5b3V0U2l6ZV07CiAgICAgW3NlbGYgX3NldE1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRl
Om1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlXTsKIH0KIAogLSAodm9pZClfY2xlYXJPdmVy
cmlkZUxheW91dFBhcmFtZXRlcnMKIHsKICAgICBfdmlld0xheW91dFNpemVPdmVycmlkZSA9IHN0
ZDo6bnVsbG9wdDsKKyAgICBfbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUgPSBzdGQ6Om51
bGxvcHQ7CiAgICAgX21heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlID0gc3RkOjpudWxsb3B0
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAzODJi
NTNlZjdlOTc2Y2JiZjJhNDliODM4YjdiYTYxZmQyNDY3YWIyLi45Mzk3Zjc4YmU2ZTBmMDQ1YzQ4
YTQ0NDM5ZTE1NjRmZDFhMWZlODVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKQEAgLTgyNDAsNiArODI0MCw3IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMg
V2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAg
ICAgcGFyYW1ldGVycy5vdmVycmlkZVNjcmVlblNpemUgPSBvdmVycmlkZVNjcmVlblNpemUoKTsK
ICAgICBwYXJhbWV0ZXJzLnRleHRBdXRvc2l6aW5nV2lkdGggPSB0ZXh0QXV0b3NpemluZ1dpZHRo
KCk7CiAgICAgcGFyYW1ldGVycy5taW1lVHlwZXNXaXRoQ3VzdG9tQ29udGVudFByb3ZpZGVycyA9
IHBhZ2VDbGllbnQoKS5taW1lVHlwZXNXaXRoQ3VzdG9tQ29udGVudFByb3ZpZGVycygpOworICAg
IHBhcmFtZXRlcnMubWluaW11bVVub2JzY3VyZWRTaXplID0gbV9taW5pbXVtVW5vYnNjdXJlZFNp
emU7CiAgICAgcGFyYW1ldGVycy5tYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBtX21heGltdW1Vbm9i
c2N1cmVkU2l6ZTsKICAgICBwYXJhbWV0ZXJzLmRldmljZU9yaWVudGF0aW9uID0gbV9kZXZpY2VP
cmllbnRhdGlvbjsKICAgICBwYXJhbWV0ZXJzLmtleWJvYXJkSXNBdHRhY2hlZCA9IGlzSW5IYXJk
d2FyZUtleWJvYXJkTW9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCAyYWVlMDg0Yzc2NjE4YmNmNzI1NmMxZmQ4MWMxYzgyYjJiMDQ2Njk2Li5hMzQ2YTY4OTMz
ODI5ZTBkZGYwM2YwNjcyYTUxNDIwZGU1ZWU4NzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtODE3LDkgKzgxNywxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3Jv
bGxpbmdOb2RlU2Nyb2xsV2lsbFN0YXJ0U2Nyb2xsKCk7CiAgICAgdm9pZCBzY3JvbGxpbmdOb2Rl
U2Nyb2xsRGlkRW5kU2Nyb2xsKCk7CiAKLSAgICB2b2lkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRh
dGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVu
b2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
Qm94RXh0ZW50JiB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSB0YXJnZXRTY2FsZSwg
aW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgZG91YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VX
aWR0aCwgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKTsKKyAgICB2b2lkIGR5bmFtaWNWaWV3
cG9ydFNpemVVcGRhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtaW5pbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJn
ZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpG
bG9hdEJveEV4dGVudCYgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0U2Nh
bGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2
aWNlV2lkdGgsIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCk7CiAKICAgICB2b2lkIHNldFZp
ZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYsIGRvdWJsZSBzY2FsZUZhY3RvciwgZG91YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0
aCk7CisgICAgdm9pZCBzZXRNaW5pbXVtVW5vYnNjdXJlZFNpemUoY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJik7CisgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbWluaW11bVVub2JzY3VyZWRTaXplOyB9CiAgICAgdm9pZCBzZXRN
YXhpbXVtVW5vYnNjdXJlZFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgV2Vi
Q29yZTo6RmxvYXRTaXplIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bWF4aW11bVVub2JzY3VyZWRTaXplOyB9CiAgICAgdm9pZCBzZXREZXZpY2VPcmllbnRhdGlvbihp
bnQzMl90KTsKQEAgLTI5ODAsNiArMjk4Miw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICBGdW5jdGlvbjxib29sKCk+IG1fZGV2aWNlT3JpZW50YXRpb25Vc2VyUGVy
bWlzc2lvbkhhbmRsZXJGb3JUZXN0aW5nOwogICAgIGJvb2wgbV93YWl0aW5nRm9yUG9zdExheW91
dEVkaXRvclN0YXRlVXBkYXRlQWZ0ZXJGb2N1c2luZ0VsZW1lbnQgeyBmYWxzZSB9OworICAgIFdl
YkNvcmU6OkZsb2F0U2l6ZSBtX21pbmltdW1Vbm9ic2N1cmVkU2l6ZTsKICAgICBXZWJDb3JlOjpG
bG9hdFNpemUgbV9tYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgYm9vbCBtX2xhc3RPYnNlcnZl
ZFN0YXRlV2FzQmFja2dyb3VuZCB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IDRjNzM4YmE4MjYxODMyNjQ3
ZTE2NTczMzlhODlhMDBjMGUwMTU3NGIuLmI0NjNjNTVlYjEwOWQ0YjZkMmFkZDFlODg0ODExNThh
MzBjNzVmNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdl
UHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94
eUlPUy5tbQpAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzY3JvbGxpbmdO
b2RlU2Nyb2xsRGlkRW5kU2Nyb2xsKCkKICAgICBwYWdlQ2xpZW50KCkuc2Nyb2xsaW5nTm9kZVNj
cm9sbERpZEVuZFNjcm9sbCgpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZHluYW1pY1ZpZXdw
b3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0
YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJl
ZFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdD
b29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHVub2JzY3VyZWRTYWZl
QXJlYUluc2V0cywgZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9u
LCBkb3VibGUgbWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCBEeW5hbWljVmlld3BvcnRTaXpl
VXBkYXRlSUQgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKQordm9pZCBXZWJQYWdlUHJveHk6
OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6
ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtaW5pbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBGbG9hdFJl
Y3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRVbm9i
c2N1cmVkUmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xs
Vmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdW5vYnNjdXJl
ZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0U2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50
YXRpb24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsIER5bmFtaWNWaWV3cG9y
dFNpemVVcGRhdGVJRCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpCiB7CiAgICAgaWYgKCFo
YXNSdW5uaW5nUHJvY2VzcygpKQogICAgICAgICByZXR1cm47CkBAIC0yNzMsNyArMjczLDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRT
aXplJiB2aWV3TGF5b3V0U2l6ZSwgY28KIAogICAgIG1fdmlld3BvcnRDb25maWd1cmF0aW9uVmll
d0xheW91dFNpemUgPSB2aWV3TGF5b3V0U2l6ZTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUodmlld0xheW91dFNpemUsCi0g
ICAgICAgIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCB0
YXJnZXRVbm9ic2N1cmVkUmVjdCwKKyAgICAgICAgbWluaW11bVVub2JzY3VyZWRTaXplLCBtYXhp
bXVtVW5vYnNjdXJlZFNpemUsIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgdGFyZ2V0VW5vYnNj
dXJlZFJlY3QsCiAgICAgICAgIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRp
bmF0ZXMsIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywKICAgICAgICAgdGFyZ2V0U2NhbGUsIGRl
dmljZU9yaWVudGF0aW9uLCBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsIGR5bmFtaWNWaWV3
cG9ydFNpemVVcGRhdGVJRCksIG1fd2ViUGFnZUlEKTsKIApAQCAtMzAwLDYgKzMwMCwxNCBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6c2V0Rm9yY2VBbHdheXNVc2VyU2NhbGFibGUoYm9vbCB1c2VyU2Nh
bGFibGUpCiAgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0Rm9y
Y2VBbHdheXNVc2VyU2NhbGFibGUodXNlclNjYWxhYmxlKSwgbV93ZWJQYWdlSUQpOwogfQogCit2
b2lkIFdlYlBhZ2VQcm94eTo6c2V0TWluaW11bVVub2JzY3VyZWRTaXplKGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgc2l6ZSkKK3sKKyAgICBtX21pbmltdW1Vbm9ic2N1cmVkU2l6ZSA9IHNpemU7
CisKKyAgICBpZiAoaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAgbV9wcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRNaW5pbXVtVW5vYnNjdXJlZFNpemUoc2l6ZSksIG1fd2Vi
UGFnZUlEKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnNldE1heGltdW1Vbm9ic2N1cmVkU2l6
ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUpCiB7CiAgICAgbV9tYXhpbXVtVW5vYnNj
dXJlZFNpemUgPSBzaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggOTlh
NTFhYjVmZWFhZTQ3OWEwM2EzZDU4MWM4ODk0NzBiMDBlZTljMi4uYjBhOWI4OTg4NjlhNTFlZDQ5
ZDNmZjUwMTc1Y2I3ZDMyY2EyN2U5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CkBAIC0xNTU3LDcgKzE1NTcsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0
aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICB9CiAKICAgICBpZiAoYXV0byB2aWV3cG9y
dFNpemVGb3JWaWV3cG9ydFVuaXRzID0gd2ViUGFnZS0+dmlld3BvcnRTaXplRm9yQ1NTVmlld3Bv
cnRVbml0cygpKQotICAgICAgICB2aWV3LT5zZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVu
aXRzKCp2aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzKTsKKyAgICAgICAgdmlldy0+c2V0U2l6
ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygqdmlld3BvcnRTaXplRm9yVmlld3BvcnRVbml0cyk7
CiAgICAgdmlldy0+c2V0UHJvaGliaXRzU2Nyb2xsaW5nKHNob3VsZERpc2FibGVTY3JvbGxpbmcp
OwogICAgIHZpZXctPnNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQoIXdlYlBhZ2UtPnNo
b3VsZEV4dGVuZEluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb24oKSk7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IGMxODY2YTI1YmI5ZDQ3NjcxMTA4YzQwOWE4ZjJmNGIzM2FhYTM3ZjcuLmE4MzBhYTNm
OTlmMjc1ZDEwYzRlZWE2NjE1ZGNmZWYzNWNhMjg3YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC04NjgsNiArODY4LDcgQEAgV2ViUGFnZTo6
V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMm
JiBwYXJhbWV0ZXJzKQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBzZXRWaWV3cG9y
dENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZShwYXJhbWV0ZXJzLnZpZXdwb3J0Q29uZmlndXJh
dGlvblZpZXdMYXlvdXRTaXplLCBwYXJhbWV0ZXJzLnZpZXdwb3J0Q29uZmlndXJhdGlvbkxheW91
dFNpemVTY2FsZUZhY3RvciwgcGFyYW1ldGVycy52aWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVt
RWZmZWN0aXZlRGV2aWNlV2lkdGgpOworICAgIHNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZShwYXJh
bWV0ZXJzLm1pbmltdW1Vbm9ic2N1cmVkU2l6ZSk7CiAgICAgc2V0TWF4aW11bVVub2JzY3VyZWRT
aXplKHBhcmFtZXRlcnMubWF4aW11bVVub2JzY3VyZWRTaXplKTsKICNlbmRpZgogCkBAIC02MjYw
LDcgKzYyNjEsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0
VW5pdHMoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPgogCiAgICAgbV92aWV3cG9ydFNp
emVGb3JDU1NWaWV3cG9ydFVuaXRzID0gdmlld3BvcnRTaXplOwogICAgIGlmIChtX3ZpZXdwb3J0
U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpCi0gICAgICAgIGNvcmVQYWdlKCktPm1haW5GcmFtZSgp
LnZpZXcoKS0+c2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygqbV92aWV3cG9ydFNp
emVGb3JDU1NWaWV3cG9ydFVuaXRzKTsKKyAgICAgICAgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCku
dmlldygpLT5zZXRTaXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKCptX3ZpZXdwb3J0U2l6ZUZv
ckNTU1ZpZXdwb3J0VW5pdHMpOwogfQogCiBib29sIFdlYlBhZ2U6OmlzU21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApp
bmRleCBhMmJhMjMwNjEwMThkN2UwNjQ2ZmNhYjlmMGY2Mzc0ZjBjNGU5ZDU3Li41Y2Q3MzE1NDA0
N2JjMTg5NTFjZmUwMjBmNGE0Zjc2MGQ0Y2Y0ZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMDgxLDkgKzEwODEsMTAgQEAgcHVibGljOgogICAg
IHZvaWQgdXBkYXRlVmlzaWJpbGl0eVN0YXRlKGJvb2wgaXNJbml0aWFsU3RhdGUgPSBmYWxzZSk7
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2V0TWluaW11bVVub2JzY3Vy
ZWRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwogICAgIHZvaWQgc2V0TWF4aW11bVVu
b2JzY3VyZWRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwogICAgIHZvaWQgc2V0RGV2
aWNlT3JpZW50YXRpb24oaW50MzJfdCk7Ci0gICAgdm9pZCBkeW5hbWljVmlld3BvcnRTaXplVXBk
YXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRV
bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9h
dEJveEV4dGVudCYgdGFyZ2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2NhbGUs
IGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2aWNl
V2lkdGgsIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCk7CisgICAgdm9pZCBkeW5hbWljVmll
d3BvcnRTaXplVXBkYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWluaW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFy
Z2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6
RmxvYXRCb3hFeHRlbnQmIHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHNj
YWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCBkb3VibGUgbWluaW11bUVmZmVjdGl2ZURl
dmljZVdpZHRoLCBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpOwogICAgIGJvb2wgc2NhbGVX
YXNTZXRCeVVJUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fc2NhbGVXYXNTZXRCeVVJUHJvY2Vz
czsgfQogICAgIHZvaWQgd2lsbFN0YXJ0VXNlclRyaWdnZXJlZFpvb21pbmcoKTsKICAgICB2b2lk
IGFwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZSgpOwpAQCAtMjI1OCw2ICsyMjU5LDcgQEAgcHJp
dmF0ZToKIAogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2ltcGxlUmFuZ2U+IG1faW5pdGlh
bFNlbGVjdGlvbjsKICAgICBXZWJDb3JlOjpWaXNpYmxlU2VsZWN0aW9uIG1fc3RvcmVkU2VsZWN0
aW9uRm9yQWNjZXNzaWJpbGl0eSB7IFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb24oKSB9OworICAg
IFdlYkNvcmU6OkZsb2F0U2l6ZSBtX21pbmltdW1Vbm9ic2N1cmVkU2l6ZTsKICAgICBXZWJDb3Jl
OjpGbG9hdFNpemUgbV9tYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgaW50MzJfdCBtX2Rldmlj
ZU9yaWVudGF0aW9uIHsgMCB9OwogICAgIGJvb2wgbV9rZXlib2FyZElzQXR0YWNoZWQgeyBmYWxz
ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KaW5kZXggOWViNzEyMTJiZWQ3YjA1NmQ2YzYzNGE5M2ZiNmU5ZTJmMmVmZTUx
OS4uMzhjZTQ1NzBjOThhOGI3YTkyYTEwMzhhMjE1NWExYjI3ZWE0MTg0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBA
IC01MywxMCArNTMsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAg
ICAgTW91c2VFdmVudChXZWJLaXQ6OldlYk1vdXNlRXZlbnQgZXZlbnQsIHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gc2FuZGJveEV4dGVuc2lv
bnMpCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBTZXRWaWV3cG9ydENvbmZpZ3VyYXRp
b25WaWV3TGF5b3V0U2l6ZShXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSwgZG91YmxlIHNjYWxlRmFj
dG9yLCBkb3VibGUgbWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoKQorICAgIFNldE1pbmltdW1V
bm9ic2N1cmVkU2l6ZShXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSkKICAgICBTZXRNYXhpbXVtVW5v
YnNjdXJlZFNpemUoV2ViQ29yZTo6RmxvYXRTaXplIHNpemUpCiAgICAgU2V0RGV2aWNlT3JpZW50
YXRpb24oaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbikKICAgICBTZXRPdmVycmlkZVZpZXdwb3J0
QXJndW1lbnRzKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM+IGFyZ3Vt
ZW50cykKLSAgICBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKFdlYkNvcmU6OkZsb2F0U2l6ZSB2
aWV3TGF5b3V0U2l6ZSwgV2ViQ29yZTo6RmxvYXRTaXplIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwg
V2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgV2ViQ29yZTo6Rmxv
YXRSZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0VW5v
YnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgV2ViQ29yZTo6UmVjdEVkZ2VzPGZs
b2F0PiB0YXJnZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSBzY2FsZSwgaW50MzJf
dCBkZXZpY2VPcmllbnRhdGlvbiwgZG91YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCwg
dWludDY0X3QgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKQorICAgIER5bmFtaWNWaWV3cG9y
dFNpemVVcGRhdGUoV2ViQ29yZTo6RmxvYXRTaXplIHZpZXdMYXlvdXRTaXplLCBXZWJDb3JlOjpG
bG9hdFNpemUgbWluaW11bVVub2JzY3VyZWRTaXplLCBXZWJDb3JlOjpGbG9hdFNpemUgbWF4aW11
bVVub2JzY3VyZWRTaXplLCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0RXhwb3NlZENvbnRlbnRS
ZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIFdlYkNvcmU6OkZs
b2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBXZWJD
b3JlOjpSZWN0RWRnZXM8ZmxvYXQ+IHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91
YmxlIHNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCBkb3VibGUgbWluaW11bUVmZmVj
dGl2ZURldmljZVdpZHRoLCB1aW50NjRfdCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpCiAg
ICAgCiAgICAgU2V0U2NyZWVuSXNCZWluZ0NhcHR1cmVkKGJvb2wgY2FwdHVyZWQpCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5k
ZXggZTdlNjJmMzRkMTAyYjI5MGMxNDk4YjA3ZmI1YjRhY2QwYjY1MmE5MS4uZTczNjdhYWRmYjEz
OGFmOTIwYTcxNzA0ZjYxNDBkNDg3ZjFiZGE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTM0MzQsNiArMzQzNCwxMiBA
QCB2b2lkIFdlYlBhZ2U6OnNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKGNv
bnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZG91YgogICAgIHZpZXdwb3J0Q29uZmlndXJhdGlvbkNoYW5n
ZWQoem9vbVRvSW5pdGlhbFNjYWxlKTsKIH0KIAordm9pZCBXZWJQYWdlOjpzZXRNaW5pbXVtVW5v
YnNjdXJlZFNpemUoY29uc3QgRmxvYXRTaXplJiBtaW5pbXVtVW5vYnNjdXJlZFNpemUpCit7Cisg
ICAgbV9taW5pbXVtVW5vYnNjdXJlZFNpemUgPSBtaW5pbXVtVW5vYnNjdXJlZFNpemU7CisgICAg
dXBkYXRlVmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpOworfQorCiB2b2lkIFdlYlBh
Z2U6OnNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZShjb25zdCBGbG9hdFNpemUmIG1heGltdW1Vbm9i
c2N1cmVkU2l6ZSkKIHsKICAgICBtX21heGltdW1Vbm9ic2N1cmVkU2l6ZSA9IG1heGltdW1Vbm9i
c2N1cmVkU2l6ZTsKQEAgLTM0NTMsNyArMzQ1OSw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0T3ZlcnJp
ZGVWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlZpZXdwb3J0
CiAgICAgbV9wYWdlLT5zZXRPdmVycmlkZVZpZXdwb3J0QXJndW1lbnRzKGFyZ3VtZW50cyk7CiB9
CiAKLXZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNp
emUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9i
c2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3Qg
V2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywg
ZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCBkb3VibGUgbWlu
aW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQgZHlu
YW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKQordm9pZCBXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRT
aXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgbWluaW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRFeHBvc2Vk
Q29udGVudFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29y
ZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHRhcmdldFVub2JzY3VyZWRT
YWZlQXJlYUluc2V0cywgZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0
aW9uLCBkb3VibGUgbWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCBEeW5hbWljVmlld3BvcnRT
aXplVXBkYXRlSUQgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKQogewogICAgIFNldEZvclNj
b3BlPGJvb2w+IGR5bmFtaWNTaXplVXBkYXRlR3VhcmQobV9pbkR5bmFtaWNTaXplVXBkYXRlLCB0
cnVlKTsKICAgICAvLyBGSVhNRTogdGhpcyBkb2VzIG5vdCBoYW5kbGUgdGhlIGNhc2VzIHdoZXJl
IHRoZSBjb250ZW50IHdvdWxkIGNoYW5nZSB0aGUgY29udGVudCBzaXplIG9yIHNjcm9sbCBwb3Np
dGlvbiBmcm9tIEphdmFTY3JpcHQuCkBAIC0zNTAxLDYgKzM1MDcsNyBAQCB2b2lkIFdlYlBhZ2U6
OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6
ZSwgY29uc3QgVwogICAgIGlmIChzZXRGaXhlZExheW91dFNpemUobmV3TGF5b3V0U2l6ZSkpCiAg
ICAgICAgIHJlc2V0VGV4dEF1dG9zaXppbmcoKTsKIAorICAgIHNldE1pbmltdW1Vbm9ic2N1cmVk
U2l6ZShtaW5pbXVtVW5vYnNjdXJlZFNpemUpOwogICAgIHNldE1heGltdW1Vbm9ic2N1cmVkU2l6
ZShtYXhpbXVtVW5vYnNjdXJlZFNpemUpOwogICAgIG1fcGFnZS0+c2V0VW5vYnNjdXJlZFNhZmVB
cmVhSW5zZXRzKHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cyk7CiAKQEAgLTM4NDcsMTMg
KzM4NTQsMTkgQEAgdm9pZCBXZWJQYWdlOjp2aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2VkKFpv
b21Ub0luaXRpYWxTY2FsZSB6b29tVG9Jbml0aWFsU2NhbGUKIAogdm9pZCBXZWJQYWdlOjp1cGRh
dGVWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkKIHsKKyAgICBGbG9hdFNpemUgc21h
bGxlc3RVbm9ic2N1cmVkU2l6ZSA9IG1fbWluaW11bVVub2JzY3VyZWRTaXplOworICAgIGlmIChz
bWFsbGVzdFVub2JzY3VyZWRTaXplLmlzRW1wdHkoKSkKKyAgICAgICAgc21hbGxlc3RVbm9ic2N1
cmVkU2l6ZSA9IG1fdmlld3BvcnRDb25maWd1cmF0aW9uLnZpZXdMYXlvdXRTaXplKCk7CisKICAg
ICBGbG9hdFNpemUgbGFyZ2VzdFVub2JzY3VyZWRTaXplID0gbV9tYXhpbXVtVW5vYnNjdXJlZFNp
emU7CiAgICAgaWYgKGxhcmdlc3RVbm9ic2N1cmVkU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIGxh
cmdlc3RVbm9ic2N1cmVkU2l6ZSA9IG1fdmlld3BvcnRDb25maWd1cmF0aW9uLnZpZXdMYXlvdXRT
aXplKCk7CiAKICAgICBGcmFtZVZpZXcmIGZyYW1lVmlldyA9ICptYWluRnJhbWVWaWV3KCk7Cisg
ICAgc21hbGxlc3RVbm9ic2N1cmVkU2l6ZS5zY2FsZSgxIC8gbV92aWV3cG9ydENvbmZpZ3VyYXRp
b24uaW5pdGlhbFNjYWxlSWdub3JpbmdDb250ZW50U2l6ZSgpKTsKICAgICBsYXJnZXN0VW5vYnNj
dXJlZFNpemUuc2NhbGUoMSAvIG1fdmlld3BvcnRDb25maWd1cmF0aW9uLmluaXRpYWxTY2FsZUln
bm9yaW5nQ29udGVudFNpemUoKSk7Ci0gICAgZnJhbWVWaWV3LnNldFZpZXdwb3J0U2l6ZUZvckNT
U1ZpZXdwb3J0VW5pdHMocm91bmRlZEludFNpemUobGFyZ2VzdFVub2JzY3VyZWRTaXplKSk7Cisg
ICAgZnJhbWVWaWV3LnNldFNpemVGb3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMocm91bmRlZEludFNp
emUoc21hbGxlc3RVbm9ic2N1cmVkU2l6ZSkpOworICAgIGZyYW1lVmlldy5zZXRTaXplRm9yQ1NT
TGFyZ2VWaWV3cG9ydFVuaXRzKHJvdW5kZWRJbnRTaXplKGxhcmdlc3RVbm9ic2N1cmVkU2l6ZSkp
OwogfQogCiB2b2lkIFdlYlBhZ2U6OmFwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZSgpCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjAzNmNlODdl
ODZmODRiNDVjNGU2YTdkMjdkYjNiN2FmZDBkMmUwOC4uZjI4ZDdiM2MxMjJiMzc1NTBlOTVhMzA5
MjdiOWRkOWM4OTMwN2JkNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTEwLTEyICBEZXZpbiBSb3Vzc28gIDxk
cm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbY3NzLXZhbHVlcy00XSBTdXBwb3J0IHNtYWxs
IChzdiopLCBsYXJnZSAobHYqKSBhbmQgZHluYW1pYyAoZHYqKSB2aWV3cG9ydCB1bml0cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5Mjg3CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83MTg1NzM3MD4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1v
biBGcmFzZXIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NT
U1ZpZXdwb3J0VW5pdHMubW06IEFkZGVkLgorICAgICAgICAoZXZhbHVhdGVGb3JJbnQpOgorICAg
ICAgICAoZ2V0RWxlbWVudEhlaWdodCk6CisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5pdHMu
QWxsU2FtZSk6CisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5pdHMuRW1wdHlVbm9ic2N1cmVk
U2l6ZU92ZXJyaWRlcyk6CisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5pdHMuU2FtZVVub2Jz
Y3VyZWRTaXplT3ZlcnJpZGVzKToKKyAgICAgICAgKFRFU1QuQ1NTVmlld3BvcnRVbml0cy5EaWZm
ZXJlbnRVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlcyk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9DU1NWaWV3cG9ydFVuaXRzLmh0bWw6IEFkZGVkLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Zsb2F0U2l6ZVRlc3RzLmNwcDoKKyAgICAg
ICAgKFRFU1QuRmxvYXRTaXplLk1pbkRpbWVuc2lvbik6IEFkZGVkLgorICAgICAgICAoVEVTVC5G
bG9hdFNpemUuTWF4RGltZW5zaW9uKTogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0ludFNpemVUZXN0cy5jcHA6CisgICAgICAgIChURVNULkludFNpemUuTWlu
RGltZW5zaW9uKTogQWRkZWQuCisgICAgICAgIChURVNULkludFNpemUuTWF4RGltZW5zaW9uKTog
QWRkZWQuCisgICAgICAgIEFkZCB1dGlsaXR5L2hlbHBlciBtZXRob2RzIGZvciByZXR1cm5pbmcg
dGhlIG1pbmltdW0vbWF4aW11bSBvZiB0aGUgd2lkdGggdnMgaGVpZ2h0LgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisK
IDIwMjEtMTAtMTkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBGaXggaU9TIEFQSSB0ZXN0cyBhZnRlciByMjg0MzA0CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGMxNzkxNjc2YjU4YTU5NGFhMGVmOGIzNDRkYmExYzUwYmMyZDZjMWIuLjk0
ZjA2MzE4ODhjYjgyMDQ5NGQwZjlmZTUxOTcyMDMwYmUzNjBmZDggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC04OTMsNiArODkzLDggQEAKIAkJOTNGQ0RCMzQyNjM2MzE1NjAwNDZERDdEIC8q
IFNvcnRlZEFycmF5TWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzRkNEQjMzMjYzNjMxNTYwMDQ2REQ3RCAvKiBTb3J0ZWRBcnJheU1hcC5jcHAg
Ki87IH07CiAJCTk1MDk1RjIwMjYyRkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRvcENvbG9y
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwOTVG
MUYyNjJGRkZBNTAwMDBEOTIwIC8qIFNhbXBsZWRQYWdlVG9wQ29sb3IubW0gKi87IH07CiAJCTk1
MEU0Q0MxMjUyRTc1MjQwMDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBwb3J0Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwRTRDQzAyNTJFNzUyMzAwNzE2
NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gKi87IH07CisJCTk1MkY3MTY1MjcwQkQ5N0UwMEQw
MERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTUyRjcxNjQyNzBCRDk3RTAwRDAwRENDIC8qIENTU1ZpZXdwb3J0
VW5pdHMubW0gKi87IH07CisJCTk1MkY3MTY3MjcwQkQ5Q0IwMEQwMERDQyAvKiBDU1NWaWV3cG9y
dFVuaXRzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTUyRjcxNjYyNzBCRDk5NzAwRDAwRENDIC8qIENTU1ZpZXdwb3J0VW5pdHMuaHRt
bCAqLzsgfTsKIAkJOTUzQUJCMzUyNUMwRDY4MjAwNEM4QjczIC8qIFdLV2ViVmlld1VuZGVyUGFn
ZUJhY2tncm91bmRDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk1M0FCQjM0MjVDMEQ2ODEwMDRDOEI3MyAvKiBXS1dlYlZpZXdVbmRlclBhZ2VC
YWNrZ3JvdW5kQ29sb3IubW0gKi87IH07CiAJCTk1OEI3MEUxMjZDNDZFREMwMEIyMDIyQiAvKiBO
U0F0dHJpYnV0ZWRTdHJpbmdXZWJLaXRBZGRpdGlvbnMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NThCNzBFMDI2QzQ2RURDMDBCMjAyMkIgLyogTlNB
dHRyaWJ1dGVkU3RyaW5nV2ViS2l0QWRkaXRpb25zLm1tICovOyB9OwogCQk5NUE1MjQ5NTI1ODFB
MTBEMDA0NjFGRTkgLyogV0tXZWJWaWV3VGhlbWVDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QTUyNDk0MjU4MUExMEQwMDQ2MUZFOSAvKiBX
S1dlYlZpZXdUaGVtZUNvbG9yLm1tICovOyB9OwpAQCAtMTQ2Niw2ICsxNDY4LDcgQEAKIAkJCQk5
QjYyNjMwQzFGOEMyNUM4MDA3RUUyOUIgLyogY29weS11cmwuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQk3QUVBRDQ4MTFFMjAxMjI3MDA0MTZFRkUgLyogQ3Jvc3NQYXJ0aXRpb25GaWxl
U2NoZW1lQWNjZXNzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNDk5NUE2RjAyNUU4
NzcyMDAwRTVGMEE5IC8qIGNzcC1kb2N1bWVudC11cmktcmVwb3J0Lmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCisJCQkJOTUyRjcxNjcyNzBCRDlDQjAwRDAwRENDIC8qIENTU1ZpZXdwb3J0VW5p
dHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkyRERENERBNDI3MEI4QjM1MDA2NTlB
NjEgLyogY3ViZS51c2R6IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0QUI1NzhBMUY2NTE2
NTQwMERCMERBMSAvKiBjdXN0b20tZHJhZ2dhYmxlLWRpdi5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCTI5MEY0Mjc1MTcyQTIyMUMwMDkzOUZGMCAvKiBjdXN0b20tcHJvdG9jb2wtc3lu
Yy14aHIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTI2NDEsNiArMjY0NCw4IEBACiAJ
CTkzRkNEQjMzMjYzNjMxNTYwMDQ2REQ3RCAvKiBTb3J0ZWRBcnJheU1hcC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb3J0ZWRBcnJheU1hcC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MDk1RjFGMjYyRkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVk
UGFnZVRvcENvbG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
U2FtcGxlZFBhZ2VUb3BDb2xvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUw
RTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBpT1NTdHlsdXNTdXBwb3J0Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5NTJGNzE2NDI3MEJEOTdFMDBEMDBEQ0MgLyogQ1NTVmll
d3BvcnRVbml0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENT
U1ZpZXdwb3J0VW5pdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MkY3MTY2
MjcwQkQ5OTcwMEQwMERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBDU1NW
aWV3cG9ydFVuaXRzLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1M0FCQjM0
MjVDMEQ2ODEwMDRDOEI3MyAvKiBXS1dlYlZpZXdVbmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3IubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdVbmRlclBh
Z2VCYWNrZ3JvdW5kQ29sb3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1OEI3
MEUwMjZDNDZFREMwMEIyMDIyQiAvKiBOU0F0dHJpYnV0ZWRTdHJpbmdXZWJLaXRBZGRpdGlvbnMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOU0F0dHJpYnV0ZWRT
dHJpbmdXZWJLaXRBZGRpdGlvbnMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1
QTUyNDk0MjU4MUExMEQwMDQ2MUZFOSAvKiBXS1dlYlZpZXdUaGVtZUNvbG9yLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3VGhlbWVDb2xvci5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM0OTQsNiArMzQ5OSw3IEBACiAJCQkJMUM3
OTIwMUIyMzRCREQ5QjAwMUVBRjIzIC8qIENvcHlSVEYubW0gKi8sCiAJCQkJOUI3QTM3QzIxRjhB
RUJBNTAwNEFBMjI4IC8qIENvcHlVUkwubW0gKi8sCiAJCQkJNTEwQTkyMUQyNERCMzhFRDAwQkZE
ODlDIC8qIENyZWF0ZVdlYkFyY2hpdmUubW0gKi8sCisJCQkJOTUyRjcxNjQyNzBCRDk3RTAwRDAw
RENDIC8qIENTU1ZpZXdwb3J0VW5pdHMubW0gKi8sCiAJCQkJNDZBOTExNTgyMTA4RTY2QjAwNzhE
NDBEIC8qIEN1c3RvbVVzZXJBZ2VudC5tbSAqLywKIAkJCQkyREM0Q0Y3NjFEMkQ5REQ4MDBFQ0ND
OTQgLyogRGF0YURldGVjdGlvbi5tbSAqLywKIAkJCQk1MThFRTUxQzIwQTc4RDMzMDBFMDI0RjMg
LyogRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbi5tbSAqLywKQEAgLTQwNTcsNiArNDA2
Myw3IEBACiAJCQkJOUIxMDU2NDIxRjkwNDdDQzAwRDU1ODNGIC8qIGNvcHktaHRtbC5odG1sICov
LAogCQkJCTlCNjI2MzBCMUY4QzI1MTAwMDdFRTI5QiAvKiBjb3B5LXVybC5odG1sICovLAogCQkJ
CTQ5OTVBNkVGMjVFODc2QTMwMEU1RjBBOSAvKiBjc3AtZG9jdW1lbnQtdXJpLXJlcG9ydC5odG1s
ICovLAorCQkJCTk1MkY3MTY2MjcwQkQ5OTcwMEQwMERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLmh0
bWwgKi8sCiAJCQkJRjRBQjU3ODkxRjY1MTY0QjAwREIwREExIC8qIGN1c3RvbS1kcmFnZ2FibGUt
ZGl2Lmh0bWwgKi8sCiAJCQkJRjQ3REZCMjQyMUE4NzA0QTAwMDIxRkI2IC8qIGRhdGEtZGV0ZWN0
b3JzLmh0bWwgKi8sCiAJCQkJRjQ4NkIxQ0YxRjY3OTRGRjAwRjM0QkREIC8qIERhdGFUcmFuc2Zl
ci1zZXREcmFnSW1hZ2UuaHRtbCAqLywKQEAgLTU1MDYsNiArNTUxMyw3IEBACiAJCQkJNTEwQTky
MUUyNERCMzhGMzAwQkZEODlDIC8qIENyZWF0ZVdlYkFyY2hpdmUubW0gaW4gU291cmNlcyAqLywK
IAkJCQk3QUVBRDQ3RjFFMjAxMTZDMDA0MTZFRkUgLyogQ3Jvc3NQYXJ0aXRpb25GaWxlU2NoZW1l
QWNjZXNzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFREIxQTQxMUE5MjAwNDQ3QzRDIC8q
IENTU1BhcnNlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5NTJGNzE2NTI3MEJEOTdFMDBEMDBE
Q0MgLyogQ1NTVmlld3BvcnRVbml0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU3NTg1OTdGMjNB
MjUyN0EwMEM3NDU3MiAvKiBDdGFwUGluVGVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1NzJC
NDAzNDIxNzY5QTg4MDAwQUQ0M0UgLyogQ3RhcFJlcXVlc3RUZXN0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTU3MkI0MDQ0MjE3ODFCNDMwMDBBRDQzRSAvKiBDdGFwUmVzcG9uc2VUZXN0LmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0Zsb2F0U2l6ZVRlc3RzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9GbG9hdFNpemVUZXN0cy5jcHAKaW5kZXggNzU2ZTc2ZjFkYmFjOWU2OGM4NjNiY2Q1ZjJmOWNi
M2NhNmI2ZTFlZC4uMjY3MWI4NzhiMWYxODk5Mzk5ODMyYjZiNWNlZmU5NzEwMWFiNTIwYSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Zsb2F0U2l6ZVRlc3Rz
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmxvYXRTaXplVGVz
dHMuY3BwCkBAIC05Myw2ICs5MywyOCBAQCBURVNUKEZsb2F0U2l6ZSwgSW50U2l6ZUNvbnN0cnVj
dGlvbikKICAgICB0ZXN0R2V0QW5kU2V0KHRlc3QpOwogfQogCitURVNUKEZsb2F0U2l6ZSwgTWlu
RGltZW5zaW9uKQoreworICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSB0ZXN0KDEwMjQuMGYsIDc2OC4w
Zik7CisKKyAgICBFWFBFQ1RfRkxPQVRfRVEoNzY4LjBmLCB0ZXN0Lm1pbkRpbWVuc2lvbigpKTsK
KworICAgIHRlc3Quc2NhbGUoMS4wZiwgMi4wZik7CisKKyAgICBFWFBFQ1RfRkxPQVRfRVEoMTAy
NC4wZiwgdGVzdC5taW5EaW1lbnNpb24oKSk7Cit9CisKK1RFU1QoRmxvYXRTaXplLCBNYXhEaW1l
bnNpb24pCit7CisgICAgV2ViQ29yZTo6RmxvYXRTaXplIHRlc3QoMTAyNC4wZiwgNzY4LjBmKTsK
KworICAgIEVYUEVDVF9GTE9BVF9FUSgxMDI0LjBmLCB0ZXN0Lm1heERpbWVuc2lvbigpKTsKKwor
ICAgIHRlc3Quc2NhbGUoMS4wZiwgMi4wZik7CisKKyAgICBFWFBFQ1RfRkxPQVRfRVEoMTUzNi4w
ZiwgdGVzdC5tYXhEaW1lbnNpb24oKSk7Cit9CisKIFRFU1QoRmxvYXRTaXplLCBTY2FsZSkKIHsK
ICAgICBXZWJDb3JlOjpGbG9hdFNpemUgdGVzdCgxMDI0LjBmLCA3NjguMGYpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ludFNpemVUZXN0cy5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSW50U2l6ZVRlc3RzLmNwcAppbmRleCA2
MjJmMGE4OGNkZGFlYWRiZTZiZDQ1NmM1NmU4YzRkODIyOWY1ZGJmLi40NGJhMzQ3OTFmYjRmM2Iy
YTk3MTVhZGFhODdlZDg0MWYxYWVjYmEzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvSW50U2l6ZVRlc3RzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvSW50U2l6ZVRlc3RzLmNwcApAQCAtOTMsNiArOTMsMjggQEAgVEVTVChJ
bnRTaXplLCBGbG9hdFNpemVDb25zdHJ1Y3Rpb24pCiAgICAgdGVzdEdldEFuZFNldCh0ZXN0KTsK
IH0KIAorVEVTVChJbnRTaXplLCBNaW5EaW1lbnNpb24pCit7CisgICAgV2ViQ29yZTo6SW50U2l6
ZSB0ZXN0KDEwMjQsIDc2OCk7CisKKyAgICBFWFBFQ1RfRVEoNzY4LCB0ZXN0Lm1pbkRpbWVuc2lv
bigpKTsKKworICAgIHRlc3Quc2NhbGUoMS4wZiwgMi4wZik7CisKKyAgICBFWFBFQ1RfRVEoMTAy
NCwgdGVzdC5taW5EaW1lbnNpb24oKSk7Cit9CisKK1RFU1QoSW50U2l6ZSwgTWF4RGltZW5zaW9u
KQoreworICAgIFdlYkNvcmU6OkludFNpemUgdGVzdCgxMDI0LCA3NjgpOworCisgICAgRVhQRUNU
X0VRKDEwMjQsIHRlc3QubWF4RGltZW5zaW9uKCkpOworCisgICAgdGVzdC5zY2FsZSgxLjBmLCAy
LjBmKTsKKworICAgIEVYUEVDVF9FUSgxNTM2LCB0ZXN0Lm1heERpbWVuc2lvbigpKTsKK30KKwog
VEVTVChJbnRTaXplLCBEaWFnb25hbExlbmd0aEFuZEFyZWEpCiB7CiAgICAgV2ViQ29yZTo6SW50
U2l6ZSB0ZXN0KDEwMjQsIDc2OCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0NTU1ZpZXdwb3J0VW5pdHMuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvQ1NTVmlld3BvcnRVbml0cy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQw
MmFhMDU4OGRjZDZlZTI3NjZjYmMwNzkyNjU5OTNjODQ4ZWVjZTcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NTU1ZpZXdwb3J0VW5pdHMu
aHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxoZWFkPgorICAgIDxtZXRh
IG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2Nh
bGU9MSI+CisKKyAgICA8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDA7Cit9CitkaXYgewor
ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICB3aWR0aDogMXB4OworfQorICAgIDwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJ2dyIgc3R5bGU9ImhlaWdodDogMTAw
dnc7Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJ2aCIgc3R5bGU9ImhlaWdodDogMTAwdmg7Ij48L2Rp
dj4KKyAgICA8ZGl2IGlkPSJ2bWluIiBzdHlsZT0iaGVpZ2h0OiAxMDB2bWluOyI+PC9kaXY+Cisg
ICAgPGRpdiBpZD0idm1heCIgc3R5bGU9ImhlaWdodDogMTAwdm1heDsiPjwvZGl2PgorCisgICAg
PGRpdiBpZD0ic3Z3IiBzdHlsZT0iaGVpZ2h0OiAxMDBzdnc7Ij48L2Rpdj4KKyAgICA8ZGl2IGlk
PSJzdmgiIHN0eWxlPSJoZWlnaHQ6IDEwMHN2aDsiPjwvZGl2PgorICAgIDxkaXYgaWQ9InN2bWlu
IiBzdHlsZT0iaGVpZ2h0OiAxMDBzdm1pbjsiPjwvZGl2PgorICAgIDxkaXYgaWQ9InN2bWF4IiBz
dHlsZT0iaGVpZ2h0OiAxMDBzdm1heDsiPjwvZGl2PgorCisgICAgPGRpdiBpZD0ibHZ3IiBzdHls
ZT0iaGVpZ2h0OiAxMDBsdnc7Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJsdmgiIHN0eWxlPSJoZWln
aHQ6IDEwMGx2aDsiPjwvZGl2PgorICAgIDxkaXYgaWQ9Imx2bWluIiBzdHlsZT0iaGVpZ2h0OiAx
MDBsdm1pbjsiPjwvZGl2PgorICAgIDxkaXYgaWQ9Imx2bWF4IiBzdHlsZT0iaGVpZ2h0OiAxMDBs
dm1heDsiPjwvZGl2PgorCisgICAgPGRpdiBpZD0iZHZ3IiBzdHlsZT0iaGVpZ2h0OiAxMDBkdnc7
Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJkdmgiIHN0eWxlPSJoZWlnaHQ6IDEwMGR2aDsiPjwvZGl2
PgorICAgIDxkaXYgaWQ9ImR2bWluIiBzdHlsZT0iaGVpZ2h0OiAxMDBkdm1pbjsiPjwvZGl2Pgor
ICAgIDxkaXYgaWQ9ImR2bWF4IiBzdHlsZT0iaGVpZ2h0OiAxMDBkdm1heDsiPjwvZGl2PgorPC9i
b2R5PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9D
U1NWaWV3cG9ydFVuaXRzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9DU1NWaWV3cG9ydFVuaXRzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1N2ZhODQwODNkOTA5ZTE2NjBhNWEw
MmNjNzI2N2NjZDJhZmRlZjIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0NTU1ZpZXdwb3J0VW5pdHMubW0KQEAgLTAsMCArMSwxNjMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMu
aCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQ
cml2YXRlLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK3N0YXRpYyBpbnQgZXZhbHVh
dGVGb3JJbnQoV0tXZWJWaWV3ICp3ZWJWaWV3LCBOU1N0cmluZyAqc2NyaXB0KQoreworICAgIHJl
dHVybiBbKE5TTnVtYmVyICopW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpz
Y3JpcHRdIGludFZhbHVlXTsKK30KKworc3RhdGljIGludCBnZXRFbGVtZW50SGVpZ2h0KFdLV2Vi
VmlldyAqd2ViVmlldywgTlNTdHJpbmcgKmVsZW1lbnRJRCkKK3sKKyAgICByZXR1cm4gZXZhbHVh
dGVGb3JJbnQod2ViVmlldywgW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnJUAnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQiLCBlbGVt
ZW50SURdKTsKK30KKworVEVTVChDU1NWaWV3cG9ydFVuaXRzLCBBbGxTYW1lKQoreworICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
OkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNs
eUxvYWRUZXN0UGFnZU5hbWVkOkAiQ1NTVmlld3BvcnRVbml0cyJdOworCisgICAgRVhQRUNUX0VR
KDMyMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZ3IikpOworICAgIEVYUEVD
VF9FUSg1MDAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2aCIpKTsKKyAgICBF
WFBFQ1RfRVEoMzIwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidm1pbiIpKTsK
KyAgICBFWFBFQ1RfRVEoNTAwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidm1h
eCIpKTsKKworICAgIEVYUEVDVF9FUSgzMjAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQo
KSwgQCJzdnciKSk7CisgICAgRVhQRUNUX0VRKDUwMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3
LmdldCgpLCBAInN2aCIpKTsKKyAgICBFWFBFQ1RfRVEoMzIwLCBnZXRFbGVtZW50SGVpZ2h0KHdl
YlZpZXcuZ2V0KCksIEAic3ZtaW4iKSk7CisgICAgRVhQRUNUX0VRKDUwMCwgZ2V0RWxlbWVudEhl
aWdodCh3ZWJWaWV3LmdldCgpLCBAInN2bWF4IikpOworCisgICAgRVhQRUNUX0VRKDMyMCwgZ2V0
RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2dyIpKTsKKyAgICBFWFBFQ1RfRVEoNTAw
LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZoIikpOworICAgIEVYUEVDVF9F
USgzMjAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdm1pbiIpKTsKKyAgICBF
WFBFQ1RfRVEoNTAwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZtYXgiKSk7
CisKKyAgICBpbnQgaW5uZXJXaWR0aCA9IGV2YWx1YXRlRm9ySW50KHdlYlZpZXcuZ2V0KCksIEAi
d2luZG93LmlubmVyV2lkdGgiKTsKKyAgICBpbnQgaW5uZXJIZWlnaHQgPSBldmFsdWF0ZUZvcklu
dCh3ZWJWaWV3LmdldCgpLCBAIndpbmRvdy5pbm5lckhlaWdodCIpOworICAgIEVYUEVDVF9FUShp
bm5lcldpZHRoLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZ3IikpOworICAg
IEVYUEVDVF9FUShpbm5lckhlaWdodCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBA
ImR2aCIpKTsKKyAgICBFWFBFQ1RfRVEoaW5uZXJXaWR0aCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJW
aWV3LmdldCgpLCBAImR2bWluIikpOworICAgIEVYUEVDVF9FUShpbm5lckhlaWdodCwgZ2V0RWxl
bWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImR2bWF4IikpOworfQorCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKworVEVTVChDU1NWaWV3cG9ydFVuaXRzLCBFbXB0eVVub2JzY3VyZWRTaXpl
T3ZlcnJpZGVzKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAg
W3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpD
R1NpemVNYWtlKDEwLCAyMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGltdW1V
bm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZVplcm9dOworICAgIFt3ZWJWaWV3IHN5bmNocm9u
b3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAIkNTU1ZpZXdwb3J0VW5pdHMiXTsKKworICAgIEVYUEVD
VF9FUSgxMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZ3IikpOworICAgIEVY
UEVDVF9FUSgyMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZoIikpOworICAg
IEVYUEVDVF9FUSgxMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZtaW4iKSk7
CisgICAgRVhQRUNUX0VRKDIwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidm1h
eCIpKTsKKworICAgIEVYUEVDVF9FUSgxMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgp
LCBAInN2dyIpKTsKKyAgICBFWFBFQ1RfRVEoMjAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5n
ZXQoKSwgQCJzdmgiKSk7CisgICAgRVhQRUNUX0VRKDEwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZp
ZXcuZ2V0KCksIEAic3ZtaW4iKSk7CisgICAgRVhQRUNUX0VRKDIwLCBnZXRFbGVtZW50SGVpZ2h0
KHdlYlZpZXcuZ2V0KCksIEAic3ZtYXgiKSk7CisKKyAgICBFWFBFQ1RfRVEoMTAsIGdldEVsZW1l
bnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdnciKSk7CisgICAgRVhQRUNUX0VRKDIwLCBnZXRF
bGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZoIikpOworICAgIEVYUEVDVF9FUSgxMCwg
Z2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2bWluIikpOworICAgIEVYUEVDVF9F
USgyMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2bWF4IikpOworCisgICAg
aW50IGlubmVyV2lkdGggPSBldmFsdWF0ZUZvckludCh3ZWJWaWV3LmdldCgpLCBAIndpbmRvdy5p
bm5lcldpZHRoIik7CisgICAgaW50IGlubmVySGVpZ2h0ID0gZXZhbHVhdGVGb3JJbnQod2ViVmll
dy5nZXQoKSwgQCJ3aW5kb3cuaW5uZXJIZWlnaHQiKTsKKyAgICBFWFBFQ1RfRVEoaW5uZXJXaWR0
aCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImR2dyIpKTsKKyAgICBFWFBFQ1Rf
RVEoaW5uZXJIZWlnaHQsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJkdmgiKSk7
CisgICAgRVhQRUNUX0VRKGlubmVyV2lkdGgsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQo
KSwgQCJkdm1pbiIpKTsKKyAgICBFWFBFQ1RfRVEoaW5uZXJIZWlnaHQsIGdldEVsZW1lbnRIZWln
aHQod2ViVmlldy5nZXQoKSwgQCJkdm1heCIpKTsKK30KKworVEVTVChDU1NWaWV3cG9ydFVuaXRz
LCBTYW1lVW5vYnNjdXJlZFNpemVPdmVycmlkZXMpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAw
LCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0
aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMTAsIDIwKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgxMCwg
MjApXTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJDU1NW
aWV3cG9ydFVuaXRzIl07CisKKyAgICBFWFBFQ1RfRVEoMTAsIGdldEVsZW1lbnRIZWlnaHQod2Vi
Vmlldy5nZXQoKSwgQCJ2dyIpKTsKKyAgICBFWFBFQ1RfRVEoMjAsIGdldEVsZW1lbnRIZWlnaHQo
d2ViVmlldy5nZXQoKSwgQCJ2aCIpKTsKKyAgICBFWFBFQ1RfRVEoMTAsIGdldEVsZW1lbnRIZWln
aHQod2ViVmlldy5nZXQoKSwgQCJ2bWluIikpOworICAgIEVYUEVDVF9FUSgyMCwgZ2V0RWxlbWVu
dEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZtYXgiKSk7CisKKyAgICBFWFBFQ1RfRVEoMTAsIGdl
dEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJzdnciKSk7CisgICAgRVhQRUNUX0VRKDIw
LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAic3ZoIikpOworICAgIEVYUEVDVF9F
USgxMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInN2bWluIikpOworICAgIEVY
UEVDVF9FUSgyMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInN2bWF4IikpOwor
CisgICAgRVhQRUNUX0VRKDEwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZ3
IikpOworICAgIEVYUEVDVF9FUSgyMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBA
Imx2aCIpKTsKKyAgICBFWFBFQ1RfRVEoMTAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQo
KSwgQCJsdm1pbiIpKTsKKyAgICBFWFBFQ1RfRVEoMjAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmll
dy5nZXQoKSwgQCJsdm1heCIpKTsKKworICAgIGludCBpbm5lcldpZHRoID0gZXZhbHVhdGVGb3JJ
bnQod2ViVmlldy5nZXQoKSwgQCJ3aW5kb3cuaW5uZXJXaWR0aCIpOworICAgIGludCBpbm5lckhl
aWdodCA9IGV2YWx1YXRlRm9ySW50KHdlYlZpZXcuZ2V0KCksIEAid2luZG93LmlubmVySGVpZ2h0
Iik7CisgICAgRVhQRUNUX0VRKGlubmVyV2lkdGgsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5n
ZXQoKSwgQCJkdnciKSk7CisgICAgRVhQRUNUX0VRKGlubmVySGVpZ2h0LCBnZXRFbGVtZW50SGVp
Z2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZoIikpOworICAgIEVYUEVDVF9FUShpbm5lcldpZHRoLCBn
ZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZtaW4iKSk7CisgICAgRVhQRUNUX0VR
KGlubmVySGVpZ2h0LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZtYXgiKSk7
Cit9CisKK1RFU1QoQ1NTVmlld3BvcnRVbml0cywgRGlmZmVyZW50VW5vYnNjdXJlZFNpemVPdmVy
cmlkZXMpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2Vi
VmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6
ZU1ha2UoMTAsIDIwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11bVVub2Jz
Y3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgzMCwgNDApXTsKKyAgICBbd2ViVmlldyBzeW5j
aHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJDU1NWaWV3cG9ydFVuaXRzIl07CisKKyAgICBF
WFBFQ1RfRVEoMzAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2dyIpKTsKKyAg
ICBFWFBFQ1RfRVEoNDAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2aCIpKTsK
KyAgICBFWFBFQ1RfRVEoMzAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2bWlu
IikpOworICAgIEVYUEVDVF9FUSg0MCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBA
InZtYXgiKSk7CisKKyAgICBFWFBFQ1RfRVEoMTAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5n
ZXQoKSwgQCJzdnciKSk7CisgICAgRVhQRUNUX0VRKDIwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZp
ZXcuZ2V0KCksIEAic3ZoIikpOworICAgIEVYUEVDVF9FUSgxMCwgZ2V0RWxlbWVudEhlaWdodCh3
ZWJWaWV3LmdldCgpLCBAInN2bWluIikpOworICAgIEVYUEVDVF9FUSgyMCwgZ2V0RWxlbWVudEhl
aWdodCh3ZWJWaWV3LmdldCgpLCBAInN2bWF4IikpOworCisgICAgRVhQRUNUX0VRKDMwLCBnZXRF
bGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZ3IikpOworICAgIEVYUEVDVF9FUSg0MCwg
Z2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2aCIpKTsKKyAgICBFWFBFQ1RfRVEo
MzAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdm1pbiIpKTsKKyAgICBFWFBF
Q1RfRVEoNDAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdm1heCIpKTsKKwor
ICAgIGludCBpbm5lcldpZHRoID0gZXZhbHVhdGVGb3JJbnQod2ViVmlldy5nZXQoKSwgQCJ3aW5k
b3cuaW5uZXJXaWR0aCIpOworICAgIGludCBpbm5lckhlaWdodCA9IGV2YWx1YXRlRm9ySW50KHdl
YlZpZXcuZ2V0KCksIEAid2luZG93LmlubmVySGVpZ2h0Iik7CisgICAgRVhQRUNUX0VRKGlubmVy
V2lkdGgsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJkdnciKSk7CisgICAgRVhQ
RUNUX0VRKGlubmVySGVpZ2h0LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZo
IikpOworICAgIEVYUEVDVF9FUShpbm5lcldpZHRoLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcu
Z2V0KCksIEAiZHZtaW4iKSk7CisgICAgRVhQRUNUX0VRKGlubmVySGVpZ2h0LCBnZXRFbGVtZW50
SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZtYXgiKSk7Cit9CisKKyNlbmRpZiAvLyBQTEFURk9S
TShJT1NfRkFNSUxZKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441918</attachid>
            <date>2021-10-20 12:44:39 -0700</date>
            <delta_ts>2021-10-21 11:18:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219287-20211020124438.patch</filename>
            <type>text/plain</type>
            <size>99053</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2ZTQ0MTA5Y2Q4NGFhNjQ1MDEwMjUyNGJhZDFmZmZhNGYyZjRmMjA0Li5h
YmQ3MTk0YzNhMGIxNjcxZWYxMTkzMjYzMTE2NmEwZmY3OWExYzBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTE0IEBACisyMDIxLTEwLTEyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KKworICAgICAgICBbY3NzLXZhbHVlcy00XSBTdXBwb3J0IHNtYWxsIChzdiopLCBsYXJnZSAo
bHYqKSBhbmQgZHluYW1pYyAoZHYqKSB2aWV3cG9ydCB1bml0cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5Mjg3CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTg1NzM3MD4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAg
ICAgICAgU3BlYzogPGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTQvI3ZpZXdw
b3J0LXZhcmlhbnRzPgorCisgICAgICAgIFRlc3RzOiBDU1NWaWV3cG9ydFVuaXRzLkFsbFNhbWUK
KyAgICAgICAgICAgICAgIENTU1ZpZXdwb3J0VW5pdHMuRW1wdHlVbm9ic2N1cmVkU2l6ZU92ZXJy
aWRlcworICAgICAgICAgICAgICAgQ1NTVmlld3BvcnRVbml0cy5TYW1lVW5vYnNjdXJlZFNpemVP
dmVycmlkZXMKKyAgICAgICAgICAgICAgIENTU1ZpZXdwb3J0VW5pdHMuRGlmZmVyZW50VW5vYnNj
dXJlZFNpemVPdmVycmlkZXMKKworICAgICAgICAqIGNzcy9DU1NVbml0cy5oOgorICAgICAgICAq
IGNzcy9DU1NVbml0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAg
ICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjppc1ZpZXdwb3J0UGVyY2VudGFnZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNWaWV3cG9ydFBlcmNlbnRhZ2VXaWR0aCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNWaWV3cG9ydFBlcmNlbnRh
Z2VIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
OmlzVmlld3BvcnRQZXJjZW50YWdlTWF4KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1ByaW1pdGl2ZVZhbHVlOjppc1ZpZXdwb3J0UGVyY2VudGFnZU1pbik6IERlbGV0ZWQuCisgICAg
ICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFs
aWRDU1NVbml0VHlwZUZvckRvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6aXNT
dHJpbmdUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjbGVhbnVw
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlVW56b29tZWRO
b25DYWxjTGVuZ3RoRG91YmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
Ojpjb21wdXRlTm9uQ2FsY0xlbmd0aERvdWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6dW5pdFR5cGVTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmZvcm1hdE51bWJlckZvckN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmVxdWFscyBjb25zdCk6CisgICAgICAgICogY3Nz
L0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaDoKKyAgICAgICAgKiBjc3MvQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhOjpkZWZhdWx0Vmlld3BvcnRGYWN0b3IgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OnNtYWxsVmlld3BvcnRGYWN0b3IgY29u
c3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6
OmxhcmdlVmlld3BvcnRGYWN0b3IgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OmR5bmFtaWNWaWV3cG9ydEZhY3RvciBjb25zdCk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6dmlld3Bv
cnRXaWR0aEZhY3RvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhOjp2aWV3cG9ydEhlaWdodEZhY3RvciBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjp2aWV3cG9ydE1p
bkZhY3RvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhOjp2aWV3cG9ydE1heEZhY3RvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjc3NQ
cmltaXRpdmVWYWx1ZVVuaXRGcm9tVHJpZSk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzOjpjb25zdW1lTGVuZ3RoUmF3V2l0aEtub3duVG9rZW5UeXBlRGltZW5zaW9uKToK
KyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjQ2F0ZWdvcnlNYXBwaW5nLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNhbGNVbml0Q2F0ZWdvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Y2FsY3VsYXRp
b25DYXRlZ29yeUZvckNvbWJpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc0RvdWJsZVZh
bHVlKToKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgdGhlIGZvbGxvd2luZyBhbmQg
Y29udmVydGluZyB0aGVtIHRvIHRoZWlyIHVuZGVybHlpbmcgdmFsdWU6CisgICAgICAgIC0gYHN2
d2AgInNtYWxsIHZpZXdwb3J0IHdpZHRoIiBpcyB0aGUgd2lkdGggb2YgdGhlIHZpZXdwb3J0IGlm
IGFsbCBVQSBpbnRlcmZhY2VzIGFyZSBtYXhpbWl6ZWQKKyAgICAgICAgLSBgc3ZoYCAic21hbGwg
dmlld3BvcnQgaGVpZ2h0IiBpcyB0aGUgaGVpZ2h0IG9mIHRoZSB2aWV3cG9ydCBpZiBhbGwgVUEg
aW50ZXJmYWNlcyBhcmUgbWF4aW1pemVkCisgICAgICAgIC0gYHN2bWluYCAic21hbGwgdmlld3Bv
cnQgc21hbGwgZGltZW5zaW9uIiBpcyBgbWluKHN2dywgc3ZoKWAKKyAgICAgICAgLSBgc3ZtYXhg
ICJzbWFsbCB2aWV3cG9ydCBsYXJnZSBkaW1lbnNpb24iIGlzIGBtYXgoc3Z3LCBzdmgpYAorICAg
ICAgICAtIGBsdndgICJsYXJnZSB2aWV3cG9ydCB3aWR0aCIgaXMgdGhlIHdpZHRoIG9mIHRoZSB2
aWV3cG9ydCBpZiBhbGwgVUEgaW50ZXJmYWNlcyBhcmUgbWluaW1pemVkCisgICAgICAgIC0gYGx2
aGAgImxhcmdlIHZpZXdwb3J0IGhlaWdodCIgaXMgdGhlIGhlaWdodCBvZiB0aGUgdmlld3BvcnQg
aWYgYWxsIFVBIGludGVyZmFjZXMgYXJlIG1pbmltaXplZAorICAgICAgICAtIGBsdm1pbmAgImxh
cmdlIHZpZXdwb3J0IHNtYWxsIGRpbWVuc2lvbiIgaXMgYG1pbihsdncsIGx2aClgCisgICAgICAg
IC0gYGx2bWF4YCAibGFyZ2Ugdmlld3BvcnQgbGFyZ2UgZGltZW5zaW9uIiBpcyBgbWF4KGx2dywg
bHZoKWAKKyAgICAgICAgLSBgZHZ3YCAiZHluYW1pYyB2aWV3cG9ydCB3aWR0aCIgaXMgdGhlIHdp
ZHRoIG9mIHRoZSB2aWV3cG9ydCB3aXRoIGFsbCBVQSBpbnRlcmZhY2VzIGJlaW5nIGluIHdoYXRl
dmVyIHN0YXRlIHRoZXkgYXJlIGN1cnJlbnRseSBpbgorICAgICAgICAtIGBkdmhgICJkeW5hbWlj
IHZpZXdwb3J0IGhlaWdodCIgaXMgdGhlIGhlaWdodCBvZiB0aGUgdmlld3BvcnQgd2l0aCBhbGwg
VUEgaW50ZXJmYWNlcyBiZWluZyBpbiB3aGF0ZXZlciBzdGF0ZSB0aGV5IGFyZSBjdXJyZW50bHkg
aW4KKyAgICAgICAgLSBgZHZtaW5gICJkeW5hbWljIHZpZXdwb3J0IHNtYWxsIGRpbWVuc2lvbiIg
aXMgYG1pbihkdncsIGR2aClgCisgICAgICAgIC0gYGR2bWF4YCAiZHluYW1pYyB2aWV3cG9ydCBs
YXJnZSBkaW1lbnNpb24iIGlzIGBtYXgoZHZ3LCBkdmgpYAorICAgICAgICBUaGUgZXhpc3Rpbmcg
YHZ3YC9gdmhgL2B2bWluYC9gdm1heGAgY29ycmVzcG9uZCB0byB0aGUgIlVBLWRlZmF1bHQgdmll
d3BvcnQiLCB3aGljaCBXZWJLaXQKKyAgICAgICAgY29uc2lkZXJzIGVxdWl2YWxlbnQgdG8gdGhl
ICJsYXJnZSB2aWV3cG9ydCIgYGx2d2AvYGx2aGAvYGx2bWluYC9gbHZtYXhgLgorCisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnVub2JzY3VyZWRDb250ZW50U2l6ZUNoYW5nZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpwZXJmb3JtU2l6ZVRvQ29udGVudEF1dG9TaXpl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZW5hYmxlQXV0b1NpemVNb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y2xlYXJTaXplT3ZlcnJpZGVGb3JDU1NTbWFsbFZp
ZXdwb3J0VW5pdHMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0U2l6
ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVWaWV3OjpvdmVycmlkZVdpZHRoRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnJlc2V0T3ZlcnJpZGRlbldpZHRoRm9yQ1NTU21h
bGxWaWV3cG9ydFVuaXRzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6Om92
ZXJyaWRlU2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cyk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3OjpzaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzIGNvbnN0KTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmNsZWFyU2l6ZU92ZXJyaWRlRm9yQ1NT
TGFyZ2VWaWV3cG9ydFVuaXRzKTogUmVuYW1lZCBmcm9tIGBjbGVhclZpZXdwb3J0U2l6ZU92ZXJy
aWRlRm9yQ1NTVmlld3BvcnRVbml0c2AuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNl
dFNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMpOiBSZW5hbWVkIGZyb20gYHNldFZpZXdwb3J0
U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHNgLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpv
dmVycmlkZVdpZHRoRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKTogUmVuYW1lZCBmcm9tIGBvdmVy
cmlkZVZpZXdwb3J0V2lkdGhGb3JDU1NWaWV3cG9ydFVuaXRzYC4KKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6cmVzZXRPdmVycmlkZGVuV2lkdGhGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMp
OiBSZW5hbWVkIGZyb20gYHJlc2V0T3ZlcnJpZGRlblZpZXdwb3J0V2lkdGhGb3JDU1NWaWV3cG9y
dFVuaXRzYC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6b3ZlcnJpZGVTaXplRm9yQ1NT
TGFyZ2VWaWV3cG9ydFVuaXRzKTogUmVuYW1lZCBmcm9tIGBvdmVycmlkZVZpZXdwb3J0U2l6ZUZv
ckNTU1ZpZXdwb3J0VW5pdHNgLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzaXplRm9y
Q1NTTGFyZ2VWaWV3cG9ydFVuaXRzIGNvbnN0KTogUmVuYW1lZCBmcm9tIGB2aWV3cG9ydFNpemVG
b3JDU1NWaWV3cG9ydFVuaXRzYC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y2FsY3Vs
YXRlU2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHNPdmVycmlkZSBjb25zdCk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMgY29u
c3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2l6ZUZvckNTU0RlZmF1
bHRWaWV3cG9ydFVuaXRzIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJWaWV3OjpzaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzIGNvbnN0KTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpzaXplRm9yQ1NTTGFyZ2VWaWV3
cG9ydFVuaXRzIGNvbnN0KTogUmVuYW1lZCBmcm9tIGB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9y
dFVuaXRzYC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnNpemVGb3JDU1NEeW5hbWlj
Vmlld3BvcnRVbml0cyBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmll
dzo6c2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzIGNvbnN0KTogQWRkZWQuCisgICAgICAg
IEZvciAic21hbGwgdmlld3BvcnQiIGBzdndgL2BzdmhgL2Bzdm1pbmAvYHN2bWF4YCwgYWRkIHN1
cHBvcnQgZm9yIGEgbmV3IGBJbnRTaXplYCBtZW1iZXIKKyAgICAgICAgdGhhdCBpcyBwcm9wYWdh
dGVkIGZyb20gdGhlIFVJUHJvY2Vzcy4gSWYgbm90IHNldCwgZmFsbCBiYWNrIHRvICJVQS1kZWZh
dWx0IHZpZXdwb3J0IiBgdndgL2B2aGAvYHZtaW5gL2B2bWF4YC4KKyAgICAgICAgRm9yICJsYXJn
ZSB2aWV3cG9ydCIgYGx2d2AvYGx2aGAvYGx2bWluYC9gbHZtYXhgLCB1c2UgdGhlIHNhbWUgdmFs
dWUgYXMgIlVBLWRlZmF1bHQgdmlld3BvcnQiIGB2d2AvYHZoYC9gdm1pbmAvYHZtYXhgLgorICAg
ICAgICBGb3IgImR5bmFtaWMgdmlld3BvcnQiIGBkdndgL2BkdmhgL2Bkdm1pbmAvYGR2bWF4YCwg
dXNlIHRoZSBzYW1lIHZhbHVlIGFzIGB3aW5kb3cuaW5uZXIqYC4KKyAgICAgICAgRHJpdmUtYnk6
IFJlbmFtZSBgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0c2AgdG8gYHNpemVGb3JDU1NM
YXJnZVZpZXdwb3J0VW5pdHNgIGZvciBjbGFyaXR5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvRmxvYXRTaXplLmg6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFNpemU6Om1pbkRpbWVu
c2lvbiBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRTaXplOjptYXhEaW1l
bnNpb24gY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRTaXpl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnRTaXplOjptaW5EaW1lbnNpb24gY29uc3QpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkludFNpemU6Om1heERpbWVuc2lvbiBjb25zdCk6IEFkZGVk
LgorICAgICAgICBBZGQgdXRpbGl0eS9oZWxwZXIgbWV0aG9kcyBmb3IgcmV0dXJuaW5nIHRoZSBt
aW5pbXVtL21heGltdW0gb2YgdGhlIHdpZHRoIHZzIGhlaWdodC4KKworICAgICAgICAqIGNzcy9E
ZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXBy
ZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6cHJpbWl0aXZlVHlwZSBjb25zdCk6CisgICAgICAg
IERvbid0IGBBU1NFUlRfTk9UX1JFQUNIRURgIG5vdyB0aGF0IHRoZXJlIGFyZSBuZXcgdW5pdCB0
eXBlcy4KKwogMjAyMS0xMC0xOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgR3VhcmFudGVlIG9yZGVyIG9mIFdlYlNvY2tldCBldmVudHMgaW4gY2FzZSBvZiBi
ZWluZyByZXN1bWVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBiYTkxNDNlMWJlMGY3ZDI3
OTZjMTliZmJmMzc1MjljOTU3ZmRlNjQ2Li5mZjIzY2E2YTlmODYyYzUyOGYwMjQ4NDk3OTEwYmE2
ZTI3YmZhZjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAy
MS0xMC0xMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW2Nz
cy12YWx1ZXMtNF0gU3VwcG9ydCBzbWFsbCAoc3YqKSwgbGFyZ2UgKGx2KikgYW5kIGR5bmFtaWMg
KGR2Kikgdmlld3BvcnQgdW5pdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxOTI4NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzE4NTczNzA+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Nb2RlbHMvQ1NTQ29tcGxldGlvbnMuanM6CisKIDIwMjEtMTAtMTggIERhdmlkIEtpbHpl
ciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUg
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5zcGVj
dG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qcy5vcmlnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdmYjZjNmE5YTQ0ZDhl
MjMzY2RkN2U5MzVlYTQ5YWM3N2QzNDgyZTAuLmY0NjZmNzU3YzUzNjJhZjY4NTYyZDkzZDE0MDM4
MTYxMGJiN2Q4ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMjEtMTAtMTIgIERldmlu
IFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtjc3MtdmFsdWVzLTRdIFN1
cHBvcnQgc21hbGwgKHN2KiksIGxhcmdlIChsdiopIGFuZCBkeW5hbWljIChkdiopIHZpZXdwb3J0
IHVuaXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTkyODcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxODU3MzcwPgorCisgICAgICAgIFJldmll
d2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBTcGVjOiA8aHR0cHM6Ly9kcmFmdHMuY3Nz
d2cub3JnL2Nzcy12YWx1ZXMtNC8jdmlld3BvcnQtdmFyaWFudHM+CisKKyAgICAgICAgVGVzdHM6
IENTU1ZpZXdwb3J0VW5pdHMuQWxsU2FtZQorICAgICAgICAgICAgICAgQ1NTVmlld3BvcnRVbml0
cy5FbXB0eVVub2JzY3VyZWRTaXplT3ZlcnJpZGVzCisgICAgICAgICAgICAgICBDU1NWaWV3cG9y
dFVuaXRzLlNhbWVVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlcworICAgICAgICAgICAgICAgQ1NTVmll
d3BvcnRVbml0cy5EaWZmZXJlbnRVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlcworCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvaW9zL1dLV2ViVmlld0lPUy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9wcm9jZXNzV2ls
bFN3YXBPckRpZEV4aXRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaXNwYXRjaFNldE1pbmlt
dW1Vbm9ic2N1cmVkU2l6ZTpdKTogQWRkZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBfZnJhbWVP
ckJvdW5kc0NoYW5nZWRdKToKKyAgICAgICAgKGFjdGl2ZU1pbmltdW1Vbm9ic2N1cmVkU2l6ZSk6
IEFkZGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RpZENvbXBsZXRlQW5pbWF0ZWRSZXNpemVd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9taW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZV0p
OiBBZGRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRNaW5pbXVtVW5vYnNjdXJlZFNpemVP
dmVycmlkZTpdKTogQWRkZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBfYmVnaW5BbmltYXRlZFJl
c2l6ZVdpdGhVcGRhdGVzOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX292ZXJyaWRlTGF5b3V0
UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTptYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVy
cmlkZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9jbGVhck92ZXJyaWRlTGF5b3V0UGFyYW1l
dGVyc10pOgorICAgICAgICBXaGVuIHRoaXMgdmFsdWUgaXMgc2V0IGZyb20gYC1bV0tXZWJWaWV3
IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6bWF4aW11bVVu
b2JzY3VyZWRTaXplT3ZlcnJpZGU6XWAKKyAgICAgICAgaXQgc2hvdWxkIGJlIHVzZWQgYXMgdGhl
IHZhbHVlIGZvciAic21hbGwgdmlld3BvcnQiIGBzdndgL2BzdmhgL2Bzdm1pbmAvYHN2bWF4YCwg
YnV0IG9ubHkKKyAgICAgICAgZnJvbSB0aGF0IGNvZGVwYXRoLiBEeW5hbWljIHZpZXdwb3J0IGNo
YW5nZXMgc2hvdWxkIG5vdCB1cGRhdGUgaXQgYXMgdGhleSBkb24ndCBuZWNlc3NhcmlseQorICAg
ICAgICByZXByZXNlbnQgYSBjaGFuZ2UgaW4gdGhlIG1pbmltdW0vbWF4aW11bSB2aWV3cG9ydCBz
aXplLCBqdXN0IHRoZSBjdXJyZW50IHNpemUuCisgICAgICAgICJsYXJnZSB2aWV3cG9ydCIgYGx2
d2AvYGx2aGAvYGx2bWluYC9gbHZtYXhgIGFuZCAiZHluYW1pYyB2aWV3cG9ydCIgYGR2d2AvYGR2
aGAvYGR2bWluYC9gZHZtYXhgCisgICAgICAgIChhcyB3ZWxsIGFzIHRoZSBleGlzdGluZyAiVUEt
ZGVmYXVsdCB2aWV3cG9ydCIgYHZ3YC9gdmhgL2B2bWluYC9gdm1heGApIGNhbiBiZSBkZXJpdmVk
IGZyb20KKyAgICAgICAgZXhpc3RpbmcgbG9naWMuCisgICAgICAgIFNlZSB0aGUgV2ViQ29yZSBD
aGFuZ2VMb2cgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
czo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6
ZGVjb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkeW5hbWljVmlld3Bv
cnRTaXplVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRNaW5pbXVt
VW5vYnNjdXJlZFNpemUpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnNldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
c2V0TWluaW11bVVub2JzY3VyZWRTaXplKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
Ojp1cGRhdGVWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKToKKyAgICAgICAgQWRkIHBp
cGluZyBmcm9tIHRoZSBVSVByb2Nlc3MgdG8gdGhlIFdlYlByb2Nlc3MgZm9yIHRoZSBuZXcgbWlu
aW11bSB1bm9ic2N1cmVkIHNpemUgb3ZlcnJpZGUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UpOgor
ICAgICAgICBEcml2ZS1ieTogUmVuYW1lIGBzZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVu
aXRzYCB0byBgc2V0U2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0c2AgZm9yIGNsYXJpdHkuCisK
IDIwMjEtMTAtMTkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTiAocjI4NDA3OSk6IGZhc3QvY2FudmFzL2dyYWRpZW50LXdpdGgtY2xp
cC5odG1sIGFuZCBmYXN0L2NhbnZhcy9ncmFkaWVudC10ZXh0LXdpdGgtc2hhZG93Lmh0bWwgYXJl
IGZsYWt5IGZhaWx1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0
aXZlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcApp
bmRleCA0OWVlODBkYmZhODc4NzA2MGNlYzgwM2QwN2JhMTk4ZWIwNjAyNjUwLi5mNWIwMGI3ODJh
ZDc5YWY2M2VjNWUxY2I4Nzk5OGRlOGRiMjk4NWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cmltaXRpdmVWYWx1ZS5jcHAKQEAgLTYxLDYgKzYxLDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBp
c1ZhbGlkQ1NTVW5pdFR5cGVGb3JEb3VibGVDb252ZXJzaW9uKENTU1VuaXRUeXBlIHVuaXRUeXBl
KQogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DTToKICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfREVHOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ESU1FTlNJT046CisgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19EVlc6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0VNUzoKICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfRVhTOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19GUjoKQEAgLTc3LDExICs4
MSwxOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZENTU1VuaXRUeXBlRm9yRG91YmxlQ29u
dmVyc2lvbihDU1NVbml0VHlwZSB1bml0VHlwZSkKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
UFg6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1E6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0xIUzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOgorICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19MVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkxI
UzoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUVVJUktZX0VNUzoKICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfUkFEOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SRU1TOgogICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19TOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19TVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgogICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19UVVJOOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSDoKICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfVk1BWDoKQEAgLTE0MCw2ICsxNTIsMTAgQEAgc3RhdGljIGlubGlu
ZSBib29sIGlzU3RyaW5nVHlwZShDU1NVbml0VHlwZSB0eXBlKQogICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19EUENNOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUEk6CiAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0RQUFg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0RWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6CiAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1g6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0VNUzoKICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfRVhTOgpAQCAtMTUwLDYgKzE2NiwxMCBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgaXNTdHJpbmdUeXBlKENTU1VuaXRUeXBlIHR5cGUpCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0lERU5UOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19JTjoKICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfS0haOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1J
TjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZXOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19NTToKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTVM6CiAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX05VTUJFUjoKQEAgLTE2OSw2ICsxODksMTAgQEAgc3RhdGljIGlubGluZSBib29s
IGlzU3RyaW5nVHlwZShDU1NVbml0VHlwZSB0eXBlKQogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19SRU1TOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SR0JDT0xPUjoKICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfUzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOgorICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZN
SU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWVzoKICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfU0hBUEU6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1RVUk46CiAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1VOSUNPREVfUkFOR0U6CkBAIC01MjIsNiArNTQ2LDE4IEBAIHZvaWQg
Q1NTUHJpbWl0aXZlVmFsdWU6OmNsZWFudXAoKQogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19W
SDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjoKICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgorICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19TVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOgorICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
TFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6CisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0xWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDoKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfRFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19EVk1BWDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBQWDoKICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfWDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBJOgpAQCAtNjUxLDIx
ICs2ODcsMzcgQEAgZG91YmxlIENTU1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlVW56b29tZWROb25D
YWxjTGVuZ3RoRG91YmxlKENTU1VuaXRUeXBlIHByaW1pdGkKICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAtMS4wOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19WSDoKLSAgICAgICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT52aWV3cG9ydFNp
emVGb3JDU1NWaWV3cG9ydFVuaXRzKCkuaGVpZ2h0KCkgLyAxMDAuMCAqIHZhbHVlIDogMDsKKyAg
ICAgICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NTRGVmYXVsdFZp
ZXdwb3J0VW5pdHMoKS5oZWlnaHQoKSAvIDEwMC4wICogdmFsdWUgOiAwOwogICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19WVzoKLSAgICAgICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3
LT52aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkud2lkdGgoKSAvIDEwMC4wICogdmFs
dWUgOiAwOworICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnNpemVGb3JD
U1NEZWZhdWx0Vmlld3BvcnRVbml0cygpLndpZHRoKCkgLyAxMDAuMCAqIHZhbHVlIDogMDsKICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1BWDoKLSAgICAgICAgaWYgKHJlbmRlclZpZXcpIHsK
LSAgICAgICAgICAgIEludFNpemUgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyA9IHJl
bmRlclZpZXctPnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKTsKLSAgICAgICAgICAg
IHJldHVybiBzdGQ6Om1heCh2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzLndpZHRoKCks
IHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMuaGVpZ2h0KCkpIC8gMTAwLjAgKiB2YWx1
ZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIHJldHVybiByZW5k
ZXJWaWV3ID8gcmVuZGVyVmlldy0+c2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCkubWF4
RGltZW5zaW9uKCkgLyAxMDAuMCAqIHZhbHVlIDogdmFsdWU7CiAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX1ZNSU46Ci0gICAgICAgIGlmIChyZW5kZXJWaWV3KSB7Ci0gICAgICAgICAgICBJbnRT
aXplIHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMgPSByZW5kZXJWaWV3LT52aWV3cG9y
dFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCk7Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjptaW4o
dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cy53aWR0aCgpLCB2aWV3cG9ydFNpemVGb3JD
U1NWaWV3cG9ydFVuaXRzLmhlaWdodCgpKSAvIDEwMC4wICogdmFsdWU7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZp
ZXctPnNpemVGb3JDU1NEZWZhdWx0Vmlld3BvcnRVbml0cygpLm1pbkRpbWVuc2lvbigpIC8gMTAw
LjAgKiB2YWx1ZSA6IHZhbHVlOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAg
ICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVuZGVyVmlldy0+c2l6ZUZvckNTU1NtYWxsVmlld3Bv
cnRVbml0cygpLmhlaWdodCgpIC8gMTAwLjAgKiB2YWx1ZSA6IDA7CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1NWVzoKKyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5z
aXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCkud2lkdGgoKSAvIDEwMC4wICogdmFsdWUgOiAw
OworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDoKKyAgICAgICAgcmV0dXJuIHJlbmRl
clZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCkubWF4RGlt
ZW5zaW9uKCkgLyAxMDAuMCAqIHZhbHVlIDogdmFsdWU7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1NWTUlOOgorICAgICAgICByZXR1cm4gcmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnNpemVG
b3JDU1NTbWFsbFZpZXdwb3J0VW5pdHMoKS5taW5EaW1lbnNpb24oKSAvIDEwMC4wICogdmFsdWUg
OiB2YWx1ZTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOgorICAgICAgICByZXR1cm4g
cmVuZGVyVmlldyA/IHJlbmRlclZpZXctPnNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoKS5o
ZWlnaHQoKSAvIDEwMC4wICogdmFsdWUgOiAwOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19M
Vlc6CisgICAgICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVuZGVyVmlldy0+c2l6ZUZvckNTU0xh
cmdlVmlld3BvcnRVbml0cygpLndpZHRoKCkgLyAxMDAuMCAqIHZhbHVlIDogMDsKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6CisgICAgICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVu
ZGVyVmlldy0+c2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpLm1heERpbWVuc2lvbigpIC8g
MTAwLjAgKiB2YWx1ZSA6IHZhbHVlOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjoK
KyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3LT5zaXplRm9yQ1NTTGFyZ2VW
aWV3cG9ydFVuaXRzKCkubWluRGltZW5zaW9uKCkgLyAxMDAuMCAqIHZhbHVlIDogdmFsdWU7Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXcg
PyByZW5kZXJWaWV3LT5zaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMoKS5oZWlnaHQoKSAv
IDEwMC4wICogdmFsdWUgOiAwOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6CisgICAg
ICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVuZGVyVmlldy0+c2l6ZUZvckNTU0R5bmFtaWNWaWV3
cG9ydFVuaXRzKCkud2lkdGgoKSAvIDEwMC4wICogdmFsdWUgOiAwOworICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19EVk1BWDoKKyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXcgPyByZW5kZXJWaWV3
LT5zaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMoKS5tYXhEaW1lbnNpb24oKSAvIDEwMC4w
ICogdmFsdWUgOiB2YWx1ZTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46CisgICAg
ICAgIHJldHVybiByZW5kZXJWaWV3ID8gcmVuZGVyVmlldy0+c2l6ZUZvckNTU0R5bmFtaWNWaWV3
cG9ydFVuaXRzKCkubWluRGltZW5zaW9uKCkgLyAxMDAuMCAqIHZhbHVlIDogdmFsdWU7CiAgICAg
ZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAt
MS4wOwpAQCAtNzEyLDE2ICs3NjQsNTIgQEAgZG91YmxlIENTU1ByaW1pdGl2ZVZhbHVlOjpjb21w
dXRlTm9uQ2FsY0xlbmd0aERvdWJsZShjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb24KICAgICAg
ICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkg6Ci0gICAgICAgIHJldHVy
biB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLnZpZXdwb3J0SGVpZ2h0RmFjdG9yKCk7CisgICAgICAg
IHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmRlZmF1bHRWaWV3cG9ydEZhY3RvcigpLmhl
aWdodCgpOwogCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZXOgotICAgICAgICByZXR1cm4g
dmFsdWUgKiBjb252ZXJzaW9uRGF0YS52aWV3cG9ydFdpZHRoRmFjdG9yKCk7CisgICAgICAgIHJl
dHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmRlZmF1bHRWaWV3cG9ydEZhY3RvcigpLndpZHRo
KCk7CiAKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1BWDoKLSAgICAgICAgcmV0dXJuIHZh
bHVlICogY29udmVyc2lvbkRhdGEudmlld3BvcnRNYXhGYWN0b3IoKTsKKyAgICAgICAgcmV0dXJu
IHZhbHVlICogY29udmVyc2lvbkRhdGEuZGVmYXVsdFZpZXdwb3J0RmFjdG9yKCkubWF4RGltZW5z
aW9uKCk7CiAKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjoKLSAgICAgICAgcmV0dXJu
IHZhbHVlICogY29udmVyc2lvbkRhdGEudmlld3BvcnRNaW5GYWN0b3IoKTsKKyAgICAgICAgcmV0
dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEuZGVmYXVsdFZpZXdwb3J0RmFjdG9yKCkubWluRGlt
ZW5zaW9uKCk7CisKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOgorICAgICAgICByZXR1
cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0YS5zbWFsbFZpZXdwb3J0RmFjdG9yKCkuaGVpZ2h0KCk7
CisKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOgorICAgICAgICByZXR1cm4gdmFsdWUg
KiBjb252ZXJzaW9uRGF0YS5zbWFsbFZpZXdwb3J0RmFjdG9yKCkud2lkdGgoKTsKKworICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDoKKyAgICAgICAgcmV0dXJuIHZhbHVlICogY29udmVy
c2lvbkRhdGEuc21hbGxWaWV3cG9ydEZhY3RvcigpLm1heERpbWVuc2lvbigpOworCisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOgorICAgICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJz
aW9uRGF0YS5zbWFsbFZpZXdwb3J0RmFjdG9yKCkubWluRGltZW5zaW9uKCk7CisKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfTFZIOgorICAgICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9u
RGF0YS5sYXJnZVZpZXdwb3J0RmFjdG9yKCkuaGVpZ2h0KCk7CisKKyAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfTFZXOgorICAgICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0YS5sYXJn
ZVZpZXdwb3J0RmFjdG9yKCkud2lkdGgoKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19M
Vk1BWDoKKyAgICAgICAgcmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEubGFyZ2VWaWV3cG9y
dEZhY3RvcigpLm1heERpbWVuc2lvbigpOworCisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xW
TUlOOgorICAgICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0YS5sYXJnZVZpZXdwb3J0
RmFjdG9yKCkubWluRGltZW5zaW9uKCk7CisKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZI
OgorICAgICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0YS5keW5hbWljVmlld3BvcnRG
YWN0b3IoKS5oZWlnaHQoKTsKKworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6CisgICAg
ICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmR5bmFtaWNWaWV3cG9ydEZhY3Rvcigp
LndpZHRoKCk7CisKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6CisgICAgICAgIHJl
dHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmR5bmFtaWNWaWV3cG9ydEZhY3RvcigpLm1heERp
bWVuc2lvbigpOworCisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOgorICAgICAgICBy
ZXR1cm4gdmFsdWUgKiBjb252ZXJzaW9uRGF0YS5keW5hbWljVmlld3BvcnRGYWN0b3IoKS5taW5E
aW1lbnNpb24oKTsKIAogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MSFM6CiAgICAgICAgIEFT
U0VSVChjb252ZXJzaW9uRGF0YS5zdHlsZSgpKTsKQEAgLTk5MCw2ICsxMDc4LDE4IEBAIFN0cmlu
ZyBDU1NQcmltaXRpdmVWYWx1ZTo6dW5pdFR5cGVTdHJpbmcoQ1NTVW5pdFR5cGUgdW5pdFR5cGUp
CiAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSDogcmV0dXJuICJ2aCI7CiAgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOiByZXR1cm4gInZtaW4iOwogICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfVk1BWDogcmV0dXJuICJ2bWF4IjsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1NWVzogcmV0dXJuICJzdnciOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfU1ZIOiByZXR1cm4gInN2aCI7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19T
Vk1JTjogcmV0dXJuICJzdm1pbiI7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1B
WDogcmV0dXJuICJzdm1heCI7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6IHJl
dHVybiAibHZ3IjsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDogcmV0dXJuICJs
dmgiOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46IHJldHVybiAibHZtaW4i
OworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6IHJldHVybiAibHZtYXgiOwor
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZXOiByZXR1cm4gImR2dyI7CisgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6IHJldHVybiAiZHZoIjsKKyAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0RWTUlOOiByZXR1cm4gImR2bWluIjsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0RWTUFYOiByZXR1cm4gImR2bWF4IjsKICAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0RQUFg6IHJldHVybiAiZHBweCI7CiAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19YOiByZXR1cm4gIngiOwogICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBJOiBy
ZXR1cm4gImRwaSI7CkBAIC0xMTUyLDYgKzEyNTIsMzAgQEAgQUxXQVlTX0lOTElORSBTdHJpbmcg
Q1NTUHJpbWl0aXZlVmFsdWU6OmZvcm1hdE51bWJlckZvckN1c3RvbUNTU1RleHQoKSBjb25zdAog
ICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoInZtaW4iKTsKICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfVk1BWDoKICAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlclZhbHVlKCJ2bWF4
Iik7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWVzoKKyAgICAgICAgcmV0dXJuIGZvcm1h
dE51bWJlclZhbHVlKCJzdnciKTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOgorICAg
ICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoInN2aCIpOworICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19TVk1JTjoKKyAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlclZhbHVlKCJzdm1pbiIp
OworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDoKKyAgICAgICAgcmV0dXJuIGZvcm1h
dE51bWJlclZhbHVlKCJzdm1heCIpOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6Cisg
ICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJWYWx1ZSgibHZ3Iik7CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0xWSDoKKyAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlclZhbHVlKCJsdmgiKTsK
KyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46CisgICAgICAgIHJldHVybiBmb3JtYXRO
dW1iZXJWYWx1ZSgibHZtaW4iKTsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6Cisg
ICAgICAgIHJldHVybiBmb3JtYXROdW1iZXJWYWx1ZSgibHZtYXgiKTsKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRFZXOgorICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoImR2dyIp
OworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6CisgICAgICAgIHJldHVybiBmb3JtYXRO
dW1iZXJWYWx1ZSgiZHZoIik7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOgorICAg
ICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoImR2bWluIik7CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0RWTUFYOgorICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyVmFsdWUoImR2bWF4
Iik7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lERU5UOgogICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19VTklDT0RFX1JBTkdFOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DQUxDX1BF
UkNFTlRBR0VfV0lUSF9OVU1CRVI6CkBAIC0xMjE5LDYgKzEzNDMsMTggQEAgYm9vbCBDU1NQcmlt
aXRpdmVWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlJiBvdGhlcikgY29uc3QK
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkg6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1ZNSU46CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg6CisgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1NWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOgorICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19TVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNQVg6
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfTFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjoKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfTFZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzoKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfRFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1J
TjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6CiAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0ZSOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ROgogICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19MSFM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0
aXZlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCmluZGV4
IDhiODJiOWJhOTQ5NmFhMDk0YmRmZWRiYThkZjkxOWNlMmViYTdmMzMuLmI3NDc5YzdiZjdkOTU0
NzUwODc5Mjk0OTZmNGQ0YjFhOWVkNTg4NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRp
dmVWYWx1ZS5oCkBAIC0xMTEsMTAgKzExMSw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzWCgpIGNv
bnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NVbml0VHlwZTo6Q1NTX1g7IH0KICAg
ICBib29sIGlzUmVzb2x1dGlvbigpIGNvbnN0IHsgcmV0dXJuIHVuaXRDYXRlZ29yeShwcmltaXRp
dmVUeXBlKCkpID09IENTU1VuaXRDYXRlZ29yeTo6UmVzb2x1dGlvbjsgfQogICAgIGJvb2wgaXNW
aWV3cG9ydFBlcmNlbnRhZ2VMZW5ndGgoKSBjb25zdCB7IHJldHVybiBpc1ZpZXdwb3J0UGVyY2Vu
dGFnZUxlbmd0aChwcmltaXRpdmVVbml0VHlwZSgpKTsgfQotICAgIGJvb2wgaXNWaWV3cG9ydFBl
cmNlbnRhZ2VXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NT
VW5pdFR5cGU6OkNTU19WVzsgfQotICAgIGJvb2wgaXNWaWV3cG9ydFBlcmNlbnRhZ2VIZWlnaHQo
KSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVVbml0VHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1Nf
Vkg7IH0KLSAgICBib29sIGlzVmlld3BvcnRQZXJjZW50YWdlTWF4KCkgY29uc3QgeyByZXR1cm4g
cHJpbWl0aXZlVW5pdFR5cGUoKSA9PSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg7IH0KLSAgICBib29s
IGlzVmlld3BvcnRQZXJjZW50YWdlTWluKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVW5pdFR5
cGUoKSA9PSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU47IH0KICAgICBib29sIGlzVmFsdWVJRCgpIGNv
bnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19WQUxV
RV9JRDsgfQogICAgIGJvb2wgaXNGbGV4KCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVHlwZSgp
ID09IENTU1VuaXRUeXBlOjpDU1NfRlI7IH0KICAgICBib29sIGlzQ3VzdG9tSWRlbnQoKSBjb25z
dCB7IHJldHVybiBwcmltaXRpdmVVbml0VHlwZSgpID09IENTU1VuaXRUeXBlOjpDdXN0b21JZGVu
dDsgfQpAQCAtMzE1LDEwICszMTEsNyBAQCBjb25zdGV4cHIgYm9vbCBDU1NQcmltaXRpdmVWYWx1
ZTo6aXNSZXNvbHV0aW9uKENTU1VuaXRUeXBlIHR5cGUpCiAKIGNvbnN0ZXhwciBib29sIENTU1By
aW1pdGl2ZVZhbHVlOjppc1ZpZXdwb3J0UGVyY2VudGFnZUxlbmd0aChDU1NVbml0VHlwZSB0eXBl
KQogewotICAgIHJldHVybiB0eXBlID09IENTU1VuaXRUeXBlOjpDU1NfVlcKLSAgICAgICAgfHwg
dHlwZSA9PSBDU1NVbml0VHlwZTo6Q1NTX1ZICi0gICAgICAgIHx8IHR5cGUgPT0gQ1NTVW5pdFR5
cGU6OkNTU19WTUlOCi0gICAgICAgIHx8IHR5cGUgPT0gQ1NTVW5pdFR5cGU6OkNTU19WTUFYOwor
ICAgIHJldHVybiB0eXBlID49IENTU1VuaXRUeXBlOjpDU1NfVlcgJiYgdHlwZSA8PSBDU1NVbml0
VHlwZTo6Q1NTX0RWTUFYOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmVmPENT
U1ByaW1pdGl2ZVZhbHVlPiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKFQmJiB2YWx1ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmNwcAppbmRl
eCAzMTk4MGU2MmM5NWViNzkwYjUwNzI2ODdkZmU1NzMxNjM5OTM2YjY4Li5iMDE1ZjFhZTdhMDc4
NjY3YzVhNzVkNjRkNWY4OGE0ZjliMThkYTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oIgogCisj
aW5jbHVkZSAiRmxvYXRTaXplLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRl
ICJSZW5kZXJWaWV3LmgiCiAKQEAgLTQzLDUwICs0NCw0OCBAQCBmbG9hdCBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhOjp6b29tKCkgY29uc3QKICAgICByZXR1cm4gKm1fem9vbTsKIH0KIAotZG91
YmxlIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OnZpZXdwb3J0V2lkdGhGYWN0b3IoKSBjb25z
dAorRmxvYXRTaXplIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OmRlZmF1bHRWaWV3cG9ydEZh
Y3RvcigpIGNvbnN0CiB7CiAgICAgaWYgKG1fdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5
bGUpCiAgICAgICAgIG1fdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUtPnNldEhhc1Zp
ZXdwb3J0VW5pdHMoKTsKIAogICAgIGlmICghbV9yZW5kZXJWaWV3KQotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBtX3JlbmRlclZpZXctPnZpZXdw
b3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKS53aWR0aCgpIC8gMTAwLjA7CisgICAgcmV0dXJu
IG1fcmVuZGVyVmlldy0+c2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCkgLyAxMDAuMDsK
IH0KIAotZG91YmxlIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OnZpZXdwb3J0SGVpZ2h0RmFj
dG9yKCkgY29uc3QKK0Zsb2F0U2l6ZSBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpzbWFsbFZp
ZXdwb3J0RmFjdG9yKCkgY29uc3QKIHsKICAgICBpZiAobV92aWV3cG9ydERlcGVuZGVuY3lEZXRl
Y3Rpb25TdHlsZSkKICAgICAgICAgbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZS0+
c2V0SGFzVmlld3BvcnRVbml0cygpOwogCiAgICAgaWYgKCFtX3JlbmRlclZpZXcpCi0gICAgICAg
IHJldHVybiAwOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIG1fcmVuZGVyVmll
dy0+dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpLmhlaWdodCgpIC8gMTAwLjA7Cisg
ICAgcmV0dXJuIG1fcmVuZGVyVmlldy0+c2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpIC8g
MTAwLjA7CiB9CiAKLWRvdWJsZSBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjp2aWV3cG9ydE1p
bkZhY3RvcigpIGNvbnN0CitGbG9hdFNpemUgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6bGFy
Z2VWaWV3cG9ydEZhY3RvcigpIGNvbnN0CiB7CiAgICAgaWYgKG1fdmlld3BvcnREZXBlbmRlbmN5
RGV0ZWN0aW9uU3R5bGUpCiAgICAgICAgIG1fdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5
bGUtPnNldEhhc1ZpZXdwb3J0VW5pdHMoKTsKIAogICAgIGlmICghbV9yZW5kZXJWaWV3KQotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIEludFNpemUgdmlld3Bv
cnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyA9IG1fcmVuZGVyVmlldy0+dmlld3BvcnRTaXplRm9y
Q1NTVmlld3BvcnRVbml0cygpOwotICAgIHJldHVybiBzdGQ6Om1pbih2aWV3cG9ydFNpemVGb3JD
U1NWaWV3cG9ydFVuaXRzLndpZHRoKCksIHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMu
aGVpZ2h0KCkpIC8gMTAwLjA7CisgICAgcmV0dXJuIG1fcmVuZGVyVmlldy0+c2l6ZUZvckNTU0xh
cmdlVmlld3BvcnRVbml0cygpIC8gMTAwLjA7CiB9CiAKLWRvdWJsZSBDU1NUb0xlbmd0aENvbnZl
cnNpb25EYXRhOjp2aWV3cG9ydE1heEZhY3RvcigpIGNvbnN0CitGbG9hdFNpemUgQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YTo6ZHluYW1pY1ZpZXdwb3J0RmFjdG9yKCkgY29uc3QKIHsKICAgICBp
ZiAobV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZSkKICAgICAgICAgbV92aWV3cG9y
dERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZS0+c2V0SGFzVmlld3BvcnRVbml0cygpOwogCiAgICAg
aWYgKCFtX3JlbmRlclZpZXcpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4geyB9
OwogCi0gICAgSW50U2l6ZSB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzID0gbV9yZW5k
ZXJWaWV3LT52aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCk7Ci0gICAgcmV0dXJuIHN0
ZDo6bWF4KHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMud2lkdGgoKSwgdmlld3BvcnRT
aXplRm9yQ1NTVmlld3BvcnRVbml0cy5oZWlnaHQoKSkgLyAxMDAuMDsKKyAgICByZXR1cm4gbV9y
ZW5kZXJWaWV3LT5zaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMoKSAvIDEwMC4wOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGEuaAppbmRleCA5NTM3NzlmOGQ1NTVmMGJjOTgxOTI3NzVlNzM3YzU1
YjE1MDYwMGVlLi5lNWMyYjYyYzUyZWMyMWEzNjUyOTgwMWM3Y2Q0ODZhZmJjOTU2MTQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmgKQEAgLTM2
LDYgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBGbG9hdFNpemU7CiBj
bGFzcyBSZW5kZXJTdHlsZTsKIGNsYXNzIFJlbmRlclZpZXc7CiAKQEAgLTc0LDEwICs3NSwxMCBA
QCBwdWJsaWM6CiAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eVRvQ29tcHV0ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJvcGVydHlUb0NvbXB1dGUudmFsdWVfb3IoQ1NTUHJvcGVydHlJbnZhbGlkKTsg
fQogICAgIGNvbnN0IFJlbmRlclZpZXcqIHJlbmRlclZpZXcoKSBjb25zdCB7IHJldHVybiBtX3Jl
bmRlclZpZXc7IH0KIAotICAgIGRvdWJsZSB2aWV3cG9ydFdpZHRoRmFjdG9yKCkgY29uc3Q7Ci0g
ICAgZG91YmxlIHZpZXdwb3J0SGVpZ2h0RmFjdG9yKCkgY29uc3Q7Ci0gICAgZG91YmxlIHZpZXdw
b3J0TWluRmFjdG9yKCkgY29uc3Q7Ci0gICAgZG91YmxlIHZpZXdwb3J0TWF4RmFjdG9yKCkgY29u
c3Q7CisgICAgRmxvYXRTaXplIGRlZmF1bHRWaWV3cG9ydEZhY3RvcigpIGNvbnN0OworICAgIEZs
b2F0U2l6ZSBzbWFsbFZpZXdwb3J0RmFjdG9yKCkgY29uc3Q7CisgICAgRmxvYXRTaXplIGxhcmdl
Vmlld3BvcnRGYWN0b3IoKSBjb25zdDsKKyAgICBGbG9hdFNpemUgZHluYW1pY1ZpZXdwb3J0RmFj
dG9yKCkgY29uc3Q7CiAKICAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNvcHlXaXRoQWRq
dXN0ZWRab29tKGZsb2F0IG5ld1pvb20pIGNvbnN0CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1VuaXRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbml0cy5j
cHAKaW5kZXggNGY0NjhiM2YzYjU3MTI2YzE1NGMxMzY4Njg1ZDE4MTliNzkxZDIzZS4uMjRjYjY2
M2UyYzVlMzMxZTViMmRlYmZkNTJkYTQ1ZjMyNGI5MTM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1VuaXRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5pdHMu
Y3BwCkBAIC0xMzgsNiArMTM4LDE4IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIENTU1VuaXRUeXBlIHVuaXRUeXBlKQogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19W
SDogdHMgPDwgInZoIjsgYnJlYWs7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46IHRz
IDw8ICJ2bWluIjsgYnJlYWs7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg6IHRzIDw8
ICJ2bWF4IjsgYnJlYWs7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWVzogdHMgPDwgInN2
dyI7IGJyZWFrOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6IHRzIDw8ICJzdmgiOyBi
cmVhazsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU46IHRzIDw8ICJzdm1pbiI7IGJy
ZWFrOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDogdHMgPDwgInN2bWF4IjsgYnJl
YWs7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzogdHMgPDwgImx2dyI7IGJyZWFrOwor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6IHRzIDw8ICJsdmgiOyBicmVhazsKKyAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46IHRzIDw8ICJsdm1pbiI7IGJyZWFrOworICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDogdHMgPDwgImx2bWF4IjsgYnJlYWs7CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzogdHMgPDwgImR2dyI7IGJyZWFrOworICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19EVkg6IHRzIDw8ICJkdmgiOyBicmVhazsKKyAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfRFZNSU46IHRzIDw8ICJkdm1pbiI7IGJyZWFrOworICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19EVk1BWDogdHMgPDwgImR2bWF4IjsgYnJlYWs7CiAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0RQUFg6IHRzIDw8ICJkcHB4IjsgYnJlYWs7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1g6IHRzIDw8ICJ4IjsgYnJlYWs7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQSTog
dHMgPDwgImRwaSI7IGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Vu
aXRzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5pdHMuaAppbmRleCA5NzI1NWE5ZWMzNzgy
NWM4YjdlNDQ4OTVjZjY1ODM1ZDliOGQyY2ZhLi5iMGY3YzJkMmY2ZWFiY2M3M2Y0Y2MzMjJhNWJl
YWY1ODJmOGMwMDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5pdHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5pdHMuaApAQCAtNTksNiArNTksMTggQEAgZW51
bSBjbGFzcyBDU1NVbml0VHlwZSA6IHVpbnQ4X3QgewogICAgIENTU19WSCwKICAgICBDU1NfVk1J
TiwKICAgICBDU1NfVk1BWCwKKyAgICBDU1NfU1ZXLAorICAgIENTU19TVkgsCisgICAgQ1NTX1NW
TUlOLAorICAgIENTU19TVk1BWCwKKyAgICBDU1NfTFZXLAorICAgIENTU19MVkgsCisgICAgQ1NT
X0xWTUlOLAorICAgIENTU19MVk1BWCwKKyAgICBDU1NfRFZXLAorICAgIENTU19EVkgsCisgICAg
Q1NTX0RWTUlOLAorICAgIENTU19EVk1BWCwKICAgICBDU1NfRFBQWCwKICAgICBDU1NfWCwKICAg
ICBDU1NfRFBJLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NP
TVByaW1pdGl2ZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01Q
cmltaXRpdmVWYWx1ZS5jcHAKaW5kZXggYmJkMDE0OTkxNzk4NDczODg3Y2Y0ODI4OWM1NDZiNjI1
M2QzODNhNS4uN2RiNWNiYTA2NWE5MzVhNTQ5OTEyZDU0YmI1OWIxZWU4ZmEwMzExMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUu
Y3BwCkBAIC05MywxMCArOTMsOSBAQCB1bnNpZ25lZCBzaG9ydCBEZXByZWNhdGVkQ1NTT01Qcmlt
aXRpdmVWYWx1ZTo6cHJpbWl0aXZlVHlwZSgpIGNvbnN0CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1ZNSU46ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NfVk1JTjsKICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfVlc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IENTU19WVzsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfWDogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIDM3OwotICAgIH0KIAotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgIHJldHVybiBDU1NfVU5LTk9XTjsKKyAgICBkZWZhdWx0OiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU19VTktOT1dOOworICAgIH0KIH0KIAog
RXhjZXB0aW9uT3I8ZmxvYXQ+IERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpnZXRGbG9h
dFZhbHVlKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY0NhdGVnb3J5TWFwcGluZy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvY2FsYy9DU1NDYWxjQ2F0ZWdvcnlNYXBwaW5nLmNwcAppbmRleCAyZDBhMWMyMDAx
ZjEyZmUyMTY4YjRjN2JkODI4NzhlYjEwZjcxOGNkLi45ZWYxZDQ1NjkyMDJlZTU5MzUyM2MwZGEy
YzgyNzI3MTAyZjc2MDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1ND
YWxjQ2F0ZWdvcnlNYXBwaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1ND
YWxjQ2F0ZWdvcnlNYXBwaW5nLmNwcApAQCAtNTQsNiArNTQsMTggQEAgQ2FsY3VsYXRpb25DYXRl
Z29yeSBjYWxjVW5pdENhdGVnb3J5KENTU1VuaXRUeXBlIHR5cGUpCiAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1ZIOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOgogICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19WTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
U1ZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOgorICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19MVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDoKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfTFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFY
OgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0RWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46CisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0RWTUFYOgogICAgICAgICByZXR1cm4gQ2FsY3VsYXRpb25DYXRlZ29yeTo6
TGVuZ3RoOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFOgogICAgICAgICBy
ZXR1cm4gQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudDsKQEAgLTExMCw2ICsxMjIsMTggQEAg
Q2FsY3VsYXRpb25DYXRlZ29yeSBjYWxjdWxhdGlvbkNhdGVnb3J5Rm9yQ29tYmluYXRpb24oQ1NT
VW5pdFR5cGUgdHlwZSkKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkg6CiAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1ZNSU46CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg6Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
U1ZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjoKKyAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfU1ZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzoKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfTFZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjoK
KyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0RWVzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZIOgorICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19EVk1JTjoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6CiAgICAg
ZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok90aGVyOwogICAg
IH0KQEAgLTE2Miw2ICsxODYsMTggQEAgYm9vbCBoYXNEb3VibGVWYWx1ZShDU1NVbml0VHlwZSB0
eXBlKQogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSDoKICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfVk1JTjoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1BWDoKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfU1ZXOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19T
Vk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZXOgorICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19MVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUlOOgorICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19MVk1BWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZXOgor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0RWTUlOOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDoKICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRFBQWDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfWDoKICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfRFBJOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXJUb2tlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlclRva2VuLmNwcAppbmRleCA5YmRjMTNhZGJkNTAwNzlhZDg0MDc4MGIyMDcwNjFkNDM3OTY3
NDczLi5kZTU1ZDM0Yzk3Mjg0MTJjNmZjMzUyYjEyMjk1NTM0NjY4MTA3NzZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcApAQCAtMTM0LDggKzEzNCwy
NiBAQCBDU1NVbml0VHlwZSBjc3NQcmltaXRpdmVWYWx1ZVVuaXRGcm9tVHJpZShjb25zdCBDaGFy
YWN0ZXJUeXBlKiBkYXRhLCB1bnNpZ25lZCBsZQogICAgICAgICAgICAgICAgIGlmICh0b0FTQ0lJ
TG93ZXIoZGF0YVsyXSkgPT0gJ2knKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5p
dFR5cGU6OkNTU19EUEk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
ICd2JzoKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzJdKSkgewor
ICAgICAgICAgICAgICAgIGNhc2UgJ2gnOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NT
VW5pdFR5cGU6OkNTU19EVkg7CisgICAgICAgICAgICAgICAgY2FzZSAndyc6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0RWVzsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ2wnOgorICAgICAgICAgICAgaWYgKHRv
QVNDSUlMb3dlcihkYXRhWzFdKSA9PSAndicpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHRv
QVNDSUlMb3dlcihkYXRhWzJdKSkgeworICAgICAgICAgICAgICAgIGNhc2UgJ2gnOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19MVkg7CisgICAgICAgICAgICAg
ICAgY2FzZSAndyc6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NT
X0xWVzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSAnayc6CiAgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFb
MV0pID09ICdoJyAmJiB0b0FTQ0lJTG93ZXIoZGF0YVsyXSkgPT0gJ3onKQogICAgICAgICAgICAg
ICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0tIWjsKQEAgLTE1NSw5ICsxNzMsMTkgQEAgQ1NT
VW5pdFR5cGUgY3NzUHJpbWl0aXZlVmFsdWVVbml0RnJvbVRyaWUoY29uc3QgQ2hhcmFjdGVyVHlw
ZSogZGF0YSwgdW5zaWduZWQgbGUKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRU
eXBlOjpDU1NfUkxIUzsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICdzJzoKKyAgICAgICAgICAgIGlmICh0b0FT
Q0lJTG93ZXIoZGF0YVsxXSkgPT0gJ3YnKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoICh0b0FT
Q0lJTG93ZXIoZGF0YVsyXSkpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdoJzoKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfU1ZIOworICAgICAgICAgICAgICAg
IGNhc2UgJ3cnOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19T
Vlc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KICAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGJyZWFrOwogICAgIGNhc2Ug
NDoKICAgICAgICAgc3dpdGNoICh0b0FTQ0lJTG93ZXIoZGF0YVswXSkpIHsKICAgICAgICAgY2Fz
ZSAnZCc6CkBAIC0xNzMsOSArMjAxLDkgQEAgQ1NTVW5pdFR5cGUgY3NzUHJpbWl0aXZlVmFsdWVV
bml0RnJvbVRyaWUoY29uc3QgQ2hhcmFjdGVyVHlwZSogZGF0YSwgdW5zaWduZWQgbGUKICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0RQUFg7CiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlICdnJzoKICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93
ZXIoZGF0YVsxXSkgPT0gJ3InICYmIHRvQVNDSUlMb3dlcihkYXRhWzJdKSA9PSAnYScgJiYgdG9B
U0NJSUxvd2VyKGRhdGFbM10pID09ICdkJykKICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5p
dFR5cGU6OkNTU19HUkFEOwpAQCAtMjA4LDYgKzIzNiw0OCBAQCBDU1NVbml0VHlwZSBjc3NQcmlt
aXRpdmVWYWx1ZVVuaXRGcm9tVHJpZShjb25zdCBDaGFyYWN0ZXJUeXBlKiBkYXRhLCB1bnNpZ25l
ZCBsZQogICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzFdKSA9PSAnXycgJiYgdG9B
U0NJSUxvd2VyKGRhdGFbMl0pID09ICdxJyAmJiB0b0FTQ0lJTG93ZXIoZGF0YVszXSkgPT0gJ2Un
ICYmIHRvQVNDSUlMb3dlcihkYXRhWzRdKSA9PSAnbScpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IENTU1VuaXRUeXBlOjpDU1NfUVVJUktZX0VNUzsKICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlICdkJzoKKyAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVsxXSkgPT0gJ3Yn
ICYmIHRvQVNDSUlMb3dlcihkYXRhWzJdKSA9PSAnbScpIHsKKyAgICAgICAgICAgICAgICBzd2l0
Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzNdKSkgeworICAgICAgICAgICAgICAgIGNhc2UgJ2EnOgor
ICAgICAgICAgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbNF0pID09ICd4JykKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOworICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdpJzoKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzRdKSA9PSAnbicpCisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ2wnOgorICAgICAgICAgICAgaWYgKHRvQVND
SUlMb3dlcihkYXRhWzFdKSA9PSAndicgJiYgdG9BU0NJSUxvd2VyKGRhdGFbMl0pID09ICdtJykg
eworICAgICAgICAgICAgICAgIHN3aXRjaCAodG9BU0NJSUxvd2VyKGRhdGFbM10pKSB7CisgICAg
ICAgICAgICAgICAgY2FzZSAnYSc6CisgICAgICAgICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93
ZXIoZGF0YVs0XSkgPT0gJ3gnKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1Vu
aXRUeXBlOjpDU1NfTFZNQVg7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIGNhc2UgJ2knOgorICAgICAgICAgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGRh
dGFbNF0pID09ICduJykKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlw
ZTo6Q1NTX0xWTUlOOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAncyc6
CisgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbMV0pID09ICd2JyAmJiB0b0FTQ0lJ
TG93ZXIoZGF0YVsyXSkgPT0gJ20nKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoICh0b0FTQ0lJ
TG93ZXIoZGF0YVszXSkpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdhJzoKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzRdKSA9PSAneCcpCisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDsKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnaSc6CisgICAgICAgICAgICAgICAg
ICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVs0XSkgPT0gJ24nKQorICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU47CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAppbmRleCAx
ODZkZDJhM2YxMjc4M2UxZTEwY2FlNmU4ZDJiZWY1MDJlYTJlYWNmLi4wNGUxYzg0Y2I1ZmFiNjgz
OGQ0ZTc2NDE5OTBlZTU0NzU4MDMxYTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCkBAIC00OTIsNiArNDkyLDE4
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPExlbmd0aFJhdz4gY29uc3VtZUxlbmd0aFJhd1dpdGhL
bm93blRva2VuVHlwZURpbWVuc2lvbihDU1NQCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZI
OgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19WTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6CisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1NWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU46CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19M
Vlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDoKKyAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfTFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOgorICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19EVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDoKKyAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0RWTUFYOgogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ROgogICAgICAgICBicmVhazsKICAg
ICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGI4NjdjMDhkNjhjNjBj
MGIzYzczMzdhNmNjMjU5OWI1M2I4MTgzYTcuLjE0NDE5Yjk1YTNiNmFkZGQ0MTcwYTcxZDJjZjBh
NzQyMGM2OGQ4N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTI4OTIsNiArMjg5
Miw5IEBAIHZvaWQgRnJhbWVWaWV3Ojp1bm9ic2N1cmVkQ29udGVudFNpemVDaGFuZ2VkKCkKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHVwZGF0ZVRpbGVkQmFja2luZ0FkYXB0aXZlU2l6
aW5nKCk7CiAjZW5kaWYKKworICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGZyYW1lKCkuZG9jdW1l
bnQoKSkKKyAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZVZpZXdwb3J0VW5pdHNPblJlc2l6ZSgpOwog
fQogCiB2b2lkIEZyYW1lVmlldzo6bG9hZFByb2dyZXNzaW5nU3RhdHVzQ2hhbmdlZCgpCkBAIC0z
NTY2LDcgKzM1NjksOSBAQCB2b2lkIEZyYW1lVmlldzo6cGVyZm9ybVNpemVUb0NvbnRlbnRBdXRv
U2l6ZSgpCiAgICAgICAgIGRvY3VtZW50LnVwZGF0ZUxheW91dCgpOwogICAgIH07CiAKLSAgICBy
ZXNldE92ZXJyaWRkZW5WaWV3cG9ydFdpZHRoRm9yQ1NTVmlld3BvcnRVbml0cygpOworICAgIHJl
c2V0T3ZlcnJpZGRlbldpZHRoRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCk7CisgICAgcmVzZXRP
dmVycmlkZGVuV2lkdGhGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoKTsKKwogICAgIC8vIFN0YXJ0
IGZyb20gdGhlIG1pbmltdW0gc2l6ZSBhbmQgYWxsb3cgaXQgdG8gZ3Jvdy4KICAgICBhdXRvIG1p
bkF1dG9TaXplID0gSW50U2l6ZSB7IDEsIDEgfTsKICAgICByZXNpemUobWluQXV0b1NpemUpOwpA
QCAtMzYyNiw3ICszNjMxLDggQEAgdm9pZCBGcmFtZVZpZXc6OnBlcmZvcm1TaXplVG9Db250ZW50
QXV0b1NpemUoKQogICAgICAgICByZXNpemUobmV3U2l6ZS53aWR0aCgpLCBpID8gbmV3U2l6ZS5o
ZWlnaHQoKSA6IG1pbkF1dG9TaXplLmhlaWdodCgpKTsKICAgICAgICAgLy8gUHJvdGVjdCB0aGUg
Y29udGVudCBmcm9tIGV2ZXJncm93aW5nIGxheW91dC4KICAgICAgICAgYXV0byBwcmVmZXJyZWRW
aWV3cG9ydFdpZHRoID0gc3RkOjptaW4obmV3U2l6ZS53aWR0aCgpLCBtX2F1dG9TaXplQ29uc3Ry
YWludC53aWR0aCgpKTsKLSAgICAgICAgb3ZlcnJpZGVWaWV3cG9ydFdpZHRoRm9yQ1NTVmlld3Bv
cnRVbml0cyhwcmVmZXJyZWRWaWV3cG9ydFdpZHRoKTsKKyAgICAgICAgb3ZlcnJpZGVXaWR0aEZv
ckNTU1NtYWxsVmlld3BvcnRVbml0cyhwcmVmZXJyZWRWaWV3cG9ydFdpZHRoKTsKKyAgICAgICAg
b3ZlcnJpZGVXaWR0aEZvckNTU0xhcmdlVmlld3BvcnRVbml0cyhwcmVmZXJyZWRWaWV3cG9ydFdp
ZHRoKTsKICAgICAgICAgLy8gRm9yY2UgdGhlIHNjcm9sbGJhciBzdGF0ZSB0byBhdm9pZCB0aGUg
c2Nyb2xsYmFyIGNvZGUgYWRkaW5nIHRoZW0gYW5kIGNhdXNpbmcgdGhlbSB0byBiZSBuZWVkZWQu
IEZvciBleGFtcGxlLAogICAgICAgICAvLyBhIHZlcnRpY2FsIHNjcm9sbGJhciBtYXkgY2F1c2Ug
dGV4dCB0byB3cmFwIGFuZCB0aHVzIGluY3JlYXNlIHRoZSBoZWlnaHQgKHdoaWNoIGlzIHRoZSBv
bmx5IHJlYXNvbiB0aGUgc2NvbGxiYXIgaXMgbmVlZGVkKS4KICAgICAgICAgc2V0VmVydGljYWxT
Y3JvbGxiYXJMb2NrKGZhbHNlKTsKQEAgLTQ3MDYsMTEgKzQ3MTIsMTMgQEAgdm9pZCBGcmFtZVZp
ZXc6OmVuYWJsZUF1dG9TaXplTW9kZShib29sIGVuYWJsZSwgY29uc3QgSW50U2l6ZSYgdmlld1Np
emUsIEF1dG9TaXoKICAgICBzZXROZWVkc0xheW91dEFmdGVyVmlld0NvbmZpZ3VyYXRpb25DaGFu
Z2UoKTsKICAgICBsYXlvdXRDb250ZXh0KCkuc2NoZWR1bGVMYXlvdXQoKTsKICAgICBpZiAobV9z
aG91bGRBdXRvU2l6ZSkgewotICAgICAgICBvdmVycmlkZVZpZXdwb3J0V2lkdGhGb3JDU1NWaWV3
cG9ydFVuaXRzKG1fYXV0b1NpemVDb25zdHJhaW50LndpZHRoKCkpOworICAgICAgICBvdmVycmlk
ZVdpZHRoRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKG1fYXV0b1NpemVDb25zdHJhaW50LndpZHRo
KCkpOworICAgICAgICBvdmVycmlkZVdpZHRoRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKG1fYXV0
b1NpemVDb25zdHJhaW50LndpZHRoKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
Y2xlYXJWaWV3cG9ydFNpemVPdmVycmlkZUZvckNTU1ZpZXdwb3J0VW5pdHMoKTsKKyAgICBjbGVh
clNpemVPdmVycmlkZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpOworICAgIGNsZWFyU2l6ZU92
ZXJyaWRlRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKCk7CiAgICAgLy8gU2luY2UgYXV0b3NpemUg
bW9kZSBmb3JjZXMgdGhlIHNjcm9sbGJhciBtb2RlLCBjaGFuZ2UgdGhlbSB0byBiZWluZyBhdXRv
LgogICAgIHNldFZlcnRpY2FsU2Nyb2xsYmFyTG9jayhmYWxzZSk7CiAgICAgc2V0SG9yaXpvbnRh
bFNjcm9sbGJhckxvY2soZmFsc2UpOwpAQCAtNTUzOSw1MiArNTU0NywxMDcgQEAgdm9pZCBGcmFt
ZVZpZXc6OnNldFZpZXdFeHBvc2VkUmVjdChzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gdmlld0V4
cG9zZWRSZWN0KQogICAgIH0KIH0KIAotdm9pZCBGcmFtZVZpZXc6OmNsZWFyVmlld3BvcnRTaXpl
T3ZlcnJpZGVGb3JDU1NWaWV3cG9ydFVuaXRzKCkKK3ZvaWQgRnJhbWVWaWV3OjpjbGVhclNpemVP
dmVycmlkZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpCiB7Ci0gICAgaWYgKCFtX292ZXJyaWRl
Vmlld3BvcnRTaXplKQorICAgIGlmICghbV9zbWFsbFZpZXdwb3J0U2l6ZU92ZXJyaWRlKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBtX292ZXJyaWRlVmlld3BvcnRTaXplID0gc3RkOjpudWxsb3B0
OworICAgIG1fc21hbGxWaWV3cG9ydFNpemVPdmVycmlkZSA9IHN0ZDo6bnVsbG9wdDsKICAgICBp
ZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCkpCiAgICAgICAgIGRvY3VtZW50
LT5zdHlsZVNjb3BlKCkuZGlkQ2hhbmdlU3R5bGVTaGVldEVudmlyb25tZW50KCk7CiB9CiAKLXZv
aWQgRnJhbWVWaWV3OjpzZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKEludFNpemUg
c2l6ZSkKK3ZvaWQgRnJhbWVWaWV3OjpzZXRTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKElu
dFNpemUgc2l6ZSkKIHsKLSAgICBvdmVycmlkZVZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5p
dHMoeyBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkgfSk7CisgICAgb3ZlcnJpZGVTaXplRm9y
Q1NTU21hbGxWaWV3cG9ydFVuaXRzKHsgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpIH0pOwog
fQogCi12b2lkIEZyYW1lVmlldzo6b3ZlcnJpZGVWaWV3cG9ydFdpZHRoRm9yQ1NTVmlld3BvcnRV
bml0cyhpbnQgd2lkdGgpCit2b2lkIEZyYW1lVmlldzo6b3ZlcnJpZGVXaWR0aEZvckNTU1NtYWxs
Vmlld3BvcnRVbml0cyhpbnQgd2lkdGgpCiB7Ci0gICAgb3ZlcnJpZGVWaWV3cG9ydFNpemVGb3JD
U1NWaWV3cG9ydFVuaXRzKHsgd2lkdGgsIG1fb3ZlcnJpZGVWaWV3cG9ydFNpemUgPyBtX292ZXJy
aWRlVmlld3BvcnRTaXplLT5oZWlnaHQgOiBzdGQ6Om51bGxvcHQgfSk7CisgICAgb3ZlcnJpZGVT
aXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKHsgd2lkdGgsIG1fc21hbGxWaWV3cG9ydFNpemVP
dmVycmlkZSA/IG1fc21hbGxWaWV3cG9ydFNpemVPdmVycmlkZS0+aGVpZ2h0IDogc3RkOjpudWxs
b3B0IH0pOwogfQogCi12b2lkIEZyYW1lVmlldzo6cmVzZXRPdmVycmlkZGVuVmlld3BvcnRXaWR0
aEZvckNTU1ZpZXdwb3J0VW5pdHMoKQordm9pZCBGcmFtZVZpZXc6OnJlc2V0T3ZlcnJpZGRlbldp
ZHRoRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCkKIHsKLSAgICBvdmVycmlkZVZpZXdwb3J0U2l6
ZUZvckNTU1ZpZXdwb3J0VW5pdHMoeyB7IH0sIG1fb3ZlcnJpZGVWaWV3cG9ydFNpemUgPyBtX292
ZXJyaWRlVmlld3BvcnRTaXplLT5oZWlnaHQgOiBzdGQ6Om51bGxvcHQgfSk7CisgICAgb3ZlcnJp
ZGVTaXplRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKHsgeyB9LCBtX3NtYWxsVmlld3BvcnRTaXpl
T3ZlcnJpZGUgPyBtX3NtYWxsVmlld3BvcnRTaXplT3ZlcnJpZGUtPmhlaWdodCA6IHN0ZDo6bnVs
bG9wdCB9KTsKIH0KIAotdm9pZCBGcmFtZVZpZXc6Om92ZXJyaWRlVmlld3BvcnRTaXplRm9yQ1NT
Vmlld3BvcnRVbml0cyhPdmVycmlkZVZpZXdwb3J0U2l6ZSBzaXplKQordm9pZCBGcmFtZVZpZXc6
Om92ZXJyaWRlU2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cyhPdmVycmlkZVZpZXdwb3J0U2l6
ZSBzaXplKQogewotICAgIGlmIChtX292ZXJyaWRlVmlld3BvcnRTaXplICYmICptX292ZXJyaWRl
Vmlld3BvcnRTaXplID09IHNpemUpCisgICAgaWYgKG1fc21hbGxWaWV3cG9ydFNpemVPdmVycmlk
ZSAmJiAqbV9zbWFsbFZpZXdwb3J0U2l6ZU92ZXJyaWRlID09IHNpemUpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIG1fb3ZlcnJpZGVWaWV3cG9ydFNpemUgPSBzaXplOworICAgIG1fc21hbGxWaWV3
cG9ydFNpemVPdmVycmlkZSA9IHNpemU7CiAKICAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFt
ZSgpLmRvY3VtZW50KCkpCiAgICAgICAgIGRvY3VtZW50LT5zdHlsZVNjb3BlKCkuZGlkQ2hhbmdl
U3R5bGVTaGVldEVudmlyb25tZW50KCk7CiB9CiAKLUludFNpemUgRnJhbWVWaWV3Ojp2aWV3cG9y
dFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkgY29uc3QKK0ludFNpemUgRnJhbWVWaWV3OjpzaXpl
Rm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY2FsY3VsYXRl
U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHNPdmVycmlkZShtX3NtYWxsVmlld3BvcnRTaXplT3ZlcnJp
ZGUpOworfQorCit2b2lkIEZyYW1lVmlldzo6Y2xlYXJTaXplT3ZlcnJpZGVGb3JDU1NMYXJnZVZp
ZXdwb3J0VW5pdHMoKQoreworICAgIGlmICghbV9sYXJnZVZpZXdwb3J0U2l6ZU92ZXJyaWRlKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2xhcmdlVmlld3BvcnRTaXplT3ZlcnJpZGUgPSBzdGQ6
Om51bGxvcHQ7CisgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpKQor
ICAgICAgICBkb2N1bWVudC0+c3R5bGVTY29wZSgpLmRpZENoYW5nZVN0eWxlU2hlZXRFbnZpcm9u
bWVudCgpOworfQorCit2b2lkIEZyYW1lVmlldzo6c2V0U2l6ZUZvckNTU0xhcmdlVmlld3BvcnRV
bml0cyhJbnRTaXplIHNpemUpCit7CisgICAgb3ZlcnJpZGVTaXplRm9yQ1NTTGFyZ2VWaWV3cG9y
dFVuaXRzKHsgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpIH0pOworfQorCit2b2lkIEZyYW1l
Vmlldzo6b3ZlcnJpZGVXaWR0aEZvckNTU0xhcmdlVmlld3BvcnRVbml0cyhpbnQgd2lkdGgpCit7
CisgICAgb3ZlcnJpZGVTaXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKHsgd2lkdGgsIG1fbGFy
Z2VWaWV3cG9ydFNpemVPdmVycmlkZSA/IG1fbGFyZ2VWaWV3cG9ydFNpemVPdmVycmlkZS0+aGVp
Z2h0IDogc3RkOjpudWxsb3B0IH0pOworfQorCit2b2lkIEZyYW1lVmlldzo6cmVzZXRPdmVycmlk
ZGVuV2lkdGhGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoKQoreworICAgIG92ZXJyaWRlU2l6ZUZv
ckNTU0xhcmdlVmlld3BvcnRVbml0cyh7IHsgfSwgbV9sYXJnZVZpZXdwb3J0U2l6ZU92ZXJyaWRl
ID8gbV9sYXJnZVZpZXdwb3J0U2l6ZU92ZXJyaWRlLT5oZWlnaHQgOiBzdGQ6Om51bGxvcHQgfSk7
Cit9CisKK3ZvaWQgRnJhbWVWaWV3OjpvdmVycmlkZVNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5p
dHMoT3ZlcnJpZGVWaWV3cG9ydFNpemUgc2l6ZSkKK3sKKyAgICBpZiAobV9sYXJnZVZpZXdwb3J0
U2l6ZU92ZXJyaWRlICYmICptX2xhcmdlVmlld3BvcnRTaXplT3ZlcnJpZGUgPT0gc2l6ZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9sYXJnZVZpZXdwb3J0U2l6ZU92ZXJyaWRlID0gc2l6ZTsK
KworICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGZyYW1lKCkuZG9jdW1lbnQoKSkKKyAgICAgICAg
ZG9jdW1lbnQtPnN0eWxlU2NvcGUoKS5kaWRDaGFuZ2VTdHlsZVNoZWV0RW52aXJvbm1lbnQoKTsK
K30KKworSW50U2l6ZSBGcmFtZVZpZXc6OnNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoKSBj
b25zdAoreworICAgIHJldHVybiBjYWxjdWxhdGVTaXplRm9yQ1NTVmlld3BvcnRVbml0c092ZXJy
aWRlKG1fbGFyZ2VWaWV3cG9ydFNpemVPdmVycmlkZSk7Cit9CisKK0ludFNpemUgRnJhbWVWaWV3
OjpjYWxjdWxhdGVTaXplRm9yQ1NTVmlld3BvcnRVbml0c092ZXJyaWRlKHN0ZDo6b3B0aW9uYWw8
T3ZlcnJpZGVWaWV3cG9ydFNpemU+IG92ZXJyaWRlKSBjb25zdAogewogICAgIE92ZXJyaWRlVmll
d3BvcnRTaXplIHZpZXdwb3J0U2l6ZTsKIAotICAgIGlmIChtX292ZXJyaWRlVmlld3BvcnRTaXpl
KSB7Ci0gICAgICAgIHZpZXdwb3J0U2l6ZSA9ICptX292ZXJyaWRlVmlld3BvcnRTaXplOwotICAg
ICAgICAvLyBhdXRvLXNpemUgb3ZlcnJpZGVzIHRoZSB3aWR0aCBvbmx5LCBzbyB3ZSBjYW4ndCBh
bHdheXMgYmFpbCBvdXQgZWFybHkgaGVyZS4KLSAgICAgICAgaWYgKHZpZXdwb3J0U2l6ZS53aWR0
aCAmJiB2aWV3cG9ydFNpemUuaGVpZ2h0KQotICAgICAgICAgICAgcmV0dXJuIHsgKnZpZXdwb3J0
U2l6ZS53aWR0aCwgKnZpZXdwb3J0U2l6ZS5oZWlnaHQgfTsKLSAgICB9CisgICAgaWYgKG92ZXJy
aWRlKQorICAgICAgICB2aWV3cG9ydFNpemUgPSAqb3ZlcnJpZGU7CisKKyAgICAvLyBVc2UgdGhl
IGxhcmdlIHNpemUgaWYgbm8gb3ZlcnJpZGUgaXMgZ2l2ZW4gc2luY2UgaXQncyBjb25zaWRlcmVk
IHRoZSBkZWZhdWx0IHNpemUuCisgICAgLy8gaWYgKG1fbGFyZ2VWaWV3cG9ydFNpemVPdmVycmlk
ZSkgeworICAgIC8vICAgICBpZiAoIXZpZXdwb3J0U2l6ZS53aWR0aCkKKyAgICAvLyAgICAgICAg
IHZpZXdwb3J0U2l6ZS53aWR0aCA9IG1fbGFyZ2VWaWV3cG9ydFNpemVPdmVycmlkZS0+d2lkdGg7
CisKKyAgICAvLyAgICAgaWYgKCF2aWV3cG9ydFNpemUuaGVpZ2h0KQorICAgIC8vICAgICAgICAg
dmlld3BvcnRTaXplLmhlaWdodCA9IG1fbGFyZ2VWaWV3cG9ydFNpemVPdmVycmlkZS0+aGVpZ2h0
OworICAgIC8vIH0KKworICAgIC8vIGF1dG8tc2l6ZSBvdmVycmlkZXMgdGhlIHdpZHRoIG9ubHks
IHNvIHdlIGNhbid0IGFsd2F5cyBiYWlsIG91dCBlYXJseSBoZXJlLgorICAgIGlmICh2aWV3cG9y
dFNpemUud2lkdGggJiYgdmlld3BvcnRTaXplLmhlaWdodCkKKyAgICAgICAgcmV0dXJuIHsgKnZp
ZXdwb3J0U2l6ZS53aWR0aCwgKnZpZXdwb3J0U2l6ZS5oZWlnaHQgfTsKIAogICAgIGlmICh1c2VG
aXhlZExheW91dCgpKSB7CiAgICAgICAgIGF1dG8gZml4ZWRMYXlvdXRTaXplID0gdGhpcy0+Zml4
ZWRMYXlvdXRTaXplKCk7CkBAIC01NjAxLDYgKzU2NjQsMTYgQEAgSW50U2l6ZSBGcmFtZVZpZXc6
OnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKSBjb25zdAogICAgIHJldHVybiB7ICp2
aWV3cG9ydFNpemUud2lkdGgsICp2aWV3cG9ydFNpemUuaGVpZ2h0IH07CiB9CiAKK0ludFNpemUg
RnJhbWVWaWV3OjpzaXplRm9yQ1NTRHluYW1pY1ZpZXdwb3J0VW5pdHMoKSBjb25zdAoreworICAg
IHJldHVybiB2aXNpYmxlQ29udGVudFJlY3RJbmNsdWRpbmdTY3JvbGxiYXJzKCkuc2l6ZSgpOwor
fQorCitJbnRTaXplIEZyYW1lVmlldzo6c2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVuaXRzKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gc2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpOworfQor
CiBib29sIEZyYW1lVmlldzo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIHJlbmRlclZpZXcoKSAmJiByZW5kZXJWaWV3KCktPnNob3VsZFBs
YWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4
IGY0NGEzZjJlOWQ5YjczYmI4N2UyYWNmYWI1Y2VhY2Y2M2MwYzM1NGUuLmY0Y2Y3ZDA4MTUyOGFh
YWExMGM5MjZiZTlkOWYyNzVmZmU0OGY2MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAt
MjI4LDkgKzIyOCwxNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkanVz
dFZpZXdTaXplKCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFZpZXdwb3J0U2l6ZUZv
ckNTU1ZpZXdwb3J0VW5pdHMoSW50U2l6ZSk7Ci0gICAgdm9pZCBjbGVhclZpZXdwb3J0U2l6ZU92
ZXJyaWRlRm9yQ1NTVmlld3BvcnRVbml0cygpOwotICAgIEludFNpemUgdmlld3BvcnRTaXplRm9y
Q1NTVmlld3BvcnRVbml0cygpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2l6
ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cyhJbnRTaXplKTsKKyAgICB2b2lkIGNsZWFyU2l6ZU92
ZXJyaWRlRm9yQ1NTU21hbGxWaWV3cG9ydFVuaXRzKCk7CisgICAgSW50U2l6ZSBzaXplRm9yQ1NT
U21hbGxWaWV3cG9ydFVuaXRzKCkgY29uc3Q7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dFNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoSW50U2l6ZSk7CisgICAgdm9pZCBjbGVhclNp
emVPdmVycmlkZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpOworICAgIEludFNpemUgc2l6ZUZv
ckNTU0xhcmdlVmlld3BvcnRVbml0cygpIGNvbnN0OworCisgICAgSW50U2l6ZSBzaXplRm9yQ1NT
RHluYW1pY1ZpZXdwb3J0VW5pdHMoKSBjb25zdDsKKworICAgIEludFNpemUgc2l6ZUZvckNTU0Rl
ZmF1bHRWaWV3cG9ydFVuaXRzKCkgY29uc3Q7CiAKICAgICBJbnRSZWN0IHdpbmRvd0NsaXBSZWN0
KCkgY29uc3QgZmluYWw7CiAgICAgV0VCQ09SRV9FWFBPUlQgSW50UmVjdCB3aW5kb3dDbGlwUmVj
dEZvckZyYW1lT3duZXIoY29uc3QgSFRNTEZyYW1lT3duZXJFbGVtZW50KiwgYm9vbCBjbGlwVG9M
YXllckNvbnRlbnRzKSBjb25zdDsKQEAgLTg1NCw5ICs4NjIsMTUgQEAgcHJpdmF0ZToKIAogICAg
ICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgT3ZlcnJpZGVWaWV3cG9ydFNpemUmIHJocykgY29u
c3QgeyByZXR1cm4gcmhzLndpZHRoID09IHdpZHRoICYmIHJocy5oZWlnaHQgPT0gaGVpZ2h0OyB9
CiAgICAgfTsKLSAgICB2b2lkIG92ZXJyaWRlVmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0
cyhPdmVycmlkZVZpZXdwb3J0U2l6ZSk7Ci0gICAgdm9pZCBvdmVycmlkZVZpZXdwb3J0V2lkdGhG
b3JDU1NWaWV3cG9ydFVuaXRzKGludCk7Ci0gICAgdm9pZCByZXNldE92ZXJyaWRkZW5WaWV3cG9y
dFdpZHRoRm9yQ1NTVmlld3BvcnRVbml0cygpOworICAgIEludFNpemUgY2FsY3VsYXRlU2l6ZUZv
ckNTU1ZpZXdwb3J0VW5pdHNPdmVycmlkZShzdGQ6Om9wdGlvbmFsPE92ZXJyaWRlVmlld3BvcnRT
aXplPikgY29uc3Q7CisKKyAgICB2b2lkIG92ZXJyaWRlU2l6ZUZvckNTU1NtYWxsVmlld3BvcnRV
bml0cyhPdmVycmlkZVZpZXdwb3J0U2l6ZSk7CisgICAgdm9pZCBvdmVycmlkZVdpZHRoRm9yQ1NT
U21hbGxWaWV3cG9ydFVuaXRzKGludCk7CisgICAgdm9pZCByZXNldE92ZXJyaWRkZW5XaWR0aEZv
ckNTU1NtYWxsVmlld3BvcnRVbml0cygpOworCisgICAgdm9pZCBvdmVycmlkZVNpemVGb3JDU1NM
YXJnZVZpZXdwb3J0VW5pdHMoT3ZlcnJpZGVWaWV3cG9ydFNpemUpOworICAgIHZvaWQgb3ZlcnJp
ZGVXaWR0aEZvckNTU0xhcmdlVmlld3BvcnRVbml0cyhpbnQpOworICAgIHZvaWQgcmVzZXRPdmVy
cmlkZGVuV2lkdGhGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoKTsKIAogICAgIHZvaWQgZGlkRmlu
aXNoUHJvaGliaXRpbmdTY3JvbGxpbmdXaGVuQ2hhbmdpbmdDb250ZW50U2l6ZSgpIGZpbmFsOwog
CkBAIC05MjUsNyArOTM5LDggQEAgcHJpdmF0ZToKICAgICBzdGQ6Om9wdGlvbmFsPEludFNpemU+
IG1fY3VzdG9tU2l6ZUZvclJlc2l6ZUV2ZW50OwogI2VuZGlmCiAKLSAgICBzdGQ6Om9wdGlvbmFs
PE92ZXJyaWRlVmlld3BvcnRTaXplPiBtX292ZXJyaWRlVmlld3BvcnRTaXplOworICAgIHN0ZDo6
b3B0aW9uYWw8T3ZlcnJpZGVWaWV3cG9ydFNpemU+IG1fc21hbGxWaWV3cG9ydFNpemVPdmVycmlk
ZTsKKyAgICBzdGQ6Om9wdGlvbmFsPE92ZXJyaWRlVmlld3BvcnRTaXplPiBtX2xhcmdlVmlld3Bv
cnRTaXplT3ZlcnJpZGU7CiAKICAgICAvLyBUaGUgdmlldyBzaXplIHdoZW4gYXV0b3NpemluZy4K
ICAgICBJbnRTaXplIG1fYXV0b1NpemVDb25zdHJhaW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRTaXplLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaAppbmRleCBkNTVkMWRjYTUyOWIwNjY5MGJjNmY3NmNl
ODE1MDY4OWU3MzJjMDA2Li5lMmRlZjg1NzE2ZTMzZTkxYTM2MzFiZTFjYjJmYzJiYWRiNTMxZTI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaApAQCAt
NzIsNiArNzIsOSBAQCBwdWJsaWM6CiAgICAgZmxvYXQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBt
X3dpZHRoOyB9CiAgICAgZmxvYXQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0K
IAorICAgIGZsb2F0IG1pbkRpbWVuc2lvbigpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bWluKG1fd2lk
dGgsIG1faGVpZ2h0KTsgfQorICAgIGZsb2F0IG1heERpbWVuc2lvbigpIGNvbnN0IHsgcmV0dXJu
IHN0ZDo6bWF4KG1fd2lkdGgsIG1faGVpZ2h0KTsgfQorCiAgICAgYm9vbCBoYXNJbnRyaW5zaWNX
aWR0aCA9IGZhbHNlOwogICAgIGJvb2wgaGFzSW50cmluc2ljSGVpZ2h0ID0gZmFsc2U7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFNpemUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFNpemUuaAppbmRleCA1YjI0YTBmMTEy
YjQyZjQzNjgxZjdmZmFhMmI2MmY0MGYwNmE4MGY1Li4wOTVmMDMxNDRkZjk3MjY3ZjEwMjU1ZTI1
Njc0ZWQ5NjYyZGRmZmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbnRTaXplLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50
U2l6ZS5oCkBAIC03NCw2ICs3NCw5IEBAIHB1YmxpYzoKICAgICBpbnQgd2lkdGgoKSBjb25zdCB7
IHJldHVybiBtX3dpZHRoOyB9CiAgICAgaW50IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVp
Z2h0OyB9CiAKKyAgICBmbG9hdCBtaW5EaW1lbnNpb24oKSBjb25zdCB7IHJldHVybiBzdGQ6Om1p
bihtX3dpZHRoLCBtX2hlaWdodCk7IH0KKyAgICBmbG9hdCBtYXhEaW1lbnNpb24oKSBjb25zdCB7
IHJldHVybiBzdGQ6Om1heChtX3dpZHRoLCBtX2hlaWdodCk7IH0KKwogICAgIHZvaWQgc2V0V2lk
dGgoaW50IHdpZHRoKSB7IG1fd2lkdGggPSB3aWR0aDsgfQogICAgIHZvaWQgc2V0SGVpZ2h0KGlu
dCBoZWlnaHQpIHsgbV9oZWlnaHQgPSBoZWlnaHQ7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZXcuY3BwCmluZGV4IDc5OTQ1MzYwZGQxZWFlZDM0ODgxNzBhMWY4NTU1MDU3MjEx
NzhiODAuLjFkMjNiNmU5NDk5YjIyYjAzOTk4YTIwODdhNTk3ZjVmNjAzMmZmYTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTY5Nyw5ICs2OTcsMjQgQEAgZmxv
YXQgUmVuZGVyVmlldzo6em9vbUZhY3RvcigpIGNvbnN0CiAgICAgcmV0dXJuIGZyYW1lVmlldygp
LmZyYW1lKCkucGFnZVpvb21GYWN0b3IoKTsKIH0KIAotSW50U2l6ZSBSZW5kZXJWaWV3Ojp2aWV3
cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkgY29uc3QKK0ludFNpemUgUmVuZGVyVmlldzo6
c2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZyYW1l
VmlldygpLnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKTsKKyAgICByZXR1cm4gZnJh
bWVWaWV3KCkuc2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygpOworfQorCitJbnRTaXplIFJl
bmRlclZpZXc6OnNpemVGb3JDU1NMYXJnZVZpZXdwb3J0VW5pdHMoKSBjb25zdAoreworICAgIHJl
dHVybiBmcmFtZVZpZXcoKS5zaXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKCk7Cit9CisKK0lu
dFNpemUgUmVuZGVyVmlldzo6c2l6ZUZvckNTU0R5bmFtaWNWaWV3cG9ydFVuaXRzKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gZnJhbWVWaWV3KCkuc2l6ZUZvckNTU0R5bmFtaWNWaWV3cG9ydFVuaXRz
KCk7Cit9CisKK0ludFNpemUgUmVuZGVyVmlldzo6c2l6ZUZvckNTU0RlZmF1bHRWaWV3cG9ydFVu
aXRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnJhbWVWaWV3KCkuc2l6ZUZvckNTU0RlZmF1bHRW
aWV3cG9ydFVuaXRzKCk7CiB9CiAKIE5vZGUqIFJlbmRlclZpZXc6Om5vZGVGb3JIaXRUZXN0KCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCmluZGV4IDQ4ZTM2NzkzMDM1
NmUzNDhhOWZiYjIxZDNkNTcwMjRlMTUzNDM1YTYuLmEwYmI5NGUxNjcxMmFmODk2N2M4ZGU2YWQ3
ODE1YjBjMGE3MWNkNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaApAQCAt
MTQzLDcgKzE0MywxMCBAQCBwdWJsaWM6CiAKICAgICBib29sIHNob3VsZFBhaW50QmFzZUJhY2tn
cm91bmQoKSBjb25zdDsKIAotICAgIEludFNpemUgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRV
bml0cygpIGNvbnN0OworICAgIEludFNpemUgc2l6ZUZvckNTU1NtYWxsVmlld3BvcnRVbml0cygp
IGNvbnN0OworICAgIEludFNpemUgc2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygpIGNvbnN0
OworICAgIEludFNpemUgc2l6ZUZvckNTU0R5bmFtaWNWaWV3cG9ydFVuaXRzKCkgY29uc3Q7Cisg
ICAgSW50U2l6ZSBzaXplRm9yQ1NTRGVmYXVsdFZpZXdwb3J0VW5pdHMoKSBjb25zdDsKIAogICAg
IGJvb2wgaGFzUXVvdGVzTmVlZGluZ1VwZGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUXVvdGVz
TmVlZGluZ1VwZGF0ZTsgfQogICAgIHZvaWQgc2V0SGFzUXVvdGVzTmVlZGluZ1VwZGF0ZShib29s
IGIpIHsgbV9oYXNRdW90ZXNOZWVkaW5nVXBkYXRlID0gYjsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU0NvbXBsZXRpb25zLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU0NvbXBsZXRpb25z
LmpzCmluZGV4IDIzY2U4NTUwNGIyZDA2YjA2YjYwZGE1ZmM0YzNiMzJhZjQxOTk4MjMuLmM0Njgx
NTBmNzMxZGM5ZWEwOTFjYWMzOGIwMDVjNmVlMThmNmYxM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NDb21wbGV0aW9ucy5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTQ29tcGxldGlv
bnMuanMKQEAgLTM0MywxNSArMzQzLDI3IEBAIFdJLkNTU0NvbXBsZXRpb25zLmNzc05hbWVDb21w
bGV0aW9ucyA9IG51bGw7CiBXSS5DU1NDb21wbGV0aW9ucy5sZW5ndGhVbml0cyA9IG5ldyBTZXQo
WwogICAgICJjaCIsCiAgICAgImNtIiwKKyAgICAiZHZoIiwKKyAgICAiZHZtYXgiLAorICAgICJk
dm1pbiIsCisgICAgImR2dyIsCiAgICAgImVtIiwKICAgICAiZXgiLAogICAgICJpbiIsCisgICAg
Imx2aCIsCisgICAgImx2bWF4IiwKKyAgICAibHZtaW4iLAorICAgICJsdnciLAogICAgICJtbSIs
CiAgICAgInBjIiwKICAgICAicHQiLAogICAgICJweCIsCiAgICAgInEiLAogICAgICJyZW0iLAor
ICAgICJzdmgiLAorICAgICJzdm1heCIsCisgICAgInN2bWluIiwKKyAgICAic3Z3IiwKICAgICAi
dmgiLAogICAgICJ2bWF4IiwKICAgICAidm1pbiIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGNiY2E5MDhlMzgzNjBkMWQ5
Yzk5NDQyZTA5M2ZhMDg5MTUxZTk2ZDYuLjcxYzcyOWY3NGJjODcyYTJiYTZiNTQ5YzM2ZTllNmZj
ODNmYmZjMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCkBAIC0xMDUsNiArMTA1LDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29k
ZXIgPDwgYXZhaWxhYmxlU2NyZWVuU2l6ZTsKICAgICBlbmNvZGVyIDw8IG92ZXJyaWRlU2NyZWVu
U2l6ZTsKICAgICBlbmNvZGVyIDw8IHRleHRBdXRvc2l6aW5nV2lkdGg7CisgICAgZW5jb2RlciA8
PCBtaW5pbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgZW5jb2RlciA8PCBtYXhpbXVtVW5vYnNjdXJl
ZFNpemU7CiAgICAgZW5jb2RlciA8PCBkZXZpY2VPcmllbnRhdGlvbjsKICAgICBlbmNvZGVyIDw8
IGtleWJvYXJkSXNBdHRhY2hlZDsKQEAgLTM3Nyw2ICszNzgsOCBAQCBzdGQ6Om9wdGlvbmFsPFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
ZShJUEM6OgogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocGFyYW1ldGVycy50ZXh0QXV0b3NpemluZ1dpZHRoKSkKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubWluaW11bVVu
b2JzY3VyZWRTaXplKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubWF4aW11bVVub2JzY3VyZWRTaXplKSkKICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMu
ZGV2aWNlT3JpZW50YXRpb24pKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGViMWVlMDk1OWE1MTNkYjgyNTdkNjRhZGRjZWVhNTA5
YjdhM2U4NmUuLjQ5ZjYyNmJiNmJlMDg3ODQ4MWI5NzVhN2RlZTEwZmY4MmYwZWQ5ZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAg
LTE2OCw2ICsxNjgsNyBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAg
V2ViQ29yZTo6RmxvYXRTaXplIGF2YWlsYWJsZVNjcmVlblNpemU7CiAgICAgV2ViQ29yZTo6Rmxv
YXRTaXplIG92ZXJyaWRlU2NyZWVuU2l6ZTsKICAgICBmbG9hdCB0ZXh0QXV0b3NpemluZ1dpZHRo
OworICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtaW5pbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgV2Vi
Q29yZTo6RmxvYXRTaXplIG1heGltdW1Vbm9ic2N1cmVkU2l6ZTsKICAgICBpbnQzMl90IGRldmlj
ZU9yaWVudGF0aW9uIHsgMCB9OwogICAgIGJvb2wga2V5Ym9hcmRJc0F0dGFjaGVkIHsgZmFsc2Ug
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d0ludGVybmFsLmgKaW5kZXggMTk2NGE1MzYzNjNjMTJjNGNjNzg1MjE0YWY4ZjUzZmU1ZmM2N2Vj
Yi4uYzMwMjFmNmJlZWJhNDNlMzlhNjRjNjYxZjAwODlkZTQ1ZDM0NzFkMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgK
QEAgLTE1NSw2ICsxNTUsOCBAQCBjbGFzcyBWaWV3R2VzdHVyZUNvbnRyb2xsZXI7CiAKICAgICBz
dGQ6Om9wdGlvbmFsPENHU2l6ZT4gX3ZpZXdMYXlvdXRTaXplT3ZlcnJpZGU7CiAgICAgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpGbG9hdFNpemU+IF9sYXN0U2VudFZpZXdMYXlvdXRTaXplOworICAg
IHN0ZDo6b3B0aW9uYWw8Q0dTaXplPiBfbWluaW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU7Cisg
ICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFNpemU+IF9sYXN0U2VudE1pbmltdW1Vbm9i
c2N1cmVkU2l6ZTsKICAgICBzdGQ6Om9wdGlvbmFsPENHU2l6ZT4gX21heGltdW1Vbm9ic2N1cmVk
U2l6ZU92ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRTaXplPiBfbGFz
dFNlbnRNYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgQ0dSZWN0IF9pbnB1dFZpZXdCb3VuZHNJ
bldpbmRvdzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tX
ZWJWaWV3SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJ
T1MubW0KaW5kZXggYWYzMDQ2YjkyYzU2MzZiNzFlZjM1ODRkNDdlNmNhM2ZmN2U0ZTM4YS4uZDc4
Y2I5OGZkMzU3ZThhNGZhNDhmYTE3MTkxY2E5YzEwZmM4ZDkwNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KQEAgLTcwMyw2ICs3MDMsNyBA
QCAtICh2b2lkKV9wcm9jZXNzV2lsbFN3YXBPckRpZEV4aXQKICAgICBfZGlkRGVmZXJVcGRhdGVW
aXNpYmxlQ29udGVudFJlY3RzRm9yVW5zdGFibGVTY3JvbGxWaWV3ID0gTk87CiAgICAgX2N1cnJl
bnRseUFkanVzdGluZ1Njcm9sbFZpZXdJbnNldHNGb3JLZXlib2FyZCA9IE5POwogICAgIF9sYXN0
U2VudFZpZXdMYXlvdXRTaXplID0gc3RkOjpudWxsb3B0OworICAgIF9sYXN0U2VudE1pbmltdW1V
bm9ic2N1cmVkU2l6ZSA9IHN0ZDo6bnVsbG9wdDsKICAgICBfbGFzdFNlbnRNYXhpbXVtVW5vYnNj
dXJlZFNpemUgPSBzdGQ6Om51bGxvcHQ7CiAgICAgX2xhc3RTZW50RGV2aWNlT3JpZW50YXRpb24g
PSBzdGQ6Om51bGxvcHQ7CiAKQEAgLTE5MTAsNiArMTkxMSwxNSBAQCAtICh2b2lkKV9kaXNwYXRj
aFNldFZpZXdMYXlvdXRTaXplOihXZWJDb3JlOjpGbG9hdFNpemUpdmlld0xheW91dFNpemUKICAg
ICBfbGFzdFNlbnRWaWV3TGF5b3V0U2l6ZSA9IHZpZXdMYXlvdXRTaXplOwogfQogCistICh2b2lk
KV9kaXNwYXRjaFNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZTooV2ViQ29yZTo6RmxvYXRTaXplKW1p
bmltdW1Vbm9ic2N1cmVkU2l6ZQoreworICAgIGlmIChfbGFzdFNlbnRNaW5pbXVtVW5vYnNjdXJl
ZFNpemUgJiYgQ0dTaXplRXF1YWxUb1NpemUoX2xhc3RTZW50TWluaW11bVVub2JzY3VyZWRTaXpl
LnZhbHVlKCksIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZSkpCisgICAgICAgIHJldHVybjsKKworICAg
IF9wYWdlLT5zZXRNaW5pbXVtVW5vYnNjdXJlZFNpemUobWluaW11bVVub2JzY3VyZWRTaXplKTsK
KyAgICBfbGFzdFNlbnRNaW5pbXVtVW5vYnNjdXJlZFNpemUgPSBtaW5pbXVtVW5vYnNjdXJlZFNp
emU7Cit9CisKIC0gKHZvaWQpX2Rpc3BhdGNoU2V0TWF4aW11bVVub2JzY3VyZWRTaXplOihXZWJD
b3JlOjpGbG9hdFNpemUpbWF4aW11bVVub2JzY3VyZWRTaXplCiB7CiAgICAgaWYgKF9sYXN0U2Vu
dE1heGltdW1Vbm9ic2N1cmVkU2l6ZSAmJiBDR1NpemVFcXVhbFRvU2l6ZShfbGFzdFNlbnRNYXhp
bXVtVW5vYnNjdXJlZFNpemUudmFsdWUoKSwgbWF4aW11bVVub2JzY3VyZWRTaXplKSkKQEAgLTE5
NDUsNiArMTk1NSw4IEBAIC0gKHZvaWQpX2ZyYW1lT3JCb3VuZHNDaGFuZ2VkCiAgICAgaWYgKF9k
eW5hbWljVmlld3BvcnRVcGRhdGVNb2RlID09IFdlYktpdDo6RHluYW1pY1ZpZXdwb3J0VXBkYXRl
TW9kZTo6Tm90UmVzaXppbmcpIHsKICAgICAgICAgaWYgKCFfdmlld0xheW91dFNpemVPdmVycmlk
ZSkKICAgICAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldFZpZXdMYXlvdXRTaXplOltzZWxmIGFj
dGl2ZVZpZXdMYXlvdXRTaXplOnNlbGYuYm91bmRzXV07CisgICAgICAgIGlmICghX21pbmltdW1V
bm9ic2N1cmVkU2l6ZU92ZXJyaWRlKQorICAgICAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0TWlu
aW11bVVub2JzY3VyZWRTaXplOldlYkNvcmU6OkZsb2F0U2l6ZShib3VuZHMuc2l6ZSldOwogICAg
ICAgICBpZiAoIV9tYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSkKICAgICAgICAgICAgIFtz
ZWxmIF9kaXNwYXRjaFNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUo
Ym91bmRzLnNpemUpXTsKIApAQCAtMjI2NSw2ICsyMjc3LDExIEBAIC0gKHZvaWQpX2RpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lCiAgICAgICAgIF9nZXN0dXJlQ29udHJvbGxlci0+
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWUoKTsKIH0KIAorc3RhdGljIFdlYkNv
cmU6OkZsb2F0U2l6ZSBhY3RpdmVNaW5pbXVtVW5vYnNjdXJlZFNpemUoV0tXZWJWaWV3ICp3ZWJW
aWV3LCBjb25zdCBDR1JlY3QmIGJvdW5kcykKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6RmxvYXRT
aXplKHdlYlZpZXctPl9taW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZS52YWx1ZV9vcihib3Vu
ZHMuc2l6ZSkpOworfQorCiBzdGF0aWMgV2ViQ29yZTo6RmxvYXRTaXplIGFjdGl2ZU1heGltdW1V
bm9ic2N1cmVkU2l6ZShXS1dlYlZpZXcgKndlYlZpZXcsIGNvbnN0IENHUmVjdCYgYm91bmRzKQog
ewogICAgIHJldHVybiBXZWJDb3JlOjpGbG9hdFNpemUod2ViVmlldy0+X21heGltdW1Vbm9ic2N1
cmVkU2l6ZU92ZXJyaWRlLnZhbHVlX29yKGJvdW5kcy5zaXplKSk7CkBAIC0yMzU0LDEyICsyMzcx
LDE2IEBAIC0gKHZvaWQpX2RpZENvbXBsZXRlQW5pbWF0ZWRSZXNpemUKIAogICAgIENHUmVjdCBu
ZXdCb3VuZHMgPSBzZWxmLmJvdW5kczsKICAgICBhdXRvIG5ld1ZpZXdMYXlvdXRTaXplID0gW3Nl
bGYgYWN0aXZlVmlld0xheW91dFNpemU6bmV3Qm91bmRzXTsKKyAgICBhdXRvIG5ld01pbmltdW1V
bm9ic2N1cmVkU2l6ZSA9IGFjdGl2ZU1pbmltdW1Vbm9ic2N1cmVkU2l6ZShzZWxmLCBuZXdCb3Vu
ZHMpOwogICAgIGF1dG8gbmV3TWF4aW11bVVub2JzY3VyZWRTaXplID0gYWN0aXZlTWF4aW11bVVu
b2JzY3VyZWRTaXplKHNlbGYsIG5ld0JvdW5kcyk7CiAgICAgaW50MzJfdCBuZXdPcmllbnRhdGlv
biA9IGFjdGl2ZU9yaWVudGF0aW9uKHNlbGYpOwogCiAgICAgaWYgKCFfbGFzdFNlbnRWaWV3TGF5
b3V0U2l6ZSB8fCBuZXdWaWV3TGF5b3V0U2l6ZSAhPSBfbGFzdFNlbnRWaWV3TGF5b3V0U2l6ZS52
YWx1ZSgpKQogICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRWaWV3TGF5b3V0U2l6ZTpuZXdWaWV3
TGF5b3V0U2l6ZV07CiAKKyAgICBpZiAoIV9sYXN0U2VudE1pbmltdW1Vbm9ic2N1cmVkU2l6ZSB8
fCBuZXdNaW5pbXVtVW5vYnNjdXJlZFNpemUgIT0gX2xhc3RTZW50TWluaW11bVVub2JzY3VyZWRT
aXplLnZhbHVlKCkpCisgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1pbmltdW1Vbm9ic2N1cmVk
U2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUobmV3TWluaW11bVVub2JzY3VyZWRTaXplKV07CisKICAg
ICBpZiAoIV9sYXN0U2VudE1heGltdW1Vbm9ic2N1cmVkU2l6ZSB8fCBuZXdNYXhpbXVtVW5vYnNj
dXJlZFNpemUgIT0gX2xhc3RTZW50TWF4aW11bVVub2JzY3VyZWRTaXplLnZhbHVlKCkpCiAgICAg
ICAgIFtzZWxmIF9kaXNwYXRjaFNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZTpXZWJDb3JlOjpGbG9h
dFNpemUobmV3TWF4aW11bVVub2JzY3VyZWRTaXplKV07CiAKQEAgLTI3MTQsNiArMjczNSwyMSBA
QCAtICh2b2lkKV9zZXRWaWV3TGF5b3V0U2l6ZU92ZXJyaWRlOihDR1NpemUpdmlld0xheW91dFNp
emVPdmVycmlkZQogICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRWaWV3TGF5b3V0U2l6ZTpXZWJD
b3JlOjpGbG9hdFNpemUodmlld0xheW91dFNpemVPdmVycmlkZSldOwogfQogCistIChDR1NpemUp
X21pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlCit7CisgICAgQVNTRVJUKF9taW5pbXVtVW5v
YnNjdXJlZFNpemVPdmVycmlkZSk7CisgICAgcmV0dXJuIF9taW5pbXVtVW5vYnNjdXJlZFNpemVP
dmVycmlkZS52YWx1ZV9vcihDR1NpemVaZXJvKTsKK30KKworLSAodm9pZClfc2V0TWluaW11bVVu
b2JzY3VyZWRTaXplT3ZlcnJpZGU6KENHU2l6ZSlzaXplCit7CisgICAgQVNTRVJUKHNpemUud2lk
dGggPD0gc2VsZi5ib3VuZHMuc2l6ZS53aWR0aCAmJiBzaXplLmhlaWdodCA8PSBzZWxmLmJvdW5k
cy5zaXplLmhlaWdodCk7CisgICAgX21pbmltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlID0gc2l6
ZTsKKworICAgIGlmIChfZHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZSA9PSBXZWJLaXQ6OkR5bmFt
aWNWaWV3cG9ydFVwZGF0ZU1vZGU6Ok5vdFJlc2l6aW5nKQorICAgICAgICBbc2VsZiBfZGlzcGF0
Y2hTZXRNaW5pbXVtVW5vYnNjdXJlZFNpemU6V2ViQ29yZTo6RmxvYXRTaXplKHNpemUpXTsKK30K
KwogLy8gRGVwcmVjYXRlZCBTUEkKIC0gKENHU2l6ZSlfbWF4aW11bVVub2JzY3VyZWRTaXplT3Zl
cnJpZGUKIHsKQEAgLTMwMzgsNiArMzA3NCw3IEBAIC0gKHZvaWQpX2JlZ2luQW5pbWF0ZWRSZXNp
emVXaXRoVXBkYXRlczoodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sKICAgICAgICAgb2xkT2Jz
Y3VyZWRJbnNldHMgPSBfb2JzY3VyZWRJbnNldHM7CiAgICAgfQogICAgIGF1dG8gb2xkVmlld0xh
eW91dFNpemUgPSBbc2VsZiBhY3RpdmVWaWV3TGF5b3V0U2l6ZTpvbGRCb3VuZHNdOworICAgIGF1
dG8gb2xkTWluaW11bVVub2JzY3VyZWRTaXplID0gYWN0aXZlTWluaW11bVVub2JzY3VyZWRTaXpl
KHNlbGYsIG9sZEJvdW5kcyk7CiAgICAgYXV0byBvbGRNYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBh
Y3RpdmVNYXhpbXVtVW5vYnNjdXJlZFNpemUoc2VsZiwgb2xkQm91bmRzKTsKIAogICAgIHVwZGF0
ZUJsb2NrKCk7CkBAIC0zMDQ1LDYgKzMwODIsNyBAQCAtICh2b2lkKV9iZWdpbkFuaW1hdGVkUmVz
aXplV2l0aFVwZGF0ZXM6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrCiAgICAgQ0dSZWN0IG5l
d0JvdW5kcyA9IHNlbGYuYm91bmRzOwogICAgIGF1dG8gbmV3TWluaW11bUVmZmVjdGl2ZURldmlj
ZVdpZHRoID0gW3NlbGYgX21pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aF07CiAgICAgYXV0byBu
ZXdWaWV3TGF5b3V0U2l6ZSA9IFtzZWxmIGFjdGl2ZVZpZXdMYXlvdXRTaXplOm5ld0JvdW5kc107
CisgICAgYXV0byBuZXdNaW5pbXVtVW5vYnNjdXJlZFNpemUgPSBhY3RpdmVNaW5pbXVtVW5vYnNj
dXJlZFNpemUoc2VsZiwgbmV3Qm91bmRzKTsKICAgICBhdXRvIG5ld01heGltdW1Vbm9ic2N1cmVk
U2l6ZSA9IGFjdGl2ZU1heGltdW1Vbm9ic2N1cmVkU2l6ZShzZWxmLCBuZXdCb3VuZHMpOwogICAg
IGludDMyX3QgbmV3T3JpZW50YXRpb24gPSBhY3RpdmVPcmllbnRhdGlvbihzZWxmKTsKICAgICBV
SUVkZ2VJbnNldHMgbmV3T2JzY3VyZWRJbnNldHMgPSBfb2JzY3VyZWRJbnNldHM7CkBAIC0zMDY2
LDYgKzMxMDQsOCBAQCAtICh2b2lkKV9iZWdpbkFuaW1hdGVkUmVzaXplV2l0aFVwZGF0ZXM6KHZv
aWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrCiAgICAgICAgIFtzZWxmIF9mcmFtZU9yQm91bmRzQ2hh
bmdlZF07CiAgICAgICAgIGlmIChfdmlld0xheW91dFNpemVPdmVycmlkZSkKICAgICAgICAgICAg
IFtzZWxmIF9kaXNwYXRjaFNldFZpZXdMYXlvdXRTaXplOm5ld1ZpZXdMYXlvdXRTaXplXTsKKyAg
ICAgICAgaWYgKF9taW5pbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSkKKyAgICAgICAgICAgIFtz
ZWxmIF9kaXNwYXRjaFNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUo
bmV3TWluaW11bVVub2JzY3VyZWRTaXplKV07CiAgICAgICAgIGlmIChfbWF4aW11bVVub2JzY3Vy
ZWRTaXplT3ZlcnJpZGUpCiAgICAgICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRNYXhpbXVtVW5v
YnNjdXJlZFNpemU6V2ViQ29yZTo6RmxvYXRTaXplKG5ld01heGltdW1Vbm9ic2N1cmVkU2l6ZSld
OwogICAgICAgICBpZiAoX292ZXJyaWRlc0ludGVyZmFjZU9yaWVudGF0aW9uKQpAQCAtMzA3Niw2
ICszMTE2LDcgQEAgLSAodm9pZClfYmVnaW5BbmltYXRlZFJlc2l6ZVdpdGhVcGRhdGVzOih2b2lk
ICheKSh2b2lkKSl1cGRhdGVCbG9jawogCiAgICAgaWYgKENHUmVjdEVxdWFsVG9SZWN0KG9sZEJv
dW5kcywgbmV3Qm91bmRzKQogICAgICAgICAmJiBvbGRWaWV3TGF5b3V0U2l6ZSA9PSBuZXdWaWV3
TGF5b3V0U2l6ZQorICAgICAgICAmJiBvbGRNaW5pbXVtVW5vYnNjdXJlZFNpemUgPT0gbmV3TWlu
aW11bVVub2JzY3VyZWRTaXplCiAgICAgICAgICYmIG9sZE1heGltdW1Vbm9ic2N1cmVkU2l6ZSA9
PSBuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUKICAgICAgICAgJiYgb2xkT3JpZW50YXRpb24gPT0g
bmV3T3JpZW50YXRpb24KICAgICAgICAgJiYgb2xkTWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRo
ID09IG5ld01pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aApAQCAtMzE0MywxMCArMzE4NCwxMSBA
QCAtICh2b2lkKV9iZWdpbkFuaW1hdGVkUmVzaXplV2l0aFVwZGF0ZXM6KHZvaWQgKF4pKHZvaWQp
KXVwZGF0ZUJsb2NrCiAgICAgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQgdW5vYnNjdXJlZFNhZmVB
cmVhSW5zZXRzRXh0ZW50KHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cy50b3AsIHVub2JzY3VyZWRT
YWZlQXJlYUluc2V0cy5yaWdodCwgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLmJvdHRvbSwgdW5v
YnNjdXJlZFNhZmVBcmVhSW5zZXRzLmxlZnQpOwogCiAgICAgX2xhc3RTZW50Vmlld0xheW91dFNp
emUgPSBuZXdWaWV3TGF5b3V0U2l6ZTsKKyAgICBfbGFzdFNlbnRNaW5pbXVtVW5vYnNjdXJlZFNp
emUgPSBuZXdNaW5pbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgX2xhc3RTZW50TWF4aW11bVVub2Jz
Y3VyZWRTaXplID0gbmV3TWF4aW11bVVub2JzY3VyZWRTaXplOwogICAgIF9sYXN0U2VudERldmlj
ZU9yaWVudGF0aW9uID0gbmV3T3JpZW50YXRpb247CiAKLSAgICBfcGFnZS0+ZHluYW1pY1ZpZXdw
b3J0U2l6ZVVwZGF0ZShuZXdWaWV3TGF5b3V0U2l6ZSwgbmV3TWF4aW11bVVub2JzY3VyZWRTaXpl
LCB2aXNpYmxlUmVjdEluQ29udGVudENvb3JkaW5hdGVzLCB1bm9ic2N1cmVkUmVjdEluQ29udGVu
dENvb3JkaW5hdGVzLCBmdXR1cmVVbm9ic2N1cmVkUmVjdEluU2VsZkNvb3JkaW5hdGVzLCB1bm9i
c2N1cmVkU2FmZUFyZWFJbnNldHNFeHRlbnQsIHRhcmdldFNjYWxlLCBuZXdPcmllbnRhdGlvbiwg
bmV3TWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCArK19jdXJyZW50RHluYW1pY1ZpZXdwb3J0
U2l6ZVVwZGF0ZUlEKTsKKyAgICBfcGFnZS0+ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShuZXdW
aWV3TGF5b3V0U2l6ZSwgbmV3TWluaW11bVVub2JzY3VyZWRTaXplLCBuZXdNYXhpbXVtVW5vYnNj
dXJlZFNpemUsIHZpc2libGVSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMsIHVub2JzY3VyZWRSZWN0
SW5Db250ZW50Q29vcmRpbmF0ZXMsIGZ1dHVyZVVub2JzY3VyZWRSZWN0SW5TZWxmQ29vcmRpbmF0
ZXMsIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0c0V4dGVudCwgdGFyZ2V0U2NhbGUsIG5ld09yaWVu
dGF0aW9uLCBuZXdNaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsICsrX2N1cnJlbnREeW5hbWlj
Vmlld3BvcnRTaXplVXBkYXRlSUQpOwogICAgIGlmIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHkq
IGRyYXdpbmdBcmVhID0gX3BhZ2UtPmRyYXdpbmdBcmVhKCkpCiAgICAgICAgIGRyYXdpbmdBcmVh
LT5zZXRTaXplKFdlYkNvcmU6OkludFNpemUobmV3Qm91bmRzLnNpemUpKTsKIApAQCAtMzI2OCwx
MiArMzMxMCwxNCBAQCAtICh2b2lkKV9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11
bUxheW91dFNpemU6KENHU2l6ZSltaW5pbXVtTGF5b3V0U2l6ZQogICAgICAgICBSRUxFQVNFX0xP
R19GQVVMVChWaXNpYmxlUmVjdHMsICIlczogRXJyb3I6IGF0dGVtcHRpbmcgdG8gb3ZlcnJpZGUg
bGF5b3V0IHBhcmFtZXRlcnMgd2l0aCBuZWdhdGl2ZSB3aWR0aCBvciBoZWlnaHQ6ICVAIiwgX19Q
UkVUVFlfRlVOQ1RJT05fXywgTlNTdHJpbmdGcm9tQ0dTaXplKG1pbmltdW1MYXlvdXRTaXplKSk7
CiAKICAgICBbc2VsZiBfc2V0Vmlld0xheW91dFNpemVPdmVycmlkZTpDR1NpemVNYWtlKHN0ZDo6
bWF4PENHRmxvYXQ+KDAsIG1pbmltdW1MYXlvdXRTaXplLndpZHRoKSwgc3RkOjptYXg8Q0dGbG9h
dD4oMCwgbWluaW11bUxheW91dFNpemUuaGVpZ2h0KSldOworICAgIFtzZWxmIF9zZXRNaW5pbXVt
VW5vYnNjdXJlZFNpemVPdmVycmlkZTptaW5pbXVtTGF5b3V0U2l6ZV07CiAgICAgW3NlbGYgX3Nl
dE1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOm1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJy
aWRlXTsKIH0KIAogLSAodm9pZClfY2xlYXJPdmVycmlkZUxheW91dFBhcmFtZXRlcnMKIHsKICAg
ICBfdmlld0xheW91dFNpemVPdmVycmlkZSA9IHN0ZDo6bnVsbG9wdDsKKyAgICBfbWluaW11bVVu
b2JzY3VyZWRTaXplT3ZlcnJpZGUgPSBzdGQ6Om51bGxvcHQ7CiAgICAgX21heGltdW1Vbm9ic2N1
cmVkU2l6ZU92ZXJyaWRlID0gc3RkOjpudWxsb3B0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAzODJiNTNlZjdlOTc2Y2JiZjJhNDliODM4YjdiYTYx
ZmQyNDY3YWIyLi45Mzk3Zjc4YmU2ZTBmMDQ1YzQ4YTQ0NDM5ZTE1NjRmZDFhMWZlODVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTgyNDAsNiArODI0MCw3
IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFt
ZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAgICAgcGFyYW1ldGVycy5vdmVycmlkZVNjcmVl
blNpemUgPSBvdmVycmlkZVNjcmVlblNpemUoKTsKICAgICBwYXJhbWV0ZXJzLnRleHRBdXRvc2l6
aW5nV2lkdGggPSB0ZXh0QXV0b3NpemluZ1dpZHRoKCk7CiAgICAgcGFyYW1ldGVycy5taW1lVHlw
ZXNXaXRoQ3VzdG9tQ29udGVudFByb3ZpZGVycyA9IHBhZ2VDbGllbnQoKS5taW1lVHlwZXNXaXRo
Q3VzdG9tQ29udGVudFByb3ZpZGVycygpOworICAgIHBhcmFtZXRlcnMubWluaW11bVVub2JzY3Vy
ZWRTaXplID0gbV9taW5pbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgcGFyYW1ldGVycy5tYXhpbXVt
VW5vYnNjdXJlZFNpemUgPSBtX21heGltdW1Vbm9ic2N1cmVkU2l6ZTsKICAgICBwYXJhbWV0ZXJz
LmRldmljZU9yaWVudGF0aW9uID0gbV9kZXZpY2VPcmllbnRhdGlvbjsKICAgICBwYXJhbWV0ZXJz
LmtleWJvYXJkSXNBdHRhY2hlZCA9IGlzSW5IYXJkd2FyZUtleWJvYXJkTW9kZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAyYWVlMDg0Yzc2NjE4YmNmNzI1NmMx
ZmQ4MWMxYzgyYjJiMDQ2Njk2Li5hMzQ2YTY4OTMzODI5ZTBkZGYwM2YwNjcyYTUxNDIwZGU1ZWU4
NzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtODE3LDkgKzgx
NywxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3JvbGxpbmdOb2RlU2Nyb2xsV2lsbFN0YXJ0U2Ny
b2xsKCk7CiAgICAgdm9pZCBzY3JvbGxpbmdOb2RlU2Nyb2xsRGlkRW5kU2Nyb2xsKCk7CiAKLSAg
ICB2b2lkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiB2aWV3TGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNj
dXJlZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRS
ZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29v
cmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiB1bm9ic2N1cmVkU2FmZUFy
ZWFJbnNldHMsIGRvdWJsZSB0YXJnZXRTY2FsZSwgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwg
ZG91YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCwgRHluYW1pY1ZpZXdwb3J0U2l6ZVVw
ZGF0ZUlEKTsKKyAgICB2b2lkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBt
aW5pbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVu
b2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250
ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmll
d0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdW5vYnNjdXJlZFNh
ZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0U2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRp
b24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsIER5bmFtaWNWaWV3cG9ydFNp
emVVcGRhdGVJRCk7CiAKICAgICB2b2lkIHNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlv
dXRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIGRvdWJsZSBzY2FsZUZhY3RvciwgZG91
YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCk7CisgICAgdm9pZCBzZXRNaW5pbXVtVW5v
YnNjdXJlZFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CisgICAgV2ViQ29yZTo6Rmxv
YXRTaXplIG1pbmltdW1Vbm9ic2N1cmVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWluaW11bVVu
b2JzY3VyZWRTaXplOyB9CiAgICAgdm9pZCBzZXRNYXhpbXVtVW5vYnNjdXJlZFNpemUoY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1heGltdW1Vbm9i
c2N1cmVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4aW11bVVub2JzY3VyZWRTaXplOyB9CiAg
ICAgdm9pZCBzZXREZXZpY2VPcmllbnRhdGlvbihpbnQzMl90KTsKQEAgLTI5ODAsNiArMjk4Miw3
IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBGdW5jdGlvbjxib29s
KCk+IG1fZGV2aWNlT3JpZW50YXRpb25Vc2VyUGVybWlzc2lvbkhhbmRsZXJGb3JUZXN0aW5nOwog
ICAgIGJvb2wgbV93YWl0aW5nRm9yUG9zdExheW91dEVkaXRvclN0YXRlVXBkYXRlQWZ0ZXJGb2N1
c2luZ0VsZW1lbnQgeyBmYWxzZSB9OworICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX21pbmltdW1V
bm9ic2N1cmVkU2l6ZTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV9tYXhpbXVtVW5vYnNjdXJl
ZFNpemU7CiAgICAgYm9vbCBtX2xhc3RPYnNlcnZlZFN0YXRlV2FzQmFja2dyb3VuZCB7IGZhbHNl
IH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tCmluZGV4IDRjNzM4YmE4MjYxODMyNjQ3ZTE2NTczMzlhODlhMDBjMGUwMTU3NGIuLmI0
NjNjNTVlYjEwOWQ0YjZkMmFkZDFlODg0ODExNThhMzBjNzVmNTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMjY0LDcgKzI2NCw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpzY3JvbGxpbmdOb2RlU2Nyb2xsRGlkRW5kU2Nyb2xsKCkKICAg
ICBwYWdlQ2xpZW50KCkuc2Nyb2xsaW5nTm9kZVNjcm9sbERpZEVuZFNjcm9sbCgpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNp
emUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9i
c2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFy
Z2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6
RmxvYXRCb3hFeHRlbnQmIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHRhcmdldFNj
YWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCBkb3VibGUgbWluaW11bUVmZmVjdGl2ZURl
dmljZVdpZHRoLCBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQgZHluYW1pY1ZpZXdwb3J0U2l6
ZVVwZGF0ZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUo
Y29uc3QgRmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBtaW5pbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11
bVVub2JzY3VyZWRTaXplLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgRmxvYXRSZWN0
JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJD
b3JlOjpGbG9hdEJveEV4dGVudCYgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFy
Z2V0U2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0
aXZlRGV2aWNlV2lkdGgsIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCBkeW5hbWljVmlld3Bv
cnRTaXplVXBkYXRlSUQpCiB7CiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKQogICAgICAg
ICByZXR1cm47CkBAIC0yNzMsNyArMjczLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmR5bmFtaWNW
aWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgY28KIAog
ICAgIG1fdmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUgPSB2aWV3TGF5b3V0U2l6
ZTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkR5bmFtaWNWaWV3cG9y
dFNpemVVcGRhdGUodmlld0xheW91dFNpemUsCi0gICAgICAgIG1heGltdW1Vbm9ic2N1cmVkU2l6
ZSwgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCB0YXJnZXRVbm9ic2N1cmVkUmVjdCwKKyAgICAg
ICAgbWluaW11bVVub2JzY3VyZWRTaXplLCBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIHRhcmdldEV4
cG9zZWRDb250ZW50UmVjdCwgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsCiAgICAgICAgIHRhcmdldFVu
b2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIHVub2JzY3VyZWRTYWZlQXJlYUlu
c2V0cywKICAgICAgICAgdGFyZ2V0U2NhbGUsIGRldmljZU9yaWVudGF0aW9uLCBtaW5pbXVtRWZm
ZWN0aXZlRGV2aWNlV2lkdGgsIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCksIG1fd2ViUGFn
ZUlEKTsKIApAQCAtMzAwLDYgKzMwMCwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0Rm9yY2VB
bHdheXNVc2VyU2NhbGFibGUoYm9vbCB1c2VyU2NhbGFibGUpCiAgICAgICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0Rm9yY2VBbHdheXNVc2VyU2NhbGFibGUodXNlclNj
YWxhYmxlKSwgbV93ZWJQYWdlSUQpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TWluaW11
bVVub2JzY3VyZWRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSkKK3sKKyAgICBt
X21pbmltdW1Vbm9ic2N1cmVkU2l6ZSA9IHNpemU7CisKKyAgICBpZiAoaGFzUnVubmluZ1Byb2Nl
c3MoKSkKKyAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRNaW5p
bXVtVW5vYnNjdXJlZFNpemUoc2l6ZSksIG1fd2ViUGFnZUlEKTsKK30KKwogdm9pZCBXZWJQYWdl
UHJveHk6OnNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IHNpemUpCiB7CiAgICAgbV9tYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBzaXplOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggOTlhNTFhYjVmZWFhZTQ3OWEwM2EzZDU4MWM4ODk0
NzBiMDBlZTljMi4uYjBhOWI4OTg4NjlhNTFlZDQ5ZDNmZjUwMTc1Y2I3ZDMyY2EyN2U5YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xNTU3LDcgKzE1NTcsNyBAQCB2b2lk
IFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkK
ICAgICB9CiAKICAgICBpZiAoYXV0byB2aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzID0gd2Vi
UGFnZS0+dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpKQotICAgICAgICB2aWV3LT5z
ZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCp2aWV3cG9ydFNpemVGb3JWaWV3cG9y
dFVuaXRzKTsKKyAgICAgICAgdmlldy0+c2V0U2l6ZUZvckNTU0xhcmdlVmlld3BvcnRVbml0cygq
dmlld3BvcnRTaXplRm9yVmlld3BvcnRVbml0cyk7CiAgICAgdmlldy0+c2V0UHJvaGliaXRzU2Ny
b2xsaW5nKHNob3VsZERpc2FibGVTY3JvbGxpbmcpOwogICAgIHZpZXctPnNldFZpc3VhbFVwZGF0
ZXNBbGxvd2VkQnlDbGllbnQoIXdlYlBhZ2UtPnNob3VsZEV4dGVuZEluY3JlbWVudGFsUmVuZGVy
aW5nU3VwcHJlc3Npb24oKSk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGMxODY2YTI1YmI5ZDQ3NjcxMTA4
YzQwOWE4ZjJmNGIzM2FhYTM3ZjcuLmE4MzBhYTNmOTlmMjc1ZDEwYzRlZWE2NjE1ZGNmZWYzNWNh
Mjg3YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC04NjgsNiArODY4LDcgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdl
SUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICAgICBzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6
ZShwYXJhbWV0ZXJzLnZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplLCBwYXJhbWV0
ZXJzLnZpZXdwb3J0Q29uZmlndXJhdGlvbkxheW91dFNpemVTY2FsZUZhY3RvciwgcGFyYW1ldGVy
cy52aWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgpOworICAg
IHNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZShwYXJhbWV0ZXJzLm1pbmltdW1Vbm9ic2N1cmVkU2l6
ZSk7CiAgICAgc2V0TWF4aW11bVVub2JzY3VyZWRTaXplKHBhcmFtZXRlcnMubWF4aW11bVVub2Jz
Y3VyZWRTaXplKTsKICNlbmRpZgogCkBAIC02MjYwLDcgKzYyNjEsNyBAQCB2b2lkIFdlYlBhZ2U6
OnNldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpJbnRTaXplPgogCiAgICAgbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzID0gdmll
d3BvcnRTaXplOwogICAgIGlmIChtX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpCi0g
ICAgICAgIGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnZpZXcoKS0+c2V0Vmlld3BvcnRTaXplRm9y
Q1NTVmlld3BvcnRVbml0cygqbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKTsKKyAg
ICAgICAgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkudmlldygpLT5zZXRTaXplRm9yQ1NTTGFyZ2VW
aWV3cG9ydFVuaXRzKCptX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpOwogfQogCiBi
b29sIFdlYlBhZ2U6OmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBhMmJhMjMwNjEwMThkN2UwNjQ2ZmNh
YjlmMGY2Mzc0ZjBjNGU5ZDU3Li41Y2Q3MzE1NDA0N2JjMTg5NTFjZmUwMjBmNGE0Zjc2MGQ0Y2Y0
ZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0x
MDgxLDkgKzEwODEsMTAgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlVmlzaWJpbGl0eVN0YXRl
KGJvb2wgaXNJbml0aWFsU3RhdGUgPSBmYWxzZSk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgIHZvaWQgc2V0TWluaW11bVVub2JzY3VyZWRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYpOwogICAgIHZvaWQgc2V0TWF4aW11bVVub2JzY3VyZWRTaXplKGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYpOwogICAgIHZvaWQgc2V0RGV2aWNlT3JpZW50YXRpb24oaW50MzJfdCk7Ci0g
ICAgdm9pZCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYgdmlld0xheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2Jz
Y3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50
UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nv
b3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdGFyZ2V0VW5vYnNjdXJl
ZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24s
IGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsIER5bmFtaWNWaWV3cG9ydFNpemVV
cGRhdGVJRCk7CisgICAgdm9pZCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYg
bWluaW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1V
bm9ic2N1cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29u
dGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3Qs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZp
ZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHRhcmdldFVub2Jz
Y3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0
aW9uLCBkb3VibGUgbWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCBEeW5hbWljVmlld3BvcnRT
aXplVXBkYXRlSUQpOwogICAgIGJvb2wgc2NhbGVXYXNTZXRCeVVJUHJvY2VzcygpIGNvbnN0IHsg
cmV0dXJuIG1fc2NhbGVXYXNTZXRCeVVJUHJvY2VzczsgfQogICAgIHZvaWQgd2lsbFN0YXJ0VXNl
clRyaWdnZXJlZFpvb21pbmcoKTsKICAgICB2b2lkIGFwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2
ZSgpOwpAQCAtMjI1OCw2ICsyMjU5LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6U2ltcGxlUmFuZ2U+IG1faW5pdGlhbFNlbGVjdGlvbjsKICAgICBXZWJDb3JlOjpW
aXNpYmxlU2VsZWN0aW9uIG1fc3RvcmVkU2VsZWN0aW9uRm9yQWNjZXNzaWJpbGl0eSB7IFdlYkNv
cmU6OlZpc2libGVTZWxlY3Rpb24oKSB9OworICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX21pbmlt
dW1Vbm9ic2N1cmVkU2l6ZTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV9tYXhpbXVtVW5vYnNj
dXJlZFNpemU7CiAgICAgaW50MzJfdCBtX2RldmljZU9yaWVudGF0aW9uIHsgMCB9OwogICAgIGJv
b2wgbV9rZXlib2FyZElzQXR0YWNoZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggOWViNzEyMTJi
ZWQ3YjA1NmQ2YzYzNGE5M2ZiNmU5ZTJmMmVmZTUxOS4uMzhjZTQ1NzBjOThhOGI3YTkyYTEwMzhh
MjE1NWExYjI3ZWE0MTg0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC01MywxMCArNTMsMTEgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgTW91c2VFdmVudChXZWJLaXQ6OldlYk1v
dXNlRXZlbnQgZXZlbnQsIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYktpdDo6U2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlPj4gc2FuZGJveEV4dGVuc2lvbnMpCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKICAgICBTZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZShXZWJDb3JlOjpG
bG9hdFNpemUgc2l6ZSwgZG91YmxlIHNjYWxlRmFjdG9yLCBkb3VibGUgbWluaW11bUVmZmVjdGl2
ZURldmljZVdpZHRoKQorICAgIFNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZShXZWJDb3JlOjpGbG9h
dFNpemUgc2l6ZSkKICAgICBTZXRNYXhpbXVtVW5vYnNjdXJlZFNpemUoV2ViQ29yZTo6RmxvYXRT
aXplIHNpemUpCiAgICAgU2V0RGV2aWNlT3JpZW50YXRpb24oaW50MzJfdCBkZXZpY2VPcmllbnRh
dGlvbikKICAgICBTZXRPdmVycmlkZVZpZXdwb3J0QXJndW1lbnRzKHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6Vmlld3BvcnRBcmd1bWVudHM+IGFyZ3VtZW50cykKLSAgICBEeW5hbWljVmlld3BvcnRT
aXplVXBkYXRlKFdlYkNvcmU6OkZsb2F0U2l6ZSB2aWV3TGF5b3V0U2l6ZSwgV2ViQ29yZTo6Rmxv
YXRTaXplIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldEV4
cG9zZWRDb250ZW50UmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0
LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29y
ZGluYXRlcywgV2ViQ29yZTo6UmVjdEVkZ2VzPGZsb2F0PiB0YXJnZXRVbm9ic2N1cmVkU2FmZUFy
ZWFJbnNldHMsIGRvdWJsZSBzY2FsZSwgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgZG91Ymxl
IG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCwgdWludDY0X3QgZHluYW1pY1ZpZXdwb3J0U2l6
ZVVwZGF0ZUlEKQorICAgIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoV2ViQ29yZTo6RmxvYXRT
aXplIHZpZXdMYXlvdXRTaXplLCBXZWJDb3JlOjpGbG9hdFNpemUgbWluaW11bVVub2JzY3VyZWRT
aXplLCBXZWJDb3JlOjpGbG9hdFNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplLCBXZWJDb3JlOjpG
bG9hdFJlY3QgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFy
Z2V0VW5vYnNjdXJlZFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVkUmVj
dEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBXZWJDb3JlOjpSZWN0RWRnZXM8ZmxvYXQ+IHRhcmdl
dFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHNjYWxlLCBpbnQzMl90IGRldmljZU9y
aWVudGF0aW9uLCBkb3VibGUgbWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCB1aW50NjRfdCBk
eW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpCiAgICAgCiAgICAgU2V0U2NyZWVuSXNCZWluZ0Nh
cHR1cmVkKGJvb2wgY2FwdHVyZWQpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggZTdlNjJmMzRkMTAyYjI5MGMxNDk4YjA3
ZmI1YjRhY2QwYjY1MmE5MS4uZTczNjdhYWRmYjEzOGFmOTIwYTcxNzA0ZjYxNDBkNDg3ZjFiZGE3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KQEAgLTM0MzQsNiArMzQzNCwxMiBAQCB2b2lkIFdlYlBhZ2U6OnNldFZpZXdwb3J0
Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZG91Ygog
ICAgIHZpZXdwb3J0Q29uZmlndXJhdGlvbkNoYW5nZWQoem9vbVRvSW5pdGlhbFNjYWxlKTsKIH0K
IAordm9pZCBXZWJQYWdlOjpzZXRNaW5pbXVtVW5vYnNjdXJlZFNpemUoY29uc3QgRmxvYXRTaXpl
JiBtaW5pbXVtVW5vYnNjdXJlZFNpemUpCit7CisgICAgbV9taW5pbXVtVW5vYnNjdXJlZFNpemUg
PSBtaW5pbXVtVW5vYnNjdXJlZFNpemU7CisgICAgdXBkYXRlVmlld3BvcnRTaXplRm9yQ1NTVmll
d3BvcnRVbml0cygpOworfQorCiB2b2lkIFdlYlBhZ2U6OnNldE1heGltdW1Vbm9ic2N1cmVkU2l6
ZShjb25zdCBGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSkKIHsKICAgICBtX21heGlt
dW1Vbm9ic2N1cmVkU2l6ZSA9IG1heGltdW1Vbm9ic2N1cmVkU2l6ZTsKQEAgLTM0NTMsNyArMzQ1
OSw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0T3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlZpZXdwb3J0CiAgICAgbV9wYWdlLT5zZXRPdmVycmlkZVZp
ZXdwb3J0QXJndW1lbnRzKGFyZ3VtZW50cyk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0
JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNj
dXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJ
blNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHRh
cmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90
IGRldmljZU9yaWVudGF0aW9uLCBkb3VibGUgbWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCBE
eW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKQor
dm9pZCBXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYg
dmlld0xheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWluaW11bVVub2JzY3Vy
ZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwg
Y29uc3QgRmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0
VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6Rmxv
YXRCb3hFeHRlbnQmIHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHRhcmdl
dFNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCBkb3VibGUgbWluaW11bUVmZmVjdGl2
ZURldmljZVdpZHRoLCBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQgZHluYW1pY1ZpZXdwb3J0
U2l6ZVVwZGF0ZUlEKQogewogICAgIFNldEZvclNjb3BlPGJvb2w+IGR5bmFtaWNTaXplVXBkYXRl
R3VhcmQobV9pbkR5bmFtaWNTaXplVXBkYXRlLCB0cnVlKTsKICAgICAvLyBGSVhNRTogdGhpcyBk
b2VzIG5vdCBoYW5kbGUgdGhlIGNhc2VzIHdoZXJlIHRoZSBjb250ZW50IHdvdWxkIGNoYW5nZSB0
aGUgY29udGVudCBzaXplIG9yIHNjcm9sbCBwb3NpdGlvbiBmcm9tIEphdmFTY3JpcHQuCkBAIC0z
NTAxLDYgKzM1MDcsNyBAQCB2b2lkIFdlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUo
Y29uc3QgRmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgY29uc3QgVwogICAgIGlmIChzZXRGaXhl
ZExheW91dFNpemUobmV3TGF5b3V0U2l6ZSkpCiAgICAgICAgIHJlc2V0VGV4dEF1dG9zaXppbmco
KTsKIAorICAgIHNldE1pbmltdW1Vbm9ic2N1cmVkU2l6ZShtaW5pbXVtVW5vYnNjdXJlZFNpemUp
OwogICAgIHNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZShtYXhpbXVtVW5vYnNjdXJlZFNpemUpOwog
ICAgIG1fcGFnZS0+c2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzKHRhcmdldFVub2JzY3VyZWRT
YWZlQXJlYUluc2V0cyk7CiAKQEAgLTM4NDcsMTMgKzM4NTQsMTkgQEAgdm9pZCBXZWJQYWdlOjp2
aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2VkKFpvb21Ub0luaXRpYWxTY2FsZSB6b29tVG9Jbml0
aWFsU2NhbGUKIAogdm9pZCBXZWJQYWdlOjp1cGRhdGVWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9y
dFVuaXRzKCkKIHsKKyAgICBGbG9hdFNpemUgc21hbGxlc3RVbm9ic2N1cmVkU2l6ZSA9IG1fbWlu
aW11bVVub2JzY3VyZWRTaXplOworICAgIGlmIChzbWFsbGVzdFVub2JzY3VyZWRTaXplLmlzRW1w
dHkoKSkKKyAgICAgICAgc21hbGxlc3RVbm9ic2N1cmVkU2l6ZSA9IG1fdmlld3BvcnRDb25maWd1
cmF0aW9uLnZpZXdMYXlvdXRTaXplKCk7CisKICAgICBGbG9hdFNpemUgbGFyZ2VzdFVub2JzY3Vy
ZWRTaXplID0gbV9tYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgaWYgKGxhcmdlc3RVbm9ic2N1
cmVkU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIGxhcmdlc3RVbm9ic2N1cmVkU2l6ZSA9IG1fdmll
d3BvcnRDb25maWd1cmF0aW9uLnZpZXdMYXlvdXRTaXplKCk7CiAKICAgICBGcmFtZVZpZXcmIGZy
YW1lVmlldyA9ICptYWluRnJhbWVWaWV3KCk7CisgICAgc21hbGxlc3RVbm9ic2N1cmVkU2l6ZS5z
Y2FsZSgxIC8gbV92aWV3cG9ydENvbmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxlSWdub3JpbmdDb250
ZW50U2l6ZSgpKTsKICAgICBsYXJnZXN0VW5vYnNjdXJlZFNpemUuc2NhbGUoMSAvIG1fdmlld3Bv
cnRDb25maWd1cmF0aW9uLmluaXRpYWxTY2FsZUlnbm9yaW5nQ29udGVudFNpemUoKSk7Ci0gICAg
ZnJhbWVWaWV3LnNldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMocm91bmRlZEludFNp
emUobGFyZ2VzdFVub2JzY3VyZWRTaXplKSk7CisgICAgZnJhbWVWaWV3LnNldFNpemVGb3JDU1NT
bWFsbFZpZXdwb3J0VW5pdHMocm91bmRlZEludFNpemUoc21hbGxlc3RVbm9ic2N1cmVkU2l6ZSkp
OworICAgIGZyYW1lVmlldy5zZXRTaXplRm9yQ1NTTGFyZ2VWaWV3cG9ydFVuaXRzKHJvdW5kZWRJ
bnRTaXplKGxhcmdlc3RVbm9ic2N1cmVkU2l6ZSkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmFwcGxp
Y2F0aW9uV2lsbFJlc2lnbkFjdGl2ZSgpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggZjAzNmNlODdlODZmODRiNDVjNGU2YTdkMjdkYjNiN2FmZDBk
MmUwOC4uZjI4ZDdiM2MxMjJiMzc1NTBlOTVhMzA5MjdiOWRkOWM4OTMwN2JkNSAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBA
CisyMDIxLTEwLTEyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAg
ICBbY3NzLXZhbHVlcy00XSBTdXBwb3J0IHNtYWxsIChzdiopLCBsYXJnZSAobHYqKSBhbmQgZHlu
YW1pYyAoZHYqKSB2aWV3cG9ydCB1bml0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE5Mjg3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTg1NzM3
MD4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NTU1ZpZXdwb3J0VW5pdHMubW06IEFkZGVkLgor
ICAgICAgICAoZXZhbHVhdGVGb3JJbnQpOgorICAgICAgICAoZ2V0RWxlbWVudEhlaWdodCk6Cisg
ICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5pdHMuQWxsU2FtZSk6CisgICAgICAgIChURVNULkNT
U1ZpZXdwb3J0VW5pdHMuRW1wdHlVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlcyk6CisgICAgICAgIChU
RVNULkNTU1ZpZXdwb3J0VW5pdHMuU2FtZVVub2JzY3VyZWRTaXplT3ZlcnJpZGVzKToKKyAgICAg
ICAgKFRFU1QuQ1NTVmlld3BvcnRVbml0cy5EaWZmZXJlbnRVbm9ic2N1cmVkU2l6ZU92ZXJyaWRl
cyk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DU1NWaWV3cG9y
dFVuaXRzLmh0bWw6IEFkZGVkLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0Zsb2F0U2l6ZVRlc3RzLmNwcDoKKyAgICAgICAgKFRFU1QuRmxvYXRTaXplLk1pbkRpbWVu
c2lvbik6IEFkZGVkLgorICAgICAgICAoVEVTVC5GbG9hdFNpemUuTWF4RGltZW5zaW9uKTogQWRk
ZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ludFNpemVUZXN0cy5j
cHA6CisgICAgICAgIChURVNULkludFNpemUuTWluRGltZW5zaW9uKTogQWRkZWQuCisgICAgICAg
IChURVNULkludFNpemUuTWF4RGltZW5zaW9uKTogQWRkZWQuCisgICAgICAgIEFkZCB1dGlsaXR5
L2hlbHBlciBtZXRob2RzIGZvciByZXR1cm5pbmcgdGhlIG1pbmltdW0vbWF4aW11bSBvZiB0aGUg
d2lkdGggdnMgaGVpZ2h0LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMTAtMTkgIEFsZXggQ2hyaXN0ZW5z
ZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggaU9TIEFQSSB0ZXN0
cyBhZnRlciByMjg0MzA0CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGMxNzkxNjc2YjU4YTU5
NGFhMGVmOGIzNDRkYmExYzUwYmMyZDZjMWIuLjk0ZjA2MzE4ODhjYjgyMDQ5NGQwZjlmZTUxOTcy
MDMwYmUzNjBmZDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04OTMsNiArODkzLDggQEAK
IAkJOTNGQ0RCMzQyNjM2MzE1NjAwNDZERDdEIC8qIFNvcnRlZEFycmF5TWFwLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRkNEQjMzMjYzNjMxNTYw
MDQ2REQ3RCAvKiBTb3J0ZWRBcnJheU1hcC5jcHAgKi87IH07CiAJCTk1MDk1RjIwMjYyRkZGQTUw
MDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRvcENvbG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwOTVGMUYyNjJGRkZBNTAwMDBEOTIwIC8qIFNhbXBs
ZWRQYWdlVG9wQ29sb3IubW0gKi87IH07CiAJCTk1MEU0Q0MxMjUyRTc1MjQwMDcxNjU5RiAvKiBp
T1NTdHlsdXNTdXBwb3J0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0g
Ki87IH07CisJCTk1MkY3MTY1MjcwQkQ5N0UwMEQwMERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUyRjcxNjQy
NzBCRDk3RTAwRDAwRENDIC8qIENTU1ZpZXdwb3J0VW5pdHMubW0gKi87IH07CisJCTk1MkY3MTY3
MjcwQkQ5Q0IwMEQwMERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUyRjcxNjYyNzBCRDk5NzAw
RDAwRENDIC8qIENTU1ZpZXdwb3J0VW5pdHMuaHRtbCAqLzsgfTsKIAkJOTUzQUJCMzUyNUMwRDY4
MjAwNEM4QjczIC8qIFdLV2ViVmlld1VuZGVyUGFnZUJhY2tncm91bmRDb2xvci5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1M0FCQjM0MjVDMEQ2ODEw
MDRDOEI3MyAvKiBXS1dlYlZpZXdVbmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3IubW0gKi87IH07CiAJ
CTk1OEI3MEUxMjZDNDZFREMwMEIyMDIyQiAvKiBOU0F0dHJpYnV0ZWRTdHJpbmdXZWJLaXRBZGRp
dGlvbnMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NThCNzBFMDI2QzQ2RURDMDBCMjAyMkIgLyogTlNBdHRyaWJ1dGVkU3RyaW5nV2ViS2l0QWRkaXRp
b25zLm1tICovOyB9OwogCQk5NUE1MjQ5NTI1ODFBMTBEMDA0NjFGRTkgLyogV0tXZWJWaWV3VGhl
bWVDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk1QTUyNDk0MjU4MUExMEQwMDQ2MUZFOSAvKiBXS1dlYlZpZXdUaGVtZUNvbG9yLm1tICovOyB9
OwpAQCAtMTQ2Niw2ICsxNDY4LDcgQEAKIAkJCQk5QjYyNjMwQzFGOEMyNUM4MDA3RUUyOUIgLyog
Y29weS11cmwuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk3QUVBRDQ4MTFFMjAxMjI3
MDA0MTZFRkUgLyogQ3Jvc3NQYXJ0aXRpb25GaWxlU2NoZW1lQWNjZXNzLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJNDk5NUE2RjAyNUU4NzcyMDAwRTVGMEE5IC8qIGNzcC1kb2N1bWVu
dC11cmktcmVwb3J0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJOTUyRjcxNjcyNzBC
RDlDQjAwRDAwRENDIC8qIENTU1ZpZXdwb3J0VW5pdHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQkyRERENERBNDI3MEI4QjM1MDA2NTlBNjEgLyogY3ViZS51c2R6IGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCUY0QUI1NzhBMUY2NTE2NTQwMERCMERBMSAvKiBjdXN0b20tZHJhZ2dh
YmxlLWRpdi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTI5MEY0Mjc1MTcyQTIyMUMw
MDkzOUZGMCAvKiBjdXN0b20tcHJvdG9jb2wtc3luYy14aHIuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKQEAgLTI2NDEsNiArMjY0NCw4IEBACiAJCTkzRkNEQjMzMjYzNjMxNTYwMDQ2REQ3RCAv
KiBTb3J0ZWRBcnJheU1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTb3J0ZWRBcnJheU1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MDk1
RjFGMjYyRkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRvcENvbG9yLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2FtcGxlZFBhZ2VUb3BDb2xvci5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlP
U1N0eWx1c1N1cHBvcnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBpT1NTdHlsdXNTdXBwb3J0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTJG
NzE2NDI3MEJEOTdFMDBEMDBEQ0MgLyogQ1NTVmlld3BvcnRVbml0cy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENTU1ZpZXdwb3J0VW5pdHMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MkY3MTY2MjcwQkQ5OTcwMEQwMERDQyAvKiBDU1NWaWV3
cG9ydFVuaXRzLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBDU1NWaWV3cG9ydFVuaXRzLmh0bWw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1M0FCQjM0MjVDMEQ2ODEwMDRDOEI3MyAvKiBXS1dlYlZp
ZXdVbmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXS1dlYlZpZXdVbmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3IubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1OEI3MEUwMjZDNDZFREMwMEIyMDIyQiAvKiBOU0F0
dHJpYnV0ZWRTdHJpbmdXZWJLaXRBZGRpdGlvbnMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBOU0F0dHJpYnV0ZWRTdHJpbmdXZWJLaXRBZGRpdGlvbnMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1QTUyNDk0MjU4MUExMEQwMDQ2MUZFOSAvKiBX
S1dlYlZpZXdUaGVtZUNvbG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV0tXZWJWaWV3VGhlbWVDb2xvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTM0OTQsNiArMzQ5OSw3IEBACiAJCQkJMUM3OTIwMUIyMzRCREQ5QjAwMUVBRjIzIC8qIENv
cHlSVEYubW0gKi8sCiAJCQkJOUI3QTM3QzIxRjhBRUJBNTAwNEFBMjI4IC8qIENvcHlVUkwubW0g
Ki8sCiAJCQkJNTEwQTkyMUQyNERCMzhFRDAwQkZEODlDIC8qIENyZWF0ZVdlYkFyY2hpdmUubW0g
Ki8sCisJCQkJOTUyRjcxNjQyNzBCRDk3RTAwRDAwRENDIC8qIENTU1ZpZXdwb3J0VW5pdHMubW0g
Ki8sCiAJCQkJNDZBOTExNTgyMTA4RTY2QjAwNzhENDBEIC8qIEN1c3RvbVVzZXJBZ2VudC5tbSAq
LywKIAkJCQkyREM0Q0Y3NjFEMkQ5REQ4MDBFQ0NDOTQgLyogRGF0YURldGVjdGlvbi5tbSAqLywK
IAkJCQk1MThFRTUxQzIwQTc4RDMzMDBFMDI0RjMgLyogRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbi5tbSAqLywKQEAgLTQwNTcsNiArNDA2Myw3IEBACiAJCQkJOUIxMDU2NDIxRjkwNDdD
QzAwRDU1ODNGIC8qIGNvcHktaHRtbC5odG1sICovLAogCQkJCTlCNjI2MzBCMUY4QzI1MTAwMDdF
RTI5QiAvKiBjb3B5LXVybC5odG1sICovLAogCQkJCTQ5OTVBNkVGMjVFODc2QTMwMEU1RjBBOSAv
KiBjc3AtZG9jdW1lbnQtdXJpLXJlcG9ydC5odG1sICovLAorCQkJCTk1MkY3MTY2MjcwQkQ5OTcw
MEQwMERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLmh0bWwgKi8sCiAJCQkJRjRBQjU3ODkxRjY1MTY0
QjAwREIwREExIC8qIGN1c3RvbS1kcmFnZ2FibGUtZGl2Lmh0bWwgKi8sCiAJCQkJRjQ3REZCMjQy
MUE4NzA0QTAwMDIxRkI2IC8qIGRhdGEtZGV0ZWN0b3JzLmh0bWwgKi8sCiAJCQkJRjQ4NkIxQ0Yx
RjY3OTRGRjAwRjM0QkREIC8qIERhdGFUcmFuc2Zlci1zZXREcmFnSW1hZ2UuaHRtbCAqLywKQEAg
LTU1MDYsNiArNTUxMyw3IEBACiAJCQkJNTEwQTkyMUUyNERCMzhGMzAwQkZEODlDIC8qIENyZWF0
ZVdlYkFyY2hpdmUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QUVBRDQ3RjFFMjAxMTZDMDA0MTZF
RkUgLyogQ3Jvc3NQYXJ0aXRpb25GaWxlU2NoZW1lQWNjZXNzLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0NDRTdFREIxQTQxMUE5MjAwNDQ3QzRDIC8qIENTU1BhcnNlci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk5NTJGNzE2NTI3MEJEOTdFMDBEMDBEQ0MgLyogQ1NTVmlld3BvcnRVbml0cy5tbSBp
biBTb3VyY2VzICovLAogCQkJCTU3NTg1OTdGMjNBMjUyN0EwMEM3NDU3MiAvKiBDdGFwUGluVGVz
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1NzJCNDAzNDIxNzY5QTg4MDAwQUQ0M0UgLyogQ3Rh
cFJlcXVlc3RUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3MkI0MDQ0MjE3ODFCNDMwMDBB
RDQzRSAvKiBDdGFwUmVzcG9uc2VUZXN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Zsb2F0U2l6ZVRlc3RzLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GbG9hdFNpemVUZXN0cy5jcHAKaW5kZXgg
NzU2ZTc2ZjFkYmFjOWU2OGM4NjNiY2Q1ZjJmOWNiM2NhNmI2ZTFlZC4uMjY3MWI4NzhiMWYxODk5
Mzk5ODMyYjZiNWNlZmU5NzEwMWFiNTIwYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0Zsb2F0U2l6ZVRlc3RzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvRmxvYXRTaXplVGVzdHMuY3BwCkBAIC05Myw2ICs5MywyOCBAQCBU
RVNUKEZsb2F0U2l6ZSwgSW50U2l6ZUNvbnN0cnVjdGlvbikKICAgICB0ZXN0R2V0QW5kU2V0KHRl
c3QpOwogfQogCitURVNUKEZsb2F0U2l6ZSwgTWluRGltZW5zaW9uKQoreworICAgIFdlYkNvcmU6
OkZsb2F0U2l6ZSB0ZXN0KDEwMjQuMGYsIDc2OC4wZik7CisKKyAgICBFWFBFQ1RfRkxPQVRfRVEo
NzY4LjBmLCB0ZXN0Lm1pbkRpbWVuc2lvbigpKTsKKworICAgIHRlc3Quc2NhbGUoMS4wZiwgMi4w
Zik7CisKKyAgICBFWFBFQ1RfRkxPQVRfRVEoMTAyNC4wZiwgdGVzdC5taW5EaW1lbnNpb24oKSk7
Cit9CisKK1RFU1QoRmxvYXRTaXplLCBNYXhEaW1lbnNpb24pCit7CisgICAgV2ViQ29yZTo6Rmxv
YXRTaXplIHRlc3QoMTAyNC4wZiwgNzY4LjBmKTsKKworICAgIEVYUEVDVF9GTE9BVF9FUSgxMDI0
LjBmLCB0ZXN0Lm1heERpbWVuc2lvbigpKTsKKworICAgIHRlc3Quc2NhbGUoMS4wZiwgMi4wZik7
CisKKyAgICBFWFBFQ1RfRkxPQVRfRVEoMTUzNi4wZiwgdGVzdC5tYXhEaW1lbnNpb24oKSk7Cit9
CisKIFRFU1QoRmxvYXRTaXplLCBTY2FsZSkKIHsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgdGVz
dCgxMDI0LjBmLCA3NjguMGYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0ludFNpemVUZXN0cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvSW50U2l6ZVRlc3RzLmNwcAppbmRleCA2MjJmMGE4OGNkZGFlYWRiZTZiZDQ1NmM1NmU4
YzRkODIyOWY1ZGJmLi40NGJhMzQ3OTFmYjRmM2IyYTk3MTVhZGFhODdlZDg0MWYxYWVjYmEzIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSW50U2l6ZVRlc3Rz
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSW50U2l6ZVRlc3Rz
LmNwcApAQCAtOTMsNiArOTMsMjggQEAgVEVTVChJbnRTaXplLCBGbG9hdFNpemVDb25zdHJ1Y3Rp
b24pCiAgICAgdGVzdEdldEFuZFNldCh0ZXN0KTsKIH0KIAorVEVTVChJbnRTaXplLCBNaW5EaW1l
bnNpb24pCit7CisgICAgV2ViQ29yZTo6SW50U2l6ZSB0ZXN0KDEwMjQsIDc2OCk7CisKKyAgICBF
WFBFQ1RfRVEoNzY4LCB0ZXN0Lm1pbkRpbWVuc2lvbigpKTsKKworICAgIHRlc3Quc2NhbGUoMS4w
ZiwgMi4wZik7CisKKyAgICBFWFBFQ1RfRVEoMTAyNCwgdGVzdC5taW5EaW1lbnNpb24oKSk7Cit9
CisKK1RFU1QoSW50U2l6ZSwgTWF4RGltZW5zaW9uKQoreworICAgIFdlYkNvcmU6OkludFNpemUg
dGVzdCgxMDI0LCA3NjgpOworCisgICAgRVhQRUNUX0VRKDEwMjQsIHRlc3QubWF4RGltZW5zaW9u
KCkpOworCisgICAgdGVzdC5zY2FsZSgxLjBmLCAyLjBmKTsKKworICAgIEVYUEVDVF9FUSgxNTM2
LCB0ZXN0Lm1heERpbWVuc2lvbigpKTsKK30KKwogVEVTVChJbnRTaXplLCBEaWFnb25hbExlbmd0
aEFuZEFyZWEpCiB7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSB0ZXN0KDEwMjQsIDc2OCk7CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NTU1ZpZXdwb3J0
VW5pdHMuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ1NTVmll
d3BvcnRVbml0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwMmFhMDU4OGRjZDZlZTI3NjZjYmMwNzkyNjU5
OTNjODQ4ZWVjZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0NTU1ZpZXdwb3J0VW5pdHMuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3
aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CisKKyAgICA8c3R5bGU+Citib2R5
IHsKKyAgICBtYXJnaW46IDA7Cit9CitkaXYgeworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsK
KyAgICB3aWR0aDogMXB4OworfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8
ZGl2IGlkPSJ2dyIgc3R5bGU9ImhlaWdodDogMTAwdnc7Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJ2
aCIgc3R5bGU9ImhlaWdodDogMTAwdmg7Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJ2bWluIiBzdHls
ZT0iaGVpZ2h0OiAxMDB2bWluOyI+PC9kaXY+CisgICAgPGRpdiBpZD0idm1heCIgc3R5bGU9Imhl
aWdodDogMTAwdm1heDsiPjwvZGl2PgorCisgICAgPGRpdiBpZD0ic3Z3IiBzdHlsZT0iaGVpZ2h0
OiAxMDBzdnc7Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJzdmgiIHN0eWxlPSJoZWlnaHQ6IDEwMHN2
aDsiPjwvZGl2PgorICAgIDxkaXYgaWQ9InN2bWluIiBzdHlsZT0iaGVpZ2h0OiAxMDBzdm1pbjsi
PjwvZGl2PgorICAgIDxkaXYgaWQ9InN2bWF4IiBzdHlsZT0iaGVpZ2h0OiAxMDBzdm1heDsiPjwv
ZGl2PgorCisgICAgPGRpdiBpZD0ibHZ3IiBzdHlsZT0iaGVpZ2h0OiAxMDBsdnc7Ij48L2Rpdj4K
KyAgICA8ZGl2IGlkPSJsdmgiIHN0eWxlPSJoZWlnaHQ6IDEwMGx2aDsiPjwvZGl2PgorICAgIDxk
aXYgaWQ9Imx2bWluIiBzdHlsZT0iaGVpZ2h0OiAxMDBsdm1pbjsiPjwvZGl2PgorICAgIDxkaXYg
aWQ9Imx2bWF4IiBzdHlsZT0iaGVpZ2h0OiAxMDBsdm1heDsiPjwvZGl2PgorCisgICAgPGRpdiBp
ZD0iZHZ3IiBzdHlsZT0iaGVpZ2h0OiAxMDBkdnc7Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJkdmgi
IHN0eWxlPSJoZWlnaHQ6IDEwMGR2aDsiPjwvZGl2PgorICAgIDxkaXYgaWQ9ImR2bWluIiBzdHls
ZT0iaGVpZ2h0OiAxMDBkdm1pbjsiPjwvZGl2PgorICAgIDxkaXYgaWQ9ImR2bWF4IiBzdHlsZT0i
aGVpZ2h0OiAxMDBkdm1heDsiPjwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DU1NWaWV3cG9ydFVuaXRzLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DU1NWaWV3cG9ydFVuaXRzLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU1N2ZhODQwODNkOTA5ZTE2NjBhNWEwMmNjNzI2N2NjZDJhZmRlZjIKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NTU1ZpZXdw
b3J0VW5pdHMubW0KQEAgLTAsMCArMSwxNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIK
KworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcu
aCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CisKK3N0YXRpYyBpbnQgZXZhbHVhdGVGb3JJbnQoV0tXZWJWaWV3ICp3ZWJWaWV3
LCBOU1N0cmluZyAqc2NyaXB0KQoreworICAgIHJldHVybiBbKE5TTnVtYmVyICopW3dlYlZpZXcg
b2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpzY3JpcHRdIGludFZhbHVlXTsKK30KKworc3Rh
dGljIGludCBnZXRFbGVtZW50SGVpZ2h0KFdLV2ViVmlldyAqd2ViVmlldywgTlNTdHJpbmcgKmVs
ZW1lbnRJRCkKK3sKKyAgICByZXR1cm4gZXZhbHVhdGVGb3JJbnQod2ViVmlldywgW05TU3RyaW5n
IHN0cmluZ1dpdGhGb3JtYXQ6QCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnJUAnKS5nZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQiLCBlbGVtZW50SURdKTsKK30KKworVEVTVChDU1NWaWV3
cG9ydFVuaXRzLCBBbGxTYW1lKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDAp
XSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiQ1NTVmll
d3BvcnRVbml0cyJdOworCisgICAgRVhQRUNUX0VRKDMyMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJW
aWV3LmdldCgpLCBAInZ3IikpOworICAgIEVYUEVDVF9FUSg1MDAsIGdldEVsZW1lbnRIZWlnaHQo
d2ViVmlldy5nZXQoKSwgQCJ2aCIpKTsKKyAgICBFWFBFQ1RfRVEoMzIwLCBnZXRFbGVtZW50SGVp
Z2h0KHdlYlZpZXcuZ2V0KCksIEAidm1pbiIpKTsKKyAgICBFWFBFQ1RfRVEoNTAwLCBnZXRFbGVt
ZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidm1heCIpKTsKKworICAgIEVYUEVDVF9FUSgzMjAs
IGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJzdnciKSk7CisgICAgRVhQRUNUX0VR
KDUwMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInN2aCIpKTsKKyAgICBFWFBF
Q1RfRVEoMzIwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAic3ZtaW4iKSk7Cisg
ICAgRVhQRUNUX0VRKDUwMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInN2bWF4
IikpOworCisgICAgRVhQRUNUX0VRKDMyMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgp
LCBAImx2dyIpKTsKKyAgICBFWFBFQ1RfRVEoNTAwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcu
Z2V0KCksIEAibHZoIikpOworICAgIEVYUEVDVF9FUSgzMjAsIGdldEVsZW1lbnRIZWlnaHQod2Vi
Vmlldy5nZXQoKSwgQCJsdm1pbiIpKTsKKyAgICBFWFBFQ1RfRVEoNTAwLCBnZXRFbGVtZW50SGVp
Z2h0KHdlYlZpZXcuZ2V0KCksIEAibHZtYXgiKSk7CisKKyAgICBpbnQgaW5uZXJXaWR0aCA9IGV2
YWx1YXRlRm9ySW50KHdlYlZpZXcuZ2V0KCksIEAid2luZG93LmlubmVyV2lkdGgiKTsKKyAgICBp
bnQgaW5uZXJIZWlnaHQgPSBldmFsdWF0ZUZvckludCh3ZWJWaWV3LmdldCgpLCBAIndpbmRvdy5p
bm5lckhlaWdodCIpOworICAgIEVYUEVDVF9FUShpbm5lcldpZHRoLCBnZXRFbGVtZW50SGVpZ2h0
KHdlYlZpZXcuZ2V0KCksIEAiZHZ3IikpOworICAgIEVYUEVDVF9FUShpbm5lckhlaWdodCwgZ2V0
RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImR2aCIpKTsKKyAgICBFWFBFQ1RfRVEoaW5u
ZXJXaWR0aCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImR2bWluIikpOworICAg
IEVYUEVDVF9FUShpbm5lckhlaWdodCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBA
ImR2bWF4IikpOworfQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworVEVTVChDU1NWaWV3
cG9ydFVuaXRzLCBFbXB0eVVub2JzY3VyZWRTaXplT3ZlcnJpZGVzKQoreworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVj
dE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFy
YW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpDR1NpemVNYWtlKDEwLCAyMCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6
ZVplcm9dOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAIkNT
U1ZpZXdwb3J0VW5pdHMiXTsKKworICAgIEVYUEVDVF9FUSgxMCwgZ2V0RWxlbWVudEhlaWdodCh3
ZWJWaWV3LmdldCgpLCBAInZ3IikpOworICAgIEVYUEVDVF9FUSgyMCwgZ2V0RWxlbWVudEhlaWdo
dCh3ZWJWaWV3LmdldCgpLCBAInZoIikpOworICAgIEVYUEVDVF9FUSgxMCwgZ2V0RWxlbWVudEhl
aWdodCh3ZWJWaWV3LmdldCgpLCBAInZtaW4iKSk7CisgICAgRVhQRUNUX0VRKDIwLCBnZXRFbGVt
ZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAidm1heCIpKTsKKworICAgIEVYUEVDVF9FUSgxMCwg
Z2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInN2dyIpKTsKKyAgICBFWFBFQ1RfRVEo
MjAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJzdmgiKSk7CisgICAgRVhQRUNU
X0VRKDEwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAic3ZtaW4iKSk7CisgICAg
RVhQRUNUX0VRKDIwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAic3ZtYXgiKSk7
CisKKyAgICBFWFBFQ1RfRVEoMTAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJs
dnciKSk7CisgICAgRVhQRUNUX0VRKDIwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCks
IEAibHZoIikpOworICAgIEVYUEVDVF9FUSgxMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3Lmdl
dCgpLCBAImx2bWluIikpOworICAgIEVYUEVDVF9FUSgyMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJW
aWV3LmdldCgpLCBAImx2bWF4IikpOworCisgICAgaW50IGlubmVyV2lkdGggPSBldmFsdWF0ZUZv
ckludCh3ZWJWaWV3LmdldCgpLCBAIndpbmRvdy5pbm5lcldpZHRoIik7CisgICAgaW50IGlubmVy
SGVpZ2h0ID0gZXZhbHVhdGVGb3JJbnQod2ViVmlldy5nZXQoKSwgQCJ3aW5kb3cuaW5uZXJIZWln
aHQiKTsKKyAgICBFWFBFQ1RfRVEoaW5uZXJXaWR0aCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3
LmdldCgpLCBAImR2dyIpKTsKKyAgICBFWFBFQ1RfRVEoaW5uZXJIZWlnaHQsIGdldEVsZW1lbnRI
ZWlnaHQod2ViVmlldy5nZXQoKSwgQCJkdmgiKSk7CisgICAgRVhQRUNUX0VRKGlubmVyV2lkdGgs
IGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJkdm1pbiIpKTsKKyAgICBFWFBFQ1Rf
RVEoaW5uZXJIZWlnaHQsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJkdm1heCIp
KTsKK30KKworVEVTVChDU1NWaWV3cG9ydFVuaXRzLCBTYW1lVW5vYnNjdXJlZFNpemVPdmVycmlk
ZXMpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmll
dyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1h
a2UoMTAsIDIwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11bVVub2JzY3Vy
ZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgxMCwgMjApXTsKKyAgICBbd2ViVmlldyBzeW5jaHJv
bm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJDU1NWaWV3cG9ydFVuaXRzIl07CisKKyAgICBFWFBF
Q1RfRVEoMTAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2dyIpKTsKKyAgICBF
WFBFQ1RfRVEoMjAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2aCIpKTsKKyAg
ICBFWFBFQ1RfRVEoMTAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2bWluIikp
OworICAgIEVYUEVDVF9FUSgyMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZt
YXgiKSk7CisKKyAgICBFWFBFQ1RfRVEoMTAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQo
KSwgQCJzdnciKSk7CisgICAgRVhQRUNUX0VRKDIwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcu
Z2V0KCksIEAic3ZoIikpOworICAgIEVYUEVDVF9FUSgxMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJW
aWV3LmdldCgpLCBAInN2bWluIikpOworICAgIEVYUEVDVF9FUSgyMCwgZ2V0RWxlbWVudEhlaWdo
dCh3ZWJWaWV3LmdldCgpLCBAInN2bWF4IikpOworCisgICAgRVhQRUNUX0VRKDEwLCBnZXRFbGVt
ZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAibHZ3IikpOworICAgIEVYUEVDVF9FUSgyMCwgZ2V0
RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAImx2aCIpKTsKKyAgICBFWFBFQ1RfRVEoMTAs
IGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdm1pbiIpKTsKKyAgICBFWFBFQ1Rf
RVEoMjAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJsdm1heCIpKTsKKworICAg
IGludCBpbm5lcldpZHRoID0gZXZhbHVhdGVGb3JJbnQod2ViVmlldy5nZXQoKSwgQCJ3aW5kb3cu
aW5uZXJXaWR0aCIpOworICAgIGludCBpbm5lckhlaWdodCA9IGV2YWx1YXRlRm9ySW50KHdlYlZp
ZXcuZ2V0KCksIEAid2luZG93LmlubmVySGVpZ2h0Iik7CisgICAgRVhQRUNUX0VRKGlubmVyV2lk
dGgsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJkdnciKSk7CisgICAgRVhQRUNU
X0VRKGlubmVySGVpZ2h0LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZoIikp
OworICAgIEVYUEVDVF9FUShpbm5lcldpZHRoLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0
KCksIEAiZHZtaW4iKSk7CisgICAgRVhQRUNUX0VRKGlubmVySGVpZ2h0LCBnZXRFbGVtZW50SGVp
Z2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZtYXgiKSk7Cit9CisKK1RFU1QoQ1NTVmlld3BvcnRVbml0
cywgRGlmZmVyZW50VW5vYnNjdXJlZFNpemVPdmVycmlkZXMpCit7CisgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFr
ZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0
ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMTAsIDIwKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFr
ZSgzMCwgNDApXTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6
QCJDU1NWaWV3cG9ydFVuaXRzIl07CisKKyAgICBFWFBFQ1RfRVEoMzAsIGdldEVsZW1lbnRIZWln
aHQod2ViVmlldy5nZXQoKSwgQCJ2dyIpKTsKKyAgICBFWFBFQ1RfRVEoNDAsIGdldEVsZW1lbnRI
ZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2aCIpKTsKKyAgICBFWFBFQ1RfRVEoMzAsIGdldEVsZW1l
bnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJ2bWluIikpOworICAgIEVYUEVDVF9FUSg0MCwgZ2V0
RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInZtYXgiKSk7CisKKyAgICBFWFBFQ1RfRVEo
MTAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmlldy5nZXQoKSwgQCJzdnciKSk7CisgICAgRVhQRUNU
X0VRKDIwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAic3ZoIikpOworICAgIEVY
UEVDVF9FUSgxMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInN2bWluIikpOwor
ICAgIEVYUEVDVF9FUSgyMCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3LmdldCgpLCBAInN2bWF4
IikpOworCisgICAgRVhQRUNUX0VRKDMwLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCks
IEAibHZ3IikpOworICAgIEVYUEVDVF9FUSg0MCwgZ2V0RWxlbWVudEhlaWdodCh3ZWJWaWV3Lmdl
dCgpLCBAImx2aCIpKTsKKyAgICBFWFBFQ1RfRVEoMzAsIGdldEVsZW1lbnRIZWlnaHQod2ViVmll
dy5nZXQoKSwgQCJsdm1pbiIpKTsKKyAgICBFWFBFQ1RfRVEoNDAsIGdldEVsZW1lbnRIZWlnaHQo
d2ViVmlldy5nZXQoKSwgQCJsdm1heCIpKTsKKworICAgIGludCBpbm5lcldpZHRoID0gZXZhbHVh
dGVGb3JJbnQod2ViVmlldy5nZXQoKSwgQCJ3aW5kb3cuaW5uZXJXaWR0aCIpOworICAgIGludCBp
bm5lckhlaWdodCA9IGV2YWx1YXRlRm9ySW50KHdlYlZpZXcuZ2V0KCksIEAid2luZG93LmlubmVy
SGVpZ2h0Iik7CisgICAgRVhQRUNUX0VRKGlubmVyV2lkdGgsIGdldEVsZW1lbnRIZWlnaHQod2Vi
Vmlldy5nZXQoKSwgQCJkdnciKSk7CisgICAgRVhQRUNUX0VRKGlubmVySGVpZ2h0LCBnZXRFbGVt
ZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZoIikpOworICAgIEVYUEVDVF9FUShpbm5lcldp
ZHRoLCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZtaW4iKSk7CisgICAgRVhQ
RUNUX0VRKGlubmVySGVpZ2h0LCBnZXRFbGVtZW50SGVpZ2h0KHdlYlZpZXcuZ2V0KCksIEAiZHZt
YXgiKSk7Cit9CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>