<?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>186151</bug_id>
          
          <creation_ts>2018-05-31 11:18:01 -0700</creation_ts>
          <short_desc>[Datalist] Allow TextFieldInputType to show and hide suggestions</short_desc>
          <delta_ts>2018-06-12 00:11:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>macOS 10.13</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aditya Keerthi">pxlcoder</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1428917</commentid>
    <comment_count>0</comment_count>
    <who name="Aditya Keerthi">pxlcoder</who>
    <bug_when>2018-05-31 11:18:01 -0700</bug_when>
    <thetext>This bug tracks the work required to allow TextFieldInputType to show and hide suggestions from a datalist.

The UI work will come in a later patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428986</commentid>
    <comment_count>1</comment_count>
      <attachid>341690</attachid>
    <who name="Aditya Keerthi">pxlcoder</who>
    <bug_when>2018-05-31 13:33:56 -0700</bug_when>
    <thetext>Created attachment 341690
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429912</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-04 14:47:48 -0700</bug_when>
    <thetext>&lt;rdar://problem/40781913&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429976</commentid>
    <comment_count>3</comment_count>
      <attachid>341690</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-06-04 17:39:36 -0700</bug_when>
    <thetext>Comment on attachment 341690
Patch

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

&gt; Source/WebCore/html/DataListSuggestionInformation.h:31
&gt; +enum DataListSuggestionActivationType {

Nit - we generally prefer to use `enum class` for these, instead of just plain enums.

&gt; Source/WebCore/html/TextFieldInputType.cpp:168
&gt; +void TextFieldInputType::handleClickEvent(__unused MouseEvent&amp; event)

Nit - instead of __unused, we prefer omitting the argument name (in this case, just MouseEvent&amp;).

&gt; Source/WebCore/html/TextFieldInputType.cpp:544
&gt; +#if ENABLE(DATALIST_ELEMENT)

Hm...I find this change a bit odd. It seems like whether we respect the list attribute should depend on whether we support rendering data list UI, rather than always returning true iff the compile-time flag is enabled.

Could we tweak the implementation of RenderTheme::supportsDataListUI() instead? I think it would make the code a bit easier to follow, though it would entail checking against a palette of input type names. But this doesn&apos;t seem so costly, especially since AtomicString comparisons are cheap.

&gt; Source/WebCore/html/TextFieldInputType.cpp:768
&gt; +        for (unsigned i = 0; RefPtr&lt;HTMLOptionElement&gt; option = downcast&lt;HTMLOptionElement&gt;(options-&gt;item(i)); ++i) {

Nit - We generally prefer to use `auto` for types that can be easily deduced from the RHS. For instance, this could be `auto option = downcast&lt;HTMLOptionElement&gt;(options-&gt;item(i))`.

&gt; Source/WebCore/html/TextFieldInputType.h:57
&gt; +    void handleClickEvent(MouseEvent&amp;) override;

Nit - if subclasses don&apos;t need to override this, we generally prefer `final` instead of `override`.

&gt; Source/WebCore/html/TextFieldInputType.h:127
&gt; +    IntRect elementRectRelativeToRootView() const final;

Nit - It&apos;s great that you specified the coordinate space in the function name! But in most of the places where we have a function like this, it&apos;s usually (…)InRootViewCoordinates().

&gt; Source/WebCore/platform/DataListSuggestionPicker.h:42
&gt; +    virtual void handleKeydownWithIdentifier(const WTF::String&amp;) { }

Nit - we probably don&apos;t need an explicit WTF:: here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430115</commentid>
    <comment_count>4</comment_count>
    <who name="Aditya Keerthi">pxlcoder</who>
    <bug_when>2018-06-05 09:17:39 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #3)
&gt; Comment on attachment 341690 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=341690&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/TextFieldInputType.cpp:544
&gt; &gt; +#if ENABLE(DATALIST_ELEMENT)
&gt; 
&gt; Hm...I find this change a bit odd. It seems like whether we respect the list
&gt; attribute should depend on whether we support rendering data list UI, rather
&gt; than always returning true iff the compile-time flag is enabled.
&gt; 
&gt; Could we tweak the implementation of RenderTheme::supportsDataListUI()
&gt; instead? I think it would make the code a bit easier to follow, though it
&gt; would entail checking against a palette of input type names. But this
&gt; doesn&apos;t seem so costly, especially since AtomicString comparisons are cheap.

I made the change this way as support for the list attribute depends on the input type (https://www.w3.org/TR/html50/forms.html#do-not-apply).

All TextFieldInputTypes support the attribute. Consequently we can always return true for this method in TextFieldInputType. The UI for these input types is also the same.

For input types that don&apos;t support the list attribute, we can return false in shouldRespectListAttribute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430137</commentid>
    <comment_count>5</comment_count>
      <attachid>341977</attachid>
    <who name="Aditya Keerthi">pxlcoder</who>
    <bug_when>2018-06-05 11:03:49 -0700</bug_when>
    <thetext>Created attachment 341977
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430909</commentid>
    <comment_count>6</comment_count>
      <attachid>341977</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-06-07 10:14:54 -0700</bug_when>
    <thetext>Comment on attachment 341977
Patch

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

&gt; Source/WebCore/html/TextFieldInputType.cpp:802
&gt; +        for (unsigned i = 0; auto option = downcast&lt;HTMLOptionElement&gt;(options-&gt;item(i)); ++i) {

Ah, I think in general we prefer auto* instead of auto for pointers like this.

&gt; Source/WebCore/html/TextFieldInputType.cpp:822
&gt; +    m_suggestionPicker = nullptr;

This seems to be the only place we null out m_suggestionPicker, and it looks like the plan is for this to be invoked after an IPC message from the UI process? Should we be clearing this out from more places, e.g. when the element loses focus? Though, it looks like the next patch in the sequence will answer my questions :)

Just keep this in mind!

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebDataListSuggestionPicker.cpp:42
&gt; +    , m_page(page) { }

Nit - in most constructors like this, we&apos;d put the braces on new lines like:

{
}

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebDataListSuggestionPicker.h:47
&gt; +    void didSelectOption(const WTF::String&amp;);

Nit - I don&apos;t think the WTF:: in WTF::String should be needed here.

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebDataListSuggestionPicker.h:52
&gt; +    __unused WebCore::DataListSuggestionsClient* m_dataListSuggestionsClient;

I assume these __unused are going to be short-lived? (i.e. the next patch will use m_page and m_dataListSuggestionsClient).

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:3566
&gt; +    m_activeDataListSuggestionPicker = dataListSuggestionPicker;

Also here — make sure we clean up m_activeDataListSuggestionPicker in the various ways that might cause the picker to disappear! (e.g. element is blurred programmatically).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430916</commentid>
    <comment_count>7</comment_count>
    <who name="Aditya Keerthi">pxlcoder</who>
    <bug_when>2018-06-07 10:34:06 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #6)
&gt; Comment on attachment 341977 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=341977&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/TextFieldInputType.cpp:822
&gt; &gt; +    m_suggestionPicker = nullptr;
&gt; 
&gt; This seems to be the only place we null out m_suggestionPicker, and it looks
&gt; like the plan is for this to be invoked after an IPC message from the UI
&gt; process? Should we be clearing this out from more places, e.g. when the
&gt; element loses focus? Though, it looks like the next patch in the sequence
&gt; will answer my questions :)
&gt; 
&gt; Just keep this in mind!

The next patch handles all of the clean up after the picker disappears :)

&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebDataListSuggestionPicker.h:52
&gt; &gt; +    __unused WebCore::DataListSuggestionsClient* m_dataListSuggestionsClient;
&gt; 
&gt; I assume these __unused are going to be short-lived? (i.e. the next patch
&gt; will use m_page and m_dataListSuggestionsClient).

These will be used in the next patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430921</commentid>
    <comment_count>8</comment_count>
      <attachid>342186</attachid>
    <who name="Aditya Keerthi">pxlcoder</who>
    <bug_when>2018-06-07 10:40:30 -0700</bug_when>
    <thetext>Created attachment 342186
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431090</commentid>
    <comment_count>9</comment_count>
      <attachid>342186</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-06-07 17:33:39 -0700</bug_when>
    <thetext>Comment on attachment 342186
Patch

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

&gt; Source/WebCore/html/TextFieldInputType.cpp:568
&gt; +#if ENABLE(DATALIST_ELEMENT)
&gt; +    return true;
&gt; +#else
&gt;      return InputType::themeSupportsDataListUI(this);
&gt; +#endif

How does this work? If the control theme doesn’t support the UI for suggestion lists, how does this patch make it work?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431091</commentid>
    <comment_count>10</comment_count>
    <who name="Aditya Keerthi">pxlcoder</who>
    <bug_when>2018-06-07 17:39:20 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #9)
&gt; Comment on attachment 342186 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=342186&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/TextFieldInputType.cpp:568
&gt; &gt; +#if ENABLE(DATALIST_ELEMENT)
&gt; &gt; +    return true;
&gt; &gt; +#else
&gt; &gt;      return InputType::themeSupportsDataListUI(this);
&gt; &gt; +#endif
&gt; 
&gt; How does this work? If the control theme doesn’t support the UI for
&gt; suggestion lists, how does this patch make it work?

The UI for suggestions will be the same for the TextFieldInputTypes, and all TextFieldInputTypes support showing suggestions. The UI itself will be added in the next patch. 

Range and color inputs will require different UI, as we can&apos;t simply show a dropdown list of values. For that reason, no changes have been made to their methods at this time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431092</commentid>
    <comment_count>11</comment_count>
      <attachid>342186</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-06-07 17:42:26 -0700</bug_when>
    <thetext>Comment on attachment 342186
Patch

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

&gt;&gt;&gt; Source/WebCore/html/TextFieldInputType.cpp:568
&gt;&gt;&gt; +#endif
&gt;&gt; 
&gt;&gt; How does this work? If the control theme doesn’t support the UI for suggestion lists, how does this patch make it work?
&gt; 
&gt; The UI for suggestions will be the same for the TextFieldInputTypes, and all TextFieldInputTypes support showing suggestions. The UI itself will be added in the next patch. 
&gt; 
&gt; Range and color inputs will require different UI, as we can&apos;t simply show a dropdown list of values. For that reason, no changes have been made to their methods at this time.

But themeSupportsDataListUI returns false when handed a TextFieldInputType, despite &quot;all TextFieldInputTypes support showing suggestions”? That seems odd. And if it’s not true, you wouldn’t need this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431097</commentid>
    <comment_count>12</comment_count>
    <who name="Aditya Keerthi">pxlcoder</who>
    <bug_when>2018-06-07 18:07:41 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #11)
&gt; Comment on attachment 342186 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=342186&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/html/TextFieldInputType.cpp:568
&gt; &gt;&gt;&gt; +#endif
&gt; &gt;&gt; 
&gt; &gt;&gt; How does this work? If the control theme doesn’t support the UI for suggestion lists, how does this patch make it work?
&gt; &gt; 
&gt; &gt; The UI for suggestions will be the same for the TextFieldInputTypes, and all TextFieldInputTypes support showing suggestions. The UI itself will be added in the next patch. 
&gt; &gt; 
&gt; &gt; Range and color inputs will require different UI, as we can&apos;t simply show a dropdown list of values. For that reason, no changes have been made to their methods at this time.
&gt; 
&gt; But themeSupportsDataListUI returns false when handed a TextFieldInputType,
&gt; despite &quot;all TextFieldInputTypes support showing suggestions”? That seems
&gt; odd. And if it’s not true, you wouldn’t need this change.

I would eventually like to remove themeSupportsDataListUI. It currently returns false as we have no datalist support, but once finished, support will be determined by the specification.

Each input type can override shouldRespectListAttribute on it&apos;s own as necessary, since respecting the attribute is dependent on the type of input. The method needs to return true for us to be able to obtain the datalist element associated with the input.

A list of input types that support the list attribute can be found here: https://www.w3.org/TR/html50/forms.html#the-input-element. Once full support has been added, all of those types should have shouldRespectListAttribute return true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431393</commentid>
    <comment_count>13</comment_count>
      <attachid>342186</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-06-08 13:49:04 -0700</bug_when>
    <thetext>Comment on attachment 342186
Patch

Rejecting attachment 342186 from commit-queue.

akeerthi@apple.com does not have committer permissions according to https://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/contributors.json.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/contributors.json by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431414</commentid>
    <comment_count>14</comment_count>
      <attachid>342186</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-08 14:09:04 -0700</bug_when>
    <thetext>Comment on attachment 342186
Patch

Clearing flags on attachment: 342186

Committed r232640: &lt;https://trac.webkit.org/changeset/232640&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341690</attachid>
            <date>2018-05-31 13:33:56 -0700</date>
            <delta_ts>2018-06-05 11:03:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186151-20180531133355.patch</filename>
            <type>text/plain</type>
            <size>47864</size>
            <attacher name="Aditya Keerthi">pxlcoder</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzZhODFkMDg2ZmE1NWU1
ZjA2ZjlmZjdiMTk0YTU4MGI5YWRlZGQyMy4uMmIwZWZlYjJlNWRhMTk3ZjIwYTA0MWY4YWQxMWIy
Y2YyNDkyYzliNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE4LTA1LTMxICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbRGF0YWxpc3RdIEFs
bG93IFRleHRGaWVsZElucHV0VHlwZSB0byBzaG93IGFuZCBoaWRlIHN1Z2dlc3Rpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODYxNTEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXh0RmllbGRJbnB1
dFR5cGVzIHdpdGggYSBsaXN0IGF0dHJpYnV0ZSBzaG91bGQgYmUgYWJsZSB0byBkaXNwbGF5IHN1
Z2dlc3Rpb25zIGFzIHRoZSB1c2VyCisgICAgICAgIGludGVyYWN0cyB3aXRoIHRoZSBpbnB1dCBm
aWVsZC4gSW4gb3JkZXIgdG8gZGlzcGxheSBzdWdnZXN0aW9ucyBmb3IgYW4gaW5wdXQgZmllbGQg
d2l0aCBhIGxpc3QKKyAgICAgICAgYXR0cmlidXRlLCB3ZSBuZWVkIHByb3ZpZGUgY2VydGFpbiBp
bmZvcm1hdGlvbiAtIGluY2x1ZGluZyB0aGUgaXRlbXMgdG8gc3VnZ2VzdCBhbmQgdGhlIGxvY2F0
aW9uCisgICAgICAgIHRvIHByZXNlbnQgdGhlIHN1Z2dlc3Rpb25zLiBUZXh0RmllbGRJbnB1dFR5
cGUgY2FuIG5vdyBwcm92aWRlIHRoaXMgaW5mb3JtYXRpb24gYnkgY29uZm9ybWluZyB0bworICAg
ICAgICB0aGUgRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudCBpbnRlcmZhY2UuCisKKyAgICAgICAg
SW4gdGhpcyBpbml0aWFsIHBhdGNoLCB0aGUgc3VnZ2VzdGlvbnMgY2FuIGJlIHNob3duIGluIHR3
byB3YXlzLiBUaGUgZmlyc3QgaXMgYnkgY2xpY2tpbmcgb24gdGhlCisgICAgICAgIGlucHV0IGZp
ZWxkLiBUaGUgb3RoZXIgaXMgYnkgdHlwaW5nIHRleHQgaW4gdGhlIGZpZWxkLiBJbiBhIGxhdGVy
IHBhdGNoLCB3ZSB3aWxsIGFkZCBhIHRoaXJkIHdheQorICAgICAgICB0byBkaXNwbGF5IHN1Z2dl
c3Rpb25zLCB1c2luZyBhIGJ1dHRvbi4gVGhlc2Ugd2F5cyB0byBhY3RpdmF0ZSB0aGUgc3VnZ2Vz
dGlvbnMgYXJlIGVudW1lcmF0ZWQgaW4KKyAgICAgICAgRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3Jt
YXRpb24uCisKKyAgICAgICAgV2UgaGlkZSB0aGUgc3VnZ2VzdGlvbnMgaWYgdGhlcmUgYXJlIG5v
IG1vcmUgdG8gc2hvdywgb3IgaWYgdGhlIGlucHV0IGhhcyBibHVycmVkLgorCisgICAgICAgIFRl
c3RzIHRvIGJlIGFkZGVkIG9uY2Ugd29yayBoYXMgYmVlbiBkb25lIGluIHRoZSBVSVByb2Nlc3Mu
CisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogaHRtbC9EYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oOiBBZGRlZC4gQ29udGFpbnMg
dGhlIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSB0byBkaXNwbGF5IHN1Z2dlc3Rpb25zLgorICAgICAg
ICAqIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRG
aWVsZElucHV0VHlwZTo6flRleHRGaWVsZElucHV0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpU
ZXh0RmllbGRJbnB1dFR5cGU6OmhhbmRsZUNsaWNrRXZlbnQpOiBTaG93IHN1Z2dlc3Rpb25zIHdo
ZW4gdGhlIGVsZW1lbnQgaXMgY2xpY2tlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElu
cHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KTogQWxsb3cgdXNlcnMgdG8gaW50ZXJhY3Qgd2l0
aCB0aGUgc3VnZ2VzdGlvbnMgdXNpbmcgdGhlIGtleWJvYXJkLgorICAgICAgICAoV2ViQ29yZTo6
VGV4dEZpZWxkSW5wdXRUeXBlOjplbGVtZW50RGlkQmx1cik6IEhpZGUgdGhlIHN1Z2dlc3Rpb25z
LgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpzaG91bGRSZXNwZWN0TGlz
dEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmRpZFNl
dFZhbHVlQnlVc2VyRWRpdCk6IFVwZGF0ZSB0aGUgc3VnZ2VzdGlvbnMgaWYgdGhlIHRleHQgaGFz
IGNoYW5nZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmVsZW1lbnRS
ZWN0UmVsYXRpdmVUb1Jvb3RWaWV3IGNvbnN0KTogUHJvdmlkZSB0aGUgbG9jYXRpb24gd2hlcmUg
dGhlIHN1Z2dlc3Rpb25zIHNob3VsZCBiZSBzaG93bi4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRG
aWVsZElucHV0VHlwZTo6c3VnZ2VzdGlvbnMgY29uc3QpOiBQcm92aWRlIHRoZSBsaXN0IG9mIHN1
Z2dlc3Rpb25zLgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpkaWRTZWxl
Y3REYXRhTGlzdE9wdGlvbik6IFVwZGF0ZSB0aGUgdGV4dCBvbmNlIGFuIHN1Z2dlc3Rpb24gaGFz
IGJlZW4gc2VsZWN0ZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmRp
ZENsb3NlU3VnZ2VzdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBl
OjpkaXNwbGF5U3VnZ2VzdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRU
eXBlOjpjbG9zZVN1Z2dlc3Rpb25zKToKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlw
ZS5oOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZURhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcik6Cisg
ICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9uUGlj
a2VyKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xp
ZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOjpjbG9zZSk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI6OmhhbmRsZUtleWRv
d25XaXRoSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhTGlzdFN1Z2dlc3Rpb25Q
aWNrZXI6OmRpc3BsYXlXaXRoQWN0aXZhdGlvblR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL0Rh
dGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQuaDogQWRkZWQuCisKIDIwMTgtMDUtMzAgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBDcm9zc09yaWdpblJl
c291cmNlUG9saWN5IHNhbWUgdG8gc2FtZS1vcmlnaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNjIyNGNkNjAwMDg0
ZjkyNDFjODAxNzc3MmJiYTEyZTNmMTU4ZTViZC4uYTE5NGEzMTRiMjFiN2QxZDRlZjUxYjg1Yjk5
ZWM2MTc0OTg4ZjQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxOC0wNS0zMSAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW0RhdGFsaXN0XSBB
bGxvdyBUZXh0RmllbGRJbnB1dFR5cGUgdG8gc2hvdyBhbmQgaGlkZSBzdWdnZXN0aW9ucworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2MTUxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgV2ViRGF0
YUxpc3RTdWdnZXN0aW9uUGlja2VyIHRvIHNlbmQgbWVzc2FnZXMgdG8gdGhlIFVJUHJvY2VzcyBp
biBvcmRlciB0byB1cGRhdGUgdGhlIHN1Z2dlc3Rpb25zIHZpZXcuCisgICAgICAgIFRoaXMgb2Jq
ZWN0IGlzIGFsc28gcmVzcG9uc2libGUgZm9yIGZvcndhcmRpbmcgbWVzc2FnZXMgZnJvbSBXZWJL
aXQgaW50byB0aGUgRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudCwgd2hpY2gKKyAgICAgICAgaXMg
dGhlIFRleHRGaWVsZElucHV0VHlwZSBpbiB0aGlzIGNhc2UuIFRoZSBjbGllbnQgbmVlZHMgdG8g
a25vdyB3aGVuIHRoZSBzdWdnZXN0aW9ucyBhcmUgaGlkZGVuIG9yIGlmIGFuCisgICAgICAgIHN1
Z2dlc3Rpb24gaGFzIGJlZW4gc2VsZWN0ZWQuCisKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKTogUmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIFdl
YkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlciB0byBzZW5kL3JlY2VpdmUgbWVzc2FnZXMuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tl
ci5jcHA6IEFkZGVkLiBSZXNwb25zaWJsZSBmb3Igc2VuZGluZyBtZXNzYWdlcyB0byBVSVByb2Nl
c3MgYW5kIHVwZGF0aW5nIHRoZSBEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50LgorICAgICAgICAo
V2ViS2l0OjpXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI6OldlYkRhdGFMaXN0U3VnZ2VzdGlv
blBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcjo6
fldlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGFM
aXN0U3VnZ2VzdGlvblBpY2tlcjo6aGFuZGxlS2V5ZG93bldpdGhJZGVudGlmaWVyKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOjpkaWRTZWxlY3RPcHRpb24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI6OmRpZENsb3Nl
U3VnZ2VzdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNr
ZXI6OmNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2Vy
OjpkaXNwbGF5V2l0aEFjdGl2YXRpb25UeXBlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oOiBBZGRlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnNldEFjdGl2ZURhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmRpZFNlbGVjdERhdGFMaXN0T3B0aW9uKTogQ2FsbGVkIGJ5IFVJUHJvY2VzcyB3
aGVuIG9wdGlvbiBzZWxlY3RlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ2xvc2VT
dWdnZXN0aW9ucyk6IENhbGxlZCBieSBVSVByb2Nlc3MgaWYgdGhlIHN1Z2dlc3Rpb25zIHZpZXcg
aXMgY2xvc2VkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMTgtMDUt
MzAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBD
cm9zc09yaWdpblJlc291cmNlUG9saWN5IHNhbWUgdG8gc2FtZS1vcmlnaW4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwppbmRleCBlNzc4NTUwMWIyNmU1N2MwYThmNDMzNzZkNmQ5YzlhYjEzMTZl
OGMxLi5mYWUzZGRjNTAwNmY3M2YzYTVmNWEyYzY2NDUzYjQ0MzEzMTAwY2Y0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTgtMDUtMzEgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtEYXRhbGlzdF0gQWxsb3cg
VGV4dEZpZWxkSW5wdXRUeXBlIHRvIHNob3cgYW5kIGhpZGUgc3VnZ2VzdGlvbnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjE1MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVEYXRhTGlzdFN1Z2dlc3Rp
b25QaWNrZXIpOgorCiAyMDE4LTA1LTI3ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2ZXJ0ZWQgdGhlIGNoYW5nZXMgbWFkZSBmb3IgaHR0cHM6Ly93ZWJraXQu
b3JnL2IvMTg2MDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggMTY3M2FhOWE1MzBjYTNkMmU5MTY4NWZhMWM0MDUxYTJlZTU5MTBk
Yi4uY2MzY2U1YjQ5YmJjNTIzOWZjZDY5MGE4MmU4YmZjNmVlYmMwMGQ4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDc3MCw2
ICs0NzcwLDkgQEAKIAkJRTRFOUIxMTkxODEwOTE2RjAwM0FDQ0RGIC8qIFNpbXBsZUxpbmVMYXlv
dXRSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTRFOUIxMTgxODEwOTE2RjAwM0FDQ0RGIC8qIFNpbXBsZUxpbmVMYXlvdXRSZXNvbHZlci5o
ICovOyB9OwogCQlFNEU5QjExRDE4MTQ1NjlDMDAzQUNDREYgLyogU2ltcGxlTGluZUxheW91dEZ1
bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTRFOUIxMUMxODE0NTY5QzAwM0FDQ0RGIC8qIFNpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuaCAq
LzsgfTsKIAkJRTRGOUVFRjMxNTZEQTAwNzAwRDIzRTdFIC8qIFN0eWxlU2hlZXRDb250ZW50cy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRGOUVFRjEx
NTZEODRDNDAwRDIzRTdFIC8qIFN0eWxlU2hlZXRDb250ZW50cy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUU1MTc2NzAzMjBCODhDMTQwMEQ0MTE2
NyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUxNzY3MDIyMEI4OEMxNDAwRDQxMTY3IC8qIERh
dGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTUyQ0Y1NEQyMEEyNjhBQzAwREFEQTI3IC8qIERhdGFM
aXN0U3VnZ2VzdGlvbnNDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU1MkNGNTRDMjBBMjY4QUMwMERBREEyNyAvKiBEYXRhTGlzdFN1Z2dlc3Rp
b25zQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJRTUyQ0Y1NEYyMEEzNUEyODAwREFEQTI3IC8qIERhdGFMaXN0U3VnZ2VzdGlvblBpY2tl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUyQ0Y1
NEUyMEEzNUEyODAwREFEQTI3IC8qIERhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU1QkE3RDYzMTUxNDM3
Q0EwMEZFMUUzRiAvKiBMZW5ndGhGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1QkE3RDYyMTUxNDM3Q0EwMEZFMUUzRiAvKiBMZW5ndGhG
dW5jdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlFQkY1MTIxQzE2OTY0OTZDMDA1NkJEMjUgLyogSlNUeXBlQ29udmVyc2lvbnMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUJGNTEyMUExNjk2
NDk2QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmNwcCAqLzsgfTsKIAkJRUJGNTEyMUQx
Njk2NDk2QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkY1MTIxQjE2OTY0OTZDMDA1NkJEMjUgLyog
SlNUeXBlQ29udmVyc2lvbnMuaCAqLzsgfTsKQEAgLTE0NDUyLDggKzE0NDU1LDExIEBACiAJCUU0
RTlCMTFDMTgxNDU2OUMwMDNBQ0NERiAvKiBTaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRGOUVFRjAxNTZEODRDNDAwRDIzRTdF
IC8qIFN0eWxlU2hlZXRDb250ZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTdHlsZVNoZWV0Q29udGVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFNEY5RUVGMTE1NkQ4NEM0MDBEMjNFN0UgLyogU3R5bGVTaGVldENvbnRlbnRzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlU2hlZXRDb250ZW50cy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNTE3NjcwMjIwQjg4QzE0MDBENDExNjcgLyogRGF0
YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YUxpc3RTdWdn
ZXN0aW9uSW5mb3JtYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTUxQTgx
REUxNzI5OEQ3NzAwQkZDQTYxIC8qIEpTUGVyZm9ybWFuY2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNQZXJmb3JtYW5jZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUU1MjZBRjNFMTcyN0Y4RjIwMEU0MTc4MSAvKiBQZXJmb3JtYW5jZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQZXJmb3JtYW5jZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1MkNGNTRDMjBBMjY4QUMwMERBREEyNyAvKiBE
YXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFMaXN0U3VnZ2Vz
dGlvbnNDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTUyQ0Y1NEUyMEEz
NUEyODAwREFEQTI3IC8qIERhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTU1RjQ5NzkxNTFCODg4MDAwQkI2N0RCIC8qIExlbmd0aEZ1bmN0aW9ucy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMZW5ndGhGdW5jdGlvbnMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNUJBN0Q2MjE1MTQzN0NBMDBGRTFFM0YgLyogTGVu
Z3RoRnVuY3Rpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlbmd0aEZ1
bmN0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQjA4MUNEODE2OTYwODQ0
MDA1NTM3MzAgLyogVHlwZUNvbnZlcnNpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGVDb252ZXJz
aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjAzMzcsNiArMjAzNDMsNyBA
QAogCQkJCTkzQzQ0MUZGMEY4MTNBRTEwMEMxQTYzNCAvKiBDb2xsZWN0aW9uVHlwZS5oICovLAog
CQkJCUJDMjk5MzVDMTdBMURENTgwMEJDRTg4MCAvKiBDb2xvcklucHV0VHlwZS5jcHAgKi8sCiAJ
CQkJRjU1QjNEODAxMjUxRjEyRDAwM0VGMjY5IC8qIENvbG9ySW5wdXRUeXBlLmggKi8sCisJCQkJ
RTUxNzY3MDIyMEI4OEMxNDAwRDQxMTY3IC8qIERhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9u
LmggKi8sCiAJCQkJRjU1QjNEODExMjUxRjEyRDAwM0VGMjY5IC8qIERhdGVJbnB1dFR5cGUuY3Bw
ICovLAogCQkJCUY1NUIzRDgyMTI1MUYxMkQwMDNFRjI2OSAvKiBEYXRlSW5wdXRUeXBlLmggKi8s
CiAJCQkJRjU1QjNEODMxMjUxRjEyRDAwM0VGMjY5IC8qIERhdGVUaW1lSW5wdXRUeXBlLmNwcCAq
LywKQEAgLTI0MzUwLDYgKzI0MzU3LDggQEAKIAkJCQk0NkM2OTZDOTFFNzIwNUU0MDA1OTc5Mzcg
LyogQ1BVTW9uaXRvci5oICovLAogCQkJCUUxMUFGMTUwMTFCOUExQTMwMDgwNTEwMyAvKiBDdXJz
b3IuY3BwICovLAogCQkJCUY1ODc4Njg0MDJERTNCODYwMUVBNDEyMiAvKiBDdXJzb3IuaCAqLywK
KwkJCQlFNTJDRjU0RTIwQTM1QTI4MDBEQURBMjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uUGlja2Vy
LmggKi8sCisJCQkJRTUyQ0Y1NEMyMEEyNjhBQzAwREFEQTI3IC8qIERhdGFMaXN0U3VnZ2VzdGlv
bnNDbGllbnQuaCAqLywKIAkJCQlBNTczMkIwODEzNkExNjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBv
bmVudHMuY3BwICovLAogCQkJCUE1NzMyQjA5MTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9u
ZW50cy5oICovLAogCQkJCTM3QzczOEYxMUVEQkRFODcwMDNGMkIwQiAvKiBEYXRlVGltZUNob29z
ZXIuaCAqLywKQEAgLTI3NTcxLDYgKzI3NTgwLDkgQEAKIAkJCQlCRTIzNDgwRDE4QTk4NzE0MDBF
NEI2RTggLyogRGF0YUN1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzUyMjdERjExQzNDNkRGMTAw
RjVFRDU0IC8qIERhdGFEZXRlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNzk0MUU1MUM1
NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmggaW4gSGVhZGVycyAq
LywKKwkJCQlFNTE3NjcwMzIwQjg4QzE0MDBENDExNjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uSW5m
b3JtYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUU1MkNGNTRGMjBBMzVBMjgwMERBREEyNyAv
KiBEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUU1MkNGNTRE
MjBBMjY4QUMwMERBREEyNyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzIyNzQ2RjBFODM2NjQ1MDBFN0Y5NzUgLyogRGF0YVJlZi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM2NDY0MUMxMUQ3RjQxNjAwNjQ1NUIwIC8qIERhdGFzZXRET01TdHJpbmdN
YXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMxQjNFMEE0NEVGQzcwMEY5OTJFMCAvKiBEYXRh
VHJhbnNmZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9EYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9E
YXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2MjMwN2VlMTlkNTQz
NzEzM2VkODdiMGQ3MzE4MDc2NTQzOTU4M2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmgKQEAgLTAsMCArMSw0NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1F
TlQpCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gRGF0YUxpc3RTdWdnZXN0aW9uQWN0aXZh
dGlvblR5cGUgeworICAgIENvbnRyb2xDbGlja2VkLAorICAgIEluZGljYXRvckNsaWNrZWQsCisg
ICAgVGV4dENoYW5nZWQsCit9OworCitzdHJ1Y3QgRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRp
b24geworICAgIERhdGFMaXN0U3VnZ2VzdGlvbkFjdGl2YXRpb25UeXBlIGFjdGl2YXRpb25UeXBl
OworICAgIFZlY3RvcjxTdHJpbmc+IHN1Z2dlc3Rpb25zOworICAgIEludFJlY3QgZWxlbWVudFJl
Y3Q7Cit9OworCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4
dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRU
eXBlLmNwcAppbmRleCBkOWM0OTJlZDEzODMxZjhjNjkxNDUxMTg3ZDZiYmUwN2JkZDZhMjMxLi5i
ODUyM2I1MDg2ODQ2YTY5ZWVlNWZiZGIzNzAyYjI0N2QyZGMzMWU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC01OCw2ICs1OCwxMSBAQAogI2luY2x1
ZGUgIlRleHROb2RlVHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudC5oIgogCisjaWYg
RU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisjaW5jbHVkZSAiSFRNTERhdGFMaXN0RWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwpAQCAtNzEsNiArNzYsOSBAQCBU
ZXh0RmllbGRJbnB1dFR5cGU6On5UZXh0RmllbGRJbnB1dFR5cGUoKQogewogICAgIGlmIChtX2lu
bmVyU3BpbkJ1dHRvbikKICAgICAgICAgbV9pbm5lclNwaW5CdXR0b24tPnJlbW92ZVNwaW5CdXR0
b25Pd25lcigpOworI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQorICAgIGNsb3NlU3VnZ2Vz
dGlvbnMoKTsKKyNlbmRpZgogfQogCiBib29sIFRleHRGaWVsZElucHV0VHlwZTo6aXNLZXlib2Fy
ZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QKQEAgLTE1NiwxMCArMTY0LDIzIEBAIHZv
aWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHNhbml0aXplZFZh
bHVlLCBib29sIHZhbHVlQ2hhbmdlCiAgICAgICAgIGlucHV0LT5zZXRUZXh0QXNPZkxhc3RGb3Jt
Q29udHJvbENoYW5nZUV2ZW50KHNhbml0aXplZFZhbHVlKTsKIH0KIAorI2lmIEVOQUJMRShEQVRB
TElTVF9FTEVNRU5UKQordm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmhhbmRsZUNsaWNrRXZlbnQo
X191bnVzZWQgTW91c2VFdmVudCYgZXZlbnQpCit7CisgICAgaWYgKGVsZW1lbnQoKS5mb2N1c2Vk
KCkgJiYgZWxlbWVudCgpLmxpc3QoKSkKKyAgICAgICAgZGlzcGxheVN1Z2dlc3Rpb25zKERhdGFM
aXN0U3VnZ2VzdGlvbkFjdGl2YXRpb25UeXBlOjpDb250cm9sQ2xpY2tlZCk7Cit9CisjZW5kaWYK
Kwogdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2
ZW50JiBldmVudCkKIHsKICAgICBpZiAoIWVsZW1lbnQoKS5mb2N1c2VkKCkpCiAgICAgICAgIHJl
dHVybjsKKyNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKyAgICBjb25zdCBTdHJpbmcmIGtl
eSA9IGV2ZW50LmtleUlkZW50aWZpZXIoKTsKKyAgICBpZiAobV9zdWdnZXN0aW9uUGlja2VyICYm
IChrZXkgPT0gIkVudGVyIiB8fCBrZXkgPT0gIlVwIiB8fCBrZXkgPT0gIkRvd24iKSkKKyAgICAg
ICAgbV9zdWdnZXN0aW9uUGlja2VyLT5oYW5kbGVLZXlkb3duV2l0aElkZW50aWZpZXIoa2V5KTsK
KyNlbmRpZgogICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBlbGVtZW50KCkuZG9jdW1lbnQoKS5m
cmFtZSgpOwogICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5lZGl0b3IoKS5kb1RleHRGaWVsZENv
bW1hbmRGcm9tRXZlbnQoJmVsZW1lbnQoKSwgJmV2ZW50KSkKICAgICAgICAgcmV0dXJuOwpAQCAt
MjEzLDYgKzIzNCwxMCBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6ZWxlbWVudERpZEJsdXIo
KQogICAgIGJvb2wgaXNMZWZ0VG9SaWdodERpcmVjdGlvbiA9IGRvd25jYXN0PFJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZT4oKnJlbmRlcmVyKS5zdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rp
b24oKTsKICAgICBTY3JvbGxPZmZzZXQgc2Nyb2xsT2Zmc2V0KGlzTGVmdFRvUmlnaHREaXJlY3Rp
b24gPyAwIDogaW5uZXJMYXllci0+c2Nyb2xsV2lkdGgoKSwgMCk7CiAgICAgaW5uZXJMYXllci0+
c2Nyb2xsVG9PZmZzZXQoc2Nyb2xsT2Zmc2V0KTsKKworI2lmIEVOQUJMRShEQVRBTElTVF9FTEVN
RU5UKQorICAgIGNsb3NlU3VnZ2VzdGlvbnMoKTsKKyNlbmRpZgogfQogCiB2b2lkIFRleHRGaWVs
ZElucHV0VHlwZTo6aGFuZGxlRm9jdXNFdmVudChOb2RlKiBvbGRGb2N1c2VkTm9kZSwgRm9jdXNE
aXJlY3Rpb24pCkBAIC01MTYsNyArNTQxLDExIEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpo
YW5kbGVCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudChCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudCYKIAog
Ym9vbCBUZXh0RmllbGRJbnB1dFR5cGU6OnNob3VsZFJlc3BlY3RMaXN0QXR0cmlidXRlKCkKIHsK
KyNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbHNlCiAg
ICAgcmV0dXJuIElucHV0VHlwZTo6dGhlbWVTdXBwb3J0c0RhdGFMaXN0VUkodGhpcyk7CisjZW5k
aWYKIH0KIAogdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgp
CkBAIC01ODMsNiArNjEyLDEwIEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpkaWRTZXRWYWx1
ZUJ5VXNlckVkaXQoKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKFJlZlB0cjxGcmFtZT4gZnJh
bWUgPSBlbGVtZW50KCkuZG9jdW1lbnQoKS5mcmFtZSgpKQogICAgICAgICBmcmFtZS0+ZWRpdG9y
KCkudGV4dERpZENoYW5nZUluVGV4dEZpZWxkKCZlbGVtZW50KCkpOworI2lmIEVOQUJMRShEQVRB
TElTVF9FTEVNRU5UKQorICAgIGlmIChlbGVtZW50KCkubGlzdCgpKQorICAgICAgICBkaXNwbGF5
U3VnZ2VzdGlvbnMoRGF0YUxpc3RTdWdnZXN0aW9uQWN0aXZhdGlvblR5cGU6OlRleHRDaGFuZ2Vk
KTsKKyNlbmRpZgogfQogCiB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6c3BpbkJ1dHRvblN0ZXBE
b3duKCkKQEAgLTcxNyw0ICs3NTAsNjcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0
ZUF1dG9GaWxsQnV0dG9uKCkKICAgICAgICAgbV9hdXRvRmlsbEJ1dHRvbi0+c2V0SW5saW5lU3R5
bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIENTU1ZhbHVlTm9uZSwgdHJ1ZSk7ICAgICAg
ICAKIH0KIAorI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQorCitJbnRSZWN0IFRleHRGaWVs
ZElucHV0VHlwZTo6ZWxlbWVudFJlY3RSZWxhdGl2ZVRvUm9vdFZpZXcoKSBjb25zdAoreworICAg
IGlmICghZWxlbWVudCgpLnJlbmRlcmVyKCkpCisgICAgICAgIHJldHVybiBJbnRSZWN0KCk7Cisg
ICAgcmV0dXJuIGVsZW1lbnQoKS5kb2N1bWVudCgpLnZpZXcoKS0+Y29udGVudHNUb1Jvb3RWaWV3
KGVsZW1lbnQoKS5yZW5kZXJlcigpLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpKTsKK30KKwor
VmVjdG9yPFN0cmluZz4gVGV4dEZpZWxkSW5wdXRUeXBlOjpzdWdnZXN0aW9ucygpIGNvbnN0Cit7
CisgICAgVmVjdG9yPFN0cmluZz4gc3VnZ2VzdGlvbnM7CisKKyAgICBpZiAoYXV0byBkYXRhTGlz
dCA9IGVsZW1lbnQoKS5kYXRhTGlzdCgpKSB7CisgICAgICAgIFJlZjxIVE1MQ29sbGVjdGlvbj4g
b3B0aW9ucyA9IGRhdGFMaXN0LT5vcHRpb25zKCk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gb3B0aW9uID0gZG93bmNhc3Q8SFRNTE9wdGlv
bkVsZW1lbnQ+KG9wdGlvbnMtPml0ZW0oaSkpOyArK2kpIHsKKyAgICAgICAgICAgIGlmICghZWxl
bWVudCgpLmlzVmFsaWRWYWx1ZShvcHRpb24tPnZhbHVlKCkpKQorICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworCisgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBzYW5pdGl6ZVZhbHVlKG9wdGlv
bi0+dmFsdWUoKSk7CisgICAgICAgICAgICBpZiAoIXN1Z2dlc3Rpb25zLmNvbnRhaW5zKHZhbHVl
KSAmJiAoZWxlbWVudCgpLnZhbHVlKCkuaXNFbXB0eSgpIHx8IHZhbHVlLmNvbnRhaW5zSWdub3Jp
bmdBU0NJSUNhc2UoZWxlbWVudCgpLnZhbHVlKCkpKSkKKyAgICAgICAgICAgICAgICBzdWdnZXN0
aW9ucy5hcHBlbmQodmFsdWUpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHN1Z2dl
c3Rpb25zOworfQorCit2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6ZGlkU2VsZWN0RGF0YUxpc3RP
cHRpb24oY29uc3QgU3RyaW5nJiBzZWxlY3RlZE9wdGlvbikKK3sKKyAgICBlbGVtZW50KCkuc2V0
VmFsdWUoc2VsZWN0ZWRPcHRpb24sIERpc3BhdGNoSW5wdXRBbmRDaGFuZ2VFdmVudCk7Cit9CisK
K3ZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpkaWRDbG9zZVN1Z2dlc3Rpb25zKCkKK3sKKyAgICBt
X3N1Z2dlc3Rpb25QaWNrZXIgPSBudWxscHRyOworfQorCit2b2lkIFRleHRGaWVsZElucHV0VHlw
ZTo6ZGlzcGxheVN1Z2dlc3Rpb25zKERhdGFMaXN0U3VnZ2VzdGlvbkFjdGl2YXRpb25UeXBlIHR5
cGUpCit7CisgICAgaWYgKGVsZW1lbnQoKS5pc0Rpc2FibGVkRm9ybUNvbnRyb2woKSB8fCAhZWxl
bWVudCgpLnJlbmRlcmVyKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghVXNlckdlc3R1
cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAoIW1fc3VnZ2VzdGlvblBpY2tlciAmJiBzdWdnZXN0aW9ucygpLnNpemUoKSA+IDAp
CisgICAgICAgIG1fc3VnZ2VzdGlvblBpY2tlciA9IGNocm9tZSgpLT5jcmVhdGVEYXRhTGlzdFN1
Z2dlc3Rpb25QaWNrZXIoKnRoaXMpOworCisgICAgaWYgKCFtX3N1Z2dlc3Rpb25QaWNrZXIpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fc3VnZ2VzdGlvblBpY2tlci0+ZGlzcGxheVdpdGhBY3Rp
dmF0aW9uVHlwZSh0eXBlKTsKK30KKwordm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNsb3NlU3Vn
Z2VzdGlvbnMoKQoreworICAgIGlmIChtX3N1Z2dlc3Rpb25QaWNrZXIpCisgICAgICAgIG1fc3Vn
Z2VzdGlvblBpY2tlci0+Y2xvc2UoKTsKK30KKworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5oCmluZGV4IDA3YjU3
M2Q3ZTQ4OWNkZWM5YTY3YTA5YjU3ZTQ1Yjc0YWY1ODEyZmEuLmExYjZlZGNlM2ZmOGJiNzg0MDJh
Y2ZlNWQ1OTcwNmRlNGU3MzJhYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4
dEZpZWxkSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1
dFR5cGUuaApAQCAtMzEsNiArMzEsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBdXRv
RmlsbEJ1dHRvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIu
aCIKKyNpbmNsdWRlICJEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50LmgiCiAjaW5jbHVkZSAiSW5w
dXRUeXBlLmgiCiAjaW5jbHVkZSAiU3BpbkJ1dHRvbkVsZW1lbnQuaCIKIApAQCAtNDEsMTIgKzQz
LDE5IEBAIGNsYXNzIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDsKIAogLy8gVGhlIGNsYXNz
IHJlcHJlc2VudHMgdHlwZXMgb2Ygd2hpY2ggVUkgY29udGFpbiB0ZXh0IGZpZWxkcy4KIC8vIEl0
IHN1cHBvcnRzIG5vdCBvbmx5IHRoZSB0eXBlcyBmb3IgQmFzZVRleHRJbnB1dFR5cGUgYnV0IGFs
c28gdHlwZT1udW1iZXIuCi1jbGFzcyBUZXh0RmllbGRJbnB1dFR5cGUgOiBwdWJsaWMgSW5wdXRU
eXBlLCBwcm90ZWN0ZWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OlNwaW5CdXR0b25Pd25lciwgcHJvdGVj
dGVkIEF1dG9GaWxsQnV0dG9uRWxlbWVudDo6QXV0b0ZpbGxCdXR0b25Pd25lciB7CitjbGFzcyBU
ZXh0RmllbGRJbnB1dFR5cGUgOiBwdWJsaWMgSW5wdXRUeXBlLCBwcm90ZWN0ZWQgU3BpbkJ1dHRv
bkVsZW1lbnQ6OlNwaW5CdXR0b25Pd25lciwgcHJvdGVjdGVkIEF1dG9GaWxsQnV0dG9uRWxlbWVu
dDo6QXV0b0ZpbGxCdXR0b25Pd25lcgorI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQorICAg
ICwgcHJpdmF0ZSBEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50CisjZW5kaWYKK3sKIHByb3RlY3Rl
ZDoKICAgICBleHBsaWNpdCBUZXh0RmllbGRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwog
ICAgIHZpcnR1YWwgflRleHRGaWVsZElucHV0VHlwZSgpOwogICAgIHZvaWQgaGFuZGxlS2V5ZG93
bkV2ZW50KEtleWJvYXJkRXZlbnQmKSBvdmVycmlkZTsKICAgICB2b2lkIGhhbmRsZUtleWRvd25F
dmVudEZvclNwaW5CdXR0b24oS2V5Ym9hcmRFdmVudCYpOworI2lmIEVOQUJMRShEQVRBTElTVF9F
TEVNRU5UKQorICAgIHZvaWQgaGFuZGxlQ2xpY2tFdmVudChNb3VzZUV2ZW50Jikgb3ZlcnJpZGU7
CisjZW5kaWYKIAogICAgIEhUTUxFbGVtZW50KiBjb250YWluZXJFbGVtZW50KCkgY29uc3QgZmlu
YWw7CiAgICAgSFRNTEVsZW1lbnQqIGlubmVyQmxvY2tFbGVtZW50KCkgY29uc3QgZmluYWw7CkBA
IC0xMTAsNiArMTE5LDE5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVDb250YWluZXIoKTsK
ICAgICB2b2lkIGNyZWF0ZUF1dG9GaWxsQnV0dG9uKEF1dG9GaWxsQnV0dG9uVHlwZSk7CiAKKyNp
ZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKyAgICB2b2lkIGRpc3BsYXlTdWdnZXN0aW9ucyhE
YXRhTGlzdFN1Z2dlc3Rpb25BY3RpdmF0aW9uVHlwZSk7CisgICAgdm9pZCBjbG9zZVN1Z2dlc3Rp
b25zKCk7CisKKyAgICAvLyBEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50CisgICAgSW50UmVjdCBl
bGVtZW50UmVjdFJlbGF0aXZlVG9Sb290VmlldygpIGNvbnN0IGZpbmFsOworICAgIFZlY3RvcjxT
dHJpbmc+IHN1Z2dlc3Rpb25zKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBkaWRTZWxlY3REYXRh
TGlzdE9wdGlvbihjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGRpZENsb3NlU3VnZ2Vz
dGlvbnMoKSBmaW5hbDsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhTGlzdFN1Z2dlc3Rpb25Q
aWNrZXI+IG1fc3VnZ2VzdGlvblBpY2tlcjsKKyNlbmRpZgorCiAgICAgUmVmUHRyPEhUTUxFbGVt
ZW50PiBtX2NvbnRhaW5lcjsKICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IG1faW5uZXJCbG9jazsK
ICAgICBSZWZQdHI8VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50PiBtX2lubmVyVGV4dDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggYzZlNWVlZWZhNjI5NGJmNGRk
NzU5MTAzZWY1MTcxMGVkNTg0OWE4Yi4uNjA1M2I4NzhiMmYwNDU0MDAzZGYxNDcwMWVhOGNiYTRk
MDM5ZGFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTMyLDYg
KzMyLDcgQEAKICNpbmNsdWRlICJCYWNrRm9yd2FyZENsaWVudC5oIgogI2luY2x1ZGUgIkNvbG9y
Q2hvb3Nlci5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCisjaW5jbHVkZSAiRGF0
YUxpc3RTdWdnZXN0aW9uUGlja2VyLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VQcm92aWRlci5oIgog
I2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRG
cmFnbWVudC5oIgpAQCAtNDIzLDYgKzQyNCwxNSBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9v
c2VyPiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3Nlcgog
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQorCitzdGQ6OnVuaXF1ZV9w
dHI8RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyPiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlRGF0
YUxpc3RTdWdnZXN0aW9uUGlja2VyKERhdGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQmKQoreworICAg
IHJldHVybiBudWxscHRyOworfQorCisjZW5kaWYKKwogdm9pZCBFbXB0eUNocm9tZUNsaWVudDo6
cnVuT3BlblBhbmVsKEZyYW1lJiwgRmlsZUNob29zZXImKQogewogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oCmluZGV4IGUyODVmNjM5ZTBkODdiZDU4NmRjM2ZmYWRlNWZjZTljODdl
ZmMwZmMuLjlkMDUyYjBiOTUyM2ZiYzg0NjY5M2YyMmRjNWZjNzhhYTM4MDc2NWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTEzMiw2ICsxMzIsMTAgQEAgY2xhc3MgRW1w
dHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50Jiwg
Y29uc3QgQ29sb3ImKSBmaW5hbDsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1F
TlQpCisgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcj4gY3JlYXRl
RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKERhdGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQmKSBmaW5h
bDsKKyNlbmRpZgorCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3NlciYp
IGZpbmFsOwogICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYs
IEZpbGVJY29uTG9hZGVyJikgZmluYWwgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCA3
NzBhOTZiMTAwM2IyMzM5MDI0MzBkOWZkMjBmNjQ1YmQ2ZTMwMzY5Li5mZjY5ZWRlZjFjMDA4NmI2
M2JjNTVkMjM0YjFjZjI2MmI1NTllZGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC01Niw2
ICs1NiwxMCBAQAogI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoREFUQUxJU1RfRUxFTUVOVCkKKyNpbmNsdWRlICJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIu
aCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1M
TmFtZXM7CkBAIC00MjIsNiArNDI2LDE2IEBAIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+
IENocm9tZTo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCYgY2xpCiAKICNl
bmRpZgogCisjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisKK3N0ZDo6dW5pcXVlX3B0cjxE
YXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI+IENocm9tZTo6Y3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9u
UGlja2VyKERhdGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQmIGNsaWVudCkKK3sKKyAgICBub3RpZnlQ
b3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKKyAgICByZXR1cm4gbV9jbGllbnQuY3JlYXRlRGF0YUxp
c3RTdWdnZXN0aW9uUGlja2VyKGNsaWVudCk7Cit9CisKKyNlbmRpZgorCiB2b2lkIENocm9tZTo6
cnVuT3BlblBhbmVsKEZyYW1lJiBmcmFtZSwgRmlsZUNob29zZXImIGZpbGVDaG9vc2VyKQogewog
ICAgIG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXgg
MjE3NGNiZTEyNmRmNWYzNGMwMjMyOTcyNmZhZjYyNWQ2YTIxMTEzNS4uY2NiY2U5MzU1NmVhOTRi
NWMxMTBjNWRjMzU3YzM1ZDk4ODMxYTlmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC0zNyw2ICsz
Nyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENocm9tZUNsaWVudDsKIGNsYXNzIENv
bG9yQ2hvb3NlcjsKIGNsYXNzIENvbG9yQ2hvb3NlckNsaWVudDsKK2NsYXNzIERhdGFMaXN0U3Vn
Z2VzdGlvblBpY2tlcjsKK2NsYXNzIERhdGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQ7CiBjbGFzcyBE
YXRlVGltZUNob29zZXI7CiBjbGFzcyBEYXRlVGltZUNob29zZXJDbGllbnQ7CiBjbGFzcyBGaWxl
Q2hvb3NlcjsKQEAgLTE1Miw2ICsxNTQsMTAgQEAgcHVibGljOgogICAgIHN0ZDo6dW5pcXVlX3B0
cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQmLCBj
b25zdCBDb2xvciYgaW5pdGlhbENvbG9yKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFMSVNU
X0VMRU1FTlQpCisgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcj4g
Y3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKERhdGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQm
KTsKKyNlbmRpZgorCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3NlciYp
OwogICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJ
Y29uTG9hZGVyJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGUyNDIyMzcw
ZTdlZGVmNDQ1OWVkZWYwMDkxYjFlZjZkZmIzZWZiZDIuLmJlYTBkOGY0Y2I4YWQzNGIxZTk5NmVi
ZjMxOGNmZmIwZmI5NjhiZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtNjgs
NiArNjgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0
OwogY2xhc3MgQ29sb3JDaG9vc2VyOwogY2xhc3MgQ29sb3JDaG9vc2VyQ2xpZW50OworY2xhc3Mg
RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOworY2xhc3MgRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVu
dDsKIGNsYXNzIERhdGVUaW1lQ2hvb3NlcjsKIGNsYXNzIERhdGVUaW1lQ2hvb3NlckNsaWVudDsK
IGNsYXNzIEVsZW1lbnQ7CkBAIC0yNzUsNiArMjc3LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNo
b29zZXJDbGllbnQmLCBjb25zdCBDb2xvciYpID0gMDsKICNlbmRpZgogCisjaWYgRU5BQkxFKERB
VEFMSVNUX0VMRU1FTlQpCisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8RGF0YUxpc3RTdWdn
ZXN0aW9uUGlja2VyPiBjcmVhdGVEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIoRGF0YUxpc3RTdWdn
ZXN0aW9uc0NsaWVudCYpID0gMDsKKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5Q
YW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJikgPSAwOwogICAgIC8vIEFzeW5jaHJvbm91cyByZXF1
ZXN0IHRvIGxvYWQgYW4gaWNvbiBmb3Igc3BlY2lmaWVkIGZpbGVuYW1lcy4KICAgICB2aXJ0dWFs
IHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9h
ZGVyJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0YUxpc3RT
dWdnZXN0aW9uUGlja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRhTGlzdFN1Z2dl
c3Rpb25QaWNrZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzMxNTRjODAzYmJjNGEzMThkMTJiZWVhYzk2MDUz
NjQ0YTUyN2ZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0
YUxpc3RTdWdnZXN0aW9uUGlja2VyLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisKKyNpbXBvcnQgIkRh
dGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmgiCisjaW1wb3J0ICJJbnRSZWN0LmgiCisKKyNp
bXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERhdGFMaXN0U3VnZ2VzdGlvblBpY2tlciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+RGF0
YUxpc3RTdWdnZXN0aW9uUGlja2VyKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIGNs
b3NlKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWRvd25XaXRoSWRlbnRpZmllcihj
b25zdCBXVEY6OlN0cmluZyYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaXNwbGF5V2l0aEFjdGl2
YXRpb25UeXBlKERhdGFMaXN0U3VnZ2VzdGlvbkFjdGl2YXRpb25UeXBlKSB7IH0KK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9EYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9EYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjAwODk0YTkz
ODE5NTljNmQxZWVlZjY3MDk3OTdlYWU0ZGFiYjg1NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQuaApAQCAtMCwwICsx
LDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoREFUQUxJU1Rf
RUxFTUVOVCkKKworI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVu
dCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+RGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudCgpID0g
ZGVmYXVsdDsKKworICAgIHZpcnR1YWwgSW50UmVjdCBlbGVtZW50UmVjdFJlbGF0aXZlVG9Sb290
VmlldygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IHN1Z2dlc3Rpb25z
KCkgY29uc3QgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGRpZFNlbGVjdERhdGFMaXN0T3B0aW9u
KGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2VTdWdnZXN0aW9u
cygpID0gMDsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MzI2ZWQ2ZDExNWUzYjAxZThkMDQyYTZhYzY2NzUzYzc2MjQ5MmVjYi4uYmRhNzc3MzFiNWY0Yzhm
MDg0NDcxYjYxODc4NWU5NmNlNDRiYmJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMTU2LDYgKzIxNTYsOCBAQAogCQlFNDlENDBE
OTFBRDNGQjIxMDA2NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5RDQwRDgxQUQzRkIyMTAw
NjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcCAqLzsgfTsKIAkJRTRFODY0OTIx
QjE2NzUwMTAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3MubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEU4NjQ4RjFCMTY3M0ZCMDBDODJGNDAgLyogVmVy
c2lvbkNoZWNrcy5tbSAqLzsgfTsKIAkJRTRFODY0OTMxQjE2NzUwNzAwQzgyRjQwIC8qIFZlcnNp
b25DaGVja3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU0RTg2NDhFMUIxNjczRkIwMEM4MkY0MCAvKiBWZXJzaW9uQ2hlY2tzLmggKi87IH07CisJCUU1
MkNGNTUyMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MkNGNTUwMjBB
MzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCAqLzsgfTsKKwkJ
RTUyQ0Y1NTMyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTJDRjU1
MTIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmNwcCAqLzsg
fTsKIAkJRUNBNjgwRDgxRTY5MEUyNTAwNzMxRDIwIC8qIFdlYlByb2Nlc3NDb2NvYS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUNBNjgwRDcxRTY5MERG
ODAwNzMxRDIwIC8qIFdlYlByb2Nlc3NDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUVEODJBN0YyMTI4QzZGQUYwMDQ0NzdCMyAvKiBXS0J1
bmRsZVBhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQTIyRjBGRjEyODlGQ0Q5MDA4NUU3NEYgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUVEQ0E3
MUI3MTI4RERBOEMwMDIwMUIyNiAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjJGMTAwMTI4OUZDRDkwMDg1
RTc0RiAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5LmNwcCAqLzsgfTsKQEAgLTQ3MDAsNiArNDcwMiw4
IEBACiAJCUU0OUQ0MEQ4MUFEM0ZCMjEwMDY2QjdCOSAvKiBOZXR3b3JrQ2FjaGVCbG9iU3RvcmFn
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrQ2FjaGVC
bG9iU3RvcmFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0RTg2NDhFMUIx
NjczRkIwMEM4MkY0MCAvKiBWZXJzaW9uQ2hlY2tzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFZlcnNpb25DaGVja3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTRFODY0OEYxQjE2NzNGQjAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3MubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWZXJzaW9uQ2hlY2tzLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFNTJDRjU1MDIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxp
c3RTdWdnZXN0aW9uUGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlv
blBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNTJDRjU1MTIwQTM1QzNB
MDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUVDQTY4MEQzMUU2OTA0QjUwMDczMUQyMCAvKiBFeHRyYVByaXZhdGVTeW1i
b2xzRm9yVEFQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeHRyYVByaXZh
dGVTeW1ib2xzRm9yVEFQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQ0E2ODBE
NzFFNjkwREY4MDA3MzFEMjAgLyogV2ViUHJvY2Vzc0NvY29hLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YlByb2Nlc3NDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQ0JGQzFEQjFF
NkE0RDY2MDAwMzAwQzcgLyogRXh0cmFQdWJsaWNTeW1ib2xzRm9yVEFQSS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBFeHRyYVB1YmxpY1N5bWJvbHNGb3JUQVBJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC03MTYxLDYgKzcxNjUsOCBAQAogCQkJCTRBNDEwRjQ5MTlBRjdCODAwMDJFQkFCNSAv
KiBXZWJVc2VyTWVkaWFDbGllbnQuaCAqLywKIAkJCQk4M0VFNTc1OTFEQjdENjA2MDBDNzRDNTAg
LyogV2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuY3BwICovLAogCQkJCTgzRUU1NzVBMURCN0Q2
MDYwMEM3NEM1MCAvKiBXZWJWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovLAorCQkJCUU1MkNG
NTUwMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCAqLywK
KwkJCQlFNTJDRjU1MTIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlj
a2VyLmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gV2ViQ29yZVN1cHBvcnQ7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtODg0Miw2ICs4ODQ4LDcgQEAKIAkJCQk3Q0U0RDIwNzFBNDY3
NzYxMDBDN0YxNTIgLyogQVBJTGVnYWN5Q29udGV4dEhpc3RvcnlDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBMjQ2NEYzMTg5MUU0NTEwMDIzNEM1QiAvKiBBUElMb2FkZXJDbGllbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTdDRDNBNDgzMUE1RDAyRkEwMDk2MjNCOCAvKiBBUElOYXZpZ2F0
aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNTJDRjU1MjIwQTM1QzNBMDBEQURBMjcgLyogV2Vi
RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREY5RUVFQzFB
NzgzNkVFMDBCNkNGQkUgLyogQVBJTmF2aWdhdGlvbkFjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkREOUVCMkQxQTZGMDEyNTAwQkIxMjY3IC8qIEFQSU5hdmlnYXRpb25DbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDRjY5RkEyMTE3NkQwMTQwMDQ3MUE1MiAvKiBBUElOYXZpZ2F0aW9u
RGF0YS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTA2Myw2ICsxMTA3MCw3IEBACiAJCQkJMUNBOEI5
NDUxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFDODkxRDY1MTlCMTI0RkYwMEJBNzlERCAvKiBXZWJJbnNw
ZWN0b3JVSS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQ0E4Qjk1NDEyN0M4OTE1MDA1NzZDMkIg
LyogV2ViSW5zcGVjdG9yVUlNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQlFNTJDRjU1MzIwQTM1
QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFDQkJFNEEwMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTVCQTgyQzFCQTM4RTY0MDA3Q0Qz
M0QgLyogV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEQTk0
NEExMTg4NEU0RjAwMEVEODZEQiAvKiBXZWJJT1NFdmVudEZhY3RvcnkubW0gaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNjRlZjYzZTExYzcyZTU4NDUyZmNhZDdlYWNk
YjQ1ODAxYjMzMzM1Yi4uMGM5NTVmNjc3MWJlY2NiZTU2OGYwMjQyNDc5ZjE2MzAxZjVkMWY0YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJVc2Vy
RGF0YS5oIgogI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3Nlci5oIgogI2luY2x1ZGUgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5o
IgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVMb2FkZXJDbGllbnQu
aCIKICNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlci5oIgpAQCAtNTcsNiArNTgsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0FYT2JqZWN0Q2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yQ2hvb3Nlci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9EYXRhYmFzZVRyYWNrZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50
TG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlQ2hvb3Nlci5oPgpAQCAtNzg5LDYgKzc5
MSwxNSBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBXZWJDaHJvbWVDbGllbnQ6OmNy
ZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbAogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShE
QVRBTElTVF9FTEVNRU5UKQorCitzdGQ6OnVuaXF1ZV9wdHI8RGF0YUxpc3RTdWdnZXN0aW9uUGlj
a2VyPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcihEYXRh
TGlzdFN1Z2dlc3Rpb25zQ2xpZW50JiBjbGllbnQpCit7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyPigmbV9wYWdlLCAmY2xpZW50KTsKK30K
KworI2VuZGlmCisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUmIGZy
YW1lLCBGaWxlQ2hvb3NlciYgZmlsZUNob29zZXIpCiB7CiAgICAgaWYgKG1fcGFnZS5hY3RpdmVP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDU4NDZhZTNj
NGJjMjA1ZGE5MzA3OWE0N2U5ZjJlNzNjODAzZDVlNmIuLjgxMWE4MjJjOTQ1MzQzNjZhNzUwMzEx
MTVlOWEwZmFhOTNmNDI3ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE0OCw2ICsxNDgsMTAg
QEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29sb3JDaG9vc2VyPiBj
cmVhdGVDb2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3QgV2Vi
Q29yZTo6Q29sb3ImKSBmaW5hbDsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1F
TlQpCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tl
cj4gY3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKFdlYkNvcmU6OkRhdGFMaXN0U3VnZ2Vz
dGlvbnNDbGllbnQmKSBmaW5hbDsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVO
VFMpCiAgICAgdm9pZCBkaWRQcmV2ZW50RGVmYXVsdEZvckV2ZW50KCkgZmluYWw7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJE
YXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Nzc4YjViYjRiZDc0OTdlMzJjZWUwNmEwMTYxMDBlZmNiOTZlNTI1OQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRhTGlzdFN1
Z2dlc3Rpb25QaWNrZXIuY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmgiCisK
KyNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNp
bmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL0RhdGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQuaD4KKwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJEYXRhTGlzdFN1
Z2dlc3Rpb25QaWNrZXI6OldlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcihXZWJQYWdlKiBwYWdl
LCBEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50KiBjbGllbnQpCisgICAgOiBtX2RhdGFMaXN0U3Vn
Z2VzdGlvbnNDbGllbnQoY2xpZW50KQorICAgICwgbV9wYWdlKHBhZ2UpIHsgfQorCitXZWJEYXRh
TGlzdFN1Z2dlc3Rpb25QaWNrZXI6On5XZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIoKSB7IH0K
Kwordm9pZCBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI6OmhhbmRsZUtleWRvd25XaXRoSWRl
bnRpZmllcihjb25zdCBXVEY6OlN0cmluZyYga2V5KQoreworCit9CisKK3ZvaWQgV2ViRGF0YUxp
c3RTdWdnZXN0aW9uUGlja2VyOjpkaWRTZWxlY3RPcHRpb24oY29uc3QgV1RGOjpTdHJpbmcmIHNl
bGVjdGVkT3B0aW9uKQoreworCit9CisKK3ZvaWQgV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2Vy
OjpkaWRDbG9zZVN1Z2dlc3Rpb25zKCkKK3sKKworfQorCit2b2lkIFdlYkRhdGFMaXN0U3VnZ2Vz
dGlvblBpY2tlcjo6Y2xvc2UoKQoreworCit9CisKK3ZvaWQgV2ViRGF0YUxpc3RTdWdnZXN0aW9u
UGlja2VyOjpkaXNwbGF5V2l0aEFjdGl2YXRpb25UeXBlKERhdGFMaXN0U3VnZ2VzdGlvbkFjdGl2
YXRpb25UeXBlIHR5cGUpCit7CisKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNm
MzEzOTk1MzJlZjY3YjQ5ZDI4YTdlZjk5OGRiZTU5ZTc3NGY2ZWIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YUxpc3RTdWdn
ZXN0aW9uUGlja2VyLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisKKyNpbmNsdWRlIDxXZWJDb3JlL0Rh
dGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50
OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgV2Vi
RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyIDogcHVibGljIFdlYkNvcmU6OkRhdGFMaXN0U3VnZ2Vz
dGlvblBpY2tlciB7CitwdWJsaWM6CisgICAgV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKFdl
YlBhZ2UqLCBXZWJDb3JlOjpEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50Kik7CisgICAgdmlydHVh
bCB+V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKCk7CisKKyAgICB2b2lkIGhhbmRsZUtleWRv
d25XaXRoSWRlbnRpZmllcihjb25zdCBXVEY6OlN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQg
ZGlkU2VsZWN0T3B0aW9uKGNvbnN0IFdURjo6U3RyaW5nJik7CisgICAgdm9pZCBkaWRDbG9zZVN1
Z2dlc3Rpb25zKCk7CisgICAgdm9pZCBjbG9zZSgpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGxh
eVdpdGhBY3RpdmF0aW9uVHlwZShXZWJDb3JlOjpEYXRhTGlzdFN1Z2dlc3Rpb25BY3RpdmF0aW9u
VHlwZSkgb3ZlcnJpZGU7Citwcml2YXRlOgorICAgIF9fdW51c2VkIFdlYkNvcmU6OkRhdGFMaXN0
U3VnZ2VzdGlvbnNDbGllbnQqIG1fZGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudDsKKyAgICBfX3Vu
dXNlZCBXZWJQYWdlKiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IDhkYWExMTgwOTQyMzgxYjE0MjA4NjViM2M1MWI4YTI1OTA0MTgyMTcuLjJkZTYwOWM0NGQ3ZjEx
YjhjNDMyZTAzYmU5Y2ZhNWVlOWY3MDY4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC03Niw2ICs3Niw3IEBACiAjaW5jbHVkZSAiV2ViQ29u
dGV4dE1lbnUuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudUNsaWVudC5oIgogI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYkRhdGFMaXN0U3VnZ2VzdGlv
blBpY2tlci5oIgogI2luY2x1ZGUgIldlYkRhdGFiYXNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJX
ZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIldlYkRvY3VtZW50TG9hZGVy
LmgiCkBAIC0zNTQ4LDYgKzM1NDksMjYgQEAgdm9pZCBXZWJQYWdlOjpkaWRDaG9vc2VDb2xvcihj
b25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFM
SVNUX0VMRU1FTlQpCisKK3ZvaWQgV2ViUGFnZTo6c2V0QWN0aXZlRGF0YUxpc3RTdWdnZXN0aW9u
UGlja2VyKFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlciogZGF0YUxpc3RTdWdnZXN0aW9uUGlj
a2VyKQoreworICAgIG1fYWN0aXZlRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyID0gZGF0YUxpc3RT
dWdnZXN0aW9uUGlja2VyOworfQorCit2b2lkIFdlYlBhZ2U6OmRpZFNlbGVjdERhdGFMaXN0T3B0
aW9uKGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRPcHRpb24pCit7CisgICAgbV9hY3RpdmVEYXRhTGlz
dFN1Z2dlc3Rpb25QaWNrZXItPmRpZFNlbGVjdE9wdGlvbihzZWxlY3RlZE9wdGlvbik7Cit9CisK
K3ZvaWQgV2ViUGFnZTo6ZGlkQ2xvc2VTdWdnZXN0aW9ucygpCit7CisgICAgbV9hY3RpdmVEYXRh
TGlzdFN1Z2dlc3Rpb25QaWNrZXItPmRpZENsb3NlU3VnZ2VzdGlvbnMoKTsKKyAgICBtX2FjdGl2
ZURhdGFMaXN0U3VnZ2VzdGlvblBpY2tlciA9IG51bGxwdHI7Cit9CisKKyNlbmRpZgorCiB2b2lk
IFdlYlBhZ2U6OnNldEFjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyKFJlZjxXZWJPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lcj4mJiBvcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcikKIHsKICAgICBtX2Fj
dGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gV1RGTW92ZShvcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
MTY5OWE5MTE1N2JhYTc4Yzg4NjJkYjYzMDc2YzA4MGNkZmY2ZTUzMy4uMzMxNTc1ZTI0M2Y3ZTVl
ZGVjMDk2MTkyYWNjYjc3MGE4YjVjNzc2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTk5LDYgKzE5OSw3IEBAIGNsYXNzIFZpc2libGVDb250ZW50
UmVjdFVwZGF0ZUluZm87CiBjbGFzcyBXZWJDb2xvckNob29zZXI7CiBjbGFzcyBXZWJDb250ZXh0
TWVudTsKIGNsYXNzIFdlYkNvbnRleHRNZW51SXRlbURhdGE7CitjbGFzcyBXZWJEYXRhTGlzdFN1
Z2dlc3Rpb25QaWNrZXI7CiBjbGFzcyBXZWJEb2N1bWVudExvYWRlcjsKIGNsYXNzIFdlYkV2ZW50
OwogY2xhc3MgV2ViRnJhbWU7CkBAIC0zNjEsNiArMzYyLDEyIEBAIHB1YmxpYzoKICAgICB2b2lk
IGRpZEVuZENvbG9yUGlja2VyKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBTElTVF9FTEVN
RU5UKQorICAgIHZvaWQgc2V0QWN0aXZlRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKFdlYkRhdGFM
aXN0U3VnZ2VzdGlvblBpY2tlciopOworICAgIHZvaWQgZGlkU2VsZWN0RGF0YUxpc3RPcHRpb24o
Y29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBkaWRDbG9zZVN1Z2dlc3Rpb25zKCk7CisjZW5kaWYK
KwogICAgIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyKiBhY3RpdmVPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lcigpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIu
Z2V0KCk7IH0KICAgICB2b2lkIHNldEFjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyKFJlZjxX
ZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcj4mJik7CiAKQEAgLTE1NTEsNiArMTU1OCwxMCBAQCBw
cml2YXRlOgogICAgIFdlYkNvbG9yQ2hvb3NlciogbV9hY3RpdmVDb2xvckNob29zZXIgeyBudWxs
cHRyIH07CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQorICAgIFdlYkRh
dGFMaXN0U3VnZ2VzdGlvblBpY2tlciogbV9hY3RpdmVEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIg
eyBudWxscHRyIH07CisjZW5kaWYKKwogICAgIFJlZlB0cjxXZWJPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lcj4gbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKICAgICBSZWZQdHI8Tm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggN2UxNTAzMDY1YTI2YWQ2N2UzZGFhM2EzNjgy
NDFjMDA2YzIxZDcwNi4uZmNlYmNmMmYxNzk0OGQ1ZmRkZWZhNDlkYjg1NzI2YzNhNzU5OGU4YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCkBAIC0xMjcsNiArMTI3LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5
UmVjZWl2ZXIgewogICAgIERpZENob29zZUNvbG9yKFdlYkNvcmU6OkNvbG9yIGNvbG9yKQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKyAgICBEaWRTZWxlY3REYXRhTGlz
dE9wdGlvbihTdHJpbmcgc2VsZWN0ZWRPcHRpb24pOworICAgIERpZENsb3NlU3VnZ2VzdGlvbnMo
KTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgQ29udGV4dE1lbnVI
aWRkZW4oKQogICAgIENvbnRleHRNZW51Rm9yS2V5RXZlbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRl
eCA0MjRjOTFhM2JkMjE2ODc3MWMzM2NhMGIxYzBmZGZhMDQ0YjJiMjY0Li40MzU1YTg2NmQ2NDEw
MzdiYTY3ZjFhZWRjY2FmYzA3ZThhYjJkOWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTM4LDYg
KzEzOCwxMCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb2xvckNo
b29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXJDbGllbnQmLCBj
b25zdCBXZWJDb3JlOjpDb2xvciYpIGZpbmFsOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQUxJ
U1RfRUxFTUVOVCkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RGF0YUxpc3RTdWdnZXN0
aW9uUGlja2VyPiBjcmVhdGVEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIoV2ViQ29yZTo6RGF0YUxp
c3RTdWdnZXN0aW9uc0NsaWVudCYpIGZpbmFsOworI2VuZGlmCisKICNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQogICAgIGJvb2wgcmVxdWVzdFBvaW50ZXJMb2NrKCkgZmluYWw7CiAgICAgdm9pZCBy
ZXF1ZXN0UG9pbnRlclVubG9jaygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IDgxZmUy
MWQ3YTZiNzQxZWFlYmU0MzlmOWI1NzMxZWMyYjY1OTBmMzguLjlkNmU4ZDg3OGM2YjMzYzJjNjdl
Nzk3ZmM2ODc2Mzc5ZDZhNzQ1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTU4LDYgKzU4LDcg
QEAKICNpbXBvcnQgPFdlYkNvcmUvQ29udGV4dE1lbnUuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29u
dGV4dE1lbnVDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0N1cnNvci5oPgorI2ltcG9y
dCA8V2ViQ29yZS9EYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUv
RGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0VsZW1lbnQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvRmlsZUNob29zZXIuaD4KQEAgLTcyMyw2ICs3MjQsMTQgQEAgc3Rk
Ojp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNo
b29zZXIoQ29sb3JDaG9vc2VyQ2wKIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQUxJU1RfRUxF
TUVOVCkKK3N0ZDo6dW5pcXVlX3B0cjxEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI+IFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKERhdGFMaXN0U3VnZ2VzdGlv
bnNDbGllbnQmIGNsaWVudCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKIGJvb2wg
V2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0UG9pbnRlckxvY2soKQogewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341977</attachid>
            <date>2018-06-05 11:03:49 -0700</date>
            <delta_ts>2018-06-07 10:14:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186151-20180605110348.patch</filename>
            <type>text/plain</type>
            <size>47925</size>
            <attacher name="Aditya Keerthi">pxlcoder</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2RhNjgwZGIwYWIwN2I1
NDY2M2E1MmQ1ZmQ1ODllMjRkN2QxZjExNy4uNjI1Y2ZkOWIwYzAwNGVjZjYwZDc4MzI3YzRmNGIw
YzljM2ZmODgzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE4LTA2LTA1ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbRGF0YWxpc3RdIEFs
bG93IFRleHRGaWVsZElucHV0VHlwZSB0byBzaG93IGFuZCBoaWRlIHN1Z2dlc3Rpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODYxNTEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXh0RmllbGRJbnB1
dFR5cGVzIHdpdGggYSBsaXN0IGF0dHJpYnV0ZSBzaG91bGQgYmUgYWJsZSB0byBkaXNwbGF5IHN1
Z2dlc3Rpb25zIGFzIHRoZSB1c2VyCisgICAgICAgIGludGVyYWN0cyB3aXRoIHRoZSBpbnB1dCBm
aWVsZC4gSW4gb3JkZXIgdG8gZGlzcGxheSBzdWdnZXN0aW9ucyBmb3IgYW4gaW5wdXQgZmllbGQg
d2l0aCBhIGxpc3QKKyAgICAgICAgYXR0cmlidXRlLCB3ZSBuZWVkIHByb3ZpZGUgY2VydGFpbiBp
bmZvcm1hdGlvbiAtIGluY2x1ZGluZyB0aGUgaXRlbXMgdG8gc3VnZ2VzdCBhbmQgdGhlIGxvY2F0
aW9uCisgICAgICAgIHRvIHByZXNlbnQgdGhlIHN1Z2dlc3Rpb25zLiBUZXh0RmllbGRJbnB1dFR5
cGUgY2FuIG5vdyBwcm92aWRlIHRoaXMgaW5mb3JtYXRpb24gYnkgY29uZm9ybWluZyB0bworICAg
ICAgICB0aGUgRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudCBpbnRlcmZhY2UuCisKKyAgICAgICAg
SW4gdGhpcyBpbml0aWFsIHBhdGNoLCB0aGUgc3VnZ2VzdGlvbnMgY2FuIGJlIHNob3duIGluIHR3
byB3YXlzLiBUaGUgZmlyc3QgaXMgYnkgY2xpY2tpbmcgb24gdGhlCisgICAgICAgIGlucHV0IGZp
ZWxkLiBUaGUgb3RoZXIgaXMgYnkgdHlwaW5nIHRleHQgaW4gdGhlIGZpZWxkLiBJbiBhIGxhdGVy
IHBhdGNoLCB3ZSB3aWxsIGFkZCBhIHRoaXJkIHdheQorICAgICAgICB0byBkaXNwbGF5IHN1Z2dl
c3Rpb25zLCB1c2luZyBhIGJ1dHRvbi4gVGhlc2Ugd2F5cyB0byBhY3RpdmF0ZSB0aGUgc3VnZ2Vz
dGlvbnMgYXJlIGVudW1lcmF0ZWQgaW4KKyAgICAgICAgRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3Jt
YXRpb24uCisKKyAgICAgICAgV2UgaGlkZSB0aGUgc3VnZ2VzdGlvbnMgaWYgdGhlcmUgYXJlIG5v
IG1vcmUgdG8gc2hvdywgb3IgaWYgdGhlIGlucHV0IGhhcyBibHVycmVkLgorCisgICAgICAgIFRl
c3RzIHRvIGJlIGFkZGVkIG9uY2Ugd29yayBoYXMgYmVlbiBkb25lIGluIHRoZSBVSVByb2Nlc3Mu
CisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogaHRtbC9EYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oOiBBZGRlZC4gQ29udGFpbnMg
dGhlIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSB0byBkaXNwbGF5IHN1Z2dlc3Rpb25zLgorICAgICAg
ICAqIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRG
aWVsZElucHV0VHlwZTo6flRleHRGaWVsZElucHV0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpU
ZXh0RmllbGRJbnB1dFR5cGU6OmhhbmRsZUNsaWNrRXZlbnQpOiBTaG93IHN1Z2dlc3Rpb25zIHdo
ZW4gdGhlIGVsZW1lbnQgaXMgY2xpY2tlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElu
cHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KTogQWxsb3cgdXNlcnMgdG8gaW50ZXJhY3Qgd2l0
aCB0aGUgc3VnZ2VzdGlvbnMgdXNpbmcgdGhlIGtleWJvYXJkLgorICAgICAgICAoV2ViQ29yZTo6
VGV4dEZpZWxkSW5wdXRUeXBlOjplbGVtZW50RGlkQmx1cik6IEhpZGUgdGhlIHN1Z2dlc3Rpb25z
LgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpzaG91bGRSZXNwZWN0TGlz
dEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmRpZFNl
dFZhbHVlQnlVc2VyRWRpdCk6IFVwZGF0ZSB0aGUgc3VnZ2VzdGlvbnMgaWYgdGhlIHRleHQgaGFz
IGNoYW5nZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmVsZW1lbnRS
ZWN0UmVsYXRpdmVUb1Jvb3RWaWV3IGNvbnN0KTogUHJvdmlkZSB0aGUgbG9jYXRpb24gd2hlcmUg
dGhlIHN1Z2dlc3Rpb25zIHNob3VsZCBiZSBzaG93bi4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRG
aWVsZElucHV0VHlwZTo6c3VnZ2VzdGlvbnMgY29uc3QpOiBQcm92aWRlIHRoZSBsaXN0IG9mIHN1
Z2dlc3Rpb25zLgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpkaWRTZWxl
Y3REYXRhTGlzdE9wdGlvbik6IFVwZGF0ZSB0aGUgdGV4dCBvbmNlIGFuIHN1Z2dlc3Rpb24gaGFz
IGJlZW4gc2VsZWN0ZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmRp
ZENsb3NlU3VnZ2VzdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBl
OjpkaXNwbGF5U3VnZ2VzdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRU
eXBlOjpjbG9zZVN1Z2dlc3Rpb25zKToKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlw
ZS5oOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZURhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcik6Cisg
ICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9uUGlj
a2VyKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xp
ZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOjpjbG9zZSk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI6OmhhbmRsZUtleWRv
d25XaXRoSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhTGlzdFN1Z2dlc3Rpb25Q
aWNrZXI6OmRpc3BsYXlXaXRoQWN0aXZhdGlvblR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL0Rh
dGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQuaDogQWRkZWQuCisKIDIwMTgtMDYtMDUgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBm
aXggYWZ0ZXIgcjIzMjUxMS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNWMxZThjMDViMTk4YWM3OTAxMDIwOTc0YmRj
YWY2MmM0MThmN2JlYS4uMjQ2Y2NlMzU4ZTRiOWY2Y2Y5MGE2MjJkMWY2NmE5YmE0NzZmZGE2MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxOC0wNi0wNSAgQWRpdHlhIEtlZXJ0aGkgIDxh
a2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW0RhdGFsaXN0XSBBbGxvdyBUZXh0RmllbGRJ
bnB1dFR5cGUgdG8gc2hvdyBhbmQgaGlkZSBzdWdnZXN0aW9ucworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2MTUxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgV2ViRGF0YUxpc3RTdWdnZXN0aW9u
UGlja2VyIHRvIHNlbmQgbWVzc2FnZXMgdG8gdGhlIFVJUHJvY2VzcyBpbiBvcmRlciB0byB1cGRh
dGUgdGhlIHN1Z2dlc3Rpb25zIHZpZXcuCisgICAgICAgIFRoaXMgb2JqZWN0IGlzIGFsc28gcmVz
cG9uc2libGUgZm9yIGZvcndhcmRpbmcgbWVzc2FnZXMgZnJvbSBXZWJLaXQgaW50byB0aGUgRGF0
YUxpc3RTdWdnZXN0aW9uc0NsaWVudCwgd2hpY2gKKyAgICAgICAgaXMgdGhlIFRleHRGaWVsZElu
cHV0VHlwZSBpbiB0aGlzIGNhc2UuIFRoZSBjbGllbnQgbmVlZHMgdG8ga25vdyB3aGVuIHRoZSBz
dWdnZXN0aW9ucyBhcmUgaGlkZGVuIG9yIGlmIGFuCisgICAgICAgIHN1Z2dlc3Rpb24gaGFzIGJl
ZW4gc2VsZWN0ZWQuCisKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlRGF0YUxpc3RTdWdn
ZXN0aW9uUGlja2VyKTogUmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIFdlYkRhdGFMaXN0U3VnZ2Vz
dGlvblBpY2tlciB0byBzZW5kL3JlY2VpdmUgbWVzc2FnZXMuCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHA6IEFkZGVkLiBS
ZXNwb25zaWJsZSBmb3Igc2VuZGluZyBtZXNzYWdlcyB0byBVSVByb2Nlc3MgYW5kIHVwZGF0aW5n
IHRoZSBEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50LgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRh
TGlzdFN1Z2dlc3Rpb25QaWNrZXI6OldlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcik6CisgICAg
ICAgIChXZWJLaXQ6OldlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcjo6fldlYkRhdGFMaXN0U3Vn
Z2VzdGlvblBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGFMaXN0U3VnZ2VzdGlvblBp
Y2tlcjo6aGFuZGxlS2V5ZG93bldpdGhJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOjpkaWRTZWxlY3RPcHRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI6OmRpZENsb3NlU3VnZ2VzdGlvbnMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI6OmNsb3NlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOjpkaXNwbGF5V2l0aEFj
dGl2YXRpb25UeXBlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRh
dGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEFjdGl2ZURh
dGFMaXN0U3VnZ2VzdGlvblBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZFNl
bGVjdERhdGFMaXN0T3B0aW9uKTogQ2FsbGVkIGJ5IFVJUHJvY2VzcyB3aGVuIG9wdGlvbiBzZWxl
Y3RlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ2xvc2VTdWdnZXN0aW9ucyk6IENh
bGxlZCBieSBVSVByb2Nlc3MgaWYgdGhlIHN1Z2dlc3Rpb25zIHZpZXcgaXMgY2xvc2VkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMTgtMDYtMDQgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgIkNyb3NzLU9yaWdpbi1PcHRp
b25zIiBIVFRQIGhlYWRlciB0byAiQ3Jvc3MtT3JpZ2luLVdpbmRvdy1Qb2xpY3kiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYjc2ZjMyZjM3ODg3MmQyYmFkMTk5YjU1MGEzMDJmZjk0
MDBjODNlYi4uNjkyOTZhYTExYjk0NGFmZGEyMDcyNmY3ODdhZWNlYTUzOTAzMDUyNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTA2LTA1ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbRGF0YWxpc3RdIEFs
bG93IFRleHRGaWVsZElucHV0VHlwZSB0byBzaG93IGFuZCBoaWRlIHN1Z2dlc3Rpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODYxNTEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlRGF0YUxpc3RTdWdn
ZXN0aW9uUGlja2VyKToKKwogMjAxOC0wNi0wMyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgU2ltcGxpZnkgYW5kIHJlbW92ZSBzb21lIHVudXNlZCB2aWRlbyBlbGVt
ZW50IGNvZGUgKGhlbHBmdWwgZm9yIEFSQy1jb21wYXRpYmlsaXR5KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE2NzNhYTlhNTMw
Y2EzZDJlOTE2ODVmYTFjNDA1MWEyZWU1OTEwZGIuLmNjM2NlNWI0OWJiYzUyMzlmY2Q2OTBhODJl
OGJmYzZlZWJjMDBkOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTQ3NzAsNiArNDc3MCw5IEBACiAJCUU0RTlCMTE5MTgxMDkx
NkYwMDNBQ0NERiAvKiBTaW1wbGVMaW5lTGF5b3V0UmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RTlCMTE4MTgxMDkxNkYwMDNBQ0NERiAv
KiBTaW1wbGVMaW5lTGF5b3V0UmVzb2x2ZXIuaCAqLzsgfTsKIAkJRTRFOUIxMUQxODE0NTY5QzAw
M0FDQ0RGIC8qIFNpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RTlCMTFDMTgxNDU2OUMwMDNBQ0NERiAvKiBT
aW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmggKi87IH07CiAJCUU0RjlFRUYzMTU2REEwMDcwMEQy
M0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU0RjlFRUYxMTU2RDg0QzQwMEQyM0U3RSAvKiBTdHlsZVNoZWV0
Q29udGVudHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQlFNTE3NjcwMzIwQjg4QzE0MDBENDExNjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3Jt
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1
MTc2NzAyMjBCODhDMTQwMEQ0MTE2NyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUU1MkNG
NTREMjBBMjY4QUMwMERBREEyNyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTJDRjU0QzIwQTI2OEFD
MDBEQURBMjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUU1MkNGNTRGMjBBMzVBMjgwMERBREEy
NyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MkNGNTRFMjBBMzVBMjgwMERBREEyNyAvKiBEYXRhTGlz
dFN1Z2dlc3Rpb25QaWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlFNUJBN0Q2MzE1MTQzN0NBMDBGRTFFM0YgLyogTGVuZ3RoRnVuY3Rpb25z
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUJBN0Q2
MjE1MTQzN0NBMDBGRTFFM0YgLyogTGVuZ3RoRnVuY3Rpb25zLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRUJGNTEyMUMxNjk2NDk2QzAwNTZCRDI1
IC8qIEpTVHlwZUNvbnZlcnNpb25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEVCRjUxMjFBMTY5NjQ5NkMwMDU2QkQyNSAvKiBKU1R5cGVDb252ZXJz
aW9ucy5jcHAgKi87IH07CiAJCUVCRjUxMjFEMTY5NjQ5NkMwMDU2QkQyNSAvKiBKU1R5cGVDb252
ZXJzaW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RUJGNTEyMUIxNjk2NDk2QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmggKi87IH07CkBA
IC0xNDQ1Miw4ICsxNDQ1NSwxMSBAQAogCQlFNEU5QjExQzE4MTQ1NjlDMDAzQUNDREYgLyogU2lt
cGxlTGluZUxheW91dEZ1bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU0RjlFRUYwMTU2RDg0QzQwMEQyM0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVTaGVldENvbnRlbnRzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRGOUVFRjExNTZEODRDNDAwRDIzRTdF
IC8qIFN0eWxlU2hlZXRDb250ZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTdHlsZVNoZWV0Q29udGVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTUx
NzY3MDIyMEI4OEMxNDAwRDQxMTY3IC8qIERhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1MUE4MURFMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZv
cm1hbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGVyZm9y
bWFuY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTI2QUYzRTE3MjdGOEYy
MDBFNDE3ODEgLyogUGVyZm9ybWFuY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUGVyZm9ybWFuY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
NTJDRjU0QzIwQTI2OEFDMDBEQURBMjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUU1MkNGNTRFMjBBMzVBMjgwMERBREEyNyAvKiBEYXRhTGlzdFN1Z2dl
c3Rpb25QaWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1NUY0OTc5MTUxQjg4ODAwMEJCNjdEQiAv
KiBMZW5ndGhGdW5jdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTGVuZ3RoRnVuY3Rpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTVC
QTdENjIxNTE0MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMZW5ndGhGdW5jdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRUIwODFDRDgxNjk2MDg0NDAwNTUzNzMwIC8qIFR5cGVDb252ZXJzaW9ucy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUeXBlQ29udmVyc2lvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTIwMzM3LDYgKzIwMzQzLDcgQEAKIAkJCQk5M0M0NDFGRjBGODEzQUUxMDBDMUE2
MzQgLyogQ29sbGVjdGlvblR5cGUuaCAqLywKIAkJCQlCQzI5OTM1QzE3QTFERDU4MDBCQ0U4ODAg
LyogQ29sb3JJbnB1dFR5cGUuY3BwICovLAogCQkJCUY1NUIzRDgwMTI1MUYxMkQwMDNFRjI2OSAv
KiBDb2xvcklucHV0VHlwZS5oICovLAorCQkJCUU1MTc2NzAyMjBCODhDMTQwMEQ0MTE2NyAvKiBE
YXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oICovLAogCQkJCUY1NUIzRDgxMTI1MUYxMkQw
MDNFRjI2OSAvKiBEYXRlSW5wdXRUeXBlLmNwcCAqLywKIAkJCQlGNTVCM0Q4MjEyNTFGMTJEMDAz
RUYyNjkgLyogRGF0ZUlucHV0VHlwZS5oICovLAogCQkJCUY1NUIzRDgzMTI1MUYxMkQwMDNFRjI2
OSAvKiBEYXRlVGltZUlucHV0VHlwZS5jcHAgKi8sCkBAIC0yNDM1MCw2ICsyNDM1Nyw4IEBACiAJ
CQkJNDZDNjk2QzkxRTcyMDVFNDAwNTk3OTM3IC8qIENQVU1vbml0b3IuaCAqLywKIAkJCQlFMTFB
RjE1MDExQjlBMUEzMDA4MDUxMDMgLyogQ3Vyc29yLmNwcCAqLywKIAkJCQlGNTg3ODY4NDAyREUz
Qjg2MDFFQTQxMjIgLyogQ3Vyc29yLmggKi8sCisJCQkJRTUyQ0Y1NEUyMEEzNUEyODAwREFEQTI3
IC8qIERhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oICovLAorCQkJCUU1MkNGNTRDMjBBMjY4QUMw
MERBREEyNyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50LmggKi8sCiAJCQkJQTU3MzJCMDgx
MzZBMTYxRDAwNUM4RDdDIC8qIERhdGVDb21wb25lbnRzLmNwcCAqLywKIAkJCQlBNTczMkIwOTEz
NkExNjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMuaCAqLywKIAkJCQkzN0M3MzhGMTFFREJE
RTg3MDAzRjJCMEIgLyogRGF0ZVRpbWVDaG9vc2VyLmggKi8sCkBAIC0yNzU3MSw2ICsyNzU4MCw5
IEBACiAJCQkJQkUyMzQ4MEQxOEE5ODcxNDAwRTRCNkU4IC8qIERhdGFDdWUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUM1MjI3REYxMUMzQzZERjEwMEY1RUQ1NCAvKiBEYXRhRGV0ZWN0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3Qzc5NDFFNTFDNTZDMjkzMDBBNEM1OEUgLyogRGF0YURldGVjdG9y
c0NvcmVTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTUxNzY3MDMyMEI4OEMxNDAwRDQx
MTY3IC8qIERhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlFNTJDRjU0RjIwQTM1QTI4MDBEQURBMjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlFNTJDRjU0RDIwQTI2OEFDMDBEQURBMjcgLyogRGF0YUxpc3RT
dWdnZXN0aW9uc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyMjc0NkYwRTgzNjY0NTAw
RTdGOTc1IC8qIERhdGFSZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjQ2NDFDMTFEN0Y0MTYw
MDY0NTVCMCAvKiBEYXRhc2V0RE9NU3RyaW5nTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAz
MUIzRTBBNDRFRkM3MDBGOTkyRTAgLyogRGF0YVRyYW5zZmVyLmggaW4gSGVhZGVycyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44YzQ0OWVmOTk5NGM2MDNjYzRmNWVjOGE1YWQ5OTM5NTBhMDU1OWZlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRhTGlzdFN1Z2dlc3Rpb25J
bmZvcm1hdGlvbi5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIkludFJlY3QuaCIKKworI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIERhdGFMaXN0U3VnZ2VzdGlvbkFjdGl2
YXRpb25UeXBlIHsKKyAgICBDb250cm9sQ2xpY2tlZCwKKyAgICBJbmRpY2F0b3JDbGlja2VkLAor
ICAgIFRleHRDaGFuZ2VkLAorfTsKKworc3RydWN0IERhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0
aW9uIHsKKyAgICBEYXRhTGlzdFN1Z2dlc3Rpb25BY3RpdmF0aW9uVHlwZSBhY3RpdmF0aW9uVHlw
ZTsKKyAgICBWZWN0b3I8U3RyaW5nPiBzdWdnZXN0aW9uczsKKyAgICBJbnRSZWN0IGVsZW1lbnRS
ZWN0OworfTsKKworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rl
eHRGaWVsZElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0
VHlwZS5jcHAKaW5kZXggZGMwNTRmZTdkMGNkNDE5OTA5ZDU0ZDAwMGRiZTNmMDUxYmFiNWRiNy4u
MGQyMTdjY2I1NGM3MDRkNjViMTQ3YzQyZWYyZGZmZjY0MjgyMDk1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcApAQCAtNTgsNiArNTgsMTEgQEAKICNpbmNs
dWRlICJUZXh0Tm9kZVRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnQuaCIKIAorI2lm
IEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQorI2luY2x1ZGUgIkhUTUxEYXRhTGlzdEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKQEAgLTcxLDYgKzc2LDkgQEAg
VGV4dEZpZWxkSW5wdXRUeXBlOjp+VGV4dEZpZWxkSW5wdXRUeXBlKCkKIHsKICAgICBpZiAobV9p
bm5lclNwaW5CdXR0b24pCiAgICAgICAgIG1faW5uZXJTcGluQnV0dG9uLT5yZW1vdmVTcGluQnV0
dG9uT3duZXIoKTsKKyNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKyAgICBjbG9zZVN1Z2dl
c3Rpb25zKCk7CisjZW5kaWYKIH0KIAogYm9vbCBUZXh0RmllbGRJbnB1dFR5cGU6OmlzS2V5Ym9h
cmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0CkBAIC0xNjEsMTEgKzE2OSwyNCBAQCB2
b2lkIFRleHRGaWVsZElucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRW
YWx1ZSwgYm9vbCB2YWx1ZUNoYW5nZQogICAgICAgICBpbnB1dC0+c2V0VGV4dEFzT2ZMYXN0Rm9y
bUNvbnRyb2xDaGFuZ2VFdmVudChzYW5pdGl6ZWRWYWx1ZSk7CiB9CiAKKyNpZiBFTkFCTEUoREFU
QUxJU1RfRUxFTUVOVCkKK3ZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpoYW5kbGVDbGlja0V2ZW50
KE1vdXNlRXZlbnQmKQoreworICAgIGlmIChlbGVtZW50KCktPmZvY3VzZWQoKSAmJiBlbGVtZW50
KCktPmxpc3QoKSkKKyAgICAgICAgZGlzcGxheVN1Z2dlc3Rpb25zKERhdGFMaXN0U3VnZ2VzdGlv
bkFjdGl2YXRpb25UeXBlOjpDb250cm9sQ2xpY2tlZCk7Cit9CisjZW5kaWYKKwogdm9pZCBUZXh0
RmllbGRJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50JiBldmVudCkK
IHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBpZiAoIWVsZW1lbnQoKS0+Zm9jdXNlZCgp
KQogICAgICAgICByZXR1cm47CisjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisgICAgY29u
c3QgU3RyaW5nJiBrZXkgPSBldmVudC5rZXlJZGVudGlmaWVyKCk7CisgICAgaWYgKG1fc3VnZ2Vz
dGlvblBpY2tlciAmJiAoa2V5ID09ICJFbnRlciIgfHwga2V5ID09ICJVcCIgfHwga2V5ID09ICJE
b3duIikpCisgICAgICAgIG1fc3VnZ2VzdGlvblBpY2tlci0+aGFuZGxlS2V5ZG93bldpdGhJZGVu
dGlmaWVyKGtleSk7CisjZW5kaWYKICAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gZWxlbWVudCgp
LT5kb2N1bWVudCgpLmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPmVkaXRvcigp
LmRvVGV4dEZpZWxkQ29tbWFuZEZyb21FdmVudChlbGVtZW50KCksICZldmVudCkpCiAgICAgICAg
IHJldHVybjsKQEAgLTIyMyw2ICsyNDQsMTAgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmVs
ZW1lbnREaWRCbHVyKCkKICAgICBib29sIGlzTGVmdFRvUmlnaHREaXJlY3Rpb24gPSBkb3duY2Fz
dDxSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU+KCpyZW5kZXJlcikuc3R5bGUoKS5pc0xlZnRU
b1JpZ2h0RGlyZWN0aW9uKCk7CiAgICAgU2Nyb2xsT2Zmc2V0IHNjcm9sbE9mZnNldChpc0xlZnRU
b1JpZ2h0RGlyZWN0aW9uID8gMCA6IGlubmVyTGF5ZXItPnNjcm9sbFdpZHRoKCksIDApOwogICAg
IGlubmVyTGF5ZXItPnNjcm9sbFRvT2Zmc2V0KHNjcm9sbE9mZnNldCk7CisKKyNpZiBFTkFCTEUo
REFUQUxJU1RfRUxFTUVOVCkKKyAgICBjbG9zZVN1Z2dlc3Rpb25zKCk7CisjZW5kaWYKIH0KIAog
dm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmhhbmRsZUZvY3VzRXZlbnQoTm9kZSogb2xkRm9jdXNl
ZE5vZGUsIEZvY3VzRGlyZWN0aW9uKQpAQCAtNTM2LDcgKzU2MSwxMSBAQCB2b2lkIFRleHRGaWVs
ZElucHV0VHlwZTo6aGFuZGxlQmVmb3JlVGV4dEluc2VydGVkRXZlbnQoQmVmb3JlVGV4dEluc2Vy
dGVkRXZlbnQmCiAKIGJvb2wgVGV4dEZpZWxkSW5wdXRUeXBlOjpzaG91bGRSZXNwZWN0TGlzdEF0
dHJpYnV0ZSgpCiB7CisjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisgICAgcmV0dXJuIHRy
dWU7CisjZWxzZQogICAgIHJldHVybiBJbnB1dFR5cGU6OnRoZW1lU3VwcG9ydHNEYXRhTGlzdFVJ
KHRoaXMpOworI2VuZGlmCiB9CiAKIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFj
ZWhvbGRlclRleHQoKQpAQCAtNjA3LDYgKzYzNiwxMCBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlw
ZTo6ZGlkU2V0VmFsdWVCeVVzZXJFZGl0KCkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChSZWZQ
dHI8RnJhbWU+IGZyYW1lID0gZWxlbWVudCgpLT5kb2N1bWVudCgpLmZyYW1lKCkpCiAgICAgICAg
IGZyYW1lLT5lZGl0b3IoKS50ZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGQoZWxlbWVudCgpKTsKKyNp
ZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKyAgICBpZiAoZWxlbWVudCgpLT5saXN0KCkpCisg
ICAgICAgIGRpc3BsYXlTdWdnZXN0aW9ucyhEYXRhTGlzdFN1Z2dlc3Rpb25BY3RpdmF0aW9uVHlw
ZTo6VGV4dENoYW5nZWQpOworI2VuZGlmCiB9CiAKIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpz
cGluQnV0dG9uU3RlcERvd24oKQpAQCAtNzUxLDQgKzc4NCw2NyBAQCB2b2lkIFRleHRGaWVsZElu
cHV0VHlwZTo6dXBkYXRlQXV0b0ZpbGxCdXR0b24oKQogICAgICAgICBtX2F1dG9GaWxsQnV0dG9u
LT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5RGlzcGxheSwgQ1NTVmFsdWVOb25l
LCB0cnVlKTsgICAgICAgIAogfQogCisjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisKK0lu
dFJlY3QgVGV4dEZpZWxkSW5wdXRUeXBlOjplbGVtZW50UmVjdEluUm9vdFZpZXdDb29yZGluYXRl
cygpIGNvbnN0Cit7CisgICAgaWYgKCFlbGVtZW50KCktPnJlbmRlcmVyKCkpCisgICAgICAgIHJl
dHVybiBJbnRSZWN0KCk7CisgICAgcmV0dXJuIGVsZW1lbnQoKS0+ZG9jdW1lbnQoKS52aWV3KCkt
PmNvbnRlbnRzVG9Sb290VmlldyhlbGVtZW50KCktPnJlbmRlcmVyKCktPmFic29sdXRlQm91bmRp
bmdCb3hSZWN0KCkpOworfQorCitWZWN0b3I8U3RyaW5nPiBUZXh0RmllbGRJbnB1dFR5cGU6OnN1
Z2dlc3Rpb25zKCkgY29uc3QKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiBzdWdnZXN0aW9uczsKKwor
ICAgIGlmIChhdXRvIGRhdGFMaXN0ID0gZWxlbWVudCgpLT5kYXRhTGlzdCgpKSB7CisgICAgICAg
IFJlZjxIVE1MQ29sbGVjdGlvbj4gb3B0aW9ucyA9IGRhdGFMaXN0LT5vcHRpb25zKCk7CisgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGF1dG8gb3B0aW9uID0gZG93bmNhc3Q8SFRNTE9wdGlv
bkVsZW1lbnQ+KG9wdGlvbnMtPml0ZW0oaSkpOyArK2kpIHsKKyAgICAgICAgICAgIGlmICghZWxl
bWVudCgpLT5pc1ZhbGlkVmFsdWUob3B0aW9uLT52YWx1ZSgpKSkKKyAgICAgICAgICAgICAgICBj
b250aW51ZTsKKworICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gc2FuaXRpemVWYWx1ZShvcHRp
b24tPnZhbHVlKCkpOworICAgICAgICAgICAgaWYgKCFzdWdnZXN0aW9ucy5jb250YWlucyh2YWx1
ZSkgJiYgKGVsZW1lbnQoKS0+dmFsdWUoKS5pc0VtcHR5KCkgfHwgdmFsdWUuY29udGFpbnNJZ25v
cmluZ0FTQ0lJQ2FzZShlbGVtZW50KCktPnZhbHVlKCkpKSkKKyAgICAgICAgICAgICAgICBzdWdn
ZXN0aW9ucy5hcHBlbmQodmFsdWUpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHN1
Z2dlc3Rpb25zOworfQorCit2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6ZGlkU2VsZWN0RGF0YUxp
c3RPcHRpb24oY29uc3QgU3RyaW5nJiBzZWxlY3RlZE9wdGlvbikKK3sKKyAgICBlbGVtZW50KCkt
PnNldFZhbHVlKHNlbGVjdGVkT3B0aW9uLCBEaXNwYXRjaElucHV0QW5kQ2hhbmdlRXZlbnQpOwor
fQorCit2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6ZGlkQ2xvc2VTdWdnZXN0aW9ucygpCit7Cisg
ICAgbV9zdWdnZXN0aW9uUGlja2VyID0gbnVsbHB0cjsKK30KKwordm9pZCBUZXh0RmllbGRJbnB1
dFR5cGU6OmRpc3BsYXlTdWdnZXN0aW9ucyhEYXRhTGlzdFN1Z2dlc3Rpb25BY3RpdmF0aW9uVHlw
ZSB0eXBlKQoreworICAgIGlmIChlbGVtZW50KCktPmlzRGlzYWJsZWRGb3JtQ29udHJvbCgpIHx8
ICFlbGVtZW50KCktPnJlbmRlcmVyKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghVXNl
ckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAoIW1fc3VnZ2VzdGlvblBpY2tlciAmJiBzdWdnZXN0aW9ucygpLnNpemUo
KSA+IDApCisgICAgICAgIG1fc3VnZ2VzdGlvblBpY2tlciA9IGNocm9tZSgpLT5jcmVhdGVEYXRh
TGlzdFN1Z2dlc3Rpb25QaWNrZXIoKnRoaXMpOworCisgICAgaWYgKCFtX3N1Z2dlc3Rpb25QaWNr
ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fc3VnZ2VzdGlvblBpY2tlci0+ZGlzcGxheVdp
dGhBY3RpdmF0aW9uVHlwZSh0eXBlKTsKK30KKwordm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNs
b3NlU3VnZ2VzdGlvbnMoKQoreworICAgIGlmIChtX3N1Z2dlc3Rpb25QaWNrZXIpCisgICAgICAg
IG1fc3VnZ2VzdGlvblBpY2tlci0+Y2xvc2UoKTsKK30KKworI2VuZGlmCisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5w
dXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5oCmluZGV4
IGE4OTU0YjVhMzExMGU4OWVmNmJkYWVkNGNjNmM5ZWVkMDJjMzA2MzQuLjM0MDgxYmI3OTk3MjRj
ZDJjYzY5MTcwZTQzYTdiNGJkNTJiNmU5MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0Rmll
bGRJbnB1dFR5cGUuaApAQCAtMzIsNiArMzIsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJBdXRvRmlsbEJ1dHRvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJEYXRhTGlzdFN1Z2dlc3Rpb25Q
aWNrZXIuaCIKKyNpbmNsdWRlICJEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiSW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiU3BpbkJ1dHRvbkVsZW1lbnQuaCIKIApAQCAtNDIs
MTIgKzQ0LDE5IEBAIGNsYXNzIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDsKIAogLy8gVGhl
IGNsYXNzIHJlcHJlc2VudHMgdHlwZXMgb2Ygd2hpY2ggVUkgY29udGFpbiB0ZXh0IGZpZWxkcy4K
IC8vIEl0IHN1cHBvcnRzIG5vdCBvbmx5IHRoZSB0eXBlcyBmb3IgQmFzZVRleHRJbnB1dFR5cGUg
YnV0IGFsc28gdHlwZT1udW1iZXIuCi1jbGFzcyBUZXh0RmllbGRJbnB1dFR5cGUgOiBwdWJsaWMg
SW5wdXRUeXBlLCBwcm90ZWN0ZWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OlNwaW5CdXR0b25Pd25lciwg
cHJvdGVjdGVkIEF1dG9GaWxsQnV0dG9uRWxlbWVudDo6QXV0b0ZpbGxCdXR0b25Pd25lciB7Citj
bGFzcyBUZXh0RmllbGRJbnB1dFR5cGUgOiBwdWJsaWMgSW5wdXRUeXBlLCBwcm90ZWN0ZWQgU3Bp
bkJ1dHRvbkVsZW1lbnQ6OlNwaW5CdXR0b25Pd25lciwgcHJvdGVjdGVkIEF1dG9GaWxsQnV0dG9u
RWxlbWVudDo6QXV0b0ZpbGxCdXR0b25Pd25lcgorI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5U
KQorICAgICwgcHJpdmF0ZSBEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50CisjZW5kaWYKK3sKIHBy
b3RlY3RlZDoKICAgICBleHBsaWNpdCBUZXh0RmllbGRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVu
dCYpOwogICAgIHZpcnR1YWwgflRleHRGaWVsZElucHV0VHlwZSgpOwogICAgIHZvaWQgaGFuZGxl
S2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQmKSBvdmVycmlkZTsKICAgICB2b2lkIGhhbmRsZUtl
eWRvd25FdmVudEZvclNwaW5CdXR0b24oS2V5Ym9hcmRFdmVudCYpOworI2lmIEVOQUJMRShEQVRB
TElTVF9FTEVNRU5UKQorICAgIHZvaWQgaGFuZGxlQ2xpY2tFdmVudChNb3VzZUV2ZW50JikgZmlu
YWw7CisjZW5kaWYKIAogICAgIEhUTUxFbGVtZW50KiBjb250YWluZXJFbGVtZW50KCkgY29uc3Qg
ZmluYWw7CiAgICAgSFRNTEVsZW1lbnQqIGlubmVyQmxvY2tFbGVtZW50KCkgY29uc3QgZmluYWw7
CkBAIC0xMTAsNiArMTE5LDE5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVDb250YWluZXIo
KTsKICAgICB2b2lkIGNyZWF0ZUF1dG9GaWxsQnV0dG9uKEF1dG9GaWxsQnV0dG9uVHlwZSk7CiAK
KyNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKyAgICB2b2lkIGRpc3BsYXlTdWdnZXN0aW9u
cyhEYXRhTGlzdFN1Z2dlc3Rpb25BY3RpdmF0aW9uVHlwZSk7CisgICAgdm9pZCBjbG9zZVN1Z2dl
c3Rpb25zKCk7CisKKyAgICAvLyBEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50CisgICAgSW50UmVj
dCBlbGVtZW50UmVjdEluUm9vdFZpZXdDb29yZGluYXRlcygpIGNvbnN0IGZpbmFsOworICAgIFZl
Y3RvcjxTdHJpbmc+IHN1Z2dlc3Rpb25zKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBkaWRTZWxl
Y3REYXRhTGlzdE9wdGlvbihjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGRpZENsb3Nl
U3VnZ2VzdGlvbnMoKSBmaW5hbDsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhTGlzdFN1Z2dl
c3Rpb25QaWNrZXI+IG1fc3VnZ2VzdGlvblBpY2tlcjsKKyNlbmRpZgorCiAgICAgUmVmUHRyPEhU
TUxFbGVtZW50PiBtX2NvbnRhaW5lcjsKICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IG1faW5uZXJC
bG9jazsKICAgICBSZWZQdHI8VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50PiBtX2lubmVyVGV4
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggYzZlNWVlZWZhNjI5
NGJmNGRkNzU5MTAzZWY1MTcxMGVkNTg0OWE4Yi4uNjA1M2I4NzhiMmYwNDU0MDAzZGYxNDcwMWVh
OGNiYTRkMDM5ZGFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAg
LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJCYWNrRm9yd2FyZENsaWVudC5oIgogI2luY2x1ZGUg
IkNvbG9yQ2hvb3Nlci5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCisjaW5jbHVk
ZSAiRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VQcm92aWRl
ci5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRGcmFnbWVudC5oIgpAQCAtNDIzLDYgKzQyNCwxNSBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q29s
b3JDaG9vc2VyPiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hv
b3NlcgogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQorCitzdGQ6OnVu
aXF1ZV9wdHI8RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyPiBFbXB0eUNocm9tZUNsaWVudDo6Y3Jl
YXRlRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKERhdGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQmKQor
eworICAgIHJldHVybiBudWxscHRyOworfQorCisjZW5kaWYKKwogdm9pZCBFbXB0eUNocm9tZUNs
aWVudDo6cnVuT3BlblBhbmVsKEZyYW1lJiwgRmlsZUNob29zZXImKQogewogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGUyODVmNjM5ZTBkODdiZDU4NmRjM2ZmYWRlNWZj
ZTljODdlZmMwZmMuLjlkMDUyYjBiOTUyM2ZiYzg0NjY5M2YyMmRjNWZjNzhhYTM4MDc2NWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTEzMiw2ICsxMzIsMTAgQEAgY2xh
c3MgRW1wdHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xp
ZW50JiwgY29uc3QgQ29sb3ImKSBmaW5hbDsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFMSVNU
X0VMRU1FTlQpCisgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcj4g
Y3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKERhdGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQm
KSBmaW5hbDsKKyNlbmRpZgorCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hv
b3NlciYpIGZpbmFsOwogICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYsIEZpbGVJY29uTG9hZGVyJikgZmluYWwgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApp
bmRleCA3NzBhOTZiMTAwM2IyMzM5MDI0MzBkOWZkMjBmNjQ1YmQ2ZTMwMzY5Li5mZjY5ZWRlZjFj
MDA4NmI2M2JjNTVkMjM0YjFjZjI2MmI1NTllZGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBA
IC01Niw2ICs1NiwxMCBAQAogI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKyNpbmNsdWRlICJEYXRhTGlzdFN1Z2dlc3Rpb25Q
aWNrZXIuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CkBAIC00MjIsNiArNDI2LDE2IEBAIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNo
b29zZXI+IENocm9tZTo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCYgY2xp
CiAKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisKK3N0ZDo6dW5pcXVl
X3B0cjxEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI+IENocm9tZTo6Y3JlYXRlRGF0YUxpc3RTdWdn
ZXN0aW9uUGlja2VyKERhdGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQmIGNsaWVudCkKK3sKKyAgICBu
b3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKKyAgICByZXR1cm4gbV9jbGllbnQuY3JlYXRl
RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKGNsaWVudCk7Cit9CisKKyNlbmRpZgorCiB2b2lkIENo
cm9tZTo6cnVuT3BlblBhbmVsKEZyYW1lJiBmcmFtZSwgRmlsZUNob29zZXImIGZpbGVDaG9vc2Vy
KQogewogICAgIG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgK
aW5kZXggMjE3NGNiZTEyNmRmNWYzNGMwMjMyOTcyNmZhZjYyNWQ2YTIxMTEzNS4uY2NiY2U5MzU1
NmVhOTRiNWMxMTBjNWRjMzU3YzM1ZDk4ODMxYTlmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC0z
Nyw2ICszNyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENocm9tZUNsaWVudDsKIGNs
YXNzIENvbG9yQ2hvb3NlcjsKIGNsYXNzIENvbG9yQ2hvb3NlckNsaWVudDsKK2NsYXNzIERhdGFM
aXN0U3VnZ2VzdGlvblBpY2tlcjsKK2NsYXNzIERhdGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQ7CiBj
bGFzcyBEYXRlVGltZUNob29zZXI7CiBjbGFzcyBEYXRlVGltZUNob29zZXJDbGllbnQ7CiBjbGFz
cyBGaWxlQ2hvb3NlcjsKQEAgLTE1Miw2ICsxNTQsMTAgQEAgcHVibGljOgogICAgIHN0ZDo6dW5p
cXVlX3B0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGll
bnQmLCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERB
VEFMSVNUX0VMRU1FTlQpCisgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFMaXN0U3VnZ2VzdGlvblBp
Y2tlcj4gY3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKERhdGFMaXN0U3VnZ2VzdGlvbnND
bGllbnQmKTsKKyNlbmRpZgorCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hv
b3NlciYpOwogICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYs
IEZpbGVJY29uTG9hZGVyJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGUy
NDIyMzcwZTdlZGVmNDQ1OWVkZWYwMDkxYjFlZjZkZmIzZWZiZDIuLmJlYTBkOGY0Y2I4YWQzNGIx
ZTk5NmViZjMxOGNmZmIwZmI5NjhiZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApA
QCAtNjgsNiArNjgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBY2Nlc3NpYmlsaXR5
T2JqZWN0OwogY2xhc3MgQ29sb3JDaG9vc2VyOwogY2xhc3MgQ29sb3JDaG9vc2VyQ2xpZW50Owor
Y2xhc3MgRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOworY2xhc3MgRGF0YUxpc3RTdWdnZXN0aW9u
c0NsaWVudDsKIGNsYXNzIERhdGVUaW1lQ2hvb3NlcjsKIGNsYXNzIERhdGVUaW1lQ2hvb3NlckNs
aWVudDsKIGNsYXNzIEVsZW1lbnQ7CkBAIC0yNzUsNiArMjc3LDEwIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihD
b2xvckNob29zZXJDbGllbnQmLCBjb25zdCBDb2xvciYpID0gMDsKICNlbmRpZgogCisjaWYgRU5B
QkxFKERBVEFMSVNUX0VMRU1FTlQpCisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8RGF0YUxp
c3RTdWdnZXN0aW9uUGlja2VyPiBjcmVhdGVEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIoRGF0YUxp
c3RTdWdnZXN0aW9uc0NsaWVudCYpID0gMDsKKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIHJ1
bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJikgPSAwOwogICAgIC8vIEFzeW5jaHJvbm91
cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBmb3Igc3BlY2lmaWVkIGZpbGVuYW1lcy4KICAgICB2
aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJ
Y29uTG9hZGVyJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0
YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRhTGlz
dFN1Z2dlc3Rpb25QaWNrZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Y2UxOTJhZTkwZmNjOTFjOWE1NDljMDA4
OWU1MjEyNDljMGUyMzNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisKKyNpbXBv
cnQgIkRhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmgiCisjaW1wb3J0ICJJbnRSZWN0Lmgi
CisKKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIERhdGFMaXN0U3VnZ2VzdGlvblBpY2tlciB7CitwdWJsaWM6CisgICAgdmlydHVh
bCB+RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2
b2lkIGNsb3NlKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWRvd25XaXRoSWRlbnRp
Zmllcihjb25zdCBTdHJpbmcmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGxheVdpdGhBY3Rp
dmF0aW9uVHlwZShEYXRhTGlzdFN1Z2dlc3Rpb25BY3RpdmF0aW9uVHlwZSkgeyB9Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiZjVjNmIw
Y2MzNTAxNGI4NTg4MTYyYmY2YjBjM2FmYjI0MjJiNjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50LmgKQEAgLTAsMCAr
MSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEFMSVNU
X0VMRU1FTlQpCisKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERhdGFMaXN0U3VnZ2VzdGlvbnNDbGll
bnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfkRhdGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQoKSA9
IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIEludFJlY3QgZWxlbWVudFJlY3RJblJvb3RWaWV3Q29v
cmRpbmF0ZXMoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBzdWdnZXN0
aW9ucygpIGNvbnN0ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRTZWxlY3REYXRhTGlzdE9w
dGlvbihjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlU3VnZ2Vz
dGlvbnMoKSA9IDA7Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQUxJU1RfRUxFTUVO
VCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDJkMzExNzU0YzIxMmViM2JiMGNiMjQxZmY2OWY2ZjIzYWVkYzg0YTQuLjY5MjkzZjI5ZGE0
NWQ0NGE1N2FiNzA4NDE0OGViZWMyYzI0MmY4ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjE2MCw2ICsyMTYwLDggQEAKIAkJRTQ5
RDQwRDkxQUQzRkIyMTAwNjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0OUQ0MEQ4MUFEM0ZC
MjEwMDY2QjdCOSAvKiBOZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5jcHAgKi87IH07CiAJCUU0RTg2
NDkyMUIxNjc1MDEwMEM4MkY0MCAvKiBWZXJzaW9uQ2hlY2tzLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRFODY0OEYxQjE2NzNGQjAwQzgyRjQwIC8q
IFZlcnNpb25DaGVja3MubW0gKi87IH07CiAJCUU0RTg2NDkzMUIxNjc1MDcwMEM4MkY0MCAvKiBW
ZXJzaW9uQ2hlY2tzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNEU4NjQ4RTFCMTY3M0ZCMDBDODJGNDAgLyogVmVyc2lvbkNoZWNrcy5oICovOyB9Owor
CQlFNTJDRjU1MjIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTJDRjU1
MDIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggKi87IH07
CisJCUU1MkNGNTUzMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNr
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUy
Q0Y1NTEyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHAg
Ki87IH07CiAJCUVDQTY4MEQ4MUU2OTBFMjUwMDczMUQyMCAvKiBXZWJQcm9jZXNzQ29jb2EuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVDQTY4MEQ3MUU2
OTBERjgwMDczMUQyMCAvKiBXZWJQcm9jZXNzQ29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFRDgyQTdGMjEyOEM2RkFGMDA0NDc3QjMgLyog
V0tCdW5kbGVQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUEyMkYwRkYxMjg5RkNEOTAwODVFNzRGIC8qIFdLQnVuZGxlUGFnZU92ZXJs
YXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlF
RENBNzFCNzEyOEREQThDMDAyMDFCMjYgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTIyRjEwMDEyODlGQ0Q5
MDA4NUU3NEYgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5jcHAgKi87IH07CkBAIC00NzA2LDYgKzQ3
MDgsOCBAQAogCQlFNDlENDBEODFBRDNGQjIxMDA2NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0
b3JhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0Nh
Y2hlQmxvYlN0b3JhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEU4NjQ4
RTFCMTY3M0ZCMDBDODJGNDAgLyogVmVyc2lvbkNoZWNrcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBWZXJzaW9uQ2hlY2tzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU0RTg2NDhGMUIxNjczRkIwMEM4MkY0MCAvKiBWZXJzaW9uQ2hlY2tzLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmVyc2lvbkNoZWNrcy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTUyQ0Y1NTAyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRh
dGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEYXRhTGlzdFN1Z2dl
c3Rpb25QaWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTUyQ0Y1NTEyMEEz
NUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFQ0E2ODBEMzFFNjkwNEI1MDA3MzFEMjAgLyogRXh0cmFQcml2YXRl
U3ltYm9sc0ZvclRBUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXh0cmFQ
cml2YXRlU3ltYm9sc0ZvclRBUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUNB
NjgwRDcxRTY5MERGODAwNzMxRDIwIC8qIFdlYlByb2Nlc3NDb2NvYS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJQcm9jZXNzQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUNCRkMx
REIxRTZBNEQ2NjAwMDMwMEM3IC8qIEV4dHJhUHVibGljU3ltYm9sc0ZvclRBUEkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRXh0cmFQdWJsaWNTeW1ib2xzRm9yVEFQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNzE2Nyw2ICs3MTcxLDggQEAKIAkJCQk0QTQxMEY0OTE5QUY3QjgwMDAyRUJB
QjUgLyogV2ViVXNlck1lZGlhQ2xpZW50LmggKi8sCiAJCQkJODNFRTU3NTkxREI3RDYwNjAwQzc0
QzUwIC8qIFdlYlZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmNwcCAqLywKIAkJCQk4M0VFNTc1QTFE
QjdENjA2MDBDNzRDNTAgLyogV2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLywKKwkJCQlF
NTJDRjU1MDIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmgg
Ki8sCisJCQkJRTUyQ0Y1NTEyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlv
blBpY2tlci5jcHAgKi8sCiAJCQkpOwogCQkJcGF0aCA9IFdlYkNvcmVTdXBwb3J0OwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTg4NDksNiArODg1NSw3IEBACiAJCQkJN0NFNEQyMDcx
QTQ2Nzc2MTAwQzdGMTUyIC8qIEFQSUxlZ2FjeUNvbnRleHRIaXN0b3J5Q2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQTI0NjRGMzE4OTFFNDUxMDAyMzRDNUIgLyogQVBJTG9hZGVyQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0QzQTQ4MzFBNUQwMkZBMDA5NjIzQjggLyogQVBJTmF2
aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTUyQ0Y1NTIyMEEzNUMzQTAwREFEQTI3IC8q
IFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRGOUVF
RUMxQTc4MzZFRTAwQjZDRkJFIC8qIEFQSU5hdmlnYXRpb25BY3Rpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTJERDlFQjJEMUE2RjAxMjUwMEJCMTI2NyAvKiBBUElOYXZpZ2F0aW9uQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQ0Y2OUZBMjExNzZEMDE0MDA0NzFBNTIgLyogQVBJTmF2aWdh
dGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMTExODksNiArMTExOTYsNyBAQAogCQkJCTFD
QThCOTQ1MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQzg5MUQ2NTE5QjEyNEZGMDBCQTc5REQgLyogV2Vi
SW5zcGVjdG9yVUkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUNBOEI5NTQxMjdDODkxNTAwNTc2
QzJCIC8qIFdlYkluc3BlY3RvclVJTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRTUyQ0Y1NTMy
MEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxQ0JCRTRBMDE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU1QkE4MkMxQkEzOEU2NDAw
N0NEMzNEIC8qIFdlYkluc3BlY3RvclV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQky
REE5NDRBMTE4ODRFNEYwMDBFRDg2REIgLyogV2ViSU9TRXZlbnRGYWN0b3J5Lm1tIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDY0ZWY2M2UxMWM3MmU1ODQ1MmZjYWQ3
ZWFjZGI0NTgwMWIzMzMzNWIuLjBjOTU1ZjY3NzFiZWNjYmU1NjhmMDI0MjQ3OWYxNjMwMWY1ZDFm
NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAi
VXNlckRhdGEuaCIKICNpbmNsdWRlICJXZWJDb2xvckNob29zZXIuaCIKICNpbmNsdWRlICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNr
ZXIuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXIuaCIKQEAgLTU3LDYgKzU4LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9BWE9iamVjdENhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db2xvckNob29z
ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRGF0YWJhc2VUcmFja2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1
bWVudExvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZUNob29zZXIuaD4KQEAgLTc4OSw2
ICs3OTEsMTUgQEAgc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50
OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2wKIAogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoREFUQUxJU1RfRUxFTUVOVCkKKworc3RkOjp1bmlxdWVfcHRyPERhdGFMaXN0U3VnZ2VzdGlv
blBpY2tlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIo
RGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudCYgY2xpZW50KQoreworICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcj4oJm1fcGFnZSwgJmNsaWVudCk7
Cit9CisKKyNlbmRpZgorCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuT3BlblBhbmVsKEZyYW1l
JiBmcmFtZSwgRmlsZUNob29zZXImIGZpbGVDaG9vc2VyKQogewogICAgIGlmIChtX3BhZ2UuYWN0
aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA1ODQ2
YWUzYzRiYzIwNWRhOTMwNzlhNDdlOWYyZTczYzgwM2Q1ZTZiLi44MTFhODIyYzk0NTM0MzY2YTc1
MDMxMTE1ZTlhMGZhYTkzZjQyN2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xNDgsNiArMTQ4
LDEwIEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nl
cj4gY3JlYXRlQ29sb3JDaG9vc2VyKFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCYsIGNvbnN0
IFdlYkNvcmU6OkNvbG9yJikgZmluYWw7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBTElTVF9F
TEVNRU5UKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpEYXRhTGlzdFN1Z2dlc3Rpb25Q
aWNrZXI+IGNyZWF0ZURhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcihXZWJDb3JlOjpEYXRhTGlzdFN1
Z2dlc3Rpb25zQ2xpZW50JikgZmluYWw7CisjZW5kaWYKKwogI2lmIEVOQUJMRShJT1NfVE9VQ0hf
RVZFTlRTKQogICAgIHZvaWQgZGlkUHJldmVudERlZmF1bHRGb3JFdmVudCgpIGZpbmFsOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc3OGI1YmI0YmQ3NDk3ZTMyY2VlMDZhMDE2MTAwZWZjYjk2ZTUyNTkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YUxp
c3RTdWdnZXN0aW9uUGlja2VyLmNwcApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5o
IgorCisjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisKKyNpbmNsdWRlICJXZWJQYWdlLmgi
CisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNz
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9EYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50Lmg+CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViRGF0YUxp
c3RTdWdnZXN0aW9uUGlja2VyOjpXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIoV2ViUGFnZSog
cGFnZSwgRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudCogY2xpZW50KQorICAgIDogbV9kYXRhTGlz
dFN1Z2dlc3Rpb25zQ2xpZW50KGNsaWVudCkKKyAgICAsIG1fcGFnZShwYWdlKSB7IH0KKworV2Vi
RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOjp+V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKCkg
eyB9CisKK3ZvaWQgV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOjpoYW5kbGVLZXlkb3duV2l0
aElkZW50aWZpZXIoY29uc3QgV1RGOjpTdHJpbmcmIGtleSkKK3sKKworfQorCit2b2lkIFdlYkRh
dGFMaXN0U3VnZ2VzdGlvblBpY2tlcjo6ZGlkU2VsZWN0T3B0aW9uKGNvbnN0IFdURjo6U3RyaW5n
JiBzZWxlY3RlZE9wdGlvbikKK3sKKworfQorCit2b2lkIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBp
Y2tlcjo6ZGlkQ2xvc2VTdWdnZXN0aW9ucygpCit7CisKK30KKwordm9pZCBXZWJEYXRhTGlzdFN1
Z2dlc3Rpb25QaWNrZXI6OmNsb3NlKCkKK3sKKworfQorCit2b2lkIFdlYkRhdGFMaXN0U3VnZ2Vz
dGlvblBpY2tlcjo6ZGlzcGxheVdpdGhBY3RpdmF0aW9uVHlwZShEYXRhTGlzdFN1Z2dlc3Rpb25B
Y3RpdmF0aW9uVHlwZSB0eXBlKQoreworCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zZjMxMzk5NTMyZWY2N2I0OWQyOGE3ZWY5OThkYmU1OWU3NzRmNmViCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFMaXN0
U3VnZ2VzdGlvblBpY2tlci5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQorCisjaW5jbHVkZSA8V2ViQ29y
ZS9EYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgRGF0YUxpc3RTdWdnZXN0aW9uc0Ns
aWVudDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNz
IFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlciA6IHB1YmxpYyBXZWJDb3JlOjpEYXRhTGlzdFN1
Z2dlc3Rpb25QaWNrZXIgeworcHVibGljOgorICAgIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tl
cihXZWJQYWdlKiwgV2ViQ29yZTo6RGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudCopOworICAgIHZp
cnR1YWwgfldlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcigpOworCisgICAgdm9pZCBoYW5kbGVL
ZXlkb3duV2l0aElkZW50aWZpZXIoY29uc3QgV1RGOjpTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZFNlbGVjdE9wdGlvbihjb25zdCBXVEY6OlN0cmluZyYpOworICAgIHZvaWQgZGlkQ2xv
c2VTdWdnZXN0aW9ucygpOworICAgIHZvaWQgY2xvc2UoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRp
c3BsYXlXaXRoQWN0aXZhdGlvblR5cGUoV2ViQ29yZTo6RGF0YUxpc3RTdWdnZXN0aW9uQWN0aXZh
dGlvblR5cGUpIG92ZXJyaWRlOworcHJpdmF0ZToKKyAgICBfX3VudXNlZCBXZWJDb3JlOjpEYXRh
TGlzdFN1Z2dlc3Rpb25zQ2xpZW50KiBtX2RhdGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQ7CisgICAg
X191bnVzZWQgV2ViUGFnZSogbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApp
bmRleCA5NzAzZDQ5NzZjMWZjOTI1NDg4MjNlNmU4YmY1ODQxYWNlNWU1OWY3Li43NjI1ZTMyMjJh
MjgyMmU3M2QyMjFmN2RiOGQ4MGFmYTE5YjI0Y2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNzYsNiArNzYsNyBAQAogI2luY2x1ZGUgIldl
YkNvbnRleHRNZW51LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVDbGllbnQuaCIKICNpbmNs
dWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJEYXRhTGlzdFN1Z2dl
c3Rpb25QaWNrZXIuaCIKICNpbmNsdWRlICJXZWJEYXRhYmFzZVByb3ZpZGVyLmgiCiAjaW5jbHVk
ZSAiV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJXZWJEb2N1bWVudExv
YWRlci5oIgpAQCAtMzU1OCw2ICszNTU5LDI2IEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ2hvb3NlQ29s
b3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShE
QVRBTElTVF9FTEVNRU5UKQorCit2b2lkIFdlYlBhZ2U6OnNldEFjdGl2ZURhdGFMaXN0U3VnZ2Vz
dGlvblBpY2tlcihXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIqIGRhdGFMaXN0U3VnZ2VzdGlv
blBpY2tlcikKK3sKKyAgICBtX2FjdGl2ZURhdGFMaXN0U3VnZ2VzdGlvblBpY2tlciA9IGRhdGFM
aXN0U3VnZ2VzdGlvblBpY2tlcjsKK30KKwordm9pZCBXZWJQYWdlOjpkaWRTZWxlY3REYXRhTGlz
dE9wdGlvbihjb25zdCBTdHJpbmcmIHNlbGVjdGVkT3B0aW9uKQoreworICAgIG1fYWN0aXZlRGF0
YUxpc3RTdWdnZXN0aW9uUGlja2VyLT5kaWRTZWxlY3RPcHRpb24oc2VsZWN0ZWRPcHRpb24pOwor
fQorCit2b2lkIFdlYlBhZ2U6OmRpZENsb3NlU3VnZ2VzdGlvbnMoKQoreworICAgIG1fYWN0aXZl
RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLT5kaWRDbG9zZVN1Z2dlc3Rpb25zKCk7CisgICAgbV9h
Y3RpdmVEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIgPSBudWxscHRyOworfQorCisjZW5kaWYKKwog
dm9pZCBXZWJQYWdlOjpzZXRBY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcihSZWY8V2ViT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXI+JiYgb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIpCiB7CiAgICAg
bV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IFdURk1vdmUob3BlblBhbmVsUmVzdWx0
TGlzdGVuZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmlu
ZGV4IDE2OTlhOTExNTdiYWE3OGM4ODYyZGI2MzA3NmMwODBjZGZmNmU1MzMuLjMzMTU3NWUyNDNm
N2U1ZWRlYzA5NjE5MmFjY2I3NzBhOGI1Yzc3NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE5OSw2ICsxOTksNyBAQCBjbGFzcyBWaXNpYmxlQ29u
dGVudFJlY3RVcGRhdGVJbmZvOwogY2xhc3MgV2ViQ29sb3JDaG9vc2VyOwogY2xhc3MgV2ViQ29u
dGV4dE1lbnU7CiBjbGFzcyBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOworY2xhc3MgV2ViRGF0YUxp
c3RTdWdnZXN0aW9uUGlja2VyOwogY2xhc3MgV2ViRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBXZWJF
dmVudDsKIGNsYXNzIFdlYkZyYW1lOwpAQCAtMzYxLDYgKzM2MiwxMiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkaWRFbmRDb2xvclBpY2tlcigpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQUxJU1Rf
RUxFTUVOVCkKKyAgICB2b2lkIHNldEFjdGl2ZURhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcihXZWJE
YXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIqKTsKKyAgICB2b2lkIGRpZFNlbGVjdERhdGFMaXN0T3B0
aW9uKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZGlkQ2xvc2VTdWdnZXN0aW9ucygpOworI2Vu
ZGlmCisKICAgICBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciogYWN0aXZlT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXIoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyLmdldCgpOyB9CiAgICAgdm9pZCBzZXRBY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcihS
ZWY8V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI+JiYpOwogCkBAIC0xNTUxLDYgKzE1NTgsMTAg
QEAgcHJpdmF0ZToKICAgICBXZWJDb2xvckNob29zZXIqIG1fYWN0aXZlQ29sb3JDaG9vc2VyIHsg
bnVsbHB0ciB9OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKyAgICBX
ZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIqIG1fYWN0aXZlRGF0YUxpc3RTdWdnZXN0aW9uUGlj
a2VyIHsgbnVsbHB0ciB9OworI2VuZGlmCisKICAgICBSZWZQdHI8V2ViT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXI+IG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CiAgICAgUmVmUHRyPE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4gbV9ub3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDdlMTUwMzA2NWEyNmFkNjdlM2RhYTNh
MzY4MjQxYzAwNmMyMWQ3MDYuLmZjZWJjZjJmMTc5NDhkNWZkZGVmYTQ5ZGI4NTcyNmMzYTc1OThl
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgpAQCAtMTI3LDYgKzEyNywxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExl
Z2FjeVJlY2VpdmVyIHsKICAgICBEaWRDaG9vc2VDb2xvcihXZWJDb3JlOjpDb2xvciBjb2xvcikK
ICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisgICAgRGlkU2VsZWN0RGF0
YUxpc3RPcHRpb24oU3RyaW5nIHNlbGVjdGVkT3B0aW9uKTsKKyAgICBEaWRDbG9zZVN1Z2dlc3Rp
b25zKCk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIENvbnRleHRN
ZW51SGlkZGVuKCkKICAgICBDb250ZXh0TWVudUZvcktleUV2ZW50KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
aW5kZXggNDI0YzkxYTNiZDIxNjg3NzFjMzNjYTBiMWMwZmRmYTA0NGIyYjI2NC4uNDM1NWE4NjZk
NjQxMDM3YmE2N2YxYWVkY2NhZmMwN2U4YWIyZDlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTEz
OCw2ICsxMzgsMTAgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29s
b3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50
JiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBmaW5hbDsKICNlbmRpZgogCisjaWYgRU5BQkxFKERB
VEFMSVNUX0VMRU1FTlQpCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkRhdGFMaXN0U3Vn
Z2VzdGlvblBpY2tlcj4gY3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKFdlYkNvcmU6OkRh
dGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQmKSBmaW5hbDsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKICAgICBib29sIHJlcXVlc3RQb2ludGVyTG9jaygpIGZpbmFsOwogICAgIHZv
aWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCA3
ZDVmZjVhZDVmYjRlMDM0YTlhNDdiNWMxMmYzMzBmNzRkNDZmZjgwLi4yODg0ZGZkNWZkN2MzNmE5
M2M2MjAyMGE0NGU3ZTk1ZjZmOTc4MmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC01OCw2ICs1
OCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0NvbnRleHRNZW51Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0NvbnRleHRNZW51Q29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9DdXJzb3IuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oPgogI2ltcG9ydCA8V2ViQ29yZS9FbGVtZW50
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+CkBAIC03MjMsNiArNzI0LDE0IEBA
IHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29s
b3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFMSVNU
X0VMRU1FTlQpCitzdGQ6OnVuaXF1ZV9wdHI8RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyPiBXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZURhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcihEYXRhTGlzdFN1Z2dl
c3Rpb25zQ2xpZW50JiBjbGllbnQpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiBi
b29sIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFBvaW50ZXJMb2NrKCkKIHsK
</data>
<flag name="review"
          id="360129"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342186</attachid>
            <date>2018-06-07 10:40:30 -0700</date>
            <delta_ts>2018-06-08 14:09:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186151-20180607104029.patch</filename>
            <type>text/plain</type>
            <size>48077</size>
            <attacher name="Aditya Keerthi">pxlcoder</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2RhNjgwZGIwYWIwN2I1
NDY2M2E1MmQ1ZmQ1ODllMjRkN2QxZjExNy4uNjI1Y2ZkOWIwYzAwNGVjZjYwZDc4MzI3YzRmNGIw
YzljM2ZmODgzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE4LTA2LTA1ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbRGF0YWxpc3RdIEFs
bG93IFRleHRGaWVsZElucHV0VHlwZSB0byBzaG93IGFuZCBoaWRlIHN1Z2dlc3Rpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODYxNTEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXh0RmllbGRJbnB1
dFR5cGVzIHdpdGggYSBsaXN0IGF0dHJpYnV0ZSBzaG91bGQgYmUgYWJsZSB0byBkaXNwbGF5IHN1
Z2dlc3Rpb25zIGFzIHRoZSB1c2VyCisgICAgICAgIGludGVyYWN0cyB3aXRoIHRoZSBpbnB1dCBm
aWVsZC4gSW4gb3JkZXIgdG8gZGlzcGxheSBzdWdnZXN0aW9ucyBmb3IgYW4gaW5wdXQgZmllbGQg
d2l0aCBhIGxpc3QKKyAgICAgICAgYXR0cmlidXRlLCB3ZSBuZWVkIHByb3ZpZGUgY2VydGFpbiBp
bmZvcm1hdGlvbiAtIGluY2x1ZGluZyB0aGUgaXRlbXMgdG8gc3VnZ2VzdCBhbmQgdGhlIGxvY2F0
aW9uCisgICAgICAgIHRvIHByZXNlbnQgdGhlIHN1Z2dlc3Rpb25zLiBUZXh0RmllbGRJbnB1dFR5
cGUgY2FuIG5vdyBwcm92aWRlIHRoaXMgaW5mb3JtYXRpb24gYnkgY29uZm9ybWluZyB0bworICAg
ICAgICB0aGUgRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudCBpbnRlcmZhY2UuCisKKyAgICAgICAg
SW4gdGhpcyBpbml0aWFsIHBhdGNoLCB0aGUgc3VnZ2VzdGlvbnMgY2FuIGJlIHNob3duIGluIHR3
byB3YXlzLiBUaGUgZmlyc3QgaXMgYnkgY2xpY2tpbmcgb24gdGhlCisgICAgICAgIGlucHV0IGZp
ZWxkLiBUaGUgb3RoZXIgaXMgYnkgdHlwaW5nIHRleHQgaW4gdGhlIGZpZWxkLiBJbiBhIGxhdGVy
IHBhdGNoLCB3ZSB3aWxsIGFkZCBhIHRoaXJkIHdheQorICAgICAgICB0byBkaXNwbGF5IHN1Z2dl
c3Rpb25zLCB1c2luZyBhIGJ1dHRvbi4gVGhlc2Ugd2F5cyB0byBhY3RpdmF0ZSB0aGUgc3VnZ2Vz
dGlvbnMgYXJlIGVudW1lcmF0ZWQgaW4KKyAgICAgICAgRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3Jt
YXRpb24uCisKKyAgICAgICAgV2UgaGlkZSB0aGUgc3VnZ2VzdGlvbnMgaWYgdGhlcmUgYXJlIG5v
IG1vcmUgdG8gc2hvdywgb3IgaWYgdGhlIGlucHV0IGhhcyBibHVycmVkLgorCisgICAgICAgIFRl
c3RzIHRvIGJlIGFkZGVkIG9uY2Ugd29yayBoYXMgYmVlbiBkb25lIGluIHRoZSBVSVByb2Nlc3Mu
CisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogaHRtbC9EYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oOiBBZGRlZC4gQ29udGFpbnMg
dGhlIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSB0byBkaXNwbGF5IHN1Z2dlc3Rpb25zLgorICAgICAg
ICAqIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRG
aWVsZElucHV0VHlwZTo6flRleHRGaWVsZElucHV0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpU
ZXh0RmllbGRJbnB1dFR5cGU6OmhhbmRsZUNsaWNrRXZlbnQpOiBTaG93IHN1Z2dlc3Rpb25zIHdo
ZW4gdGhlIGVsZW1lbnQgaXMgY2xpY2tlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElu
cHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KTogQWxsb3cgdXNlcnMgdG8gaW50ZXJhY3Qgd2l0
aCB0aGUgc3VnZ2VzdGlvbnMgdXNpbmcgdGhlIGtleWJvYXJkLgorICAgICAgICAoV2ViQ29yZTo6
VGV4dEZpZWxkSW5wdXRUeXBlOjplbGVtZW50RGlkQmx1cik6IEhpZGUgdGhlIHN1Z2dlc3Rpb25z
LgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpzaG91bGRSZXNwZWN0TGlz
dEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmRpZFNl
dFZhbHVlQnlVc2VyRWRpdCk6IFVwZGF0ZSB0aGUgc3VnZ2VzdGlvbnMgaWYgdGhlIHRleHQgaGFz
IGNoYW5nZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmVsZW1lbnRS
ZWN0UmVsYXRpdmVUb1Jvb3RWaWV3IGNvbnN0KTogUHJvdmlkZSB0aGUgbG9jYXRpb24gd2hlcmUg
dGhlIHN1Z2dlc3Rpb25zIHNob3VsZCBiZSBzaG93bi4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRG
aWVsZElucHV0VHlwZTo6c3VnZ2VzdGlvbnMgY29uc3QpOiBQcm92aWRlIHRoZSBsaXN0IG9mIHN1
Z2dlc3Rpb25zLgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpkaWRTZWxl
Y3REYXRhTGlzdE9wdGlvbik6IFVwZGF0ZSB0aGUgdGV4dCBvbmNlIGFuIHN1Z2dlc3Rpb24gaGFz
IGJlZW4gc2VsZWN0ZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmRp
ZENsb3NlU3VnZ2VzdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBl
OjpkaXNwbGF5U3VnZ2VzdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRU
eXBlOjpjbG9zZVN1Z2dlc3Rpb25zKToKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlw
ZS5oOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZURhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcik6Cisg
ICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9uUGlj
a2VyKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xp
ZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOjpjbG9zZSk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI6OmhhbmRsZUtleWRv
d25XaXRoSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhTGlzdFN1Z2dlc3Rpb25Q
aWNrZXI6OmRpc3BsYXlXaXRoQWN0aXZhdGlvblR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL0Rh
dGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQuaDogQWRkZWQuCisKIDIwMTgtMDYtMDUgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBm
aXggYWZ0ZXIgcjIzMjUxMS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNWMxZThjMDViMTk4YWM3OTAxMDIwOTc0YmRj
YWY2MmM0MThmN2JlYS4uMjQ2Y2NlMzU4ZTRiOWY2Y2Y5MGE2MjJkMWY2NmE5YmE0NzZmZGE2MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxOC0wNi0wNSAgQWRpdHlhIEtlZXJ0aGkgIDxh
a2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW0RhdGFsaXN0XSBBbGxvdyBUZXh0RmllbGRJ
bnB1dFR5cGUgdG8gc2hvdyBhbmQgaGlkZSBzdWdnZXN0aW9ucworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2MTUxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgV2ViRGF0YUxpc3RTdWdnZXN0aW9u
UGlja2VyIHRvIHNlbmQgbWVzc2FnZXMgdG8gdGhlIFVJUHJvY2VzcyBpbiBvcmRlciB0byB1cGRh
dGUgdGhlIHN1Z2dlc3Rpb25zIHZpZXcuCisgICAgICAgIFRoaXMgb2JqZWN0IGlzIGFsc28gcmVz
cG9uc2libGUgZm9yIGZvcndhcmRpbmcgbWVzc2FnZXMgZnJvbSBXZWJLaXQgaW50byB0aGUgRGF0
YUxpc3RTdWdnZXN0aW9uc0NsaWVudCwgd2hpY2gKKyAgICAgICAgaXMgdGhlIFRleHRGaWVsZElu
cHV0VHlwZSBpbiB0aGlzIGNhc2UuIFRoZSBjbGllbnQgbmVlZHMgdG8ga25vdyB3aGVuIHRoZSBz
dWdnZXN0aW9ucyBhcmUgaGlkZGVuIG9yIGlmIGFuCisgICAgICAgIHN1Z2dlc3Rpb24gaGFzIGJl
ZW4gc2VsZWN0ZWQuCisKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlRGF0YUxpc3RTdWdn
ZXN0aW9uUGlja2VyKTogUmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIFdlYkRhdGFMaXN0U3VnZ2Vz
dGlvblBpY2tlciB0byBzZW5kL3JlY2VpdmUgbWVzc2FnZXMuCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHA6IEFkZGVkLiBS
ZXNwb25zaWJsZSBmb3Igc2VuZGluZyBtZXNzYWdlcyB0byBVSVByb2Nlc3MgYW5kIHVwZGF0aW5n
IHRoZSBEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50LgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRh
TGlzdFN1Z2dlc3Rpb25QaWNrZXI6OldlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcik6CisgICAg
ICAgIChXZWJLaXQ6OldlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcjo6fldlYkRhdGFMaXN0U3Vn
Z2VzdGlvblBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGFMaXN0U3VnZ2VzdGlvblBp
Y2tlcjo6aGFuZGxlS2V5ZG93bldpdGhJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOjpkaWRTZWxlY3RPcHRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI6OmRpZENsb3NlU3VnZ2VzdGlvbnMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI6OmNsb3NlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOjpkaXNwbGF5V2l0aEFj
dGl2YXRpb25UeXBlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRh
dGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEFjdGl2ZURh
dGFMaXN0U3VnZ2VzdGlvblBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZFNl
bGVjdERhdGFMaXN0T3B0aW9uKTogQ2FsbGVkIGJ5IFVJUHJvY2VzcyB3aGVuIG9wdGlvbiBzZWxl
Y3RlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ2xvc2VTdWdnZXN0aW9ucyk6IENh
bGxlZCBieSBVSVByb2Nlc3MgaWYgdGhlIHN1Z2dlc3Rpb25zIHZpZXcgaXMgY2xvc2VkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMTgtMDYtMDQgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgIkNyb3NzLU9yaWdpbi1PcHRp
b25zIiBIVFRQIGhlYWRlciB0byAiQ3Jvc3MtT3JpZ2luLVdpbmRvdy1Qb2xpY3kiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYjc2ZjMyZjM3ODg3MmQyYmFkMTk5YjU1MGEzMDJmZjk0
MDBjODNlYi4uNjkyOTZhYTExYjk0NGFmZGEyMDcyNmY3ODdhZWNlYTUzOTAzMDUyNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTA2LTA1ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbRGF0YWxpc3RdIEFs
bG93IFRleHRGaWVsZElucHV0VHlwZSB0byBzaG93IGFuZCBoaWRlIHN1Z2dlc3Rpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODYxNTEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlRGF0YUxpc3RTdWdn
ZXN0aW9uUGlja2VyKToKKwogMjAxOC0wNi0wMyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgU2ltcGxpZnkgYW5kIHJlbW92ZSBzb21lIHVudXNlZCB2aWRlbyBlbGVt
ZW50IGNvZGUgKGhlbHBmdWwgZm9yIEFSQy1jb21wYXRpYmlsaXR5KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE2NzNhYTlhNTMw
Y2EzZDJlOTE2ODVmYTFjNDA1MWEyZWU1OTEwZGIuLmNjM2NlNWI0OWJiYzUyMzlmY2Q2OTBhODJl
OGJmYzZlZWJjMDBkOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTQ3NzAsNiArNDc3MCw5IEBACiAJCUU0RTlCMTE5MTgxMDkx
NkYwMDNBQ0NERiAvKiBTaW1wbGVMaW5lTGF5b3V0UmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RTlCMTE4MTgxMDkxNkYwMDNBQ0NERiAv
KiBTaW1wbGVMaW5lTGF5b3V0UmVzb2x2ZXIuaCAqLzsgfTsKIAkJRTRFOUIxMUQxODE0NTY5QzAw
M0FDQ0RGIC8qIFNpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RTlCMTFDMTgxNDU2OUMwMDNBQ0NERiAvKiBT
aW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmggKi87IH07CiAJCUU0RjlFRUYzMTU2REEwMDcwMEQy
M0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU0RjlFRUYxMTU2RDg0QzQwMEQyM0U3RSAvKiBTdHlsZVNoZWV0
Q29udGVudHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQlFNTE3NjcwMzIwQjg4QzE0MDBENDExNjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3Jt
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1
MTc2NzAyMjBCODhDMTQwMEQ0MTE2NyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUU1MkNG
NTREMjBBMjY4QUMwMERBREEyNyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTJDRjU0QzIwQTI2OEFD
MDBEQURBMjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUU1MkNGNTRGMjBBMzVBMjgwMERBREEy
NyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MkNGNTRFMjBBMzVBMjgwMERBREEyNyAvKiBEYXRhTGlz
dFN1Z2dlc3Rpb25QaWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlFNUJBN0Q2MzE1MTQzN0NBMDBGRTFFM0YgLyogTGVuZ3RoRnVuY3Rpb25z
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUJBN0Q2
MjE1MTQzN0NBMDBGRTFFM0YgLyogTGVuZ3RoRnVuY3Rpb25zLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRUJGNTEyMUMxNjk2NDk2QzAwNTZCRDI1
IC8qIEpTVHlwZUNvbnZlcnNpb25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEVCRjUxMjFBMTY5NjQ5NkMwMDU2QkQyNSAvKiBKU1R5cGVDb252ZXJz
aW9ucy5jcHAgKi87IH07CiAJCUVCRjUxMjFEMTY5NjQ5NkMwMDU2QkQyNSAvKiBKU1R5cGVDb252
ZXJzaW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RUJGNTEyMUIxNjk2NDk2QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmggKi87IH07CkBA
IC0xNDQ1Miw4ICsxNDQ1NSwxMSBAQAogCQlFNEU5QjExQzE4MTQ1NjlDMDAzQUNDREYgLyogU2lt
cGxlTGluZUxheW91dEZ1bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU0RjlFRUYwMTU2RDg0QzQwMEQyM0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVTaGVldENvbnRlbnRzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRGOUVFRjExNTZEODRDNDAwRDIzRTdF
IC8qIFN0eWxlU2hlZXRDb250ZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTdHlsZVNoZWV0Q29udGVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTUx
NzY3MDIyMEI4OEMxNDAwRDQxMTY3IC8qIERhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1MUE4MURFMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZv
cm1hbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGVyZm9y
bWFuY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTI2QUYzRTE3MjdGOEYy
MDBFNDE3ODEgLyogUGVyZm9ybWFuY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUGVyZm9ybWFuY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
NTJDRjU0QzIwQTI2OEFDMDBEQURBMjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUU1MkNGNTRFMjBBMzVBMjgwMERBREEyNyAvKiBEYXRhTGlzdFN1Z2dl
c3Rpb25QaWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1NUY0OTc5MTUxQjg4ODAwMEJCNjdEQiAv
KiBMZW5ndGhGdW5jdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTGVuZ3RoRnVuY3Rpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTVC
QTdENjIxNTE0MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMZW5ndGhGdW5jdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRUIwODFDRDgxNjk2MDg0NDAwNTUzNzMwIC8qIFR5cGVDb252ZXJzaW9ucy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUeXBlQ29udmVyc2lvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTIwMzM3LDYgKzIwMzQzLDcgQEAKIAkJCQk5M0M0NDFGRjBGODEzQUUxMDBDMUE2
MzQgLyogQ29sbGVjdGlvblR5cGUuaCAqLywKIAkJCQlCQzI5OTM1QzE3QTFERDU4MDBCQ0U4ODAg
LyogQ29sb3JJbnB1dFR5cGUuY3BwICovLAogCQkJCUY1NUIzRDgwMTI1MUYxMkQwMDNFRjI2OSAv
KiBDb2xvcklucHV0VHlwZS5oICovLAorCQkJCUU1MTc2NzAyMjBCODhDMTQwMEQ0MTE2NyAvKiBE
YXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oICovLAogCQkJCUY1NUIzRDgxMTI1MUYxMkQw
MDNFRjI2OSAvKiBEYXRlSW5wdXRUeXBlLmNwcCAqLywKIAkJCQlGNTVCM0Q4MjEyNTFGMTJEMDAz
RUYyNjkgLyogRGF0ZUlucHV0VHlwZS5oICovLAogCQkJCUY1NUIzRDgzMTI1MUYxMkQwMDNFRjI2
OSAvKiBEYXRlVGltZUlucHV0VHlwZS5jcHAgKi8sCkBAIC0yNDM1MCw2ICsyNDM1Nyw4IEBACiAJ
CQkJNDZDNjk2QzkxRTcyMDVFNDAwNTk3OTM3IC8qIENQVU1vbml0b3IuaCAqLywKIAkJCQlFMTFB
RjE1MDExQjlBMUEzMDA4MDUxMDMgLyogQ3Vyc29yLmNwcCAqLywKIAkJCQlGNTg3ODY4NDAyREUz
Qjg2MDFFQTQxMjIgLyogQ3Vyc29yLmggKi8sCisJCQkJRTUyQ0Y1NEUyMEEzNUEyODAwREFEQTI3
IC8qIERhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oICovLAorCQkJCUU1MkNGNTRDMjBBMjY4QUMw
MERBREEyNyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50LmggKi8sCiAJCQkJQTU3MzJCMDgx
MzZBMTYxRDAwNUM4RDdDIC8qIERhdGVDb21wb25lbnRzLmNwcCAqLywKIAkJCQlBNTczMkIwOTEz
NkExNjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMuaCAqLywKIAkJCQkzN0M3MzhGMTFFREJE
RTg3MDAzRjJCMEIgLyogRGF0ZVRpbWVDaG9vc2VyLmggKi8sCkBAIC0yNzU3MSw2ICsyNzU4MCw5
IEBACiAJCQkJQkUyMzQ4MEQxOEE5ODcxNDAwRTRCNkU4IC8qIERhdGFDdWUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUM1MjI3REYxMUMzQzZERjEwMEY1RUQ1NCAvKiBEYXRhRGV0ZWN0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3Qzc5NDFFNTFDNTZDMjkzMDBBNEM1OEUgLyogRGF0YURldGVjdG9y
c0NvcmVTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTUxNzY3MDMyMEI4OEMxNDAwRDQx
MTY3IC8qIERhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlFNTJDRjU0RjIwQTM1QTI4MDBEQURBMjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlFNTJDRjU0RDIwQTI2OEFDMDBEQURBMjcgLyogRGF0YUxpc3RT
dWdnZXN0aW9uc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyMjc0NkYwRTgzNjY0NTAw
RTdGOTc1IC8qIERhdGFSZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjQ2NDFDMTFEN0Y0MTYw
MDY0NTVCMCAvKiBEYXRhc2V0RE9NU3RyaW5nTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAz
MUIzRTBBNDRFRkM3MDBGOTkyRTAgLyogRGF0YVRyYW5zZmVyLmggaW4gSGVhZGVycyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44YzQ0OWVmOTk5NGM2MDNjYzRmNWVjOGE1YWQ5OTM5NTBhMDU1OWZlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRhTGlzdFN1Z2dlc3Rpb25J
bmZvcm1hdGlvbi5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIkludFJlY3QuaCIKKworI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIERhdGFMaXN0U3VnZ2VzdGlvbkFjdGl2
YXRpb25UeXBlIHsKKyAgICBDb250cm9sQ2xpY2tlZCwKKyAgICBJbmRpY2F0b3JDbGlja2VkLAor
ICAgIFRleHRDaGFuZ2VkLAorfTsKKworc3RydWN0IERhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0
aW9uIHsKKyAgICBEYXRhTGlzdFN1Z2dlc3Rpb25BY3RpdmF0aW9uVHlwZSBhY3RpdmF0aW9uVHlw
ZTsKKyAgICBWZWN0b3I8U3RyaW5nPiBzdWdnZXN0aW9uczsKKyAgICBJbnRSZWN0IGVsZW1lbnRS
ZWN0OworfTsKKworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rl
eHRGaWVsZElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0
VHlwZS5jcHAKaW5kZXggZGMwNTRmZTdkMGNkNDE5OTA5ZDU0ZDAwMGRiZTNmMDUxYmFiNWRiNy4u
NGFiNWIzOWZjMmM2OWE2Njk1YmU4OThjNWYxNTNjZGFmYzg1NWE0MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcApAQCAtNTgsNiArNTgsMTEgQEAKICNpbmNs
dWRlICJUZXh0Tm9kZVRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnQuaCIKIAorI2lm
IEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQorI2luY2x1ZGUgIkhUTUxEYXRhTGlzdEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKQEAgLTcxLDYgKzc2LDkgQEAg
VGV4dEZpZWxkSW5wdXRUeXBlOjp+VGV4dEZpZWxkSW5wdXRUeXBlKCkKIHsKICAgICBpZiAobV9p
bm5lclNwaW5CdXR0b24pCiAgICAgICAgIG1faW5uZXJTcGluQnV0dG9uLT5yZW1vdmVTcGluQnV0
dG9uT3duZXIoKTsKKyNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKyAgICBjbG9zZVN1Z2dl
c3Rpb25zKCk7CisjZW5kaWYKIH0KIAogYm9vbCBUZXh0RmllbGRJbnB1dFR5cGU6OmlzS2V5Ym9h
cmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0CkBAIC0xNjEsMTEgKzE2OSwyNCBAQCB2
b2lkIFRleHRGaWVsZElucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRW
YWx1ZSwgYm9vbCB2YWx1ZUNoYW5nZQogICAgICAgICBpbnB1dC0+c2V0VGV4dEFzT2ZMYXN0Rm9y
bUNvbnRyb2xDaGFuZ2VFdmVudChzYW5pdGl6ZWRWYWx1ZSk7CiB9CiAKKyNpZiBFTkFCTEUoREFU
QUxJU1RfRUxFTUVOVCkKK3ZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpoYW5kbGVDbGlja0V2ZW50
KE1vdXNlRXZlbnQmKQoreworICAgIGlmIChlbGVtZW50KCktPmZvY3VzZWQoKSAmJiBlbGVtZW50
KCktPmxpc3QoKSkKKyAgICAgICAgZGlzcGxheVN1Z2dlc3Rpb25zKERhdGFMaXN0U3VnZ2VzdGlv
bkFjdGl2YXRpb25UeXBlOjpDb250cm9sQ2xpY2tlZCk7Cit9CisjZW5kaWYKKwogdm9pZCBUZXh0
RmllbGRJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50JiBldmVudCkK
IHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBpZiAoIWVsZW1lbnQoKS0+Zm9jdXNlZCgp
KQogICAgICAgICByZXR1cm47CisjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisgICAgY29u
c3QgU3RyaW5nJiBrZXkgPSBldmVudC5rZXlJZGVudGlmaWVyKCk7CisgICAgaWYgKG1fc3VnZ2Vz
dGlvblBpY2tlciAmJiAoa2V5ID09ICJFbnRlciIgfHwga2V5ID09ICJVcCIgfHwga2V5ID09ICJE
b3duIikpCisgICAgICAgIG1fc3VnZ2VzdGlvblBpY2tlci0+aGFuZGxlS2V5ZG93bldpdGhJZGVu
dGlmaWVyKGtleSk7CisjZW5kaWYKICAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gZWxlbWVudCgp
LT5kb2N1bWVudCgpLmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPmVkaXRvcigp
LmRvVGV4dEZpZWxkQ29tbWFuZEZyb21FdmVudChlbGVtZW50KCksICZldmVudCkpCiAgICAgICAg
IHJldHVybjsKQEAgLTIyMyw2ICsyNDQsMTAgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmVs
ZW1lbnREaWRCbHVyKCkKICAgICBib29sIGlzTGVmdFRvUmlnaHREaXJlY3Rpb24gPSBkb3duY2Fz
dDxSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU+KCpyZW5kZXJlcikuc3R5bGUoKS5pc0xlZnRU
b1JpZ2h0RGlyZWN0aW9uKCk7CiAgICAgU2Nyb2xsT2Zmc2V0IHNjcm9sbE9mZnNldChpc0xlZnRU
b1JpZ2h0RGlyZWN0aW9uID8gMCA6IGlubmVyTGF5ZXItPnNjcm9sbFdpZHRoKCksIDApOwogICAg
IGlubmVyTGF5ZXItPnNjcm9sbFRvT2Zmc2V0KHNjcm9sbE9mZnNldCk7CisKKyNpZiBFTkFCTEUo
REFUQUxJU1RfRUxFTUVOVCkKKyAgICBjbG9zZVN1Z2dlc3Rpb25zKCk7CisjZW5kaWYKIH0KIAog
dm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmhhbmRsZUZvY3VzRXZlbnQoTm9kZSogb2xkRm9jdXNl
ZE5vZGUsIEZvY3VzRGlyZWN0aW9uKQpAQCAtNTM2LDcgKzU2MSwxMSBAQCB2b2lkIFRleHRGaWVs
ZElucHV0VHlwZTo6aGFuZGxlQmVmb3JlVGV4dEluc2VydGVkRXZlbnQoQmVmb3JlVGV4dEluc2Vy
dGVkRXZlbnQmCiAKIGJvb2wgVGV4dEZpZWxkSW5wdXRUeXBlOjpzaG91bGRSZXNwZWN0TGlzdEF0
dHJpYnV0ZSgpCiB7CisjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisgICAgcmV0dXJuIHRy
dWU7CisjZWxzZQogICAgIHJldHVybiBJbnB1dFR5cGU6OnRoZW1lU3VwcG9ydHNEYXRhTGlzdFVJ
KHRoaXMpOworI2VuZGlmCiB9CiAKIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFj
ZWhvbGRlclRleHQoKQpAQCAtNjA3LDYgKzYzNiwxMCBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlw
ZTo6ZGlkU2V0VmFsdWVCeVVzZXJFZGl0KCkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChSZWZQ
dHI8RnJhbWU+IGZyYW1lID0gZWxlbWVudCgpLT5kb2N1bWVudCgpLmZyYW1lKCkpCiAgICAgICAg
IGZyYW1lLT5lZGl0b3IoKS50ZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGQoZWxlbWVudCgpKTsKKyNp
ZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKyAgICBpZiAoZWxlbWVudCgpLT5saXN0KCkpCisg
ICAgICAgIGRpc3BsYXlTdWdnZXN0aW9ucyhEYXRhTGlzdFN1Z2dlc3Rpb25BY3RpdmF0aW9uVHlw
ZTo6VGV4dENoYW5nZWQpOworI2VuZGlmCiB9CiAKIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpz
cGluQnV0dG9uU3RlcERvd24oKQpAQCAtNzUxLDQgKzc4NCw2NyBAQCB2b2lkIFRleHRGaWVsZElu
cHV0VHlwZTo6dXBkYXRlQXV0b0ZpbGxCdXR0b24oKQogICAgICAgICBtX2F1dG9GaWxsQnV0dG9u
LT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5RGlzcGxheSwgQ1NTVmFsdWVOb25l
LCB0cnVlKTsgICAgICAgIAogfQogCisjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisKK0lu
dFJlY3QgVGV4dEZpZWxkSW5wdXRUeXBlOjplbGVtZW50UmVjdEluUm9vdFZpZXdDb29yZGluYXRl
cygpIGNvbnN0Cit7CisgICAgaWYgKCFlbGVtZW50KCktPnJlbmRlcmVyKCkpCisgICAgICAgIHJl
dHVybiBJbnRSZWN0KCk7CisgICAgcmV0dXJuIGVsZW1lbnQoKS0+ZG9jdW1lbnQoKS52aWV3KCkt
PmNvbnRlbnRzVG9Sb290VmlldyhlbGVtZW50KCktPnJlbmRlcmVyKCktPmFic29sdXRlQm91bmRp
bmdCb3hSZWN0KCkpOworfQorCitWZWN0b3I8U3RyaW5nPiBUZXh0RmllbGRJbnB1dFR5cGU6OnN1
Z2dlc3Rpb25zKCkgY29uc3QKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiBzdWdnZXN0aW9uczsKKwor
ICAgIGlmIChhdXRvIGRhdGFMaXN0ID0gZWxlbWVudCgpLT5kYXRhTGlzdCgpKSB7CisgICAgICAg
IFJlZjxIVE1MQ29sbGVjdGlvbj4gb3B0aW9ucyA9IGRhdGFMaXN0LT5vcHRpb25zKCk7CisgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGF1dG8qIG9wdGlvbiA9IGRvd25jYXN0PEhUTUxPcHRp
b25FbGVtZW50PihvcHRpb25zLT5pdGVtKGkpKTsgKytpKSB7CisgICAgICAgICAgICBpZiAoIWVs
ZW1lbnQoKS0+aXNWYWxpZFZhbHVlKG9wdGlvbi0+dmFsdWUoKSkpCisgICAgICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IHNhbml0aXplVmFsdWUob3B0
aW9uLT52YWx1ZSgpKTsKKyAgICAgICAgICAgIGlmICghc3VnZ2VzdGlvbnMuY29udGFpbnModmFs
dWUpICYmIChlbGVtZW50KCktPnZhbHVlKCkuaXNFbXB0eSgpIHx8IHZhbHVlLmNvbnRhaW5zSWdu
b3JpbmdBU0NJSUNhc2UoZWxlbWVudCgpLT52YWx1ZSgpKSkpCisgICAgICAgICAgICAgICAgc3Vn
Z2VzdGlvbnMuYXBwZW5kKHZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBz
dWdnZXN0aW9uczsKK30KKwordm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmRpZFNlbGVjdERhdGFM
aXN0T3B0aW9uKGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRPcHRpb24pCit7CisgICAgZWxlbWVudCgp
LT5zZXRWYWx1ZShzZWxlY3RlZE9wdGlvbiwgRGlzcGF0Y2hJbnB1dEFuZENoYW5nZUV2ZW50KTsK
K30KKwordm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmRpZENsb3NlU3VnZ2VzdGlvbnMoKQorewor
ICAgIG1fc3VnZ2VzdGlvblBpY2tlciA9IG51bGxwdHI7Cit9CisKK3ZvaWQgVGV4dEZpZWxkSW5w
dXRUeXBlOjpkaXNwbGF5U3VnZ2VzdGlvbnMoRGF0YUxpc3RTdWdnZXN0aW9uQWN0aXZhdGlvblR5
cGUgdHlwZSkKK3sKKyAgICBpZiAoZWxlbWVudCgpLT5pc0Rpc2FibGVkRm9ybUNvbnRyb2woKSB8
fCAhZWxlbWVudCgpLT5yZW5kZXJlcigpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIVVz
ZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKCFtX3N1Z2dlc3Rpb25QaWNrZXIgJiYgc3VnZ2VzdGlvbnMoKS5zaXpl
KCkgPiAwKQorICAgICAgICBtX3N1Z2dlc3Rpb25QaWNrZXIgPSBjaHJvbWUoKS0+Y3JlYXRlRGF0
YUxpc3RTdWdnZXN0aW9uUGlja2VyKCp0aGlzKTsKKworICAgIGlmICghbV9zdWdnZXN0aW9uUGlj
a2VyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3N1Z2dlc3Rpb25QaWNrZXItPmRpc3BsYXlX
aXRoQWN0aXZhdGlvblR5cGUodHlwZSk7Cit9CisKK3ZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpj
bG9zZVN1Z2dlc3Rpb25zKCkKK3sKKyAgICBpZiAobV9zdWdnZXN0aW9uUGlja2VyKQorICAgICAg
ICBtX3N1Z2dlc3Rpb25QaWNrZXItPmNsb3NlKCk7Cit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElu
cHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuaAppbmRl
eCBhODk1NGI1YTMxMTBlODllZjZiZGFlZDRjYzZjOWVlZDAyYzMwNjM0Li4zNDA4MWJiNzk5NzI0
Y2QyY2M2OTE3MGU0M2E3YjRiZDUyYjZlOTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RleHRGaWVsZElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZp
ZWxkSW5wdXRUeXBlLmgKQEAgLTMyLDYgKzMyLDggQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSAiQXV0b0ZpbGxCdXR0b25FbGVtZW50LmgiCisjaW5jbHVkZSAiRGF0YUxpc3RTdWdnZXN0aW9u
UGlja2VyLmgiCisjaW5jbHVkZSAiRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudC5oIgogI2luY2x1
ZGUgIklucHV0VHlwZS5oIgogI2luY2x1ZGUgIlNwaW5CdXR0b25FbGVtZW50LmgiCiAKQEAgLTQy
LDEyICs0NCwxOSBAQCBjbGFzcyBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ7CiAKIC8vIFRo
ZSBjbGFzcyByZXByZXNlbnRzIHR5cGVzIG9mIHdoaWNoIFVJIGNvbnRhaW4gdGV4dCBmaWVsZHMu
CiAvLyBJdCBzdXBwb3J0cyBub3Qgb25seSB0aGUgdHlwZXMgZm9yIEJhc2VUZXh0SW5wdXRUeXBl
IGJ1dCBhbHNvIHR5cGU9bnVtYmVyLgotY2xhc3MgVGV4dEZpZWxkSW5wdXRUeXBlIDogcHVibGlj
IElucHV0VHlwZSwgcHJvdGVjdGVkIFNwaW5CdXR0b25FbGVtZW50OjpTcGluQnV0dG9uT3duZXIs
IHByb3RlY3RlZCBBdXRvRmlsbEJ1dHRvbkVsZW1lbnQ6OkF1dG9GaWxsQnV0dG9uT3duZXIgewor
Y2xhc3MgVGV4dEZpZWxkSW5wdXRUeXBlIDogcHVibGljIElucHV0VHlwZSwgcHJvdGVjdGVkIFNw
aW5CdXR0b25FbGVtZW50OjpTcGluQnV0dG9uT3duZXIsIHByb3RlY3RlZCBBdXRvRmlsbEJ1dHRv
bkVsZW1lbnQ6OkF1dG9GaWxsQnV0dG9uT3duZXIKKyNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVO
VCkKKyAgICAsIHByaXZhdGUgRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudAorI2VuZGlmCit7CiBw
cm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgVGV4dEZpZWxkSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQmKTsKICAgICB2aXJ0dWFsIH5UZXh0RmllbGRJbnB1dFR5cGUoKTsKICAgICB2b2lkIGhhbmRs
ZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBoYW5kbGVL
ZXlkb3duRXZlbnRGb3JTcGluQnV0dG9uKEtleWJvYXJkRXZlbnQmKTsKKyNpZiBFTkFCTEUoREFU
QUxJU1RfRUxFTUVOVCkKKyAgICB2b2lkIGhhbmRsZUNsaWNrRXZlbnQoTW91c2VFdmVudCYpIGZp
bmFsOworI2VuZGlmCiAKICAgICBIVE1MRWxlbWVudCogY29udGFpbmVyRWxlbWVudCgpIGNvbnN0
IGZpbmFsOwogICAgIEhUTUxFbGVtZW50KiBpbm5lckJsb2NrRWxlbWVudCgpIGNvbnN0IGZpbmFs
OwpAQCAtMTEwLDYgKzExOSwxOSBAQCBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlQ29udGFpbmVy
KCk7CiAgICAgdm9pZCBjcmVhdGVBdXRvRmlsbEJ1dHRvbihBdXRvRmlsbEJ1dHRvblR5cGUpOwog
CisjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisgICAgdm9pZCBkaXNwbGF5U3VnZ2VzdGlv
bnMoRGF0YUxpc3RTdWdnZXN0aW9uQWN0aXZhdGlvblR5cGUpOworICAgIHZvaWQgY2xvc2VTdWdn
ZXN0aW9ucygpOworCisgICAgLy8gRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudAorICAgIEludFJl
Y3QgZWxlbWVudFJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKSBjb25zdCBmaW5hbDsKKyAgICBW
ZWN0b3I8U3RyaW5nPiBzdWdnZXN0aW9ucygpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgZGlkU2Vs
ZWN0RGF0YUxpc3RPcHRpb24oY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBkaWRDbG9z
ZVN1Z2dlc3Rpb25zKCkgZmluYWw7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YUxpc3RTdWdn
ZXN0aW9uUGlja2VyPiBtX3N1Z2dlc3Rpb25QaWNrZXI7CisjZW5kaWYKKwogICAgIFJlZlB0cjxI
VE1MRWxlbWVudD4gbV9jb250YWluZXI7CiAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBtX2lubmVy
QmxvY2s7CiAgICAgUmVmUHRyPFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudD4gbV9pbm5lclRl
eHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGM2ZTVlZWVmYTYy
OTRiZjRkZDc1OTEwM2VmNTE3MTBlZDU4NDlhOGIuLjYwNTNiODc4YjJmMDQ1NDAwM2RmMTQ3MDFl
YThjYmE0ZDAzOWRhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQmFja0ZvcndhcmRDbGllbnQuaCIKICNpbmNsdWRl
ICJDb2xvckNob29zZXIuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudC5oIgorI2luY2x1
ZGUgIkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oIgogI2luY2x1ZGUgIkRhdGFiYXNlUHJvdmlk
ZXIuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50RnJhZ21lbnQuaCIKQEAgLTQyMyw2ICs0MjQsMTUgQEAgc3RkOjp1bmlxdWVfcHRyPENv
bG9yQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNo
b29zZXIKIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKworc3RkOjp1
bmlxdWVfcHRyPERhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNy
ZWF0ZURhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcihEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50JikK
K3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworI2VuZGlmCisKIHZvaWQgRW1wdHlDaHJvbWVD
bGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJikKIHsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCBlMjg1ZjYzOWUwZDg3YmQ1ODZkYzNmZmFkZTVm
Y2U5Yzg3ZWZjMGZjLi45ZDA1MmIwYjk1MjNmYmM4NDY2OTNmMjJkYzVmYzc4YWEzODA3NjVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0xMzIsNiArMTMyLDEwIEBAIGNs
YXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNs
aWVudCYsIGNvbnN0IENvbG9yJikgZmluYWw7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBTElT
VF9FTEVNRU5UKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI+
IGNyZWF0ZURhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcihEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50
JikgZmluYWw7CisjZW5kaWYKKwogICAgIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lJiwgRmlsZUNo
b29zZXImKSBmaW5hbDsKICAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0
cmluZz4mLCBGaWxlSWNvbkxvYWRlciYpIGZpbmFsIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAK
aW5kZXggNzcwYTk2YjEwMDNiMjMzOTAyNDMwZDlmZDIwZjY0NWJkNmUzMDM2OS4uZmY2OWVkZWYx
YzAwODZiNjNiYzU1ZDIzNGIxY2YyNjJiNTU5ZWRmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApA
QCAtNTYsNiArNTYsMTAgQEAKICNpbmNsdWRlICJDb2xvckNob29zZXIuaCIKICNlbmRpZgogCisj
aWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisjaW5jbHVkZSAiRGF0YUxpc3RTdWdnZXN0aW9u
UGlja2VyLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3Bh
Y2UgSFRNTE5hbWVzOwpAQCAtNDIyLDYgKzQyNiwxNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JD
aG9vc2VyPiBDaHJvbWU6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQmIGNs
aQogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQorCitzdGQ6OnVuaXF1
ZV9wdHI8RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyPiBDaHJvbWU6OmNyZWF0ZURhdGFMaXN0U3Vn
Z2VzdGlvblBpY2tlcihEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50JiBjbGllbnQpCit7CisgICAg
bm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7CisgICAgcmV0dXJuIG1fY2xpZW50LmNyZWF0
ZURhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcihjbGllbnQpOworfQorCisjZW5kaWYKKwogdm9pZCBD
aHJvbWU6OnJ1bk9wZW5QYW5lbChGcmFtZSYgZnJhbWUsIEZpbGVDaG9vc2VyJiBmaWxlQ2hvb3Nl
cikKIHsKICAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5o
CmluZGV4IDIxNzRjYmUxMjZkZjVmMzRjMDIzMjk3MjZmYWY2MjVkNmEyMTExMzUuLmNjYmNlOTM1
NTZlYTk0YjVjMTEwYzVkYzM1N2MzNWQ5ODgzMWE5ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaApAQCAt
MzcsNiArMzcsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDaHJvbWVDbGllbnQ7CiBj
bGFzcyBDb2xvckNob29zZXI7CiBjbGFzcyBDb2xvckNob29zZXJDbGllbnQ7CitjbGFzcyBEYXRh
TGlzdFN1Z2dlc3Rpb25QaWNrZXI7CitjbGFzcyBEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50Owog
Y2xhc3MgRGF0ZVRpbWVDaG9vc2VyOwogY2xhc3MgRGF0ZVRpbWVDaG9vc2VyQ2xpZW50OwogY2xh
c3MgRmlsZUNob29zZXI7CkBAIC0xNTIsNiArMTU0LDEwIEBAIHB1YmxpYzoKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xp
ZW50JiwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShE
QVRBTElTVF9FTEVNRU5UKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhTGlzdFN1Z2dlc3Rpb25Q
aWNrZXI+IGNyZWF0ZURhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcihEYXRhTGlzdFN1Z2dlc3Rpb25z
Q2xpZW50Jik7CisjZW5kaWYKKwogICAgIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lJiwgRmlsZUNo
b29zZXImKTsKICAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
LCBGaWxlSWNvbkxvYWRlciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBl
MjQyMjM3MGU3ZWRlZjQ0NTllZGVmMDA5MWIxZWY2ZGZiM2VmYmQyLi5iZWEwZDhmNGNiOGFkMzRi
MWU5OTZlYmYzMThjZmZiMGZiOTY4YmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
QEAgLTY4LDYgKzY4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQWNjZXNzaWJpbGl0
eU9iamVjdDsKIGNsYXNzIENvbG9yQ2hvb3NlcjsKIGNsYXNzIENvbG9yQ2hvb3NlckNsaWVudDsK
K2NsYXNzIERhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcjsKK2NsYXNzIERhdGFMaXN0U3VnZ2VzdGlv
bnNDbGllbnQ7CiBjbGFzcyBEYXRlVGltZUNob29zZXI7CiBjbGFzcyBEYXRlVGltZUNob29zZXJD
bGllbnQ7CiBjbGFzcyBFbGVtZW50OwpAQCAtMjc1LDYgKzI3NywxMCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIo
Q29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3QgQ29sb3ImKSA9IDA7CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShEQVRBTElTVF9FTEVNRU5UKQorICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPERhdGFM
aXN0U3VnZ2VzdGlvblBpY2tlcj4gY3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKERhdGFM
aXN0U3VnZ2VzdGlvbnNDbGllbnQmKSA9IDA7CisjZW5kaWYKKwogICAgIHZpcnR1YWwgdm9pZCBy
dW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3NlciYpID0gMDsKICAgICAvLyBBc3luY2hyb25v
dXMgcmVxdWVzdCB0byBsb2FkIGFuIGljb24gZm9yIHNwZWNpZmllZCBmaWxlbmFtZXMuCiAgICAg
dmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxl
SWNvbkxvYWRlciYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Rh
dGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0YUxp
c3RTdWdnZXN0aW9uUGlja2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWNlMTkyYWU5MGZjYzkxYzlhNTQ5YzAw
ODllNTIxMjQ5YzBlMjMzYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0RhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQorCisjaW1w
b3J0ICJEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oIgorI2ltcG9ydCAiSW50UmVjdC5o
IgorCisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIgeworcHVibGljOgorICAgIHZpcnR1
YWwgfkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcigpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwg
dm9pZCBjbG9zZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVLZXlkb3duV2l0aElkZW50
aWZpZXIoY29uc3QgU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpc3BsYXlXaXRoQWN0
aXZhdGlvblR5cGUoRGF0YUxpc3RTdWdnZXN0aW9uQWN0aXZhdGlvblR5cGUpIHsgfQorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0RhdGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0RhdGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYmY1YzZi
MGNjMzUwMTRiODU4ODE2MmJmNmIwYzNhZmIyNDIyYjY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudC5oCkBAIC0wLDAg
KzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShEQVRBTElT
VF9FTEVNRU5UKQorCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xp
ZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5EYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50KCkg
PSBkZWZhdWx0OworCisgICAgdmlydHVhbCBJbnRSZWN0IGVsZW1lbnRSZWN0SW5Sb290Vmlld0Nv
b3JkaW5hdGVzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gc3VnZ2Vz
dGlvbnMoKSBjb25zdCA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU2VsZWN0RGF0YUxpc3RP
cHRpb24oY29uc3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZVN1Z2dl
c3Rpb25zKCkgPSAwOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEFMSVNUX0VMRU1F
TlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAyZDMxMTc1NGMyMTJlYjNiYjBjYjI0MWZmNjlmNmYyM2FlZGM4NGE0Li5mYWQ5M2RlZDhk
YWZjYTA3MzFlMTUxZTFhYWJiYTc4MTU1ZjA1NzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIxNjAsNiArMjE2MCw4IEBACiAJCUU0
OUQ0MEQ5MUFEM0ZCMjEwMDY2QjdCOSAvKiBOZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlENDBEODFBRDNG
QjIxMDA2NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuY3BwICovOyB9OwogCQlFNEU4
NjQ5MjFCMTY3NTAxMDBDODJGNDAgLyogVmVyc2lvbkNoZWNrcy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RTg2NDhGMUIxNjczRkIwMEM4MkY0MCAv
KiBWZXJzaW9uQ2hlY2tzLm1tICovOyB9OwogCQlFNEU4NjQ5MzFCMTY3NTA3MDBDODJGNDAgLyog
VmVyc2lvbkNoZWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTRFODY0OEUxQjE2NzNGQjAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3MuaCAqLzsgfTsK
KwkJRTUyQ0Y1NTIyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUyQ0Y1
NTAyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oICovOyB9
OworCQlFNTJDRjU1MzIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlj
a2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1
MkNGNTUxMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuY3Bw
ICovOyB9OwogCQlFQ0E2ODBEODFFNjkwRTI1MDA3MzFEMjAgLyogV2ViUHJvY2Vzc0NvY29hLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQ0E2ODBENzFF
NjkwREY4MDA3MzFEMjAgLyogV2ViUHJvY2Vzc0NvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRUQ4MkE3RjIxMjhDNkZBRjAwNDQ3N0IzIC8q
IFdLQnVuZGxlUGFnZU92ZXJsYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFBMjJGMEZGMTI4OUZDRDkwMDg1RTc0RiAvKiBXS0J1bmRsZVBhZ2VPdmVy
bGF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RURDQTcxQjcxMjhEREE4QzAwMjAxQjI2IC8qIFdLQnVuZGxlUGFnZU92ZXJsYXkuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyMkYxMDAxMjg5RkNE
OTAwODVFNzRGIC8qIFdLQnVuZGxlUGFnZU92ZXJsYXkuY3BwICovOyB9OwpAQCAtNDcwNiw2ICs0
NzA4LDggQEAKIAkJRTQ5RDQwRDgxQUQzRkIyMTAwNjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JT
dG9yYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtD
YWNoZUJsb2JTdG9yYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRFODY0
OEUxQjE2NzNGQjAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVmVyc2lvbkNoZWNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFNEU4NjQ4RjFCMTY3M0ZCMDBDODJGNDAgLyogVmVyc2lvbkNoZWNrcy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZlcnNpb25DaGVja3MubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1MkNGNTUwMjBBMzVDM0EwMERBREEyNyAvKiBXZWJE
YXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGF0YUxpc3RTdWdn
ZXN0aW9uUGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1MkNGNTUxMjBB
MzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRUNBNjgwRDMxRTY5MDRCNTAwNzMxRDIwIC8qIEV4dHJhUHJpdmF0
ZVN5bWJvbHNGb3JUQVBJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4dHJh
UHJpdmF0ZVN5bWJvbHNGb3JUQVBJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVD
QTY4MEQ3MUU2OTBERjgwMDczMUQyMCAvKiBXZWJQcm9jZXNzQ29jb2EuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViUHJvY2Vzc0NvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVDQkZD
MURCMUU2QTRENjYwMDAzMDBDNyAvKiBFeHRyYVB1YmxpY1N5bWJvbHNGb3JUQVBJLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEV4dHJhUHVibGljU3ltYm9sc0ZvclRBUEkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTcxMzMsNiArNzEzNyw4IEBACiAJCQkJM0Y4N0I5QkIxNTg5M0Y2MzAwOTBG
RjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oICovLAogCQkJCUJDMTExQTU0MTEyRjRGQkIwMDMzN0JB
QiAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5jcHAgKi8sCiAJCQkJQkMwMzJENjIxMEY0Mzc4RDAw
NThDMTVBIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50LmggKi8sCisJCQkJRTUyQ0Y1NTEyMEEzNUMz
QTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHAgKi8sCisJCQkJRTUy
Q0Y1NTAyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oICov
LAogCQkJCUNEMTlBMjY5MUExM0U4MjAwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5jcHAgKi8sCiAJCQkJQ0QxOUEyNkExQTEzRTgyMTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmggKi8sCiAJCQkJQkMxMTFBNTYxMTJGNEZCQjAwMzM3QkFCIC8qIFdl
YkRyYWdDbGllbnQuY3BwICovLApAQCAtOTMwMyw2ICs5MzA5LDcgQEAKIAkJCQk1NzYwODI5RDIw
MkQyQzQwMDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTc2MDgyOUYyMDJEMkM0NjAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxz
TWVzc2VuZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBODNGNkQxQTVC
NjNGRjAwMDI2RUM2IC8qIFdlYkRhdGFiYXNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUU1MkNGNTUyMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUNEMTlBMjZFMUExM0U4MzQwMDhENjUwRSAvKiBXZWJEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1QjFDNTUxODk4N0VE
RjAwNEZDRjlCIC8qIFdlYkRvY3VtZW50TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAz
MkQ3QjEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRHJhZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0xMTEzMyw2ICsxMTE0MCw3IEBACiAJCQkJNTc2MDgyOTgyMDJCRDhCQTAwMTE2Njc4IC8qIFdl
YkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTc2MDgy
OUUyMDJEMkM0MzAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBODNGNkMxQTVCNjNGRjAwMDI2RUM2
IC8qIFdlYkRhdGFiYXNlUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTUyQ0Y1NTMy
MEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlDRDE5QTI2RDFBMTNFODJBMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE1QjFDNTQxODk4N0VERjAwNEZD
RjlCIC8qIFdlYkRvY3VtZW50TG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTExQTVE
MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJEcmFnQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAppbmRleCA2NGVmNjNlMTFjNzJlNTg0NTJmY2FkN2VhY2RiNDU4MDFi
MzMzMzViLi4wYzk1NWY2NzcxYmVjY2JlNTY4ZjAyNDI0NzlmMTYzMDFmNWQxZjRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIlVzZXJEYXRhLmgi
CiAjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmgiCiAjaW5j
bHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZUxvYWRlckNsaWVudC5oIgogI2lu
Y2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgiCkBAIC01Nyw2ICs1OCw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
QVhPYmplY3RDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JDaG9vc2VyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9EYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0RhdGFiYXNlVHJhY2tlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+CkBAIC03ODksNiArNzkxLDE1IEBA
IHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29s
b3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFMSVNU
X0VMRU1FTlQpCisKK3N0ZDo6dW5pcXVlX3B0cjxEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI+IFdl
YkNocm9tZUNsaWVudDo6Y3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKERhdGFMaXN0U3Vn
Z2VzdGlvbnNDbGllbnQmIGNsaWVudCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxX
ZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI+KCZtX3BhZ2UsICZjbGllbnQpOworfQorCisjZW5k
aWYKKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSYgZnJhbWUsIEZp
bGVDaG9vc2VyJiBmaWxlQ2hvb3NlcikKIHsKICAgICBpZiAobV9wYWdlLmFjdGl2ZU9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNTg0NmFlM2M0YmMyMDVk
YTkzMDc5YTQ3ZTlmMmU3M2M4MDNkNWU2Yi4uODExYTgyMmM5NDUzNDM2NmE3NTAzMTExNWU5YTBm
YWE5M2Y0MjdkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTQ4LDYgKzE0OCwxMCBAQCBwcml2
YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb2xvckNob29zZXI+IGNyZWF0ZUNv
bG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXJDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpD
b2xvciYpIGZpbmFsOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyPiBjcmVh
dGVEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIoV2ViQ29yZTo6RGF0YUxpc3RTdWdnZXN0aW9uc0Ns
aWVudCYpIGZpbmFsOworI2VuZGlmCisKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAg
ICB2b2lkIGRpZFByZXZlbnREZWZhdWx0Rm9yRXZlbnQoKSBmaW5hbDsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFMaXN0
U3VnZ2VzdGlvblBpY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODQ0NTI3
MWNhZjMzN2UyMzg1MWYyYjNkNGZlMGEzYjgyNmJhOTk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFMaXN0U3VnZ2VzdGlv
blBpY2tlci5jcHAKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCIKKworI2lmIEVO
QUJMRShEQVRBTElTVF9FTEVNRU5UKQorCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUg
IldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudC5oPgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkRhdGFMaXN0U3VnZ2VzdGlv
blBpY2tlcjo6V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKFdlYlBhZ2UqIHBhZ2UsIERhdGFM
aXN0U3VnZ2VzdGlvbnNDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fZGF0YUxpc3RTdWdnZXN0aW9u
c0NsaWVudChjbGllbnQpCisgICAgLCBtX3BhZ2UocGFnZSkKK3sKK30KKworV2ViRGF0YUxpc3RT
dWdnZXN0aW9uUGlja2VyOjp+V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKCkgeyB9CisKK3Zv
aWQgV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOjpoYW5kbGVLZXlkb3duV2l0aElkZW50aWZp
ZXIoY29uc3QgV1RGOjpTdHJpbmcmIGtleSkKK3sKKworfQorCit2b2lkIFdlYkRhdGFMaXN0U3Vn
Z2VzdGlvblBpY2tlcjo6ZGlkU2VsZWN0T3B0aW9uKGNvbnN0IFdURjo6U3RyaW5nJiBzZWxlY3Rl
ZE9wdGlvbikKK3sKKworfQorCit2b2lkIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcjo6ZGlk
Q2xvc2VTdWdnZXN0aW9ucygpCit7CisKK30KKwordm9pZCBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25Q
aWNrZXI6OmNsb3NlKCkKK3sKKworfQorCit2b2lkIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tl
cjo6ZGlzcGxheVdpdGhBY3RpdmF0aW9uVHlwZShEYXRhTGlzdFN1Z2dlc3Rpb25BY3RpdmF0aW9u
VHlwZSB0eXBlKQoreworCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRh
TGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNWIzODE4
MDIyZTEyMDBlYThjZWRkMTEwYTI0Y2E0ZTAyNmMwMDQyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFMaXN0U3VnZ2VzdGlv
blBpY2tlci5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQorCisjaW5jbHVkZSA8V2ViQ29yZS9EYXRhTGlz
dFN1Z2dlc3Rpb25QaWNrZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudDsKK30K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdlYkRhdGFM
aXN0U3VnZ2VzdGlvblBpY2tlciA6IHB1YmxpYyBXZWJDb3JlOjpEYXRhTGlzdFN1Z2dlc3Rpb25Q
aWNrZXIgeworcHVibGljOgorICAgIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcihXZWJQYWdl
KiwgV2ViQ29yZTo6RGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudCopOworICAgIHZpcnR1YWwgfldl
YkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcigpOworCisgICAgdm9pZCBoYW5kbGVLZXlkb3duV2l0
aElkZW50aWZpZXIoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRTZWxlY3RP
cHRpb24oY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBkaWRDbG9zZVN1Z2dlc3Rpb25zKCk7Cisg
ICAgdm9pZCBjbG9zZSgpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGxheVdpdGhBY3RpdmF0aW9u
VHlwZShXZWJDb3JlOjpEYXRhTGlzdFN1Z2dlc3Rpb25BY3RpdmF0aW9uVHlwZSkgb3ZlcnJpZGU7
Citwcml2YXRlOgorICAgIF9fdW51c2VkIFdlYkNvcmU6OkRhdGFMaXN0U3VnZ2VzdGlvbnNDbGll
bnQqIG1fZGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudDsKKyAgICBfX3VudXNlZCBXZWJQYWdlKiBt
X3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDk3MDNkNDk3NmMxZmM5
MjU0ODgyM2U2ZThiZjU4NDFhY2U1ZTU5ZjcuLjc2MjVlMzIyMmEyODIyZTczZDIyMWY3ZGI4ZDgw
YWZhMTliMjRjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCkBAIC03Niw2ICs3Niw3IEBACiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnUuaCIKICNp
bmNsdWRlICJXZWJDb250ZXh0TWVudUNsaWVudC5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgorI2luY2x1ZGUgIldlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oIgogI2lu
Y2x1ZGUgIldlYkRhdGFiYXNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIldlYkRvY3VtZW50TG9hZGVyLmgiCkBAIC0zNTU4LDYg
KzM1NTksMjYgQEAgdm9pZCBXZWJQYWdlOjpkaWRDaG9vc2VDb2xvcihjb25zdCBXZWJDb3JlOjpD
b2xvciYgY29sb3IpCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisK
K3ZvaWQgV2ViUGFnZTo6c2V0QWN0aXZlRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKFdlYkRhdGFM
aXN0U3VnZ2VzdGlvblBpY2tlciogZGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKQoreworICAgIG1f
YWN0aXZlRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyID0gZGF0YUxpc3RTdWdnZXN0aW9uUGlja2Vy
OworfQorCit2b2lkIFdlYlBhZ2U6OmRpZFNlbGVjdERhdGFMaXN0T3B0aW9uKGNvbnN0IFN0cmlu
ZyYgc2VsZWN0ZWRPcHRpb24pCit7CisgICAgbV9hY3RpdmVEYXRhTGlzdFN1Z2dlc3Rpb25QaWNr
ZXItPmRpZFNlbGVjdE9wdGlvbihzZWxlY3RlZE9wdGlvbik7Cit9CisKK3ZvaWQgV2ViUGFnZTo6
ZGlkQ2xvc2VTdWdnZXN0aW9ucygpCit7CisgICAgbV9hY3RpdmVEYXRhTGlzdFN1Z2dlc3Rpb25Q
aWNrZXItPmRpZENsb3NlU3VnZ2VzdGlvbnMoKTsKKyAgICBtX2FjdGl2ZURhdGFMaXN0U3VnZ2Vz
dGlvblBpY2tlciA9IG51bGxwdHI7Cit9CisKKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2U6OnNldEFj
dGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyKFJlZjxXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
cj4mJiBvcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcikKIHsKICAgICBtX2FjdGl2ZU9wZW5QYW5lbFJl
c3VsdExpc3RlbmVyID0gV1RGTW92ZShvcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMTY5OWE5MTE1N2JhYTc4
Yzg4NjJkYjYzMDc2YzA4MGNkZmY2ZTUzMy4uMzMxNTc1ZTI0M2Y3ZTVlZGVjMDk2MTkyYWNjYjc3
MGE4YjVjNzc2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aApAQCAtMTk5LDYgKzE5OSw3IEBAIGNsYXNzIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm87
CiBjbGFzcyBXZWJDb2xvckNob29zZXI7CiBjbGFzcyBXZWJDb250ZXh0TWVudTsKIGNsYXNzIFdl
YkNvbnRleHRNZW51SXRlbURhdGE7CitjbGFzcyBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI7
CiBjbGFzcyBXZWJEb2N1bWVudExvYWRlcjsKIGNsYXNzIFdlYkV2ZW50OwogY2xhc3MgV2ViRnJh
bWU7CkBAIC0zNjEsNiArMzYyLDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEVuZENvbG9yUGlj
a2VyKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQorICAgIHZvaWQg
c2V0QWN0aXZlRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBp
Y2tlciopOworICAgIHZvaWQgZGlkU2VsZWN0RGF0YUxpc3RPcHRpb24oY29uc3QgU3RyaW5nJik7
CisgICAgdm9pZCBkaWRDbG9zZVN1Z2dlc3Rpb25zKCk7CisjZW5kaWYKKwogICAgIFdlYk9wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyKiBhY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcigpIGNvbnN0
IHsgcmV0dXJuIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuZ2V0KCk7IH0KICAgICB2
b2lkIHNldEFjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyKFJlZjxXZWJPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lcj4mJik7CiAKQEAgLTE1NTEsNiArMTU1OCwxMCBAQCBwcml2YXRlOgogICAgIFdl
YkNvbG9yQ2hvb3NlciogbV9hY3RpdmVDb2xvckNob29zZXIgeyBudWxscHRyIH07CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQorICAgIFdlYkRhdGFMaXN0U3VnZ2VzdGlv
blBpY2tlciogbV9hY3RpdmVEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIgeyBudWxscHRyIH07Cisj
ZW5kaWYKKwogICAgIFJlZlB0cjxXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcj4gbV9hY3RpdmVP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKICAgICBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyPiBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KaW5kZXggN2UxNTAzMDY1YTI2YWQ2N2UzZGFhM2EzNjgyNDFjMDA2YzIxZDcwNi4u
ZmNlYmNmMmYxNzk0OGQ1ZmRkZWZhNDlkYjg1NzI2YzNhNzU5OGU4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0x
MjcsNiArMTI3LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAg
IERpZENob29zZUNvbG9yKFdlYkNvcmU6OkNvbG9yIGNvbG9yKQogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoREFUQUxJU1RfRUxFTUVOVCkKKyAgICBEaWRTZWxlY3REYXRhTGlzdE9wdGlvbihTdHJpbmcg
c2VsZWN0ZWRPcHRpb24pOworICAgIERpZENsb3NlU3VnZ2VzdGlvbnMoKTsKKyNlbmRpZgorCiAj
aWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgQ29udGV4dE1lbnVIaWRkZW4oKQogICAgIENv
bnRleHRNZW51Rm9yS2V5RXZlbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA0MjRjOTFhM2JkMjE2
ODc3MWMzM2NhMGIxYzBmZGZhMDQ0YjJiMjY0Li40MzU1YTg2NmQ2NDEwMzdiYTY3ZjFhZWRjY2Fm
YzA3ZThhYjJkOWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTM4LDYgKzEzOCwxMCBAQCBwcml2
YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb2xvckNob29zZXI+IGNyZWF0ZUNv
bG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXJDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpD
b2xvciYpIGZpbmFsOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyPiBjcmVh
dGVEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIoV2ViQ29yZTo6RGF0YUxpc3RTdWdnZXN0aW9uc0Ns
aWVudCYpIGZpbmFsOworI2VuZGlmCisKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIGJv
b2wgcmVxdWVzdFBvaW50ZXJMb2NrKCkgZmluYWw7CiAgICAgdm9pZCByZXF1ZXN0UG9pbnRlclVu
bG9jaygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IDdkNWZmNWFkNWZiNGUwMzRhOWE0
N2I1YzEyZjMzMGY3NGQ0NmZmODAuLjI4ODRkZmQ1ZmQ3YzM2YTkzYzYyMDIwYTQ0ZTdlOTVmNmY5
NzgyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTU4LDYgKzU4LDcgQEAKICNpbXBvcnQgPFdl
YkNvcmUvQ29udGV4dE1lbnUuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29udGV4dE1lbnVDb250cm9s
bGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0N1cnNvci5oPgorI2ltcG9ydCA8V2ViQ29yZS9EYXRh
TGlzdFN1Z2dlc3Rpb25QaWNrZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRGVwcmVjYXRlZEdsb2Jh
bFNldHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0VsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNv
cmUvRmlsZUNob29zZXIuaD4KQEAgLTcyMyw2ICs3MjQsMTQgQEAgc3RkOjp1bmlxdWVfcHRyPENv
bG9yQ2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9v
c2VyQ2wKIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKK3N0ZDo6dW5p
cXVlX3B0cjxEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRl
RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKERhdGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQmIGNsaWVu
dCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KyNlbmRpZgorCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKIGJvb2wgV2ViQ2hyb21lQ2xpZW50
OjpyZXF1ZXN0UG9pbnRlckxvY2soKQogewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>