<?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>142475</bug_id>
          
          <creation_ts>2015-03-09 02:23:15 -0700</creation_ts>
          <short_desc>[Content Filtering] Add tests</short_desc>
          <delta_ts>2015-03-09 16:39:32 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>128858</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1075552</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-03-09 02:23:15 -0700</bug_when>
    <thetext>[Content Filtering] Add tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075557</commentid>
    <comment_count>1</comment_count>
      <attachid>248236</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-03-09 02:56:39 -0700</bug_when>
    <thetext>Created attachment 248236
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075558</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-09 02:58:49 -0700</bug_when>
    <thetext>Attachment 248236 did not pass style-queue:


ERROR: Source/WebCore/testing/MockContentFilterSettings.cpp:48:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/testing/MockContentFilter.cpp:39:  Missing space before {  [whitespace/braces] [5]
Total errors found: 2 in 28 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075559</commentid>
    <comment_count>3</comment_count>
      <attachid>248237</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-03-09 02:59:29 -0700</bug_when>
    <thetext>Created attachment 248237
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075560</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-09 03:01:56 -0700</bug_when>
    <thetext>Attachment 248237 did not pass style-queue:


ERROR: Source/WebCore/testing/MockContentFilterSettings.cpp:48:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/testing/MockContentFilter.cpp:39:  Missing space before {  [whitespace/braces] [5]
Total errors found: 2 in 28 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075707</commentid>
    <comment_count>5</comment_count>
      <attachid>248268</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-03-09 12:19:25 -0700</bug_when>
    <thetext>Created attachment 248268
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075711</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-09 12:21:58 -0700</bug_when>
    <thetext>Attachment 248268 did not pass style-queue:


ERROR: Source/WebCore/testing/MockContentFilter.cpp:39:  Missing space before {  [whitespace/braces] [5]
Total errors found: 1 in 28 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075780</commentid>
    <comment_count>7</comment_count>
      <attachid>248268</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-03-09 15:22:05 -0700</bug_when>
    <thetext>Comment on attachment 248268
Patch

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

r=me

I didn&apos;t comment on this earlier, but classes should be marked with the WTF_MAKE_FAST_ALLOCATED macro to ensure they get allocated using WebKit&apos;s preferred allocator.

&gt; Source/WebCore/bindings/js/JSMockContentFilterSettingsCustom.cpp:43
&gt; +// Must be kept in sync with values in MockContentFilterSettings.idl.
&gt; +const uint8_t decisionPointAfterResponse = 0;
&gt; +const uint8_t decisionPointAfterAddData = 1;
&gt; +const uint8_t decisionPointAfterFinishedAddingData = 2;
&gt; +const uint8_t decisionAllow = 0;
&gt; +const uint8_t decisionBlock = 1;

It would be better if the bindings generator would spit these out as public static const class members.

&gt; Source/WebCore/testing/MockContentFilter.h:34
&gt; +class MockContentFilter final : public ContentFilter {

WTF_MAKE_NONCOPYABLE?

&gt; Source/WebCore/testing/MockContentFilter.h:40
&gt; +    static std::unique_ptr&lt;MockContentFilter&gt; create(const ResourceResponse&amp;);
&gt; +
&gt; +    explicit MockContentFilter(const ResourceResponse&amp;);

Having both a public constructor and a public construction helper is a bit awkward.
Can we hide the constructor?

&gt; Source/WebCore/testing/MockContentFilterSettings.h:34
&gt; +class MockContentFilterSettings {

WTF_MAKE_NONCOPYABLE?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075796</commentid>
    <comment_count>8</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-03-09 16:03:12 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 248268 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=248268&amp;action=review
&gt; 
&gt; r=me

Thanks!

&gt; 
&gt; I didn&apos;t comment on this earlier, but classes should be marked with the
&gt; WTF_MAKE_FAST_ALLOCATED macro to ensure they get allocated using WebKit&apos;s
&gt; preferred allocator.

Oops, I&apos;ll fix this.

&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSMockContentFilterSettingsCustom.cpp:43
&gt; &gt; +// Must be kept in sync with values in MockContentFilterSettings.idl.
&gt; &gt; +const uint8_t decisionPointAfterResponse = 0;
&gt; &gt; +const uint8_t decisionPointAfterAddData = 1;
&gt; &gt; +const uint8_t decisionPointAfterFinishedAddingData = 2;
&gt; &gt; +const uint8_t decisionAllow = 0;
&gt; &gt; +const uint8_t decisionBlock = 1;
&gt; 
&gt; It would be better if the bindings generator would spit these out as public
&gt; static const class members.

I agree! I filed &lt;https://bugs.webkit.org/show_bug.cgi?id=142512&gt;.

&gt; 
&gt; &gt; Source/WebCore/testing/MockContentFilter.h:34
&gt; &gt; +class MockContentFilter final : public ContentFilter {
&gt; 
&gt; WTF_MAKE_NONCOPYABLE?

Yup.

&gt; 
&gt; &gt; Source/WebCore/testing/MockContentFilter.h:40
&gt; &gt; +    static std::unique_ptr&lt;MockContentFilter&gt; create(const ResourceResponse&amp;);
&gt; &gt; +
&gt; &gt; +    explicit MockContentFilter(const ResourceResponse&amp;);
&gt; 
&gt; Having both a public constructor and a public construction helper is a bit
&gt; awkward.
&gt; Can we hide the constructor?

Agreed. I fixed this by making the ctor private and making std::make_unique a friend.

&gt; 
&gt; &gt; Source/WebCore/testing/MockContentFilterSettings.h:34
&gt; &gt; +class MockContentFilterSettings {
&gt; 
&gt; WTF_MAKE_NONCOPYABLE?

Not quite. I need the assignment operator in order to reset the settings. But I will delete the copy constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075808</commentid>
    <comment_count>9</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-03-09 16:39:32 -0700</bug_when>
    <thetext>Committed r181291: &lt;http://trac.webkit.org/changeset/181291&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248236</attachid>
            <date>2015-03-09 02:56:39 -0700</date>
            <delta_ts>2015-03-09 02:59:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142475-20150309025616.patch</filename>
            <type>text/plain</type>
            <size>53074</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxMDQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWVjZjQ2YmY3OTIzOTYx
Nzk5M2FlNTA3ZGUwY2FjYTJiNjU0OGU1MC4uNmI2OWI3MTgxMWExNGViZWFmM2E2MWQ2MTg0NTQy
ODhjYjQ2OGZiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDE1LTAzLTA5ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29udGVudCBGaWx0ZXJpbmdd
IEFkZCB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQyNDc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgYSBtb2NrIGNvbnRlbnQgZmlsdGVyIHRoYXQgY2FuIGJlIGNvbmZpZ3VyZWQgYnkg
d2luZG93LmludGVybmFscy4gQSB0ZXN0IGNhbiBjb250cm9sIHdoZXRoZXIgdGhlIGZpbHRlcgor
ICAgICAgICBpcyBlbmFibGVkLCB3aGF0IHRvIGRpc3BsYXkgd2hlbiBhIHBhZ2UgaXMgYmxvY2tl
ZCwgYXQgd2hhdCBwb2ludCB0aGUgYWxsb3cvYmxvY2sgZGVjaXNpb24gaXMgbWFkZSwgYW5kIHdo
YXQKKyAgICAgICAgZGVjaXNpb24gdG8gbWFrZS4KKworICAgICAgICBBZGRlZCB0ZXN0cyB0byBj
b3ZlciBhbGxvd2luZyBhbmQgYmxvY2tpbmcgY29udGVudCBhdCBlYWNoIGRlY2lzaW9uIHBvaW50
LgorCisgICAgICAgIFRlc3RzOiBjb250ZW50ZmlsdGVyaW5nL2FsbG93LWFmdGVyLWFkZC1kYXRh
Lmh0bWwKKyAgICAgICAgICAgICAgIGNvbnRlbnRmaWx0ZXJpbmcvYWxsb3ctYWZ0ZXItZmluaXNo
ZWQtYWRkaW5nLWRhdGEuaHRtbAorICAgICAgICAgICAgICAgY29udGVudGZpbHRlcmluZy9hbGxv
dy1hZnRlci1yZXNwb25zZS5odG1sCisgICAgICAgICAgICAgICBjb250ZW50ZmlsdGVyaW5nL2Js
b2NrLWFmdGVyLWFkZC1kYXRhLmh0bWwKKyAgICAgICAgICAgICAgIGNvbnRlbnRmaWx0ZXJpbmcv
YmxvY2stYWZ0ZXItZmluaXNoZWQtYWRkaW5nLWRhdGEuaHRtbAorICAgICAgICAgICAgICAgY29u
dGVudGZpbHRlcmluZy9ibG9jay1hZnRlci1yZXNwb25zZS5odG1sCisKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5tYWtlOiBBZGRlZCBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmlkbC4KKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzQ3VzdG9tLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OmRlY2lzaW9uUG9p
bnQpOiBSZXR1cm5lZCB0aGUgZGVjaXNpb24gcG9pbnQncyBKU1ZhbHVlLgorICAgICAgICAoV2Vi
Q29yZTo6SlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpzZXREZWNpc2lvblBvaW50KTogU2V0
IHRoZSBkZWNpc2lvbiBwb2ludDsgdGhyZXcgYW4gZXhjZXB0aW9uIGZvciBpbnZhbGlkIHZhbHVl
cy4KKyAgICAgICAgKFdlYkNvcmU6OkpTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6ZGVjaXNp
b24pOiBSZXR1cm5lZCB0aGUgZGVjaXNpb24ncyBKU1ZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6
SlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpzZXREZWNpc2lvbik6IFNldCB0aGUgZGVjaXNp
b247IHRocmV3IGFuIGV4Y2VwdGlvbiBmb3IgaW52YWxpZCB2YWx1ZXMuCisgICAgICAgICogcGxh
dGZvcm0vQ29udGVudEZpbHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RmlsdGVy
Ojp0eXBlcyk6IFJlbmFtZWQgZnJvbSBjb250ZW50RmlsdGVyVHlwZXMuCisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50RmlsdGVyOjpjcmVhdGVJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZW50RmlsdGVyVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpjb250ZW50Rmls
dGVyVHlwZXMpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRlbnRGaWx0ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6OmFkZFR5cGUpOiBVc2VkIHRvIHJlZ2lz
dGVyIGEgbmV3IGNvbnRlbnQgZmlsdGVyIHR5cGUuCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
RmlsdGVyOjp0eXBlKTogUmVuYW1lZCBmcm9tIGNvbnRlbnRGaWx0ZXJUeXBlLgorICAgICAgICAq
IHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmg6IE1vdmVkIGRl
ZmluaXRpb24gb2YgSEFWRV9ORV9GSUxURVJfU09VUkNFIHRvIGhlcmUuCisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNldFRv
Q29uc2lzdGVudFN0YXRlKTogQ2FsbGVkIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnJlc2V0
KCkuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OkludGVybmFscyk6IENhbGxlZCBNb2Nr
Q29udGVudEZpbHRlcjo6ZW5zdXJlSW5zdGFsbGVkKCkuCisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6Om1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MpOiBSZXR1cm5lZCBhIHJlZmVyZW5jZSB0
byBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpzaW5nbGV0b24oKS4KKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDogQWRkZWQg
YXR0cmlidXRlIG1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuCisgICAgICAgICogdGVzdGluZy9N
b2NrQ29udGVudEZpbHRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NvbnRl
bnRGaWx0ZXI6OmVuc3VyZUluc3RhbGxlZCk6IENhbGxlZCBNb2NrQ29udGVudEZpbHRlcjo6YWRk
VHlwZSgpLgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXI6OmNhbkhhbmRsZVJl
c3BvbnNlKTogUmV0dXJuZWQgd2hldGhlciBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzIGlzIGVu
YWJsZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29udGVudEZpbHRlcjo6Y3JlYXRlKTogUmV0
dXJuZWQgYSBuZXcgTW9ja0NvbnRlbnRGaWx0ZXIuCisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29u
dGVudEZpbHRlcjo6TW9ja0NvbnRlbnRGaWx0ZXIpOiBDYWxsZWQgbWF5YmVEZXRlcm1pbmVTdGF0
dXMoKS4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVyOjphZGREYXRhKTogQ29w
aWVkIGRhdGEgaW50byBtX3JlcGxhY2VtZW50RGF0YSBhbmQgY2FsbGVkIG1heWJlRGV0ZXJtaW5l
U3RhdHVzKCkuCisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29udGVudEZpbHRlcjo6ZmluaXNoZWRB
ZGRpbmdEYXRhKTogQ2FsbGVkIG1heWJlRGV0ZXJtaW5lU3RhdHVzKCkuCisgICAgICAgIChXZWJD
b3JlOjpNb2NrQ29udGVudEZpbHRlcjo6bmVlZHNNb3JlRGF0YSk6IFJldHVybmVkIHdoZXRoZXIg
bV9zdGF0dXMgZXF1YWxzIE5lZWRzTW9yZURhdGEuCisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29u
dGVudEZpbHRlcjo6ZGlkQmxvY2tEYXRhKTogUmV0dXJuZWQgd2hldGhlciBtX3N0YXR1cyBlcXVh
bHMgQmxvY2tlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVyOjpnZXRSZXBs
YWNlbWVudERhdGEpOiBSZXR1cm5lZCBhIHBvaW50ZXIgdG8gdGhlIHN0YXJ0IG9mIG1fcmVwbGFj
ZW1lbnREYXRhLgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXI6OnVuYmxvY2tI
YW5kbGVyKTogUmV0dXJuZWQgYW4gZW1wdHkgQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyLgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXI6Om1heWJlRGV0ZXJtaW5lU3RhdHVz
KTogSWYgbV9zdGF0dXMgaXMgTmVlZHNNb3JlRGF0YSBhbmQgdGhlIGN1cnJlbnQgZGVjaXNpb24g
cG9pbnQKKyAgICAgICAgZXF1YWxzIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MncyBkZWNpc2lv
biBwb2ludCwgc2V0IG1fc3RhdHVzIGFjY29yZGluZyB0byBNb2NrQ29udGVudEZpbHRlclNldHRp
bmdzJ3MKKyAgICAgICAgZGVjaXNpb24uIElmIG1fc3RhdHVzIGJlY29tZXMgQmxvY2tlZCwgY2xl
YXIgdGhlIG9yaWdpbmFsIHBhZ2UgZGF0YSBmcm9tIG1fcmVwbGFjZW1lbnREYXRhIGFuZCBjb3B5
CisgICAgICAgIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MncyBibG9ja2VkIHN0cmluZyBpbnN0
ZWFkLgorICAgICAgICAqIHRlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXIuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0
ZXIuaC4KKyAgICAgICAgKiB0ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmguCisgICAg
ICAgIChXZWJDb3JlOjpNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpzaW5nbGV0b24pOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6cmVzZXQpOiBSZXNldCBz
ZXR0aW5ncyB0byB0aGVpciBpbml0aWFsIHZhbHVlcy4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tD
b250ZW50RmlsdGVyU2V0dGluZ3M6Ok1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MpOgorICAgICAg
ICAqIHRlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5o
LgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6cmVmKTogQWRk
ZWQgYW4gZW1wdHkgaW1wbGVtZW50YXRpb24gdG8gbWFrZSB0aGUgYmluZGluZ3MgdGhpbmsgdGhp
cyBpcyBSZWZDb3VudGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXJTZXR0
aW5nczo6ZGVyZWYpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVy
U2V0dGluZ3M6OmVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXJT
ZXR0aW5nczo6c2V0RW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29udGVudEZpbHRl
clNldHRpbmdzOjpibG9ja2VkU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDb250ZW50
RmlsdGVyU2V0dGluZ3M6OnNldEJsb2NrZWRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TW9j
a0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6ZGVjaXNpb25Qb2ludCk6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpzZXREZWNpc2lvblBvaW50KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OmRlY2lzaW9uKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnNldERlY2lzaW9uKToKKyAgICAg
ICAgKiB0ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaWRsOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmguCisKIDIwMTUtMDMtMDQgIEFu
ZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb250ZW50IEZpbHRlcmlu
Z10gUmVuYW1lIENvbnRlbnRGaWx0ZXJNYWMubW0gdG8gQ29udGVudEZpbHRlci5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDliNDk0M2VkNjgwMzcxYTQ4YzExNmJhOGM3MTQy
Y2IzNzVhYzM2OWIuLjk2YjU1MjQxYWVhOGFiYTUzZDJlYmM4OTI1MmFmMjE3MmFlYzhmODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTA5LDYgKzUwOSw3IEBAIE5PTl9TVkdf
QklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmlkbCBcCiAgICAgJChXZWJDb3JlKS90ZXN0aW5nL01hbGxvY1N0YXRpc3RpY3MuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL3Rlc3RpbmcvTWVtb3J5SW5mby5pZGwgXAorICAgICQoV2ViQ29yZSkvdGVz
dGluZy9Nb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmlkbCBcCiAgICAgJChXZWJDb3JlKS90ZXN0
aW5nL1R5cGVDb252ZXJzaW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9BYnN0cmFj
dFdvcmtlci5pZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDNhNTAwZTVjMzJiZmNjODZlZjI3NmVhNzAzYWY0ZWMxOGMyYWI3
NTEuLjYwZGRiMzI2OTRkNTc0OWE4YjNlMjU2ZGIzNDE5NDg4NDIyMzQzZWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM4MDYs
MTAgKzM4MDYsMTYgQEAKIAkJQTE3QzgxMjMwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50
RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTE3QzgxMjEwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5oICovOyB9Owog
CQlBMTg4OTBBRTFBQTEzRjI1MDAyNkMzMDEgLyogUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0
ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTg4
OTBBQzFBQTEzRjI1MDAyNkMzMDEgLyogUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW0g
Ki87IH07CiAJCUExODg5MEFGMUFBMTNGMjUwMDI2QzMwMSAvKiBQYXJlbnRhbENvbnRyb2xzQ29u
dGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTE4ODkwQUQxQUExM0YyNTAwMjZDMzAxIC8qIFBhcmVudGFsQ29udHJvbHNDb250ZW50Rmls
dGVyLmggKi87IH07CisJCUExOUFFQTIxMUFBQTgwODYwMEI1MkIyNSAvKiBKU01vY2tDb250ZW50
RmlsdGVyU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExOUFFQTFFMUFBQTgwNkUwMEI1MkIyNSAvKiBKU01vY2tDb250ZW50RmlsdGVyU2V0
dGluZ3MuaCAqLzsgfTsKKwkJQTE5QUVBMjIxQUFBODA4QTAwQjUyQjI1IC8qIEpTTW9ja0NvbnRl
bnRGaWx0ZXJTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMTlBRUExRDFBQUE4MDZFMDBCNTJCMjUgLyogSlNNb2NrQ29udGVudEZpbHRl
clNldHRpbmdzLmNwcCAqLzsgfTsKIAkJQTE5RDkzNDYxQTlGRUM3MjAwQjQ2QzI0IC8qIE5FRmls
dGVyU291cmNlU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBMTlEOTM0NDFBOUZFQzcyMDBCNDZDMjQgLyogTkVGaWx0ZXJTb3VyY2VTUEkuaCAqLzsg
fTsKIAkJQTE5RDkzNDcxQTlGRUM3MjAwQjQ2QzI0IC8qIFdlYkZpbHRlckV2YWx1YXRvclNQSS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE5RDkzNDUx
QTlGRUM3MjAwQjQ2QzI0IC8qIFdlYkZpbHRlckV2YWx1YXRvclNQSS5oICovOyB9OwogCQlBMTlE
OTM0QTFBQTExQjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTlEOTM0ODFB
QTExQjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0gKi87IH07
CiAJCUExOUQ5MzRCMUFBMTFCMUUwMEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZp
bHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE5
RDkzNDkxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmgg
Ki87IH07CisJCUExQjVCMjlFMUFBQTg0NkUwMDhCNjA0MiAvKiBNb2NrQ29udGVudEZpbHRlclNl
dHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExQjVCMjlDMUFBQTg0NkUwMDhCNjA0MiAvKiBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmNw
cCAqLzsgfTsKKwkJQTFCNUIyOUYxQUFBODQ2RjAwOEI2MDQyIC8qIE1vY2tDb250ZW50RmlsdGVy
U2V0dGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExQjVCMjlEMUFBQTg0NkUwMDhCNjA0MiAvKiBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmgg
Ki87IH07CisJCUExQkY2QjgyMUFBOTZDN0QwMEFGNEE4QSAvKiBNb2NrQ29udGVudEZpbHRlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUJGNkI4
MDFBQTk2QzdEMDBBRjRBOEEgLyogTW9ja0NvbnRlbnRGaWx0ZXIuY3BwICovOyB9OworCQlBMUJG
NkI4MzFBQTk2QzdEMDBBRjRBOEEgLyogTW9ja0NvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQkY2QjgxMUFBOTZDN0QwMEFGNEE4
QSAvKiBNb2NrQ29udGVudEZpbHRlci5oICovOyB9OwogCQlBMUM3OTcxODE4ODNERDgyMDAwRjVF
MUYgLyogRE9NR2VzdHVyZUV2ZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU0RENERDE4ODBGOTAxMDAzRUVEQkIgLyog
RE9NR2VzdHVyZUV2ZW50LmggKi87IH07CiAJCUExQzc5NzE5MTg4M0RERUQwMDBGNUUxRiAvKiBE
T01Ub3VjaC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY1NERDQ0QxODgwRjg2NzAwM0VFREJCIC8qIERPTVRvdWNoLmggKi87
IH07CiAJCUExQzc5NzFBMTg4M0RFMEQwMDBGNUUxRiAvKiBET01Ub3VjaEV2ZW50LmggaW4gQ29w
eSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjU0RENDRjE4ODBGODY3MDAzRUVEQkIgLyogRE9NVG91Y2hFdmVudC5oICovOyB9OwpAQCAtMzgy
Miw2ICszODI4LDcgQEAKIAkJQTFFMTE1NDQxMzAxNUMzRDAwNTRBQzhDIC8qIERpc3RhbnRMaWdo
dFNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBMUUxMTU0MzEzMDE1QzNEMDA1NEFDOEMgLyogRGlzdGFudExpZ2h0U291cmNlLmNwcCAqLzsg
fTsKIAkJQTFFMTE1NDYxMzAxNUM0RTAwNTRBQzhDIC8qIFBvaW50TGlnaHRTb3VyY2UuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFFMTE1NDUxMzAx
NUM0RTAwNTRBQzhDIC8qIFBvaW50TGlnaHRTb3VyY2UuY3BwICovOyB9OwogCQlBMUUxMTU0ODEz
MDE1QzVEMDA1NEFDOEMgLyogU3BvdExpZ2h0U291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRTExNTQ3MTMwMTVDNUQwMDU0QUM4QyAvKiBT
cG90TGlnaHRTb3VyY2UuY3BwICovOyB9OworCQlBMUU1QjMxRjFBQUQxREE0MDA2RUJFRkIgLyog
SlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRTVCMzFEMUFBRDFEQTQwMDZFQkVGQiAvKiBK
U01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3NDdXN0b20uY3BwICovOyB9OwogCQlBMkI5MjE3MzE2
QzVDQzQyMDA0MURDRDkgLyogSW50UmVjdEV4dGVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTJCOTIxNzIxNkM1Q0M0MjAwNDFEQ0Q5IC8qIEludFJl
Y3RFeHRlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlBMzFDNEU0RDE2RTAyQUE2MDAyRjc5NTcgLyogT0VTVGV4dHVyZUhhbGZGbG9hdC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMzFDNEU0QzE2
RTAyQUE2MDAyRjc5NTcgLyogT0VTVGV4dHVyZUhhbGZGbG9hdC5jcHAgKi87IH07CiAJCUEzMUM0
RTRGMTZFMDJBQjQwMDJGNzk1NyAvKiBPRVNUZXh0dXJlSGFsZkZsb2F0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMzFDNEU0RTE2RTAyQUI0MDAyRjc5
NTcgLyogT0VTVGV4dHVyZUhhbGZGbG9hdC5oICovOyB9OwpAQCAtMTEwMzksMTAgKzExMDQ2LDE3
IEBACiAJCUExN0M4MTIxMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTEVsZW1lbnRGYWN0b3J5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExODg5MEFDMUFBMTNGMjUwMDI2QzMwMSAvKiBQ
YXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMTg4OTBBRDFBQTEzRjI1MDAyNkMzMDEgLyogUGFyZW50
YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTE5QUVBMUMxQUFBN0M0OTAwQjUyQjI1IC8qIE1vY2tDb250ZW50RmlsdGVyU2V0
dGluZ3MuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBMTlBRUExRDFBQUE4MDZFMDBCNTJCMjUgLyogSlNNb2NrQ29u
dGVudEZpbHRlclNldHRpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUExOUFFQTFFMUFBQTgwNkUwMEI1MkIyNSAvKiBKU01vY2tDb250ZW50RmlsdGVy
U2V0dGluZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNb2NrQ29udGVu
dEZpbHRlclNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExOUQ5MzQ0
MUE5RkVDNzIwMEI0NkMyNCAvKiBORUZpbHRlclNvdXJjZVNQSS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBORUZpbHRlclNvdXJjZVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBMTlEOTM0NTFBOUZFQzcyMDBCNDZDMjQgLyogV2ViRmlsdGVyRXZhbHVhdG9y
U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZpbHRlckV2YWx1YXRv
clNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTlEOTM0ODFBQTExQjFFMDBC
NDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE5RDkzNDkxQUExMUIxRTAwQjQ2QzI0
IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUExQjVCMjlDMUFBQTg0NkUwMDhCNjA0MiAvKiBNb2NrQ29udGVu
dEZpbHRlclNldHRpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBMUI1QjI5RDFBQUE4NDZFMDA4QjYwNDIgLyogTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5n
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2NrQ29udGVudEZpbHRlclNl
dHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExQkY2QjgwMUFBOTZDN0Qw
MEFGNEE4QSAvKiBNb2NrQ29udGVudEZpbHRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBNb2NrQ29udGVudEZpbHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUExQkY2QjgxMUFBOTZDN0QwMEFGNEE4QSAvKiBNb2NrQ29udGVudEZpbHRlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2NrQ29udGVudEZpbHRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUM3OTcxQzE4ODNFNTFGMDAwRjVFMUYgLyog
RE9NSFRNTFRleHRBcmVhRWxlbWVudFByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRE9NSFRNTFRleHRBcmVhRWxlbWVudFByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTFDN0ZBQTExMzNBNUQzNTAwRDY3MzJEIC8qIEpTWFBhdGhSZXN1bHRD
dXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNYUGF0aFJl
c3VsdEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExREU3MTJCMTg2
MTJBQzEwMDczNDE5MiAvKiBUb3VjaEV2ZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBUb3VjaEV2ZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xMTA1MCw2ICsxMTA2NCw3IEBACiAJCUExRTExNTQzMTMwMTVDM0QwMDU0QUM4QyAvKiBE
aXN0YW50TGlnaHRTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gRGlzdGFudExpZ2h0U291cmNlLmNwcDsgcGF0aCA9IGZpbHRlcnMvRGlzdGFudExpZ2h0U291
cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFFMTE1NDUxMzAxNUM0RTAw
NTRBQzhDIC8qIFBvaW50TGlnaHRTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gUG9pbnRMaWdodFNvdXJjZS5jcHA7IHBhdGggPSBmaWx0ZXJzL1BvaW50TGln
aHRTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUUxMTU0NzEzMDE1
QzVEMDA1NEFDOEMgLyogU3BvdExpZ2h0U291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFNwb3RMaWdodFNvdXJjZS5jcHA7IHBhdGggPSBmaWx0ZXJzL1Nwb3RM
aWdodFNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExRTVCMzFEMUFB
RDFEQTQwMDZFQkVGQiAvKiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3NDdXN0b20uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNb2NrQ29udGVudEZpbHRlclNl
dHRpbmdzQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTIwOEUyMjJB
NTZBMEM3NTc1RjJBNzJFIC8qIFJlbmRlck1hdGhNTE1lbmNsb3NlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFJlbmRlck1hdGhNTE1lbmNsb3NlLmg7IHBhdGggPSByZW5kZXJp
bmcvbWF0aG1sL1JlbmRlck1hdGhNTE1lbmNsb3NlLmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9P
VDsgfTsKIAkJQTJCOTIxNzIxNkM1Q0M0MjAwNDFEQ0Q5IC8qIEludFJlY3RFeHRlbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50UmVjdEV4dGVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBMzFDNEU0QzE2RTAyQUE2MDAyRjc5NTcgLyogT0VTVGV4dHVy
ZUhhbGZGbG9hdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBPRVNU
ZXh0dXJlSGFsZkZsb2F0LmNwcDsgcGF0aCA9IGNhbnZhcy9PRVNUZXh0dXJlSGFsZkZsb2F0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NzExLDYgKzE1NzI2LDExIEBACiAJ
CQkJQ0Q1MzkzQ0MxNzVEQ0NFNjAwQzA3MTIzIC8qIE1lbW9yeUluZm8uaWRsICovLAogCQkJCUNE
QzI2QjNDMTYwQTYyQjAwMDI2NzU3QiAvKiBNb2NrQ0RNLmNwcCAqLywKIAkJCQlDREMyNkIzRDE2
MEE2MkIwMDAyNjc1N0IgLyogTW9ja0NETS5oICovLAorCQkJCUExQkY2QjgwMUFBOTZDN0QwMEFG
NEE4QSAvKiBNb2NrQ29udGVudEZpbHRlci5jcHAgKi8sCisJCQkJQTFCRjZCODExQUE5NkM3RDAw
QUY0QThBIC8qIE1vY2tDb250ZW50RmlsdGVyLmggKi8sCisJCQkJQTFCNUIyOUMxQUFBODQ2RTAw
OEI2MDQyIC8qIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuY3BwICovLAorCQkJCUExQjVCMjlE
MUFBQTg0NkUwMDhCNjA0MiAvKiBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmggKi8sCisJCQkJ
QTE5QUVBMUMxQUFBN0M0OTAwQjUyQjI1IC8qIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaWRs
ICovLAogCQkJCTJEQUFFMzJDMTlEQ0FGNjAwMEUwMDJEMiAvKiBNb2NrUGFnZU92ZXJsYXlDbGll
bnQuY3BwICovLAogCQkJCTJEQUFFMzJEMTlEQ0FGNjAwMEUwMDJEMiAvKiBNb2NrUGFnZU92ZXJs
YXlDbGllbnQuaCAqLywKIAkJCQlFQjA4MUNEODE2OTYwODQ0MDA1NTM3MzAgLyogVHlwZUNvbnZl
cnNpb25zLmggKi8sCkBAIC0xNTczMyw2ICsxNTc1Myw4IEBACiAJCQkJQTdCNEVBNjkxNEM5MzQ4
NDAwQzhGNUJGIC8qIEpTTWFsbG9jU3RhdGlzdGljcy5oICovLAogCQkJCUNENTM5M0QxMTc1RTAx
ODYwMEMwNzEyMyAvKiBKU01lbW9yeUluZm8uY3BwICovLAogCQkJCUNENTM5M0QyMTc1RTAxODYw
MEMwNzEyMyAvKiBKU01lbW9yeUluZm8uaCAqLywKKwkJCQlBMTlBRUExRDFBQUE4MDZFMDBCNTJC
MjUgLyogSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmNwcCAqLywKKwkJCQlBMTlBRUExRTFB
QUE4MDZFMDBCNTJCMjUgLyogSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmggKi8sCiAJCQkJ
RUJGNTEyMUExNjk2NDk2QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmNwcCAqLywKIAkJ
CQlFQkY1MTIxQjE2OTY0OTZDMDA1NkJEMjUgLyogSlNUeXBlQ29udmVyc2lvbnMuaCAqLywKIAkJ
CSk7CkBAIC0yMTE0MCw2ICsyMTE2Miw3IEBACiAJCQkJNDEwQjdFNzExMDQ1RkFCMDAwRDgyMjRG
IC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlFMUFERUQ0NjBFNzZCOEREMDA0
QTFBNUUgLyogSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAgKi8sCiAJCQkJNDFGNTg0QzYxMDQ2NTJD
QjAwOUNBQTY0IC8qIEpTTWVzc2FnZVBvcnRDdXN0b20uaCAqLywKKwkJCQlBMUU1QjMxRDFBQUQx
REE0MDA2RUJFRkIgLyogSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzQ3VzdG9tLmNwcCAqLywK
IAkJCQlDNkYwOTE3RTE0M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9t
LmNwcCAqLywKIAkJCQlCQ0Q5QzI1RjBDMTdBQTY3MDA1QzkwQTIgLyogSlNOYW1lZE5vZGVNYXBD
dXN0b20uY3BwICovLAogCQkJCTA3Mzc5NEU3MTlFRTMzNUMwMEU1QTA0NSAvKiBKU05hdmlnYXRv
ckN1c3RvbS5jcHAgKi8sCkBAIC0yMzQ3OSwxNSArMjM1MDIsMTggQEAKIAkJCWZpbGVzID0gKAog
CQkJCTQxN0RBNkRBMTM3MzRFNkUwMDdDNTdGQiAvKiBJbnRlcm5hbHMuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE3QkY3RUUwMTRDOTE3NUEwMDE0NDg5RCAvKiBJbnRlcm5hbFNldHRpbmdzLmggaW4g
SGVhZGVycyAqLywKKwkJCQlBMUI1QjI5RjFBQUE4NDZGMDA4QjYwNDIgLyogTW9ja0NvbnRlbnRG
aWx0ZXJTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTNFMjlFNUYxNjdBOEExOTAwNTg2
RDNEIC8qIEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
N0RBNzFFMTM3MzVERkEwMDdDNTdGQiAvKiBKU0ludGVybmFscy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTc0MEI1QTUxNEM5MzVBQjAwQTc3RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTNFRDNGREYxNjdBODhFNzAwNjc2MkU2IC8qIEpTSW50ZXJuYWxTZXR0
aW5nc0dlbmVyYXRlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc0MEI1OTUxNEM5MzVBQjAwQTc3
RkE0IC8qIEpTTWFsbG9jU3RhdGlzdGljcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTFCRjZCODMx
QUE5NkM3RDAwQUY0QThBIC8qIE1vY2tDb250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRDUzOTNENDE3NUUwMTg2MDBDMDcxMjMgLyogSlNNZW1vcnlJbmZvLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDQjhDRjAxRDFBOTVERTQyMDAwRDUxMEIgLyogTWljcm9UYXNrVGVzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRUJGNTEyMUQxNjk2NDk2QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNp
b25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREMyNkI0MTE2MEE4Q0NFMDAyNjc1N0IgLyogTW9j
a0NETS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTE5QUVBMjExQUFBODA4NjAwQjUyQjI1IC8qIEpT
TW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ5N0YwNDgx
OURENDE0MDAwMUVFOUMzIC8qIE1vY2tQYWdlT3ZlcmxheUNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQUE1RjNCOEQxNkNDMzNEMTAwNDU1RUIwIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXJNb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTgxNUMxRjEzODMxOTgzMDA1N0FBQTQgLyog
V2ViQ29yZVRlc3RTdXBwb3J0LmggaW4gSGVhZGVycyAqLywKQEAgLTI3MjQ1LDggKzI3MjcxLDEy
IEBACiAJCQkJQTc0MEI1QTcxNEM5MzVBRjAwQTc3RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDQjhDRjAxRjFBOTVERTU5MDAwRDUxMEIgLyogTWljcm9U
YXNrVGVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1M0VEM0ZERTE2N0E4OEU3MDA2NzYyRTYg
LyogSlNJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUEx
RTVCMzFGMUFBRDFEQTQwMDZFQkVGQiAvKiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3NDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTFCNUIyOUUxQUFBODQ2RTAwOEI2MDQyIC8qIE1v
Y2tDb250ZW50RmlsdGVyU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc0MEI1OTcx
NEM5MzVBRjAwQTc3RkE0IC8qIEpTTWFsbG9jU3RhdGlzdGljcy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlDRDUzOTNEMzE3NUUwMTg2MDBDMDcxMjMgLyogSlNNZW1vcnlJbmZvLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUExOUFFQTIyMUFBQTgwOEEwMEI1MkIyNSAvKiBKU01vY2tDb250ZW50Rmls
dGVyU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTFCRjZCODIxQUE5NkM3RDAwQUY0
QThBIC8qIE1vY2tDb250ZW50RmlsdGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUVCRjUxMjFD
MTY5NjQ5NkMwMDU2QkQyNSAvKiBKU1R5cGVDb252ZXJzaW9ucy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlDREMyNkI0MDE2MEE4Q0M2MDAyNjc1N0IgLyogTW9ja0NETS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyRDk3RjA0NzE5REQ0MTNDMDAxRUU5QzMgLyogTW9ja1BhZ2VPdmVybGF5Q2xpZW50
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nc0N1c3RvbS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjIwYjIxOGNmZjBiZmUxNjVmZDcyNWVjNjlmYjEwZTk3YjdhOTgxOQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9ja0NvbnRlbnRGaWx0ZXJT
ZXR0aW5nc0N1c3RvbS5jcHAKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmgiCisK
KyNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCisKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcu
aCIKKyNpbmNsdWRlICJNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmgiCisKK3VzaW5nIG5hbWVz
cGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gTXVzdCBiZSBrZXB0IGluIHN5
bmMgd2l0aCB2YWx1ZXMgaW4gTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5pZGwuCitjb25zdCB1
aW50OF90IGRlY2lzaW9uUG9pbnRBZnRlclJlc3BvbnNlID0gMDsKK2NvbnN0IHVpbnQ4X3QgZGVj
aXNpb25Qb2ludEFmdGVyQWRkRGF0YSA9IDE7Citjb25zdCB1aW50OF90IGRlY2lzaW9uUG9pbnRB
ZnRlckZpbmlzaGVkQWRkaW5nRGF0YSA9IDI7Citjb25zdCB1aW50OF90IGRlY2lzaW9uQWxsb3cg
PSAwOworY29uc3QgdWludDhfdCBkZWNpc2lvbkJsb2NrID0gMTsKKworSlNDOjpKU1ZhbHVlIEpT
TW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6ZGVjaXNpb25Qb2ludChKU0M6OkV4ZWNTdGF0ZSop
IGNvbnN0Cit7CisgICAgc3dpdGNoIChpbXBsKCkuZGVjaXNpb25Qb2ludCgpKSB7CisgICAgY2Fz
ZSBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpEZWNpc2lvblBvaW50OjpBZnRlclJlc3BvbnNl
OgorICAgICAgICByZXR1cm4ganNOdW1iZXIoZGVjaXNpb25Qb2ludEFmdGVyUmVzcG9uc2UpOwor
ICAgIGNhc2UgTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6RGVjaXNpb25Qb2ludDo6QWZ0ZXJB
ZGREYXRhOgorICAgICAgICByZXR1cm4ganNOdW1iZXIoZGVjaXNpb25Qb2ludEFmdGVyQWRkRGF0
YSk7CisgICAgY2FzZSBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpEZWNpc2lvblBvaW50OjpB
ZnRlckZpbmlzaGVkQWRkaW5nRGF0YToKKyAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGRlY2lzaW9u
UG9pbnRBZnRlckZpbmlzaGVkQWRkaW5nRGF0YSk7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuIHsgfTsKK30KKwordm9pZCBKU01vY2tDb250ZW50RmlsdGVy
U2V0dGluZ3M6OnNldERlY2lzaW9uUG9pbnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNW
YWx1ZSB2YWx1ZSkKK3sKKyAgICB1aW50OF90IG5hdGl2ZVZhbHVlIHsgdG9VSW50OChleGVjLCB2
YWx1ZSwgRW5mb3JjZVJhbmdlKSB9OworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgc3dpdGNoIChuYXRpdmVWYWx1ZSkgeworICAgIGNhc2UgZGVj
aXNpb25Qb2ludEFmdGVyUmVzcG9uc2U6CisgICAgICAgIGltcGwoKS5zZXREZWNpc2lvblBvaW50
KE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OkRlY2lzaW9uUG9pbnQ6OkFmdGVyUmVzcG9uc2Up
OworICAgICAgICByZXR1cm47CisgICAgY2FzZSBkZWNpc2lvblBvaW50QWZ0ZXJBZGREYXRhOgor
ICAgICAgICBpbXBsKCkuc2V0RGVjaXNpb25Qb2ludChNb2NrQ29udGVudEZpbHRlclNldHRpbmdz
OjpEZWNpc2lvblBvaW50OjpBZnRlckFkZERhdGEpOworICAgICAgICByZXR1cm47CisgICAgY2Fz
ZSBkZWNpc2lvblBvaW50QWZ0ZXJGaW5pc2hlZEFkZGluZ0RhdGE6CisgICAgICAgIGltcGwoKS5z
ZXREZWNpc2lvblBvaW50KE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OkRlY2lzaW9uUG9pbnQ6
OkFmdGVyRmluaXNoZWRBZGRpbmdEYXRhKTsKKyAgICAgICAgcmV0dXJuOworICAgIGRlZmF1bHQ6
CisgICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMsIFN0cmluZzo6Zm9ybWF0KCIldSBpcyBub3Qg
YSB2YWxpZCBkZWNpc2lvblBvaW50IHZhbHVlLiIsIG5hdGl2ZVZhbHVlKSk7CisgICAgfQorfQor
CitKU0M6OkpTVmFsdWUgSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpkZWNpc2lvbihKU0M6
OkV4ZWNTdGF0ZSopIGNvbnN0Cit7CisgICAgc3dpdGNoIChpbXBsKCkuZGVjaXNpb24oKSkgewor
ICAgIGNhc2UgTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6RGVjaXNpb246OkFsbG93OgorICAg
ICAgICByZXR1cm4ganNOdW1iZXIoZGVjaXNpb25BbGxvdyk7CisgICAgY2FzZSBNb2NrQ29udGVu
dEZpbHRlclNldHRpbmdzOjpEZWNpc2lvbjo6QmxvY2s6CisgICAgICAgIHJldHVybiBqc051bWJl
cihkZWNpc2lvbkJsb2NrKTsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICByZXR1cm4geyB9OworfQorCit2b2lkIEpTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6c2V0
RGVjaXNpb24oSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK3sKKyAg
ICB1aW50OF90IG5hdGl2ZVZhbHVlIHsgdG9VSW50OChleGVjLCB2YWx1ZSwgRW5mb3JjZVJhbmdl
KSB9OworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgc3dpdGNoIChuYXRpdmVWYWx1ZSkgeworICAgIGNhc2UgZGVjaXNpb25BbGxvdzoKKyAgICAg
ICAgaW1wbCgpLnNldERlY2lzaW9uKE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OkRlY2lzaW9u
OjpBbGxvdyk7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIGRlY2lzaW9uQmxvY2s6CisgICAg
ICAgIGltcGwoKS5zZXREZWNpc2lvbihNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpEZWNpc2lv
bjo6QmxvY2spOworICAgICAgICByZXR1cm47CisgICAgZGVmYXVsdDoKKyAgICAgICAgdGhyb3dU
eXBlRXJyb3IoZXhlYywgU3RyaW5nOjpmb3JtYXQoIiV1IGlzIG5vdCBhIHZhbGlkIGRlY2lzaW9u
IHZhbHVlLiIsIG5hdGl2ZVZhbHVlKSk7CisgICAgfQorfQorCit9OyAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGVudEZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmNwcAppbmRleCBjOTU4NTZmYzc3YjVjZTRkZTQ0YTdl
MTQ3YThhNGNiZjE5MTVjNTI4Li44NDQ1YjhkM2JlZjI5ZjAwMTc1MDA0YzgyNWFlNzk1YWRjZGNj
NDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmNwcApAQCAtMzUs
MjcgKzM1LDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IENvbnRlbnRGaWx0
ZXJUeXBlIHsKLSAgICBjb25zdCBzdGQ6OmZ1bmN0aW9uPGJvb2woY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpPiBjYW5IYW5kbGVSZXNwb25zZTsKLSAgICBjb25zdCBzdGQ6OmZ1bmN0aW9uPHN0ZDo6
dW5pcXVlX3B0cjxDb250ZW50RmlsdGVyPihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik+IGNyZWF0
ZTsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RhdGljIGlubGluZSBDb250ZW50Rmls
dGVyVHlwZSBjb250ZW50RmlsdGVyVHlwZSgpCi17Ci0gICAgcmV0dXJuIHsgVDo6Y2FuSGFuZGxl
UmVzcG9uc2UsIFQ6OmNyZWF0ZSB9OwotfQotCi1zdGF0aWMgY29uc3QgVmVjdG9yPENvbnRlbnRG
aWx0ZXJUeXBlPiYgY29udGVudEZpbHRlclR5cGVzKCkKK1ZlY3RvcjxDb250ZW50RmlsdGVyOjpU
eXBlPiYgQ29udGVudEZpbHRlcjo6dHlwZXMoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxWZWN0b3I8Q29udGVudEZpbHRlclR5cGU+PiB0eXBlcygKLSAgICAgICAgVmVjdG9yPENvbnRl
bnRGaWx0ZXJUeXBlPih7Ci0gICAgICAgICAgICBjb250ZW50RmlsdGVyVHlwZTxQYXJlbnRhbENv
bnRyb2xzQ29udGVudEZpbHRlcj4oKSwKKyAgICBzdGF0aWMgV1RGOjpOZXZlckRlc3Ryb3llZDxW
ZWN0b3I8Q29udGVudEZpbHRlcjo6VHlwZT4+IHR5cGVzIHsKKyAgICAgICAgVmVjdG9yPENvbnRl
bnRGaWx0ZXI6OlR5cGU+IHsKKyAgICAgICAgICAgIHR5cGU8UGFyZW50YWxDb250cm9sc0NvbnRl
bnRGaWx0ZXI+KCksCiAjaWYgSEFWRShORV9GSUxURVJfU09VUkNFKQotICAgICAgICAgICAgY29u
dGVudEZpbHRlclR5cGU8TmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI+KCkKKyAgICAgICAg
ICAgIHR5cGU8TmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI+KCkKICNlbmRpZgotICAgICAg
ICB9KQotICAgICk7CisgICAgICAgIH0KKyAgICB9OwogICAgIHJldHVybiB0eXBlczsKIH0KIApA
QCAtNzksNyArNjgsNyBAQCBwcml2YXRlOgogc3RkOjp1bmlxdWVfcHRyPENvbnRlbnRGaWx0ZXI+
IENvbnRlbnRGaWx0ZXI6OmNyZWF0ZUlmTmVlZGVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQogewogICAgIENvbnRlbnRGaWx0ZXJDb2xsZWN0aW9uOjpDb250YWluZXIgZmlsdGVy
czsKLSAgICBmb3IgKGF1dG8mIHR5cGUgOiBjb250ZW50RmlsdGVyVHlwZXMoKSkgeworICAgIGZv
ciAoYXV0byYgdHlwZSA6IHR5cGVzKCkpIHsKICAgICAgICAgaWYgKHR5cGUuY2FuSGFuZGxlUmVz
cG9uc2UocmVzcG9uc2UpKQogICAgICAgICAgICAgZmlsdGVycy5hcHBlbmQodHlwZS5jcmVhdGUo
cmVzcG9uc2UpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
b250ZW50RmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmgK
aW5kZXggZjM2ODc4N2M5MDNiZDNmYjRkNGIxZGYwMWQxMjA3OTVhNDc1MmI3Yi4uMWJmZTEzNmEy
OTg3ZjYzMDBmNzVlYTc2OWJkYmEyMzkyMGZlNzY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vQ29udGVudEZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0NvbnRlbnRGaWx0ZXIuaApAQCAtMjksOCArMjksNyBAQAogI2lmIEVOQUJMRShDT05URU5UX0ZJ
TFRFUklORykKIAogI2luY2x1ZGUgIkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlci5oIgotCi0j
ZGVmaW5lIEhBVkVfTkVfRklMVEVSX1NPVVJDRSBUQVJHRVRfT1NfRU1CRURERUQgfHwgKCFUQVJH
RVRfT1NfSVBIT05FICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAw
ICYmIENQVShYODZfNjQpKQorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC0zOCwxNiArMzcsMjUgQEAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIAog
Y2xhc3MgQ29udGVudEZpbHRlciB7CiBwdWJsaWM6CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
IHN0YXRpYyB2b2lkIGFkZFR5cGUoKSB7IHR5cGVzKCkuYXBwZW5kKHR5cGU8VD4oKSk7IH0KKwog
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q29udGVudEZpbHRlcj4gY3JlYXRlSWZOZWVkZWQo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogCiAgICAgdmlydHVhbCB+Q29udGVudEZpbHRlcigp
IHsgfQotCiAgICAgdmlydHVhbCB2b2lkIGFkZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxl
bmd0aCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hlZEFkZGluZ0RhdGEoKSA9IDA7CiAg
ICAgdmlydHVhbCBib29sIG5lZWRzTW9yZURhdGEoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBi
b29sIGRpZEJsb2NrRGF0YSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGdl
dFJlcGxhY2VtZW50RGF0YShpbnQmIGxlbmd0aCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgQ29u
dGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIHVuYmxvY2tIYW5kbGVyKCkgY29uc3QgPSAwOworCitw
cml2YXRlOgorICAgIHN0cnVjdCBUeXBlIHsKKyAgICAgICAgY29uc3Qgc3RkOjpmdW5jdGlvbjxi
b29sKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKT4gY2FuSGFuZGxlUmVzcG9uc2U7CisgICAgICAg
IGNvbnN0IHN0ZDo6ZnVuY3Rpb248c3RkOjp1bmlxdWVfcHRyPENvbnRlbnRGaWx0ZXI+KGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmKT4gY3JlYXRlOworICAgIH07CisgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+IHN0YXRpYyBUeXBlIHR5cGUoKSB7IHJldHVybiB7IFQ6OmNhbkhhbmRsZVJlc3BvbnNl
LCBUOjpjcmVhdGUgfTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBWZWN0b3I8VHlwZT4m
IHR5cGVzKCk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRG
aWx0ZXIuaAppbmRleCBmMTljYzExNmIzOWM5MThkOTg2YTQ0MzFmZWYwODZhNDk1OTJlZGE1Li5m
MzhlNjU3Njg0N2RlY2YzZTU4MGNhNWYyNDc4Nzc1NDNiN2YyYjkwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250
ZW50RmlsdGVyLmgKQEAgLTMwLDYgKzMwLDggQEAKICNpbmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4K
ICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKKyNkZWZpbmUgSEFWRV9ORV9GSUxURVJfU09V
UkNFIFRBUkdFVF9PU19FTUJFRERFRCB8fCAoIVRBUkdFVF9PU19JUEhPTkUgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAgJiYgQ1BVKFg4Nl82NCkpCisKIE9CSkNf
Q0xBU1MgTkVGaWx0ZXJTb3VyY2U7CiBPQkpDX0NMQVNTIE5TTXV0YWJsZURhdGE7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAyY2JmODI0NmRhMTBhMGNkNGQ4ZTlhNTRk
NjRkZjIxYmRmOWE0MjUxLi41M2NmNTBjOWUzMTRiMjhkNTQ0Yzk5M2RjYjZjYzQxYzJlMDM4NGU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xNzUsNiArMTc1LDEwIEBA
CiAjaW5jbHVkZSAiRGljdGlvbmFyeUxvb2t1cC5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ09O
VEVOVF9GSUxURVJJTkcpCisjaW5jbHVkZSAiTW9ja0NvbnRlbnRGaWx0ZXIuaCIKKyNlbmRpZgor
CiB1c2luZyBKU0M6OkNvZGVCbG9jazsKIHVzaW5nIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOwog
dXNpbmcgSlNDOjpKU0Z1bmN0aW9uOwpAQCAtMzE0LDYgKzMxOCwxMCBAQCB2b2lkIEludGVybmFs
czo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShQYWdlKiBwYWdlKQogI2VuZGlmCiAKICAgICBNb2Nr
UGFnZU92ZXJsYXlDbGllbnQ6OnNpbmdsZXRvbigpLnVuaW5zdGFsbEFsbE92ZXJsYXlzKCk7CisK
KyNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCisgICAgTW9ja0NvbnRlbnRGaWx0ZXJTZXR0
aW5nczo6cmVzZXQoKTsKKyNlbmRpZgogfQogCiBJbnRlcm5hbHM6OkludGVybmFscyhEb2N1bWVu
dCogZG9jdW1lbnQpCkBAIC0zMjksNiArMzM3LDEwIEBAIEludGVybmFsczo6SW50ZXJuYWxzKERv
Y3VtZW50KiBkb2N1bWVudCkKICAgICBlbmFibGVNb2NrUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
KCk7CiAgICAgV2ViQ29yZTo6cHJvdmlkZVVzZXJNZWRpYVRvKGRvY3VtZW50LT5wYWdlKCksIG5l
dyBVc2VyTWVkaWFDbGllbnRNb2NrKCkpOwogI2VuZGlmCisKKyNpZiBFTkFCTEUoQ09OVEVOVF9G
SUxURVJJTkcpCisgICAgTW9ja0NvbnRlbnRGaWx0ZXI6OmVuc3VyZUluc3RhbGxlZCgpOworI2Vu
ZGlmCiB9CiAKIERvY3VtZW50KiBJbnRlcm5hbHM6OmNvbnRleHREb2N1bWVudCgpIGNvbnN0CkBA
IC0yNTQwLDQgKzI1NTIsMTEgQEAgdm9pZCBJbnRlcm5hbHM6OnF1ZXVlTWljcm9UYXNrKGludCB0
ZXN0TnVtYmVyKQogICAgICAgICBNaWNyb1Rhc2tRdWV1ZTo6c2luZ2xldG9uKCkucXVldWVNaWNy
b1Rhc2soTWljcm9UYXNrVGVzdDo6Y3JlYXRlKGNvbnRleHREb2N1bWVudCgpLT5jcmVhdGVXZWFr
UHRyKCksIHRlc3ROdW1iZXIpKTsKIH0KIAorI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykK
K01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MmIEludGVybmFsczo6bW9ja0NvbnRlbnRGaWx0ZXJT
ZXR0aW5ncygpCit7CisgICAgcmV0dXJuIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnNpbmds
ZXRvbigpOworfQorI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4
IGM4NzhmNTkwNmNjZWI1ODA5MDIzMGJkNjQxMjBhNjgwNmMwY2NlOWQuLjYwMzE0OTc2MmU4MzBl
ZTY2MTQxYWUxMDMyZGJiNDZlMTQ4NWU1YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aApAQCAtNjUsNiArNjUsMTAgQEAgY2xhc3MgVGltZVJhbmdlczsKIGNsYXNzIFR5cGVDb252ZXJz
aW9uczsKIGNsYXNzIFhNTEh0dHBSZXF1ZXN0OwogCisjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVS
SU5HKQorY2xhc3MgTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczsKKyNlbmRpZgorCiB0eXBlZGVm
IGludCBFeGNlcHRpb25Db2RlOwogCiBjbGFzcyBJbnRlcm5hbHMgOiBwdWJsaWMgUmVmQ291bnRl
ZDxJbnRlcm5hbHM+CkBAIC0zNjgsNiArMzcyLDEwIEBAIHB1YmxpYzoKICAgICBSZWZQdHI8Rmls
ZT4gY3JlYXRlRmlsZShjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHF1ZXVlTWljcm9UYXNrKGlu
dCk7CiAKKyNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCisgICAgTW9ja0NvbnRlbnRGaWx0
ZXJTZXR0aW5ncyYgbW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncygpOworI2VuZGlmCisKIHByaXZh
dGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAgRG9jdW1lbnQqIGNv
bnRleHREb2N1bWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmlu
ZGV4IDQwNmE5MmJkZmNjMDJjMTEzZjAxMWQ3MzU2OWU4N2Q1NjgxOTc1MDMuLjIyY2QyMmRkYzll
NmRlMDE5NjcyMTQ2ZTE3MmY5NWFkM2Q3MzgwZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwKQEAgLTMyMyw0ICszMjMsNiBAQCBlbnVtIFBhZ2VPdmVybGF5VHlwZSB7CiAgICAg
CiAgICAgRmlsZSBjcmVhdGVGaWxlKERPTVN0cmluZyB1cmwpOwogICAgIHZvaWQgcXVldWVNaWNy
b1Rhc2sobG9uZyB0ZXN0TnVtYmVyKTsKKworICAgIFtDb25kaXRpb25hbD1DT05URU5UX0ZJTFRF
UklOR10gcmVhZG9ubHkgYXR0cmlidXRlIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MgbW9ja0Nv
bnRlbnRGaWx0ZXJTZXR0aW5nczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL01vY2tDb250ZW50RmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0Nv
bnRlbnRGaWx0ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxZWVkMGNmNzY4MWFkODIyOWEzYjRlZDhmN2Q1
NTE2YWIwYjVjZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tDb250ZW50RmlsdGVyLmNwcApAQCAtMCwwICsxLDEwNyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNb2NrQ29udGVudEZpbHRlci5oIgorCisjaWYgRU5B
QkxFKENPTlRFTlRfRklMVEVSSU5HKQorCisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgTW9ja0NvbnRl
bnRGaWx0ZXI6OmVuc3VyZUluc3RhbGxlZCgpCit7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFn
IG9uY2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsKKyAgICAgICAgQ29u
dGVudEZpbHRlcjo6YWRkVHlwZTxNb2NrQ29udGVudEZpbHRlcj4oKTsKKyAgICB9KTsKK30KKwor
Ym9vbCBNb2NrQ29udGVudEZpbHRlcjo6Y2FuSGFuZGxlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYpCit7CisgICAgcmV0dXJuIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnNpbmds
ZXRvbigpLmVuYWJsZWQoKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPE1vY2tDb250ZW50RmlsdGVy
PiBNb2NrQ29udGVudEZpbHRlcjo6Y3JlYXRlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1vY2tDb250ZW50RmlsdGVyPihy
ZXNwb25zZSk7Cit9CisKK01vY2tDb250ZW50RmlsdGVyOjpNb2NrQ29udGVudEZpbHRlcihjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJikKK3sKKyAgICBtYXliZURldGVybWluZVN0YXR1cyhNb2NrQ29u
dGVudEZpbHRlclNldHRpbmdzOjpEZWNpc2lvblBvaW50OjpBZnRlclJlc3BvbnNlKTsKK30KKwor
dm9pZCBNb2NrQ29udGVudEZpbHRlcjo6YWRkRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVu
Z3RoKQoreworICAgIG1fcmVwbGFjZW1lbnREYXRhLmFwcGVuZChkYXRhLCBsZW5ndGgpOworICAg
IG1heWJlRGV0ZXJtaW5lU3RhdHVzKE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OkRlY2lzaW9u
UG9pbnQ6OkFmdGVyQWRkRGF0YSk7Cit9CisKK3ZvaWQgTW9ja0NvbnRlbnRGaWx0ZXI6OmZpbmlz
aGVkQWRkaW5nRGF0YSgpCit7CisgICAgbWF5YmVEZXRlcm1pbmVTdGF0dXMoTW9ja0NvbnRlbnRG
aWx0ZXJTZXR0aW5nczo6RGVjaXNpb25Qb2ludDo6QWZ0ZXJGaW5pc2hlZEFkZGluZ0RhdGEpOwor
fQorCitib29sIE1vY2tDb250ZW50RmlsdGVyOjpuZWVkc01vcmVEYXRhKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9zdGF0dXMgPT0gU3RhdHVzOjpOZWVkc01vcmVEYXRhOworfQorCitib29sIE1v
Y2tDb250ZW50RmlsdGVyOjpkaWRCbG9ja0RhdGEoKSBjb25zdAoreworICAgIHJldHVybiBtX3N0
YXR1cyA9PSBTdGF0dXM6OkJsb2NrZWQ7Cit9CisKK2NvbnN0IGNoYXIqIE1vY2tDb250ZW50Rmls
dGVyOjpnZXRSZXBsYWNlbWVudERhdGEoaW50JiBsZW5ndGgpIGNvbnN0Cit7CisgICAgbGVuZ3Ro
ID0gbV9yZXBsYWNlbWVudERhdGEuc2l6ZSgpOworICAgIHJldHVybiBtX3JlcGxhY2VtZW50RGF0
YS5kYXRhKCk7Cit9CisKK0NvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciBNb2NrQ29udGVudEZp
bHRlcjo6dW5ibG9ja0hhbmRsZXIoKSBjb25zdAoreworICAgIHJldHVybiB7IH07Cit9CisKK3Zv
aWQgTW9ja0NvbnRlbnRGaWx0ZXI6Om1heWJlRGV0ZXJtaW5lU3RhdHVzKE1vY2tDb250ZW50Rmls
dGVyU2V0dGluZ3M6OkRlY2lzaW9uUG9pbnQgZGVjaXNpb25Qb2ludCkKK3sKKyAgICBpZiAobV9z
dGF0dXMgIT0gU3RhdHVzOjpOZWVkc01vcmVEYXRhIHx8IGRlY2lzaW9uUG9pbnQgIT0gTW9ja0Nv
bnRlbnRGaWx0ZXJTZXR0aW5nczo6c2luZ2xldG9uKCkuZGVjaXNpb25Qb2ludCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3N0YXR1cyA9IE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnNp
bmdsZXRvbigpLmRlY2lzaW9uKCkgPT0gTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6RGVjaXNp
b246OkFsbG93ID8gU3RhdHVzOjpBbGxvd2VkIDogU3RhdHVzOjpCbG9ja2VkOworICAgIGlmICht
X3N0YXR1cyAhPSBTdGF0dXM6OkJsb2NrZWQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmVw
bGFjZW1lbnREYXRhLmNsZWFyKCk7CisgICAgY29uc3QgQ1N0cmluZyB1dGY4QmxvY2tlZFN0cmlu
ZyA9IE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnNpbmdsZXRvbigpLmJsb2NrZWRTdHJpbmco
KS51dGY4KCk7CisgICAgbV9yZXBsYWNlbWVudERhdGEuYXBwZW5kKHV0ZjhCbG9ja2VkU3RyaW5n
LmRhdGEoKSwgdXRmOEJsb2NrZWRTdHJpbmcubGVuZ3RoKCkpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzgzMTY1OTMz
OTJkMGRjYzBiODc4NGQxZGNmM2FhYmYxYWEwODJiNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXIuaApAQCAtMCwwICsxLDY0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBNb2NrQ29udGVudEZpbHRlcl9oCisjZGVmaW5lIE1vY2tDb250
ZW50RmlsdGVyX2gKKworI2luY2x1ZGUgIkNvbnRlbnRGaWx0ZXIuaCIKKyNpbmNsdWRlICJNb2Nr
Q29udGVudEZpbHRlclNldHRpbmdzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
TW9ja0NvbnRlbnRGaWx0ZXIgZmluYWwgOiBwdWJsaWMgQ29udGVudEZpbHRlciB7CitwdWJsaWM6
CisgICAgc3RhdGljIHZvaWQgZW5zdXJlSW5zdGFsbGVkKCk7CisgICAgc3RhdGljIGJvb2wgY2Fu
SGFuZGxlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8TW9ja0NvbnRlbnRGaWx0ZXI+IGNyZWF0ZShjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJik7CisKKyAgICBleHBsaWNpdCBNb2NrQ29udGVudEZpbHRlcihjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJik7CisKKyAgICB2b2lkIGFkZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0
aCkgb3ZlcnJpZGU7CisgICAgdm9pZCBmaW5pc2hlZEFkZGluZ0RhdGEoKSBvdmVycmlkZTsKKyAg
ICBib29sIG5lZWRzTW9yZURhdGEoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGRpZEJsb2Nr
RGF0YSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGdldFJlcGxhY2VtZW50RGF0
YShpbnQmIGxlbmd0aCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29udGVudEZpbHRlclVuYmxvY2tI
YW5kbGVyIHVuYmxvY2tIYW5kbGVyKCkgY29uc3Qgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAg
ZW51bSBjbGFzcyBTdGF0dXMgeworICAgICAgICBOZWVkc01vcmVEYXRhLAorICAgICAgICBBbGxv
d2VkLAorICAgICAgICBCbG9ja2VkCisgICAgfTsKKworICAgIHZvaWQgbWF5YmVEZXRlcm1pbmVT
dGF0dXMoTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6RGVjaXNpb25Qb2ludCk7CisKKyAgICBW
ZWN0b3I8Y2hhcj4gbV9yZXBsYWNlbWVudERhdGE7CisgICAgU3RhdHVzIG1fc3RhdHVzIHsgU3Rh
dHVzOjpOZWVkc01vcmVEYXRhIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBNb2NrQ29udGVudEZpbHRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9Nb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjhkMjQ0Mzgy
MGM5YjQ0NTg5ZDk1ZjUwOGExM2E4ZDllOTllZThmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmNwcApAQCAtMCwwICsx
LDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1vY2tD
b250ZW50RmlsdGVyU2V0dGluZ3MuaCIKKworI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykK
KworI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MmIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6
OnNpbmdsZXRvbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE1vY2tDb250ZW50Rmls
dGVyU2V0dGluZ3M+IHNldHRpbmdzOworICAgIHJldHVybiBzZXR0aW5nczsKK30KKwordm9pZCBN
b2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpyZXNldCgpCit7CisgICAgc2luZ2xldG9uKCkgPSBN
b2NrQ29udGVudEZpbHRlclNldHRpbmdzKCk7Cit9CisKK01vY2tDb250ZW50RmlsdGVyU2V0dGlu
Z3M6Ok1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MoKQorICAgIDogbV9lbmFibGVkIHsgZmFsc2Ug
fQorICAgICwgbV9kZWNpc2lvblBvaW50IHsgRGVjaXNpb25Qb2ludDo6QWZ0ZXJSZXNwb25zZSB9
CisgICAgLCBtX2RlY2lzaW9uIHsgRGVjaXNpb246OkFsbG93IH0KK3sKK30KKworfTsgLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5n
cy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzFmODdjMWEyNmExYzA4YzExZTZhMWI2YWYwNjEzZWE0ZmZkMzJmZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXJT
ZXR0aW5ncy5oCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1vY2tDb250
ZW50RmlsdGVyU2V0dGluZ3NfaAorI2RlZmluZSBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzX2gK
KworI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1vY2tDb250ZW50Rmls
dGVyU2V0dGluZ3MgeworICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxNb2NrQ29udGVu
dEZpbHRlclNldHRpbmdzPjsKK3B1YmxpYzoKKyAgICBlbnVtIGNsYXNzIERlY2lzaW9uUG9pbnQg
eworICAgICAgICBBZnRlclJlc3BvbnNlLAorICAgICAgICBBZnRlckFkZERhdGEsCisgICAgICAg
IEFmdGVyRmluaXNoZWRBZGRpbmdEYXRhCisgICAgfTsKKworICAgIGVudW0gY2xhc3MgRGVjaXNp
b24geworICAgICAgICBBbGxvdywKKyAgICAgICAgQmxvY2sKKyAgICB9OworCisgICAgc3RhdGlj
IE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MmIHNpbmdsZXRvbigpOworICAgIHN0YXRpYyB2b2lk
IHJlc2V0KCk7CisKKyAgICAvLyBUcmljayB0aGUgZ2VuZXJhdGVkIGJpbmRpbmdzIGludG8gdGhp
bmtpbmcgd2UncmUgUmVmQ291bnRlZC4KKyAgICB2b2lkIHJlZigpIHsgfQorICAgIHZvaWQgZGVy
ZWYoKSB7IH0KKworICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxlZDsg
fQorICAgIHZvaWQgc2V0RW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9lbmFibGVkID0gZW5hYmxl
ZDsgfQorCisgICAgY29uc3QgU3RyaW5nJiBibG9ja2VkU3RyaW5nKCkgY29uc3QgeyByZXR1cm4g
bV9ibG9ja2VkU3RyaW5nOyB9CisgICAgdm9pZCBzZXRCbG9ja2VkU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgYmxvY2tlZFN0cmluZykgeyBtX2Jsb2NrZWRTdHJpbmcgPSBibG9ja2VkU3RyaW5nOyB9CisK
KyAgICBEZWNpc2lvblBvaW50IGRlY2lzaW9uUG9pbnQoKSBjb25zdCB7IHJldHVybiBtX2RlY2lz
aW9uUG9pbnQ7IH0KKyAgICB2b2lkIHNldERlY2lzaW9uUG9pbnQoRGVjaXNpb25Qb2ludCBkZWNp
c2lvblBvaW50KSB7IG1fZGVjaXNpb25Qb2ludCA9IGRlY2lzaW9uUG9pbnQ7IH0KKworICAgIERl
Y2lzaW9uIGRlY2lzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZWNpc2lvbjsgfQorICAgIHZvaWQg
c2V0RGVjaXNpb24oRGVjaXNpb24gZGVjaXNpb24pIHsgbV9kZWNpc2lvbiA9IGRlY2lzaW9uOyB9
CisKK3ByaXZhdGU6CisgICAgTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncygpOworCisgICAgYm9v
bCBtX2VuYWJsZWQ7CisgICAgRGVjaXNpb25Qb2ludCBtX2RlY2lzaW9uUG9pbnQ7CisgICAgRGVj
aXNpb24gbV9kZWNpc2lvbjsKKyAgICBTdHJpbmcgbV9ibG9ja2VkU3RyaW5nOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5n
c19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVy
U2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlclNl
dHRpbmdzLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzA2ZGVkMmY1MGE3MDNiYzk5ZjZkNDhlZjM5NDhjNTJk
M2RjMDRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29u
dGVudEZpbHRlclNldHRpbmdzLmlkbApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWwor
ICAgIENvbmRpdGlvbmFsPUNPTlRFTlRfRklMVEVSSU5HLAorICAgIE5vSW50ZXJmYWNlT2JqZWN0
LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIE1vY2tDb250ZW50
RmlsdGVyU2V0dGluZ3MgeworICAgIGF0dHJpYnV0ZSBib29sZWFuIGVuYWJsZWQ7CisgICAgYXR0
cmlidXRlIERPTVN0cmluZyBibG9ja2VkU3RyaW5nOworCisgICAgY29uc3Qgb2N0ZXQgREVDSVNJ
T05fUE9JTlRfQUZURVJfUkVTUE9OU0UgPSAwOworICAgIGNvbnN0IG9jdGV0IERFQ0lTSU9OX1BP
SU5UX0FGVEVSX0FERF9EQVRBID0gMTsKKyAgICBjb25zdCBvY3RldCBERUNJU0lPTl9QT0lOVF9B
RlRFUl9GSU5JU0hFRF9BRERJTkdfREFUQSA9IDI7CisgICAgW0N1c3RvbV0gYXR0cmlidXRlIG9j
dGV0IGRlY2lzaW9uUG9pbnQ7CisKKyAgICBjb25zdCBvY3RldCBERUNJU0lPTl9BTExPVyA9IDA7
CisgICAgY29uc3Qgb2N0ZXQgREVDSVNJT05fQkxPQ0sgPSAxOworICAgIFtDdXN0b21dIGF0dHJp
YnV0ZSBvY3RldCBkZWNpc2lvbjsKK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmE5MmJlZmYyNTIxYTkzZTA4YzA0ODRk
YzJmMDhlYzRjNzdjYWQwYy4uNGZkYTQ1NjI2MDBiYWM1MmIzYmMwNTk4MmM3NzM3ZjA2YmY1Y2Jk
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE1LTAzLTA5ICBBbmR5IEVzdGVzICA8YWVzdGVz
QGFwcGxlLmNvbT4KKworICAgICAgICBbQ29udGVudCBGaWx0ZXJpbmddIEFkZCB0ZXN0cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNDc1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjb250ZW50Zmls
dGVyaW5nL2FsbG93LWFmdGVyLWFkZC1kYXRhLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGNvbnRlbnRmaWx0ZXJpbmcvYWxsb3ctYWZ0ZXItYWRkLWRhdGEuaHRtbDogQWRkZWQuCisg
ICAgICAgICogY29udGVudGZpbHRlcmluZy9hbGxvdy1hZnRlci1maW5pc2hlZC1hZGRpbmctZGF0
YS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb250ZW50ZmlsdGVyaW5nL2FsbG93
LWFmdGVyLWZpbmlzaGVkLWFkZGluZy1kYXRhLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbnRl
bnRmaWx0ZXJpbmcvYWxsb3ctYWZ0ZXItcmVzcG9uc2UtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogY29udGVudGZpbHRlcmluZy9hbGxvdy1hZnRlci1yZXNwb25zZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBjb250ZW50ZmlsdGVyaW5nL2Jsb2NrLWFmdGVyLWFkZC1kYXRhLWV4cGVj
dGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbnRlbnRmaWx0ZXJpbmcvYmxvY2stYWZ0ZXIt
YWRkLWRhdGEuaHRtbDogQWRkZWQuCisgICAgICAgICogY29udGVudGZpbHRlcmluZy9ibG9jay1h
ZnRlci1maW5pc2hlZC1hZGRpbmctZGF0YS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBjb250ZW50ZmlsdGVyaW5nL2Jsb2NrLWFmdGVyLWZpbmlzaGVkLWFkZGluZy1kYXRhLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGNvbnRlbnRmaWx0ZXJpbmcvYmxvY2stYWZ0ZXItcmVzcG9uc2Ut
ZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY29udGVudGZpbHRlcmluZy9ibG9jay1h
ZnRlci1yZXNwb25zZS5odG1sOiBBZGRlZC4KKwogMjAxNS0wMy0wNCAgQWxleCBDaHJpc3RlbnNl
biAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZ2FyZGVu
aW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9hbGxvdy1hZnRl
ci1hZGQtZGF0YS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9h
bGxvdy1hZnRlci1hZGQtZGF0YS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2N2JmYTE5MjAy
YjIzNzA0NmYwZTA2MjYxZjAzOWUxYTJlNzRiOTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jb250ZW50ZmlsdGVyaW5nL2FsbG93LWFmdGVyLWFkZC1kYXRhLWV4cGVjdGVkLmh0bWwK
QEAgLTAsMCArMSwyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxpZnJhbWUgc3JjPSJkYXRhOnRleHQv
aHRtbCxQQVNTIj48L2lmcmFtZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0
ZXJpbmcvYWxsb3ctYWZ0ZXItYWRkLWRhdGEuaHRtbCBiL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0
ZXJpbmcvYWxsb3ctYWZ0ZXItYWRkLWRhdGEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDI4YmE4MzUzYzA4
NGExMDYwYzMwNmJhZmU5ZWQzMjY2MGUwOGUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY29udGVudGZpbHRlcmluZy9hbGxvdy1hZnRlci1hZGQtZGF0YS5odG1sCkBAIC0wLDAgKzEs
OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0PgordmFyIHNldHRpbmdzID0gd2luZG93Lmlu
dGVybmFscy5tb2NrQ29udGVudEZpbHRlclNldHRpbmdzOworc2V0dGluZ3MuZW5hYmxlZCA9IHRy
dWU7CitzZXR0aW5ncy5ibG9ja2VkU3RyaW5nID0gIkZBSUwiOworc2V0dGluZ3MuZGVjaXNpb25Q
b2ludCA9IHNldHRpbmdzLkRFQ0lTSU9OX1BPSU5UX0FGVEVSX0FERF9EQVRBOworc2V0dGluZ3Mu
ZGVjaXNpb24gPSBzZXR0aW5ncy5ERUNJU0lPTl9BTExPVzsKKzwvc2NyaXB0PgorPGlmcmFtZSBz
cmM9ImRhdGE6dGV4dC9odG1sLFBBU1MiPjwvaWZyYW1lPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY29udGVudGZpbHRlcmluZy9hbGxvdy1hZnRlci1maW5pc2hlZC1hZGRpbmctZGF0YS1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9hbGxvdy1hZnRlci1maW5p
c2hlZC1hZGRpbmctZGF0YS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2N2JmYTE5MjAyYjIz
NzA0NmYwZTA2MjYxZjAzOWUxYTJlNzRiOTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jb250ZW50ZmlsdGVyaW5nL2FsbG93LWFmdGVyLWZpbmlzaGVkLWFkZGluZy1kYXRhLWV4cGVj
dGVkLmh0bWwKQEAgLTAsMCArMSwyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxpZnJhbWUgc3JjPSJk
YXRhOnRleHQvaHRtbCxQQVNTIj48L2lmcmFtZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nv
bnRlbnRmaWx0ZXJpbmcvYWxsb3ctYWZ0ZXItZmluaXNoZWQtYWRkaW5nLWRhdGEuaHRtbCBiL0xh
eW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvYWxsb3ctYWZ0ZXItZmluaXNoZWQtYWRkaW5nLWRh
dGEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yZTg0YzQ5ZjRlNDg1N2NlNzQzZDhjZjI2NGQ3NWIyMzY0OGE5
NTllCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9hbGxv
dy1hZnRlci1maW5pc2hlZC1hZGRpbmctZGF0YS5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8c2NyaXB0PgordmFyIHNldHRpbmdzID0gd2luZG93LmludGVybmFscy5tb2Nr
Q29udGVudEZpbHRlclNldHRpbmdzOworc2V0dGluZ3MuZW5hYmxlZCA9IHRydWU7CitzZXR0aW5n
cy5ibG9ja2VkU3RyaW5nID0gIkZBSUwiOworc2V0dGluZ3MuZGVjaXNpb25Qb2ludCA9IHNldHRp
bmdzLkRFQ0lTSU9OX1BPSU5UX0FGVEVSX0ZJTklTSEVEX0FERElOR19EQVRBOworc2V0dGluZ3Mu
ZGVjaXNpb24gPSBzZXR0aW5ncy5ERUNJU0lPTl9BTExPVzsKKzwvc2NyaXB0PgorPGlmcmFtZSBz
cmM9ImRhdGE6dGV4dC9odG1sLFBBU1MiPjwvaWZyYW1lPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY29udGVudGZpbHRlcmluZy9hbGxvdy1hZnRlci1yZXNwb25zZS1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9hbGxvdy1hZnRlci1yZXNwb25zZS1leHBlY3Rl
ZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA2N2JmYTE5MjAyYjIzNzA0NmYwZTA2MjYxZjAzOWUxYTJlNzRi
OTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb250ZW50ZmlsdGVyaW5nL2FsbG93
LWFmdGVyLXJlc3BvbnNlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxpZnJhbWUgc3JjPSJkYXRhOnRleHQvaHRtbCxQQVNTIj48L2lmcmFtZT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvYWxsb3ctYWZ0ZXItcmVzcG9uc2Uu
aHRtbCBiL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvYWxsb3ctYWZ0ZXItcmVzcG9uc2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44NTc5ODI3NzJiMGZlYzFhMjFkMjU5NzAwM2Q0MzU2YWY0MjJlZTM4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9hbGxvdy1h
ZnRlci1yZXNwb25zZS5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2Ny
aXB0PgordmFyIHNldHRpbmdzID0gd2luZG93LmludGVybmFscy5tb2NrQ29udGVudEZpbHRlclNl
dHRpbmdzOworc2V0dGluZ3MuZW5hYmxlZCA9IHRydWU7CitzZXR0aW5ncy5ibG9ja2VkU3RyaW5n
ID0gIkZBSUwiOworc2V0dGluZ3MuZGVjaXNpb25Qb2ludCA9IHNldHRpbmdzLkRFQ0lTSU9OX1BP
SU5UX0FGVEVSX1JFU1BPTlNFOworc2V0dGluZ3MuZGVjaXNpb24gPSBzZXR0aW5ncy5ERUNJU0lP
Tl9BTExPVzsKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9ImRhdGE6dGV4dC9odG1sLFBBU1MiPjwv
aWZyYW1lPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9ibG9jay1h
ZnRlci1hZGQtZGF0YS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmlu
Zy9ibG9jay1hZnRlci1hZGQtZGF0YS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1NWYzYmMw
ZDM4MDIwZTRmYWRmNjJiMDViZjM3NzEzZjg2ZTU4MTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jb250ZW50ZmlsdGVyaW5nL2Jsb2NrLWFmdGVyLWFkZC1kYXRhLWV4cGVjdGVkLmh0
bWwKQEAgLTAsMCArMSwyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxpZnJhbWUgc3JjPSJkYXRhOnRl
eHQvaHRtbCwiPjwvaWZyYW1lPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGVudGZpbHRl
cmluZy9ibG9jay1hZnRlci1hZGQtZGF0YS5odG1sIGIvTGF5b3V0VGVzdHMvY29udGVudGZpbHRl
cmluZy9ibG9jay1hZnRlci1hZGQtZGF0YS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxMTA2MGYzZDlhOGQ1
ODA3OGJmMWViZGJmYmFjOGRhZDZlNzM1ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jb250ZW50ZmlsdGVyaW5nL2Jsb2NrLWFmdGVyLWFkZC1kYXRhLmh0bWwKQEAgLTAsMCArMSw5
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQ+Cit2YXIgc2V0dGluZ3MgPSB3aW5kb3cuaW50
ZXJuYWxzLm1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M7CitzZXR0aW5ncy5lbmFibGVkID0gdHJ1
ZTsKK3NldHRpbmdzLmJsb2NrZWRTdHJpbmcgPSAiUEFTUyI7CitzZXR0aW5ncy5kZWNpc2lvblBv
aW50ID0gc2V0dGluZ3MuREVDSVNJT05fUE9JTlRfQUZURVJfQUREX0RBVEE7CitzZXR0aW5ncy5k
ZWNpc2lvbiA9IHNldHRpbmdzLkRFQ0lTSU9OX0JMT0NLOworPC9zY3JpcHQ+Cis8aWZyYW1lIHNy
Yz0iZGF0YTp0ZXh0L2h0bWwsRkFJTCI+PC9pZnJhbWU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jb250ZW50ZmlsdGVyaW5nL2Jsb2NrLWFmdGVyLWZpbmlzaGVkLWFkZGluZy1kYXRhLWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jb250ZW50ZmlsdGVyaW5nL2Jsb2NrLWFmdGVyLWZpbmlz
aGVkLWFkZGluZy1kYXRhLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDY3YmZhMTkyMDJiMjM3
MDQ2ZjBlMDYyNjFmMDM5ZTFhMmU3NGI5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NvbnRlbnRmaWx0ZXJpbmcvYmxvY2stYWZ0ZXItZmluaXNoZWQtYWRkaW5nLWRhdGEtZXhwZWN0
ZWQuaHRtbApAQCAtMCwwICsxLDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGlmcmFtZSBzcmM9ImRh
dGE6dGV4dC9odG1sLFBBU1MiPjwvaWZyYW1lPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29u
dGVudGZpbHRlcmluZy9ibG9jay1hZnRlci1maW5pc2hlZC1hZGRpbmctZGF0YS5odG1sIGIvTGF5
b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9ibG9jay1hZnRlci1maW5pc2hlZC1hZGRpbmctZGF0
YS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjk1MzU5NmMwN2UxYzI0YjY2ZjYwZDgyNDdiOWM5NDY4ZTk3OGI4
NzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb250ZW50ZmlsdGVyaW5nL2Jsb2Nr
LWFmdGVyLWZpbmlzaGVkLWFkZGluZy1kYXRhLmh0bWwKQEAgLTAsMCArMSw5IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxzY3JpcHQ+Cit2YXIgc2V0dGluZ3MgPSB3aW5kb3cuaW50ZXJuYWxzLm1vY2tD
b250ZW50RmlsdGVyU2V0dGluZ3M7CitzZXR0aW5ncy5lbmFibGVkID0gdHJ1ZTsKK3NldHRpbmdz
LmJsb2NrZWRTdHJpbmcgPSAiUEFTUyI7CitzZXR0aW5ncy5kZWNpc2lvblBvaW50ID0gc2V0dGlu
Z3MuREVDSVNJT05fUE9JTlRfQUZURVJfRklOSVNIRURfQURESU5HX0RBVEE7CitzZXR0aW5ncy5k
ZWNpc2lvbiA9IHNldHRpbmdzLkRFQ0lTSU9OX0JMT0NLOworPC9zY3JpcHQ+Cis8aWZyYW1lIHNy
Yz0iZGF0YTp0ZXh0L2h0bWwsRkFJTCI+PC9pZnJhbWU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jb250ZW50ZmlsdGVyaW5nL2Jsb2NrLWFmdGVyLXJlc3BvbnNlLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9jb250ZW50ZmlsdGVyaW5nL2Jsb2NrLWFmdGVyLXJlc3BvbnNlLWV4cGVjdGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGM2YzgyZmFjN2QxNDJiMjRkZTQ5ZTRhNWY5MjU0YTA0ZTY1NjY2
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvYmxvY2st
YWZ0ZXItcmVzcG9uc2UtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDIgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGlmcmFtZSBzcmM9ImRhdGE6dGV4dC9odG1sLEZBSUwiPjwvaWZyYW1lPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9ibG9jay1hZnRlci1yZXNwb25zZS5o
dG1sIGIvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9ibG9jay1hZnRlci1yZXNwb25zZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQwN2ViYTEwNzNmZTYyOTdhZGQwYjkyYjM0ZjRmNDI5Y2IxOTAwN2EK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb250ZW50ZmlsdGVyaW5nL2Jsb2NrLWFm
dGVyLXJlc3BvbnNlLmh0bWwKQEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3Jp
cHQ+Cit2YXIgc2V0dGluZ3MgPSB3aW5kb3cuaW50ZXJuYWxzLm1vY2tDb250ZW50RmlsdGVyU2V0
dGluZ3M7CitzZXR0aW5ncy5lbmFibGVkID0gdHJ1ZTsKK3NldHRpbmdzLmJsb2NrZWRTdHJpbmcg
PSAiUEFTUyI7CitzZXR0aW5ncy5kZWNpc2lvblBvaW50ID0gc2V0dGluZ3MuREVDSVNJT05fUE9J
TlRfQUZURVJfUkVTUE9OU0U7CitzZXR0aW5ncy5kZWNpc2lvbiA9IHNldHRpbmdzLkRFQ0lTSU9O
X0JMT0NLOworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iZGF0YTp0ZXh0L2h0bWwsRkFJTCI+PC9p
ZnJhbWU+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248237</attachid>
            <date>2015-03-09 02:59:29 -0700</date>
            <delta_ts>2015-03-09 12:19:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142475-20150309025906.patch</filename>
            <type>text/plain</type>
            <size>53090</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxMjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDM3MmQ0NTFmMjM2N2Rh
NGM5OWM4ZGIzZWFjNDYyNjY3YjljNWNlNC4uY2E3ZDZmNjVlM2ZjNzliZmRiZDZjOWExOGRlZTEz
NzA5NWI2NDRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDE1LTAzLTA5ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29udGVudCBGaWx0ZXJpbmdd
IEFkZCB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQyNDc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgYSBtb2NrIGNvbnRlbnQgZmlsdGVyIHRoYXQgY2FuIGJlIGNvbmZpZ3VyZWQgYnkg
d2luZG93LmludGVybmFscy4gQSB0ZXN0IGNhbiBjb250cm9sIHdoZXRoZXIgdGhlIGZpbHRlcgor
ICAgICAgICBpcyBlbmFibGVkLCB3aGF0IHRvIGRpc3BsYXkgd2hlbiBhIHBhZ2UgaXMgYmxvY2tl
ZCwgYXQgd2hhdCBwb2ludCB0aGUgYWxsb3cvYmxvY2sgZGVjaXNpb24gaXMgbWFkZSwgYW5kIHdo
YXQKKyAgICAgICAgZGVjaXNpb24gdG8gbWFrZS4KKworICAgICAgICBBZGRlZCB0ZXN0cyB0byBj
b3ZlciBhbGxvd2luZyBhbmQgYmxvY2tpbmcgY29udGVudCBhdCBlYWNoIGRlY2lzaW9uIHBvaW50
LgorCisgICAgICAgIFRlc3RzOiBjb250ZW50ZmlsdGVyaW5nL2FsbG93LWFmdGVyLWFkZC1kYXRh
Lmh0bWwKKyAgICAgICAgICAgICAgIGNvbnRlbnRmaWx0ZXJpbmcvYWxsb3ctYWZ0ZXItZmluaXNo
ZWQtYWRkaW5nLWRhdGEuaHRtbAorICAgICAgICAgICAgICAgY29udGVudGZpbHRlcmluZy9hbGxv
dy1hZnRlci1yZXNwb25zZS5odG1sCisgICAgICAgICAgICAgICBjb250ZW50ZmlsdGVyaW5nL2Js
b2NrLWFmdGVyLWFkZC1kYXRhLmh0bWwKKyAgICAgICAgICAgICAgIGNvbnRlbnRmaWx0ZXJpbmcv
YmxvY2stYWZ0ZXItZmluaXNoZWQtYWRkaW5nLWRhdGEuaHRtbAorICAgICAgICAgICAgICAgY29u
dGVudGZpbHRlcmluZy9ibG9jay1hZnRlci1yZXNwb25zZS5odG1sCisKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5tYWtlOiBBZGRlZCBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmlkbC4KKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzQ3VzdG9tLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OmRlY2lzaW9uUG9p
bnQpOiBSZXR1cm5lZCB0aGUgZGVjaXNpb24gcG9pbnQncyBKU1ZhbHVlLgorICAgICAgICAoV2Vi
Q29yZTo6SlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpzZXREZWNpc2lvblBvaW50KTogU2V0
IHRoZSBkZWNpc2lvbiBwb2ludDsgdGhyZXcgYW4gZXhjZXB0aW9uIGZvciBpbnZhbGlkIHZhbHVl
cy4KKyAgICAgICAgKFdlYkNvcmU6OkpTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6ZGVjaXNp
b24pOiBSZXR1cm5lZCB0aGUgZGVjaXNpb24ncyBKU1ZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6
SlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpzZXREZWNpc2lvbik6IFNldCB0aGUgZGVjaXNp
b247IHRocmV3IGFuIGV4Y2VwdGlvbiBmb3IgaW52YWxpZCB2YWx1ZXMuCisgICAgICAgICogcGxh
dGZvcm0vQ29udGVudEZpbHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RmlsdGVy
Ojp0eXBlcyk6IFJlbmFtZWQgZnJvbSBjb250ZW50RmlsdGVyVHlwZXMuCisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50RmlsdGVyOjpjcmVhdGVJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZW50RmlsdGVyVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpjb250ZW50Rmls
dGVyVHlwZXMpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRlbnRGaWx0ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6OmFkZFR5cGUpOiBVc2VkIHRvIHJlZ2lz
dGVyIGEgbmV3IGNvbnRlbnQgZmlsdGVyIHR5cGUuCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
RmlsdGVyOjp0eXBlKTogUmVuYW1lZCBmcm9tIGNvbnRlbnRGaWx0ZXJUeXBlLgorICAgICAgICAq
IHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmg6IE1vdmVkIGRl
ZmluaXRpb24gb2YgSEFWRV9ORV9GSUxURVJfU09VUkNFIHRvIGhlcmUuCisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNldFRv
Q29uc2lzdGVudFN0YXRlKTogQ2FsbGVkIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnJlc2V0
KCkuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OkludGVybmFscyk6IENhbGxlZCBNb2Nr
Q29udGVudEZpbHRlcjo6ZW5zdXJlSW5zdGFsbGVkKCkuCisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6Om1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MpOiBSZXR1cm5lZCBhIHJlZmVyZW5jZSB0
byBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpzaW5nbGV0b24oKS4KKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDogQWRkZWQg
YXR0cmlidXRlIG1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuCisgICAgICAgICogdGVzdGluZy9N
b2NrQ29udGVudEZpbHRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NvbnRl
bnRGaWx0ZXI6OmVuc3VyZUluc3RhbGxlZCk6IENhbGxlZCBNb2NrQ29udGVudEZpbHRlcjo6YWRk
VHlwZSgpLgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXI6OmNhbkhhbmRsZVJl
c3BvbnNlKTogUmV0dXJuZWQgd2hldGhlciBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzIGlzIGVu
YWJsZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29udGVudEZpbHRlcjo6Y3JlYXRlKTogUmV0
dXJuZWQgYSBuZXcgTW9ja0NvbnRlbnRGaWx0ZXIuCisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29u
dGVudEZpbHRlcjo6TW9ja0NvbnRlbnRGaWx0ZXIpOiBDYWxsZWQgbWF5YmVEZXRlcm1pbmVTdGF0
dXMoKS4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVyOjphZGREYXRhKTogQ29w
aWVkIGRhdGEgaW50byBtX3JlcGxhY2VtZW50RGF0YSBhbmQgY2FsbGVkIG1heWJlRGV0ZXJtaW5l
U3RhdHVzKCkuCisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29udGVudEZpbHRlcjo6ZmluaXNoZWRB
ZGRpbmdEYXRhKTogQ2FsbGVkIG1heWJlRGV0ZXJtaW5lU3RhdHVzKCkuCisgICAgICAgIChXZWJD
b3JlOjpNb2NrQ29udGVudEZpbHRlcjo6bmVlZHNNb3JlRGF0YSk6IFJldHVybmVkIHdoZXRoZXIg
bV9zdGF0dXMgZXF1YWxzIE5lZWRzTW9yZURhdGEuCisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29u
dGVudEZpbHRlcjo6ZGlkQmxvY2tEYXRhKTogUmV0dXJuZWQgd2hldGhlciBtX3N0YXR1cyBlcXVh
bHMgQmxvY2tlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVyOjpnZXRSZXBs
YWNlbWVudERhdGEpOiBSZXR1cm5lZCBhIHBvaW50ZXIgdG8gdGhlIHN0YXJ0IG9mIG1fcmVwbGFj
ZW1lbnREYXRhLgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXI6OnVuYmxvY2tI
YW5kbGVyKTogUmV0dXJuZWQgYW4gZW1wdHkgQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyLgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXI6Om1heWJlRGV0ZXJtaW5lU3RhdHVz
KTogSWYgbV9zdGF0dXMgaXMgTmVlZHNNb3JlRGF0YSBhbmQgdGhlIGN1cnJlbnQgZGVjaXNpb24g
cG9pbnQKKyAgICAgICAgZXF1YWxzIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MncyBkZWNpc2lv
biBwb2ludCwgc2V0IG1fc3RhdHVzIGFjY29yZGluZyB0byBNb2NrQ29udGVudEZpbHRlclNldHRp
bmdzJ3MKKyAgICAgICAgZGVjaXNpb24uIElmIG1fc3RhdHVzIGJlY29tZXMgQmxvY2tlZCwgY2xl
YXIgdGhlIG9yaWdpbmFsIHBhZ2UgZGF0YSBmcm9tIG1fcmVwbGFjZW1lbnREYXRhIGFuZCBjb3B5
CisgICAgICAgIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MncyBibG9ja2VkIHN0cmluZyBpbnN0
ZWFkLgorICAgICAgICAqIHRlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXIuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0
ZXIuaC4KKyAgICAgICAgKiB0ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmguCisgICAg
ICAgIChXZWJDb3JlOjpNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpzaW5nbGV0b24pOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6cmVzZXQpOiBSZXNldCBz
ZXR0aW5ncyB0byB0aGVpciBpbml0aWFsIHZhbHVlcy4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tD
b250ZW50RmlsdGVyU2V0dGluZ3M6Ok1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MpOgorICAgICAg
ICAqIHRlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5o
LgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6cmVmKTogQWRk
ZWQgYW4gZW1wdHkgaW1wbGVtZW50YXRpb24gdG8gbWFrZSB0aGUgYmluZGluZ3MgdGhpbmsgdGhp
cyBpcyBSZWZDb3VudGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXJTZXR0
aW5nczo6ZGVyZWYpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVy
U2V0dGluZ3M6OmVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXJT
ZXR0aW5nczo6c2V0RW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29udGVudEZpbHRl
clNldHRpbmdzOjpibG9ja2VkU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDb250ZW50
RmlsdGVyU2V0dGluZ3M6OnNldEJsb2NrZWRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TW9j
a0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6ZGVjaXNpb25Qb2ludCk6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpzZXREZWNpc2lvblBvaW50KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OmRlY2lzaW9uKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnNldERlY2lzaW9uKToKKyAgICAg
ICAgKiB0ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaWRsOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmguCisKIDIwMTUtMDMtMDggIERl
YW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1MgTWVkaWFdIFZpZGVv
IGJ1ZmZlciBwcm9ncmVzcyBtaXNzaW5nIG9uIGlQaG9uZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IDliNDk0M2VkNjgwMzcxYTQ4YzExNmJhOGM3MTQyY2IzNzVhYzM2OWIuLjk2
YjU1MjQxYWVhOGFiYTUzZDJlYmM4OTI1MmFmMjE3MmFlYzhmODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQpAQCAtNTA5LDYgKzUwOSw3IEBAIE5PTl9TVkdfQklORElOR19JRExTID0g
XAogICAgICQoV2ViQ29yZSkvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS90ZXN0aW5nL01hbGxvY1N0YXRpc3RpY3MuaWRsIFwKICAgICAkKFdlYkNvcmUpL3Rl
c3RpbmcvTWVtb3J5SW5mby5pZGwgXAorICAgICQoV2ViQ29yZSkvdGVzdGluZy9Nb2NrQ29udGVu
dEZpbHRlclNldHRpbmdzLmlkbCBcCiAgICAgJChXZWJDb3JlKS90ZXN0aW5nL1R5cGVDb252ZXJz
aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9BYnN0cmFjdFdvcmtlci5pZGwgXAog
ICAgICQoV2ViQ29yZSkvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5pZGwgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDc2NTZmM2ZjZTljNDJlM2U1OGZkN2NjOWMyZjlmZDIyYjU5NzY0NTUuLmM2NzQxMzU5ZGY3
MjhjMDcyODE2Yzc5NmZkNDY0NDZmYzRiNTBmZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM4MDcsMTAgKzM4MDcsMTYgQEAK
IAkJQTE3QzgxMjMwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE3QzgxMjEwRjJBNUNG
NzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5oICovOyB9OwogCQlBMTg4OTBBRTFBQTEz
RjI1MDAyNkMzMDEgLyogUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTg4OTBBQzFBQTEzRjI1MDAy
NkMzMDEgLyogUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW0gKi87IH07CiAJCUExODg5
MEFGMUFBMTNGMjUwMDI2QzMwMSAvKiBQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE4ODkwQUQxQUEx
M0YyNTAwMjZDMzAxIC8qIFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLmggKi87IH07CisJ
CUExOUFFQTIxMUFBQTgwODYwMEI1MkIyNSAvKiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3Mu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExOUFFQTFF
MUFBQTgwNkUwMEI1MkIyNSAvKiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaCAqLzsgfTsK
KwkJQTE5QUVBMjIxQUFBODA4QTAwQjUyQjI1IC8qIEpTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5n
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTlB
RUExRDFBQUE4MDZFMDBCNTJCMjUgLyogSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmNwcCAq
LzsgfTsKIAkJQTE5RDkzNDYxQTlGRUM3MjAwQjQ2QzI0IC8qIE5FRmlsdGVyU291cmNlU1BJLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTlEOTM0NDFB
OUZFQzcyMDBCNDZDMjQgLyogTkVGaWx0ZXJTb3VyY2VTUEkuaCAqLzsgfTsKIAkJQTE5RDkzNDcx
QTlGRUM3MjAwQjQ2QzI0IC8qIFdlYkZpbHRlckV2YWx1YXRvclNQSS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE5RDkzNDUxQTlGRUM3MjAwQjQ2QzI0
IC8qIFdlYkZpbHRlckV2YWx1YXRvclNQSS5oICovOyB9OwogCQlBMTlEOTM0QTFBQTExQjFFMDBC
NDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTlEOTM0ODFBQTExQjFFMDBCNDZDMjQg
LyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0gKi87IH07CiAJCUExOUQ5MzRCMUFB
MTFCMUUwMEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE5RDkzNDkxQUExMUIxRTAw
QjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggKi87IH07CisJCUExQjVC
MjlFMUFBQTg0NkUwMDhCNjA0MiAvKiBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQjVCMjlDMUFBQTg0
NkUwMDhCNjA0MiAvKiBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmNwcCAqLzsgfTsKKwkJQTFC
NUIyOUYxQUFBODQ2RjAwOEI2MDQyIC8qIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQjVCMjlEMUFBQTg0
NkUwMDhCNjA0MiAvKiBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmggKi87IH07CisJCUExQkY2
QjgyMUFBOTZDN0QwMEFGNEE4QSAvKiBNb2NrQ29udGVudEZpbHRlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUJGNkI4MDFBQTk2QzdEMDBBRjRB
OEEgLyogTW9ja0NvbnRlbnRGaWx0ZXIuY3BwICovOyB9OworCQlBMUJGNkI4MzFBQTk2QzdEMDBB
RjRBOEEgLyogTW9ja0NvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEExQkY2QjgxMUFBOTZDN0QwMEFGNEE4QSAvKiBNb2NrQ29udGVu
dEZpbHRlci5oICovOyB9OwogCQlBMUM3OTcxODE4ODNERDgyMDAwRjVFMUYgLyogRE9NR2VzdHVy
ZUV2ZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjU0RENERDE4ODBGOTAxMDAzRUVEQkIgLyogRE9NR2VzdHVyZUV2ZW50
LmggKi87IH07CiAJCUExQzc5NzE5MTg4M0RERUQwMDBGNUUxRiAvKiBET01Ub3VjaC5oIGluIENv
cHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY1NERDQ0QxODgwRjg2NzAwM0VFREJCIC8qIERPTVRvdWNoLmggKi87IH07CiAJCUExQzc5NzFB
MTg4M0RFMEQwMDBGNUUxRiAvKiBET01Ub3VjaEV2ZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU0RENDRjE4ODBGODY3
MDAzRUVEQkIgLyogRE9NVG91Y2hFdmVudC5oICovOyB9OwpAQCAtMzgyMyw2ICszODI5LDcgQEAK
IAkJQTFFMTE1NDQxMzAxNUMzRDAwNTRBQzhDIC8qIERpc3RhbnRMaWdodFNvdXJjZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUUxMTU0MzEzMDE1
QzNEMDA1NEFDOEMgLyogRGlzdGFudExpZ2h0U291cmNlLmNwcCAqLzsgfTsKIAkJQTFFMTE1NDYx
MzAxNUM0RTAwNTRBQzhDIC8qIFBvaW50TGlnaHRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFFMTE1NDUxMzAxNUM0RTAwNTRBQzhDIC8q
IFBvaW50TGlnaHRTb3VyY2UuY3BwICovOyB9OwogCQlBMUUxMTU0ODEzMDE1QzVEMDA1NEFDOEMg
LyogU3BvdExpZ2h0U291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEExRTExNTQ3MTMwMTVDNUQwMDU0QUM4QyAvKiBTcG90TGlnaHRTb3VyY2Uu
Y3BwICovOyB9OworCQlBMUU1QjMxRjFBQUQxREE0MDA2RUJFRkIgLyogSlNNb2NrQ29udGVudEZp
bHRlclNldHRpbmdzQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEExRTVCMzFEMUFBRDFEQTQwMDZFQkVGQiAvKiBKU01vY2tDb250ZW50Rmls
dGVyU2V0dGluZ3NDdXN0b20uY3BwICovOyB9OwogCQlBMkI5MjE3MzE2QzVDQzQyMDA0MURDRDkg
LyogSW50UmVjdEV4dGVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTJCOTIxNzIxNkM1Q0M0MjAwNDFEQ0Q5IC8qIEludFJlY3RFeHRlbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMzFDNEU0RDE2
RTAyQUE2MDAyRjc5NTcgLyogT0VTVGV4dHVyZUhhbGZGbG9hdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMzFDNEU0QzE2RTAyQUE2MDAyRjc5NTcg
LyogT0VTVGV4dHVyZUhhbGZGbG9hdC5jcHAgKi87IH07CiAJCUEzMUM0RTRGMTZFMDJBQjQwMDJG
Nzk1NyAvKiBPRVNUZXh0dXJlSGFsZkZsb2F0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMzFDNEU0RTE2RTAyQUI0MDAyRjc5NTcgLyogT0VTVGV4dHVy
ZUhhbGZGbG9hdC5oICovOyB9OwpAQCAtMTEwNDIsMTAgKzExMDQ5LDE3IEBACiAJCUExN0M4MTIx
MEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSFRNTEVsZW1lbnRGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUExODg5MEFDMUFBMTNGMjUwMDI2QzMwMSAvKiBQYXJlbnRhbENvbnRyb2xz
Q29udGVudEZpbHRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBMTg4OTBBRDFBQTEzRjI1MDAyNkMzMDEgLyogUGFyZW50YWxDb250cm9sc0NvbnRl
bnRGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFyZW50YWxDb250
cm9sc0NvbnRlbnRGaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTE5QUVB
MUMxQUFBN0M0OTAwQjUyQjI1IC8qIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBMTlBRUExRDFBQUE4MDZFMDBCNTJCMjUgLyogSlNNb2NrQ29udGVudEZpbHRlclNldHRp
bmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTW9ja0NvbnRl
bnRGaWx0ZXJTZXR0aW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExOUFF
QTFFMUFBQTgwNkUwMEI1MkIyNSAvKiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExOUQ5MzQ0MUE5RkVDNzIwMEI0NkMy
NCAvKiBORUZpbHRlclNvdXJjZVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBORUZpbHRlclNvdXJjZVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTlE
OTM0NTFBOUZFQzcyMDBCNDZDMjQgLyogV2ViRmlsdGVyRXZhbHVhdG9yU1BJLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZpbHRlckV2YWx1YXRvclNQSS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMTlEOTM0ODFBQTExQjFFMDBCNDZDMjQgLyogTmV0d29y
a0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTE5RDkzNDkxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRl
bnNpb25Db250ZW50RmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5l
dHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUExQjVCMjlDMUFBQTg0NkUwMDhCNjA0MiAvKiBNb2NrQ29udGVudEZpbHRlclNldHRpbmdz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vY2tDb250ZW50Rmls
dGVyU2V0dGluZ3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMUI1QjI5RDFB
QUE4NDZFMDA4QjYwNDIgLyogTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExQkY2QjgwMUFBOTZDN0QwMEFGNEE4QSAvKiBNb2Nr
Q29udGVudEZpbHRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBN
b2NrQ29udGVudEZpbHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExQkY2
QjgxMUFBOTZDN0QwMEFGNEE4QSAvKiBNb2NrQ29udGVudEZpbHRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNb2NrQ29udGVudEZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBMUM3OTcxQzE4ODNFNTFGMDAwRjVFMUYgLyogRE9NSFRNTFRleHRBcmVh
RWxlbWVudFByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRN
TFRleHRBcmVhRWxlbWVudFByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTFDN0ZBQTExMzNBNUQzNTAwRDY3MzJEIC8qIEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExREU3MTJCMTg2MTJBQzEwMDczNDE5MiAv
KiBUb3VjaEV2ZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBU
b3VjaEV2ZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTA1Myw2ICsx
MTA2Nyw3IEBACiAJCUExRTExNTQzMTMwMTVDM0QwMDU0QUM4QyAvKiBEaXN0YW50TGlnaHRTb3Vy
Y2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRGlzdGFudExpZ2h0
U291cmNlLmNwcDsgcGF0aCA9IGZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFFMTE1NDUxMzAxNUM0RTAwNTRBQzhDIC8qIFBvaW50
TGlnaHRTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUG9p
bnRMaWdodFNvdXJjZS5jcHA7IHBhdGggPSBmaWx0ZXJzL1BvaW50TGlnaHRTb3VyY2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUUxMTU0NzEzMDE1QzVEMDA1NEFDOEMgLyog
U3BvdExpZ2h0U291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFNwb3RMaWdodFNvdXJjZS5jcHA7IHBhdGggPSBmaWx0ZXJzL1Nwb3RMaWdodFNvdXJjZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExRTVCMzFEMUFBRDFEQTQwMDZFQkVGQiAv
KiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3NDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzQ3VzdG9tLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTIwOEUyMjJBNTZBMEM3NTc1RjJBNzJF
IC8qIFJlbmRlck1hdGhNTE1lbmNsb3NlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFJlbmRlck1hdGhNTE1lbmNsb3NlLmg7IHBhdGggPSByZW5kZXJpbmcvbWF0aG1sL1JlbmRl
ck1hdGhNTE1lbmNsb3NlLmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJQTJCOTIx
NzIxNkM1Q0M0MjAwNDFEQ0Q5IC8qIEludFJlY3RFeHRlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW50UmVjdEV4dGVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBMzFDNEU0QzE2RTAyQUE2MDAyRjc5NTcgLyogT0VTVGV4dHVyZUhhbGZGbG9hdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBPRVNUZXh0dXJlSGFsZkZsb2F0
LmNwcDsgcGF0aCA9IGNhbnZhcy9PRVNUZXh0dXJlSGFsZkZsb2F0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NzE3LDYgKzE1NzMyLDExIEBACiAJCQkJQ0Q1MzkzQ0MxNzVE
Q0NFNjAwQzA3MTIzIC8qIE1lbW9yeUluZm8uaWRsICovLAogCQkJCUNEQzI2QjNDMTYwQTYyQjAw
MDI2NzU3QiAvKiBNb2NrQ0RNLmNwcCAqLywKIAkJCQlDREMyNkIzRDE2MEE2MkIwMDAyNjc1N0Ig
LyogTW9ja0NETS5oICovLAorCQkJCUExQkY2QjgwMUFBOTZDN0QwMEFGNEE4QSAvKiBNb2NrQ29u
dGVudEZpbHRlci5jcHAgKi8sCisJCQkJQTFCRjZCODExQUE5NkM3RDAwQUY0QThBIC8qIE1vY2tD
b250ZW50RmlsdGVyLmggKi8sCisJCQkJQTFCNUIyOUMxQUFBODQ2RTAwOEI2MDQyIC8qIE1vY2tD
b250ZW50RmlsdGVyU2V0dGluZ3MuY3BwICovLAorCQkJCUExQjVCMjlEMUFBQTg0NkUwMDhCNjA0
MiAvKiBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmggKi8sCisJCQkJQTE5QUVBMUMxQUFBN0M0
OTAwQjUyQjI1IC8qIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaWRsICovLAogCQkJCTJEQUFF
MzJDMTlEQ0FGNjAwMEUwMDJEMiAvKiBNb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwICovLAogCQkJ
CTJEQUFFMzJEMTlEQ0FGNjAwMEUwMDJEMiAvKiBNb2NrUGFnZU92ZXJsYXlDbGllbnQuaCAqLywK
IAkJCQlFQjA4MUNEODE2OTYwODQ0MDA1NTM3MzAgLyogVHlwZUNvbnZlcnNpb25zLmggKi8sCkBA
IC0xNTczOSw2ICsxNTc1OSw4IEBACiAJCQkJQTdCNEVBNjkxNEM5MzQ4NDAwQzhGNUJGIC8qIEpT
TWFsbG9jU3RhdGlzdGljcy5oICovLAogCQkJCUNENTM5M0QxMTc1RTAxODYwMEMwNzEyMyAvKiBK
U01lbW9yeUluZm8uY3BwICovLAogCQkJCUNENTM5M0QyMTc1RTAxODYwMEMwNzEyMyAvKiBKU01l
bW9yeUluZm8uaCAqLywKKwkJCQlBMTlBRUExRDFBQUE4MDZFMDBCNTJCMjUgLyogSlNNb2NrQ29u
dGVudEZpbHRlclNldHRpbmdzLmNwcCAqLywKKwkJCQlBMTlBRUExRTFBQUE4MDZFMDBCNTJCMjUg
LyogSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmggKi8sCiAJCQkJRUJGNTEyMUExNjk2NDk2
QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmNwcCAqLywKIAkJCQlFQkY1MTIxQjE2OTY0
OTZDMDA1NkJEMjUgLyogSlNUeXBlQ29udmVyc2lvbnMuaCAqLywKIAkJCSk7CkBAIC0yMTE0NCw2
ICsyMTE2Niw3IEBACiAJCQkJNDEwQjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2
ZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlFMUFERUQ0NjBFNzZCOEREMDA0QTFBNUUgLyogSlNNZXNz
YWdlUG9ydEN1c3RvbS5jcHAgKi8sCiAJCQkJNDFGNTg0QzYxMDQ2NTJDQjAwOUNBQTY0IC8qIEpT
TWVzc2FnZVBvcnRDdXN0b20uaCAqLywKKwkJCQlBMUU1QjMxRDFBQUQxREE0MDA2RUJFRkIgLyog
SlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzQ3VzdG9tLmNwcCAqLywKIAkJCQlDNkYwOTE3RTE0
M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCAqLywKIAkJCQlC
Q0Q5QzI1RjBDMTdBQTY3MDA1QzkwQTIgLyogSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwICovLAog
CQkJCTA3Mzc5NEU3MTlFRTMzNUMwMEU1QTA0NSAvKiBKU05hdmlnYXRvckN1c3RvbS5jcHAgKi8s
CkBAIC0yMzQ4MywxNSArMjM1MDYsMTggQEAKIAkJCWZpbGVzID0gKAogCQkJCTQxN0RBNkRBMTM3
MzRFNkUwMDdDNTdGQiAvKiBJbnRlcm5hbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QkY3RUUw
MTRDOTE3NUEwMDE0NDg5RCAvKiBJbnRlcm5hbFNldHRpbmdzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlBMUI1QjI5RjFBQUE4NDZGMDA4QjYwNDIgLyogTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTNFMjlFNUYxNjdBOEExOTAwNTg2RDNEIC8qIEludGVybmFs
U2V0dGluZ3NHZW5lcmF0ZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxN0RBNzFFMTM3MzVERkEw
MDdDNTdGQiAvKiBKU0ludGVybmFscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc0MEI1QTUxNEM5
MzVBQjAwQTc3RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTNFRDNGREYxNjdBODhFNzAwNjc2MkU2IC8qIEpTSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTc0MEI1OTUxNEM5MzVBQjAwQTc3RkE0IC8qIEpTTWFsbG9j
U3RhdGlzdGljcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTFCRjZCODMxQUE5NkM3RDAwQUY0QThB
IC8qIE1vY2tDb250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDUzOTNENDE3NUUw
MTg2MDBDMDcxMjMgLyogSlNNZW1vcnlJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlDQjhDRjAx
RDFBOTVERTQyMDAwRDUxMEIgLyogTWljcm9UYXNrVGVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RUJGNTEyMUQxNjk2NDk2QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDREMyNkI0MTE2MEE4Q0NFMDAyNjc1N0IgLyogTW9ja0NETS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQTE5QUVBMjExQUFBODA4NjAwQjUyQjI1IC8qIEpTTW9ja0NvbnRlbnRGaWx0
ZXJTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ5N0YwNDgxOURENDE0MDAwMUVFOUMz
IC8qIE1vY2tQYWdlT3ZlcmxheUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUE1RjNCOEQx
NkNDMzNEMTAwNDU1RUIwIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MTgxNUMxRjEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBw
b3J0LmggaW4gSGVhZGVycyAqLywKQEAgLTI3MjQ4LDggKzI3Mjc0LDEyIEBACiAJCQkJQTc0MEI1
QTcxNEM5MzVBRjAwQTc3RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDQjhDRjAxRjFBOTVERTU5MDAwRDUxMEIgLyogTWljcm9UYXNrVGVzdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1M0VEM0ZERTE2N0E4OEU3MDA2NzYyRTYgLyogSlNJbnRlcm5hbFNl
dHRpbmdzR2VuZXJhdGVkLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUExRTVCMzFGMUFBRDFEQTQw
MDZFQkVGQiAvKiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3NDdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQTFCNUIyOUUxQUFBODQ2RTAwOEI2MDQyIC8qIE1vY2tDb250ZW50RmlsdGVy
U2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc0MEI1OTcxNEM5MzVBRjAwQTc3RkE0
IC8qIEpTTWFsbG9jU3RhdGlzdGljcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDUzOTNEMzE3
NUUwMTg2MDBDMDcxMjMgLyogSlNNZW1vcnlJbmZvLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUEx
OUFFQTIyMUFBQTgwOEEwMEI1MkIyNSAvKiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQTFCRjZCODIxQUE5NkM3RDAwQUY0QThBIC8qIE1vY2tDb250
ZW50RmlsdGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUVCRjUxMjFDMTY5NjQ5NkMwMDU2QkQy
NSAvKiBKU1R5cGVDb252ZXJzaW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREMyNkI0MDE2
MEE4Q0M2MDAyNjc1N0IgLyogTW9ja0NETS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDk3RjA0
NzE5REQ0MTNDMDAxRUU5QzMgLyogTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2NrQ29udGVu
dEZpbHRlclNldHRpbmdzQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nc0N1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjIwYjIxOGNm
ZjBiZmUxNjVmZDcyNWVjNjlmYjEwZTk3YjdhOTgxOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nc0N1c3RvbS5j
cHAKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmgiCisKKyNpZiBFTkFCTEUoQ09O
VEVOVF9GSUxURVJJTkcpCisKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJN
b2NrQ29udGVudEZpbHRlclNldHRpbmdzLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworLy8gTXVzdCBiZSBrZXB0IGluIHN5bmMgd2l0aCB2YWx1ZXMg
aW4gTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5pZGwuCitjb25zdCB1aW50OF90IGRlY2lzaW9u
UG9pbnRBZnRlclJlc3BvbnNlID0gMDsKK2NvbnN0IHVpbnQ4X3QgZGVjaXNpb25Qb2ludEFmdGVy
QWRkRGF0YSA9IDE7Citjb25zdCB1aW50OF90IGRlY2lzaW9uUG9pbnRBZnRlckZpbmlzaGVkQWRk
aW5nRGF0YSA9IDI7Citjb25zdCB1aW50OF90IGRlY2lzaW9uQWxsb3cgPSAwOworY29uc3QgdWlu
dDhfdCBkZWNpc2lvbkJsb2NrID0gMTsKKworSlNDOjpKU1ZhbHVlIEpTTW9ja0NvbnRlbnRGaWx0
ZXJTZXR0aW5nczo6ZGVjaXNpb25Qb2ludChKU0M6OkV4ZWNTdGF0ZSopIGNvbnN0Cit7CisgICAg
c3dpdGNoIChpbXBsKCkuZGVjaXNpb25Qb2ludCgpKSB7CisgICAgY2FzZSBNb2NrQ29udGVudEZp
bHRlclNldHRpbmdzOjpEZWNpc2lvblBvaW50OjpBZnRlclJlc3BvbnNlOgorICAgICAgICByZXR1
cm4ganNOdW1iZXIoZGVjaXNpb25Qb2ludEFmdGVyUmVzcG9uc2UpOworICAgIGNhc2UgTW9ja0Nv
bnRlbnRGaWx0ZXJTZXR0aW5nczo6RGVjaXNpb25Qb2ludDo6QWZ0ZXJBZGREYXRhOgorICAgICAg
ICByZXR1cm4ganNOdW1iZXIoZGVjaXNpb25Qb2ludEFmdGVyQWRkRGF0YSk7CisgICAgY2FzZSBN
b2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpEZWNpc2lvblBvaW50OjpBZnRlckZpbmlzaGVkQWRk
aW5nRGF0YToKKyAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGRlY2lzaW9uUG9pbnRBZnRlckZpbmlz
aGVkQWRkaW5nRGF0YSk7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIHsgfTsKK30KKwordm9pZCBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnNldERl
Y2lzaW9uUG9pbnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK3sK
KyAgICB1aW50OF90IG5hdGl2ZVZhbHVlIHsgdG9VSW50OChleGVjLCB2YWx1ZSwgRW5mb3JjZVJh
bmdlKSB9OworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgc3dpdGNoIChuYXRpdmVWYWx1ZSkgeworICAgIGNhc2UgZGVjaXNpb25Qb2ludEFmdGVy
UmVzcG9uc2U6CisgICAgICAgIGltcGwoKS5zZXREZWNpc2lvblBvaW50KE1vY2tDb250ZW50Rmls
dGVyU2V0dGluZ3M6OkRlY2lzaW9uUG9pbnQ6OkFmdGVyUmVzcG9uc2UpOworICAgICAgICByZXR1
cm47CisgICAgY2FzZSBkZWNpc2lvblBvaW50QWZ0ZXJBZGREYXRhOgorICAgICAgICBpbXBsKCku
c2V0RGVjaXNpb25Qb2ludChNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpEZWNpc2lvblBvaW50
OjpBZnRlckFkZERhdGEpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBkZWNpc2lvblBvaW50
QWZ0ZXJGaW5pc2hlZEFkZGluZ0RhdGE6CisgICAgICAgIGltcGwoKS5zZXREZWNpc2lvblBvaW50
KE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OkRlY2lzaW9uUG9pbnQ6OkFmdGVyRmluaXNoZWRB
ZGRpbmdEYXRhKTsKKyAgICAgICAgcmV0dXJuOworICAgIGRlZmF1bHQ6CisgICAgICAgIHRocm93
VHlwZUVycm9yKGV4ZWMsIFN0cmluZzo6Zm9ybWF0KCIldSBpcyBub3QgYSB2YWxpZCBkZWNpc2lv
blBvaW50IHZhbHVlLiIsIG5hdGl2ZVZhbHVlKSk7CisgICAgfQorfQorCitKU0M6OkpTVmFsdWUg
SlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpkZWNpc2lvbihKU0M6OkV4ZWNTdGF0ZSopIGNv
bnN0Cit7CisgICAgc3dpdGNoIChpbXBsKCkuZGVjaXNpb24oKSkgeworICAgIGNhc2UgTW9ja0Nv
bnRlbnRGaWx0ZXJTZXR0aW5nczo6RGVjaXNpb246OkFsbG93OgorICAgICAgICByZXR1cm4ganNO
dW1iZXIoZGVjaXNpb25BbGxvdyk7CisgICAgY2FzZSBNb2NrQ29udGVudEZpbHRlclNldHRpbmdz
OjpEZWNpc2lvbjo6QmxvY2s6CisgICAgICAgIHJldHVybiBqc051bWJlcihkZWNpc2lvbkJsb2Nr
KTsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4geyB9Owor
fQorCit2b2lkIEpTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6c2V0RGVjaXNpb24oSlNDOjpF
eGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICB1aW50OF90IG5hdGl2
ZVZhbHVlIHsgdG9VSW50OChleGVjLCB2YWx1ZSwgRW5mb3JjZVJhbmdlKSB9OworICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc3dpdGNoIChuYXRp
dmVWYWx1ZSkgeworICAgIGNhc2UgZGVjaXNpb25BbGxvdzoKKyAgICAgICAgaW1wbCgpLnNldERl
Y2lzaW9uKE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OkRlY2lzaW9uOjpBbGxvdyk7CisgICAg
ICAgIHJldHVybjsKKyAgICBjYXNlIGRlY2lzaW9uQmxvY2s6CisgICAgICAgIGltcGwoKS5zZXRE
ZWNpc2lvbihNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpEZWNpc2lvbjo6QmxvY2spOworICAg
ICAgICByZXR1cm47CisgICAgZGVmYXVsdDoKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZXhlYywg
U3RyaW5nOjpmb3JtYXQoIiV1IGlzIG5vdCBhIHZhbGlkIGRlY2lzaW9uIHZhbHVlLiIsIG5hdGl2
ZVZhbHVlKSk7CisgICAgfQorfQorCit9OyAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vQ29udGVudEZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250
ZW50RmlsdGVyLmNwcAppbmRleCBjOTU4NTZmYzc3YjVjZTRkZTQ0YTdlMTQ3YThhNGNiZjE5MTVj
NTI4Li44NDQ1YjhkM2JlZjI5ZjAwMTc1MDA0YzgyNWFlNzk1YWRjZGNjNDQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmNwcApAQCAtMzUsMjcgKzM1LDE2IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IENvbnRlbnRGaWx0ZXJUeXBlIHsKLSAgICBj
b25zdCBzdGQ6OmZ1bmN0aW9uPGJvb2woY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpPiBjYW5IYW5k
bGVSZXNwb25zZTsKLSAgICBjb25zdCBzdGQ6OmZ1bmN0aW9uPHN0ZDo6dW5pcXVlX3B0cjxDb250
ZW50RmlsdGVyPihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik+IGNyZWF0ZTsKLX07Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotc3RhdGljIGlubGluZSBDb250ZW50RmlsdGVyVHlwZSBjb250ZW50
RmlsdGVyVHlwZSgpCi17Ci0gICAgcmV0dXJuIHsgVDo6Y2FuSGFuZGxlUmVzcG9uc2UsIFQ6OmNy
ZWF0ZSB9OwotfQotCi1zdGF0aWMgY29uc3QgVmVjdG9yPENvbnRlbnRGaWx0ZXJUeXBlPiYgY29u
dGVudEZpbHRlclR5cGVzKCkKK1ZlY3RvcjxDb250ZW50RmlsdGVyOjpUeXBlPiYgQ29udGVudEZp
bHRlcjo6dHlwZXMoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8Q29udGVu
dEZpbHRlclR5cGU+PiB0eXBlcygKLSAgICAgICAgVmVjdG9yPENvbnRlbnRGaWx0ZXJUeXBlPih7
Ci0gICAgICAgICAgICBjb250ZW50RmlsdGVyVHlwZTxQYXJlbnRhbENvbnRyb2xzQ29udGVudEZp
bHRlcj4oKSwKKyAgICBzdGF0aWMgV1RGOjpOZXZlckRlc3Ryb3llZDxWZWN0b3I8Q29udGVudEZp
bHRlcjo6VHlwZT4+IHR5cGVzIHsKKyAgICAgICAgVmVjdG9yPENvbnRlbnRGaWx0ZXI6OlR5cGU+
IHsKKyAgICAgICAgICAgIHR5cGU8UGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXI+KCksCiAj
aWYgSEFWRShORV9GSUxURVJfU09VUkNFKQotICAgICAgICAgICAgY29udGVudEZpbHRlclR5cGU8
TmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI+KCkKKyAgICAgICAgICAgIHR5cGU8TmV0d29y
a0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI+KCkKICNlbmRpZgotICAgICAgICB9KQotICAgICk7Cisg
ICAgICAgIH0KKyAgICB9OwogICAgIHJldHVybiB0eXBlczsKIH0KIApAQCAtNzksNyArNjgsNyBA
QCBwcml2YXRlOgogc3RkOjp1bmlxdWVfcHRyPENvbnRlbnRGaWx0ZXI+IENvbnRlbnRGaWx0ZXI6
OmNyZWF0ZUlmTmVlZGVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAg
IENvbnRlbnRGaWx0ZXJDb2xsZWN0aW9uOjpDb250YWluZXIgZmlsdGVyczsKLSAgICBmb3IgKGF1
dG8mIHR5cGUgOiBjb250ZW50RmlsdGVyVHlwZXMoKSkgeworICAgIGZvciAoYXV0byYgdHlwZSA6
IHR5cGVzKCkpIHsKICAgICAgICAgaWYgKHR5cGUuY2FuSGFuZGxlUmVzcG9uc2UocmVzcG9uc2Up
KQogICAgICAgICAgICAgZmlsdGVycy5hcHBlbmQodHlwZS5jcmVhdGUocmVzcG9uc2UpKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmgKaW5kZXggZjM2ODc4N2M5
MDNiZDNmYjRkNGIxZGYwMWQxMjA3OTVhNDc1MmI3Yi4uMWJmZTEzNmEyOTg3ZjYzMDBmNzVlYTc2
OWJkYmEyMzkyMGZlNzY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29u
dGVudEZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRGaWx0ZXIu
aApAQCAtMjksOCArMjksNyBAQAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKIAogI2lu
Y2x1ZGUgIkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlci5oIgotCi0jZGVmaW5lIEhBVkVfTkVf
RklMVEVSX1NPVVJDRSBUQVJHRVRfT1NfRU1CRURERUQgfHwgKCFUQVJHRVRfT1NfSVBIT05FICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwICYmIENQVShYODZfNjQp
KQorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0z
OCwxNiArMzcsMjUgQEAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIAogY2xhc3MgQ29udGVudEZp
bHRlciB7CiBwdWJsaWM6CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0YXRpYyB2b2lkIGFk
ZFR5cGUoKSB7IHR5cGVzKCkuYXBwZW5kKHR5cGU8VD4oKSk7IH0KKwogICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8Q29udGVudEZpbHRlcj4gY3JlYXRlSWZOZWVkZWQoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYpOwogCiAgICAgdmlydHVhbCB+Q29udGVudEZpbHRlcigpIHsgfQotCiAgICAgdmly
dHVhbCB2b2lkIGFkZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBmaW5pc2hlZEFkZGluZ0RhdGEoKSA9IDA7CiAgICAgdmlydHVhbCBib29s
IG5lZWRzTW9yZURhdGEoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGRpZEJsb2NrRGF0
YSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGdldFJlcGxhY2VtZW50RGF0
YShpbnQmIGxlbmd0aCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgQ29udGVudEZpbHRlclVuYmxv
Y2tIYW5kbGVyIHVuYmxvY2tIYW5kbGVyKCkgY29uc3QgPSAwOworCitwcml2YXRlOgorICAgIHN0
cnVjdCBUeXBlIHsKKyAgICAgICAgY29uc3Qgc3RkOjpmdW5jdGlvbjxib29sKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKT4gY2FuSGFuZGxlUmVzcG9uc2U7CisgICAgICAgIGNvbnN0IHN0ZDo6ZnVu
Y3Rpb248c3RkOjp1bmlxdWVfcHRyPENvbnRlbnRGaWx0ZXI+KGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKT4gY3JlYXRlOworICAgIH07CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0YXRpYyBU
eXBlIHR5cGUoKSB7IHJldHVybiB7IFQ6OmNhbkhhbmRsZVJlc3BvbnNlLCBUOjpjcmVhdGUgfTsg
fQorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBWZWN0b3I8VHlwZT4mIHR5cGVzKCk7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaAppbmRleCBm
MTljYzExNmIzOWM5MThkOTg2YTQ0MzFmZWYwODZhNDk1OTJlZGE1Li5mMzhlNjU3Njg0N2RlY2Yz
ZTU4MGNhNWYyNDc4Nzc1NDNiN2YyYjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmgKQEAg
LTMwLDYgKzMwLDggQEAKICNpbmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4KICNpbmNsdWRlIDx3dGYv
UmV0YWluUHRyLmg+CiAKKyNkZWZpbmUgSEFWRV9ORV9GSUxURVJfU09VUkNFIFRBUkdFVF9PU19F
TUJFRERFRCB8fCAoIVRBUkdFVF9PU19JUEhPTkUgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDEwMDAgJiYgQ1BVKFg4Nl82NCkpCisKIE9CSkNfQ0xBU1MgTkVGaWx0ZXJT
b3VyY2U7CiBPQkpDX0NMQVNTIE5TTXV0YWJsZURhdGE7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAppbmRleCAyY2JmODI0NmRhMTBhMGNkNGQ4ZTlhNTRkNjRkZjIxYmRmOWE0MjUx
Li41M2NmNTBjOWUzMTRiMjhkNTQ0Yzk5M2RjYjZjYzQxYzJlMDM4NGU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xNzUsNiArMTc1LDEwIEBACiAjaW5jbHVkZSAiRGlj
dGlvbmFyeUxvb2t1cC5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcp
CisjaW5jbHVkZSAiTW9ja0NvbnRlbnRGaWx0ZXIuaCIKKyNlbmRpZgorCiB1c2luZyBKU0M6OkNv
ZGVCbG9jazsKIHVzaW5nIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOwogdXNpbmcgSlNDOjpKU0Z1
bmN0aW9uOwpAQCAtMzE0LDYgKzMxOCwxMCBAQCB2b2lkIEludGVybmFsczo6cmVzZXRUb0NvbnNp
c3RlbnRTdGF0ZShQYWdlKiBwYWdlKQogI2VuZGlmCiAKICAgICBNb2NrUGFnZU92ZXJsYXlDbGll
bnQ6OnNpbmdsZXRvbigpLnVuaW5zdGFsbEFsbE92ZXJsYXlzKCk7CisKKyNpZiBFTkFCTEUoQ09O
VEVOVF9GSUxURVJJTkcpCisgICAgTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6cmVzZXQoKTsK
KyNlbmRpZgogfQogCiBJbnRlcm5hbHM6OkludGVybmFscyhEb2N1bWVudCogZG9jdW1lbnQpCkBA
IC0zMjksNiArMzM3LDEwIEBAIEludGVybmFsczo6SW50ZXJuYWxzKERvY3VtZW50KiBkb2N1bWVu
dCkKICAgICBlbmFibGVNb2NrUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKCk7CiAgICAgV2ViQ29y
ZTo6cHJvdmlkZVVzZXJNZWRpYVRvKGRvY3VtZW50LT5wYWdlKCksIG5ldyBVc2VyTWVkaWFDbGll
bnRNb2NrKCkpOwogI2VuZGlmCisKKyNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCisgICAg
TW9ja0NvbnRlbnRGaWx0ZXI6OmVuc3VyZUluc3RhbGxlZCgpOworI2VuZGlmCiB9CiAKIERvY3Vt
ZW50KiBJbnRlcm5hbHM6OmNvbnRleHREb2N1bWVudCgpIGNvbnN0CkBAIC0yNTQwLDQgKzI1NTIs
MTEgQEAgdm9pZCBJbnRlcm5hbHM6OnF1ZXVlTWljcm9UYXNrKGludCB0ZXN0TnVtYmVyKQogICAg
ICAgICBNaWNyb1Rhc2tRdWV1ZTo6c2luZ2xldG9uKCkucXVldWVNaWNyb1Rhc2soTWljcm9UYXNr
VGVzdDo6Y3JlYXRlKGNvbnRleHREb2N1bWVudCgpLT5jcmVhdGVXZWFrUHRyKCksIHRlc3ROdW1i
ZXIpKTsKIH0KIAorI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKK01vY2tDb250ZW50Rmls
dGVyU2V0dGluZ3MmIEludGVybmFsczo6bW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncygpCit7Cisg
ICAgcmV0dXJuIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnNpbmdsZXRvbigpOworfQorI2Vu
ZGlmCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGM4NzhmNTkwNmNjZWI1
ODA5MDIzMGJkNjQxMjBhNjgwNmMwY2NlOWQuLjYwMzE0OTc2MmU4MzBlZTY2MTQxYWUxMDMyZGJi
NDZlMTQ4NWU1YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNjUsNiArNjUs
MTAgQEAgY2xhc3MgVGltZVJhbmdlczsKIGNsYXNzIFR5cGVDb252ZXJzaW9uczsKIGNsYXNzIFhN
TEh0dHBSZXF1ZXN0OwogCisjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQorY2xhc3MgTW9j
a0NvbnRlbnRGaWx0ZXJTZXR0aW5nczsKKyNlbmRpZgorCiB0eXBlZGVmIGludCBFeGNlcHRpb25D
b2RlOwogCiBjbGFzcyBJbnRlcm5hbHMgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnRlcm5hbHM+CkBA
IC0zNjgsNiArMzcyLDEwIEBAIHB1YmxpYzoKICAgICBSZWZQdHI8RmlsZT4gY3JlYXRlRmlsZShj
b25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHF1ZXVlTWljcm9UYXNrKGludCk7CiAKKyNpZiBFTkFC
TEUoQ09OVEVOVF9GSUxURVJJTkcpCisgICAgTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncyYgbW9j
a0NvbnRlbnRGaWx0ZXJTZXR0aW5ncygpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgZXhwbGlj
aXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAgRG9jdW1lbnQqIGNvbnRleHREb2N1bWVudCgp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDQwNmE5MmJkZmNj
MDJjMTEzZjAxMWQ3MzU2OWU4N2Q1NjgxOTc1MDMuLjIyY2QyMmRkYzllNmRlMDE5NjcyMTQ2ZTE3
MmY5NWFkM2Q3MzgwZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTMy
Myw0ICszMjMsNiBAQCBlbnVtIFBhZ2VPdmVybGF5VHlwZSB7CiAgICAgCiAgICAgRmlsZSBjcmVh
dGVGaWxlKERPTVN0cmluZyB1cmwpOwogICAgIHZvaWQgcXVldWVNaWNyb1Rhc2sobG9uZyB0ZXN0
TnVtYmVyKTsKKworICAgIFtDb25kaXRpb25hbD1DT05URU5UX0ZJTFRFUklOR10gcmVhZG9ubHkg
YXR0cmlidXRlIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MgbW9ja0NvbnRlbnRGaWx0ZXJTZXR0
aW5nczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50
RmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXIuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjcxZWVkMGNmNzY4MWFkODIyOWEzYjRlZDhmN2Q1NTE2YWIwYjVjZjEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVy
LmNwcApAQCAtMCwwICsxLDEwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJNb2NrQ29udGVudEZpbHRlci5oIgorCisjaWYgRU5BQkxFKENPTlRFTlRfRklM
VEVSSU5HKQorCisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgTW9ja0NvbnRlbnRGaWx0ZXI6OmVuc3Vy
ZUluc3RhbGxlZCgpCit7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOworICAg
IHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsKKyAgICAgICAgQ29udGVudEZpbHRlcjo6YWRk
VHlwZTxNb2NrQ29udGVudEZpbHRlcj4oKTsKKyAgICB9KTsKK30KKworYm9vbCBNb2NrQ29udGVu
dEZpbHRlcjo6Y2FuSGFuZGxlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpCit7Cisg
ICAgcmV0dXJuIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnNpbmdsZXRvbigpLmVuYWJsZWQo
KTsKK30KKworc3RkOjp1bmlxdWVfcHRyPE1vY2tDb250ZW50RmlsdGVyPiBNb2NrQ29udGVudEZp
bHRlcjo6Y3JlYXRlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1vY2tDb250ZW50RmlsdGVyPihyZXNwb25zZSk7Cit9CisK
K01vY2tDb250ZW50RmlsdGVyOjpNb2NrQ29udGVudEZpbHRlcihjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJikKK3sKKyAgICBtYXliZURldGVybWluZVN0YXR1cyhNb2NrQ29udGVudEZpbHRlclNldHRp
bmdzOjpEZWNpc2lvblBvaW50OjpBZnRlclJlc3BvbnNlKTsKK30KKwordm9pZCBNb2NrQ29udGVu
dEZpbHRlcjo6YWRkRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQoreworICAgIG1f
cmVwbGFjZW1lbnREYXRhLmFwcGVuZChkYXRhLCBsZW5ndGgpOworICAgIG1heWJlRGV0ZXJtaW5l
U3RhdHVzKE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OkRlY2lzaW9uUG9pbnQ6OkFmdGVyQWRk
RGF0YSk7Cit9CisKK3ZvaWQgTW9ja0NvbnRlbnRGaWx0ZXI6OmZpbmlzaGVkQWRkaW5nRGF0YSgp
Cit7CisgICAgbWF5YmVEZXRlcm1pbmVTdGF0dXMoTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6
RGVjaXNpb25Qb2ludDo6QWZ0ZXJGaW5pc2hlZEFkZGluZ0RhdGEpOworfQorCitib29sIE1vY2tD
b250ZW50RmlsdGVyOjpuZWVkc01vcmVEYXRhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdGF0
dXMgPT0gU3RhdHVzOjpOZWVkc01vcmVEYXRhOworfQorCitib29sIE1vY2tDb250ZW50RmlsdGVy
OjpkaWRCbG9ja0RhdGEoKSBjb25zdAoreworICAgIHJldHVybiBtX3N0YXR1cyA9PSBTdGF0dXM6
OkJsb2NrZWQ7Cit9CisKK2NvbnN0IGNoYXIqIE1vY2tDb250ZW50RmlsdGVyOjpnZXRSZXBsYWNl
bWVudERhdGEoaW50JiBsZW5ndGgpIGNvbnN0Cit7CisgICAgbGVuZ3RoID0gbV9yZXBsYWNlbWVu
dERhdGEuc2l6ZSgpOworICAgIHJldHVybiBtX3JlcGxhY2VtZW50RGF0YS5kYXRhKCk7Cit9CisK
K0NvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciBNb2NrQ29udGVudEZpbHRlcjo6dW5ibG9ja0hh
bmRsZXIoKSBjb25zdAoreworICAgIHJldHVybiB7IH07Cit9CisKK3ZvaWQgTW9ja0NvbnRlbnRG
aWx0ZXI6Om1heWJlRGV0ZXJtaW5lU3RhdHVzKE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OkRl
Y2lzaW9uUG9pbnQgZGVjaXNpb25Qb2ludCkKK3sKKyAgICBpZiAobV9zdGF0dXMgIT0gU3RhdHVz
OjpOZWVkc01vcmVEYXRhIHx8IGRlY2lzaW9uUG9pbnQgIT0gTW9ja0NvbnRlbnRGaWx0ZXJTZXR0
aW5nczo6c2luZ2xldG9uKCkuZGVjaXNpb25Qb2ludCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX3N0YXR1cyA9IE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnNpbmdsZXRvbigpLmRlY2lz
aW9uKCkgPT0gTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6RGVjaXNpb246OkFsbG93ID8gU3Rh
dHVzOjpBbGxvd2VkIDogU3RhdHVzOjpCbG9ja2VkOworICAgIGlmIChtX3N0YXR1cyAhPSBTdGF0
dXM6OkJsb2NrZWQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmVwbGFjZW1lbnREYXRhLmNs
ZWFyKCk7CisgICAgY29uc3QgQ1N0cmluZyB1dGY4QmxvY2tlZFN0cmluZyA9IE1vY2tDb250ZW50
RmlsdGVyU2V0dGluZ3M6OnNpbmdsZXRvbigpLmJsb2NrZWRTdHJpbmcoKS51dGY4KCk7CisgICAg
bV9yZXBsYWNlbWVudERhdGEuYXBwZW5kKHV0ZjhCbG9ja2VkU3RyaW5nLmRhdGEoKSwgdXRmOEJs
b2NrZWRTdHJpbmcubGVuZ3RoKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L01vY2tDb250ZW50RmlsdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzgzMTY1OTMzOTJkMGRjYzBiODc4NGQx
ZGNmM2FhYmYxYWEwODJiNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvTW9ja0NvbnRlbnRGaWx0ZXIuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBNb2NrQ29udGVudEZpbHRlcl9oCisjZGVmaW5lIE1vY2tDb250ZW50RmlsdGVyX2gKKwor
I2luY2x1ZGUgIkNvbnRlbnRGaWx0ZXIuaCIKKyNpbmNsdWRlICJNb2NrQ29udGVudEZpbHRlclNl
dHRpbmdzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTW9ja0NvbnRlbnRGaWx0
ZXIgZmluYWwgOiBwdWJsaWMgQ29udGVudEZpbHRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIHZv
aWQgZW5zdXJlSW5zdGFsbGVkKCk7CisgICAgc3RhdGljIGJvb2wgY2FuSGFuZGxlUmVzcG9uc2Uo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TW9j
a0NvbnRlbnRGaWx0ZXI+IGNyZWF0ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CisKKyAgICBl
eHBsaWNpdCBNb2NrQ29udGVudEZpbHRlcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CisKKyAg
ICB2b2lkIGFkZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBmaW5pc2hlZEFkZGluZ0RhdGEoKSBvdmVycmlkZTsKKyAgICBib29sIG5lZWRzTW9y
ZURhdGEoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGRpZEJsb2NrRGF0YSgpIGNvbnN0IG92
ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGdldFJlcGxhY2VtZW50RGF0YShpbnQmIGxlbmd0aCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIHVuYmxvY2tI
YW5kbGVyKCkgY29uc3Qgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgZW51bSBjbGFzcyBTdGF0
dXMgeworICAgICAgICBOZWVkc01vcmVEYXRhLAorICAgICAgICBBbGxvd2VkLAorICAgICAgICBC
bG9ja2VkCisgICAgfTsKKworICAgIHZvaWQgbWF5YmVEZXRlcm1pbmVTdGF0dXMoTW9ja0NvbnRl
bnRGaWx0ZXJTZXR0aW5nczo6RGVjaXNpb25Qb2ludCk7CisKKyAgICBWZWN0b3I8Y2hhcj4gbV9y
ZXBsYWNlbWVudERhdGE7CisgICAgU3RhdHVzIG1fc3RhdHVzIHsgU3RhdHVzOjpOZWVkc01vcmVE
YXRhIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBNb2NrQ29u
dGVudEZpbHRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDb250
ZW50RmlsdGVyU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVu
dEZpbHRlclNldHRpbmdzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjhkMjQ0MzgyMGM5YjQ0NTg5ZDk1ZjUw
OGExM2E4ZDllOTllZThmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1vY2tDb250ZW50RmlsdGVyU2V0
dGluZ3MuaCIKKworI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKKworI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01vY2tDb250ZW50
RmlsdGVyU2V0dGluZ3MmIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnNpbmdsZXRvbigpCit7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M+IHNl
dHRpbmdzOworICAgIHJldHVybiBzZXR0aW5nczsKK30KKwordm9pZCBNb2NrQ29udGVudEZpbHRl
clNldHRpbmdzOjpyZXNldCgpCit7CisgICAgc2luZ2xldG9uKCkgPSBNb2NrQ29udGVudEZpbHRl
clNldHRpbmdzKCk7Cit9CisKK01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6Ok1vY2tDb250ZW50
RmlsdGVyU2V0dGluZ3MoKQorICAgIDogbV9lbmFibGVkIHsgZmFsc2UgfQorICAgICwgbV9kZWNp
c2lvblBvaW50IHsgRGVjaXNpb25Qb2ludDo6QWZ0ZXJSZXNwb25zZSB9CisgICAgLCBtX2RlY2lz
aW9uIHsgRGVjaXNpb246OkFsbG93IH0KK3sKK30KKworfTsgLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFm
ODdjMWEyNmExYzA4YzExZTZhMWI2YWYwNjEzZWE0ZmZkMzJmZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oCkBAIC0w
LDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1vY2tDb250ZW50RmlsdGVyU2V0dGlu
Z3NfaAorI2RlZmluZSBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzX2gKKworI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3Mgewor
ICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxNb2NrQ29udGVudEZpbHRlclNldHRpbmdz
PjsKK3B1YmxpYzoKKyAgICBlbnVtIGNsYXNzIERlY2lzaW9uUG9pbnQgeworICAgICAgICBBZnRl
clJlc3BvbnNlLAorICAgICAgICBBZnRlckFkZERhdGEsCisgICAgICAgIEFmdGVyRmluaXNoZWRB
ZGRpbmdEYXRhCisgICAgfTsKKworICAgIGVudW0gY2xhc3MgRGVjaXNpb24geworICAgICAgICBB
bGxvdywKKyAgICAgICAgQmxvY2sKKyAgICB9OworCisgICAgc3RhdGljIE1vY2tDb250ZW50Rmls
dGVyU2V0dGluZ3MmIHNpbmdsZXRvbigpOworICAgIHN0YXRpYyB2b2lkIHJlc2V0KCk7CisKKyAg
ICAvLyBUcmljayB0aGUgZ2VuZXJhdGVkIGJpbmRpbmdzIGludG8gdGhpbmtpbmcgd2UncmUgUmVm
Q291bnRlZC4KKyAgICB2b2lkIHJlZigpIHsgfQorICAgIHZvaWQgZGVyZWYoKSB7IH0KKworICAg
IGJvb2wgZW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxlZDsgfQorICAgIHZvaWQgc2V0
RW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9lbmFibGVkID0gZW5hYmxlZDsgfQorCisgICAgY29u
c3QgU3RyaW5nJiBibG9ja2VkU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9ibG9ja2VkU3RyaW5n
OyB9CisgICAgdm9pZCBzZXRCbG9ja2VkU3RyaW5nKGNvbnN0IFN0cmluZyYgYmxvY2tlZFN0cmlu
ZykgeyBtX2Jsb2NrZWRTdHJpbmcgPSBibG9ja2VkU3RyaW5nOyB9CisKKyAgICBEZWNpc2lvblBv
aW50IGRlY2lzaW9uUG9pbnQoKSBjb25zdCB7IHJldHVybiBtX2RlY2lzaW9uUG9pbnQ7IH0KKyAg
ICB2b2lkIHNldERlY2lzaW9uUG9pbnQoRGVjaXNpb25Qb2ludCBkZWNpc2lvblBvaW50KSB7IG1f
ZGVjaXNpb25Qb2ludCA9IGRlY2lzaW9uUG9pbnQ7IH0KKworICAgIERlY2lzaW9uIGRlY2lzaW9u
KCkgY29uc3QgeyByZXR1cm4gbV9kZWNpc2lvbjsgfQorICAgIHZvaWQgc2V0RGVjaXNpb24oRGVj
aXNpb24gZGVjaXNpb24pIHsgbV9kZWNpc2lvbiA9IGRlY2lzaW9uOyB9CisKK3ByaXZhdGU6Cisg
ICAgTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncygpOworCisgICAgYm9vbCBtX2VuYWJsZWQ7Cisg
ICAgRGVjaXNpb25Qb2ludCBtX2RlY2lzaW9uUG9pbnQ7CisgICAgRGVjaXNpb24gbV9kZWNpc2lv
bjsKKyAgICBTdHJpbmcgbV9ibG9ja2VkU3RyaW5nOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nc19oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaWRsIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hYzA2ZGVkMmY1MGE3MDNiYzk5ZjZkNDhlZjM5NDhjNTJkM2RjMDRmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlclNldHRp
bmdzLmlkbApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFs
PUNPTlRFTlRfRklMVEVSSU5HLAorICAgIE5vSW50ZXJmYWNlT2JqZWN0LAorICAgIEltcGxlbWVu
dGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3Mg
eworICAgIGF0dHJpYnV0ZSBib29sZWFuIGVuYWJsZWQ7CisgICAgYXR0cmlidXRlIERPTVN0cmlu
ZyBibG9ja2VkU3RyaW5nOworCisgICAgY29uc3Qgb2N0ZXQgREVDSVNJT05fUE9JTlRfQUZURVJf
UkVTUE9OU0UgPSAwOworICAgIGNvbnN0IG9jdGV0IERFQ0lTSU9OX1BPSU5UX0FGVEVSX0FERF9E
QVRBID0gMTsKKyAgICBjb25zdCBvY3RldCBERUNJU0lPTl9QT0lOVF9BRlRFUl9GSU5JU0hFRF9B
RERJTkdfREFUQSA9IDI7CisgICAgW0N1c3RvbV0gYXR0cmlidXRlIG9jdGV0IGRlY2lzaW9uUG9p
bnQ7CisKKyAgICBjb25zdCBvY3RldCBERUNJU0lPTl9BTExPVyA9IDA7CisgICAgY29uc3Qgb2N0
ZXQgREVDSVNJT05fQkxPQ0sgPSAxOworICAgIFtDdXN0b21dIGF0dHJpYnV0ZSBvY3RldCBkZWNp
c2lvbjsKK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggNGYwOTM5MWNlYTlkZTAyZDFlNzI2MDBiYjg3ZmIwOTBjNDdjMjVl
MS4uZTZlNzVkNmEzYWYxNWY1Y2FjNmIzZDhmMzZkZjdlMmE4MTk4ZTMzNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIzIEBACisyMDE1LTAzLTA5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbQ29udGVudCBGaWx0ZXJpbmddIEFkZCB0ZXN0cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNDc1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjb250ZW50ZmlsdGVyaW5nL2FsbG93LWFm
dGVyLWFkZC1kYXRhLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbnRlbnRmaWx0
ZXJpbmcvYWxsb3ctYWZ0ZXItYWRkLWRhdGEuaHRtbDogQWRkZWQuCisgICAgICAgICogY29udGVu
dGZpbHRlcmluZy9hbGxvdy1hZnRlci1maW5pc2hlZC1hZGRpbmctZGF0YS1leHBlY3RlZC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBjb250ZW50ZmlsdGVyaW5nL2FsbG93LWFmdGVyLWZpbmlzaGVk
LWFkZGluZy1kYXRhLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbnRlbnRmaWx0ZXJpbmcvYWxs
b3ctYWZ0ZXItcmVzcG9uc2UtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY29udGVu
dGZpbHRlcmluZy9hbGxvdy1hZnRlci1yZXNwb25zZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBj
b250ZW50ZmlsdGVyaW5nL2Jsb2NrLWFmdGVyLWFkZC1kYXRhLWV4cGVjdGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGNvbnRlbnRmaWx0ZXJpbmcvYmxvY2stYWZ0ZXItYWRkLWRhdGEuaHRtbDog
QWRkZWQuCisgICAgICAgICogY29udGVudGZpbHRlcmluZy9ibG9jay1hZnRlci1maW5pc2hlZC1h
ZGRpbmctZGF0YS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb250ZW50ZmlsdGVy
aW5nL2Jsb2NrLWFmdGVyLWZpbmlzaGVkLWFkZGluZy1kYXRhLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGNvbnRlbnRmaWx0ZXJpbmcvYmxvY2stYWZ0ZXItcmVzcG9uc2UtZXhwZWN0ZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogY29udGVudGZpbHRlcmluZy9ibG9jay1hZnRlci1yZXNwb25zZS5o
dG1sOiBBZGRlZC4KKwogMjAxNS0wMy0wOCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRA
YXBwbGUuY29tPgogCiAgICAgICAgIExhc3QgdGVzdCBnYXJkZW5pbmcgYWZ0ZXIgcjE3Nzc3NCAo
Zm9yIHJlYWxzIHRoaXMgdGltZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0
ZXJpbmcvYWxsb3ctYWZ0ZXItYWRkLWRhdGEtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Nv
bnRlbnRmaWx0ZXJpbmcvYWxsb3ctYWZ0ZXItYWRkLWRhdGEtZXhwZWN0ZWQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wNjdiZmExOTIwMmIyMzcwNDZmMGUwNjI2MWYwMzllMWEyZTc0YjkyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9hbGxvdy1hZnRlci1hZGQtZGF0
YS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aWZyYW1l
IHNyYz0iZGF0YTp0ZXh0L2h0bWwsUEFTUyI+PC9pZnJhbWU+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jb250ZW50ZmlsdGVyaW5nL2FsbG93LWFmdGVyLWFkZC1kYXRhLmh0bWwgYi9MYXlvdXRU
ZXN0cy9jb250ZW50ZmlsdGVyaW5nL2FsbG93LWFmdGVyLWFkZC1kYXRhLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDAyOGJhODM1M2MwODRhMTA2MGMzMDZiYWZlOWVkMzI2NjBlMDhlMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvYWxsb3ctYWZ0ZXItYWRkLWRhdGEu
aHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdD4KK3ZhciBzZXR0
aW5ncyA9IHdpbmRvdy5pbnRlcm5hbHMubW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczsKK3NldHRp
bmdzLmVuYWJsZWQgPSB0cnVlOworc2V0dGluZ3MuYmxvY2tlZFN0cmluZyA9ICJGQUlMIjsKK3Nl
dHRpbmdzLmRlY2lzaW9uUG9pbnQgPSBzZXR0aW5ncy5ERUNJU0lPTl9QT0lOVF9BRlRFUl9BRERf
REFUQTsKK3NldHRpbmdzLmRlY2lzaW9uID0gc2V0dGluZ3MuREVDSVNJT05fQUxMT1c7Cis8L3Nj
cmlwdD4KKzxpZnJhbWUgc3JjPSJkYXRhOnRleHQvaHRtbCxQQVNTIj48L2lmcmFtZT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvYWxsb3ctYWZ0ZXItZmluaXNoZWQt
YWRkaW5nLWRhdGEtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcv
YWxsb3ctYWZ0ZXItZmluaXNoZWQtYWRkaW5nLWRhdGEtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wNjdiZmExOTIwMmIyMzcwNDZmMGUwNjI2MWYwMzllMWEyZTc0YjkyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9hbGxvdy1hZnRlci1maW5pc2hlZC1h
ZGRpbmctZGF0YS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMiBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aWZyYW1lIHNyYz0iZGF0YTp0ZXh0L2h0bWwsUEFTUyI+PC9pZnJhbWU+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jb250ZW50ZmlsdGVyaW5nL2FsbG93LWFmdGVyLWZpbmlzaGVkLWFkZGlu
Zy1kYXRhLmh0bWwgYi9MYXlvdXRUZXN0cy9jb250ZW50ZmlsdGVyaW5nL2FsbG93LWFmdGVyLWZp
bmlzaGVkLWFkZGluZy1kYXRhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmU4NGM0OWY0ZTQ4NTdjZTc0M2Q4
Y2YyNjRkNzViMjM2NDhhOTU5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRl
bnRmaWx0ZXJpbmcvYWxsb3ctYWZ0ZXItZmluaXNoZWQtYWRkaW5nLWRhdGEuaHRtbApAQCAtMCww
ICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdD4KK3ZhciBzZXR0aW5ncyA9IHdpbmRv
dy5pbnRlcm5hbHMubW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczsKK3NldHRpbmdzLmVuYWJsZWQg
PSB0cnVlOworc2V0dGluZ3MuYmxvY2tlZFN0cmluZyA9ICJGQUlMIjsKK3NldHRpbmdzLmRlY2lz
aW9uUG9pbnQgPSBzZXR0aW5ncy5ERUNJU0lPTl9QT0lOVF9BRlRFUl9GSU5JU0hFRF9BRERJTkdf
REFUQTsKK3NldHRpbmdzLmRlY2lzaW9uID0gc2V0dGluZ3MuREVDSVNJT05fQUxMT1c7Cis8L3Nj
cmlwdD4KKzxpZnJhbWUgc3JjPSJkYXRhOnRleHQvaHRtbCxQQVNTIj48L2lmcmFtZT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvYWxsb3ctYWZ0ZXItcmVzcG9uc2Ut
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvYWxsb3ctYWZ0ZXIt
cmVzcG9uc2UtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjdiZmExOTIwMmIyMzcwNDZmMGUw
NjI2MWYwMzllMWEyZTc0YjkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGVu
dGZpbHRlcmluZy9hbGxvdy1hZnRlci1yZXNwb25zZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEs
MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aWZyYW1lIHNyYz0iZGF0YTp0ZXh0L2h0bWwsUEFTUyI+
PC9pZnJhbWU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb250ZW50ZmlsdGVyaW5nL2FsbG93
LWFmdGVyLXJlc3BvbnNlLmh0bWwgYi9MYXlvdXRUZXN0cy9jb250ZW50ZmlsdGVyaW5nL2FsbG93
LWFmdGVyLXJlc3BvbnNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODU3OTgyNzcyYjBmZWMxYTIxZDI1OTcw
MDNkNDM1NmFmNDIyZWUzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRlbnRm
aWx0ZXJpbmcvYWxsb3ctYWZ0ZXItcmVzcG9uc2UuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHNjcmlwdD4KK3ZhciBzZXR0aW5ncyA9IHdpbmRvdy5pbnRlcm5hbHMubW9j
a0NvbnRlbnRGaWx0ZXJTZXR0aW5nczsKK3NldHRpbmdzLmVuYWJsZWQgPSB0cnVlOworc2V0dGlu
Z3MuYmxvY2tlZFN0cmluZyA9ICJGQUlMIjsKK3NldHRpbmdzLmRlY2lzaW9uUG9pbnQgPSBzZXR0
aW5ncy5ERUNJU0lPTl9QT0lOVF9BRlRFUl9SRVNQT05TRTsKK3NldHRpbmdzLmRlY2lzaW9uID0g
c2V0dGluZ3MuREVDSVNJT05fQUxMT1c7Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJkYXRhOnRl
eHQvaHRtbCxQQVNTIj48L2lmcmFtZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbnRlbnRm
aWx0ZXJpbmcvYmxvY2stYWZ0ZXItYWRkLWRhdGEtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2NvbnRlbnRmaWx0ZXJpbmcvYmxvY2stYWZ0ZXItYWRkLWRhdGEtZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42NTVmM2JjMGQzODAyMGU0ZmFkZjYyYjA1YmYzNzcxM2Y4NmU1ODE4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9ibG9jay1hZnRlci1hZGQt
ZGF0YS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aWZy
YW1lIHNyYz0iZGF0YTp0ZXh0L2h0bWwsIj48L2lmcmFtZT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NvbnRlbnRmaWx0ZXJpbmcvYmxvY2stYWZ0ZXItYWRkLWRhdGEuaHRtbCBiL0xheW91dFRl
c3RzL2NvbnRlbnRmaWx0ZXJpbmcvYmxvY2stYWZ0ZXItYWRkLWRhdGEuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41MTEwNjBmM2Q5YThkNTgwNzhiZjFlYmRiZmJhYzhkYWQ2ZTczNWZlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9ibG9jay1hZnRlci1hZGQtZGF0YS5o
dG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0PgordmFyIHNldHRp
bmdzID0gd2luZG93LmludGVybmFscy5tb2NrQ29udGVudEZpbHRlclNldHRpbmdzOworc2V0dGlu
Z3MuZW5hYmxlZCA9IHRydWU7CitzZXR0aW5ncy5ibG9ja2VkU3RyaW5nID0gIlBBU1MiOworc2V0
dGluZ3MuZGVjaXNpb25Qb2ludCA9IHNldHRpbmdzLkRFQ0lTSU9OX1BPSU5UX0FGVEVSX0FERF9E
QVRBOworc2V0dGluZ3MuZGVjaXNpb24gPSBzZXR0aW5ncy5ERUNJU0lPTl9CTE9DSzsKKzwvc2Ny
aXB0PgorPGlmcmFtZSBzcmM9ImRhdGE6dGV4dC9odG1sLEZBSUwiPjwvaWZyYW1lPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9ibG9jay1hZnRlci1maW5pc2hlZC1h
ZGRpbmctZGF0YS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9i
bG9jay1hZnRlci1maW5pc2hlZC1hZGRpbmctZGF0YS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA2N2JmYTE5MjAyYjIzNzA0NmYwZTA2MjYxZjAzOWUxYTJlNzRiOTIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jb250ZW50ZmlsdGVyaW5nL2Jsb2NrLWFmdGVyLWZpbmlzaGVkLWFk
ZGluZy1kYXRhLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxpZnJhbWUgc3JjPSJkYXRhOnRleHQvaHRtbCxQQVNTIj48L2lmcmFtZT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvYmxvY2stYWZ0ZXItZmluaXNoZWQtYWRkaW5n
LWRhdGEuaHRtbCBiL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvYmxvY2stYWZ0ZXItZmlu
aXNoZWQtYWRkaW5nLWRhdGEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTM1OTZjMDdlMWMyNGI2NmY2MGQ4
MjQ3YjljOTQ2OGU5NzhiODc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGVu
dGZpbHRlcmluZy9ibG9jay1hZnRlci1maW5pc2hlZC1hZGRpbmctZGF0YS5odG1sCkBAIC0wLDAg
KzEsOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0PgordmFyIHNldHRpbmdzID0gd2luZG93
LmludGVybmFscy5tb2NrQ29udGVudEZpbHRlclNldHRpbmdzOworc2V0dGluZ3MuZW5hYmxlZCA9
IHRydWU7CitzZXR0aW5ncy5ibG9ja2VkU3RyaW5nID0gIlBBU1MiOworc2V0dGluZ3MuZGVjaXNp
b25Qb2ludCA9IHNldHRpbmdzLkRFQ0lTSU9OX1BPSU5UX0FGVEVSX0ZJTklTSEVEX0FERElOR19E
QVRBOworc2V0dGluZ3MuZGVjaXNpb24gPSBzZXR0aW5ncy5ERUNJU0lPTl9CTE9DSzsKKzwvc2Ny
aXB0PgorPGlmcmFtZSBzcmM9ImRhdGE6dGV4dC9odG1sLEZBSUwiPjwvaWZyYW1lPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9ibG9jay1hZnRlci1yZXNwb25zZS1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9ibG9jay1hZnRlci1y
ZXNwb25zZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjNmM4MmZhYzdkMTQyYjI0ZGU0OWU0
YTVmOTI1NGEwNGU2NTY2NjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb250ZW50
ZmlsdGVyaW5nL2Jsb2NrLWFmdGVyLXJlc3BvbnNlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwy
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxpZnJhbWUgc3JjPSJkYXRhOnRleHQvaHRtbCxGQUlMIj48
L2lmcmFtZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvYmxvY2st
YWZ0ZXItcmVzcG9uc2UuaHRtbCBiL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvYmxvY2st
YWZ0ZXItcmVzcG9uc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MDdlYmExMDczZmU2Mjk3YWRkMGI5MmIz
NGY0ZjQyOWNiMTkwMDdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGVudGZp
bHRlcmluZy9ibG9jay1hZnRlci1yZXNwb25zZS5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8c2NyaXB0PgordmFyIHNldHRpbmdzID0gd2luZG93LmludGVybmFscy5tb2Nr
Q29udGVudEZpbHRlclNldHRpbmdzOworc2V0dGluZ3MuZW5hYmxlZCA9IHRydWU7CitzZXR0aW5n
cy5ibG9ja2VkU3RyaW5nID0gIlBBU1MiOworc2V0dGluZ3MuZGVjaXNpb25Qb2ludCA9IHNldHRp
bmdzLkRFQ0lTSU9OX1BPSU5UX0FGVEVSX1JFU1BPTlNFOworc2V0dGluZ3MuZGVjaXNpb24gPSBz
ZXR0aW5ncy5ERUNJU0lPTl9CTE9DSzsKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9ImRhdGE6dGV4
dC9odG1sLEZBSUwiPjwvaWZyYW1lPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248268</attachid>
            <date>2015-03-09 12:19:25 -0700</date>
            <delta_ts>2015-03-09 15:22:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142475-20150309121902.patch</filename>
            <type>text/plain</type>
            <size>52973</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxMjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDM3MmQ0NTFmMjM2N2Rh
NGM5OWM4ZGIzZWFjNDYyNjY3YjljNWNlNC4uY2E3ZDZmNjVlM2ZjNzliZmRiZDZjOWExOGRlZTEz
NzA5NWI2NDRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDE1LTAzLTA5ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29udGVudCBGaWx0ZXJpbmdd
IEFkZCB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQyNDc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgYSBtb2NrIGNvbnRlbnQgZmlsdGVyIHRoYXQgY2FuIGJlIGNvbmZpZ3VyZWQgYnkg
d2luZG93LmludGVybmFscy4gQSB0ZXN0IGNhbiBjb250cm9sIHdoZXRoZXIgdGhlIGZpbHRlcgor
ICAgICAgICBpcyBlbmFibGVkLCB3aGF0IHRvIGRpc3BsYXkgd2hlbiBhIHBhZ2UgaXMgYmxvY2tl
ZCwgYXQgd2hhdCBwb2ludCB0aGUgYWxsb3cvYmxvY2sgZGVjaXNpb24gaXMgbWFkZSwgYW5kIHdo
YXQKKyAgICAgICAgZGVjaXNpb24gdG8gbWFrZS4KKworICAgICAgICBBZGRlZCB0ZXN0cyB0byBj
b3ZlciBhbGxvd2luZyBhbmQgYmxvY2tpbmcgY29udGVudCBhdCBlYWNoIGRlY2lzaW9uIHBvaW50
LgorCisgICAgICAgIFRlc3RzOiBjb250ZW50ZmlsdGVyaW5nL2FsbG93LWFmdGVyLWFkZC1kYXRh
Lmh0bWwKKyAgICAgICAgICAgICAgIGNvbnRlbnRmaWx0ZXJpbmcvYWxsb3ctYWZ0ZXItZmluaXNo
ZWQtYWRkaW5nLWRhdGEuaHRtbAorICAgICAgICAgICAgICAgY29udGVudGZpbHRlcmluZy9hbGxv
dy1hZnRlci1yZXNwb25zZS5odG1sCisgICAgICAgICAgICAgICBjb250ZW50ZmlsdGVyaW5nL2Js
b2NrLWFmdGVyLWFkZC1kYXRhLmh0bWwKKyAgICAgICAgICAgICAgIGNvbnRlbnRmaWx0ZXJpbmcv
YmxvY2stYWZ0ZXItZmluaXNoZWQtYWRkaW5nLWRhdGEuaHRtbAorICAgICAgICAgICAgICAgY29u
dGVudGZpbHRlcmluZy9ibG9jay1hZnRlci1yZXNwb25zZS5odG1sCisKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5tYWtlOiBBZGRlZCBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmlkbC4KKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzQ3VzdG9tLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OmRlY2lzaW9uUG9p
bnQpOiBSZXR1cm5lZCB0aGUgZGVjaXNpb24gcG9pbnQncyBKU1ZhbHVlLgorICAgICAgICAoV2Vi
Q29yZTo6SlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpzZXREZWNpc2lvblBvaW50KTogU2V0
IHRoZSBkZWNpc2lvbiBwb2ludDsgdGhyZXcgYW4gZXhjZXB0aW9uIGZvciBpbnZhbGlkIHZhbHVl
cy4KKyAgICAgICAgKFdlYkNvcmU6OkpTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6ZGVjaXNp
b24pOiBSZXR1cm5lZCB0aGUgZGVjaXNpb24ncyBKU1ZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6
SlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpzZXREZWNpc2lvbik6IFNldCB0aGUgZGVjaXNp
b247IHRocmV3IGFuIGV4Y2VwdGlvbiBmb3IgaW52YWxpZCB2YWx1ZXMuCisgICAgICAgICogcGxh
dGZvcm0vQ29udGVudEZpbHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RmlsdGVy
Ojp0eXBlcyk6IFJlbmFtZWQgZnJvbSBjb250ZW50RmlsdGVyVHlwZXMuCisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50RmlsdGVyOjpjcmVhdGVJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZW50RmlsdGVyVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpjb250ZW50Rmls
dGVyVHlwZXMpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRlbnRGaWx0ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6OmFkZFR5cGUpOiBVc2VkIHRvIHJlZ2lz
dGVyIGEgbmV3IGNvbnRlbnQgZmlsdGVyIHR5cGUuCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
RmlsdGVyOjp0eXBlKTogUmVuYW1lZCBmcm9tIGNvbnRlbnRGaWx0ZXJUeXBlLgorICAgICAgICAq
IHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmg6IE1vdmVkIGRl
ZmluaXRpb24gb2YgSEFWRV9ORV9GSUxURVJfU09VUkNFIHRvIGhlcmUuCisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNldFRv
Q29uc2lzdGVudFN0YXRlKTogQ2FsbGVkIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnJlc2V0
KCkuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OkludGVybmFscyk6IENhbGxlZCBNb2Nr
Q29udGVudEZpbHRlcjo6ZW5zdXJlSW5zdGFsbGVkKCkuCisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6Om1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MpOiBSZXR1cm5lZCBhIHJlZmVyZW5jZSB0
byBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpzaW5nbGV0b24oKS4KKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDogQWRkZWQg
YXR0cmlidXRlIG1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuCisgICAgICAgICogdGVzdGluZy9N
b2NrQ29udGVudEZpbHRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NvbnRl
bnRGaWx0ZXI6OmVuc3VyZUluc3RhbGxlZCk6IENhbGxlZCBNb2NrQ29udGVudEZpbHRlcjo6YWRk
VHlwZSgpLgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXI6OmNhbkhhbmRsZVJl
c3BvbnNlKTogUmV0dXJuZWQgd2hldGhlciBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzIGlzIGVu
YWJsZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29udGVudEZpbHRlcjo6Y3JlYXRlKTogUmV0
dXJuZWQgYSBuZXcgTW9ja0NvbnRlbnRGaWx0ZXIuCisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29u
dGVudEZpbHRlcjo6TW9ja0NvbnRlbnRGaWx0ZXIpOiBDYWxsZWQgbWF5YmVEZXRlcm1pbmVTdGF0
dXMoKS4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVyOjphZGREYXRhKTogQ29w
aWVkIGRhdGEgaW50byBtX3JlcGxhY2VtZW50RGF0YSBhbmQgY2FsbGVkIG1heWJlRGV0ZXJtaW5l
U3RhdHVzKCkuCisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29udGVudEZpbHRlcjo6ZmluaXNoZWRB
ZGRpbmdEYXRhKTogQ2FsbGVkIG1heWJlRGV0ZXJtaW5lU3RhdHVzKCkuCisgICAgICAgIChXZWJD
b3JlOjpNb2NrQ29udGVudEZpbHRlcjo6bmVlZHNNb3JlRGF0YSk6IFJldHVybmVkIHdoZXRoZXIg
bV9zdGF0dXMgZXF1YWxzIE5lZWRzTW9yZURhdGEuCisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29u
dGVudEZpbHRlcjo6ZGlkQmxvY2tEYXRhKTogUmV0dXJuZWQgd2hldGhlciBtX3N0YXR1cyBlcXVh
bHMgQmxvY2tlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVyOjpnZXRSZXBs
YWNlbWVudERhdGEpOiBSZXR1cm5lZCBhIHBvaW50ZXIgdG8gdGhlIHN0YXJ0IG9mIG1fcmVwbGFj
ZW1lbnREYXRhLgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXI6OnVuYmxvY2tI
YW5kbGVyKTogUmV0dXJuZWQgYW4gZW1wdHkgQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyLgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXI6Om1heWJlRGV0ZXJtaW5lU3RhdHVz
KTogSWYgbV9zdGF0dXMgaXMgTmVlZHNNb3JlRGF0YSBhbmQgdGhlIGN1cnJlbnQgZGVjaXNpb24g
cG9pbnQKKyAgICAgICAgZXF1YWxzIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MncyBkZWNpc2lv
biBwb2ludCwgc2V0IG1fc3RhdHVzIGFjY29yZGluZyB0byBNb2NrQ29udGVudEZpbHRlclNldHRp
bmdzJ3MKKyAgICAgICAgZGVjaXNpb24uIElmIG1fc3RhdHVzIGJlY29tZXMgQmxvY2tlZCwgY2xl
YXIgdGhlIG9yaWdpbmFsIHBhZ2UgZGF0YSBmcm9tIG1fcmVwbGFjZW1lbnREYXRhIGFuZCBjb3B5
CisgICAgICAgIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MncyBibG9ja2VkIHN0cmluZyBpbnN0
ZWFkLgorICAgICAgICAqIHRlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXIuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0
ZXIuaC4KKyAgICAgICAgKiB0ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmguCisgICAg
ICAgIChXZWJDb3JlOjpNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpzaW5nbGV0b24pOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6cmVzZXQpOiBSZXNldCBz
ZXR0aW5ncyB0byB0aGVpciBpbml0aWFsIHZhbHVlcy4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tD
b250ZW50RmlsdGVyU2V0dGluZ3M6Ok1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MpOgorICAgICAg
ICAqIHRlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5o
LgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6cmVmKTogQWRk
ZWQgYW4gZW1wdHkgaW1wbGVtZW50YXRpb24gdG8gbWFrZSB0aGUgYmluZGluZ3MgdGhpbmsgdGhp
cyBpcyBSZWZDb3VudGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXJTZXR0
aW5nczo6ZGVyZWYpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVy
U2V0dGluZ3M6OmVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXJT
ZXR0aW5nczo6c2V0RW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29udGVudEZpbHRl
clNldHRpbmdzOjpibG9ja2VkU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDb250ZW50
RmlsdGVyU2V0dGluZ3M6OnNldEJsb2NrZWRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TW9j
a0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6ZGVjaXNpb25Qb2ludCk6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpzZXREZWNpc2lvblBvaW50KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OmRlY2lzaW9uKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnNldERlY2lzaW9uKToKKyAgICAg
ICAgKiB0ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaWRsOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmguCisKIDIwMTUtMDMtMDggIERl
YW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1MgTWVkaWFdIFZpZGVv
IGJ1ZmZlciBwcm9ncmVzcyBtaXNzaW5nIG9uIGlQaG9uZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IDliNDk0M2VkNjgwMzcxYTQ4YzExNmJhOGM3MTQyY2IzNzVhYzM2OWIuLjk2
YjU1MjQxYWVhOGFiYTUzZDJlYmM4OTI1MmFmMjE3MmFlYzhmODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQpAQCAtNTA5LDYgKzUwOSw3IEBAIE5PTl9TVkdfQklORElOR19JRExTID0g
XAogICAgICQoV2ViQ29yZSkvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS90ZXN0aW5nL01hbGxvY1N0YXRpc3RpY3MuaWRsIFwKICAgICAkKFdlYkNvcmUpL3Rl
c3RpbmcvTWVtb3J5SW5mby5pZGwgXAorICAgICQoV2ViQ29yZSkvdGVzdGluZy9Nb2NrQ29udGVu
dEZpbHRlclNldHRpbmdzLmlkbCBcCiAgICAgJChXZWJDb3JlKS90ZXN0aW5nL1R5cGVDb252ZXJz
aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9BYnN0cmFjdFdvcmtlci5pZGwgXAog
ICAgICQoV2ViQ29yZSkvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5pZGwgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDc2NTZmM2ZjZTljNDJlM2U1OGZkN2NjOWMyZjlmZDIyYjU5NzY0NTUuLmM2NzQxMzU5ZGY3
MjhjMDcyODE2Yzc5NmZkNDY0NDZmYzRiNTBmZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM4MDcsMTAgKzM4MDcsMTYgQEAK
IAkJQTE3QzgxMjMwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE3QzgxMjEwRjJBNUNG
NzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5oICovOyB9OwogCQlBMTg4OTBBRTFBQTEz
RjI1MDAyNkMzMDEgLyogUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTg4OTBBQzFBQTEzRjI1MDAy
NkMzMDEgLyogUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW0gKi87IH07CiAJCUExODg5
MEFGMUFBMTNGMjUwMDI2QzMwMSAvKiBQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE4ODkwQUQxQUEx
M0YyNTAwMjZDMzAxIC8qIFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLmggKi87IH07CisJ
CUExOUFFQTIxMUFBQTgwODYwMEI1MkIyNSAvKiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3Mu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExOUFFQTFF
MUFBQTgwNkUwMEI1MkIyNSAvKiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaCAqLzsgfTsK
KwkJQTE5QUVBMjIxQUFBODA4QTAwQjUyQjI1IC8qIEpTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5n
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTlB
RUExRDFBQUE4MDZFMDBCNTJCMjUgLyogSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmNwcCAq
LzsgfTsKIAkJQTE5RDkzNDYxQTlGRUM3MjAwQjQ2QzI0IC8qIE5FRmlsdGVyU291cmNlU1BJLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTlEOTM0NDFB
OUZFQzcyMDBCNDZDMjQgLyogTkVGaWx0ZXJTb3VyY2VTUEkuaCAqLzsgfTsKIAkJQTE5RDkzNDcx
QTlGRUM3MjAwQjQ2QzI0IC8qIFdlYkZpbHRlckV2YWx1YXRvclNQSS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE5RDkzNDUxQTlGRUM3MjAwQjQ2QzI0
IC8qIFdlYkZpbHRlckV2YWx1YXRvclNQSS5oICovOyB9OwogCQlBMTlEOTM0QTFBQTExQjFFMDBC
NDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTlEOTM0ODFBQTExQjFFMDBCNDZDMjQg
LyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0gKi87IH07CiAJCUExOUQ5MzRCMUFB
MTFCMUUwMEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE5RDkzNDkxQUExMUIxRTAw
QjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggKi87IH07CisJCUExQjVC
MjlFMUFBQTg0NkUwMDhCNjA0MiAvKiBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQjVCMjlDMUFBQTg0
NkUwMDhCNjA0MiAvKiBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmNwcCAqLzsgfTsKKwkJQTFC
NUIyOUYxQUFBODQ2RjAwOEI2MDQyIC8qIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQjVCMjlEMUFBQTg0
NkUwMDhCNjA0MiAvKiBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmggKi87IH07CisJCUExQkY2
QjgyMUFBOTZDN0QwMEFGNEE4QSAvKiBNb2NrQ29udGVudEZpbHRlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUJGNkI4MDFBQTk2QzdEMDBBRjRB
OEEgLyogTW9ja0NvbnRlbnRGaWx0ZXIuY3BwICovOyB9OworCQlBMUJGNkI4MzFBQTk2QzdEMDBB
RjRBOEEgLyogTW9ja0NvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEExQkY2QjgxMUFBOTZDN0QwMEFGNEE4QSAvKiBNb2NrQ29udGVu
dEZpbHRlci5oICovOyB9OwogCQlBMUM3OTcxODE4ODNERDgyMDAwRjVFMUYgLyogRE9NR2VzdHVy
ZUV2ZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjU0RENERDE4ODBGOTAxMDAzRUVEQkIgLyogRE9NR2VzdHVyZUV2ZW50
LmggKi87IH07CiAJCUExQzc5NzE5MTg4M0RERUQwMDBGNUUxRiAvKiBET01Ub3VjaC5oIGluIENv
cHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY1NERDQ0QxODgwRjg2NzAwM0VFREJCIC8qIERPTVRvdWNoLmggKi87IH07CiAJCUExQzc5NzFB
MTg4M0RFMEQwMDBGNUUxRiAvKiBET01Ub3VjaEV2ZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU0RENDRjE4ODBGODY3
MDAzRUVEQkIgLyogRE9NVG91Y2hFdmVudC5oICovOyB9OwpAQCAtMzgyMyw2ICszODI5LDcgQEAK
IAkJQTFFMTE1NDQxMzAxNUMzRDAwNTRBQzhDIC8qIERpc3RhbnRMaWdodFNvdXJjZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUUxMTU0MzEzMDE1
QzNEMDA1NEFDOEMgLyogRGlzdGFudExpZ2h0U291cmNlLmNwcCAqLzsgfTsKIAkJQTFFMTE1NDYx
MzAxNUM0RTAwNTRBQzhDIC8qIFBvaW50TGlnaHRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFFMTE1NDUxMzAxNUM0RTAwNTRBQzhDIC8q
IFBvaW50TGlnaHRTb3VyY2UuY3BwICovOyB9OwogCQlBMUUxMTU0ODEzMDE1QzVEMDA1NEFDOEMg
LyogU3BvdExpZ2h0U291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEExRTExNTQ3MTMwMTVDNUQwMDU0QUM4QyAvKiBTcG90TGlnaHRTb3VyY2Uu
Y3BwICovOyB9OworCQlBMUU1QjMxRjFBQUQxREE0MDA2RUJFRkIgLyogSlNNb2NrQ29udGVudEZp
bHRlclNldHRpbmdzQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEExRTVCMzFEMUFBRDFEQTQwMDZFQkVGQiAvKiBKU01vY2tDb250ZW50Rmls
dGVyU2V0dGluZ3NDdXN0b20uY3BwICovOyB9OwogCQlBMkI5MjE3MzE2QzVDQzQyMDA0MURDRDkg
LyogSW50UmVjdEV4dGVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTJCOTIxNzIxNkM1Q0M0MjAwNDFEQ0Q5IC8qIEludFJlY3RFeHRlbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMzFDNEU0RDE2
RTAyQUE2MDAyRjc5NTcgLyogT0VTVGV4dHVyZUhhbGZGbG9hdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMzFDNEU0QzE2RTAyQUE2MDAyRjc5NTcg
LyogT0VTVGV4dHVyZUhhbGZGbG9hdC5jcHAgKi87IH07CiAJCUEzMUM0RTRGMTZFMDJBQjQwMDJG
Nzk1NyAvKiBPRVNUZXh0dXJlSGFsZkZsb2F0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMzFDNEU0RTE2RTAyQUI0MDAyRjc5NTcgLyogT0VTVGV4dHVy
ZUhhbGZGbG9hdC5oICovOyB9OwpAQCAtMTEwNDIsMTAgKzExMDQ5LDE3IEBACiAJCUExN0M4MTIx
MEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSFRNTEVsZW1lbnRGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUExODg5MEFDMUFBMTNGMjUwMDI2QzMwMSAvKiBQYXJlbnRhbENvbnRyb2xz
Q29udGVudEZpbHRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBMTg4OTBBRDFBQTEzRjI1MDAyNkMzMDEgLyogUGFyZW50YWxDb250cm9sc0NvbnRl
bnRGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFyZW50YWxDb250
cm9sc0NvbnRlbnRGaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTE5QUVB
MUMxQUFBN0M0OTAwQjUyQjI1IC8qIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBMTlBRUExRDFBQUE4MDZFMDBCNTJCMjUgLyogSlNNb2NrQ29udGVudEZpbHRlclNldHRp
bmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTW9ja0NvbnRl
bnRGaWx0ZXJTZXR0aW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExOUFF
QTFFMUFBQTgwNkUwMEI1MkIyNSAvKiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExOUQ5MzQ0MUE5RkVDNzIwMEI0NkMy
NCAvKiBORUZpbHRlclNvdXJjZVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBORUZpbHRlclNvdXJjZVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTlE
OTM0NTFBOUZFQzcyMDBCNDZDMjQgLyogV2ViRmlsdGVyRXZhbHVhdG9yU1BJLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZpbHRlckV2YWx1YXRvclNQSS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMTlEOTM0ODFBQTExQjFFMDBCNDZDMjQgLyogTmV0d29y
a0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTE5RDkzNDkxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRl
bnNpb25Db250ZW50RmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5l
dHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUExQjVCMjlDMUFBQTg0NkUwMDhCNjA0MiAvKiBNb2NrQ29udGVudEZpbHRlclNldHRpbmdz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vY2tDb250ZW50Rmls
dGVyU2V0dGluZ3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMUI1QjI5RDFB
QUE4NDZFMDA4QjYwNDIgLyogTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExQkY2QjgwMUFBOTZDN0QwMEFGNEE4QSAvKiBNb2Nr
Q29udGVudEZpbHRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBN
b2NrQ29udGVudEZpbHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExQkY2
QjgxMUFBOTZDN0QwMEFGNEE4QSAvKiBNb2NrQ29udGVudEZpbHRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNb2NrQ29udGVudEZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBMUM3OTcxQzE4ODNFNTFGMDAwRjVFMUYgLyogRE9NSFRNTFRleHRBcmVh
RWxlbWVudFByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRN
TFRleHRBcmVhRWxlbWVudFByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTFDN0ZBQTExMzNBNUQzNTAwRDY3MzJEIC8qIEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExREU3MTJCMTg2MTJBQzEwMDczNDE5MiAv
KiBUb3VjaEV2ZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBU
b3VjaEV2ZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTA1Myw2ICsx
MTA2Nyw3IEBACiAJCUExRTExNTQzMTMwMTVDM0QwMDU0QUM4QyAvKiBEaXN0YW50TGlnaHRTb3Vy
Y2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRGlzdGFudExpZ2h0
U291cmNlLmNwcDsgcGF0aCA9IGZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFFMTE1NDUxMzAxNUM0RTAwNTRBQzhDIC8qIFBvaW50
TGlnaHRTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUG9p
bnRMaWdodFNvdXJjZS5jcHA7IHBhdGggPSBmaWx0ZXJzL1BvaW50TGlnaHRTb3VyY2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUUxMTU0NzEzMDE1QzVEMDA1NEFDOEMgLyog
U3BvdExpZ2h0U291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFNwb3RMaWdodFNvdXJjZS5jcHA7IHBhdGggPSBmaWx0ZXJzL1Nwb3RMaWdodFNvdXJjZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExRTVCMzFEMUFBRDFEQTQwMDZFQkVGQiAv
KiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3NDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzQ3VzdG9tLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTIwOEUyMjJBNTZBMEM3NTc1RjJBNzJF
IC8qIFJlbmRlck1hdGhNTE1lbmNsb3NlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFJlbmRlck1hdGhNTE1lbmNsb3NlLmg7IHBhdGggPSByZW5kZXJpbmcvbWF0aG1sL1JlbmRl
ck1hdGhNTE1lbmNsb3NlLmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJQTJCOTIx
NzIxNkM1Q0M0MjAwNDFEQ0Q5IC8qIEludFJlY3RFeHRlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW50UmVjdEV4dGVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBMzFDNEU0QzE2RTAyQUE2MDAyRjc5NTcgLyogT0VTVGV4dHVyZUhhbGZGbG9hdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBPRVNUZXh0dXJlSGFsZkZsb2F0
LmNwcDsgcGF0aCA9IGNhbnZhcy9PRVNUZXh0dXJlSGFsZkZsb2F0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NzE3LDYgKzE1NzMyLDExIEBACiAJCQkJQ0Q1MzkzQ0MxNzVE
Q0NFNjAwQzA3MTIzIC8qIE1lbW9yeUluZm8uaWRsICovLAogCQkJCUNEQzI2QjNDMTYwQTYyQjAw
MDI2NzU3QiAvKiBNb2NrQ0RNLmNwcCAqLywKIAkJCQlDREMyNkIzRDE2MEE2MkIwMDAyNjc1N0Ig
LyogTW9ja0NETS5oICovLAorCQkJCUExQkY2QjgwMUFBOTZDN0QwMEFGNEE4QSAvKiBNb2NrQ29u
dGVudEZpbHRlci5jcHAgKi8sCisJCQkJQTFCRjZCODExQUE5NkM3RDAwQUY0QThBIC8qIE1vY2tD
b250ZW50RmlsdGVyLmggKi8sCisJCQkJQTFCNUIyOUMxQUFBODQ2RTAwOEI2MDQyIC8qIE1vY2tD
b250ZW50RmlsdGVyU2V0dGluZ3MuY3BwICovLAorCQkJCUExQjVCMjlEMUFBQTg0NkUwMDhCNjA0
MiAvKiBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmggKi8sCisJCQkJQTE5QUVBMUMxQUFBN0M0
OTAwQjUyQjI1IC8qIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaWRsICovLAogCQkJCTJEQUFF
MzJDMTlEQ0FGNjAwMEUwMDJEMiAvKiBNb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwICovLAogCQkJ
CTJEQUFFMzJEMTlEQ0FGNjAwMEUwMDJEMiAvKiBNb2NrUGFnZU92ZXJsYXlDbGllbnQuaCAqLywK
IAkJCQlFQjA4MUNEODE2OTYwODQ0MDA1NTM3MzAgLyogVHlwZUNvbnZlcnNpb25zLmggKi8sCkBA
IC0xNTczOSw2ICsxNTc1OSw4IEBACiAJCQkJQTdCNEVBNjkxNEM5MzQ4NDAwQzhGNUJGIC8qIEpT
TWFsbG9jU3RhdGlzdGljcy5oICovLAogCQkJCUNENTM5M0QxMTc1RTAxODYwMEMwNzEyMyAvKiBK
U01lbW9yeUluZm8uY3BwICovLAogCQkJCUNENTM5M0QyMTc1RTAxODYwMEMwNzEyMyAvKiBKU01l
bW9yeUluZm8uaCAqLywKKwkJCQlBMTlBRUExRDFBQUE4MDZFMDBCNTJCMjUgLyogSlNNb2NrQ29u
dGVudEZpbHRlclNldHRpbmdzLmNwcCAqLywKKwkJCQlBMTlBRUExRTFBQUE4MDZFMDBCNTJCMjUg
LyogSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmggKi8sCiAJCQkJRUJGNTEyMUExNjk2NDk2
QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmNwcCAqLywKIAkJCQlFQkY1MTIxQjE2OTY0
OTZDMDA1NkJEMjUgLyogSlNUeXBlQ29udmVyc2lvbnMuaCAqLywKIAkJCSk7CkBAIC0yMTE0NCw2
ICsyMTE2Niw3IEBACiAJCQkJNDEwQjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2
ZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlFMUFERUQ0NjBFNzZCOEREMDA0QTFBNUUgLyogSlNNZXNz
YWdlUG9ydEN1c3RvbS5jcHAgKi8sCiAJCQkJNDFGNTg0QzYxMDQ2NTJDQjAwOUNBQTY0IC8qIEpT
TWVzc2FnZVBvcnRDdXN0b20uaCAqLywKKwkJCQlBMUU1QjMxRDFBQUQxREE0MDA2RUJFRkIgLyog
SlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzQ3VzdG9tLmNwcCAqLywKIAkJCQlDNkYwOTE3RTE0
M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCAqLywKIAkJCQlC
Q0Q5QzI1RjBDMTdBQTY3MDA1QzkwQTIgLyogSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwICovLAog
CQkJCTA3Mzc5NEU3MTlFRTMzNUMwMEU1QTA0NSAvKiBKU05hdmlnYXRvckN1c3RvbS5jcHAgKi8s
CkBAIC0yMzQ4MywxNSArMjM1MDYsMTggQEAKIAkJCWZpbGVzID0gKAogCQkJCTQxN0RBNkRBMTM3
MzRFNkUwMDdDNTdGQiAvKiBJbnRlcm5hbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QkY3RUUw
MTRDOTE3NUEwMDE0NDg5RCAvKiBJbnRlcm5hbFNldHRpbmdzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlBMUI1QjI5RjFBQUE4NDZGMDA4QjYwNDIgLyogTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTNFMjlFNUYxNjdBOEExOTAwNTg2RDNEIC8qIEludGVybmFs
U2V0dGluZ3NHZW5lcmF0ZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxN0RBNzFFMTM3MzVERkEw
MDdDNTdGQiAvKiBKU0ludGVybmFscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc0MEI1QTUxNEM5
MzVBQjAwQTc3RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTNFRDNGREYxNjdBODhFNzAwNjc2MkU2IC8qIEpTSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTc0MEI1OTUxNEM5MzVBQjAwQTc3RkE0IC8qIEpTTWFsbG9j
U3RhdGlzdGljcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTFCRjZCODMxQUE5NkM3RDAwQUY0QThB
IC8qIE1vY2tDb250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDUzOTNENDE3NUUw
MTg2MDBDMDcxMjMgLyogSlNNZW1vcnlJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlDQjhDRjAx
RDFBOTVERTQyMDAwRDUxMEIgLyogTWljcm9UYXNrVGVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RUJGNTEyMUQxNjk2NDk2QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDREMyNkI0MTE2MEE4Q0NFMDAyNjc1N0IgLyogTW9ja0NETS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQTE5QUVBMjExQUFBODA4NjAwQjUyQjI1IC8qIEpTTW9ja0NvbnRlbnRGaWx0
ZXJTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ5N0YwNDgxOURENDE0MDAwMUVFOUMz
IC8qIE1vY2tQYWdlT3ZlcmxheUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUE1RjNCOEQx
NkNDMzNEMTAwNDU1RUIwIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MTgxNUMxRjEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBw
b3J0LmggaW4gSGVhZGVycyAqLywKQEAgLTI3MjQ4LDggKzI3Mjc0LDEyIEBACiAJCQkJQTc0MEI1
QTcxNEM5MzVBRjAwQTc3RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDQjhDRjAxRjFBOTVERTU5MDAwRDUxMEIgLyogTWljcm9UYXNrVGVzdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1M0VEM0ZERTE2N0E4OEU3MDA2NzYyRTYgLyogSlNJbnRlcm5hbFNl
dHRpbmdzR2VuZXJhdGVkLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUExRTVCMzFGMUFBRDFEQTQw
MDZFQkVGQiAvKiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3NDdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQTFCNUIyOUUxQUFBODQ2RTAwOEI2MDQyIC8qIE1vY2tDb250ZW50RmlsdGVy
U2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc0MEI1OTcxNEM5MzVBRjAwQTc3RkE0
IC8qIEpTTWFsbG9jU3RhdGlzdGljcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDUzOTNEMzE3
NUUwMTg2MDBDMDcxMjMgLyogSlNNZW1vcnlJbmZvLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUEx
OUFFQTIyMUFBQTgwOEEwMEI1MkIyNSAvKiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQTFCRjZCODIxQUE5NkM3RDAwQUY0QThBIC8qIE1vY2tDb250
ZW50RmlsdGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUVCRjUxMjFDMTY5NjQ5NkMwMDU2QkQy
NSAvKiBKU1R5cGVDb252ZXJzaW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREMyNkI0MDE2
MEE4Q0M2MDAyNjc1N0IgLyogTW9ja0NETS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDk3RjA0
NzE5REQ0MTNDMDAxRUU5QzMgLyogTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2NrQ29udGVu
dEZpbHRlclNldHRpbmdzQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nc0N1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjIwYjIxOGNm
ZjBiZmUxNjVmZDcyNWVjNjlmYjEwZTk3YjdhOTgxOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nc0N1c3RvbS5j
cHAKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmgiCisKKyNpZiBFTkFCTEUoQ09O
VEVOVF9GSUxURVJJTkcpCisKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJN
b2NrQ29udGVudEZpbHRlclNldHRpbmdzLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworLy8gTXVzdCBiZSBrZXB0IGluIHN5bmMgd2l0aCB2YWx1ZXMg
aW4gTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5pZGwuCitjb25zdCB1aW50OF90IGRlY2lzaW9u
UG9pbnRBZnRlclJlc3BvbnNlID0gMDsKK2NvbnN0IHVpbnQ4X3QgZGVjaXNpb25Qb2ludEFmdGVy
QWRkRGF0YSA9IDE7Citjb25zdCB1aW50OF90IGRlY2lzaW9uUG9pbnRBZnRlckZpbmlzaGVkQWRk
aW5nRGF0YSA9IDI7Citjb25zdCB1aW50OF90IGRlY2lzaW9uQWxsb3cgPSAwOworY29uc3QgdWlu
dDhfdCBkZWNpc2lvbkJsb2NrID0gMTsKKworSlNDOjpKU1ZhbHVlIEpTTW9ja0NvbnRlbnRGaWx0
ZXJTZXR0aW5nczo6ZGVjaXNpb25Qb2ludChKU0M6OkV4ZWNTdGF0ZSopIGNvbnN0Cit7CisgICAg
c3dpdGNoIChpbXBsKCkuZGVjaXNpb25Qb2ludCgpKSB7CisgICAgY2FzZSBNb2NrQ29udGVudEZp
bHRlclNldHRpbmdzOjpEZWNpc2lvblBvaW50OjpBZnRlclJlc3BvbnNlOgorICAgICAgICByZXR1
cm4ganNOdW1iZXIoZGVjaXNpb25Qb2ludEFmdGVyUmVzcG9uc2UpOworICAgIGNhc2UgTW9ja0Nv
bnRlbnRGaWx0ZXJTZXR0aW5nczo6RGVjaXNpb25Qb2ludDo6QWZ0ZXJBZGREYXRhOgorICAgICAg
ICByZXR1cm4ganNOdW1iZXIoZGVjaXNpb25Qb2ludEFmdGVyQWRkRGF0YSk7CisgICAgY2FzZSBN
b2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpEZWNpc2lvblBvaW50OjpBZnRlckZpbmlzaGVkQWRk
aW5nRGF0YToKKyAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGRlY2lzaW9uUG9pbnRBZnRlckZpbmlz
aGVkQWRkaW5nRGF0YSk7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIHsgfTsKK30KKwordm9pZCBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnNldERl
Y2lzaW9uUG9pbnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK3sK
KyAgICB1aW50OF90IG5hdGl2ZVZhbHVlIHsgdG9VSW50OChleGVjLCB2YWx1ZSwgRW5mb3JjZVJh
bmdlKSB9OworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgc3dpdGNoIChuYXRpdmVWYWx1ZSkgeworICAgIGNhc2UgZGVjaXNpb25Qb2ludEFmdGVy
UmVzcG9uc2U6CisgICAgICAgIGltcGwoKS5zZXREZWNpc2lvblBvaW50KE1vY2tDb250ZW50Rmls
dGVyU2V0dGluZ3M6OkRlY2lzaW9uUG9pbnQ6OkFmdGVyUmVzcG9uc2UpOworICAgICAgICByZXR1
cm47CisgICAgY2FzZSBkZWNpc2lvblBvaW50QWZ0ZXJBZGREYXRhOgorICAgICAgICBpbXBsKCku
c2V0RGVjaXNpb25Qb2ludChNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpEZWNpc2lvblBvaW50
OjpBZnRlckFkZERhdGEpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBkZWNpc2lvblBvaW50
QWZ0ZXJGaW5pc2hlZEFkZGluZ0RhdGE6CisgICAgICAgIGltcGwoKS5zZXREZWNpc2lvblBvaW50
KE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OkRlY2lzaW9uUG9pbnQ6OkFmdGVyRmluaXNoZWRB
ZGRpbmdEYXRhKTsKKyAgICAgICAgcmV0dXJuOworICAgIGRlZmF1bHQ6CisgICAgICAgIHRocm93
VHlwZUVycm9yKGV4ZWMsIFN0cmluZzo6Zm9ybWF0KCIldSBpcyBub3QgYSB2YWxpZCBkZWNpc2lv
blBvaW50IHZhbHVlLiIsIG5hdGl2ZVZhbHVlKSk7CisgICAgfQorfQorCitKU0M6OkpTVmFsdWUg
SlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpkZWNpc2lvbihKU0M6OkV4ZWNTdGF0ZSopIGNv
bnN0Cit7CisgICAgc3dpdGNoIChpbXBsKCkuZGVjaXNpb24oKSkgeworICAgIGNhc2UgTW9ja0Nv
bnRlbnRGaWx0ZXJTZXR0aW5nczo6RGVjaXNpb246OkFsbG93OgorICAgICAgICByZXR1cm4ganNO
dW1iZXIoZGVjaXNpb25BbGxvdyk7CisgICAgY2FzZSBNb2NrQ29udGVudEZpbHRlclNldHRpbmdz
OjpEZWNpc2lvbjo6QmxvY2s6CisgICAgICAgIHJldHVybiBqc051bWJlcihkZWNpc2lvbkJsb2Nr
KTsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4geyB9Owor
fQorCit2b2lkIEpTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6c2V0RGVjaXNpb24oSlNDOjpF
eGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICB1aW50OF90IG5hdGl2
ZVZhbHVlIHsgdG9VSW50OChleGVjLCB2YWx1ZSwgRW5mb3JjZVJhbmdlKSB9OworICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc3dpdGNoIChuYXRp
dmVWYWx1ZSkgeworICAgIGNhc2UgZGVjaXNpb25BbGxvdzoKKyAgICAgICAgaW1wbCgpLnNldERl
Y2lzaW9uKE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OkRlY2lzaW9uOjpBbGxvdyk7CisgICAg
ICAgIHJldHVybjsKKyAgICBjYXNlIGRlY2lzaW9uQmxvY2s6CisgICAgICAgIGltcGwoKS5zZXRE
ZWNpc2lvbihNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpEZWNpc2lvbjo6QmxvY2spOworICAg
ICAgICByZXR1cm47CisgICAgZGVmYXVsdDoKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZXhlYywg
U3RyaW5nOjpmb3JtYXQoIiV1IGlzIG5vdCBhIHZhbGlkIGRlY2lzaW9uIHZhbHVlLiIsIG5hdGl2
ZVZhbHVlKSk7CisgICAgfQorfQorCit9OyAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vQ29udGVudEZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250
ZW50RmlsdGVyLmNwcAppbmRleCBjOTU4NTZmYzc3YjVjZTRkZTQ0YTdlMTQ3YThhNGNiZjE5MTVj
NTI4Li45MWY5ZGIyZGZkYjhjNWJhZDQ2NGIxZmY4MDZlNmE0Y2E3NmExOTkxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmNwcApAQCAtMzUsMjcgKzM1LDE2IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IENvbnRlbnRGaWx0ZXJUeXBlIHsKLSAgICBj
b25zdCBzdGQ6OmZ1bmN0aW9uPGJvb2woY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpPiBjYW5IYW5k
bGVSZXNwb25zZTsKLSAgICBjb25zdCBzdGQ6OmZ1bmN0aW9uPHN0ZDo6dW5pcXVlX3B0cjxDb250
ZW50RmlsdGVyPihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik+IGNyZWF0ZTsKLX07Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotc3RhdGljIGlubGluZSBDb250ZW50RmlsdGVyVHlwZSBjb250ZW50
RmlsdGVyVHlwZSgpCi17Ci0gICAgcmV0dXJuIHsgVDo6Y2FuSGFuZGxlUmVzcG9uc2UsIFQ6OmNy
ZWF0ZSB9OwotfQotCi1zdGF0aWMgY29uc3QgVmVjdG9yPENvbnRlbnRGaWx0ZXJUeXBlPiYgY29u
dGVudEZpbHRlclR5cGVzKCkKK1ZlY3RvcjxDb250ZW50RmlsdGVyOjpUeXBlPiYgQ29udGVudEZp
bHRlcjo6dHlwZXMoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8Q29udGVu
dEZpbHRlclR5cGU+PiB0eXBlcygKLSAgICAgICAgVmVjdG9yPENvbnRlbnRGaWx0ZXJUeXBlPih7
Ci0gICAgICAgICAgICBjb250ZW50RmlsdGVyVHlwZTxQYXJlbnRhbENvbnRyb2xzQ29udGVudEZp
bHRlcj4oKSwKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPENvbnRlbnRGaWx0ZXI6
OlR5cGU+PiB0eXBlcyB7CisgICAgICAgIFZlY3RvcjxDb250ZW50RmlsdGVyOjpUeXBlPiB7Cisg
ICAgICAgICAgICB0eXBlPFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyPigpLAogI2lmIEhB
VkUoTkVfRklMVEVSX1NPVVJDRSkKLSAgICAgICAgICAgIGNvbnRlbnRGaWx0ZXJUeXBlPE5ldHdv
cmtFeHRlbnNpb25Db250ZW50RmlsdGVyPigpCisgICAgICAgICAgICB0eXBlPE5ldHdvcmtFeHRl
bnNpb25Db250ZW50RmlsdGVyPigpCiAjZW5kaWYKLSAgICAgICAgfSkKLSAgICApOworICAgICAg
ICB9CisgICAgfTsKICAgICByZXR1cm4gdHlwZXM7CiB9CiAKQEAgLTc5LDcgKzY4LDcgQEAgcHJp
dmF0ZToKIHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50RmlsdGVyPiBDb250ZW50RmlsdGVyOjpjcmVh
dGVJZk5lZWRlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBDb250
ZW50RmlsdGVyQ29sbGVjdGlvbjo6Q29udGFpbmVyIGZpbHRlcnM7Ci0gICAgZm9yIChhdXRvJiB0
eXBlIDogY29udGVudEZpbHRlclR5cGVzKCkpIHsKKyAgICBmb3IgKGF1dG8mIHR5cGUgOiB0eXBl
cygpKSB7CiAgICAgICAgIGlmICh0eXBlLmNhbkhhbmRsZVJlc3BvbnNlKHJlc3BvbnNlKSkKICAg
ICAgICAgICAgIGZpbHRlcnMuYXBwZW5kKHR5cGUuY3JlYXRlKHJlc3BvbnNlKSk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGVudEZpbHRlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGVudEZpbHRlci5oCmluZGV4IGYzNjg3ODdjOTAzYmQz
ZmI0ZDRiMWRmMDFkMTIwNzk1YTQ3NTJiN2IuLjFiZmUxMzZhMjk4N2Y2MzAwZjc1ZWE3NjliZGJh
MjM5MjBmZTc2NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRG
aWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmgKQEAg
LTI5LDggKzI5LDcgQEAKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCiAKICNpbmNsdWRl
ICJDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIuaCIKLQotI2RlZmluZSBIQVZFX05FX0ZJTFRF
Ul9TT1VSQ0UgVEFSR0VUX09TX0VNQkVEREVEIHx8ICghVEFSR0VUX09TX0lQSE9ORSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMCAmJiBDUFUoWDg2XzY0KSkKKyNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzgsMTYg
KzM3LDI1IEBAIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiAKIGNsYXNzIENvbnRlbnRGaWx0ZXIg
ewogcHVibGljOgorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdGF0aWMgdm9pZCBhZGRUeXBl
KCkgeyB0eXBlcygpLmFwcGVuZCh0eXBlPFQ+KCkpOyB9CisKICAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPENvbnRlbnRGaWx0ZXI+IGNyZWF0ZUlmTmVlZGVkKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKTsKIAogICAgIHZpcnR1YWwgfkNvbnRlbnRGaWx0ZXIoKSB7IH0KLQogICAgIHZpcnR1YWwg
dm9pZCBhZGREYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZmluaXNoZWRBZGRpbmdEYXRhKCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBuZWVk
c01vcmVEYXRhKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBkaWRCbG9ja0RhdGEoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiBnZXRSZXBsYWNlbWVudERhdGEoaW50
JiBsZW5ndGgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFu
ZGxlciB1bmJsb2NrSGFuZGxlcigpIGNvbnN0ID0gMDsKKworcHJpdmF0ZToKKyAgICBzdHJ1Y3Qg
VHlwZSB7CisgICAgICAgIGNvbnN0IHN0ZDo6ZnVuY3Rpb248Ym9vbChjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJik+IGNhbkhhbmRsZVJlc3BvbnNlOworICAgICAgICBjb25zdCBzdGQ6OmZ1bmN0aW9u
PHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50RmlsdGVyPihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik+
IGNyZWF0ZTsKKyAgICB9OworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdGF0aWMgVHlwZSB0
eXBlKCkgeyByZXR1cm4geyBUOjpjYW5IYW5kbGVSZXNwb25zZSwgVDo6Y3JlYXRlIH07IH0KKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVmVjdG9yPFR5cGU+JiB0eXBlcygpOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmgKaW5kZXggZjE5Y2Mx
MTZiMzljOTE4ZDk4NmE0NDMxZmVmMDg2YTQ5NTkyZWRhNS4uZjM4ZTY1NzY4NDdkZWNmM2U1ODBj
YTVmMjQ3ODc3NTQzYjdmMmI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oCkBAIC0zMCw2
ICszMCw4IEBACiAjaW5jbHVkZSA8d3RmL0NvbXBpbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFp
blB0ci5oPgogCisjZGVmaW5lIEhBVkVfTkVfRklMVEVSX1NPVVJDRSBUQVJHRVRfT1NfRU1CRURE
RUQgfHwgKCFUQVJHRVRfT1NfSVBIT05FICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMDAwICYmIENQVShYODZfNjQpKQorCiBPQkpDX0NMQVNTIE5FRmlsdGVyU291cmNl
OwogT0JKQ19DTEFTUyBOU011dGFibGVEYXRhOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKaW5kZXggMmNiZjgyNDZkYTEwYTBjZDRkOGU5YTU0ZDY0ZGYyMWJkZjlhNDI1MS4uNTNj
ZjUwYzllMzE0YjI4ZDU0NGM5OTNkY2I2Y2M0MWMyZTAzODRlOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcApAQCAtMTc1LDYgKzE3NSwxMCBAQAogI2luY2x1ZGUgIkRpY3Rpb25h
cnlMb29rdXAuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQorI2lu
Y2x1ZGUgIk1vY2tDb250ZW50RmlsdGVyLmgiCisjZW5kaWYKKwogdXNpbmcgSlNDOjpDb2RlQmxv
Y2s7CiB1c2luZyBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZTsKIHVzaW5nIEpTQzo6SlNGdW5jdGlv
bjsKQEAgLTMxNCw2ICszMTgsMTAgQEAgdm9pZCBJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50
U3RhdGUoUGFnZSogcGFnZSkKICNlbmRpZgogCiAgICAgTW9ja1BhZ2VPdmVybGF5Q2xpZW50Ojpz
aW5nbGV0b24oKS51bmluc3RhbGxBbGxPdmVybGF5cygpOworCisjaWYgRU5BQkxFKENPTlRFTlRf
RklMVEVSSU5HKQorICAgIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnJlc2V0KCk7CisjZW5k
aWYKIH0KIAogSW50ZXJuYWxzOjpJbnRlcm5hbHMoRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtMzI5
LDYgKzMzNywxMCBAQCBJbnRlcm5hbHM6OkludGVybmFscyhEb2N1bWVudCogZG9jdW1lbnQpCiAg
ICAgZW5hYmxlTW9ja1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcigpOwogICAgIFdlYkNvcmU6OnBy
b3ZpZGVVc2VyTWVkaWFUbyhkb2N1bWVudC0+cGFnZSgpLCBuZXcgVXNlck1lZGlhQ2xpZW50TW9j
aygpKTsKICNlbmRpZgorCisjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQorICAgIE1vY2tD
b250ZW50RmlsdGVyOjplbnN1cmVJbnN0YWxsZWQoKTsKKyNlbmRpZgogfQogCiBEb2N1bWVudCog
SW50ZXJuYWxzOjpjb250ZXh0RG9jdW1lbnQoKSBjb25zdApAQCAtMjU0MCw0ICsyNTUyLDExIEBA
IHZvaWQgSW50ZXJuYWxzOjpxdWV1ZU1pY3JvVGFzayhpbnQgdGVzdE51bWJlcikKICAgICAgICAg
TWljcm9UYXNrUXVldWU6OnNpbmdsZXRvbigpLnF1ZXVlTWljcm9UYXNrKE1pY3JvVGFza1Rlc3Q6
OmNyZWF0ZShjb250ZXh0RG9jdW1lbnQoKS0+Y3JlYXRlV2Vha1B0cigpLCB0ZXN0TnVtYmVyKSk7
CiB9CiAKKyNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCitNb2NrQ29udGVudEZpbHRlclNl
dHRpbmdzJiBJbnRlcm5hbHM6Om1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MoKQoreworICAgIHJl
dHVybiBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpzaW5nbGV0b24oKTsKK30KKyNlbmRpZgor
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBjODc4ZjU5MDZjY2ViNTgwOTAy
MzBiZDY0MTIwYTY4MDZjMGNjZTlkLi42MDMxNDk3NjJlODMwZWU2NjE0MWFlMTAzMmRiYjQ2ZTE0
ODVlNWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTY1LDYgKzY1LDEwIEBA
IGNsYXNzIFRpbWVSYW5nZXM7CiBjbGFzcyBUeXBlQ29udmVyc2lvbnM7CiBjbGFzcyBYTUxIdHRw
UmVxdWVzdDsKIAorI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKK2NsYXNzIE1vY2tDb250
ZW50RmlsdGVyU2V0dGluZ3M7CisjZW5kaWYKKwogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsK
IAogY2xhc3MgSW50ZXJuYWxzIDogcHVibGljIFJlZkNvdW50ZWQ8SW50ZXJuYWxzPgpAQCAtMzY4
LDYgKzM3MiwxMCBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPEZpbGU+IGNyZWF0ZUZpbGUoY29uc3Qg
U3RyaW5nJik7CiAgICAgdm9pZCBxdWV1ZU1pY3JvVGFzayhpbnQpOwogCisjaWYgRU5BQkxFKENP
TlRFTlRfRklMVEVSSU5HKQorICAgIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MmIG1vY2tDb250
ZW50RmlsdGVyU2V0dGluZ3MoKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IElu
dGVybmFscyhEb2N1bWVudCopOwogICAgIERvY3VtZW50KiBjb250ZXh0RG9jdW1lbnQoKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA0MDZhOTJiZGZjYzAyYzEx
M2YwMTFkNzM1NjllODdkNTY4MTk3NTAzLi4yMmNkMjJkZGM5ZTZkZTAxOTY3MjE0NmUxNzJmOTVh
ZDNkNzM4MGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0zMjMsNCAr
MzIzLDYgQEAgZW51bSBQYWdlT3ZlcmxheVR5cGUgewogICAgIAogICAgIEZpbGUgY3JlYXRlRmls
ZShET01TdHJpbmcgdXJsKTsKICAgICB2b2lkIHF1ZXVlTWljcm9UYXNrKGxvbmcgdGVzdE51bWJl
cik7CisKKyAgICBbQ29uZGl0aW9uYWw9Q09OVEVOVF9GSUxURVJJTkddIHJlYWRvbmx5IGF0dHJp
YnV0ZSBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzIG1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43MWVlZDBjZjc2ODFhZDgyMjlhM2I0ZWQ4ZjdkNTUxNmFiMGI1Y2YxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlci5jcHAK
QEAgLTAsMCArMSwxMDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiTW9ja0NvbnRlbnRGaWx0ZXIuaCIKKworI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklO
RykKKworI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIE1vY2tDb250ZW50RmlsdGVyOjplbnN1cmVJbnN0
YWxsZWQoKQoreworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6
OmNhbGxfb25jZShvbmNlRmxhZywgW117CisgICAgICAgIENvbnRlbnRGaWx0ZXI6OmFkZFR5cGU8
TW9ja0NvbnRlbnRGaWx0ZXI+KCk7CisgICAgfSk7Cit9CisKK2Jvb2wgTW9ja0NvbnRlbnRGaWx0
ZXI6OmNhbkhhbmRsZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKQoreworICAgIHJl
dHVybiBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpzaW5nbGV0b24oKS5lbmFibGVkKCk7Cit9
CisKK3N0ZDo6dW5pcXVlX3B0cjxNb2NrQ29udGVudEZpbHRlcj4gTW9ja0NvbnRlbnRGaWx0ZXI6
OmNyZWF0ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4g
c3RkOjptYWtlX3VuaXF1ZTxNb2NrQ29udGVudEZpbHRlcj4ocmVzcG9uc2UpOworfQorCitNb2Nr
Q29udGVudEZpbHRlcjo6TW9ja0NvbnRlbnRGaWx0ZXIoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
Cit7CisgICAgbWF5YmVEZXRlcm1pbmVTdGF0dXMoTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6
RGVjaXNpb25Qb2ludDo6QWZ0ZXJSZXNwb25zZSk7Cit9CisKK3ZvaWQgTW9ja0NvbnRlbnRGaWx0
ZXI6OmFkZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKK3sKKyAgICBtX3JlcGxh
Y2VtZW50RGF0YS5hcHBlbmQoZGF0YSwgbGVuZ3RoKTsKKyAgICBtYXliZURldGVybWluZVN0YXR1
cyhNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpEZWNpc2lvblBvaW50OjpBZnRlckFkZERhdGEp
OworfQorCit2b2lkIE1vY2tDb250ZW50RmlsdGVyOjpmaW5pc2hlZEFkZGluZ0RhdGEoKQorewor
ICAgIG1heWJlRGV0ZXJtaW5lU3RhdHVzKE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OkRlY2lz
aW9uUG9pbnQ6OkFmdGVyRmluaXNoZWRBZGRpbmdEYXRhKTsKK30KKworYm9vbCBNb2NrQ29udGVu
dEZpbHRlcjo6bmVlZHNNb3JlRGF0YSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3RhdHVzID09
IFN0YXR1czo6TmVlZHNNb3JlRGF0YTsKK30KKworYm9vbCBNb2NrQ29udGVudEZpbHRlcjo6ZGlk
QmxvY2tEYXRhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdGF0dXMgPT0gU3RhdHVzOjpCbG9j
a2VkOworfQorCitjb25zdCBjaGFyKiBNb2NrQ29udGVudEZpbHRlcjo6Z2V0UmVwbGFjZW1lbnRE
YXRhKGludCYgbGVuZ3RoKSBjb25zdAoreworICAgIGxlbmd0aCA9IG1fcmVwbGFjZW1lbnREYXRh
LnNpemUoKTsKKyAgICByZXR1cm4gbV9yZXBsYWNlbWVudERhdGEuZGF0YSgpOworfQorCitDb250
ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgTW9ja0NvbnRlbnRGaWx0ZXI6OnVuYmxvY2tIYW5kbGVy
KCkgY29uc3QKK3sKKyAgICByZXR1cm4geyB9OworfQorCit2b2lkIE1vY2tDb250ZW50RmlsdGVy
OjptYXliZURldGVybWluZVN0YXR1cyhNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpEZWNpc2lv
blBvaW50IGRlY2lzaW9uUG9pbnQpCit7CisgICAgaWYgKG1fc3RhdHVzICE9IFN0YXR1czo6TmVl
ZHNNb3JlRGF0YSB8fCBkZWNpc2lvblBvaW50ICE9IE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6
OnNpbmdsZXRvbigpLmRlY2lzaW9uUG9pbnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9z
dGF0dXMgPSBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpzaW5nbGV0b24oKS5kZWNpc2lvbigp
ID09IE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OkRlY2lzaW9uOjpBbGxvdyA/IFN0YXR1czo6
QWxsb3dlZCA6IFN0YXR1czo6QmxvY2tlZDsKKyAgICBpZiAobV9zdGF0dXMgIT0gU3RhdHVzOjpC
bG9ja2VkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3JlcGxhY2VtZW50RGF0YS5jbGVhcigp
OworICAgIGNvbnN0IENTdHJpbmcgdXRmOEJsb2NrZWRTdHJpbmcgPSBNb2NrQ29udGVudEZpbHRl
clNldHRpbmdzOjpzaW5nbGV0b24oKS5ibG9ja2VkU3RyaW5nKCkudXRmOCgpOworICAgIG1fcmVw
bGFjZW1lbnREYXRhLmFwcGVuZCh1dGY4QmxvY2tlZFN0cmluZy5kYXRhKCksIHV0ZjhCbG9ja2Vk
U3RyaW5nLmxlbmd0aCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrQ29udGVudEZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2Nr
Q29udGVudEZpbHRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4MzE2NTkzMzkyZDBkY2MwYjg3ODRkMWRjZjNh
YWJmMWFhMDgyYjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tDb250ZW50RmlsdGVyLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
TW9ja0NvbnRlbnRGaWx0ZXJfaAorI2RlZmluZSBNb2NrQ29udGVudEZpbHRlcl9oCisKKyNpbmNs
dWRlICJDb250ZW50RmlsdGVyLmgiCisjaW5jbHVkZSAiTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5n
cy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1vY2tDb250ZW50RmlsdGVyIGZp
bmFsIDogcHVibGljIENvbnRlbnRGaWx0ZXIgeworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIGVu
c3VyZUluc3RhbGxlZCgpOworICAgIHN0YXRpYyBib29sIGNhbkhhbmRsZVJlc3BvbnNlKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1vY2tDb250
ZW50RmlsdGVyPiBjcmVhdGUoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworCisgICAgZXhwbGlj
aXQgTW9ja0NvbnRlbnRGaWx0ZXIoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworCisgICAgdm9p
ZCBhZGREYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpIG92ZXJyaWRlOworICAgIHZv
aWQgZmluaXNoZWRBZGRpbmdEYXRhKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBuZWVkc01vcmVEYXRh
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBkaWRCbG9ja0RhdGEoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICBjb25zdCBjaGFyKiBnZXRSZXBsYWNlbWVudERhdGEoaW50JiBsZW5ndGgpIGNvbnN0
IG92ZXJyaWRlOworICAgIENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciB1bmJsb2NrSGFuZGxl
cigpIGNvbnN0IG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIGVudW0gY2xhc3MgU3RhdHVzIHsK
KyAgICAgICAgTmVlZHNNb3JlRGF0YSwKKyAgICAgICAgQWxsb3dlZCwKKyAgICAgICAgQmxvY2tl
ZAorICAgIH07CisKKyAgICB2b2lkIG1heWJlRGV0ZXJtaW5lU3RhdHVzKE1vY2tDb250ZW50Rmls
dGVyU2V0dGluZ3M6OkRlY2lzaW9uUG9pbnQpOworCisgICAgVmVjdG9yPGNoYXI+IG1fcmVwbGFj
ZW1lbnREYXRhOworICAgIFN0YXR1cyBtX3N0YXR1cyB7IFN0YXR1czo6TmVlZHNNb3JlRGF0YSB9
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTW9ja0NvbnRlbnRG
aWx0ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZp
bHRlclNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0
ZXJTZXR0aW5ncy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWFhYmI5M2U0MmYwYWY3MGM5NzFiYmQxODc1ZGUz
ZjhhMTlkZTc4NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9j
a0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNb2NrQ29udGVudEZpbHRlclNldHRpbmdz
LmgiCisKKyNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCisKKyNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitNb2NrQ29udGVudEZpbHRl
clNldHRpbmdzJiBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpzaW5nbGV0b24oKQoreworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNb2NrQ29udGVudEZpbHRlclNldHRpbmdzPiBzZXR0aW5n
czsKKyAgICByZXR1cm4gc2V0dGluZ3M7Cit9CisKK3ZvaWQgTW9ja0NvbnRlbnRGaWx0ZXJTZXR0
aW5nczo6cmVzZXQoKQoreworICAgIHNpbmdsZXRvbigpID0gTW9ja0NvbnRlbnRGaWx0ZXJTZXR0
aW5ncygpOworfQorCit9OyAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KENPTlRFTlRfRklMVEVSSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9N
b2NrQ29udGVudEZpbHRlclNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tD
b250ZW50RmlsdGVyU2V0dGluZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZGM5MmFiOTY4M2UwOTVmYzRkYzhl
YTIzNTE1NmIyMzhjOTFlMjQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9Nb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmgKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nc19oCisjZGVmaW5lIE1vY2tD
b250ZW50RmlsdGVyU2V0dGluZ3NfaAorCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncyB7CisgICAgZnJpZW5kIGNsYXNzIE5l
dmVyRGVzdHJveWVkPE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M+OworcHVibGljOgorICAgIGVu
dW0gY2xhc3MgRGVjaXNpb25Qb2ludCB7CisgICAgICAgIEFmdGVyUmVzcG9uc2UsCisgICAgICAg
IEFmdGVyQWRkRGF0YSwKKyAgICAgICAgQWZ0ZXJGaW5pc2hlZEFkZGluZ0RhdGEKKyAgICB9Owor
CisgICAgZW51bSBjbGFzcyBEZWNpc2lvbiB7CisgICAgICAgIEFsbG93LAorICAgICAgICBCbG9j
aworICAgIH07CisKKyAgICBzdGF0aWMgTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncyYgc2luZ2xl
dG9uKCk7CisgICAgc3RhdGljIHZvaWQgcmVzZXQoKTsKKworICAgIC8vIFRyaWNrIHRoZSBnZW5l
cmF0ZWQgYmluZGluZ3MgaW50byB0aGlua2luZyB3ZSdyZSBSZWZDb3VudGVkLgorICAgIHZvaWQg
cmVmKCkgeyB9CisgICAgdm9pZCBkZXJlZigpIHsgfQorCisgICAgYm9vbCBlbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9lbmFibGVkOyB9CisgICAgdm9pZCBzZXRFbmFibGVkKGJvb2wgZW5hYmxl
ZCkgeyBtX2VuYWJsZWQgPSBlbmFibGVkOyB9CisKKyAgICBjb25zdCBTdHJpbmcmIGJsb2NrZWRT
dHJpbmcoKSBjb25zdCB7IHJldHVybiBtX2Jsb2NrZWRTdHJpbmc7IH0KKyAgICB2b2lkIHNldEJs
b2NrZWRTdHJpbmcoY29uc3QgU3RyaW5nJiBibG9ja2VkU3RyaW5nKSB7IG1fYmxvY2tlZFN0cmlu
ZyA9IGJsb2NrZWRTdHJpbmc7IH0KKworICAgIERlY2lzaW9uUG9pbnQgZGVjaXNpb25Qb2ludCgp
IGNvbnN0IHsgcmV0dXJuIG1fZGVjaXNpb25Qb2ludDsgfQorICAgIHZvaWQgc2V0RGVjaXNpb25Q
b2ludChEZWNpc2lvblBvaW50IGRlY2lzaW9uUG9pbnQpIHsgbV9kZWNpc2lvblBvaW50ID0gZGVj
aXNpb25Qb2ludDsgfQorCisgICAgRGVjaXNpb24gZGVjaXNpb24oKSBjb25zdCB7IHJldHVybiBt
X2RlY2lzaW9uOyB9CisgICAgdm9pZCBzZXREZWNpc2lvbihEZWNpc2lvbiBkZWNpc2lvbikgeyBt
X2RlY2lzaW9uID0gZGVjaXNpb247IH0KKworcHJpdmF0ZToKKyAgICBNb2NrQ29udGVudEZpbHRl
clNldHRpbmdzKCkgPSBkZWZhdWx0OworCisgICAgYm9vbCBtX2VuYWJsZWQgeyBmYWxzZSB9Owor
ICAgIERlY2lzaW9uUG9pbnQgbV9kZWNpc2lvblBvaW50IHsgRGVjaXNpb25Qb2ludDo6QWZ0ZXJS
ZXNwb25zZSB9OworICAgIERlY2lzaW9uIG1fZGVjaXNpb24geyBEZWNpc2lvbjo6QWxsb3cgfTsK
KyAgICBTdHJpbmcgbV9ibG9ja2VkU3RyaW5nOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nc19oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaWRsIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hYzA2ZGVkMmY1MGE3MDNiYzk5ZjZkNDhlZjM5NDhjNTJkM2RjMDRmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlclNldHRpbmdz
LmlkbApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPUNP
TlRFTlRfRklMVEVSSU5HLAorICAgIE5vSW50ZXJmYWNlT2JqZWN0LAorICAgIEltcGxlbWVudGF0
aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3Mgewor
ICAgIGF0dHJpYnV0ZSBib29sZWFuIGVuYWJsZWQ7CisgICAgYXR0cmlidXRlIERPTVN0cmluZyBi
bG9ja2VkU3RyaW5nOworCisgICAgY29uc3Qgb2N0ZXQgREVDSVNJT05fUE9JTlRfQUZURVJfUkVT
UE9OU0UgPSAwOworICAgIGNvbnN0IG9jdGV0IERFQ0lTSU9OX1BPSU5UX0FGVEVSX0FERF9EQVRB
ID0gMTsKKyAgICBjb25zdCBvY3RldCBERUNJU0lPTl9QT0lOVF9BRlRFUl9GSU5JU0hFRF9BRERJ
TkdfREFUQSA9IDI7CisgICAgW0N1c3RvbV0gYXR0cmlidXRlIG9jdGV0IGRlY2lzaW9uUG9pbnQ7
CisKKyAgICBjb25zdCBvY3RldCBERUNJU0lPTl9BTExPVyA9IDA7CisgICAgY29uc3Qgb2N0ZXQg
REVDSVNJT05fQkxPQ0sgPSAxOworICAgIFtDdXN0b21dIGF0dHJpYnV0ZSBvY3RldCBkZWNpc2lv
bjsKK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNGYwOTM5MWNlYTlkZTAyZDFlNzI2MDBiYjg3ZmIwOTBjNDdjMjVlMS4u
ZTZlNzVkNmEzYWYxNWY1Y2FjNmIzZDhmMzZkZjdlMmE4MTk4ZTMzNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIzIEBACisyMDE1LTAzLTA5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAg
ICAgICBbQ29udGVudCBGaWx0ZXJpbmddIEFkZCB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNDc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjb250ZW50ZmlsdGVyaW5nL2FsbG93LWFmdGVy
LWFkZC1kYXRhLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbnRlbnRmaWx0ZXJp
bmcvYWxsb3ctYWZ0ZXItYWRkLWRhdGEuaHRtbDogQWRkZWQuCisgICAgICAgICogY29udGVudGZp
bHRlcmluZy9hbGxvdy1hZnRlci1maW5pc2hlZC1hZGRpbmctZGF0YS1leHBlY3RlZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjb250ZW50ZmlsdGVyaW5nL2FsbG93LWFmdGVyLWZpbmlzaGVkLWFk
ZGluZy1kYXRhLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbnRlbnRmaWx0ZXJpbmcvYWxsb3ct
YWZ0ZXItcmVzcG9uc2UtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY29udGVudGZp
bHRlcmluZy9hbGxvdy1hZnRlci1yZXNwb25zZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb250
ZW50ZmlsdGVyaW5nL2Jsb2NrLWFmdGVyLWFkZC1kYXRhLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGNvbnRlbnRmaWx0ZXJpbmcvYmxvY2stYWZ0ZXItYWRkLWRhdGEuaHRtbDogQWRk
ZWQuCisgICAgICAgICogY29udGVudGZpbHRlcmluZy9ibG9jay1hZnRlci1maW5pc2hlZC1hZGRp
bmctZGF0YS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb250ZW50ZmlsdGVyaW5n
L2Jsb2NrLWFmdGVyLWZpbmlzaGVkLWFkZGluZy1kYXRhLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGNvbnRlbnRmaWx0ZXJpbmcvYmxvY2stYWZ0ZXItcmVzcG9uc2UtZXhwZWN0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogY29udGVudGZpbHRlcmluZy9ibG9jay1hZnRlci1yZXNwb25zZS5odG1s
OiBBZGRlZC4KKwogMjAxNS0wMy0wOCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgogCiAgICAgICAgIExhc3QgdGVzdCBnYXJkZW5pbmcgYWZ0ZXIgcjE3Nzc3NCAoZm9y
IHJlYWxzIHRoaXMgdGltZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJp
bmcvYWxsb3ctYWZ0ZXItYWRkLWRhdGEtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NvbnRl
bnRmaWx0ZXJpbmcvYWxsb3ctYWZ0ZXItYWRkLWRhdGEtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wNjdiZmExOTIwMmIyMzcwNDZmMGUwNjI2MWYwMzllMWEyZTc0YjkyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9hbGxvdy1hZnRlci1hZGQtZGF0YS1l
eHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aWZyYW1lIHNy
Yz0iZGF0YTp0ZXh0L2h0bWwsUEFTUyI+PC9pZnJhbWU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jb250ZW50ZmlsdGVyaW5nL2FsbG93LWFmdGVyLWFkZC1kYXRhLmh0bWwgYi9MYXlvdXRUZXN0
cy9jb250ZW50ZmlsdGVyaW5nL2FsbG93LWFmdGVyLWFkZC1kYXRhLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDAyOGJhODM1M2MwODRhMTA2MGMzMDZiYWZlOWVkMzI2NjBlMDhlMAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvYWxsb3ctYWZ0ZXItYWRkLWRhdGEuaHRt
bApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdD4KK3ZhciBzZXR0aW5n
cyA9IHdpbmRvdy5pbnRlcm5hbHMubW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczsKK3NldHRpbmdz
LmVuYWJsZWQgPSB0cnVlOworc2V0dGluZ3MuYmxvY2tlZFN0cmluZyA9ICJGQUlMIjsKK3NldHRp
bmdzLmRlY2lzaW9uUG9pbnQgPSBzZXR0aW5ncy5ERUNJU0lPTl9QT0lOVF9BRlRFUl9BRERfREFU
QTsKK3NldHRpbmdzLmRlY2lzaW9uID0gc2V0dGluZ3MuREVDSVNJT05fQUxMT1c7Cis8L3Njcmlw
dD4KKzxpZnJhbWUgc3JjPSJkYXRhOnRleHQvaHRtbCxQQVNTIj48L2lmcmFtZT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvYWxsb3ctYWZ0ZXItZmluaXNoZWQtYWRk
aW5nLWRhdGEtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvYWxs
b3ctYWZ0ZXItZmluaXNoZWQtYWRkaW5nLWRhdGEtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
NjdiZmExOTIwMmIyMzcwNDZmMGUwNjI2MWYwMzllMWEyZTc0YjkyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9hbGxvdy1hZnRlci1maW5pc2hlZC1hZGRp
bmctZGF0YS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aWZyYW1lIHNyYz0iZGF0YTp0ZXh0L2h0bWwsUEFTUyI+PC9pZnJhbWU+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jb250ZW50ZmlsdGVyaW5nL2FsbG93LWFmdGVyLWZpbmlzaGVkLWFkZGluZy1k
YXRhLmh0bWwgYi9MYXlvdXRUZXN0cy9jb250ZW50ZmlsdGVyaW5nL2FsbG93LWFmdGVyLWZpbmlz
aGVkLWFkZGluZy1kYXRhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmU4NGM0OWY0ZTQ4NTdjZTc0M2Q4Y2Yy
NjRkNzViMjM2NDhhOTU5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRlbnRm
aWx0ZXJpbmcvYWxsb3ctYWZ0ZXItZmluaXNoZWQtYWRkaW5nLWRhdGEuaHRtbApAQCAtMCwwICsx
LDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdD4KK3ZhciBzZXR0aW5ncyA9IHdpbmRvdy5p
bnRlcm5hbHMubW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczsKK3NldHRpbmdzLmVuYWJsZWQgPSB0
cnVlOworc2V0dGluZ3MuYmxvY2tlZFN0cmluZyA9ICJGQUlMIjsKK3NldHRpbmdzLmRlY2lzaW9u
UG9pbnQgPSBzZXR0aW5ncy5ERUNJU0lPTl9QT0lOVF9BRlRFUl9GSU5JU0hFRF9BRERJTkdfREFU
QTsKK3NldHRpbmdzLmRlY2lzaW9uID0gc2V0dGluZ3MuREVDSVNJT05fQUxMT1c7Cis8L3Njcmlw
dD4KKzxpZnJhbWUgc3JjPSJkYXRhOnRleHQvaHRtbCxQQVNTIj48L2lmcmFtZT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvYWxsb3ctYWZ0ZXItcmVzcG9uc2UtZXhw
ZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvYWxsb3ctYWZ0ZXItcmVz
cG9uc2UtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjdiZmExOTIwMmIyMzcwNDZmMGUwNjI2
MWYwMzllMWEyZTc0YjkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGVudGZp
bHRlcmluZy9hbGxvdy1hZnRlci1yZXNwb25zZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aWZyYW1lIHNyYz0iZGF0YTp0ZXh0L2h0bWwsUEFTUyI+PC9p
ZnJhbWU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb250ZW50ZmlsdGVyaW5nL2FsbG93LWFm
dGVyLXJlc3BvbnNlLmh0bWwgYi9MYXlvdXRUZXN0cy9jb250ZW50ZmlsdGVyaW5nL2FsbG93LWFm
dGVyLXJlc3BvbnNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODU3OTgyNzcyYjBmZWMxYTIxZDI1OTcwMDNk
NDM1NmFmNDIyZWUzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0
ZXJpbmcvYWxsb3ctYWZ0ZXItcmVzcG9uc2UuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPHNjcmlwdD4KK3ZhciBzZXR0aW5ncyA9IHdpbmRvdy5pbnRlcm5hbHMubW9ja0Nv
bnRlbnRGaWx0ZXJTZXR0aW5nczsKK3NldHRpbmdzLmVuYWJsZWQgPSB0cnVlOworc2V0dGluZ3Mu
YmxvY2tlZFN0cmluZyA9ICJGQUlMIjsKK3NldHRpbmdzLmRlY2lzaW9uUG9pbnQgPSBzZXR0aW5n
cy5ERUNJU0lPTl9QT0lOVF9BRlRFUl9SRVNQT05TRTsKK3NldHRpbmdzLmRlY2lzaW9uID0gc2V0
dGluZ3MuREVDSVNJT05fQUxMT1c7Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJkYXRhOnRleHQv
aHRtbCxQQVNTIj48L2lmcmFtZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0
ZXJpbmcvYmxvY2stYWZ0ZXItYWRkLWRhdGEtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Nv
bnRlbnRmaWx0ZXJpbmcvYmxvY2stYWZ0ZXItYWRkLWRhdGEtZXhwZWN0ZWQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42NTVmM2JjMGQzODAyMGU0ZmFkZjYyYjA1YmYzNzcxM2Y4NmU1ODE4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9ibG9jay1hZnRlci1hZGQtZGF0
YS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aWZyYW1l
IHNyYz0iZGF0YTp0ZXh0L2h0bWwsIj48L2lmcmFtZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NvbnRlbnRmaWx0ZXJpbmcvYmxvY2stYWZ0ZXItYWRkLWRhdGEuaHRtbCBiL0xheW91dFRlc3Rz
L2NvbnRlbnRmaWx0ZXJpbmcvYmxvY2stYWZ0ZXItYWRkLWRhdGEuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
MTEwNjBmM2Q5YThkNTgwNzhiZjFlYmRiZmJhYzhkYWQ2ZTczNWZlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9ibG9jay1hZnRlci1hZGQtZGF0YS5odG1s
CkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0PgordmFyIHNldHRpbmdz
ID0gd2luZG93LmludGVybmFscy5tb2NrQ29udGVudEZpbHRlclNldHRpbmdzOworc2V0dGluZ3Mu
ZW5hYmxlZCA9IHRydWU7CitzZXR0aW5ncy5ibG9ja2VkU3RyaW5nID0gIlBBU1MiOworc2V0dGlu
Z3MuZGVjaXNpb25Qb2ludCA9IHNldHRpbmdzLkRFQ0lTSU9OX1BPSU5UX0FGVEVSX0FERF9EQVRB
Oworc2V0dGluZ3MuZGVjaXNpb24gPSBzZXR0aW5ncy5ERUNJU0lPTl9CTE9DSzsKKzwvc2NyaXB0
PgorPGlmcmFtZSBzcmM9ImRhdGE6dGV4dC9odG1sLEZBSUwiPjwvaWZyYW1lPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9ibG9jay1hZnRlci1maW5pc2hlZC1hZGRp
bmctZGF0YS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9ibG9j
ay1hZnRlci1maW5pc2hlZC1hZGRpbmctZGF0YS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2
N2JmYTE5MjAyYjIzNzA0NmYwZTA2MjYxZjAzOWUxYTJlNzRiOTIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jb250ZW50ZmlsdGVyaW5nL2Jsb2NrLWFmdGVyLWZpbmlzaGVkLWFkZGlu
Zy1kYXRhLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxp
ZnJhbWUgc3JjPSJkYXRhOnRleHQvaHRtbCxQQVNTIj48L2lmcmFtZT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvYmxvY2stYWZ0ZXItZmluaXNoZWQtYWRkaW5nLWRh
dGEuaHRtbCBiL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvYmxvY2stYWZ0ZXItZmluaXNo
ZWQtYWRkaW5nLWRhdGEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTM1OTZjMDdlMWMyNGI2NmY2MGQ4MjQ3
YjljOTQ2OGU5NzhiODc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGVudGZp
bHRlcmluZy9ibG9jay1hZnRlci1maW5pc2hlZC1hZGRpbmctZGF0YS5odG1sCkBAIC0wLDAgKzEs
OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0PgordmFyIHNldHRpbmdzID0gd2luZG93Lmlu
dGVybmFscy5tb2NrQ29udGVudEZpbHRlclNldHRpbmdzOworc2V0dGluZ3MuZW5hYmxlZCA9IHRy
dWU7CitzZXR0aW5ncy5ibG9ja2VkU3RyaW5nID0gIlBBU1MiOworc2V0dGluZ3MuZGVjaXNpb25Q
b2ludCA9IHNldHRpbmdzLkRFQ0lTSU9OX1BPSU5UX0FGVEVSX0ZJTklTSEVEX0FERElOR19EQVRB
Oworc2V0dGluZ3MuZGVjaXNpb24gPSBzZXR0aW5ncy5ERUNJU0lPTl9CTE9DSzsKKzwvc2NyaXB0
PgorPGlmcmFtZSBzcmM9ImRhdGE6dGV4dC9odG1sLEZBSUwiPjwvaWZyYW1lPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9ibG9jay1hZnRlci1yZXNwb25zZS1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY29udGVudGZpbHRlcmluZy9ibG9jay1hZnRlci1yZXNw
b25zZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjNmM4MmZhYzdkMTQyYjI0ZGU0OWU0YTVm
OTI1NGEwNGU2NTY2NjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb250ZW50Zmls
dGVyaW5nL2Jsb2NrLWFmdGVyLXJlc3BvbnNlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxpZnJhbWUgc3JjPSJkYXRhOnRleHQvaHRtbCxGQUlMIj48L2lm
cmFtZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvYmxvY2stYWZ0
ZXItcmVzcG9uc2UuaHRtbCBiL0xheW91dFRlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvYmxvY2stYWZ0
ZXItcmVzcG9uc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MDdlYmExMDczZmU2Mjk3YWRkMGI5MmIzNGY0
ZjQyOWNiMTkwMDdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGVudGZpbHRl
cmluZy9ibG9jay1hZnRlci1yZXNwb25zZS5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8c2NyaXB0PgordmFyIHNldHRpbmdzID0gd2luZG93LmludGVybmFscy5tb2NrQ29u
dGVudEZpbHRlclNldHRpbmdzOworc2V0dGluZ3MuZW5hYmxlZCA9IHRydWU7CitzZXR0aW5ncy5i
bG9ja2VkU3RyaW5nID0gIlBBU1MiOworc2V0dGluZ3MuZGVjaXNpb25Qb2ludCA9IHNldHRpbmdz
LkRFQ0lTSU9OX1BPSU5UX0FGVEVSX1JFU1BPTlNFOworc2V0dGluZ3MuZGVjaXNpb24gPSBzZXR0
aW5ncy5ERUNJU0lPTl9CTE9DSzsKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9ImRhdGE6dGV4dC9o
dG1sLEZBSUwiPjwvaWZyYW1lPgo=
</data>
<flag name="review"
          id="273171"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>