<?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>208703</bug_id>
          
          <creation_ts>2020-03-06 02:36:00 -0800</creation_ts>
          <short_desc>[WebAuthn] Customize a bit more on the macOS LocalAuthentication prompt</short_desc>
          <delta_ts>2020-03-24 17:03:26 -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>WebKit Misc.</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>181943</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1626577</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-03-06 02:36:00 -0800</bug_when>
    <thetext>Customize a bit more on the macOS LocalAuthentication prompt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626578</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-06 02:36:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/60136974&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626579</commentid>
    <comment_count>2</comment_count>
      <attachid>392696</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-03-06 02:43:14 -0800</bug_when>
    <thetext>Created attachment 392696
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626865</commentid>
    <comment_count>3</comment_count>
      <attachid>392771</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-03-06 14:07:08 -0800</bug_when>
    <thetext>Created attachment 392771
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627668</commentid>
    <comment_count>4</comment_count>
      <attachid>392771</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-08 23:14:36 -0700</bug_when>
    <thetext>Comment on attachment 392771
Patch

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

&gt; Source/WebCore/en.lproj/Localizable.strings:887
&gt; +&quot;Touch ID to allow signning into â%@â with Touch ID.&quot; = &quot;Touch ID to allow signning into â%@â with Touch ID.&quot;;

Spelling error here in the word &quot;signing&quot;

&gt; Source/WebCore/platform/LocalizedStrings.cpp:1218
&gt; +    return formatLocalizedString(WEB_UI_CFSTRING(&quot;Touch ID to allow signning into â%@â with Touch ID.&quot;, &quot;Allow using Touch ID to sign into the specified website on this device&quot;), rpId.createCFString().get());

Ditto.

&gt; Source/WebCore/platform/LocalizedStrings.h:344
&gt; +    WEBCORE_EXPORT String makeCredentialTouchIDPromptTitle(const String&amp; rpId);

Do we really have to call this &quot;rpId&quot;? Are there words we could use instead?

&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:52
&gt; +#elif PLATFORM(MAC)

I think we should just use #else here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629850</commentid>
    <comment_count>5</comment_count>
      <attachid>392771</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-03-13 14:51:08 -0700</bug_when>
    <thetext>Comment on attachment 392771
Patch

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

Thanks Darin for the r+!

&gt;&gt; Source/WebCore/en.lproj/Localizable.strings:887
&gt;&gt; +&quot;Touch ID to allow signning into â%@â with Touch ID.&quot; = &quot;Touch ID to allow signning into â%@â with Touch ID.&quot;;
&gt; 
&gt; Spelling error here in the word &quot;signing&quot;

Fixed.

&gt;&gt; Source/WebCore/platform/LocalizedStrings.cpp:1218
&gt;&gt; +    return formatLocalizedString(WEB_UI_CFSTRING(&quot;Touch ID to allow signning into â%@â with Touch ID.&quot;, &quot;Allow using Touch ID to sign into the specified website on this device&quot;), rpId.createCFString().get());
&gt; 
&gt; Ditto.

Fixed.

&gt;&gt; Source/WebCore/platform/LocalizedStrings.h:344
&gt;&gt; +    WEBCORE_EXPORT String makeCredentialTouchIDPromptTitle(const String&amp; rpId);
&gt; 
&gt; Do we really have to call this &quot;rpId&quot;? Are there words we could use instead?

We could call it domain.

&gt;&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:52
&gt;&gt; +#elif PLATFORM(MAC)
&gt; 
&gt; I think we should just use #else here.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629870</commentid>
    <comment_count>6</comment_count>
      <attachid>393535</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-03-13 15:14:07 -0700</bug_when>
    <thetext>Created attachment 393535
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629880</commentid>
    <comment_count>7</comment_count>
      <attachid>393535</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-03-13 15:26:43 -0700</bug_when>
    <thetext>Comment on attachment 393535
Patch for landing

Always be tricked by the fact that webkit-patch upload will bundle any local changes into one patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629882</commentid>
    <comment_count>8</comment_count>
      <attachid>393537</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-03-13 15:27:57 -0700</bug_when>
    <thetext>Created attachment 393537
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629920</commentid>
    <comment_count>9</comment_count>
      <attachid>393537</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-13 16:15:36 -0700</bug_when>
    <thetext>Comment on attachment 393537
Patch for landing

Clearing flags on attachment: 393537

Committed r258442: &lt;https://trac.webkit.org/changeset/258442&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630480</commentid>
    <comment_count>10</comment_count>
      <attachid>393687</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-03-16 14:54:03 -0700</bug_when>
    <thetext>Created attachment 393687
Part 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631932</commentid>
    <comment_count>11</comment_count>
      <attachid>393687</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-03-19 17:53:28 -0700</bug_when>
    <thetext>Comment on attachment 393687
Part 2

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632019</commentid>
    <comment_count>12</comment_count>
      <attachid>394070</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-03-20 00:22:20 -0700</bug_when>
    <thetext>Created attachment 394070
Part 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632020</commentid>
    <comment_count>13</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-03-20 00:23:30 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #11)
&gt; Comment on attachment 393687 [details]
&gt; Part 2
&gt; 
&gt; r=me

Thanks for the review. I just upload a newer version which addresses comments from our Tuesday meeting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632716</commentid>
    <comment_count>14</comment_count>
      <attachid>394070</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-22 18:33:31 -0700</bug_when>
    <thetext>Comment on attachment 394070
Part 2

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

&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:55
&gt; +    NSBundle *mainBundle = [NSBundle mainBundle];
&gt; +    bundleName = appBundle.infoDictionary[(id)_kCFBundleDisplayNameKey];
&gt; +    if (!bundleName)
&gt; +        bundleName = appBundle.infoDictionary[(id)kCFBundleNameKey];
&gt; +    if (!bundleName)
&gt; +        bundleName = [mainBundle bundleIdentifier];

This code is not compiling on iOS bots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632723</commentid>
    <comment_count>15</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-03-22 19:22:26 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #14)
&gt; Comment on attachment 394070 [details]
&gt; Part 2
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=394070&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:55
&gt; &gt; +    NSBundle *mainBundle = [NSBundle mainBundle];
&gt; &gt; +    bundleName = appBundle.infoDictionary[(id)_kCFBundleDisplayNameKey];
&gt; &gt; +    if (!bundleName)
&gt; &gt; +        bundleName = appBundle.infoDictionary[(id)kCFBundleNameKey];
&gt; &gt; +    if (!bundleName)
&gt; &gt; +        bundleName = [mainBundle bundleIdentifier];
&gt; 
&gt; This code is not compiling on iOS bots

I fixed that locally but was struggling to get an iOS device to run. Will upload a new patch soon once I&apos;m done testing on my iOS device.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632732</commentid>
    <comment_count>16</comment_count>
      <attachid>394239</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-03-22 20:56:51 -0700</bug_when>
    <thetext>Created attachment 394239
Part 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632735</commentid>
    <comment_count>17</comment_count>
      <attachid>394240</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-03-22 21:01:53 -0700</bug_when>
    <thetext>Created attachment 394240
Part 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633618</commentid>
    <comment_count>18</comment_count>
      <attachid>394240</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-03-24 16:01:05 -0700</bug_when>
    <thetext>Comment on attachment 394240
Part 2

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

R=me

&gt; Source/WebKit/ChangeLog:12
&gt; +        And tunes a bit on the makeCredential string.

It also polishes the text used for makeCredential.

&gt; Source/WebKit/ChangeLog:14
&gt; +        Besides that, it also enhances the iOS titles as well.

Besides that, it also enhances the iOS title strings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633629</commentid>
    <comment_count>19</comment_count>
      <attachid>394240</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-03-24 16:09:01 -0700</bug_when>
    <thetext>Comment on attachment 394240
Part 2

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

Thanks Brent for the r+.

&gt;&gt; Source/WebKit/ChangeLog:12
&gt;&gt; +        And tunes a bit on the makeCredential string.
&gt; 
&gt; It also polishes the text used for makeCredential.

Fixed.

&gt;&gt; Source/WebKit/ChangeLog:14
&gt;&gt; +        Besides that, it also enhances the iOS titles as well.
&gt; 
&gt; Besides that, it also enhances the iOS title strings.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633632</commentid>
    <comment_count>20</comment_count>
      <attachid>394434</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-03-24 16:11:39 -0700</bug_when>
    <thetext>Created attachment 394434
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633668</commentid>
    <comment_count>21</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-24 17:03:26 -0700</bug_when>
    <thetext>Committed r258961: &lt;https://trac.webkit.org/changeset/258961&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394434.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392696</attachid>
            <date>2020-03-06 02:43:14 -0800</date>
            <delta_ts>2020-03-06 14:07:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208703-20200306024313.patch</filename>
            <type>text/plain</type>
            <size>11926</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3OTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWYyODcxOGRiYWI1OWE2
M2JhYzY5ZWJlYjk3NzBkNTAwMTNkYWQ5Ny4uYzRkMjMzMDIwZjBhM2E5YzQwYTc4ODQ0MGFiYTM0
MmNhYjFlYmZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAzLTA2ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBDdXN0
b21pemUgYSBiaXQgbW9yZSBvbiB0aGUgbWFjT1MgTG9jYWxBdXRoZW50aWNhdGlvbiBwcm9tcHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODcwMwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjAxMzY5NzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdz
OgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6dG91Y2hJRFByb21wdFRpdGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmg6CisgICAgICAgIEFkZHMgYSBuZXcgZm9ybWF0dGVkIFVJIHN0cmluZyB0byBoZWxw
IHdpdGggUlAgSUQuCisKIDIwMjAtMDMtMDUgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxs
YXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdGhlIG9wdGltaXphdGlvbiBmb3IgZGlz
Y2FyZGluZyBubyBvcGVyYXRpb24gRGlzcGxheUxpc3QgaXRlbXMgYmV0d2VlbiBTYXZlIGFuZCBS
ZXN0b3JlIGl0ZW1zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJmM2JiNzM1MmE0OTQyYjQwNmU4Mjg1YWJhYjkzM2I0
NTc3ZmI0YzguLjJmYzYyNzUwMjU1NTVmY2VlMzkyYmRjMTFkM2Y5NzM2NmNmNWQxMmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjAtMDMtMDYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIEN1c3RvbWl6ZSBhIGJpdCBtb3JlIG9u
IHRoZSBtYWNPUyBMb2NhbEF1dGhlbnRpY2F0aW9uIHByb21wdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NzAzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS82MDEzNjk3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBPbiBtYWNPUywgTG9jYWxBdXRoZW50aWNhdGlvbiBwcm9tcHQgY2FuIGJlIHNob3du
IGFueXdoZXJlIHRoYXQgaXMgcHJvYmFibHkgbm90IG9uIHRvcCBvZgorICAgICAgICBvdXIgVUkg
Y2xpZW50cy4gVGhlcmVmb3JlLCBhZGQgYSBSUCBJRCB0byB0aGUgZGlhbG9nIHRvIGhlbHAgdXNl
cnMgdG8gaWRlbnRpZnkgd2hhdCBoYXMKKyAgICAgICAgaGFwcGVuZWQuIEluIGFkZGl0aW9uLCBp
dCByZW1vdmVzIHRoZSBwYXNzd29yZCBmYWxsYmFjayBidXR0b24uCisKKyAgICAgICAgKiBQbGF0
Zm9ybS9zcGkvQ29jb2EvTG9jYWxBdXRoZW50aWNhdGlvblNQSS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW06CisgICAg
ICAgIChXZWJLaXQ6OkxvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFm
dGVyRGVjaWRlUG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxBdXRoZW50aWNhdG9yOjpj
b250aW51ZUdldEFzc2VydGlvbkFmdGVyUmVzcG9uc2VTZWxlY3RlZCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlvbi5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24ubW06
CisgICAgICAgIChXZWJLaXQ6OkxvY2FsQ29ubmVjdGlvbjo6dmVyaWZ5VXNlciBjb25zdCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVj
dGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tM
b2NhbENvbm5lY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6Ok1vY2tMb2NhbENvbm5lY3Rpb246
OnZlcmlmeVVzZXIgY29uc3QpOgorCiAyMDIwLTAzLTA1ICBLYXRlIENoZW5leSAgPGthdGhlcmlu
ZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCB3ZWIgcGFnZSBhZGRpdGlvbnMgdG8g
V2ViUGFnZVByb3h5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6
YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5n
cwppbmRleCA3NTUyMjVlNmJhM2RlMzEzOGQzNjZmMTQ3ZmZmNWI4NGEyOGZhZDk2Li44MTlhY2Q2
Yjc0MDc2OWM5NTNkNTYzZTBmMjdiNGI0ZGQ2OTY3MWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vu
Lmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTg4Myw2ICs4ODMsOSBAQAogLyogVXNlIFRv
dWNoIElEIHRvIHNpZ24gaW50byB0aGlzIHdlYnNpdGUgKi8KICJUb3VjaCBJRCB0byBzaWduIGlu
dG8gdGhpcyB3ZWJzaXRlLiIgPSAiVG91Y2ggSUQgdG8gc2lnbiBpbnRvIHRoaXMgd2Vic2l0ZS4i
OwogCisvKiBVc2UgVG91Y2ggSUQgdG8gc2lnbiBpbnRvIHRoZSBzcGVjaWZpZWQgd2Vic2l0ZSAq
LworIlRvdWNoIElEIHRvIHNpZ24gaW50byDigJwlQOKAnS4iID0gIlRvdWNoIElEIHRvIHNpZ24g
aW50byDigJwlQOKAnS4iOworCiAvKiBUcmFuc2Zvcm1hdGlvbnMgY29udGV4dCBzdWItbWVudSBp
dGVtICovCiAiVHJhbnNmb3JtYXRpb25zIiA9ICJUcmFuc2Zvcm1hdGlvbnMiOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IDlhYzBiZDI5MjBj
Y2JhNTkzZTliYTA3ZWU2ZjNlNjU4MjViYTJlNTkuLjVmNDY4NWJjN2ZjMDM3ZmQ3MTgwMWQyZDk5
YmUwYWM4ZWQ1YTIzZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0
cmluZ3MuY3BwCkBAIC0xMjEzLDYgKzEyMTMsMTEgQEAgU3RyaW5nIHRvdWNoSURQcm9tcHRUaXRs
ZSgpCiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlRvdWNoIElEIHRvIHNpZ24gaW50byB0aGlz
IHdlYnNpdGUuIiwgIlVzZSBUb3VjaCBJRCB0byBzaWduIGludG8gdGhpcyB3ZWJzaXRlIik7CiB9
CiAKK1N0cmluZyB0b3VjaElEUHJvbXB0VGl0bGUoY29uc3QgU3RyaW5nJiBycElkKQoreworICAg
IHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HKCJUb3VjaCBJRCB0
byBzaWduIGludG8g4oCcJUDigJ0uIiwgIlVzZSBUb3VjaCBJRCB0byBzaWduIGludG8gdGhlIHNw
ZWNpZmllZCB3ZWJzaXRlIiksIHJwSWQuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7Cit9CisKIFN0
cmluZyBiaW9tZXRyaWNGYWxsYmFja1Byb21wdFRpdGxlKCkKIHsKICAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiRW50ZXIgcGFzc2NvZGUgdG8gc2lnbiBpbnRvIHRoaXMgd2Vic2l0ZS4iLCAiVXNl
IHBhc3Njb2RlIGFzIGEgZmFsbGJhY2sgdG8gc2lnbiBpbnRvIHRoaXMgd2Vic2l0ZSIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCmluZGV4IGQ3MTg0NzJjNGFk
YTNlYjdjNDRlNWJjN2I5ZWI0NmM2MDcxNWFhYTUuLjEyMGE0MzQzZmExNzU1YzM1ZmU4NmJkMDQ4
MTVjYjZiZjA3OThhYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJp
bmdzLmgKQEAgLTM0MSw2ICszNDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFC
TEUoV0VCX0FVVEhOKQogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyB0b3VjaElEUHJvbXB0VGl0
bGUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgdG91Y2hJRFByb21wdFRpdGxlKGNvbnN0
IFN0cmluZyYgcnBJZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGJpb21ldHJpY0ZhbGxi
YWNrUHJvbXB0VGl0bGUoKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3NwaS9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0aW9uU1BJLmggYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL3NwaS9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0aW9uU1BJLmgKaW5kZXggOGU1ODRk
ODJiMzQ0N2YwYWZhZTI3NmVhN2I4ZjUzMWMxZDQ2NDU0Mi4uNjVlOWY2NDE3NGQ5NzVmNmE4Yjg4
NGM3ZGVhYmE0MzVmYTBkMzIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9z
cGkvQ29jb2EvTG9jYWxBdXRoZW50aWNhdGlvblNQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vc3BpL0NvY29hL0xvY2FsQXV0aGVudGljYXRpb25TUEkuaApAQCAtMzYsNiArMzYsNyBA
QAogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgTEFPcHRpb24pIHsKICAgICBMQU9wdGlvbkF1
dGhlbnRpY2F0aW9uVGl0bGUsCiAgICAgTEFPcHRpb25QYXNzY29kZVRpdGxlLAorICAgIExBT3B0
aW9uRmFsbGJhY2tWaXNpYmxlLAogfTsKIAogQGludGVyZmFjZSBMQUNvbnRleHQoUHJpdmF0ZSkg
PE5TU2VjdXJlQ29kaW5nPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1t
CmluZGV4IGRhOGMxYjM5ZmZhOGFiNWY2Y2EwYzA5NzljOWFmMzRjOWI1N2ZjOTUuLjJjMTEwM2I3
ZTZkNGU3ZTNlMTViMGFkNGJjNmU1NjYzYTg4ODAxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9M
b2NhbEF1dGhlbnRpY2F0b3IubW0KQEAgLTE3Nyw2ICsxNzcsOCBAQCB2b2lkIExvY2FsQXV0aGVu
dGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyRGVjaWRlUG9saWN5KExvY2FsQXV0
aGVudGljYQogICAgIEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpSZXF1ZXN0UmVjZWl2ZWQpOwog
ICAgIG1fc3RhdGUgPSBTdGF0ZTo6UG9saWN5RGVjaWRlZDsKIAorICAgIGF1dG8mIGNyZWF0aW9u
T3B0aW9ucyA9IFdURjo6Z2V0PFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+KHJl
cXVlc3REYXRhKCkub3B0aW9ucyk7CisKICAgICBpZiAocG9saWN5ID09IExvY2FsQXV0aGVudGlj
YXRvclBvbGljeTo6RGlzYWxsb3cpIHsKICAgICAgICAgcmVjZWl2ZVJlc3BvbmQoRXhjZXB0aW9u
RGF0YSB7IFVua25vd25FcnJvciwgIkRpc2FsbG93IGxvY2FsIGF1dGhlbnRpY2F0b3IuIl9zIH0p
OwogICAgICAgICByZXR1cm47CkBAIC0yMDEsNyArMjAzLDcgQEAgdm9pZCBMb2NhbEF1dGhlbnRp
Y2F0b3I6OmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlckRlY2lkZVBvbGljeShMb2NhbEF1dGhl
bnRpY2EKIAogICAgICAgICB3ZWFrVGhpcy0+Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyVXNl
clZlcmlmaWNhdGlvbihhY2Nlc3NDb250cm9sLmdldCgpLCB2ZXJpZmljYXRpb24sIGNvbnRleHQp
OwogICAgIH07Ci0gICAgbV9jb25uZWN0aW9uLT52ZXJpZnlVc2VyKGFjY2Vzc0NvbnRyb2xSZWYs
IFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnZlcmlmeVVzZXIoY3JlYXRp
b25PcHRpb25zLnJwLmlkLCBhY2Nlc3NDb250cm9sUmVmLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9
CiAKIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJV
c2VyVmVyaWZpY2F0aW9uKFNlY0FjY2Vzc0NvbnRyb2xSZWYgYWNjZXNzQ29udHJvbFJlZiwgTG9j
YWxDb25uZWN0aW9uOjpVc2VyVmVyaWZpY2F0aW9uIHZlcmlmaWNhdGlvbiwgTEFDb250ZXh0ICpj
b250ZXh0KQpAQCAtNDQyLDYgKzQ0NCw4IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250
aW51ZUdldEFzc2VydGlvbkFmdGVyUmVzcG9uc2VTZWxlY3RlZChSZWY8V2ViQ29yZTo6CiAgICAg
QVNTRVJUKG1fc3RhdGUgPT0gU3RhdGU6OlJlcXVlc3RSZWNlaXZlZCk7CiAgICAgbV9zdGF0ZSA9
IFN0YXRlOjpSZXNwb25zZVNlbGVjdGVkOwogCisgICAgYXV0byYgcmVxdWVzdE9wdGlvbnMgPSBX
VEY6OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+KHJlcXVlc3REYXRhKCku
b3B0aW9ucyk7CisKICAgICBhdXRvIGFjY2Vzc0NvbnRyb2xSZWYgPSByZXNwb25zZS0+YWNjZXNz
Q29udHJvbCgpOwogICAgIGF1dG8gY2FsbGJhY2sgPSBbCiAgICAgICAgIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIoKnRoaXMpLApAQCAtNDUzLDcgKzQ1Nyw3IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNh
dG9yOjpjb250aW51ZUdldEFzc2VydGlvbkFmdGVyUmVzcG9uc2VTZWxlY3RlZChSZWY8V2ViQ29y
ZTo6CiAKICAgICAgICAgd2Vha1RoaXMtPmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJVc2VyVmVy
aWZpY2F0aW9uKFdURk1vdmUocmVzcG9uc2UpLCB2ZXJpZmljYXRpb24sIGNvbnRleHQpOwogICAg
IH07Ci0gICAgbV9jb25uZWN0aW9uLT52ZXJpZnlVc2VyKGFjY2Vzc0NvbnRyb2xSZWYsIFdURk1v
dmUoY2FsbGJhY2spKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnZlcmlmeVVzZXIocmVxdWVzdE9wdGlv
bnMucnBJZCwgYWNjZXNzQ29udHJvbFJlZiwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lk
IExvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRBc3NlcnRpb25BZnRlclVzZXJWZXJpZmlj
YXRpb24oUmVmPFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4mJiByZXNw
b25zZSwgTG9jYWxDb25uZWN0aW9uOjpVc2VyVmVyaWZpY2F0aW9uIHZlcmlmaWNhdGlvbiwgTEFD
b250ZXh0ICpjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24uaAppbmRleCBi
YzYyZjNkMDVhNjY5NDkwZTcxNDg5OGM5NmFmZThmMWMzYmM3OWIyLi42NTg0MGJlOGQ2ZDEyMzBi
MTQwMDZiYjQ3NGQ3MDcyMjY4ZjllYmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rp
b24uaApAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+TG9jYWxDb25uZWN0
aW9uKCkgPSBkZWZhdWx0OwogCiAgICAgLy8gT3ZlcnJpZGVkIGJ5IE1vY2tMb2NhbENvbm5lY3Rp
b24uCi0gICAgdmlydHVhbCB2b2lkIHZlcmlmeVVzZXIoU2VjQWNjZXNzQ29udHJvbFJlZiwgVXNl
clZlcmlmaWNhdGlvbkNhbGxiYWNrJiYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCB2ZXJpZnlV
c2VyKGNvbnN0IFN0cmluZyYgcnBJZCwgU2VjQWNjZXNzQ29udHJvbFJlZiwgVXNlclZlcmlmaWNh
dGlvbkNhbGxiYWNrJiYpIGNvbnN0OwogICAgIHZpcnR1YWwgUmV0YWluUHRyPFNlY0tleVJlZj4g
Y3JlYXRlQ3JlZGVudGlhbFByaXZhdGVLZXkoTEFDb250ZXh0ICosIFNlY0FjY2Vzc0NvbnRyb2xS
ZWYsIGNvbnN0IFN0cmluZyYgc2VjQXR0ckxhYmVsLCBOU0RhdGEgKnNlY0F0dHJBcHBsaWNhdGlv
blRhZykgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGdldEF0dGVzdGF0aW9uKFNlY0tleVJlZiwg
TlNEYXRhICphdXRoRGF0YSwgTlNEYXRhICpoYXNoLCBBdHRlc3RhdGlvbkNhbGxiYWNrJiYpIGNv
bnN0OwogICAgIHZpcnR1YWwgdm9pZCBmaWx0ZXJSZXNwb25zZXMoSGFzaFNldDxSZWY8V2ViQ29y
ZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPj4mKSBjb25zdCB7IH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2Nh
bENvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24ubW0KaW5kZXggMzY0ZWEwNmI4YzRlNmU3Nzc5NjA0MzQw
ZGY2Y2Y3MmRmMDk0YTliNy4uMDhjNmFhMTE5YTcwY2Y5N2VkN2I5NTk3ZTJiMWE3YWMwMTQwYTBi
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
Q29jb2EvTG9jYWxDb25uZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlvbi5tbQpAQCAtNDAsMTQgKzQwLDIx
IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIExvY2FsQ29ubmVjdGlvbjo6dmVyaWZ5
VXNlcihTZWNBY2Nlc3NDb250cm9sUmVmIGFjY2Vzc0NvbnRyb2wsIFVzZXJWZXJpZmljYXRpb25D
YWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAordm9pZCBMb2NhbENvbm5lY3Rpb246
OnZlcmlmeVVzZXIoY29uc3QgU3RyaW5nJiBycElkLCBTZWNBY2Nlc3NDb250cm9sUmVmIGFjY2Vz
c0NvbnRyb2wsIFVzZXJWZXJpZmljYXRpb25DYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKSBj
b25zdAogewogICAgIGF1dG8gY29udGV4dCA9IGFkb3B0TlMoW2FsbG9jTEFDb250ZXh0SW5zdGFu
Y2UoKSBpbml0XSk7CiAKICAgICBhdXRvIG9wdGlvbnMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGlj
dGlvbmFyeSBhbGxvY10gaW5pdF0pOwotICAgIGlmIChbY29udGV4dCBiaW9tZXRyeVR5cGVdID09
IExBQmlvbWV0cnlUeXBlVG91Y2hJRCkKKyAgICBpZiAoW2NvbnRleHQgYmlvbWV0cnlUeXBlXSA9
PSBMQUJpb21ldHJ5VHlwZVRvdWNoSUQpIHsKKyNpZiBQTEFURk9STShJT1MpCiAgICAgICAgIFtv
cHRpb25zIHNldE9iamVjdDpXZWJDb3JlOjp0b3VjaElEUHJvbXB0VGl0bGUoKSBmb3JLZXk6QChM
QU9wdGlvbkF1dGhlbnRpY2F0aW9uVGl0bGUpXTsKLSNpZiBQTEFURk9STShpT1MpCisgICAgICAg
IEFTU0VSVF9VTlVTRUQocnBJZCwgcnBJZCk7CisjZWxpZiBQTEFURk9STShNQUMpCisgICAgICAg
IFtvcHRpb25zIHNldE9iamVjdDpXZWJDb3JlOjp0b3VjaElEUHJvbXB0VGl0bGUocnBJZCkgZm9y
S2V5OkAoTEFPcHRpb25BdXRoZW50aWNhdGlvblRpdGxlKV07CisjZW5kaWYKKyAgICAgICAgW29w
dGlvbnMgc2V0T2JqZWN0OkBOTyBmb3JLZXk6QChMQU9wdGlvbkZhbGxiYWNrVmlzaWJsZSldOwor
ICAgIH0KKyNpZiBQTEFURk9STShJT1MpCiAgICAgW29wdGlvbnMgc2V0T2JqZWN0OldlYkNvcmU6
OmJpb21ldHJpY0ZhbGxiYWNrUHJvbXB0VGl0bGUoKSBmb3JLZXk6QChMQU9wdGlvblBhc3Njb2Rl
VGl0bGUpXTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5o
CmluZGV4IGRlZTc3M2MzZTEzMmUzN2I3MjcyN2YzNTM4NzE0MDE3YjFkOTZjZjMuLjAxMmVkYjlm
MjE4NmIxNWUyMzBkZGMzNWJhZDQ3ODY1Mzk2MTQ2ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9j
a0xvY2FsQ29ubmVjdGlvbi5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNp
dCBNb2NrTG9jYWxDb25uZWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok1vY2tXZWJBdXRoZW50aWNhdGlv
bkNvbmZpZ3VyYXRpb24mKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHZlcmlmeVVzZXIoU2VjQWNj
ZXNzQ29udHJvbFJlZiwgVXNlclZlcmlmaWNhdGlvbkNhbGxiYWNrJiYpIGNvbnN0IGZpbmFsOwor
ICAgIHZvaWQgdmVyaWZ5VXNlcihjb25zdCBTdHJpbmcmLCBTZWNBY2Nlc3NDb250cm9sUmVmLCBV
c2VyVmVyaWZpY2F0aW9uQ2FsbGJhY2smJikgY29uc3QgZmluYWw7CiAgICAgUmV0YWluUHRyPFNl
Y0tleVJlZj4gY3JlYXRlQ3JlZGVudGlhbFByaXZhdGVLZXkoTEFDb250ZXh0ICosIFNlY0FjY2Vz
c0NvbnRyb2xSZWYsIGNvbnN0IFN0cmluZyYgc2VjQXR0ckxhYmVsLCBOU0RhdGEgKnNlY0F0dHJB
cHBsaWNhdGlvblRhZykgY29uc3QgZmluYWw7CiAgICAgdm9pZCBnZXRBdHRlc3RhdGlvbihTZWNL
ZXlSZWYsIE5TRGF0YSAqYXV0aERhdGEsIE5TRGF0YSAqaGFzaCwgQXR0ZXN0YXRpb25DYWxsYmFj
ayYmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGZpbHRlclJlc3BvbnNlcyhIYXNoU2V0PFJlZjxX
ZWJDb3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U+PiYpIGNvbnN0IGZpbmFsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9j
ay9Nb2NrTG9jYWxDb25uZWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLm1tCmluZGV4IGIxYzk4NzQ3OWY0
ZDdjYzFhNzQ4NzU5MTMxYzg2MjQzZWI2NzZlNjcuLjM3MmVlYjE5MmNkZmIyY2NiNmJmZGFlNzQ3
NTlhM2NjNTM3M2RmYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24u
bW0KQEAgLTQ0LDcgKzQ0LDcgQEAgTW9ja0xvY2FsQ29ubmVjdGlvbjo6TW9ja0xvY2FsQ29ubmVj
dGlvbihjb25zdCBXZWJDb3JlOjpNb2NrV2ViQXV0aGVudGljYXRpb25Db24KIHsKIH0KIAotdm9p
ZCBNb2NrTG9jYWxDb25uZWN0aW9uOjp2ZXJpZnlVc2VyKFNlY0FjY2Vzc0NvbnRyb2xSZWYsIFVz
ZXJWZXJpZmljYXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKSBjb25zdAordm9pZCBNb2NrTG9jYWxD
b25uZWN0aW9uOjp2ZXJpZnlVc2VyKGNvbnN0IFN0cmluZyYsIFNlY0FjY2Vzc0NvbnRyb2xSZWYs
IFVzZXJWZXJpZmljYXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKSBjb25zdAogewogICAgIC8vIE1v
Y2sgYXN5bmMgb3BlcmF0aW9ucy4KICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NvbmZp
Z3VyYXRpb24gPSBtX2NvbmZpZ3VyYXRpb24sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KCkgbXV0YWJsZSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392771</attachid>
            <date>2020-03-06 14:07:08 -0800</date>
            <delta_ts>2020-03-08 23:14:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208703-20200306140706.patch</filename>
            <type>text/plain</type>
            <size>12304</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWVhYjhjMTc2ZTgzMWQ1
ZjNmNDNiMDVlNjI5OTJkNGM1ZDU2Njk2Mi4uNTU4YzlkYTk2OTIyMWEyMjFjNWNjNmI4MmQ1NGQ4
MmVhYTM1OWFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAzLTA2ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBDdXN0
b21pemUgYSBiaXQgbW9yZSBvbiB0aGUgbWFjT1MgTG9jYWxBdXRoZW50aWNhdGlvbiBwcm9tcHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODcwMwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjAxMzY5NzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdz
OgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6dG91Y2hJRFByb21wdFRpdGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmg6CisgICAgICAgIEFkZHMgYSBuZXcgZm9ybWF0dGVkIFVJIHN0cmluZyB0byBoZWxw
IHdpdGggUlAgSUQuCisKIDIwMjAtMDMtMDYgIEphc29uIExhd3JlbmNlICA8bGF3cmVuY2UuakBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1Nzc2MC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNTlmNjZmMWY3N2M5MGVmMDM3NjZlYWMwYTExZDI1Y2FiMDY3MDIwYy4uZjFlMGZk
ZWJlZWZiZGI4NGE3NzUzMGQ1YmEyZmYyZDNhNTE3NWI1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NiBAQAorMjAyMC0wMy0wNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFtXZWJBdXRobl0gQ3VzdG9taXplIGEgYml0IG1vcmUgb24gdGhlIG1hY09TIExvY2Fs
QXV0aGVudGljYXRpb24gcHJvbXB0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDg3MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwMTM2OTc0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uIG1hY09T
LCBMb2NhbEF1dGhlbnRpY2F0aW9uIHByb21wdCBjYW4gYmUgc2hvd24gYW55d2hlcmUgdGhhdCBp
cyBwcm9iYWJseSBub3Qgb24gdG9wIG9mCisgICAgICAgIG91ciBVSSBjbGllbnRzLiBUaGVyZWZv
cmUsIGFkZCBhIFJQIElEIHRvIHRoZSBkaWFsb2cgdG8gaGVscCB1c2VycyB0byBpZGVudGlmeSB3
aGF0IGhhcworICAgICAgICBoYXBwZW5lZC4gSW4gYWRkaXRpb24sIGl0IHJlbW92ZXMgdGhlIHBh
c3N3b3JkIGZhbGxiYWNrIGJ1dHRvbi4KKworICAgICAgICAqIFBsYXRmb3JtL3NwaS9Db2NvYS9M
b2NhbEF1dGhlbnRpY2F0aW9uU1BJLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbToKKyAgICAgICAgKFdlYktpdDo6TG9j
YWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJEZWNpZGVQb2xpY3kp
OgorICAgICAgICAoV2ViS2l0OjpMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0
aW9uQWZ0ZXJSZXNwb25zZVNlbGVjdGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlvbi5tbToKKyAgICAgICAgKFdlYktp
dDo6TG9jYWxDb25uZWN0aW9uOjp2ZXJpZnlVc2VyIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5t
bToKKyAgICAgICAgKFdlYktpdDo6TW9ja0xvY2FsQ29ubmVjdGlvbjo6dmVyaWZ5VXNlciBjb25z
dCk6CisKIDIwMjAtMDMtMDUgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbV2ViQXV0aG5dIERvIG5vdCBwZXJmb3JtIEF0dGVzdGF0aW9uIHdpdGggdHlwZSBp
cyAnbm9uZScKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxl
LnN0cmluZ3MgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCmlu
ZGV4IDc1NTIyNWU2YmEzZGUzMTM4ZDM2NmYxNDdmZmY1Yjg0YTI4ZmFkOTYuLjYzZGM2MTA2MDQ3
Y2FiN2UzYmEyZjhkOTdlNmUwNDY0NjEwNWQ5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKKysrIGIvU291cmNlL1dlYkNvcmUvZW4ubHBy
b2ovTG9jYWxpemFibGUuc3RyaW5ncwpAQCAtODgzLDYgKzg4Myw5IEBACiAvKiBVc2UgVG91Y2gg
SUQgdG8gc2lnbiBpbnRvIHRoaXMgd2Vic2l0ZSAqLwogIlRvdWNoIElEIHRvIHNpZ24gaW50byB0
aGlzIHdlYnNpdGUuIiA9ICJUb3VjaCBJRCB0byBzaWduIGludG8gdGhpcyB3ZWJzaXRlLiI7CiAK
Ky8qIEFsbG93IHVzaW5nIFRvdWNoIElEIHRvIHNpZ24gaW50byB0aGUgc3BlY2lmaWVkIHdlYnNp
dGUgb24gdGhpcyBkZXZpY2UgKi8KKyJUb3VjaCBJRCB0byBhbGxvdyBzaWdubmluZyBpbnRvIOKA
nCVA4oCdIHdpdGggVG91Y2ggSUQuIiA9ICJUb3VjaCBJRCB0byBhbGxvdyBzaWdubmluZyBpbnRv
IOKAnCVA4oCdIHdpdGggVG91Y2ggSUQuIjsKKwogLyogVHJhbnNmb3JtYXRpb25zIGNvbnRleHQg
c3ViLW1lbnUgaXRlbSAqLwogIlRyYW5zZm9ybWF0aW9ucyIgPSAiVHJhbnNmb3JtYXRpb25zIjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAppbmRleCA5
YWMwYmQyOTIwY2NiYTU5M2U5YmEwN2VlNmYzZTY1ODI1YmEyZTU5Li4zNTRlODUyMTM0MjY0NWRk
OTE3OTJmOGIxM2QxYzUxMmU4MmI4YTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
b2NhbGl6ZWRTdHJpbmdzLmNwcApAQCAtMTIwOCwxMSArMTIwOCwxNiBAQCBTdHJpbmcgdW5hY2Nl
cHRhYmxlVExTQ2VydGlmaWNhdGUoKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQot
U3RyaW5nIHRvdWNoSURQcm9tcHRUaXRsZSgpCitTdHJpbmcgZ2VuZXJpY1RvdWNoSURQcm9tcHRU
aXRsZSgpCiB7CiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlRvdWNoIElEIHRvIHNpZ24gaW50
byB0aGlzIHdlYnNpdGUuIiwgIlVzZSBUb3VjaCBJRCB0byBzaWduIGludG8gdGhpcyB3ZWJzaXRl
Iik7CiB9CiAKK1N0cmluZyBtYWtlQ3JlZGVudGlhbFRvdWNoSURQcm9tcHRUaXRsZShjb25zdCBT
dHJpbmcmIHJwSWQpCit7CisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlf
Q0ZTVFJJTkcoIlRvdWNoIElEIHRvIGFsbG93IHNpZ25uaW5nIGludG8g4oCcJUDigJ0gd2l0aCBU
b3VjaCBJRC4iLCAiQWxsb3cgdXNpbmcgVG91Y2ggSUQgdG8gc2lnbiBpbnRvIHRoZSBzcGVjaWZp
ZWQgd2Vic2l0ZSBvbiB0aGlzIGRldmljZSIpLCBycElkLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkp
OworfQorCiBTdHJpbmcgYmlvbWV0cmljRmFsbGJhY2tQcm9tcHRUaXRsZSgpCiB7CiAgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIkVudGVyIHBhc3Njb2RlIHRvIHNpZ24gaW50byB0aGlzIHdlYnNp
dGUuIiwgIlVzZSBwYXNzY29kZSBhcyBhIGZhbGxiYWNrIHRvIHNpZ24gaW50byB0aGlzIHdlYnNp
dGUiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmlu
Z3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAppbmRleCBk
NzE4NDcyYzRhZGEzZWI3YzQ0ZTViYzdiOWViNDZjNjA3MTVhYWE1Li4wYjU4NTM4OWIxZmYzMWUx
NWIxMDcwMzFiZDZmNjZlNjk4YjU4MTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5oCkBAIC0zNDAsNyArMzQwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
I2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAgIFdFQkNPUkVfRVhQT1JUIFN0cmlu
ZyB0b3VjaElEUHJvbXB0VGl0bGUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgZ2VuZXJp
Y1RvdWNoSURQcm9tcHRUaXRsZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBtYWtlQ3Jl
ZGVudGlhbFRvdWNoSURQcm9tcHRUaXRsZShjb25zdCBTdHJpbmcmIHJwSWQpOwogICAgIFdFQkNP
UkVfRVhQT1JUIFN0cmluZyBiaW9tZXRyaWNGYWxsYmFja1Byb21wdFRpdGxlKCk7CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvTG9jYWxBdXRo
ZW50aWNhdGlvblNQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvTG9jYWxB
dXRoZW50aWNhdGlvblNQSS5oCmluZGV4IDhlNTg0ZDgyYjM0NDdmMGFmYWUyNzZlYTdiOGY1MzFj
MWQ0NjQ1NDIuLjY1ZTlmNjQxNzRkOTc1ZjZhOGI4ODRjN2RlYWJhNDM1ZmEwZDMyMjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0xvY2FsQXV0aGVudGljYXRp
b25TUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9Mb2NhbEF1dGhl
bnRpY2F0aW9uU1BJLmgKQEAgLTM2LDYgKzM2LDcgQEAKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVn
ZXIsIExBT3B0aW9uKSB7CiAgICAgTEFPcHRpb25BdXRoZW50aWNhdGlvblRpdGxlLAogICAgIExB
T3B0aW9uUGFzc2NvZGVUaXRsZSwKKyAgICBMQU9wdGlvbkZhbGxiYWNrVmlzaWJsZSwKIH07CiAK
IEBpbnRlcmZhY2UgTEFDb250ZXh0KFByaXZhdGUpIDxOU1NlY3VyZUNvZGluZz4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2Fs
QXV0aGVudGljYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQppbmRleCA0NzdkM2QzNDU1YzViNzc2YzVl
N2YwOTA3MDM2NzIyMjJjNzVkNDEwLi5iYjIzYzJiYTliMTAwODgyNTlkYWZkYzgwNzI3NjIwYjgy
MTI4MjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCkBAIC0x
ODgsNiArMTg4LDggQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFrZUNyZWRl
bnRpYWxBZnRlckRlY2lkZVBvbGljeShMb2NhbEF1dGhlbnRpY2EKICAgICBBU1NFUlQobV9zdGF0
ZSA9PSBTdGF0ZTo6UmVxdWVzdFJlY2VpdmVkKTsKICAgICBtX3N0YXRlID0gU3RhdGU6OlBvbGlj
eURlY2lkZWQ7CiAKKyAgICBhdXRvJiBjcmVhdGlvbk9wdGlvbnMgPSBXVEY6OmdldDxQdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zPihyZXF1ZXN0RGF0YSgpLm9wdGlvbnMpOworCiAg
ICAgaWYgKHBvbGljeSA9PSBMb2NhbEF1dGhlbnRpY2F0b3JQb2xpY3k6OkRpc2FsbG93KSB7CiAg
ICAgICAgIHJlY2VpdmVSZXNwb25kKEV4Y2VwdGlvbkRhdGEgeyBVbmtub3duRXJyb3IsICJEaXNh
bGxvdyBsb2NhbCBhdXRoZW50aWNhdG9yLiJfcyB9KTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjEy
LDcgKzIxNCw3IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50
aWFsQWZ0ZXJEZWNpZGVQb2xpY3koTG9jYWxBdXRoZW50aWNhCiAKICAgICAgICAgd2Vha1RoaXMt
PmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlclVzZXJWZXJpZmljYXRpb24oYWNjZXNzQ29udHJv
bC5nZXQoKSwgdmVyaWZpY2F0aW9uLCBjb250ZXh0KTsKICAgICB9OwotICAgIG1fY29ubmVjdGlv
bi0+dmVyaWZ5VXNlcihhY2Nlc3NDb250cm9sUmVmLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAg
bV9jb25uZWN0aW9uLT52ZXJpZnlVc2VyKGNyZWF0aW9uT3B0aW9ucy5ycC5pZCwgYWNjZXNzQ29u
dHJvbFJlZiwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIExvY2FsQXV0aGVudGljYXRv
cjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyVXNlclZlcmlmaWNhdGlvbihTZWNBY2Nlc3ND
b250cm9sUmVmIGFjY2Vzc0NvbnRyb2xSZWYsIExvY2FsQ29ubmVjdGlvbjo6VXNlclZlcmlmaWNh
dGlvbiB2ZXJpZmljYXRpb24sIExBQ29udGV4dCAqY29udGV4dCkKQEAgLTQ1OSw2ICs0NjEsOCBA
QCB2b2lkIExvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRBc3NlcnRpb25BZnRlclJlc3Bv
bnNlU2VsZWN0ZWQoUmVmPFdlYkNvcmU6OgogICAgIEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpS
ZXF1ZXN0UmVjZWl2ZWQpOwogICAgIG1fc3RhdGUgPSBTdGF0ZTo6UmVzcG9uc2VTZWxlY3RlZDsK
IAorICAgIGF1dG8mIHJlcXVlc3RPcHRpb25zID0gV1RGOjpnZXQ8UHVibGljS2V5Q3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zPihyZXF1ZXN0RGF0YSgpLm9wdGlvbnMpOworCiAgICAgYXV0byBhY2Nl
c3NDb250cm9sUmVmID0gcmVzcG9uc2UtPmFjY2Vzc0NvbnRyb2woKTsKICAgICBhdXRvIGNhbGxi
YWNrID0gWwogICAgICAgICB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwKQEAgLTQ3MCw3
ICs0NzQsNyBAQCB2b2lkIExvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRBc3NlcnRpb25B
ZnRlclJlc3BvbnNlU2VsZWN0ZWQoUmVmPFdlYkNvcmU6OgogCiAgICAgICAgIHdlYWtUaGlzLT5j
b250aW51ZUdldEFzc2VydGlvbkFmdGVyVXNlclZlcmlmaWNhdGlvbihXVEZNb3ZlKHJlc3BvbnNl
KSwgdmVyaWZpY2F0aW9uLCBjb250ZXh0KTsKICAgICB9OwotICAgIG1fY29ubmVjdGlvbi0+dmVy
aWZ5VXNlcihhY2Nlc3NDb250cm9sUmVmLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgbV9jb25u
ZWN0aW9uLT52ZXJpZnlVc2VyKHJlcXVlc3RPcHRpb25zLnJwSWQsIGFjY2Vzc0NvbnRyb2xSZWYs
IFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAogdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRp
bnVlR2V0QXNzZXJ0aW9uQWZ0ZXJVc2VyVmVyaWZpY2F0aW9uKFJlZjxXZWJDb3JlOjpBdXRoZW50
aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U+JiYgcmVzcG9uc2UsIExvY2FsQ29ubmVjdGlvbjo6VXNl
clZlcmlmaWNhdGlvbiB2ZXJpZmljYXRpb24sIExBQ29udGV4dCAqY29udGV4dCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2Fs
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
Q29jb2EvTG9jYWxDb25uZWN0aW9uLmgKaW5kZXggYmM2MmYzZDA1YTY2OTQ5MGU3MTQ4OThjOTZh
ZmU4ZjFjM2JjNzliMi4uNjU4NDBiZThkNmQxMjMwYjE0MDA2YmI0NzRkNzA3MjI2OGY5ZWJlNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29j
b2EvTG9jYWxDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLmgKQEAgLTYyLDcgKzYyLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgfkxvY2FsQ29ubmVjdGlvbigpID0gZGVmYXVsdDsKIAogICAgIC8v
IE92ZXJyaWRlZCBieSBNb2NrTG9jYWxDb25uZWN0aW9uLgotICAgIHZpcnR1YWwgdm9pZCB2ZXJp
ZnlVc2VyKFNlY0FjY2Vzc0NvbnRyb2xSZWYsIFVzZXJWZXJpZmljYXRpb25DYWxsYmFjayYmKSBj
b25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgdmVyaWZ5VXNlcihjb25zdCBTdHJpbmcmIHJwSWQsIFNl
Y0FjY2Vzc0NvbnRyb2xSZWYsIFVzZXJWZXJpZmljYXRpb25DYWxsYmFjayYmKSBjb25zdDsKICAg
ICB2aXJ0dWFsIFJldGFpblB0cjxTZWNLZXlSZWY+IGNyZWF0ZUNyZWRlbnRpYWxQcml2YXRlS2V5
KExBQ29udGV4dCAqLCBTZWNBY2Nlc3NDb250cm9sUmVmLCBjb25zdCBTdHJpbmcmIHNlY0F0dHJM
YWJlbCwgTlNEYXRhICpzZWNBdHRyQXBwbGljYXRpb25UYWcpIGNvbnN0OwogICAgIHZpcnR1YWwg
dm9pZCBnZXRBdHRlc3RhdGlvbihTZWNLZXlSZWYsIE5TRGF0YSAqYXV0aERhdGEsIE5TRGF0YSAq
aGFzaCwgQXR0ZXN0YXRpb25DYWxsYmFjayYmKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZmls
dGVyUmVzcG9uc2VzKEhhc2hTZXQ8UmVmPFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25S
ZXNwb25zZT4+JikgY29uc3QgeyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLm1t
CmluZGV4IDM2NGVhMDZiOGM0ZTZlNzc3OTYwNDM0MGRmNmNmNzJkZjA5NGE5YjcuLjEzYjY4YWMx
YjUwOGEwZTA5ZWZjZTc1N2UzZDRlN2Y2NzQyNjQ0NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlvbi5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2Nh
bENvbm5lY3Rpb24ubW0KQEAgLTQwLDE0ICs0MCwyMSBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotdm9pZCBMb2NhbENvbm5lY3Rpb246OnZlcmlmeVVzZXIoU2VjQWNjZXNzQ29udHJvbFJlZiBh
Y2Nlc3NDb250cm9sLCBVc2VyVmVyaWZpY2F0aW9uQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxl
cikgY29uc3QKK3ZvaWQgTG9jYWxDb25uZWN0aW9uOjp2ZXJpZnlVc2VyKGNvbnN0IFN0cmluZyYg
cnBJZCwgU2VjQWNjZXNzQ29udHJvbFJlZiBhY2Nlc3NDb250cm9sLCBVc2VyVmVyaWZpY2F0aW9u
Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKIHsKICAgICBhdXRvIGNvbnRleHQg
PSBhZG9wdE5TKFthbGxvY0xBQ29udGV4dEluc3RhbmNlKCkgaW5pdF0pOwogCiAgICAgYXV0byBv
cHRpb25zID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKLSAg
ICBpZiAoW2NvbnRleHQgYmlvbWV0cnlUeXBlXSA9PSBMQUJpb21ldHJ5VHlwZVRvdWNoSUQpCi0g
ICAgICAgIFtvcHRpb25zIHNldE9iamVjdDpXZWJDb3JlOjp0b3VjaElEUHJvbXB0VGl0bGUoKSBm
b3JLZXk6QChMQU9wdGlvbkF1dGhlbnRpY2F0aW9uVGl0bGUpXTsKLSNpZiBQTEFURk9STShpT1Mp
CisgICAgaWYgKFtjb250ZXh0IGJpb21ldHJ5VHlwZV0gPT0gTEFCaW9tZXRyeVR5cGVUb3VjaElE
KSB7CisjaWYgUExBVEZPUk0oSU9TKQorICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6V2ViQ29y
ZTo6Z2VuZXJpY1RvdWNoSURQcm9tcHRUaXRsZSgpIGZvcktleTpAKExBT3B0aW9uQXV0aGVudGlj
YXRpb25UaXRsZSldOworICAgICAgICBBU1NFUlRfVU5VU0VEKHJwSWQsIHJwSWQpOworI2VsaWYg
UExBVEZPUk0oTUFDKQorICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6V2ViQ29yZTo6bWFrZUNy
ZWRlbnRpYWxUb3VjaElEUHJvbXB0VGl0bGUocnBJZCkgZm9yS2V5OkAoTEFPcHRpb25BdXRoZW50
aWNhdGlvblRpdGxlKV07CisjZW5kaWYKKyAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0OkBOTyBm
b3JLZXk6QChMQU9wdGlvbkZhbGxiYWNrVmlzaWJsZSldOworICAgIH0KKyNpZiBQTEFURk9STShJ
T1MpCiAgICAgW29wdGlvbnMgc2V0T2JqZWN0OldlYkNvcmU6OmJpb21ldHJpY0ZhbGxiYWNrUHJv
bXB0VGl0bGUoKSBmb3JLZXk6QChMQU9wdGlvblBhc3Njb2RlVGl0bGUpXTsKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2Nr
L01vY2tMb2NhbENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5oCmluZGV4IGRlZTc3M2MzZTEzMmUz
N2I3MjcyN2YzNTM4NzE0MDE3YjFkOTZjZjMuLjAxMmVkYjlmMjE4NmIxNWUyMzBkZGMzNWJhZDQ3
ODY1Mzk2MTQ2ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5oCkBA
IC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBNb2NrTG9jYWxDb25uZWN0aW9u
KGNvbnN0IFdlYkNvcmU6Ok1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24mKTsKIAog
cHJpdmF0ZToKLSAgICB2b2lkIHZlcmlmeVVzZXIoU2VjQWNjZXNzQ29udHJvbFJlZiwgVXNlclZl
cmlmaWNhdGlvbkNhbGxiYWNrJiYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgdmVyaWZ5VXNlcihj
b25zdCBTdHJpbmcmLCBTZWNBY2Nlc3NDb250cm9sUmVmLCBVc2VyVmVyaWZpY2F0aW9uQ2FsbGJh
Y2smJikgY29uc3QgZmluYWw7CiAgICAgUmV0YWluUHRyPFNlY0tleVJlZj4gY3JlYXRlQ3JlZGVu
dGlhbFByaXZhdGVLZXkoTEFDb250ZXh0ICosIFNlY0FjY2Vzc0NvbnRyb2xSZWYsIGNvbnN0IFN0
cmluZyYgc2VjQXR0ckxhYmVsLCBOU0RhdGEgKnNlY0F0dHJBcHBsaWNhdGlvblRhZykgY29uc3Qg
ZmluYWw7CiAgICAgdm9pZCBnZXRBdHRlc3RhdGlvbihTZWNLZXlSZWYsIE5TRGF0YSAqYXV0aERh
dGEsIE5TRGF0YSAqaGFzaCwgQXR0ZXN0YXRpb25DYWxsYmFjayYmKSBjb25zdCBmaW5hbDsKICAg
ICB2b2lkIGZpbHRlclJlc3BvbnNlcyhIYXNoU2V0PFJlZjxXZWJDb3JlOjpBdXRoZW50aWNhdG9y
QXNzZXJ0aW9uUmVzcG9uc2U+PiYpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9u
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2Nr
TG9jYWxDb25uZWN0aW9uLm1tCmluZGV4IGIxYzk4NzQ3OWY0ZDdjYzFhNzQ4NzU5MTMxYzg2MjQz
ZWI2NzZlNjcuLjM3MmVlYjE5MmNkZmIyY2NiNmJmZGFlNzQ3NTlhM2NjNTM3M2RmYTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9j
a0xvY2FsQ29ubmVjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW0KQEAgLTQ0LDcgKzQ0LDcgQEAg
TW9ja0xvY2FsQ29ubmVjdGlvbjo6TW9ja0xvY2FsQ29ubmVjdGlvbihjb25zdCBXZWJDb3JlOjpN
b2NrV2ViQXV0aGVudGljYXRpb25Db24KIHsKIH0KIAotdm9pZCBNb2NrTG9jYWxDb25uZWN0aW9u
Ojp2ZXJpZnlVc2VyKFNlY0FjY2Vzc0NvbnRyb2xSZWYsIFVzZXJWZXJpZmljYXRpb25DYWxsYmFj
ayYmIGNhbGxiYWNrKSBjb25zdAordm9pZCBNb2NrTG9jYWxDb25uZWN0aW9uOjp2ZXJpZnlVc2Vy
KGNvbnN0IFN0cmluZyYsIFNlY0FjY2Vzc0NvbnRyb2xSZWYsIFVzZXJWZXJpZmljYXRpb25DYWxs
YmFjayYmIGNhbGxiYWNrKSBjb25zdAogewogICAgIC8vIE1vY2sgYXN5bmMgb3BlcmF0aW9ucy4K
ICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NvbmZpZ3VyYXRpb24gPSBtX2NvbmZpZ3Vy
YXRpb24sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7Cg==
</data>
<flag name="review"
          id="408165"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393535</attachid>
            <date>2020-03-13 15:14:07 -0700</date>
            <delta_ts>2020-03-13 15:26:56 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-208703-20200313151407.patch</filename>
            <type>text/plain</type>
            <size>18721</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU1ZWVhOTk0NzNkYzI3
N2U1ZmNjMjE3M2NlYTYzMDY2OTZkYzRjYS4uNGI3YTE3NWEyYWQ2ZTJiZjIwOTc3ZjcyNWVlMDI3
NzhiOTk1MmUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAzLTEzICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBDdXN0
b21pemUgYSBiaXQgbW9yZSBvbiB0aGUgbWFjT1MgTG9jYWxBdXRoZW50aWNhdGlvbiBwcm9tcHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODcwMwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjAxMzY5NzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgor
ICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6dG91Y2hJRFByb21wdFRpdGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJp
bmdzLmg6CisgICAgICAgIEFkZHMgYSBuZXcgZm9ybWF0dGVkIFVJIHN0cmluZyB0byBoZWxwIHdp
dGggUlAgSUQuCisKIDIwMjAtMDMtMTMgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNTgzOTEuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDgyZmNjMzBiODRmMjE4MzZiNGU2ZTcxZGVmYmQzODUxOTgzZTkxYTUuLjJiZTI1N2JhODc4ZDJl
ZDI4NWZiNDhjZjI5NjkzZDUxNmEyMjQyODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIw
MjAtMDMtMTMgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBb
V2ViQXV0aG5dIEN1c3RvbWl6ZSBhIGJpdCBtb3JlIG9uIHRoZSBtYWNPUyBMb2NhbEF1dGhlbnRp
Y2F0aW9uIHByb21wdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA4NzAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDEzNjk3ND4KKworICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBPbiBtYWNPUywgTG9jYWxBdXRo
ZW50aWNhdGlvbiBwcm9tcHQgY2FuIGJlIHNob3duIGFueXdoZXJlIHRoYXQgaXMgcHJvYmFibHkg
bm90IG9uIHRvcCBvZgorICAgICAgICBvdXIgVUkgY2xpZW50cy4gVGhlcmVmb3JlLCBhZGQgYSBS
UCBJRCB0byB0aGUgZGlhbG9nIHRvIGhlbHAgdXNlcnMgdG8gaWRlbnRpZnkgd2hhdCBoYXMKKyAg
ICAgICAgaGFwcGVuZWQuIEluIGFkZGl0aW9uLCBpdCByZW1vdmVzIHRoZSBwYXNzd29yZCBmYWxs
YmFjayBidXR0b24uCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvQ29jb2EvTG9jYWxBdXRoZW50
aWNhdGlvblNQSS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2Nv
YS9Mb2NhbEF1dGhlbnRpY2F0b3IubW06CisgICAgICAgIChXZWJLaXQ6OkxvY2FsQXV0aGVudGlj
YXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyRGVjaWRlUG9saWN5KToKKyAgICAgICAg
KFdlYktpdDo6TG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldEFzc2VydGlvbkFmdGVyUmVz
cG9uc2VTZWxlY3RlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0Nv
Y29hL0xvY2FsQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6OkxvY2FsQ29u
bmVjdGlvbjo6dmVyaWZ5VXNlciBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW06CisgICAgICAg
IChXZWJLaXQ6Ok1vY2tMb2NhbENvbm5lY3Rpb246OnZlcmlmeVVzZXIgY29uc3QpOgorCiAyMDIw
LTAzLTEzICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJldmVydGluZyByMjU4MzkxLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4
IGU2YTMwMDI5YTAxZGYxODAyZWJmNzJmNThmYTg0MTE1ODFlODAxYjQuLjc0OTQ4ZGNjZTVhM2Yw
ZTg2ZWQ4ODk4MDYyODcyYjgwNjc1ZTE5OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAg
LTM5LDcgKzM5LDcgQEAgRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyA9IDsKIAogRU5BQkxF
X0FDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSA9ICQoRU5BQkxFX0FDQ0VTU0lCSUxJVFlfSVNP
TEFURURfVFJFRV8kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9BQ0NFU1NJQklMSVRZX0lT
T0xBVEVEX1RSRUVfbWFjb3N4ID0gJChFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVF
JChXS19NQUNPU18xMDE2KSk7Ci1FTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFX01B
Q09TX1NJTkNFXzEwMTYgPSBFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFOworLy9F
TkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFX01BQ09TX1NJTkNFXzEwMTYgPSBFTkFC
TEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFOwogCiBFTkFCTEVfQVBQTEVfUEFZID0gJChF
TkFCTEVfQVBQTEVfUEFZXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0FQUExFX1BBWV9p
cGhvbmVvcyA9IEVOQUJMRV9BUFBMRV9QQVk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IGU4NDRi
MjY5NzU2MjhmMzQ0YTZkYTQ5NTc2ZDEyYmMxZTBlMTdlZjkuLjk2NDlmMGJkMThhYmIyZDQwZjdh
ZmMxMzc4YzkwZmViNWU0NDQ2ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
SGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC00NDUsNyArNDQ1
LDcgQEAKICNlbmRpZgogCiAjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDE2MDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQ
SE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNDAwMDApCi0jZGVmaW5lIEhBVkVfQ0ZO
RVRXT1JLX0FMVEVSTkFUSVZFX1NFUlZJQ0UgMQorI2RlZmluZSBIQVZFX0NGTkVUV09SS19BTFRF
Uk5BVElWRV9TRVJWSUNFIDAKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMApAQCAtNjAwLDExICs2MDAsMTEgQEAK
IAogI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxNjAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAwKQogI2RlZmluZSBIQVZFX1dFQlAgMQotI2RlZmluZSBI
QVZFX0FWU0FNUExFQlVGRkVSVklERU9PVVRQVVQgMQorI2RlZmluZSBIQVZFX0FWU0FNUExFQlVG
RkVSVklERU9PVVRQVVQgMAogI2VuZGlmCiAKICNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTYwMCkKLSNkZWZpbmUgSEFWRV9JTkNSRU1F
TlRBTF9QREZfQVBJUyAxCisjZGVmaW5lIEhBVkVfSU5DUkVNRU5UQUxfUERGX0FQSVMgMAogI2Vu
ZGlmCiAKICNpZiAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxNDAwMDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGU2YTMwMDI5YTAxZGYxODAyZWJmNzJmNThm
YTg0MTE1ODFlODAxYjQuLjc0OTQ4ZGNjZTVhM2YwZTg2ZWQ4ODk4MDYyODcyYjgwNjc1ZTE5OGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCkBAIC0zOSw3ICszOSw3IEBAIEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5W
QVMgPSA7CiAKIEVOQUJMRV9BQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUgPSAkKEVOQUJMRV9B
Q0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUVfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVf
QUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFX21hY29zeCA9ICQoRU5BQkxFX0FDQ0VTU0lCSUxJ
VFlfSVNPTEFURURfVFJFRSQoV0tfTUFDT1NfMTAxNikpOwotRU5BQkxFX0FDQ0VTU0lCSUxJVFlf
SVNPTEFURURfVFJFRV9NQUNPU19TSU5DRV8xMDE2ID0gRU5BQkxFX0FDQ0VTU0lCSUxJVFlfSVNP
TEFURURfVFJFRTsKKy8vRU5BQkxFX0FDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRV9NQUNPU19T
SU5DRV8xMDE2ID0gRU5BQkxFX0FDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRTsKIAogRU5BQkxF
X0FQUExFX1BBWSA9ICQoRU5BQkxFX0FQUExFX1BBWV8kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVO
QUJMRV9BUFBMRV9QQVlfaXBob25lb3MgPSBFTkFCTEVfQVBQTEVfUEFZOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
IGIvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCmluZGV4IGU2YTMwMDI5YTAxZGYxODAyZWJmNzJmNThmYTg0MTE1ODFlODAxYjQuLjc0OTQ4
ZGNjZTVhM2YwZTg2ZWQ4ODk4MDYyODcyYjgwNjc1ZTE5OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
QEAgLTM5LDcgKzM5LDcgQEAgRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyA9IDsKIAogRU5B
QkxFX0FDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSA9ICQoRU5BQkxFX0FDQ0VTU0lCSUxJVFlf
SVNPTEFURURfVFJFRV8kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9BQ0NFU1NJQklMSVRZ
X0lTT0xBVEVEX1RSRUVfbWFjb3N4ID0gJChFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9U
UkVFJChXS19NQUNPU18xMDE2KSk7Ci1FTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVF
X01BQ09TX1NJTkNFXzEwMTYgPSBFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFOwor
Ly9FTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFX01BQ09TX1NJTkNFXzEwMTYgPSBF
TkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFOwogCiBFTkFCTEVfQVBQTEVfUEFZID0g
JChFTkFCTEVfQVBQTEVfUEFZXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0FQUExFX1BB
WV9pcGhvbmVvcyA9IEVOQUJMRV9BUFBMRV9QQVk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ov
TG9jYWxpemFibGUuc3RyaW5ncwppbmRleCBiMTBiM2UwN2U1NGI5ZmIyODQ3YTExY2I3MDhmMTBj
MGRkNGIwYmRiLi5iODc1MjA1NmY0ZDMwMDk2ZTVkMTZhYmFiYzMxNDA5ODQ3YTc3NTc2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTg4Niw2ICs4
ODYsOSBAQAogLyogVXNlIFRvdWNoIElEIHRvIHNpZ24gaW50byB0aGlzIHdlYnNpdGUgKi8KICJU
b3VjaCBJRCB0byBzaWduIGludG8gdGhpcyB3ZWJzaXRlLiIgPSAiVG91Y2ggSUQgdG8gc2lnbiBp
bnRvIHRoaXMgd2Vic2l0ZS4iOwogCisvKiBBbGxvdyB1c2luZyBUb3VjaCBJRCB0byBzaWduIGlu
dG8gdGhlIHNwZWNpZmllZCB3ZWJzaXRlIG9uIHRoaXMgZGV2aWNlICovCisiVG91Y2ggSUQgdG8g
YWxsb3cgc2lnbmluZyBpbnRvIOKAnCVA4oCdIHdpdGggVG91Y2ggSUQuIiA9ICJUb3VjaCBJRCB0
byBhbGxvdyBzaWduaW5nIGludG8g4oCcJUDigJ0gd2l0aCBUb3VjaCBJRC4iOworCiAvKiBUcmFu
c2Zvcm1hdGlvbnMgY29udGV4dCBzdWItbWVudSBpdGVtICovCiAiVHJhbnNmb3JtYXRpb25zIiA9
ICJUcmFuc2Zvcm1hdGlvbnMiOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXpl
ZFN0cmluZ3MuY3BwCmluZGV4IDlhYzBiZDI5MjBjY2JhNTkzZTliYTA3ZWU2ZjNlNjU4MjViYTJl
NTkuLjRiYmZhMTM3MDVkY2VmODNlMzU1YjA3NjY0ZTVkODk3MDMxM2M3ZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC0xMjA4LDExICsxMjA4
LDE2IEBAIFN0cmluZyB1bmFjY2VwdGFibGVUTFNDZXJ0aWZpY2F0ZSgpCiAjZW5kaWYKIAogI2lm
IEVOQUJMRShXRUJfQVVUSE4pCi1TdHJpbmcgdG91Y2hJRFByb21wdFRpdGxlKCkKK1N0cmluZyBn
ZW5lcmljVG91Y2hJRFByb21wdFRpdGxlKCkKIHsKICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
VG91Y2ggSUQgdG8gc2lnbiBpbnRvIHRoaXMgd2Vic2l0ZS4iLCAiVXNlIFRvdWNoIElEIHRvIHNp
Z24gaW50byB0aGlzIHdlYnNpdGUiKTsKIH0KIAorU3RyaW5nIG1ha2VDcmVkZW50aWFsVG91Y2hJ
RFByb21wdFRpdGxlKGNvbnN0IFN0cmluZyYgZG9tYWluKQoreworICAgIHJldHVybiBmb3JtYXRM
b2NhbGl6ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HKCJUb3VjaCBJRCB0byBhbGxvdyBzaWduaW5n
IGludG8g4oCcJUDigJ0gd2l0aCBUb3VjaCBJRC4iLCAiQWxsb3cgdXNpbmcgVG91Y2ggSUQgdG8g
c2lnbiBpbnRvIHRoZSBzcGVjaWZpZWQgd2Vic2l0ZSBvbiB0aGlzIGRldmljZSIpLCBkb21haW4u
Y3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7Cit9CisKIFN0cmluZyBiaW9tZXRyaWNGYWxsYmFja1By
b21wdFRpdGxlKCkKIHsKICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRW50ZXIgcGFzc2NvZGUg
dG8gc2lnbiBpbnRvIHRoaXMgd2Vic2l0ZS4iLCAiVXNlIHBhc3Njb2RlIGFzIGEgZmFsbGJhY2sg
dG8gc2lnbiBpbnRvIHRoaXMgd2Vic2l0ZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5oCmluZGV4IGQ3MTg0NzJjNGFkYTNlYjdjNDRlNWJjN2I5ZWI0NmM2MDcx
NWFhYTUuLjkzYmM4ZDU2NDExNTg4YmJmNzZhZGU3Y2IxZGQ4NTdlYTc2MjRkYzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTM0MCw3ICszNDAsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0g
ICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHRvdWNoSURQcm9tcHRUaXRsZSgpOworICAgIFdFQkNP
UkVfRVhQT1JUIFN0cmluZyBnZW5lcmljVG91Y2hJRFByb21wdFRpdGxlKCk7CisgICAgV0VCQ09S
RV9FWFBPUlQgU3RyaW5nIG1ha2VDcmVkZW50aWFsVG91Y2hJRFByb21wdFRpdGxlKGNvbnN0IFN0
cmluZyYgZG9tYWluKTsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgYmlvbWV0cmljRmFsbGJh
Y2tQcm9tcHRUaXRsZSgpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGU2YTMwMDI5YTAxZGYxODAy
ZWJmNzJmNThmYTg0MTE1ODFlODAxYjQuLjc0OTQ4ZGNjZTVhM2YwZTg2ZWQ4ODk4MDYyODcyYjgw
Njc1ZTE5OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMzksNyArMzksNyBAQCBFTkFCTEVfQUNDRUxFUkFURURf
MkRfQ0FOVkFTID0gOwogCiBFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFID0gJChF
TkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFXyQoV0tfUExBVEZPUk1fTkFNRSkpOwog
RU5BQkxFX0FDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRV9tYWNvc3ggPSAkKEVOQUJMRV9BQ0NF
U1NJQklMSVRZX0lTT0xBVEVEX1RSRUUkKFdLX01BQ09TXzEwMTYpKTsKLUVOQUJMRV9BQ0NFU1NJ
QklMSVRZX0lTT0xBVEVEX1RSRUVfTUFDT1NfU0lOQ0VfMTAxNiA9IEVOQUJMRV9BQ0NFU1NJQklM
SVRZX0lTT0xBVEVEX1RSRUU7CisvL0VOQUJMRV9BQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUVf
TUFDT1NfU0lOQ0VfMTAxNiA9IEVOQUJMRV9BQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUU7CiAK
IEVOQUJMRV9BUFBMRV9QQVkgPSAkKEVOQUJMRV9BUFBMRV9QQVlfJChXS19QTEFURk9STV9OQU1F
KSk7CiBFTkFCTEVfQVBQTEVfUEFZX2lwaG9uZW9zID0gRU5BQkxFX0FQUExFX1BBWTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0xvY2FsQXV0aGVudGljYXRp
b25TUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0xvY2FsQXV0aGVudGlj
YXRpb25TUEkuaAppbmRleCA4ZTU4NGQ4MmIzNDQ3ZjBhZmFlMjc2ZWE3YjhmNTMxYzFkNDY0NTQy
Li42NWU5ZjY0MTc0ZDk3NWY2YThiODg0YzdkZWFiYTQzNWZhMGQzMjI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0aW9uU1BJLmgK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvTG9jYWxBdXRoZW50aWNhdGlv
blNQSS5oCkBAIC0zNiw2ICszNiw3IEBACiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBMQU9w
dGlvbikgewogICAgIExBT3B0aW9uQXV0aGVudGljYXRpb25UaXRsZSwKICAgICBMQU9wdGlvblBh
c3Njb2RlVGl0bGUsCisgICAgTEFPcHRpb25GYWxsYmFja1Zpc2libGUsCiB9OwogCiBAaW50ZXJm
YWNlIExBQ29udGV4dChQcml2YXRlKSA8TlNTZWN1cmVDb2Rpbmc+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRp
Y2F0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2Nv
YS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KaW5kZXggMTc4YzExMjc1MTlkNzcwMTY2ZDkwMDVkZjNh
YmZiNDA5OWYzNzcxMC4uZTRhZDU4YzliMzBlZWMwNWEzM2NjMjY5MzJmY2VmYTE3NGZmNzI4NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29j
b2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQpAQCAtMjM3LDYgKzIz
Nyw4IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0
ZXJEZWNpZGVQb2xpY3koTG9jYWxBdXRoZW50aWNhCiAgICAgQVNTRVJUKG1fc3RhdGUgPT0gU3Rh
dGU6OlJlcXVlc3RSZWNlaXZlZCk7CiAgICAgbV9zdGF0ZSA9IFN0YXRlOjpQb2xpY3lEZWNpZGVk
OwogCisgICAgYXV0byYgY3JlYXRpb25PcHRpb25zID0gV1RGOjpnZXQ8UHVibGljS2V5Q3JlZGVu
dGlhbENyZWF0aW9uT3B0aW9ucz4ocmVxdWVzdERhdGEoKS5vcHRpb25zKTsKKwogICAgIGlmIChw
b2xpY3kgPT0gTG9jYWxBdXRoZW50aWNhdG9yUG9saWN5OjpEaXNhbGxvdykgewogICAgICAgICBy
ZWNlaXZlUmVzcG9uZChFeGNlcHRpb25EYXRhIHsgVW5rbm93bkVycm9yLCAiRGlzYWxsb3cgbG9j
YWwgYXV0aGVudGljYXRvci4iX3MgfSk7CiAgICAgICAgIHJldHVybjsKQEAgLTI2MSw3ICsyNjMs
NyBAQCB2b2lkIExvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVy
RGVjaWRlUG9saWN5KExvY2FsQXV0aGVudGljYQogCiAgICAgICAgIHdlYWtUaGlzLT5jb250aW51
ZU1ha2VDcmVkZW50aWFsQWZ0ZXJVc2VyVmVyaWZpY2F0aW9uKGFjY2Vzc0NvbnRyb2wuZ2V0KCks
IHZlcmlmaWNhdGlvbiwgY29udGV4dCk7CiAgICAgfTsKLSAgICBtX2Nvbm5lY3Rpb24tPnZlcmlm
eVVzZXIoYWNjZXNzQ29udHJvbFJlZiwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIG1fY29ubmVj
dGlvbi0+dmVyaWZ5VXNlcihjcmVhdGlvbk9wdGlvbnMucnAuaWQsIGFjY2Vzc0NvbnRyb2xSZWYs
IFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAogdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRp
bnVlTWFrZUNyZWRlbnRpYWxBZnRlclVzZXJWZXJpZmljYXRpb24oU2VjQWNjZXNzQ29udHJvbFJl
ZiBhY2Nlc3NDb250cm9sUmVmLCBMb2NhbENvbm5lY3Rpb246OlVzZXJWZXJpZmljYXRpb24gdmVy
aWZpY2F0aW9uLCBMQUNvbnRleHQgKmNvbnRleHQpCkBAIC00NzYsNiArNDc4LDggQEAgdm9pZCBM
b2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVNlbGVj
dGVkKFJlZjxXZWJDb3JlOjoKICAgICBBU1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6UmVxdWVzdFJl
Y2VpdmVkKTsKICAgICBtX3N0YXRlID0gU3RhdGU6OlJlc3BvbnNlU2VsZWN0ZWQ7CiAKKyAgICBh
dXRvJiByZXF1ZXN0T3B0aW9ucyA9IFdURjo6Z2V0PFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucz4ocmVxdWVzdERhdGEoKS5vcHRpb25zKTsKKwogICAgIGF1dG8gYWNjZXNzQ29udHJv
bFJlZiA9IHJlc3BvbnNlLT5hY2Nlc3NDb250cm9sKCk7CiAgICAgYXV0byBjYWxsYmFjayA9IFsK
ICAgICAgICAgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksCkBAIC00ODcsNyArNDkxLDcg
QEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJSZXNw
b25zZVNlbGVjdGVkKFJlZjxXZWJDb3JlOjoKIAogICAgICAgICB3ZWFrVGhpcy0+Y29udGludWVH
ZXRBc3NlcnRpb25BZnRlclVzZXJWZXJpZmljYXRpb24oV1RGTW92ZShyZXNwb25zZSksIHZlcmlm
aWNhdGlvbiwgY29udGV4dCk7CiAgICAgfTsKLSAgICBtX2Nvbm5lY3Rpb24tPnZlcmlmeVVzZXIo
YWNjZXNzQ29udHJvbFJlZiwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIG1fY29ubmVjdGlvbi0+
dmVyaWZ5VXNlcihyZXF1ZXN0T3B0aW9ucy5ycElkLCBhY2Nlc3NDb250cm9sUmVmLCBXVEZNb3Zl
KGNhbGxiYWNrKSk7CiB9CiAKIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldEFz
c2VydGlvbkFmdGVyVXNlclZlcmlmaWNhdGlvbihSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvckFz
c2VydGlvblJlc3BvbnNlPiYmIHJlc3BvbnNlLCBMb2NhbENvbm5lY3Rpb246OlVzZXJWZXJpZmlj
YXRpb24gdmVyaWZpY2F0aW9uLCBMQUNvbnRleHQgKmNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xv
Y2FsQ29ubmVjdGlvbi5oCmluZGV4IGJjNjJmM2QwNWE2Njk0OTBlNzE0ODk4Yzk2YWZlOGYxYzNi
Yzc5YjIuLjY1ODQwYmU4ZDZkMTIzMGIxNDAwNmJiNDc0ZDcwNzIyNjhmOWViZTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2Fs
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlvbi5oCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5Mb2NhbENvbm5lY3Rpb24oKSA9IGRlZmF1bHQ7CiAKICAgICAvLyBPdmVycmlk
ZWQgYnkgTW9ja0xvY2FsQ29ubmVjdGlvbi4KLSAgICB2aXJ0dWFsIHZvaWQgdmVyaWZ5VXNlcihT
ZWNBY2Nlc3NDb250cm9sUmVmLCBVc2VyVmVyaWZpY2F0aW9uQ2FsbGJhY2smJikgY29uc3Q7Cisg
ICAgdmlydHVhbCB2b2lkIHZlcmlmeVVzZXIoY29uc3QgU3RyaW5nJiBycElkLCBTZWNBY2Nlc3ND
b250cm9sUmVmLCBVc2VyVmVyaWZpY2F0aW9uQ2FsbGJhY2smJikgY29uc3Q7CiAgICAgdmlydHVh
bCBSZXRhaW5QdHI8U2VjS2V5UmVmPiBjcmVhdGVDcmVkZW50aWFsUHJpdmF0ZUtleShMQUNvbnRl
eHQgKiwgU2VjQWNjZXNzQ29udHJvbFJlZiwgY29uc3QgU3RyaW5nJiBzZWNBdHRyTGFiZWwsIE5T
RGF0YSAqc2VjQXR0ckFwcGxpY2F0aW9uVGFnKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
QXR0ZXN0YXRpb24oU2VjS2V5UmVmLCBOU0RhdGEgKmF1dGhEYXRhLCBOU0RhdGEgKmhhc2gsIEF0
dGVzdGF0aW9uQ2FsbGJhY2smJikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGZpbHRlclJlc3Bv
bnNlcyhIYXNoU2V0PFJlZjxXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U+
PiYpIGNvbnN0IHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlvbi5tbQppbmRleCAz
NjRlYTA2YjhjNGU2ZTc3Nzk2MDQzNDBkZjZjZjcyZGYwOTRhOWI3Li5hMTU1NWM2ODAyMTgwYjQy
OGZmZjNmZmEwZWZlY2JjZWExNjU1ZmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24ubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0
aW9uLm1tCkBAIC00MCwxNCArNDAsMjEgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQg
TG9jYWxDb25uZWN0aW9uOjp2ZXJpZnlVc2VyKFNlY0FjY2Vzc0NvbnRyb2xSZWYgYWNjZXNzQ29u
dHJvbCwgVXNlclZlcmlmaWNhdGlvbkNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0
Cit2b2lkIExvY2FsQ29ubmVjdGlvbjo6dmVyaWZ5VXNlcihjb25zdCBTdHJpbmcmIHJwSWQsIFNl
Y0FjY2Vzc0NvbnRyb2xSZWYgYWNjZXNzQ29udHJvbCwgVXNlclZlcmlmaWNhdGlvbkNhbGxiYWNr
JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0CiB7CiAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRO
UyhbYWxsb2NMQUNvbnRleHRJbnN0YW5jZSgpIGluaXRdKTsKIAogICAgIGF1dG8gb3B0aW9ucyA9
IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XSk7Ci0gICAgaWYgKFtj
b250ZXh0IGJpb21ldHJ5VHlwZV0gPT0gTEFCaW9tZXRyeVR5cGVUb3VjaElEKQotICAgICAgICBb
b3B0aW9ucyBzZXRPYmplY3Q6V2ViQ29yZTo6dG91Y2hJRFByb21wdFRpdGxlKCkgZm9yS2V5OkAo
TEFPcHRpb25BdXRoZW50aWNhdGlvblRpdGxlKV07Ci0jaWYgUExBVEZPUk0oaU9TKQorICAgIGlm
IChbY29udGV4dCBiaW9tZXRyeVR5cGVdID09IExBQmlvbWV0cnlUeXBlVG91Y2hJRCkgeworI2lm
IFBMQVRGT1JNKElPUykKKyAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0OldlYkNvcmU6OmdlbmVy
aWNUb3VjaElEUHJvbXB0VGl0bGUoKSBmb3JLZXk6QChMQU9wdGlvbkF1dGhlbnRpY2F0aW9uVGl0
bGUpXTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChycElkLCBycElkKTsKKyNlbHNlCisgICAgICAg
IFtvcHRpb25zIHNldE9iamVjdDpXZWJDb3JlOjptYWtlQ3JlZGVudGlhbFRvdWNoSURQcm9tcHRU
aXRsZShycElkKSBmb3JLZXk6QChMQU9wdGlvbkF1dGhlbnRpY2F0aW9uVGl0bGUpXTsKKyNlbmRp
ZgorICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6QE5PIGZvcktleTpAKExBT3B0aW9uRmFsbGJh
Y2tWaXNpYmxlKV07CisgICAgfQorI2lmIFBMQVRGT1JNKElPUykKICAgICBbb3B0aW9ucyBzZXRP
YmplY3Q6V2ViQ29yZTo6YmlvbWV0cmljRmFsbGJhY2tQcm9tcHRUaXRsZSgpIGZvcktleTpAKExB
T3B0aW9uUGFzc2NvZGVUaXRsZSldOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9j
YWxDb25uZWN0aW9uLmgKaW5kZXggZGVlNzczYzNlMTMyZTM3YjcyNzI3ZjM1Mzg3MTQwMTdiMWQ5
NmNmMy4uMDEyZWRiOWYyMTg2YjE1ZTIzMGRkYzM1YmFkNDc4NjUzOTYxNDZlNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9j
YWxDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGlj
OgogICAgIGV4cGxpY2l0IE1vY2tMb2NhbENvbm5lY3Rpb24oY29uc3QgV2ViQ29yZTo6TW9ja1dl
YkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbiYpOwogCiBwcml2YXRlOgotICAgIHZvaWQgdmVy
aWZ5VXNlcihTZWNBY2Nlc3NDb250cm9sUmVmLCBVc2VyVmVyaWZpY2F0aW9uQ2FsbGJhY2smJikg
Y29uc3QgZmluYWw7CisgICAgdm9pZCB2ZXJpZnlVc2VyKGNvbnN0IFN0cmluZyYsIFNlY0FjY2Vz
c0NvbnRyb2xSZWYsIFVzZXJWZXJpZmljYXRpb25DYWxsYmFjayYmKSBjb25zdCBmaW5hbDsKICAg
ICBSZXRhaW5QdHI8U2VjS2V5UmVmPiBjcmVhdGVDcmVkZW50aWFsUHJpdmF0ZUtleShMQUNvbnRl
eHQgKiwgU2VjQWNjZXNzQ29udHJvbFJlZiwgY29uc3QgU3RyaW5nJiBzZWNBdHRyTGFiZWwsIE5T
RGF0YSAqc2VjQXR0ckFwcGxpY2F0aW9uVGFnKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGdldEF0
dGVzdGF0aW9uKFNlY0tleVJlZiwgTlNEYXRhICphdXRoRGF0YSwgTlNEYXRhICpoYXNoLCBBdHRl
c3RhdGlvbkNhbGxiYWNrJiYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgZmlsdGVyUmVzcG9uc2Vz
KEhhc2hTZXQ8UmVmPFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4+Jikg
Y29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW0KaW5k
ZXggYjVjYWQwN2MxNjc1YzJjY2RiODEyZmMxYzc1MTczNjZiOWZhODExMS4uM2Q1ZDQwMTMwNGI3
YzljZWNkODkyOWFjYjNhY2Y5M2E1MGQ3ZGJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xv
Y2FsQ29ubmVjdGlvbi5tbQpAQCAtNDQsNyArNDQsNyBAQCBNb2NrTG9jYWxDb25uZWN0aW9uOjpN
b2NrTG9jYWxDb25uZWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok1vY2tXZWJBdXRoZW50aWNhdGlvbkNv
bgogewogfQogCi12b2lkIE1vY2tMb2NhbENvbm5lY3Rpb246OnZlcmlmeVVzZXIoU2VjQWNjZXNz
Q29udHJvbFJlZiwgVXNlclZlcmlmaWNhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spIGNvbnN0Cit2
b2lkIE1vY2tMb2NhbENvbm5lY3Rpb246OnZlcmlmeVVzZXIoY29uc3QgU3RyaW5nJiwgU2VjQWNj
ZXNzQ29udHJvbFJlZiwgVXNlclZlcmlmaWNhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spIGNvbnN0
CiB7CiAgICAgLy8gTW9jayBhc3luYyBvcGVyYXRpb25zLgogICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChbY29uZmlndXJhdGlvbiA9IG1fY29uZmlndXJhdGlvbiwgY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5k
ZXggZTZhMzAwMjlhMDFkZjE4MDJlYmY3MmY1OGZhODQxMTU4MWU4MDFiNC4uNzQ5NDhkY2NlNWEz
ZjBlODZlZDg4OTgwNjI4NzJiODA2NzVlMTk4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKQEAgLTM5LDcgKzM5LDcgQEAgRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyA9IDsKIAog
RU5BQkxFX0FDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSA9ICQoRU5BQkxFX0FDQ0VTU0lCSUxJ
VFlfSVNPTEFURURfVFJFRV8kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9BQ0NFU1NJQklM
SVRZX0lTT0xBVEVEX1RSRUVfbWFjb3N4ID0gJChFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRF
RF9UUkVFJChXS19NQUNPU18xMDE2KSk7Ci1FTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9U
UkVFX01BQ09TX1NJTkNFXzEwMTYgPSBFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVF
OworLy9FTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFX01BQ09TX1NJTkNFXzEwMTYg
PSBFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFOwogCiBFTkFCTEVfQVBQTEVfUEFZ
ID0gJChFTkFCTEVfQVBQTEVfUEFZXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0FQUExF
X1BBWV9pcGhvbmVvcyA9IEVOQUJMRV9BUFBMRV9QQVk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRl
eCBlNmEzMDAyOWEwMWRmMTgwMmViZjcyZjU4ZmE4NDExNTgxZTgwMWI0Li43NDk0OGRjY2U1YTNm
MGU4NmVkODg5ODA2Mjg3MmI4MDY3NWUxOThiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTM5
LDcgKzM5LDcgQEAgRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyA9IDsKIAogRU5BQkxFX0FD
Q0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSA9ICQoRU5BQkxFX0FDQ0VTU0lCSUxJVFlfSVNPTEFU
RURfVFJFRV8kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9BQ0NFU1NJQklMSVRZX0lTT0xB
VEVEX1RSRUVfbWFjb3N4ID0gJChFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFJChX
S19NQUNPU18xMDE2KSk7Ci1FTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFX01BQ09T
X1NJTkNFXzEwMTYgPSBFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFOworLy9FTkFC
TEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFX01BQ09TX1NJTkNFXzEwMTYgPSBFTkFCTEVf
QUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFOwogCiBFTkFCTEVfQVBQTEVfUEFZID0gJChFTkFC
TEVfQVBQTEVfUEFZXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0FQUExFX1BBWV9pcGhv
bmVvcyA9IEVOQUJMRV9BUFBMRV9QQVk7Cg==
</data>
<flag name="commit-queue"
          id="408933"
          type_id="3"
          status="-"
          setter="jiewen_tan"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393537</attachid>
            <date>2020-03-13 15:27:57 -0700</date>
            <delta_ts>2020-03-13 16:15:36 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-208703-20200313152756.patch</filename>
            <type>text/plain</type>
            <size>12256</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU1ZWVhOTk0NzNkYzI3
N2U1ZmNjMjE3M2NlYTYzMDY2OTZkYzRjYS4uNGI3YTE3NWEyYWQ2ZTJiZjIwOTc3ZjcyNWVlMDI3
NzhiOTk1MmUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAzLTEzICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBDdXN0
b21pemUgYSBiaXQgbW9yZSBvbiB0aGUgbWFjT1MgTG9jYWxBdXRoZW50aWNhdGlvbiBwcm9tcHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODcwMwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjAxMzY5NzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgor
ICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6dG91Y2hJRFByb21wdFRpdGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJp
bmdzLmg6CisgICAgICAgIEFkZHMgYSBuZXcgZm9ybWF0dGVkIFVJIHN0cmluZyB0byBoZWxwIHdp
dGggUlAgSUQuCisKIDIwMjAtMDMtMTMgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNTgzOTEuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDgyZmNjMzBiODRmMjE4MzZiNGU2ZTcxZGVmYmQzODUxOTgzZTkxYTUuLjJiZTI1N2JhODc4ZDJl
ZDI4NWZiNDhjZjI5NjkzZDUxNmEyMjQyODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIw
MjAtMDMtMTMgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBb
V2ViQXV0aG5dIEN1c3RvbWl6ZSBhIGJpdCBtb3JlIG9uIHRoZSBtYWNPUyBMb2NhbEF1dGhlbnRp
Y2F0aW9uIHByb21wdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA4NzAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDEzNjk3ND4KKworICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBPbiBtYWNPUywgTG9jYWxBdXRo
ZW50aWNhdGlvbiBwcm9tcHQgY2FuIGJlIHNob3duIGFueXdoZXJlIHRoYXQgaXMgcHJvYmFibHkg
bm90IG9uIHRvcCBvZgorICAgICAgICBvdXIgVUkgY2xpZW50cy4gVGhlcmVmb3JlLCBhZGQgYSBS
UCBJRCB0byB0aGUgZGlhbG9nIHRvIGhlbHAgdXNlcnMgdG8gaWRlbnRpZnkgd2hhdCBoYXMKKyAg
ICAgICAgaGFwcGVuZWQuIEluIGFkZGl0aW9uLCBpdCByZW1vdmVzIHRoZSBwYXNzd29yZCBmYWxs
YmFjayBidXR0b24uCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvQ29jb2EvTG9jYWxBdXRoZW50
aWNhdGlvblNQSS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2Nv
YS9Mb2NhbEF1dGhlbnRpY2F0b3IubW06CisgICAgICAgIChXZWJLaXQ6OkxvY2FsQXV0aGVudGlj
YXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyRGVjaWRlUG9saWN5KToKKyAgICAgICAg
KFdlYktpdDo6TG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldEFzc2VydGlvbkFmdGVyUmVz
cG9uc2VTZWxlY3RlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0Nv
Y29hL0xvY2FsQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6OkxvY2FsQ29u
bmVjdGlvbjo6dmVyaWZ5VXNlciBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW06CisgICAgICAg
IChXZWJLaXQ6Ok1vY2tMb2NhbENvbm5lY3Rpb246OnZlcmlmeVVzZXIgY29uc3QpOgorCiAyMDIw
LTAzLTEzICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJldmVydGluZyByMjU4MzkxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xv
Y2FsaXphYmxlLnN0cmluZ3MKaW5kZXggYjEwYjNlMDdlNTRiOWZiMjg0N2ExMWNiNzA4ZjEwYzBk
ZDRiMGJkYi4uYjg3NTIwNTZmNGQzMDA5NmU1ZDE2YWJhYmMzMTQwOTg0N2E3NzU3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncworKysgYi9T
b3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCkBAIC04ODYsNiArODg2
LDkgQEAKIC8qIFVzZSBUb3VjaCBJRCB0byBzaWduIGludG8gdGhpcyB3ZWJzaXRlICovCiAiVG91
Y2ggSUQgdG8gc2lnbiBpbnRvIHRoaXMgd2Vic2l0ZS4iID0gIlRvdWNoIElEIHRvIHNpZ24gaW50
byB0aGlzIHdlYnNpdGUuIjsKIAorLyogQWxsb3cgdXNpbmcgVG91Y2ggSUQgdG8gc2lnbiBpbnRv
IHRoZSBzcGVjaWZpZWQgd2Vic2l0ZSBvbiB0aGlzIGRldmljZSAqLworIlRvdWNoIElEIHRvIGFs
bG93IHNpZ25pbmcgaW50byDigJwlQOKAnSB3aXRoIFRvdWNoIElELiIgPSAiVG91Y2ggSUQgdG8g
YWxsb3cgc2lnbmluZyBpbnRvIOKAnCVA4oCdIHdpdGggVG91Y2ggSUQuIjsKKwogLyogVHJhbnNm
b3JtYXRpb25zIGNvbnRleHQgc3ViLW1lbnUgaXRlbSAqLwogIlRyYW5zZm9ybWF0aW9ucyIgPSAi
VHJhbnNmb3JtYXRpb25zIjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TG9jYWxpemVkU3RyaW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmNwcAppbmRleCA5YWMwYmQyOTIwY2NiYTU5M2U5YmEwN2VlNmYzZTY1ODI1YmEyZTU5
Li40YmJmYTEzNzA1ZGNlZjgzZTM1NWIwNzY2NGU1ZDg5NzAzMTNjN2Q5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcApAQCAtMTIwOCwxMSArMTIwOCwx
NiBAQCBTdHJpbmcgdW5hY2NlcHRhYmxlVExTQ2VydGlmaWNhdGUoKQogI2VuZGlmCiAKICNpZiBF
TkFCTEUoV0VCX0FVVEhOKQotU3RyaW5nIHRvdWNoSURQcm9tcHRUaXRsZSgpCitTdHJpbmcgZ2Vu
ZXJpY1RvdWNoSURQcm9tcHRUaXRsZSgpCiB7CiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlRv
dWNoIElEIHRvIHNpZ24gaW50byB0aGlzIHdlYnNpdGUuIiwgIlVzZSBUb3VjaCBJRCB0byBzaWdu
IGludG8gdGhpcyB3ZWJzaXRlIik7CiB9CiAKK1N0cmluZyBtYWtlQ3JlZGVudGlhbFRvdWNoSURQ
cm9tcHRUaXRsZShjb25zdCBTdHJpbmcmIGRvbWFpbikKK3sKKyAgICByZXR1cm4gZm9ybWF0TG9j
YWxpemVkU3RyaW5nKFdFQl9VSV9DRlNUUklORygiVG91Y2ggSUQgdG8gYWxsb3cgc2lnbmluZyBp
bnRvIOKAnCVA4oCdIHdpdGggVG91Y2ggSUQuIiwgIkFsbG93IHVzaW5nIFRvdWNoIElEIHRvIHNp
Z24gaW50byB0aGUgc3BlY2lmaWVkIHdlYnNpdGUgb24gdGhpcyBkZXZpY2UiKSwgZG9tYWluLmNy
ZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOworfQorCiBTdHJpbmcgYmlvbWV0cmljRmFsbGJhY2tQcm9t
cHRUaXRsZSgpCiB7CiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkVudGVyIHBhc3Njb2RlIHRv
IHNpZ24gaW50byB0aGlzIHdlYnNpdGUuIiwgIlVzZSBwYXNzY29kZSBhcyBhIGZhbGxiYWNrIHRv
IHNpZ24gaW50byB0aGlzIHdlYnNpdGUiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaAppbmRleCBkNzE4NDcyYzRhZGEzZWI3YzQ0ZTViYzdiOWViNDZjNjA3MTVh
YWE1Li45M2JjOGQ1NjQxMTU4OGJiZjc2YWRlN2NiMWRkODU3ZWE3NjI0ZGM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCkBAIC0zNDAsNyArMzQwLDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAg
IFdFQkNPUkVfRVhQT1JUIFN0cmluZyB0b3VjaElEUHJvbXB0VGl0bGUoKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBTdHJpbmcgZ2VuZXJpY1RvdWNoSURQcm9tcHRUaXRsZSgpOworICAgIFdFQkNPUkVf
RVhQT1JUIFN0cmluZyBtYWtlQ3JlZGVudGlhbFRvdWNoSURQcm9tcHRUaXRsZShjb25zdCBTdHJp
bmcmIGRvbWFpbik7CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGJpb21ldHJpY0ZhbGxiYWNr
UHJvbXB0VGl0bGUoKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL3NwaS9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0aW9uU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3NwaS9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0aW9uU1BJLmgKaW5kZXggOGU1ODRkODJi
MzQ0N2YwYWZhZTI3NmVhN2I4ZjUzMWMxZDQ2NDU0Mi4uNjVlOWY2NDE3NGQ5NzVmNmE4Yjg4NGM3
ZGVhYmE0MzVmYTBkMzIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkv
Q29jb2EvTG9jYWxBdXRoZW50aWNhdGlvblNQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vc3BpL0NvY29hL0xvY2FsQXV0aGVudGljYXRpb25TUEkuaApAQCAtMzYsNiArMzYsNyBAQAog
dHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgTEFPcHRpb24pIHsKICAgICBMQU9wdGlvbkF1dGhl
bnRpY2F0aW9uVGl0bGUsCiAgICAgTEFPcHRpb25QYXNzY29kZVRpdGxlLAorICAgIExBT3B0aW9u
RmFsbGJhY2tWaXNpYmxlLAogfTsKIAogQGludGVyZmFjZSBMQUNvbnRleHQoUHJpdmF0ZSkgPE5T
U2VjdXJlQ29kaW5nPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCmlu
ZGV4IDE3OGMxMTI3NTE5ZDc3MDE2NmQ5MDA1ZGYzYWJmYjQwOTlmMzc3MTAuLmU0YWQ1OGM5YjMw
ZWVjMDVhMzNjYzI2OTMyZmNlZmExNzRmZjcyODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2Nh
bEF1dGhlbnRpY2F0b3IubW0KQEAgLTIzNyw2ICsyMzcsOCBAQCB2b2lkIExvY2FsQXV0aGVudGlj
YXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyRGVjaWRlUG9saWN5KExvY2FsQXV0aGVu
dGljYQogICAgIEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpSZXF1ZXN0UmVjZWl2ZWQpOwogICAg
IG1fc3RhdGUgPSBTdGF0ZTo6UG9saWN5RGVjaWRlZDsKIAorICAgIGF1dG8mIGNyZWF0aW9uT3B0
aW9ucyA9IFdURjo6Z2V0PFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+KHJlcXVl
c3REYXRhKCkub3B0aW9ucyk7CisKICAgICBpZiAocG9saWN5ID09IExvY2FsQXV0aGVudGljYXRv
clBvbGljeTo6RGlzYWxsb3cpIHsKICAgICAgICAgcmVjZWl2ZVJlc3BvbmQoRXhjZXB0aW9uRGF0
YSB7IFVua25vd25FcnJvciwgIkRpc2FsbG93IGxvY2FsIGF1dGhlbnRpY2F0b3IuIl9zIH0pOwog
ICAgICAgICByZXR1cm47CkBAIC0yNjEsNyArMjYzLDcgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0
b3I6OmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlckRlY2lkZVBvbGljeShMb2NhbEF1dGhlbnRp
Y2EKIAogICAgICAgICB3ZWFrVGhpcy0+Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyVXNlclZl
cmlmaWNhdGlvbihhY2Nlc3NDb250cm9sLmdldCgpLCB2ZXJpZmljYXRpb24sIGNvbnRleHQpOwog
ICAgIH07Ci0gICAgbV9jb25uZWN0aW9uLT52ZXJpZnlVc2VyKGFjY2Vzc0NvbnRyb2xSZWYsIFdU
Rk1vdmUoY2FsbGJhY2spKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnZlcmlmeVVzZXIoY3JlYXRpb25P
cHRpb25zLnJwLmlkLCBhY2Nlc3NDb250cm9sUmVmLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAK
IHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJVc2Vy
VmVyaWZpY2F0aW9uKFNlY0FjY2Vzc0NvbnRyb2xSZWYgYWNjZXNzQ29udHJvbFJlZiwgTG9jYWxD
b25uZWN0aW9uOjpVc2VyVmVyaWZpY2F0aW9uIHZlcmlmaWNhdGlvbiwgTEFDb250ZXh0ICpjb250
ZXh0KQpAQCAtNDc2LDYgKzQ3OCw4IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51
ZUdldEFzc2VydGlvbkFmdGVyUmVzcG9uc2VTZWxlY3RlZChSZWY8V2ViQ29yZTo6CiAgICAgQVNT
RVJUKG1fc3RhdGUgPT0gU3RhdGU6OlJlcXVlc3RSZWNlaXZlZCk7CiAgICAgbV9zdGF0ZSA9IFN0
YXRlOjpSZXNwb25zZVNlbGVjdGVkOwogCisgICAgYXV0byYgcmVxdWVzdE9wdGlvbnMgPSBXVEY6
OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+KHJlcXVlc3REYXRhKCkub3B0
aW9ucyk7CisKICAgICBhdXRvIGFjY2Vzc0NvbnRyb2xSZWYgPSByZXNwb25zZS0+YWNjZXNzQ29u
dHJvbCgpOwogICAgIGF1dG8gY2FsbGJhY2sgPSBbCiAgICAgICAgIHdlYWtUaGlzID0gbWFrZVdl
YWtQdHIoKnRoaXMpLApAQCAtNDg3LDcgKzQ5MSw3IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9y
Ojpjb250aW51ZUdldEFzc2VydGlvbkFmdGVyUmVzcG9uc2VTZWxlY3RlZChSZWY8V2ViQ29yZTo6
CiAKICAgICAgICAgd2Vha1RoaXMtPmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJVc2VyVmVyaWZp
Y2F0aW9uKFdURk1vdmUocmVzcG9uc2UpLCB2ZXJpZmljYXRpb24sIGNvbnRleHQpOwogICAgIH07
Ci0gICAgbV9jb25uZWN0aW9uLT52ZXJpZnlVc2VyKGFjY2Vzc0NvbnRyb2xSZWYsIFdURk1vdmUo
Y2FsbGJhY2spKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnZlcmlmeVVzZXIocmVxdWVzdE9wdGlvbnMu
cnBJZCwgYWNjZXNzQ29udHJvbFJlZiwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIExv
Y2FsQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRBc3NlcnRpb25BZnRlclVzZXJWZXJpZmljYXRp
b24oUmVmPFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4mJiByZXNwb25z
ZSwgTG9jYWxDb25uZWN0aW9uOjpVc2VyVmVyaWZpY2F0aW9uIHZlcmlmaWNhdGlvbiwgTEFDb250
ZXh0ICpjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24uaAppbmRleCBiYzYy
ZjNkMDVhNjY5NDkwZTcxNDg5OGM5NmFmZThmMWMzYmM3OWIyLi42NTg0MGJlOGQ2ZDEyMzBiMTQw
MDZiYjQ3NGQ3MDcyMjY4ZjllYmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24u
aApAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+TG9jYWxDb25uZWN0aW9u
KCkgPSBkZWZhdWx0OwogCiAgICAgLy8gT3ZlcnJpZGVkIGJ5IE1vY2tMb2NhbENvbm5lY3Rpb24u
Ci0gICAgdmlydHVhbCB2b2lkIHZlcmlmeVVzZXIoU2VjQWNjZXNzQ29udHJvbFJlZiwgVXNlclZl
cmlmaWNhdGlvbkNhbGxiYWNrJiYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCB2ZXJpZnlVc2Vy
KGNvbnN0IFN0cmluZyYgcnBJZCwgU2VjQWNjZXNzQ29udHJvbFJlZiwgVXNlclZlcmlmaWNhdGlv
bkNhbGxiYWNrJiYpIGNvbnN0OwogICAgIHZpcnR1YWwgUmV0YWluUHRyPFNlY0tleVJlZj4gY3Jl
YXRlQ3JlZGVudGlhbFByaXZhdGVLZXkoTEFDb250ZXh0ICosIFNlY0FjY2Vzc0NvbnRyb2xSZWYs
IGNvbnN0IFN0cmluZyYgc2VjQXR0ckxhYmVsLCBOU0RhdGEgKnNlY0F0dHJBcHBsaWNhdGlvblRh
ZykgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGdldEF0dGVzdGF0aW9uKFNlY0tleVJlZiwgTlNE
YXRhICphdXRoRGF0YSwgTlNEYXRhICpoYXNoLCBBdHRlc3RhdGlvbkNhbGxiYWNrJiYpIGNvbnN0
OwogICAgIHZpcnR1YWwgdm9pZCBmaWx0ZXJSZXNwb25zZXMoSGFzaFNldDxSZWY8V2ViQ29yZTo6
QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPj4mKSBjb25zdCB7IH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENv
bm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9D
b2NvYS9Mb2NhbENvbm5lY3Rpb24ubW0KaW5kZXggMzY0ZWEwNmI4YzRlNmU3Nzc5NjA0MzQwZGY2
Y2Y3MmRmMDk0YTliNy4uYTE1NTVjNjgwMjE4MGI0MjhmZmYzZmZhMGVmZWNiY2VhMTY1NWZjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29j
b2EvTG9jYWxDb25uZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlvbi5tbQpAQCAtNDAsMTQgKzQwLDIxIEBA
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIExvY2FsQ29ubmVjdGlvbjo6dmVyaWZ5VXNl
cihTZWNBY2Nlc3NDb250cm9sUmVmIGFjY2Vzc0NvbnRyb2wsIFVzZXJWZXJpZmljYXRpb25DYWxs
YmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAordm9pZCBMb2NhbENvbm5lY3Rpb246OnZl
cmlmeVVzZXIoY29uc3QgU3RyaW5nJiBycElkLCBTZWNBY2Nlc3NDb250cm9sUmVmIGFjY2Vzc0Nv
bnRyb2wsIFVzZXJWZXJpZmljYXRpb25DYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25z
dAogewogICAgIGF1dG8gY29udGV4dCA9IGFkb3B0TlMoW2FsbG9jTEFDb250ZXh0SW5zdGFuY2Uo
KSBpbml0XSk7CiAKICAgICBhdXRvIG9wdGlvbnMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlv
bmFyeSBhbGxvY10gaW5pdF0pOwotICAgIGlmIChbY29udGV4dCBiaW9tZXRyeVR5cGVdID09IExB
QmlvbWV0cnlUeXBlVG91Y2hJRCkKLSAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0OldlYkNvcmU6
OnRvdWNoSURQcm9tcHRUaXRsZSgpIGZvcktleTpAKExBT3B0aW9uQXV0aGVudGljYXRpb25UaXRs
ZSldOwotI2lmIFBMQVRGT1JNKGlPUykKKyAgICBpZiAoW2NvbnRleHQgYmlvbWV0cnlUeXBlXSA9
PSBMQUJpb21ldHJ5VHlwZVRvdWNoSUQpIHsKKyNpZiBQTEFURk9STShJT1MpCisgICAgICAgIFtv
cHRpb25zIHNldE9iamVjdDpXZWJDb3JlOjpnZW5lcmljVG91Y2hJRFByb21wdFRpdGxlKCkgZm9y
S2V5OkAoTEFPcHRpb25BdXRoZW50aWNhdGlvblRpdGxlKV07CisgICAgICAgIEFTU0VSVF9VTlVT
RUQocnBJZCwgcnBJZCk7CisjZWxzZQorICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6V2ViQ29y
ZTo6bWFrZUNyZWRlbnRpYWxUb3VjaElEUHJvbXB0VGl0bGUocnBJZCkgZm9yS2V5OkAoTEFPcHRp
b25BdXRoZW50aWNhdGlvblRpdGxlKV07CisjZW5kaWYKKyAgICAgICAgW29wdGlvbnMgc2V0T2Jq
ZWN0OkBOTyBmb3JLZXk6QChMQU9wdGlvbkZhbGxiYWNrVmlzaWJsZSldOworICAgIH0KKyNpZiBQ
TEFURk9STShJT1MpCiAgICAgW29wdGlvbnMgc2V0T2JqZWN0OldlYkNvcmU6OmJpb21ldHJpY0Zh
bGxiYWNrUHJvbXB0VGl0bGUoKSBmb3JLZXk6QChMQU9wdGlvblBhc3Njb2RlVGl0bGUpXTsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5oCmluZGV4IGRlZTc3
M2MzZTEzMmUzN2I3MjcyN2YzNTM4NzE0MDE3YjFkOTZjZjMuLjAxMmVkYjlmMjE4NmIxNWUyMzBk
ZGMzNWJhZDQ3ODY1Mzk2MTQ2ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVj
dGlvbi5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBNb2NrTG9jYWxD
b25uZWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRp
b24mKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHZlcmlmeVVzZXIoU2VjQWNjZXNzQ29udHJvbFJl
ZiwgVXNlclZlcmlmaWNhdGlvbkNhbGxiYWNrJiYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgdmVy
aWZ5VXNlcihjb25zdCBTdHJpbmcmLCBTZWNBY2Nlc3NDb250cm9sUmVmLCBVc2VyVmVyaWZpY2F0
aW9uQ2FsbGJhY2smJikgY29uc3QgZmluYWw7CiAgICAgUmV0YWluUHRyPFNlY0tleVJlZj4gY3Jl
YXRlQ3JlZGVudGlhbFByaXZhdGVLZXkoTEFDb250ZXh0ICosIFNlY0FjY2Vzc0NvbnRyb2xSZWYs
IGNvbnN0IFN0cmluZyYgc2VjQXR0ckxhYmVsLCBOU0RhdGEgKnNlY0F0dHJBcHBsaWNhdGlvblRh
ZykgY29uc3QgZmluYWw7CiAgICAgdm9pZCBnZXRBdHRlc3RhdGlvbihTZWNLZXlSZWYsIE5TRGF0
YSAqYXV0aERhdGEsIE5TRGF0YSAqaGFzaCwgQXR0ZXN0YXRpb25DYWxsYmFjayYmKSBjb25zdCBm
aW5hbDsKICAgICB2b2lkIGZpbHRlclJlc3BvbnNlcyhIYXNoU2V0PFJlZjxXZWJDb3JlOjpBdXRo
ZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U+PiYpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxD
b25uZWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
TW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLm1tCmluZGV4IGI1Y2FkMDdjMTY3NWMyY2NkYjgxMmZj
MWM3NTE3MzY2YjlmYTgxMTEuLjNkNWQ0MDEzMDRiN2M5Y2VjZDg5MjlhY2IzYWNmOTNhNTBkN2Ri
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW0KQEAgLTQ0LDcg
KzQ0LDcgQEAgTW9ja0xvY2FsQ29ubmVjdGlvbjo6TW9ja0xvY2FsQ29ubmVjdGlvbihjb25zdCBX
ZWJDb3JlOjpNb2NrV2ViQXV0aGVudGljYXRpb25Db24KIHsKIH0KIAotdm9pZCBNb2NrTG9jYWxD
b25uZWN0aW9uOjp2ZXJpZnlVc2VyKFNlY0FjY2Vzc0NvbnRyb2xSZWYsIFVzZXJWZXJpZmljYXRp
b25DYWxsYmFjayYmIGNhbGxiYWNrKSBjb25zdAordm9pZCBNb2NrTG9jYWxDb25uZWN0aW9uOjp2
ZXJpZnlVc2VyKGNvbnN0IFN0cmluZyYsIFNlY0FjY2Vzc0NvbnRyb2xSZWYsIFVzZXJWZXJpZmlj
YXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKSBjb25zdAogewogICAgIC8vIE1vY2sgYXN5bmMgb3Bl
cmF0aW9ucy4KICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NvbmZpZ3VyYXRpb24gPSBt
X2NvbmZpZ3VyYXRpb24sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393687</attachid>
            <date>2020-03-16 14:54:03 -0700</date>
            <delta_ts>2020-03-20 00:22:44 -0700</delta_ts>
            <desc>Part 2</desc>
            <filename>bug-208703-20200316145403.patch</filename>
            <type>text/plain</type>
            <size>11571</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZmZGNmOTAwM2YwZWQ5
ZTVkOWI0ZjFiNTYyODdmNWFiZjIzM2Q4ZC4uYmZkYjY3YzhkZjg3ZDhjMmQzNjc5NzZkNWUxZDg0
YzM2MThhZmQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTAzLTE2ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBDdXN0
b21pemUgYSBiaXQgbW9yZSBvbiB0aGUgbWFjT1MgTG9jYWxBdXRoZW50aWNhdGlvbiBwcm9tcHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODcwMwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjAxMzY5NzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFydCAyLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
YWRkcyBhIGRpZmZlcmVudCBMb2NhbEF1dGhlbnRpY2F0aW9uIHByb21wdCB0aXRsZSBmb3IgZ2V0
QXNzZXJ0aW9uLgorCisgICAgICAgICogZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmdldEFzc2VydGlvblRvdWNoSURQcm9tcHRUaXRsZSk6CisgICAgICAgICogcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5oOgorCiAyMDIwLTAzLTE2ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2Fy
ZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgQ29sb3IgUGlja2VyIGNyYXNoZXMgb24gdG91Y2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggMjM2MTdkYjFkNDFlNDNiOTY0MTBmZmQ0YzBmZTdiZjA0OTNhMzZmYi4uMTAw
MzJhNGRmYWZmYmE1ODcwYjgyZTliMTgzMDMxNmExMTM2NjZhOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNSBAQAorMjAyMC0wMy0xNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgor
CisgICAgICAgIFtXZWJBdXRobl0gQ3VzdG9taXplIGEgYml0IG1vcmUgb24gdGhlIG1hY09TIExv
Y2FsQXV0aGVudGljYXRpb24gcHJvbXB0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDg3MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwMTM2OTc0
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhcnQg
Mi4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBkaWZmZXJlbnQgTG9jYWxBdXRoZW50aWNh
dGlvbiBwcm9tcHQgdGl0bGUgZm9yIGdldEFzc2VydGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW06CisgICAgICAg
IChXZWJLaXQ6OkxvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVy
RGVjaWRlUG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxBdXRoZW50aWNhdG9yOjpjb250
aW51ZUdldEFzc2VydGlvbkFmdGVyUmVzcG9uc2VTZWxlY3RlZCk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24ubW06Cisg
ICAgICAgIChXZWJLaXQ6OkxvY2FsQ29ubmVjdGlvbjo6dmVyaWZ5VXNlciBjb25zdCk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2Nh
bENvbm5lY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6Ok1vY2tMb2NhbENvbm5lY3Rpb246OnZl
cmlmeVVzZXIgY29uc3QpOgorCiAyMDIwLTAzLTE2ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIEFjY2Vzc2liaWxpdHkgc2FuZGJveCByZWdy
ZXNzaW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUu
c3RyaW5ncyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKaW5k
ZXggYjg3NTIwNTZmNGQzMDA5NmU1ZDE2YWJhYmMzMTQwOTg0N2E3NzU3Ni4uYzBlNjgxMDZjZmIz
YWIwYzc3NDdlZjE5MzQ1MWNlNjg0YTYwNmRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncworKysgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJv
ai9Mb2NhbGl6YWJsZS5zdHJpbmdzCkBAIC04ODksNiArODg5LDkgQEAKIC8qIEFsbG93IHVzaW5n
IFRvdWNoIElEIHRvIHNpZ24gaW50byB0aGUgc3BlY2lmaWVkIHdlYnNpdGUgb24gdGhpcyBkZXZp
Y2UgKi8KICJUb3VjaCBJRCB0byBhbGxvdyBzaWduaW5nIGludG8g4oCcJUDigJ0gd2l0aCBUb3Vj
aCBJRC4iID0gIlRvdWNoIElEIHRvIGFsbG93IHNpZ25pbmcgaW50byDigJwlQOKAnSB3aXRoIFRv
dWNoIElELiI7CiAKKy8qIEFsbG93IHVzaW5nIFRvdWNoIElEIHRvIHNpZ24gaW50byB0aGUgc3Bl
Y2lmaWVkIHdlYnNpdGUgd2l0aCB0aGUgc3BlY2lmaWVkIHVzZXJuYW1lICovCisiVG91Y2ggSUQg
dG8gc2lnbiBpbnRvIOKAnCVA4oCdIHdpdGgg4oCcJUDigJ0uIiA9ICJUb3VjaCBJRCB0byBzaWdu
IGludG8g4oCcJUDigJ0gd2l0aCDigJwlQOKAnS4iOworCiAvKiBUcmFuc2Zvcm1hdGlvbnMgY29u
dGV4dCBzdWItbWVudSBpdGVtICovCiAiVHJhbnNmb3JtYXRpb25zIiA9ICJUcmFuc2Zvcm1hdGlv
bnMiOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJp
bmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCmlu
ZGV4IDRiYmZhMTM3MDVkY2VmODNlMzU1YjA3NjY0ZTVkODk3MDMxM2M3ZDkuLmE2NmE0OTQwZmZj
MDBkNjNmMTZmOTE4NWY0OGU2OTM5ZmMwNDk4ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC0xMjE4LDYgKzEyMTgsMTEgQEAgU3RyaW5nIG1h
a2VDcmVkZW50aWFsVG91Y2hJRFByb21wdFRpdGxlKGNvbnN0IFN0cmluZyYgZG9tYWluKQogICAg
IHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HKCJUb3VjaCBJRCB0
byBhbGxvdyBzaWduaW5nIGludG8g4oCcJUDigJ0gd2l0aCBUb3VjaCBJRC4iLCAiQWxsb3cgdXNp
bmcgVG91Y2ggSUQgdG8gc2lnbiBpbnRvIHRoZSBzcGVjaWZpZWQgd2Vic2l0ZSBvbiB0aGlzIGRl
dmljZSIpLCBkb21haW4uY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CiB9CiAKK1N0cmluZyBnZXRB
c3NlcnRpb25Ub3VjaElEUHJvbXB0VGl0bGUoY29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0
cmluZyYgdXNlcm5hbWUpCit7CisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJf
VUlfQ0ZTVFJJTkcoIlRvdWNoIElEIHRvIHNpZ24gaW50byDigJwlQOKAnSB3aXRoIOKAnCVA4oCd
LiIsICJBbGxvdyB1c2luZyBUb3VjaCBJRCB0byBzaWduIGludG8gdGhlIHNwZWNpZmllZCB3ZWJz
aXRlIHdpdGggdGhlIHNwZWNpZmllZCB1c2VybmFtZSIpLCBkb21haW4uY3JlYXRlQ0ZTdHJpbmco
KS5nZXQoKSwgdXNlcm5hbWUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7Cit9CisKIFN0cmluZyBi
aW9tZXRyaWNGYWxsYmFja1Byb21wdFRpdGxlKCkKIHsKICAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiRW50ZXIgcGFzc2NvZGUgdG8gc2lnbiBpbnRvIHRoaXMgd2Vic2l0ZS4iLCAiVXNlIHBhc3Nj
b2RlIGFzIGEgZmFsbGJhY2sgdG8gc2lnbiBpbnRvIHRoaXMgd2Vic2l0ZSIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCmluZGV4IDkzYmM4ZDU2NDExNTg4YmJm
NzZhZGU3Y2IxZGQ4NTdlYTc2MjRkYzcuLjNjZmU5ZWRmM2Q2NThjMzIyNDI5ZWQ5Mzg4YWM1MDUw
ZGI2ODQ3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0
cmluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgK
QEAgLTM0Miw2ICszNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKFdFQl9B
VVRITikKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgZ2VuZXJpY1RvdWNoSURQcm9tcHRUaXRs
ZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBtYWtlQ3JlZGVudGlhbFRvdWNoSURQcm9t
cHRUaXRsZShjb25zdCBTdHJpbmcmIGRvbWFpbik7CisgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5n
IGdldEFzc2VydGlvblRvdWNoSURQcm9tcHRUaXRsZShjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29u
c3QgU3RyaW5nJiB1c2VybmFtZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGJpb21ldHJp
Y0ZhbGxiYWNrUHJvbXB0VGl0bGUoKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3Iu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2Nh
bEF1dGhlbnRpY2F0b3IubW0KaW5kZXggZTRhZDU4YzliMzBlZWMwNWEzM2NjMjY5MzJmY2VmYTE3
NGZmNzI4Ni4uYTcyNzIyMzcwYThhZGI0NzkzN2VkZjAzNGI3YmI5NGFlZjlmZWMwMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9j
YWxBdXRoZW50aWNhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQpAQCAtMjYzLDcgKzI2Myw3IEBA
IHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJEZWNp
ZGVQb2xpY3koTG9jYWxBdXRoZW50aWNhCiAKICAgICAgICAgd2Vha1RoaXMtPmNvbnRpbnVlTWFr
ZUNyZWRlbnRpYWxBZnRlclVzZXJWZXJpZmljYXRpb24oYWNjZXNzQ29udHJvbC5nZXQoKSwgdmVy
aWZpY2F0aW9uLCBjb250ZXh0KTsKICAgICB9OwotICAgIG1fY29ubmVjdGlvbi0+dmVyaWZ5VXNl
cihjcmVhdGlvbk9wdGlvbnMucnAuaWQsIGFjY2Vzc0NvbnRyb2xSZWYsIFdURk1vdmUoY2FsbGJh
Y2spKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnZlcmlmeVVzZXIoY3JlYXRpb25PcHRpb25zLnJwLmlk
LCBTdHJpbmcoKSwgYWNjZXNzQ29udHJvbFJlZiwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2
b2lkIExvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyVXNlclZl
cmlmaWNhdGlvbihTZWNBY2Nlc3NDb250cm9sUmVmIGFjY2Vzc0NvbnRyb2xSZWYsIExvY2FsQ29u
bmVjdGlvbjo6VXNlclZlcmlmaWNhdGlvbiB2ZXJpZmljYXRpb24sIExBQ29udGV4dCAqY29udGV4
dCkKQEAgLTQ4MSw2ICs0ODEsNyBAQCB2b2lkIExvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVH
ZXRBc3NlcnRpb25BZnRlclJlc3BvbnNlU2VsZWN0ZWQoUmVmPFdlYkNvcmU6OgogICAgIGF1dG8m
IHJlcXVlc3RPcHRpb25zID0gV1RGOjpnZXQ8UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zPihyZXF1ZXN0RGF0YSgpLm9wdGlvbnMpOwogCiAgICAgYXV0byBhY2Nlc3NDb250cm9sUmVm
ID0gcmVzcG9uc2UtPmFjY2Vzc0NvbnRyb2woKTsKKyAgICBhdXRvJiB1c2VybmFtZSA9IHJlc3Bv
bnNlLT5uYW1lKCk7CiAgICAgYXV0byBjYWxsYmFjayA9IFsKICAgICAgICAgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyksCiAgICAgICAgIHJlc3BvbnNlID0gV1RGTW92ZShyZXNwb25zZSkK
QEAgLTQ5MSw3ICs0OTIsNyBAQCB2b2lkIExvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRB
c3NlcnRpb25BZnRlclJlc3BvbnNlU2VsZWN0ZWQoUmVmPFdlYkNvcmU6OgogCiAgICAgICAgIHdl
YWtUaGlzLT5jb250aW51ZUdldEFzc2VydGlvbkFmdGVyVXNlclZlcmlmaWNhdGlvbihXVEZNb3Zl
KHJlc3BvbnNlKSwgdmVyaWZpY2F0aW9uLCBjb250ZXh0KTsKICAgICB9OwotICAgIG1fY29ubmVj
dGlvbi0+dmVyaWZ5VXNlcihyZXF1ZXN0T3B0aW9ucy5ycElkLCBhY2Nlc3NDb250cm9sUmVmLCBX
VEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgbV9jb25uZWN0aW9uLT52ZXJpZnlVc2VyKHJlcXVlc3RP
cHRpb25zLnJwSWQsIHVzZXJuYW1lLCBhY2Nlc3NDb250cm9sUmVmLCBXVEZNb3ZlKGNhbGxiYWNr
KSk7CiB9CiAKIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldEFzc2VydGlvbkFm
dGVyVXNlclZlcmlmaWNhdGlvbihSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJl
c3BvbnNlPiYmIHJlc3BvbnNlLCBMb2NhbENvbm5lY3Rpb246OlVzZXJWZXJpZmljYXRpb24gdmVy
aWZpY2F0aW9uLCBMQUNvbnRleHQgKmNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29ubmVj
dGlvbi5oCmluZGV4IDY1ODQwYmU4ZDZkMTIzMGIxNDAwNmJiNDc0ZDcwNzIyNjhmOWViZTYuLjYy
N2ZhZWYxODFhMDMzN2U4NDQ1YzdlMjE5M2ZhNDczYzA5ZDE1MjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29h
L0xvY2FsQ29ubmVjdGlvbi5oCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5Mb2NhbENvbm5lY3Rpb24oKSA9IGRlZmF1bHQ7CiAKICAgICAvLyBPdmVycmlkZWQgYnkgTW9j
a0xvY2FsQ29ubmVjdGlvbi4KLSAgICB2aXJ0dWFsIHZvaWQgdmVyaWZ5VXNlcihjb25zdCBTdHJp
bmcmIHJwSWQsIFNlY0FjY2Vzc0NvbnRyb2xSZWYsIFVzZXJWZXJpZmljYXRpb25DYWxsYmFjayYm
KSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgdmVyaWZ5VXNlcihjb25zdCBTdHJpbmcmIHJwSWQs
IGNvbnN0IFN0cmluZyYgdXNlcm5hbWUsIFNlY0FjY2Vzc0NvbnRyb2xSZWYsIFVzZXJWZXJpZmlj
YXRpb25DYWxsYmFjayYmKSBjb25zdDsKICAgICB2aXJ0dWFsIFJldGFpblB0cjxTZWNLZXlSZWY+
IGNyZWF0ZUNyZWRlbnRpYWxQcml2YXRlS2V5KExBQ29udGV4dCAqLCBTZWNBY2Nlc3NDb250cm9s
UmVmLCBjb25zdCBTdHJpbmcmIHNlY0F0dHJMYWJlbCwgTlNEYXRhICpzZWNBdHRyQXBwbGljYXRp
b25UYWcpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBnZXRBdHRlc3RhdGlvbihTZWNLZXlSZWYs
IE5TRGF0YSAqYXV0aERhdGEsIE5TRGF0YSAqaGFzaCwgQXR0ZXN0YXRpb25DYWxsYmFjayYmKSBj
b25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZmlsdGVyUmVzcG9uc2VzKEhhc2hTZXQ8UmVmPFdlYkNv
cmU6OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4+JikgY29uc3QgeyB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9j
YWxDb25uZWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLm1tCmluZGV4IGExNTU1YzY4MDIxODBiNDI4ZmZmM2Zm
YTBlZmVjYmNlYTE2NTVmYzcuLjMzNzY3ODQ2OTM2M2VlZTkzMjQ2NTY5Y2IxYmM3ZWI4MTNiOGFk
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0NvY29hL0xvY2FsQ29ubmVjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24ubW0KQEAgLTQwLDcgKzQwLDcg
QEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgTG9jYWxDb25uZWN0aW9uOjp2ZXJpZnlV
c2VyKGNvbnN0IFN0cmluZyYgcnBJZCwgU2VjQWNjZXNzQ29udHJvbFJlZiBhY2Nlc3NDb250cm9s
LCBVc2VyVmVyaWZpY2F0aW9uQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKK3Zv
aWQgTG9jYWxDb25uZWN0aW9uOjp2ZXJpZnlVc2VyKGNvbnN0IFN0cmluZyYgcnBJZCwgY29uc3Qg
U3RyaW5nJiB1c2VybmFtZSwgU2VjQWNjZXNzQ29udHJvbFJlZiBhY2Nlc3NDb250cm9sLCBVc2Vy
VmVyaWZpY2F0aW9uQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKIHsKICAgICBh
dXRvIGNvbnRleHQgPSBhZG9wdE5TKFthbGxvY0xBQ29udGV4dEluc3RhbmNlKCkgaW5pdF0pOwog
CkBAIC00OSw4ICs0OSwxMiBAQCB2b2lkIExvY2FsQ29ubmVjdGlvbjo6dmVyaWZ5VXNlcihjb25z
dCBTdHJpbmcmIHJwSWQsIFNlY0FjY2Vzc0NvbnRyb2xSZWYgYWNjZXNzQwogI2lmIFBMQVRGT1JN
KElPUykKICAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0OldlYkNvcmU6OmdlbmVyaWNUb3VjaElE
UHJvbXB0VGl0bGUoKSBmb3JLZXk6QChMQU9wdGlvbkF1dGhlbnRpY2F0aW9uVGl0bGUpXTsKICAg
ICAgICAgQVNTRVJUX1VOVVNFRChycElkLCBycElkKTsKLSNlbHNlCi0gICAgICAgIFtvcHRpb25z
IHNldE9iamVjdDpXZWJDb3JlOjptYWtlQ3JlZGVudGlhbFRvdWNoSURQcm9tcHRUaXRsZShycElk
KSBmb3JLZXk6QChMQU9wdGlvbkF1dGhlbnRpY2F0aW9uVGl0bGUpXTsKKyNlbGlmIFBMQVRGT1JN
KE1BQykKKyAgICAgICAgLy8gQSBiaXQgaGFja3kgdG8gdXNlIHVzZXJuYW1lIHRvIGRpc3Rpbmd1
aXNoIG1ha2VDcmVkZW50aWFsL2dldEFzc2VydGlvbi4KKyAgICAgICAgaWYgKCF1c2VybmFtZSkK
KyAgICAgICAgICAgIFtvcHRpb25zIHNldE9iamVjdDpXZWJDb3JlOjptYWtlQ3JlZGVudGlhbFRv
dWNoSURQcm9tcHRUaXRsZShycElkKSBmb3JLZXk6QChMQU9wdGlvbkF1dGhlbnRpY2F0aW9uVGl0
bGUpXTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0OldlYkNv
cmU6OmdldEFzc2VydGlvblRvdWNoSURQcm9tcHRUaXRsZShycElkLCB1c2VybmFtZSkgZm9yS2V5
OkAoTEFPcHRpb25BdXRoZW50aWNhdGlvblRpdGxlKV07CiAjZW5kaWYKICAgICAgICAgW29wdGlv
bnMgc2V0T2JqZWN0OkBOTyBmb3JLZXk6QChMQU9wdGlvbkZhbGxiYWNrVmlzaWJsZSldOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLmgKaW5kZXggMDEyZWRiOWYy
MTg2YjE1ZTIzMGRkYzM1YmFkNDc4NjUzOTYxNDZlNi4uOWUzNWI1YTc2OTYwMmZhZjRlOGQyZmM5
NGUwNmYxMWU1M2E0YWNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9u
LmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IE1vY2tMb2NhbENvbm5l
Y3Rpb24oY29uc3QgV2ViQ29yZTo6TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbiYp
OwogCiBwcml2YXRlOgotICAgIHZvaWQgdmVyaWZ5VXNlcihjb25zdCBTdHJpbmcmLCBTZWNBY2Nl
c3NDb250cm9sUmVmLCBVc2VyVmVyaWZpY2F0aW9uQ2FsbGJhY2smJikgY29uc3QgZmluYWw7Cisg
ICAgdm9pZCB2ZXJpZnlVc2VyKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFNlY0FjY2Vz
c0NvbnRyb2xSZWYsIFVzZXJWZXJpZmljYXRpb25DYWxsYmFjayYmKSBjb25zdCBmaW5hbDsKICAg
ICBSZXRhaW5QdHI8U2VjS2V5UmVmPiBjcmVhdGVDcmVkZW50aWFsUHJpdmF0ZUtleShMQUNvbnRl
eHQgKiwgU2VjQWNjZXNzQ29udHJvbFJlZiwgY29uc3QgU3RyaW5nJiBzZWNBdHRyTGFiZWwsIE5T
RGF0YSAqc2VjQXR0ckFwcGxpY2F0aW9uVGFnKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGdldEF0
dGVzdGF0aW9uKFNlY0tleVJlZiwgTlNEYXRhICphdXRoRGF0YSwgTlNEYXRhICpoYXNoLCBBdHRl
c3RhdGlvbkNhbGxiYWNrJiYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgZmlsdGVyUmVzcG9uc2Vz
KEhhc2hTZXQ8UmVmPFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4+Jikg
Y29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW0KaW5k
ZXggM2Q1ZDQwMTMwNGI3YzljZWNkODkyOWFjYjNhY2Y5M2E1MGQ3ZGJjOC4uZmUxYmViODFkZTVh
MWNjYzUyMzEwZDc3ZDc4NjlkMmZhZjJlMmMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xv
Y2FsQ29ubmVjdGlvbi5tbQpAQCAtNDQsNyArNDQsNyBAQCBNb2NrTG9jYWxDb25uZWN0aW9uOjpN
b2NrTG9jYWxDb25uZWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok1vY2tXZWJBdXRoZW50aWNhdGlvbkNv
bgogewogfQogCi12b2lkIE1vY2tMb2NhbENvbm5lY3Rpb246OnZlcmlmeVVzZXIoY29uc3QgU3Ry
aW5nJiwgU2VjQWNjZXNzQ29udHJvbFJlZiwgVXNlclZlcmlmaWNhdGlvbkNhbGxiYWNrJiYgY2Fs
bGJhY2spIGNvbnN0Cit2b2lkIE1vY2tMb2NhbENvbm5lY3Rpb246OnZlcmlmeVVzZXIoY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgU2VjQWNjZXNzQ29udHJvbFJlZiwgVXNlclZlcmlmaWNh
dGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spIGNvbnN0CiB7CiAgICAgLy8gTW9jayBhc3luYyBvcGVy
YXRpb25zLgogICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29uZmlndXJhdGlvbiA9IG1f
Y29uZmlndXJhdGlvbiwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsK
</data>
<flag name="review"
          id="409078"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394070</attachid>
            <date>2020-03-20 00:22:20 -0700</date>
            <delta_ts>2020-03-22 20:56:04 -0700</delta_ts>
            <desc>Part 2</desc>
            <filename>bug-208703-20200320002219.patch</filename>
            <type>text/plain</type>
            <size>18747</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZmZGNmOTAwM2YwZWQ5
ZTVkOWI0ZjFiNTYyODdmNWFiZjIzM2Q4ZC4uNTVmMDMxYjdkYTdmNTJjZDRlYTdjNjgyZWE2ODcz
NGMwZGM1MzVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTAzLTE2ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBDdXN0
b21pemUgYSBiaXQgbW9yZSBvbiB0aGUgbWFjT1MgTG9jYWxBdXRoZW50aWNhdGlvbiBwcm9tcHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODcwMwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjAxMzY5NzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFydCAyLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
YWRkcyBhIGRpZmZlcmVudCBMb2NhbEF1dGhlbnRpY2F0aW9uIHByb21wdCB0aXRsZSBmb3IgZ2V0
QXNzZXJ0aW9uLgorICAgICAgICBBbmQgdHVuZXMgYSBiaXQgb24gdGhlIG1ha2VDcmVkZW50aWFs
IHN0cmluZy4KKworICAgICAgICAqIGVuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6CisgICAg
ICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpn
ZXRBc3NlcnRpb25Ub3VjaElEUHJvbXB0VGl0bGUpOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaDoKKwogMjAyMC0wMy0xNiAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRu
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENvbG9yIFBpY2tlciBjcmFzaGVzIG9uIHRvdWNoCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDIzNjE3ZGIxZDQxZTQzYjk2NDEwZmZkNGMwZmU3YmYwNDkzYTM2ZmIuLmJkOGM5
ZGYyZmY1MzY5NmUwNDIzNTZjZjllZWNhNDhjN2I2ZTY3NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjYgQEAKKzIwMjAtMDMtMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbV2ViQXV0aG5dIEN1c3RvbWl6ZSBhIGJpdCBtb3JlIG9uIHRoZSBtYWNPUyBMb2Nh
bEF1dGhlbnRpY2F0aW9uIHByb21wdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4NzAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDEzNjk3ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXJ0IDIu
CisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGEgZGlmZmVyZW50IExvY2FsQXV0aGVudGljYXRp
b24gcHJvbXB0IHRpdGxlIGZvciBnZXRBc3NlcnRpb24uCisgICAgICAgIEFuZCB0dW5lcyBhIGJp
dCBvbiB0aGUgbWFrZUNyZWRlbnRpYWwgc3RyaW5nLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbToKKyAgICAgICAgKFdl
YktpdDo6TG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJEZWNp
ZGVQb2xpY3kpOgorICAgICAgICAoV2ViS2l0OjpMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVl
R2V0QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVNlbGVjdGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlvbi5tbToKKyAgICAg
ICAgKFdlYktpdDo6TG9jYWxDb25uZWN0aW9uOjp2ZXJpZnlVc2VyIGNvbnN0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29u
bmVjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6TW9ja0xvY2FsQ29ubmVjdGlvbjo6dmVyaWZ5
VXNlciBjb25zdCk6CisKIDIwMjAtMDMtMTYgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQWNjZXNzaWJpbGl0eSBzYW5kYm94IHJlZ3Jlc3Np
b25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJp
bmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwppbmRleCBi
ODc1MjA1NmY0ZDMwMDk2ZTVkMTZhYmFiYzMxNDA5ODQ3YTc3NTc2Li44M2JjYTllYTA1MDk1YWY5
NTMxMTFkZTE1ZTUwMTYyZTIzNTAwOGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lbi5s
cHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xv
Y2FsaXphYmxlLnN0cmluZ3MKQEAgLTEsMyArMSw5IEBACisvKiBBbGxvdyB0aGUgc3BlY2lmaWVk
IGJ1bmRsZSB0byB1c2UgVG91Y2ggSUQgdG8gc2lnbiBpbiB0byB0aGUgc3BlY2lmaWVkIHdlYnNp
dGUgb24gdGhpcyBkZXZpY2UgKi8KKyLigJwlQOKAnSB3b3VsZCBsaWtlIHRvIHVzZSBUb3VjaCBJ
RCBmb3Ig4oCcJUDigJ0uIiA9ICLigJwlQOKAnSB3b3VsZCBsaWtlIHRvIHVzZSBUb3VjaCBJRCBm
b3Ig4oCcJUDigJ0uIjsKKworLyogIkFsbG93IHRoZSBzcGVjaWZpZWQgYnVuZGxlIHRvIHNpZ24g
aW4gdG8gdGhlIHNwZWNpZmllZCB3ZWJzaXRlICovCisi4oCcJUDigJ0gd291bGQgbGlrZSB0byBz
aWduIGluIHRvIOKAnCVA4oCdLiIgPSAi4oCcJUDigJ0gd291bGQgbGlrZSB0byBzaWduIGluIHRv
IOKAnCVA4oCdLiI7CisKIC8qIGFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBtZWRpYSBjb250
cm9sbGVyIHRpbWUgdmFsdWUgPj0gMSBkYXkgKi8KICIlMSRkIGRheXMgJTIkZCBob3VycyAlMyRk
IG1pbnV0ZXMgJTQkZCBzZWNvbmRzIiA9ICIlMSRkIGRheXMgJTIkZCBob3VycyAlMyRkIG1pbnV0
ZXMgJTQkZCBzZWNvbmRzIjsKIApAQCAtODgzLDEyICs4ODksNiBAQAogLyogcHJvbXB0IHN0cmlu
ZyBpbiBhdXRoZW50aWNhdGlvbiBwYW5lbCAqLwogIlRvIHZpZXcgdGhpcyBwYWdlLCB5b3UgbXVz
dCBsb2cgaW4gdG8gdGhpcyBhcmVhIG9uICVAOiIgPSAiVG8gdmlldyB0aGlzIHBhZ2UsIHlvdSBt
dXN0IGxvZyBpbiB0byB0aGlzIGFyZWEgb24gJUA6IjsKIAotLyogVXNlIFRvdWNoIElEIHRvIHNp
Z24gaW50byB0aGlzIHdlYnNpdGUgKi8KLSJUb3VjaCBJRCB0byBzaWduIGludG8gdGhpcyB3ZWJz
aXRlLiIgPSAiVG91Y2ggSUQgdG8gc2lnbiBpbnRvIHRoaXMgd2Vic2l0ZS4iOwotCi0vKiBBbGxv
dyB1c2luZyBUb3VjaCBJRCB0byBzaWduIGludG8gdGhlIHNwZWNpZmllZCB3ZWJzaXRlIG9uIHRo
aXMgZGV2aWNlICovCi0iVG91Y2ggSUQgdG8gYWxsb3cgc2lnbmluZyBpbnRvIOKAnCVA4oCdIHdp
dGggVG91Y2ggSUQuIiA9ICJUb3VjaCBJRCB0byBhbGxvdyBzaWduaW5nIGludG8g4oCcJUDigJ0g
d2l0aCBUb3VjaCBJRC4iOwotCiAvKiBUcmFuc2Zvcm1hdGlvbnMgY29udGV4dCBzdWItbWVudSBp
dGVtICovCiAiVHJhbnNmb3JtYXRpb25zIiA9ICJUcmFuc2Zvcm1hdGlvbnMiOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IDRiYmZhMTM3MDVk
Y2VmODNlMzU1YjA3NjY0ZTVkODk3MDMxM2M3ZDkuLjBhZjY5NWQyOGYxYTJlMDdiN2UwODdlN2Rl
YmJlMGQyOGNlMTY4N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0
cmluZ3MuY3BwCkBAIC0xMjA4LDE0ICsxMjA4LDE0IEBAIFN0cmluZyB1bmFjY2VwdGFibGVUTFND
ZXJ0aWZpY2F0ZSgpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCi1TdHJpbmcgZ2Vu
ZXJpY1RvdWNoSURQcm9tcHRUaXRsZSgpCitTdHJpbmcgbWFrZUNyZWRlbnRpYWxUb3VjaElEUHJv
bXB0VGl0bGUoY29uc3QgU3RyaW5nJiBidW5kbGVOYW1lLCBjb25zdCBTdHJpbmcmIGRvbWFpbikK
IHsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiVG91Y2ggSUQgdG8gc2lnbiBpbnRvIHRoaXMg
d2Vic2l0ZS4iLCAiVXNlIFRvdWNoIElEIHRvIHNpZ24gaW50byB0aGlzIHdlYnNpdGUiKTsKKyAg
ICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9DRlNUUklORygi4oCcJUDigJ0g
d291bGQgbGlrZSB0byB1c2UgVG91Y2ggSUQgZm9yIOKAnCVA4oCdLiIsICJBbGxvdyB0aGUgc3Bl
Y2lmaWVkIGJ1bmRsZSB0byB1c2UgVG91Y2ggSUQgdG8gc2lnbiBpbiB0byB0aGUgc3BlY2lmaWVk
IHdlYnNpdGUgb24gdGhpcyBkZXZpY2UiKSwgYnVuZGxlTmFtZS5jcmVhdGVDRlN0cmluZygpLmdl
dCgpLCBkb21haW4uY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CiB9CiAKLVN0cmluZyBtYWtlQ3Jl
ZGVudGlhbFRvdWNoSURQcm9tcHRUaXRsZShjb25zdCBTdHJpbmcmIGRvbWFpbikKK1N0cmluZyBn
ZXRBc3NlcnRpb25Ub3VjaElEUHJvbXB0VGl0bGUoY29uc3QgU3RyaW5nJiBidW5kbGVOYW1lLCBj
b25zdCBTdHJpbmcmIGRvbWFpbikKIHsKLSAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5n
KFdFQl9VSV9DRlNUUklORygiVG91Y2ggSUQgdG8gYWxsb3cgc2lnbmluZyBpbnRvIOKAnCVA4oCd
IHdpdGggVG91Y2ggSUQuIiwgIkFsbG93IHVzaW5nIFRvdWNoIElEIHRvIHNpZ24gaW50byB0aGUg
c3BlY2lmaWVkIHdlYnNpdGUgb24gdGhpcyBkZXZpY2UiKSwgZG9tYWluLmNyZWF0ZUNGU3RyaW5n
KCkuZ2V0KCkpOworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX0NGU1RS
SU5HKCLigJwlQOKAnSB3b3VsZCBsaWtlIHRvIHNpZ24gaW4gdG8g4oCcJUDigJ0uIiwgIkFsbG93
IHRoZSBzcGVjaWZpZWQgYnVuZGxlIHRvIHNpZ24gaW4gdG8gdGhlIHNwZWNpZmllZCB3ZWJzaXRl
IiksIGJ1bmRsZU5hbWUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgZG9tYWluLmNyZWF0ZUNGU3Ry
aW5nKCkuZ2V0KCkpOwogfQogCiBTdHJpbmcgYmlvbWV0cmljRmFsbGJhY2tQcm9tcHRUaXRsZSgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKaW5kZXggOTNiYzhk
NTY0MTE1ODhiYmY3NmFkZTdjYjFkZDg1N2VhNzYyNGRjNy4uNjgzOGU4N2UyMGFlMmU1NjgxZWJj
OWYwNmI5ZDRmODE5MzM5NDU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TG9jYWxpemVkU3RyaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXpl
ZFN0cmluZ3MuaApAQCAtMzQwLDggKzM0MCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgZ2Vu
ZXJpY1RvdWNoSURQcm9tcHRUaXRsZSgpOwotICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBtYWtl
Q3JlZGVudGlhbFRvdWNoSURQcm9tcHRUaXRsZShjb25zdCBTdHJpbmcmIGRvbWFpbik7CisgICAg
V0VCQ09SRV9FWFBPUlQgU3RyaW5nIG1ha2VDcmVkZW50aWFsVG91Y2hJRFByb21wdFRpdGxlKGNv
bnN0IFN0cmluZyYgYnVuZGxlTmFtZSwgY29uc3QgU3RyaW5nJiBkb21haW4pOworICAgIFdFQkNP
UkVfRVhQT1JUIFN0cmluZyBnZXRBc3NlcnRpb25Ub3VjaElEUHJvbXB0VGl0bGUoY29uc3QgU3Ry
aW5nJiBidW5kbGVOYW1lLCBjb25zdCBTdHJpbmcmIGRvbWFpbik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgU3RyaW5nIGJpb21ldHJpY0ZhbGxiYWNrUHJvbXB0VGl0bGUoKTsKICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dAppbmRleCBjM2UzODc0ZDE0ODAyMjhhMDliNTNhZDNlZGRhNjZmYjMzZWRjMmYyLi41YTNk
ZDY2NjM1ZDE3MTZiMDQ2NDQwNDRlMDVkYjlhYzEwOWY3MTIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTQ3
MSw2ICs0NzEsNyBAQCBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1h
bmFnZXIuY3BwCiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvclRyYW5z
cG9ydFNlcnZpY2UuY3BwCiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRv
ci5jcHAKIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JQcm94eS5jcHAKK1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNh
dGlvblJlcXVlc3REYXRhLmNwcAogCiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2ViRGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmNwcAogVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhUmVjb3JkLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIu
Y3BwCmluZGV4IDk3NzgzNzUxN2UxNzA4YmYyYWE1NTFmZTY0ZDZhMjU0MDNjZGFhYWEuLmYyMzMz
NjFjZmVhODQ2ZThlYWNhMjExOWMyNjYxNjZjODhkMmNiN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50
aWNhdG9yTWFuYWdlci5jcHAKQEAgLTE0MywxMyArMTQzLDYgQEAgc3RhdGljIFN0cmluZyBnZXRS
cElkKGNvbnN0IFZhcmlhbnQ8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucywgUHVi
bGljS2UKICAgICByZXR1cm4gV1RGOjpnZXQ8UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zPihvcHRpb25zKS5ycElkOwogfQogCi1zdGF0aWMgQ2xpZW50RGF0YVR5cGUgZ2V0Q2xpZW50
RGF0YVR5cGUoY29uc3QgVmFyaWFudDxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
LCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+JiBvcHRpb25zKQotewotICAgIGlm
IChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnM+KG9wdGlvbnMpKQotICAgICAgICByZXR1cm4gQ2xpZW50RGF0YVR5cGU6OkNyZWF0ZTsKLSAg
ICByZXR1cm4gQ2xpZW50RGF0YVR5cGU6OkdldDsKLX0KLQogfSAvLyBuYW1lc3BhY2UKIAogY29u
c3Qgc2l6ZV90IEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjptYXhUcmFuc3BvcnROdW1iZXIgPSAzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29j
b2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCmluZGV4IGU0YWQ1OGM5YjMw
ZWVjMDVhMzNjYzI2OTMyZmNlZmExNzRmZjcyODYuLjhhYTYxNDUxZDMwZTE4NmMyNzBlNmExNWJk
Y2Y4NmY2OTk5ODhmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3Iu
bW0KQEAgLTI2Myw3ICsyNjMsNyBAQCB2b2lkIExvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVN
YWtlQ3JlZGVudGlhbEFmdGVyRGVjaWRlUG9saWN5KExvY2FsQXV0aGVudGljYQogCiAgICAgICAg
IHdlYWtUaGlzLT5jb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJVc2VyVmVyaWZpY2F0aW9uKGFj
Y2Vzc0NvbnRyb2wuZ2V0KCksIHZlcmlmaWNhdGlvbiwgY29udGV4dCk7CiAgICAgfTsKLSAgICBt
X2Nvbm5lY3Rpb24tPnZlcmlmeVVzZXIoY3JlYXRpb25PcHRpb25zLnJwLmlkLCBhY2Nlc3NDb250
cm9sUmVmLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgbV9jb25uZWN0aW9uLT52ZXJpZnlVc2Vy
KGNyZWF0aW9uT3B0aW9ucy5ycC5pZCwgZ2V0Q2xpZW50RGF0YVR5cGUocmVxdWVzdERhdGEoKS5v
cHRpb25zKSwgYWNjZXNzQ29udHJvbFJlZiwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lk
IExvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyVXNlclZlcmlm
aWNhdGlvbihTZWNBY2Nlc3NDb250cm9sUmVmIGFjY2Vzc0NvbnRyb2xSZWYsIExvY2FsQ29ubmVj
dGlvbjo6VXNlclZlcmlmaWNhdGlvbiB2ZXJpZmljYXRpb24sIExBQ29udGV4dCAqY29udGV4dCkK
QEAgLTQ5MSw3ICs0OTEsNyBAQCB2b2lkIExvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRB
c3NlcnRpb25BZnRlclJlc3BvbnNlU2VsZWN0ZWQoUmVmPFdlYkNvcmU6OgogCiAgICAgICAgIHdl
YWtUaGlzLT5jb250aW51ZUdldEFzc2VydGlvbkFmdGVyVXNlclZlcmlmaWNhdGlvbihXVEZNb3Zl
KHJlc3BvbnNlKSwgdmVyaWZpY2F0aW9uLCBjb250ZXh0KTsKICAgICB9OwotICAgIG1fY29ubmVj
dGlvbi0+dmVyaWZ5VXNlcihyZXF1ZXN0T3B0aW9ucy5ycElkLCBhY2Nlc3NDb250cm9sUmVmLCBX
VEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgbV9jb25uZWN0aW9uLT52ZXJpZnlVc2VyKHJlcXVlc3RP
cHRpb25zLnJwSWQsIGdldENsaWVudERhdGFUeXBlKHJlcXVlc3REYXRhKCkub3B0aW9ucyksIGFj
Y2Vzc0NvbnRyb2xSZWYsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAogdm9pZCBMb2NhbEF1dGhl
bnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJVc2VyVmVyaWZpY2F0aW9uKFJlZjxX
ZWJDb3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U+JiYgcmVzcG9uc2UsIExvY2Fs
Q29ubmVjdGlvbjo6VXNlclZlcmlmaWNhdGlvbiB2ZXJpZmljYXRpb24sIExBQ29udGV4dCAqY29u
dGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLmgKaW5kZXggNjU4NDBiZThkNmQx
MjMwYjE0MDA2YmI0NzRkNzA3MjI2OGY5ZWJlNi4uZDkyZTdmYmI5MjRkZThkMzhmMjYyN2QzMzQ1
YTZiNTlkMGI1OTZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLmgKQEAgLTM3
LDYgKzM3LDcgQEAgT0JKQ19DTEFTUyBMQUNvbnRleHQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZTsKK2VudW0gY2xhc3MgQ2xpZW50
RGF0YVR5cGUgOiBib29sOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTYyLDcgKzYzLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgfkxvY2FsQ29ubmVjdGlvbigpID0gZGVmYXVsdDsKIAog
ICAgIC8vIE92ZXJyaWRlZCBieSBNb2NrTG9jYWxDb25uZWN0aW9uLgotICAgIHZpcnR1YWwgdm9p
ZCB2ZXJpZnlVc2VyKGNvbnN0IFN0cmluZyYgcnBJZCwgU2VjQWNjZXNzQ29udHJvbFJlZiwgVXNl
clZlcmlmaWNhdGlvbkNhbGxiYWNrJiYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCB2ZXJpZnlV
c2VyKGNvbnN0IFN0cmluZyYgcnBJZCwgV2ViQ29yZTo6Q2xpZW50RGF0YVR5cGUsIFNlY0FjY2Vz
c0NvbnRyb2xSZWYsIFVzZXJWZXJpZmljYXRpb25DYWxsYmFjayYmKSBjb25zdDsKICAgICB2aXJ0
dWFsIFJldGFpblB0cjxTZWNLZXlSZWY+IGNyZWF0ZUNyZWRlbnRpYWxQcml2YXRlS2V5KExBQ29u
dGV4dCAqLCBTZWNBY2Nlc3NDb250cm9sUmVmLCBjb25zdCBTdHJpbmcmIHNlY0F0dHJMYWJlbCwg
TlNEYXRhICpzZWNBdHRyQXBwbGljYXRpb25UYWcpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBn
ZXRBdHRlc3RhdGlvbihTZWNLZXlSZWYsIE5TRGF0YSAqYXV0aERhdGEsIE5TRGF0YSAqaGFzaCwg
QXR0ZXN0YXRpb25DYWxsYmFjayYmKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZmlsdGVyUmVz
cG9uc2VzKEhhc2hTZXQ8UmVmPFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25z
ZT4+JikgY29uc3QgeyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLm1tCmluZGV4
IGExNTU1YzY4MDIxODBiNDI4ZmZmM2ZmYTBlZmVjYmNlYTE2NTVmYzcuLjk2MTlkMGIwMDlhYjEw
YzYyODVkNjRkZWUzZDExMWI2NzY5M2I3NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlvbi5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5l
Y3Rpb24ubW0KQEAgLTM5LDIzICszOSw1MSBAQAogI2ltcG9ydCAiTG9jYWxBdXRoZW50aWNhdGlv
blNvZnRMaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKLXZvaWQgTG9jYWxDb25uZWN0aW9uOjp2ZXJpZnlVc2VyKGNvbnN0IFN0cmluZyYgcnBJ
ZCwgU2VjQWNjZXNzQ29udHJvbFJlZiBhY2Nlc3NDb250cm9sLCBVc2VyVmVyaWZpY2F0aW9uQ2Fs
bGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKK25hbWVzcGFjZSB7CitzdGF0aWMgU3Ry
aW5nIGJ1bmRsZU5hbWUoKQogewotICAgIGF1dG8gY29udGV4dCA9IGFkb3B0TlMoW2FsbG9jTEFD
b250ZXh0SW5zdGFuY2UoKSBpbml0XSk7CisgICAgU3RyaW5nIGJ1bmRsZU5hbWU7CiAKLSAgICBh
dXRvIG9wdGlvbnMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF0p
OwotICAgIGlmIChbY29udGV4dCBiaW9tZXRyeVR5cGVdID09IExBQmlvbWV0cnlUeXBlVG91Y2hJ
RCkgewogI2lmIFBMQVRGT1JNKElPUykKLSAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0OldlYkNv
cmU6OmdlbmVyaWNUb3VjaElEUHJvbXB0VGl0bGUoKSBmb3JLZXk6QChMQU9wdGlvbkF1dGhlbnRp
Y2F0aW9uVGl0bGUpXTsKLSAgICAgICAgQVNTRVJUX1VOVVNFRChycElkLCBycElkKTsKKyAgICBO
U0J1bmRsZSAqbWFpbkJ1bmRsZSA9IFtOU0J1bmRsZSBtYWluQnVuZGxlXTsKKyAgICBidW5kbGVO
YW1lID0gYXBwQnVuZGxlLmluZm9EaWN0aW9uYXJ5WyhpZClfa0NGQnVuZGxlRGlzcGxheU5hbWVL
ZXldOworICAgIGlmICghYnVuZGxlTmFtZSkKKyAgICAgICAgYnVuZGxlTmFtZSA9IGFwcEJ1bmRs
ZS5pbmZvRGljdGlvbmFyeVsoaWQpa0NGQnVuZGxlTmFtZUtleV07CisgICAgaWYgKCFidW5kbGVO
YW1lKQorICAgICAgICBidW5kbGVOYW1lID0gW21haW5CdW5kbGUgYnVuZGxlSWRlbnRpZmllcl07
CiAjZWxzZQotICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6V2ViQ29yZTo6bWFrZUNyZWRlbnRp
YWxUb3VjaElEUHJvbXB0VGl0bGUocnBJZCkgZm9yS2V5OkAoTEFPcHRpb25BdXRoZW50aWNhdGlv
blRpdGxlKV07CisgICAgYnVuZGxlTmFtZSA9IFtbTlNSdW5uaW5nQXBwbGljYXRpb24gY3VycmVu
dEFwcGxpY2F0aW9uXSBsb2NhbGl6ZWROYW1lXTsKICNlbmRpZgorCisgICAgcmV0dXJuIGJ1bmRs
ZU5hbWU7Cit9Cit9IC8vIG5hbWVzcGFjZQorCit2b2lkIExvY2FsQ29ubmVjdGlvbjo6dmVyaWZ5
VXNlcihjb25zdCBTdHJpbmcmIHJwSWQsIENsaWVudERhdGFUeXBlIHR5cGUsIFNlY0FjY2Vzc0Nv
bnRyb2xSZWYgYWNjZXNzQ29udHJvbCwgVXNlclZlcmlmaWNhdGlvbkNhbGxiYWNrJiYgY29tcGxl
dGlvbkhhbmRsZXIpIGNvbnN0Cit7CisgICAgU3RyaW5nIHRpdGxlOworICAgIHN3aXRjaCAodHlw
ZSkgeworICAgIGNhc2UgQ2xpZW50RGF0YVR5cGU6OkNyZWF0ZToKKyAgICAgICAgdGl0bGUgPSBt
YWtlQ3JlZGVudGlhbFRvdWNoSURQcm9tcHRUaXRsZShidW5kbGVOYW1lKCksIHJwSWQpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIENsaWVudERhdGFUeXBlOjpHZXQ6CisgICAgICAgIHRpdGxl
ID0gZ2V0QXNzZXJ0aW9uVG91Y2hJRFByb21wdFRpdGxlKGJ1bmRsZU5hbWUoKSwgcnBJZCk7Cisg
ICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIH0KKworICAgIGF1dG8gY29udGV4dCA9IGFkb3B0TlMoW2FsbG9jTEFDb250ZXh0SW5z
dGFuY2UoKSBpbml0XSk7CisKKyAgICBhdXRvIG9wdGlvbnMgPSBhZG9wdE5TKFtbTlNNdXRhYmxl
RGljdGlvbmFyeSBhbGxvY10gaW5pdF0pOworICAgIGlmIChbY29udGV4dCBiaW9tZXRyeVR5cGVd
ID09IExBQmlvbWV0cnlUeXBlVG91Y2hJRCkgeworICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6
dGl0bGUgZm9yS2V5OkAoTEFPcHRpb25BdXRoZW50aWNhdGlvblRpdGxlKV07CiAgICAgICAgIFtv
cHRpb25zIHNldE9iamVjdDpATk8gZm9yS2V5OkAoTEFPcHRpb25GYWxsYmFja1Zpc2libGUpXTsK
ICAgICB9CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIFtvcHRpb25zIHNldE9iamVjdDpXZWJDb3Jl
OjpiaW9tZXRyaWNGYWxsYmFja1Byb21wdFRpdGxlKCkgZm9yS2V5OkAoTEFPcHRpb25QYXNzY29k
ZVRpdGxlKV07CisgICAgW29wdGlvbnMgc2V0T2JqZWN0OmJpb21ldHJpY0ZhbGxiYWNrUHJvbXB0
VGl0bGUoKSBmb3JLZXk6QChMQU9wdGlvblBhc3Njb2RlVGl0bGUpXTsKICNlbmRpZgogCiAgICAg
YXV0byByZXBseSA9IG1ha2VCbG9ja1B0cihbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKE5TRGljdGlvbmFyeSAqLCBOU0Vycm9yICplcnJv
cikgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5oCmluZGV4
IDAxMmVkYjlmMjE4NmIxNWUyMzBkZGMzNWJhZDQ3ODY1Mzk2MTQ2ZTYuLjA0N2M2MzJhODYyODdj
MWMwYjU4YzQ4OGM1MjRlYWMyOWJlYzM2MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2Fs
Q29ubmVjdGlvbi5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBNb2Nr
TG9jYWxDb25uZWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZp
Z3VyYXRpb24mKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHZlcmlmeVVzZXIoY29uc3QgU3RyaW5n
JiwgU2VjQWNjZXNzQ29udHJvbFJlZiwgVXNlclZlcmlmaWNhdGlvbkNhbGxiYWNrJiYpIGNvbnN0
IGZpbmFsOworICAgIHZvaWQgdmVyaWZ5VXNlcihjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpDbGll
bnREYXRhVHlwZSwgU2VjQWNjZXNzQ29udHJvbFJlZiwgVXNlclZlcmlmaWNhdGlvbkNhbGxiYWNr
JiYpIGNvbnN0IGZpbmFsOwogICAgIFJldGFpblB0cjxTZWNLZXlSZWY+IGNyZWF0ZUNyZWRlbnRp
YWxQcml2YXRlS2V5KExBQ29udGV4dCAqLCBTZWNBY2Nlc3NDb250cm9sUmVmLCBjb25zdCBTdHJp
bmcmIHNlY0F0dHJMYWJlbCwgTlNEYXRhICpzZWNBdHRyQXBwbGljYXRpb25UYWcpIGNvbnN0IGZp
bmFsOwogICAgIHZvaWQgZ2V0QXR0ZXN0YXRpb24oU2VjS2V5UmVmLCBOU0RhdGEgKmF1dGhEYXRh
LCBOU0RhdGEgKmhhc2gsIEF0dGVzdGF0aW9uQ2FsbGJhY2smJikgY29uc3QgZmluYWw7CiAgICAg
dm9pZCBmaWx0ZXJSZXNwb25zZXMoSGFzaFNldDxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvckFz
c2VydGlvblJlc3BvbnNlPj4mKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xv
Y2FsQ29ubmVjdGlvbi5tbQppbmRleCAzZDVkNDAxMzA0YjdjOWNlY2Q4OTI5YWNiM2FjZjkzYTUw
ZDdkYmM4Li43NDg4N2YxNzIzNGNhYzc3M2FhMTI1MWI3ODA1MDRhYWZjZjVhYjQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tM
b2NhbENvbm5lY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLm1tCkBAIC00NCw3ICs0NCw3IEBAIE1v
Y2tMb2NhbENvbm5lY3Rpb246Ok1vY2tMb2NhbENvbm5lY3Rpb24oY29uc3QgV2ViQ29yZTo6TW9j
a1dlYkF1dGhlbnRpY2F0aW9uQ29uCiB7CiB9CiAKLXZvaWQgTW9ja0xvY2FsQ29ubmVjdGlvbjo6
dmVyaWZ5VXNlcihjb25zdCBTdHJpbmcmLCBTZWNBY2Nlc3NDb250cm9sUmVmLCBVc2VyVmVyaWZp
Y2F0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykgY29uc3QKK3ZvaWQgTW9ja0xvY2FsQ29ubmVjdGlv
bjo6dmVyaWZ5VXNlcihjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpDbGllbnREYXRhVHlwZSwgU2Vj
QWNjZXNzQ29udHJvbFJlZiwgVXNlclZlcmlmaWNhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spIGNv
bnN0CiB7CiAgICAgLy8gTW9jayBhc3luYyBvcGVyYXRpb25zLgogICAgIFJ1bkxvb3A6Om1haW4o
KS5kaXNwYXRjaChbY29uZmlndXJhdGlvbiA9IG1fY29uZmlndXJhdGlvbiwgY2FsbGJhY2sgPSBX
VEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVu
dGljYXRpb25SZXF1ZXN0RGF0YS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzBlOTM3MTM0ZGQwMzE4ODEzOGJh
Yzk4NmVmOTEyZjc3N2EyZmNjOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuY3Bw
CkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oIgorCisjaWYgRU5BQkxFKFdFQl9B
VVRITikKKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
Q2xpZW50RGF0YVR5cGUgZ2V0Q2xpZW50RGF0YVR5cGUoY29uc3QgVmFyaWFudDxQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnM+JiBvcHRpb25zKQoreworICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFB1YmxpY0tl
eUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+KG9wdGlvbnMpKQorICAgICAgICByZXR1cm4gQ2xp
ZW50RGF0YVR5cGU6OkNyZWF0ZTsKKyAgICByZXR1cm4gQ2xpZW50RGF0YVR5cGU6OkdldDsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2Vi
QXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oCmluZGV4IDhlZGIz
OWMxMDVlMjNmZmRkYTA4Yjg2MDFmODUxZmY2MTg4MDVhYjEuLjJmNjEzNDUzZWUzNGQ0YWU3YWM3
YTY3ZTI4ZmFjNjU2MDgxN2U0ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlv
blJlcXVlc3REYXRhLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0dsb2Jh
bEZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHVibGljS2V5Q3JlZGVudGlh
bENyZWF0aW9uT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHVibGljS2V5Q3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdXRoZW50aWNhdGlvbkNv
bnN0YW50cy5oPgogI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CkBAIC01MSw2ICs1Miw4IEBAIHN0cnVjdCBX
ZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhIHsKICAgICBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEg
ZnJhbWVJbmZvOwogfTsKIAorV2ViQ29yZTo6Q2xpZW50RGF0YVR5cGUgZ2V0Q2xpZW50RGF0YVR5
cGUoY29uc3QgVmFyaWFudDxXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zLCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+Jik7CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394239</attachid>
            <date>2020-03-22 20:56:51 -0700</date>
            <delta_ts>2020-03-22 21:01:22 -0700</delta_ts>
            <desc>Part 2</desc>
            <filename>bug-208703-20200322205650.patch</filename>
            <type>text/plain</type>
            <size>21379</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZmZGNmOTAwM2YwZWQ5
ZTVkOWI0ZjFiNTYyODdmNWFiZjIzM2Q4ZC4uMTA3OWRiNGFhMDA1YjM5OTcwODcwNTc2ZWVlYTJm
MGM3ZDg1ZmE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAzLTE2ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBDdXN0
b21pemUgYSBiaXQgbW9yZSBvbiB0aGUgbWFjT1MgTG9jYWxBdXRoZW50aWNhdGlvbiBwcm9tcHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODcwMwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjAxMzY5NzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFydCAyLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
YWRkcyBhIGRpZmZlcmVudCBMb2NhbEF1dGhlbnRpY2F0aW9uIHByb21wdCB0aXRsZSBmb3IgZ2V0
QXNzZXJ0aW9uLgorICAgICAgICBBbmQgdHVuZXMgYSBiaXQgb24gdGhlIG1ha2VDcmVkZW50aWFs
IHN0cmluZy4KKworICAgICAgICBCZXNpZGVzIHRoYXQsIGl0IGFsc28gZW5oYW5jZXMgdGhlIGlP
UyB0aXRsZXMgYXMgd2VsbC4KKworICAgICAgICAqIGVuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmlu
Z3M6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpnZXRBc3NlcnRpb25Ub3VjaElEUHJvbXB0VGl0bGUpOgorICAgICAgICAqIHBsYXRm
b3JtL0xvY2FsaXplZFN0cmluZ3MuaDoKKwogMjAyMC0wMy0xNiAgTWVnYW4gR2FyZG5lciAgPG1l
Z2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENvbG9yIFBpY2tlciBjcmFzaGVzIG9u
IHRvdWNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDIzNjE3ZGIxZDQxZTQzYjk2NDEwZmZkNGMwZmU3YmYwNDkzYTM2
ZmIuLmE2YTY2MjgxYTg1OTg3Njk1NTdlZWJhNzU1MmQ0YWM3MDQxZjNiZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjggQEAKKzIwMjAtMDMtMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxl
LmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIEN1c3RvbWl6ZSBhIGJpdCBtb3JlIG9uIHRoZSBt
YWNPUyBMb2NhbEF1dGhlbnRpY2F0aW9uIHByb21wdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NzAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82
MDEzNjk3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBQYXJ0IDIuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGEgZGlmZmVyZW50IExvY2FsQXV0
aGVudGljYXRpb24gcHJvbXB0IHRpdGxlIGZvciBnZXRBc3NlcnRpb24uCisgICAgICAgIEFuZCB0
dW5lcyBhIGJpdCBvbiB0aGUgbWFrZUNyZWRlbnRpYWwgc3RyaW5nLgorCisgICAgICAgIEJlc2lk
ZXMgdGhhdCwgaXQgYWxzbyBlbmhhbmNlcyB0aGUgaU9TIHRpdGxlcyBhcyB3ZWxsLgorCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRv
ci5tbToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VD
cmVkZW50aWFsQWZ0ZXJEZWNpZGVQb2xpY3kpOgorICAgICAgICAoV2ViS2l0OjpMb2NhbEF1dGhl
bnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVNlbGVjdGVkKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9u
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29u
bmVjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxDb25uZWN0aW9uOjp2ZXJpZnlVc2Vy
IGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2Nr
TG9jYWxDb25uZWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6TW9ja0xvY2Fs
Q29ubmVjdGlvbjo6dmVyaWZ5VXNlciBjb25zdCk6CisKIDIwMjAtMDMtMTYgIFBlciBBcm5lIFZv
bGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQWNjZXNzaWJpbGl0
eSBzYW5kYm94IHJlZ3Jlc3Npb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJv
ai9Mb2NhbGl6YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFi
bGUuc3RyaW5ncwppbmRleCBiODc1MjA1NmY0ZDMwMDk2ZTVkMTZhYmFiYzMxNDA5ODQ3YTc3NTc2
Li40YzkwYTU0MzUzODYzOWYwZDczMjM2MjA2NzUwZmM4MDMwZGFhMWI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTEsMyArMSw5IEBACisvKiBB
bGxvdyB0aGUgc3BlY2lmaWVkIGJ1bmRsZSB0byB1c2UgVG91Y2ggSUQgdG8gc2lnbiBpbiB0byB0
aGUgc3BlY2lmaWVkIHdlYnNpdGUgb24gdGhpcyBkZXZpY2UgKi8KKyLigJwlQOKAnSB3b3VsZCBs
aWtlIHRvIHVzZSBUb3VjaCBJRCBmb3Ig4oCcJUDigJ0uIiA9ICLigJwlQOKAnSB3b3VsZCBsaWtl
IHRvIHVzZSBUb3VjaCBJRCBmb3Ig4oCcJUDigJ0uIjsKKworLyogIkFsbG93IHRoZSBzcGVjaWZp
ZWQgYnVuZGxlIHRvIHNpZ24gaW4gdG8gdGhlIHNwZWNpZmllZCB3ZWJzaXRlICovCisi4oCcJUDi
gJ0gd291bGQgbGlrZSB0byBzaWduIGluIHRvIOKAnCVA4oCdLiIgPSAi4oCcJUDigJ0gd291bGQg
bGlrZSB0byBzaWduIGluIHRvIOKAnCVA4oCdLiI7CisKIC8qIGFjY2Vzc2liaWxpdHkgaGVscCB0
ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPj0gMSBkYXkgKi8KICIlMSRkIGRh
eXMgJTIkZCBob3VycyAlMyRkIG1pbnV0ZXMgJTQkZCBzZWNvbmRzIiA9ICIlMSRkIGRheXMgJTIk
ZCBob3VycyAlMyRkIG1pbnV0ZXMgJTQkZCBzZWNvbmRzIjsKIApAQCAtMzEzLDkgKzMxOSw2IEBA
CiAvKiBWaWRlbyBFbnRlciBGdWxsIFNjcmVlbiBjb250ZXh0IG1lbnUgaXRlbSAqLwogIkVudGVy
IEZ1bGwgU2NyZWVuIiA9ICJFbnRlciBGdWxsIFNjcmVlbiI7CiAKLS8qIFVzZSBwYXNzY29kZSBh
cyBhIGZhbGxiYWNrIHRvIHNpZ24gaW50byB0aGlzIHdlYnNpdGUgKi8KLSJFbnRlciBwYXNzY29k
ZSB0byBzaWduIGludG8gdGhpcyB3ZWJzaXRlLiIgPSAiRW50ZXIgcGFzc2NvZGUgdG8gc2lnbiBp
bnRvIHRoaXMgd2Vic2l0ZS4iOwotCiAvKiBtZW51IGl0ZW0gKi8KICJFbnRlciBQaWN0dXJlIGlu
IFBpY3R1cmUiID0gIkVudGVyIFBpY3R1cmUgaW4gUGljdHVyZSI7CiAKQEAgLTg2NSw2ICs4Njgs
OSBAQAogLyogVW53YW50ZWQgc29mdHdhcmUgd2FybmluZyAqLwogIlRoaXMgd2Vic2l0ZSBtYXkg
dHJ5IHRvIHRyaWNrIHlvdSBpbnRvIGluc3RhbGxpbmcgc29mdHdhcmUgdGhhdCBoYXJtcyB5b3Vy
IGJyb3dzaW5nIGV4cGVyaWVuY2UsIGxpa2UgY2hhbmdpbmcgeW91ciBzZXR0aW5ncyB3aXRob3V0
IHlvdXIgcGVybWlzc2lvbiBvciBzaG93aW5nIHlvdSB1bndhbnRlZCBhZHMuIE9uY2UgaW5zdGFs
bGVkLCBpdCBtYXkgYmUgZGlmZmljdWx0IHRvIHJlbW92ZS4iID0gIlRoaXMgd2Vic2l0ZSBtYXkg
dHJ5IHRvIHRyaWNrIHlvdSBpbnRvIGluc3RhbGxpbmcgc29mdHdhcmUgdGhhdCBoYXJtcyB5b3Vy
IGJyb3dzaW5nIGV4cGVyaWVuY2UsIGxpa2UgY2hhbmdpbmcgeW91ciBzZXR0aW5ncyB3aXRob3V0
IHlvdXIgcGVybWlzc2lvbiBvciBzaG93aW5nIHlvdSB1bndhbnRlZCBhZHMuIE9uY2UgaW5zdGFs
bGVkLCBpdCBtYXkgYmUgZGlmZmljdWx0IHRvIHJlbW92ZS4iOwogCisvKiBUaGlzIHdlYnNpdGUg
d291bGQgbGlrZSB0byB1c2UgVG91Y2ggSUQgKi8KKyJUaGlzIHdlYnNpdGUgd291bGQgbGlrZSB0
byB1c2UgVG91Y2ggSUQuIiA9ICJUaGlzIHdlYnNpdGUgd291bGQgbGlrZSB0byB1c2UgVG91Y2gg
SUQuIjsKKwogLyogSW5mb3JtYXRpdmUgdGV4dCBmb3IgcmVxdWVzdGluZyBjcm9zcy1zaXRlIGNv
b2tpZSBhbmQgd2Vic2l0ZSBkYXRhIGFjY2Vzcy4gKi8KICJUaGlzIHdpbGwgYWxsb3cg4oCcJUDi
gJ0gdG8gdHJhY2sgeW91ciBhY3Rpdml0eS4iID0gIlRoaXMgd2lsbCBhbGxvdyDigJwlQOKAnSB0
byB0cmFjayB5b3VyIGFjdGl2aXR5LiI7CiAKQEAgLTg4MywxMSArODg5LDggQEAKIC8qIHByb21w
dCBzdHJpbmcgaW4gYXV0aGVudGljYXRpb24gcGFuZWwgKi8KICJUbyB2aWV3IHRoaXMgcGFnZSwg
eW91IG11c3QgbG9nIGluIHRvIHRoaXMgYXJlYSBvbiAlQDoiID0gIlRvIHZpZXcgdGhpcyBwYWdl
LCB5b3UgbXVzdCBsb2cgaW4gdG8gdGhpcyBhcmVhIG9uICVAOiI7CiAKLS8qIFVzZSBUb3VjaCBJ
RCB0byBzaWduIGludG8gdGhpcyB3ZWJzaXRlICovCi0iVG91Y2ggSUQgdG8gc2lnbiBpbnRvIHRo
aXMgd2Vic2l0ZS4iID0gIlRvdWNoIElEIHRvIHNpZ24gaW50byB0aGlzIHdlYnNpdGUuIjsKLQot
LyogQWxsb3cgdXNpbmcgVG91Y2ggSUQgdG8gc2lnbiBpbnRvIHRoZSBzcGVjaWZpZWQgd2Vic2l0
ZSBvbiB0aGlzIGRldmljZSAqLwotIlRvdWNoIElEIHRvIGFsbG93IHNpZ25pbmcgaW50byDigJwl
QOKAnSB3aXRoIFRvdWNoIElELiIgPSAiVG91Y2ggSUQgdG8gYWxsb3cgc2lnbmluZyBpbnRvIOKA
nCVA4oCdIHdpdGggVG91Y2ggSUQuIjsKKy8qIFVzZSBUb3VjaCBJRCB0byBzaWduIGluIHRvIHRo
aXMgd2Vic2l0ZSAqLworIlRvdWNoIElEIHRvIHNpZ24gaW4gdG8gdGhpcyB3ZWJzaXRlLiIgPSAi
VG91Y2ggSUQgdG8gc2lnbiBpbiB0byB0aGlzIHdlYnNpdGUuIjsKIAogLyogVHJhbnNmb3JtYXRp
b25zIGNvbnRleHQgc3ViLW1lbnUgaXRlbSAqLwogIlRyYW5zZm9ybWF0aW9ucyIgPSAiVHJhbnNm
b3JtYXRpb25zIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXpl
ZFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5j
cHAKaW5kZXggNGJiZmExMzcwNWRjZWY4M2UzNTViMDc2NjRlNWQ4OTcwMzEzYzdkOS4uYTkwZjg4
MjM5ZWQ5MDc3NjcyMjg4MTViOTI2MTY3ODgxMjJjYTQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTEyMDgsMjAgKzEyMDgsMjkgQEAgU3Ry
aW5nIHVuYWNjZXB0YWJsZVRMU0NlcnRpZmljYXRlKCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdF
Ql9BVVRITikKLVN0cmluZyBnZW5lcmljVG91Y2hJRFByb21wdFRpdGxlKCkKKy8vIE9uIG1hY09T
LCBUb3VjaCBJRCBwcm9tcHQgaXMgbm90IGd1YXJhbnRlZWQgdG8gc2hvdyBvbiB0b3Agb2YgdGhl
IFVJIGNsaWVudCwgYW5kIHRoZXJlZm9yZSBhZGRpdGlvbmFsCisvLyBpbmZvcm1hdGlvbiBpcyBw
cm92aWRlZCB0byBoZWxwIHVzZXJzIHRvIG1ha2UgZGVjaXNpb25zLgorI2lmIFBMQVRGT1JNKE1B
QykKK1N0cmluZyBtYWtlQ3JlZGVudGlhbFRvdWNoSURQcm9tcHRUaXRsZShjb25zdCBTdHJpbmcm
IGJ1bmRsZU5hbWUsIGNvbnN0IFN0cmluZyYgZG9tYWluKQogewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJUb3VjaCBJRCB0byBzaWduIGludG8gdGhpcyB3ZWJzaXRlLiIsICJVc2UgVG91Y2gg
SUQgdG8gc2lnbiBpbnRvIHRoaXMgd2Vic2l0ZSIpOworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6
ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HKCLigJwlQOKAnSB3b3VsZCBsaWtlIHRvIHVzZSBUb3Vj
aCBJRCBmb3Ig4oCcJUDigJ0uIiwgIkFsbG93IHRoZSBzcGVjaWZpZWQgYnVuZGxlIHRvIHVzZSBU
b3VjaCBJRCB0byBzaWduIGluIHRvIHRoZSBzcGVjaWZpZWQgd2Vic2l0ZSBvbiB0aGlzIGRldmlj
ZSIpLCBidW5kbGVOYW1lLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGRvbWFpbi5jcmVhdGVDRlN0
cmluZygpLmdldCgpKTsKIH0KIAotU3RyaW5nIG1ha2VDcmVkZW50aWFsVG91Y2hJRFByb21wdFRp
dGxlKGNvbnN0IFN0cmluZyYgZG9tYWluKQorU3RyaW5nIGdldEFzc2VydGlvblRvdWNoSURQcm9t
cHRUaXRsZShjb25zdCBTdHJpbmcmIGJ1bmRsZU5hbWUsIGNvbnN0IFN0cmluZyYgZG9tYWluKQog
ewotICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HKCJUb3Vj
aCBJRCB0byBhbGxvdyBzaWduaW5nIGludG8g4oCcJUDigJ0gd2l0aCBUb3VjaCBJRC4iLCAiQWxs
b3cgdXNpbmcgVG91Y2ggSUQgdG8gc2lnbiBpbnRvIHRoZSBzcGVjaWZpZWQgd2Vic2l0ZSBvbiB0
aGlzIGRldmljZSIpLCBkb21haW4uY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CisgICAgcmV0dXJu
IGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfQ0ZTVFJJTkcoIuKAnCVA4oCdIHdvdWxkIGxp
a2UgdG8gc2lnbiBpbiB0byDigJwlQOKAnS4iLCAiQWxsb3cgdGhlIHNwZWNpZmllZCBidW5kbGUg
dG8gc2lnbiBpbiB0byB0aGUgc3BlY2lmaWVkIHdlYnNpdGUiKSwgYnVuZGxlTmFtZS5jcmVhdGVD
RlN0cmluZygpLmdldCgpLCBkb21haW4uY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7Cit9CisjZWxz
ZQorU3RyaW5nIG1ha2VDcmVkZW50aWFsVG91Y2hJRFByb21wdFRpdGxlKGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlRoaXMgd2Vic2l0
ZSB3b3VsZCBsaWtlIHRvIHVzZSBUb3VjaCBJRC4iLCAiVGhpcyB3ZWJzaXRlIHdvdWxkIGxpa2Ug
dG8gdXNlIFRvdWNoIElEIik7CiB9CiAKLVN0cmluZyBiaW9tZXRyaWNGYWxsYmFja1Byb21wdFRp
dGxlKCkKK1N0cmluZyBnZXRBc3NlcnRpb25Ub3VjaElEUHJvbXB0VGl0bGUoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJikKIHsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRW50ZXIgcGFz
c2NvZGUgdG8gc2lnbiBpbnRvIHRoaXMgd2Vic2l0ZS4iLCAiVXNlIHBhc3Njb2RlIGFzIGEgZmFs
bGJhY2sgdG8gc2lnbiBpbnRvIHRoaXMgd2Vic2l0ZSIpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJUb3VjaCBJRCB0byBzaWduIGluIHRvIHRoaXMgd2Vic2l0ZS4iLCAiVXNlIFRvdWNoIElE
IHRvIHNpZ24gaW4gdG8gdGhpcyB3ZWJzaXRlIik7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvLyBQTEFU
Rk9STShNQUMpCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCmluZGV4
IDkzYmM4ZDU2NDExNTg4YmJmNzZhZGU3Y2IxZGQ4NTdlYTc2MjRkYzcuLjcxNjAwYzE2ODQ5YjFh
Nzg4YjI0OWQ1MjNjYWNlMTdmNDQzNzM4ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
b2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTM0MCw5ICszNDAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0gICAgV0VCQ09SRV9FWFBPUlQgU3Ry
aW5nIGdlbmVyaWNUb3VjaElEUHJvbXB0VGl0bGUoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBTdHJp
bmcgbWFrZUNyZWRlbnRpYWxUb3VjaElEUHJvbXB0VGl0bGUoY29uc3QgU3RyaW5nJiBkb21haW4p
OwotICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBiaW9tZXRyaWNGYWxsYmFja1Byb21wdFRpdGxl
KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIG1ha2VDcmVkZW50aWFsVG91Y2hJRFByb21w
dFRpdGxlKGNvbnN0IFN0cmluZyYgYnVuZGxlTmFtZSwgY29uc3QgU3RyaW5nJiBkb21haW4pOwor
ICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBnZXRBc3NlcnRpb25Ub3VjaElEUHJvbXB0VGl0bGUo
Y29uc3QgU3RyaW5nJiBidW5kbGVOYW1lLCBjb25zdCBTdHJpbmcmIGRvbWFpbik7CiAjZW5kaWYK
IAogI2lmIFVTRShHTElCKSAmJiBkZWZpbmVkKEdFVFRFWFRfUEFDS0FHRSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cmlu
ZGV4IGMzZTM4NzRkMTQ4MDIyOGEwOWI1M2FkM2VkZGE2NmZiMzNlZGMyZjIuLjVhM2RkNjY2MzVk
MTcxNmIwNDY0NDA0NGUwNWRiOWFjMTA5ZjcxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNDcxLDYgKzQ3
MSw3IEBAIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5j
cHAKIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yVHJhbnNwb3J0U2Vy
dmljZS5jcHAKIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmNwcAog
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclBy
b3h5LmNwcAorVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVx
dWVzdERhdGEuY3BwCiAKIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJEZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuY3BwCiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFSZWNvcmQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKaW5k
ZXggOTc3ODM3NTE3ZTE3MDhiZjJhYTU1MWZlNjRkNmEyNTQwM2NkYWFhYS4uZjIzMzM2MWNmZWE4
NDZlOGVhY2EyMTE5YzI2NjE2NmM4OGQyY2I3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JN
YW5hZ2VyLmNwcApAQCAtMTQzLDEzICsxNDMsNiBAQCBzdGF0aWMgU3RyaW5nIGdldFJwSWQoY29u
c3QgVmFyaWFudDxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLCBQdWJsaWNLZQog
ICAgIHJldHVybiBXVEY6OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+KG9w
dGlvbnMpLnJwSWQ7CiB9CiAKLXN0YXRpYyBDbGllbnREYXRhVHlwZSBnZXRDbGllbnREYXRhVHlw
ZShjb25zdCBWYXJpYW50PFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMsIFB1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4mIG9wdGlvbnMpCi17Ci0gICAgaWYgKFdURjo6
aG9sZHNfYWx0ZXJuYXRpdmU8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucz4ob3B0
aW9ucykpCi0gICAgICAgIHJldHVybiBDbGllbnREYXRhVHlwZTo6Q3JlYXRlOwotICAgIHJldHVy
biBDbGllbnREYXRhVHlwZTo6R2V0OwotfQotCiB9IC8vIG5hbWVzcGFjZQogCiBjb25zdCBzaXpl
X3QgQXV0aGVudGljYXRvck1hbmFnZXI6Om1heFRyYW5zcG9ydE51bWJlciA9IDM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2Nh
bEF1dGhlbnRpY2F0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KaW5kZXggZTRhZDU4YzliMzBlZWMwNWEz
M2NjMjY5MzJmY2VmYTE3NGZmNzI4Ni4uOGFhNjE0NTFkMzBlMTg2YzI3MGU2YTE1YmRjZjg2ZjY5
OTk4OGY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQpAQCAt
MjYzLDcgKzI2Myw3IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVk
ZW50aWFsQWZ0ZXJEZWNpZGVQb2xpY3koTG9jYWxBdXRoZW50aWNhCiAKICAgICAgICAgd2Vha1Ro
aXMtPmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlclVzZXJWZXJpZmljYXRpb24oYWNjZXNzQ29u
dHJvbC5nZXQoKSwgdmVyaWZpY2F0aW9uLCBjb250ZXh0KTsKICAgICB9OwotICAgIG1fY29ubmVj
dGlvbi0+dmVyaWZ5VXNlcihjcmVhdGlvbk9wdGlvbnMucnAuaWQsIGFjY2Vzc0NvbnRyb2xSZWYs
IFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnZlcmlmeVVzZXIoY3JlYXRp
b25PcHRpb25zLnJwLmlkLCBnZXRDbGllbnREYXRhVHlwZShyZXF1ZXN0RGF0YSgpLm9wdGlvbnMp
LCBhY2Nlc3NDb250cm9sUmVmLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKIHZvaWQgTG9jYWxB
dXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJVc2VyVmVyaWZpY2F0aW9u
KFNlY0FjY2Vzc0NvbnRyb2xSZWYgYWNjZXNzQ29udHJvbFJlZiwgTG9jYWxDb25uZWN0aW9uOjpV
c2VyVmVyaWZpY2F0aW9uIHZlcmlmaWNhdGlvbiwgTEFDb250ZXh0ICpjb250ZXh0KQpAQCAtNDkx
LDcgKzQ5MSw3IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldEFzc2VydGlv
bkFmdGVyUmVzcG9uc2VTZWxlY3RlZChSZWY8V2ViQ29yZTo6CiAKICAgICAgICAgd2Vha1RoaXMt
PmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJVc2VyVmVyaWZpY2F0aW9uKFdURk1vdmUocmVzcG9u
c2UpLCB2ZXJpZmljYXRpb24sIGNvbnRleHQpOwogICAgIH07Ci0gICAgbV9jb25uZWN0aW9uLT52
ZXJpZnlVc2VyKHJlcXVlc3RPcHRpb25zLnJwSWQsIGFjY2Vzc0NvbnRyb2xSZWYsIFdURk1vdmUo
Y2FsbGJhY2spKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnZlcmlmeVVzZXIocmVxdWVzdE9wdGlvbnMu
cnBJZCwgZ2V0Q2xpZW50RGF0YVR5cGUocmVxdWVzdERhdGEoKS5vcHRpb25zKSwgYWNjZXNzQ29u
dHJvbFJlZiwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIExvY2FsQXV0aGVudGljYXRv
cjo6Y29udGludWVHZXRBc3NlcnRpb25BZnRlclVzZXJWZXJpZmljYXRpb24oUmVmPFdlYkNvcmU6
OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4mJiByZXNwb25zZSwgTG9jYWxDb25uZWN0
aW9uOjpVc2VyVmVyaWZpY2F0aW9uIHZlcmlmaWNhdGlvbiwgTEFDb250ZXh0ICpjb250ZXh0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29j
b2EvTG9jYWxDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24uaAppbmRleCA2NTg0MGJlOGQ2ZDEyMzBiMTQw
MDZiYjQ3NGQ3MDcyMjY4ZjllYmU2Li5hNGEyZjk0NTUwYmYyZDFlNGVkODgxZjZhNDZiYWRmNWFl
ZGMxNDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24uaApAQCAtMzcsNiArMzcs
NyBAQCBPQkpDX0NMQVNTIExBQ29udGV4dDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOworZW51bSBjbGFzcyBDbGllbnREYXRhVHlw
ZSA6IGJvb2w7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTksMTAgKzYwLDExIEBAIHB1
YmxpYzoKICAgICB1c2luZyBVc2VyVmVyaWZpY2F0aW9uQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFVzZXJWZXJpZmljYXRpb24sIExBQ29udGV4dCAqKT47CiAKICAgICBMb2NhbENv
bm5lY3Rpb24oKSA9IGRlZmF1bHQ7CisgICAgLy8gRklYTUUoMTgzNTM0KTogSW52YWxpZGF0ZSB0
aGUgTEFDb250ZXh0LgogICAgIHZpcnR1YWwgfkxvY2FsQ29ubmVjdGlvbigpID0gZGVmYXVsdDsK
IAogICAgIC8vIE92ZXJyaWRlZCBieSBNb2NrTG9jYWxDb25uZWN0aW9uLgotICAgIHZpcnR1YWwg
dm9pZCB2ZXJpZnlVc2VyKGNvbnN0IFN0cmluZyYgcnBJZCwgU2VjQWNjZXNzQ29udHJvbFJlZiwg
VXNlclZlcmlmaWNhdGlvbkNhbGxiYWNrJiYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCB2ZXJp
ZnlVc2VyKGNvbnN0IFN0cmluZyYgcnBJZCwgV2ViQ29yZTo6Q2xpZW50RGF0YVR5cGUsIFNlY0Fj
Y2Vzc0NvbnRyb2xSZWYsIFVzZXJWZXJpZmljYXRpb25DYWxsYmFjayYmKSBjb25zdDsKICAgICB2
aXJ0dWFsIFJldGFpblB0cjxTZWNLZXlSZWY+IGNyZWF0ZUNyZWRlbnRpYWxQcml2YXRlS2V5KExB
Q29udGV4dCAqLCBTZWNBY2Nlc3NDb250cm9sUmVmLCBjb25zdCBTdHJpbmcmIHNlY0F0dHJMYWJl
bCwgTlNEYXRhICpzZWNBdHRyQXBwbGljYXRpb25UYWcpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9p
ZCBnZXRBdHRlc3RhdGlvbihTZWNLZXlSZWYsIE5TRGF0YSAqYXV0aERhdGEsIE5TRGF0YSAqaGFz
aCwgQXR0ZXN0YXRpb25DYWxsYmFjayYmKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZmlsdGVy
UmVzcG9uc2VzKEhhc2hTZXQ8UmVmPFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNw
b25zZT4+JikgY29uc3QgeyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLm1tCmlu
ZGV4IGExNTU1YzY4MDIxODBiNDI4ZmZmM2ZmYTBlZmVjYmNlYTE2NTVmYzcuLmM0NTM3Y2I1MjA1
MjlhYmM5MzE1NjYzZDcwMTQ1MGE1MWYwODNjODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlvbi5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENv
bm5lY3Rpb24ubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVk
U3RyaW5ncy5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9v
cC5oPgorI2ltcG9ydCA8d3RmL3NwaS9jZi9DRkJ1bmRsZVNQSS5oPgogCiAjaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKICNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9Mb2NhbENvbm5lY3Rpb25B
ZGRpdGlvbnMuaD4KQEAgLTM5LDI0ICs0MCw0OSBAQAogI2ltcG9ydCAiTG9jYWxBdXRoZW50aWNh
dGlvblNvZnRMaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKLXZvaWQgTG9jYWxDb25uZWN0aW9uOjp2ZXJpZnlVc2VyKGNvbnN0IFN0cmluZyYg
cnBJZCwgU2VjQWNjZXNzQ29udHJvbFJlZiBhY2Nlc3NDb250cm9sLCBVc2VyVmVyaWZpY2F0aW9u
Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKK25hbWVzcGFjZSB7CitzdGF0aWMg
U3RyaW5nIGJ1bmRsZU5hbWUoKQogewotICAgIGF1dG8gY29udGV4dCA9IGFkb3B0TlMoW2FsbG9j
TEFDb250ZXh0SW5zdGFuY2UoKSBpbml0XSk7CisgICAgU3RyaW5nIGJ1bmRsZU5hbWU7CiAKLSAg
ICBhdXRvIG9wdGlvbnMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5p
dF0pOwotICAgIGlmIChbY29udGV4dCBiaW9tZXRyeVR5cGVdID09IExBQmlvbWV0cnlUeXBlVG91
Y2hJRCkgewogI2lmIFBMQVRGT1JNKElPUykKLSAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0Oldl
YkNvcmU6OmdlbmVyaWNUb3VjaElEUHJvbXB0VGl0bGUoKSBmb3JLZXk6QChMQU9wdGlvbkF1dGhl
bnRpY2F0aW9uVGl0bGUpXTsKLSAgICAgICAgQVNTRVJUX1VOVVNFRChycElkLCBycElkKTsKKyAg
ICBOU0J1bmRsZSAqbWFpbkJ1bmRsZSA9IFtOU0J1bmRsZSBtYWluQnVuZGxlXTsKKyAgICBidW5k
bGVOYW1lID0gbWFpbkJ1bmRsZS5pbmZvRGljdGlvbmFyeVsoaWQpX2tDRkJ1bmRsZURpc3BsYXlO
YW1lS2V5XTsKKyAgICBpZiAoIWJ1bmRsZU5hbWUpCisgICAgICAgIGJ1bmRsZU5hbWUgPSBtYWlu
QnVuZGxlLmluZm9EaWN0aW9uYXJ5WyhpZClrQ0ZCdW5kbGVOYW1lS2V5XTsKKyAgICBpZiAoIWJ1
bmRsZU5hbWUpCisgICAgICAgIGJ1bmRsZU5hbWUgPSBbbWFpbkJ1bmRsZSBidW5kbGVJZGVudGlm
aWVyXTsKICNlbHNlCi0gICAgICAgIFtvcHRpb25zIHNldE9iamVjdDpXZWJDb3JlOjptYWtlQ3Jl
ZGVudGlhbFRvdWNoSURQcm9tcHRUaXRsZShycElkKSBmb3JLZXk6QChMQU9wdGlvbkF1dGhlbnRp
Y2F0aW9uVGl0bGUpXTsKKyAgICBidW5kbGVOYW1lID0gW1tOU1J1bm5pbmdBcHBsaWNhdGlvbiBj
dXJyZW50QXBwbGljYXRpb25dIGxvY2FsaXplZE5hbWVdOwogI2VuZGlmCisKKyAgICByZXR1cm4g
YnVuZGxlTmFtZTsKK30KK30gLy8gbmFtZXNwYWNlCisKK3ZvaWQgTG9jYWxDb25uZWN0aW9uOjp2
ZXJpZnlVc2VyKGNvbnN0IFN0cmluZyYgcnBJZCwgQ2xpZW50RGF0YVR5cGUgdHlwZSwgU2VjQWNj
ZXNzQ29udHJvbFJlZiBhY2Nlc3NDb250cm9sLCBVc2VyVmVyaWZpY2F0aW9uQ2FsbGJhY2smJiBj
b21wbGV0aW9uSGFuZGxlcikgY29uc3QKK3sKKyAgICBTdHJpbmcgdGl0bGU7CisgICAgc3dpdGNo
ICh0eXBlKSB7CisgICAgY2FzZSBDbGllbnREYXRhVHlwZTo6Q3JlYXRlOgorICAgICAgICB0aXRs
ZSA9IG1ha2VDcmVkZW50aWFsVG91Y2hJRFByb21wdFRpdGxlKGJ1bmRsZU5hbWUoKSwgcnBJZCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2xpZW50RGF0YVR5cGU6OkdldDoKKyAgICAgICAg
dGl0bGUgPSBnZXRBc3NlcnRpb25Ub3VjaElEUHJvbXB0VGl0bGUoYnVuZGxlTmFtZSgpLCBycElk
KTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgfQorCisgICAgYXV0byBjb250ZXh0ID0gYWRvcHROUyhbYWxsb2NMQUNvbnRl
eHRJbnN0YW5jZSgpIGluaXRdKTsKKworICAgIGF1dG8gb3B0aW9ucyA9IGFkb3B0TlMoW1tOU011
dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XSk7CisgICAgaWYgKFtjb250ZXh0IGJpb21ldHJ5
VHlwZV0gPT0gTEFCaW9tZXRyeVR5cGVUb3VjaElEKSB7CisgICAgICAgIFtvcHRpb25zIHNldE9i
amVjdDp0aXRsZSBmb3JLZXk6QChMQU9wdGlvbkF1dGhlbnRpY2F0aW9uVGl0bGUpXTsKICAgICAg
ICAgW29wdGlvbnMgc2V0T2JqZWN0OkBOTyBmb3JLZXk6QChMQU9wdGlvbkZhbGxiYWNrVmlzaWJs
ZSldOwogICAgIH0KLSNpZiBQTEFURk9STShJT1MpCi0gICAgW29wdGlvbnMgc2V0T2JqZWN0Oldl
YkNvcmU6OmJpb21ldHJpY0ZhbGxiYWNrUHJvbXB0VGl0bGUoKSBmb3JLZXk6QChMQU9wdGlvblBh
c3Njb2RlVGl0bGUpXTsKLSNlbmRpZgogCiAgICAgYXV0byByZXBseSA9IG1ha2VCbG9ja1B0cihb
Y29udGV4dCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0g
KE5TRGljdGlvbmFyeSAqLCBOU0Vycm9yICplcnJvcikgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VS
VCghUnVuTG9vcDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rp
b24uaAppbmRleCAwMTJlZGI5ZjIxODZiMTVlMjMwZGRjMzViYWQ0Nzg2NTM5NjE0NmU2Li4wNDdj
NjMyYTg2Mjg3YzFjMGI1OGM0ODhjNTI0ZWFjMjliZWMzNjE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2Nr
L01vY2tMb2NhbENvbm5lY3Rpb24uaApAQCAtMzcsNyArMzcsNyBAQCBwdWJsaWM6CiAgICAgZXhw
bGljaXQgTW9ja0xvY2FsQ29ubmVjdGlvbihjb25zdCBXZWJDb3JlOjpNb2NrV2ViQXV0aGVudGlj
YXRpb25Db25maWd1cmF0aW9uJik7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCB2ZXJpZnlVc2VyKGNv
bnN0IFN0cmluZyYsIFNlY0FjY2Vzc0NvbnRyb2xSZWYsIFVzZXJWZXJpZmljYXRpb25DYWxsYmFj
ayYmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHZlcmlmeVVzZXIoY29uc3QgU3RyaW5nJiwgV2Vi
Q29yZTo6Q2xpZW50RGF0YVR5cGUsIFNlY0FjY2Vzc0NvbnRyb2xSZWYsIFVzZXJWZXJpZmljYXRp
b25DYWxsYmFjayYmKSBjb25zdCBmaW5hbDsKICAgICBSZXRhaW5QdHI8U2VjS2V5UmVmPiBjcmVh
dGVDcmVkZW50aWFsUHJpdmF0ZUtleShMQUNvbnRleHQgKiwgU2VjQWNjZXNzQ29udHJvbFJlZiwg
Y29uc3QgU3RyaW5nJiBzZWNBdHRyTGFiZWwsIE5TRGF0YSAqc2VjQXR0ckFwcGxpY2F0aW9uVGFn
KSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGdldEF0dGVzdGF0aW9uKFNlY0tleVJlZiwgTlNEYXRh
ICphdXRoRGF0YSwgTlNEYXRhICpoYXNoLCBBdHRlc3RhdGlvbkNhbGxiYWNrJiYpIGNvbnN0IGZp
bmFsOwogICAgIHZvaWQgZmlsdGVyUmVzcG9uc2VzKEhhc2hTZXQ8UmVmPFdlYkNvcmU6OkF1dGhl
bnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4+JikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENv
bm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9N
b2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW0KaW5kZXggM2Q1ZDQwMTMwNGI3YzljZWNkODkyOWFj
YjNhY2Y5M2E1MGQ3ZGJjOC4uNzQ4ODdmMTcyMzRjYWM3NzNhYTEyNTFiNzgwNTA0YWFmY2Y1YWI0
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
TW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5tbQpAQCAtNDQsNyAr
NDQsNyBAQCBNb2NrTG9jYWxDb25uZWN0aW9uOjpNb2NrTG9jYWxDb25uZWN0aW9uKGNvbnN0IFdl
YkNvcmU6Ok1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbgogewogfQogCi12b2lkIE1vY2tMb2NhbENv
bm5lY3Rpb246OnZlcmlmeVVzZXIoY29uc3QgU3RyaW5nJiwgU2VjQWNjZXNzQ29udHJvbFJlZiwg
VXNlclZlcmlmaWNhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spIGNvbnN0Cit2b2lkIE1vY2tMb2Nh
bENvbm5lY3Rpb246OnZlcmlmeVVzZXIoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6Q2xpZW50RGF0
YVR5cGUsIFNlY0FjY2Vzc0NvbnRyb2xSZWYsIFVzZXJWZXJpZmljYXRpb25DYWxsYmFjayYmIGNh
bGxiYWNrKSBjb25zdAogewogICAgIC8vIE1vY2sgYXN5bmMgb3BlcmF0aW9ucy4KICAgICBSdW5M
b29wOjptYWluKCkuZGlzcGF0Y2goW2NvbmZpZ3VyYXRpb24gPSBtX2NvbmZpZ3VyYXRpb24sIGNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblJl
cXVlc3REYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwZTkzNzEzNGRk
MDMxODgxMzhiYWM5ODZlZjkxMmY3NzdhMmZjYzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVl
c3REYXRhLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaCIKKworI2lmIEVO
QUJMRShXRUJfQVVUSE4pCisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKK0NsaWVudERhdGFUeXBlIGdldENsaWVudERhdGFUeXBlKGNvbnN0IFZhcmlhbnQ8
UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucywgUHVibGljS2V5Q3JlZGVudGlhbFJl
cXVlc3RPcHRpb25zPiYgb3B0aW9ucykKK3sKKyAgICBpZiAoV1RGOjpob2xkc19hbHRlcm5hdGl2
ZTxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zPihvcHRpb25zKSkKKyAgICAgICAg
cmV0dXJuIENsaWVudERhdGFUeXBlOjpDcmVhdGU7CisgICAgcmV0dXJuIENsaWVudERhdGFUeXBl
OjpHZXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFdF
Ql9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaApp
bmRleCA4ZWRiMzljMTA1ZTIzZmZkZGEwOGI4NjAxZjg1MWZmNjE4ODA1YWIxLi4yZjYxMzQ1M2Vl
MzRkNGFlN2FjN2E2N2UyOGZhYzY1NjA4MTdlNGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRh
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0
aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9HbG9iYWxGcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1B1YmxpY0tl
eUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1B1YmxpY0tl
eUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXV0aGVu
dGljYXRpb25Db25zdGFudHMuaD4KICNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAtNTEsNiArNTIsOCBA
QCBzdHJ1Y3QgV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSB7CiAgICAgV2ViS2l0OjpGcmFt
ZUluZm9EYXRhIGZyYW1lSW5mbzsKIH07CiAKK1dlYkNvcmU6OkNsaWVudERhdGFUeXBlIGdldENs
aWVudERhdGFUeXBlKGNvbnN0IFZhcmlhbnQ8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucywgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
PiYpOworCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVU
SE4pCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394240</attachid>
            <date>2020-03-22 21:01:53 -0700</date>
            <delta_ts>2020-03-24 16:01:05 -0700</delta_ts>
            <desc>Part 2</desc>
            <filename>bug-208703-20200322210152.patch</filename>
            <type>text/plain</type>
            <size>20925</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZmZGNmOTAwM2YwZWQ5
ZTVkOWI0ZjFiNTYyODdmNWFiZjIzM2Q4ZC4uMTA3OWRiNGFhMDA1YjM5OTcwODcwNTc2ZWVlYTJm
MGM3ZDg1ZmE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAzLTE2ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBDdXN0
b21pemUgYSBiaXQgbW9yZSBvbiB0aGUgbWFjT1MgTG9jYWxBdXRoZW50aWNhdGlvbiBwcm9tcHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODcwMwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjAxMzY5NzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFydCAyLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
YWRkcyBhIGRpZmZlcmVudCBMb2NhbEF1dGhlbnRpY2F0aW9uIHByb21wdCB0aXRsZSBmb3IgZ2V0
QXNzZXJ0aW9uLgorICAgICAgICBBbmQgdHVuZXMgYSBiaXQgb24gdGhlIG1ha2VDcmVkZW50aWFs
IHN0cmluZy4KKworICAgICAgICBCZXNpZGVzIHRoYXQsIGl0IGFsc28gZW5oYW5jZXMgdGhlIGlP
UyB0aXRsZXMgYXMgd2VsbC4KKworICAgICAgICAqIGVuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmlu
Z3M6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpnZXRBc3NlcnRpb25Ub3VjaElEUHJvbXB0VGl0bGUpOgorICAgICAgICAqIHBsYXRm
b3JtL0xvY2FsaXplZFN0cmluZ3MuaDoKKwogMjAyMC0wMy0xNiAgTWVnYW4gR2FyZG5lciAgPG1l
Z2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENvbG9yIFBpY2tlciBjcmFzaGVzIG9u
IHRvdWNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDIzNjE3ZGIxZDQxZTQzYjk2NDEwZmZkNGMwZmU3YmYwNDkzYTM2
ZmIuLmE2YTY2MjgxYTg1OTg3Njk1NTdlZWJhNzU1MmQ0YWM3MDQxZjNiZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjggQEAKKzIwMjAtMDMtMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxl
LmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIEN1c3RvbWl6ZSBhIGJpdCBtb3JlIG9uIHRoZSBt
YWNPUyBMb2NhbEF1dGhlbnRpY2F0aW9uIHByb21wdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NzAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82
MDEzNjk3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBQYXJ0IDIuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGEgZGlmZmVyZW50IExvY2FsQXV0
aGVudGljYXRpb24gcHJvbXB0IHRpdGxlIGZvciBnZXRBc3NlcnRpb24uCisgICAgICAgIEFuZCB0
dW5lcyBhIGJpdCBvbiB0aGUgbWFrZUNyZWRlbnRpYWwgc3RyaW5nLgorCisgICAgICAgIEJlc2lk
ZXMgdGhhdCwgaXQgYWxzbyBlbmhhbmNlcyB0aGUgaU9TIHRpdGxlcyBhcyB3ZWxsLgorCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRv
ci5tbToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VD
cmVkZW50aWFsQWZ0ZXJEZWNpZGVQb2xpY3kpOgorICAgICAgICAoV2ViS2l0OjpMb2NhbEF1dGhl
bnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVNlbGVjdGVkKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9u
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29u
bmVjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxDb25uZWN0aW9uOjp2ZXJpZnlVc2Vy
IGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2Nr
TG9jYWxDb25uZWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6TW9ja0xvY2Fs
Q29ubmVjdGlvbjo6dmVyaWZ5VXNlciBjb25zdCk6CisKIDIwMjAtMDMtMTYgIFBlciBBcm5lIFZv
bGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQWNjZXNzaWJpbGl0
eSBzYW5kYm94IHJlZ3Jlc3Npb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJv
ai9Mb2NhbGl6YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFi
bGUuc3RyaW5ncwppbmRleCBiODc1MjA1NmY0ZDMwMDk2ZTVkMTZhYmFiYzMxNDA5ODQ3YTc3NTc2
Li40YzkwYTU0MzUzODYzOWYwZDczMjM2MjA2NzUwZmM4MDMwZGFhMWI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTEsMyArMSw5IEBACisvKiBB
bGxvdyB0aGUgc3BlY2lmaWVkIGJ1bmRsZSB0byB1c2UgVG91Y2ggSUQgdG8gc2lnbiBpbiB0byB0
aGUgc3BlY2lmaWVkIHdlYnNpdGUgb24gdGhpcyBkZXZpY2UgKi8KKyLigJwlQOKAnSB3b3VsZCBs
aWtlIHRvIHVzZSBUb3VjaCBJRCBmb3Ig4oCcJUDigJ0uIiA9ICLigJwlQOKAnSB3b3VsZCBsaWtl
IHRvIHVzZSBUb3VjaCBJRCBmb3Ig4oCcJUDigJ0uIjsKKworLyogIkFsbG93IHRoZSBzcGVjaWZp
ZWQgYnVuZGxlIHRvIHNpZ24gaW4gdG8gdGhlIHNwZWNpZmllZCB3ZWJzaXRlICovCisi4oCcJUDi
gJ0gd291bGQgbGlrZSB0byBzaWduIGluIHRvIOKAnCVA4oCdLiIgPSAi4oCcJUDigJ0gd291bGQg
bGlrZSB0byBzaWduIGluIHRvIOKAnCVA4oCdLiI7CisKIC8qIGFjY2Vzc2liaWxpdHkgaGVscCB0
ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPj0gMSBkYXkgKi8KICIlMSRkIGRh
eXMgJTIkZCBob3VycyAlMyRkIG1pbnV0ZXMgJTQkZCBzZWNvbmRzIiA9ICIlMSRkIGRheXMgJTIk
ZCBob3VycyAlMyRkIG1pbnV0ZXMgJTQkZCBzZWNvbmRzIjsKIApAQCAtMzEzLDkgKzMxOSw2IEBA
CiAvKiBWaWRlbyBFbnRlciBGdWxsIFNjcmVlbiBjb250ZXh0IG1lbnUgaXRlbSAqLwogIkVudGVy
IEZ1bGwgU2NyZWVuIiA9ICJFbnRlciBGdWxsIFNjcmVlbiI7CiAKLS8qIFVzZSBwYXNzY29kZSBh
cyBhIGZhbGxiYWNrIHRvIHNpZ24gaW50byB0aGlzIHdlYnNpdGUgKi8KLSJFbnRlciBwYXNzY29k
ZSB0byBzaWduIGludG8gdGhpcyB3ZWJzaXRlLiIgPSAiRW50ZXIgcGFzc2NvZGUgdG8gc2lnbiBp
bnRvIHRoaXMgd2Vic2l0ZS4iOwotCiAvKiBtZW51IGl0ZW0gKi8KICJFbnRlciBQaWN0dXJlIGlu
IFBpY3R1cmUiID0gIkVudGVyIFBpY3R1cmUgaW4gUGljdHVyZSI7CiAKQEAgLTg2NSw2ICs4Njgs
OSBAQAogLyogVW53YW50ZWQgc29mdHdhcmUgd2FybmluZyAqLwogIlRoaXMgd2Vic2l0ZSBtYXkg
dHJ5IHRvIHRyaWNrIHlvdSBpbnRvIGluc3RhbGxpbmcgc29mdHdhcmUgdGhhdCBoYXJtcyB5b3Vy
IGJyb3dzaW5nIGV4cGVyaWVuY2UsIGxpa2UgY2hhbmdpbmcgeW91ciBzZXR0aW5ncyB3aXRob3V0
IHlvdXIgcGVybWlzc2lvbiBvciBzaG93aW5nIHlvdSB1bndhbnRlZCBhZHMuIE9uY2UgaW5zdGFs
bGVkLCBpdCBtYXkgYmUgZGlmZmljdWx0IHRvIHJlbW92ZS4iID0gIlRoaXMgd2Vic2l0ZSBtYXkg
dHJ5IHRvIHRyaWNrIHlvdSBpbnRvIGluc3RhbGxpbmcgc29mdHdhcmUgdGhhdCBoYXJtcyB5b3Vy
IGJyb3dzaW5nIGV4cGVyaWVuY2UsIGxpa2UgY2hhbmdpbmcgeW91ciBzZXR0aW5ncyB3aXRob3V0
IHlvdXIgcGVybWlzc2lvbiBvciBzaG93aW5nIHlvdSB1bndhbnRlZCBhZHMuIE9uY2UgaW5zdGFs
bGVkLCBpdCBtYXkgYmUgZGlmZmljdWx0IHRvIHJlbW92ZS4iOwogCisvKiBUaGlzIHdlYnNpdGUg
d291bGQgbGlrZSB0byB1c2UgVG91Y2ggSUQgKi8KKyJUaGlzIHdlYnNpdGUgd291bGQgbGlrZSB0
byB1c2UgVG91Y2ggSUQuIiA9ICJUaGlzIHdlYnNpdGUgd291bGQgbGlrZSB0byB1c2UgVG91Y2gg
SUQuIjsKKwogLyogSW5mb3JtYXRpdmUgdGV4dCBmb3IgcmVxdWVzdGluZyBjcm9zcy1zaXRlIGNv
b2tpZSBhbmQgd2Vic2l0ZSBkYXRhIGFjY2Vzcy4gKi8KICJUaGlzIHdpbGwgYWxsb3cg4oCcJUDi
gJ0gdG8gdHJhY2sgeW91ciBhY3Rpdml0eS4iID0gIlRoaXMgd2lsbCBhbGxvdyDigJwlQOKAnSB0
byB0cmFjayB5b3VyIGFjdGl2aXR5LiI7CiAKQEAgLTg4MywxMSArODg5LDggQEAKIC8qIHByb21w
dCBzdHJpbmcgaW4gYXV0aGVudGljYXRpb24gcGFuZWwgKi8KICJUbyB2aWV3IHRoaXMgcGFnZSwg
eW91IG11c3QgbG9nIGluIHRvIHRoaXMgYXJlYSBvbiAlQDoiID0gIlRvIHZpZXcgdGhpcyBwYWdl
LCB5b3UgbXVzdCBsb2cgaW4gdG8gdGhpcyBhcmVhIG9uICVAOiI7CiAKLS8qIFVzZSBUb3VjaCBJ
RCB0byBzaWduIGludG8gdGhpcyB3ZWJzaXRlICovCi0iVG91Y2ggSUQgdG8gc2lnbiBpbnRvIHRo
aXMgd2Vic2l0ZS4iID0gIlRvdWNoIElEIHRvIHNpZ24gaW50byB0aGlzIHdlYnNpdGUuIjsKLQot
LyogQWxsb3cgdXNpbmcgVG91Y2ggSUQgdG8gc2lnbiBpbnRvIHRoZSBzcGVjaWZpZWQgd2Vic2l0
ZSBvbiB0aGlzIGRldmljZSAqLwotIlRvdWNoIElEIHRvIGFsbG93IHNpZ25pbmcgaW50byDigJwl
QOKAnSB3aXRoIFRvdWNoIElELiIgPSAiVG91Y2ggSUQgdG8gYWxsb3cgc2lnbmluZyBpbnRvIOKA
nCVA4oCdIHdpdGggVG91Y2ggSUQuIjsKKy8qIFVzZSBUb3VjaCBJRCB0byBzaWduIGluIHRvIHRo
aXMgd2Vic2l0ZSAqLworIlRvdWNoIElEIHRvIHNpZ24gaW4gdG8gdGhpcyB3ZWJzaXRlLiIgPSAi
VG91Y2ggSUQgdG8gc2lnbiBpbiB0byB0aGlzIHdlYnNpdGUuIjsKIAogLyogVHJhbnNmb3JtYXRp
b25zIGNvbnRleHQgc3ViLW1lbnUgaXRlbSAqLwogIlRyYW5zZm9ybWF0aW9ucyIgPSAiVHJhbnNm
b3JtYXRpb25zIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXpl
ZFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5j
cHAKaW5kZXggNGJiZmExMzcwNWRjZWY4M2UzNTViMDc2NjRlNWQ4OTcwMzEzYzdkOS4uYTkwZjg4
MjM5ZWQ5MDc3NjcyMjg4MTViOTI2MTY3ODgxMjJjYTQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTEyMDgsMjAgKzEyMDgsMjkgQEAgU3Ry
aW5nIHVuYWNjZXB0YWJsZVRMU0NlcnRpZmljYXRlKCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdF
Ql9BVVRITikKLVN0cmluZyBnZW5lcmljVG91Y2hJRFByb21wdFRpdGxlKCkKKy8vIE9uIG1hY09T
LCBUb3VjaCBJRCBwcm9tcHQgaXMgbm90IGd1YXJhbnRlZWQgdG8gc2hvdyBvbiB0b3Agb2YgdGhl
IFVJIGNsaWVudCwgYW5kIHRoZXJlZm9yZSBhZGRpdGlvbmFsCisvLyBpbmZvcm1hdGlvbiBpcyBw
cm92aWRlZCB0byBoZWxwIHVzZXJzIHRvIG1ha2UgZGVjaXNpb25zLgorI2lmIFBMQVRGT1JNKE1B
QykKK1N0cmluZyBtYWtlQ3JlZGVudGlhbFRvdWNoSURQcm9tcHRUaXRsZShjb25zdCBTdHJpbmcm
IGJ1bmRsZU5hbWUsIGNvbnN0IFN0cmluZyYgZG9tYWluKQogewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJUb3VjaCBJRCB0byBzaWduIGludG8gdGhpcyB3ZWJzaXRlLiIsICJVc2UgVG91Y2gg
SUQgdG8gc2lnbiBpbnRvIHRoaXMgd2Vic2l0ZSIpOworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6
ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HKCLigJwlQOKAnSB3b3VsZCBsaWtlIHRvIHVzZSBUb3Vj
aCBJRCBmb3Ig4oCcJUDigJ0uIiwgIkFsbG93IHRoZSBzcGVjaWZpZWQgYnVuZGxlIHRvIHVzZSBU
b3VjaCBJRCB0byBzaWduIGluIHRvIHRoZSBzcGVjaWZpZWQgd2Vic2l0ZSBvbiB0aGlzIGRldmlj
ZSIpLCBidW5kbGVOYW1lLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGRvbWFpbi5jcmVhdGVDRlN0
cmluZygpLmdldCgpKTsKIH0KIAotU3RyaW5nIG1ha2VDcmVkZW50aWFsVG91Y2hJRFByb21wdFRp
dGxlKGNvbnN0IFN0cmluZyYgZG9tYWluKQorU3RyaW5nIGdldEFzc2VydGlvblRvdWNoSURQcm9t
cHRUaXRsZShjb25zdCBTdHJpbmcmIGJ1bmRsZU5hbWUsIGNvbnN0IFN0cmluZyYgZG9tYWluKQog
ewotICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HKCJUb3Vj
aCBJRCB0byBhbGxvdyBzaWduaW5nIGludG8g4oCcJUDigJ0gd2l0aCBUb3VjaCBJRC4iLCAiQWxs
b3cgdXNpbmcgVG91Y2ggSUQgdG8gc2lnbiBpbnRvIHRoZSBzcGVjaWZpZWQgd2Vic2l0ZSBvbiB0
aGlzIGRldmljZSIpLCBkb21haW4uY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CisgICAgcmV0dXJu
IGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfQ0ZTVFJJTkcoIuKAnCVA4oCdIHdvdWxkIGxp
a2UgdG8gc2lnbiBpbiB0byDigJwlQOKAnS4iLCAiQWxsb3cgdGhlIHNwZWNpZmllZCBidW5kbGUg
dG8gc2lnbiBpbiB0byB0aGUgc3BlY2lmaWVkIHdlYnNpdGUiKSwgYnVuZGxlTmFtZS5jcmVhdGVD
RlN0cmluZygpLmdldCgpLCBkb21haW4uY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7Cit9CisjZWxz
ZQorU3RyaW5nIG1ha2VDcmVkZW50aWFsVG91Y2hJRFByb21wdFRpdGxlKGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlRoaXMgd2Vic2l0
ZSB3b3VsZCBsaWtlIHRvIHVzZSBUb3VjaCBJRC4iLCAiVGhpcyB3ZWJzaXRlIHdvdWxkIGxpa2Ug
dG8gdXNlIFRvdWNoIElEIik7CiB9CiAKLVN0cmluZyBiaW9tZXRyaWNGYWxsYmFja1Byb21wdFRp
dGxlKCkKK1N0cmluZyBnZXRBc3NlcnRpb25Ub3VjaElEUHJvbXB0VGl0bGUoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJikKIHsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRW50ZXIgcGFz
c2NvZGUgdG8gc2lnbiBpbnRvIHRoaXMgd2Vic2l0ZS4iLCAiVXNlIHBhc3Njb2RlIGFzIGEgZmFs
bGJhY2sgdG8gc2lnbiBpbnRvIHRoaXMgd2Vic2l0ZSIpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJUb3VjaCBJRCB0byBzaWduIGluIHRvIHRoaXMgd2Vic2l0ZS4iLCAiVXNlIFRvdWNoIElE
IHRvIHNpZ24gaW4gdG8gdGhpcyB3ZWJzaXRlIik7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvLyBQTEFU
Rk9STShNQUMpCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCmluZGV4
IDkzYmM4ZDU2NDExNTg4YmJmNzZhZGU3Y2IxZGQ4NTdlYTc2MjRkYzcuLjcxNjAwYzE2ODQ5YjFh
Nzg4YjI0OWQ1MjNjYWNlMTdmNDQzNzM4ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
b2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTM0MCw5ICszNDAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0gICAgV0VCQ09SRV9FWFBPUlQgU3Ry
aW5nIGdlbmVyaWNUb3VjaElEUHJvbXB0VGl0bGUoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBTdHJp
bmcgbWFrZUNyZWRlbnRpYWxUb3VjaElEUHJvbXB0VGl0bGUoY29uc3QgU3RyaW5nJiBkb21haW4p
OwotICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBiaW9tZXRyaWNGYWxsYmFja1Byb21wdFRpdGxl
KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIG1ha2VDcmVkZW50aWFsVG91Y2hJRFByb21w
dFRpdGxlKGNvbnN0IFN0cmluZyYgYnVuZGxlTmFtZSwgY29uc3QgU3RyaW5nJiBkb21haW4pOwor
ICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBnZXRBc3NlcnRpb25Ub3VjaElEUHJvbXB0VGl0bGUo
Y29uc3QgU3RyaW5nJiBidW5kbGVOYW1lLCBjb25zdCBTdHJpbmcmIGRvbWFpbik7CiAjZW5kaWYK
IAogI2lmIFVTRShHTElCKSAmJiBkZWZpbmVkKEdFVFRFWFRfUEFDS0FHRSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cmlu
ZGV4IGMzZTM4NzRkMTQ4MDIyOGEwOWI1M2FkM2VkZGE2NmZiMzNlZGMyZjIuLjVhM2RkNjY2MzVk
MTcxNmIwNDY0NDA0NGUwNWRiOWFjMTA5ZjcxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNDcxLDYgKzQ3
MSw3IEBAIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5j
cHAKIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yVHJhbnNwb3J0U2Vy
dmljZS5jcHAKIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmNwcAog
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclBy
b3h5LmNwcAorVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVx
dWVzdERhdGEuY3BwCiAKIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJEZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuY3BwCiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFSZWNvcmQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKaW5k
ZXggOTc3ODM3NTE3ZTE3MDhiZjJhYTU1MWZlNjRkNmEyNTQwM2NkYWFhYS4uZjIzMzM2MWNmZWE4
NDZlOGVhY2EyMTE5YzI2NjE2NmM4OGQyY2I3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JN
YW5hZ2VyLmNwcApAQCAtMTQzLDEzICsxNDMsNiBAQCBzdGF0aWMgU3RyaW5nIGdldFJwSWQoY29u
c3QgVmFyaWFudDxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLCBQdWJsaWNLZQog
ICAgIHJldHVybiBXVEY6OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+KG9w
dGlvbnMpLnJwSWQ7CiB9CiAKLXN0YXRpYyBDbGllbnREYXRhVHlwZSBnZXRDbGllbnREYXRhVHlw
ZShjb25zdCBWYXJpYW50PFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMsIFB1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4mIG9wdGlvbnMpCi17Ci0gICAgaWYgKFdURjo6
aG9sZHNfYWx0ZXJuYXRpdmU8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucz4ob3B0
aW9ucykpCi0gICAgICAgIHJldHVybiBDbGllbnREYXRhVHlwZTo6Q3JlYXRlOwotICAgIHJldHVy
biBDbGllbnREYXRhVHlwZTo6R2V0OwotfQotCiB9IC8vIG5hbWVzcGFjZQogCiBjb25zdCBzaXpl
X3QgQXV0aGVudGljYXRvck1hbmFnZXI6Om1heFRyYW5zcG9ydE51bWJlciA9IDM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2Nh
bEF1dGhlbnRpY2F0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KaW5kZXggZTRhZDU4YzliMzBlZWMwNWEz
M2NjMjY5MzJmY2VmYTE3NGZmNzI4Ni4uOGFhNjE0NTFkMzBlMTg2YzI3MGU2YTE1YmRjZjg2ZjY5
OTk4OGY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQpAQCAt
MjYzLDcgKzI2Myw3IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVk
ZW50aWFsQWZ0ZXJEZWNpZGVQb2xpY3koTG9jYWxBdXRoZW50aWNhCiAKICAgICAgICAgd2Vha1Ro
aXMtPmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlclVzZXJWZXJpZmljYXRpb24oYWNjZXNzQ29u
dHJvbC5nZXQoKSwgdmVyaWZpY2F0aW9uLCBjb250ZXh0KTsKICAgICB9OwotICAgIG1fY29ubmVj
dGlvbi0+dmVyaWZ5VXNlcihjcmVhdGlvbk9wdGlvbnMucnAuaWQsIGFjY2Vzc0NvbnRyb2xSZWYs
IFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnZlcmlmeVVzZXIoY3JlYXRp
b25PcHRpb25zLnJwLmlkLCBnZXRDbGllbnREYXRhVHlwZShyZXF1ZXN0RGF0YSgpLm9wdGlvbnMp
LCBhY2Nlc3NDb250cm9sUmVmLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKIHZvaWQgTG9jYWxB
dXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJVc2VyVmVyaWZpY2F0aW9u
KFNlY0FjY2Vzc0NvbnRyb2xSZWYgYWNjZXNzQ29udHJvbFJlZiwgTG9jYWxDb25uZWN0aW9uOjpV
c2VyVmVyaWZpY2F0aW9uIHZlcmlmaWNhdGlvbiwgTEFDb250ZXh0ICpjb250ZXh0KQpAQCAtNDkx
LDcgKzQ5MSw3IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldEFzc2VydGlv
bkFmdGVyUmVzcG9uc2VTZWxlY3RlZChSZWY8V2ViQ29yZTo6CiAKICAgICAgICAgd2Vha1RoaXMt
PmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJVc2VyVmVyaWZpY2F0aW9uKFdURk1vdmUocmVzcG9u
c2UpLCB2ZXJpZmljYXRpb24sIGNvbnRleHQpOwogICAgIH07Ci0gICAgbV9jb25uZWN0aW9uLT52
ZXJpZnlVc2VyKHJlcXVlc3RPcHRpb25zLnJwSWQsIGFjY2Vzc0NvbnRyb2xSZWYsIFdURk1vdmUo
Y2FsbGJhY2spKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnZlcmlmeVVzZXIocmVxdWVzdE9wdGlvbnMu
cnBJZCwgZ2V0Q2xpZW50RGF0YVR5cGUocmVxdWVzdERhdGEoKS5vcHRpb25zKSwgYWNjZXNzQ29u
dHJvbFJlZiwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIExvY2FsQXV0aGVudGljYXRv
cjo6Y29udGludWVHZXRBc3NlcnRpb25BZnRlclVzZXJWZXJpZmljYXRpb24oUmVmPFdlYkNvcmU6
OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4mJiByZXNwb25zZSwgTG9jYWxDb25uZWN0
aW9uOjpVc2VyVmVyaWZpY2F0aW9uIHZlcmlmaWNhdGlvbiwgTEFDb250ZXh0ICpjb250ZXh0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29j
b2EvTG9jYWxDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24uaAppbmRleCA2NTg0MGJlOGQ2ZDEyMzBiMTQw
MDZiYjQ3NGQ3MDcyMjY4ZjllYmU2Li5hNGEyZjk0NTUwYmYyZDFlNGVkODgxZjZhNDZiYWRmNWFl
ZGMxNDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24uaApAQCAtMzcsNiArMzcs
NyBAQCBPQkpDX0NMQVNTIExBQ29udGV4dDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOworZW51bSBjbGFzcyBDbGllbnREYXRhVHlw
ZSA6IGJvb2w7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTksMTAgKzYwLDExIEBAIHB1
YmxpYzoKICAgICB1c2luZyBVc2VyVmVyaWZpY2F0aW9uQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFVzZXJWZXJpZmljYXRpb24sIExBQ29udGV4dCAqKT47CiAKICAgICBMb2NhbENv
bm5lY3Rpb24oKSA9IGRlZmF1bHQ7CisgICAgLy8gRklYTUUoMTgzNTM0KTogSW52YWxpZGF0ZSB0
aGUgTEFDb250ZXh0LgogICAgIHZpcnR1YWwgfkxvY2FsQ29ubmVjdGlvbigpID0gZGVmYXVsdDsK
IAogICAgIC8vIE92ZXJyaWRlZCBieSBNb2NrTG9jYWxDb25uZWN0aW9uLgotICAgIHZpcnR1YWwg
dm9pZCB2ZXJpZnlVc2VyKGNvbnN0IFN0cmluZyYgcnBJZCwgU2VjQWNjZXNzQ29udHJvbFJlZiwg
VXNlclZlcmlmaWNhdGlvbkNhbGxiYWNrJiYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCB2ZXJp
ZnlVc2VyKGNvbnN0IFN0cmluZyYgcnBJZCwgV2ViQ29yZTo6Q2xpZW50RGF0YVR5cGUsIFNlY0Fj
Y2Vzc0NvbnRyb2xSZWYsIFVzZXJWZXJpZmljYXRpb25DYWxsYmFjayYmKSBjb25zdDsKICAgICB2
aXJ0dWFsIFJldGFpblB0cjxTZWNLZXlSZWY+IGNyZWF0ZUNyZWRlbnRpYWxQcml2YXRlS2V5KExB
Q29udGV4dCAqLCBTZWNBY2Nlc3NDb250cm9sUmVmLCBjb25zdCBTdHJpbmcmIHNlY0F0dHJMYWJl
bCwgTlNEYXRhICpzZWNBdHRyQXBwbGljYXRpb25UYWcpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9p
ZCBnZXRBdHRlc3RhdGlvbihTZWNLZXlSZWYsIE5TRGF0YSAqYXV0aERhdGEsIE5TRGF0YSAqaGFz
aCwgQXR0ZXN0YXRpb25DYWxsYmFjayYmKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZmlsdGVy
UmVzcG9uc2VzKEhhc2hTZXQ8UmVmPFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNw
b25zZT4+JikgY29uc3QgeyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLm1tCmlu
ZGV4IGExNTU1YzY4MDIxODBiNDI4ZmZmM2ZmYTBlZmVjYmNlYTE2NTVmYzcuLmM2MjBlODZjNWEw
YzkzMDlmNGY3ZmU4YTE2NzM2YzI5N2MyMzg2MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlvbi5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENv
bm5lY3Rpb24ubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVk
U3RyaW5ncy5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9v
cC5oPgorI2ltcG9ydCA8d3RmL3NwaS9jZi9DRkJ1bmRsZVNQSS5oPgogCiAjaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKICNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9Mb2NhbENvbm5lY3Rpb25B
ZGRpdGlvbnMuaD4KQEAgLTM5LDI0ICs0MCw0MiBAQAogI2ltcG9ydCAiTG9jYWxBdXRoZW50aWNh
dGlvblNvZnRMaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKLXZvaWQgTG9jYWxDb25uZWN0aW9uOjp2ZXJpZnlVc2VyKGNvbnN0IFN0cmluZyYg
cnBJZCwgU2VjQWNjZXNzQ29udHJvbFJlZiBhY2Nlc3NDb250cm9sLCBVc2VyVmVyaWZpY2F0aW9u
Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKK25hbWVzcGFjZSB7CitzdGF0aWMg
U3RyaW5nIGJ1bmRsZU5hbWUoKQogeworICAgIFN0cmluZyBidW5kbGVOYW1lOworCisjaWYgUExB
VEZPUk0oTUFDKQorICAgIGJ1bmRsZU5hbWUgPSBbW05TUnVubmluZ0FwcGxpY2F0aW9uIGN1cnJl
bnRBcHBsaWNhdGlvbl0gbG9jYWxpemVkTmFtZV07CisjZW5kaWYKKworICAgIHJldHVybiBidW5k
bGVOYW1lOworfQorfSAvLyBuYW1lc3BhY2UKKwordm9pZCBMb2NhbENvbm5lY3Rpb246OnZlcmlm
eVVzZXIoY29uc3QgU3RyaW5nJiBycElkLCBDbGllbnREYXRhVHlwZSB0eXBlLCBTZWNBY2Nlc3ND
b250cm9sUmVmIGFjY2Vzc0NvbnRyb2wsIFVzZXJWZXJpZmljYXRpb25DYWxsYmFjayYmIGNvbXBs
ZXRpb25IYW5kbGVyKSBjb25zdAoreworICAgIFN0cmluZyB0aXRsZTsKKyAgICBzd2l0Y2ggKHR5
cGUpIHsKKyAgICBjYXNlIENsaWVudERhdGFUeXBlOjpDcmVhdGU6CisgICAgICAgIHRpdGxlID0g
bWFrZUNyZWRlbnRpYWxUb3VjaElEUHJvbXB0VGl0bGUoYnVuZGxlTmFtZSgpLCBycElkKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDbGllbnREYXRhVHlwZTo6R2V0OgorICAgICAgICB0aXRs
ZSA9IGdldEFzc2VydGlvblRvdWNoSURQcm9tcHRUaXRsZShidW5kbGVOYW1lKCksIHJwSWQpOwor
ICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICB9CisKICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdE5TKFthbGxvY0xBQ29udGV4dElu
c3RhbmNlKCkgaW5pdF0pOwogCiAgICAgYXV0byBvcHRpb25zID0gYWRvcHROUyhbW05TTXV0YWJs
ZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKICAgICBpZiAoW2NvbnRleHQgYmlvbWV0cnlUeXBl
XSA9PSBMQUJpb21ldHJ5VHlwZVRvdWNoSUQpIHsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgICAg
IFtvcHRpb25zIHNldE9iamVjdDpXZWJDb3JlOjpnZW5lcmljVG91Y2hJRFByb21wdFRpdGxlKCkg
Zm9yS2V5OkAoTEFPcHRpb25BdXRoZW50aWNhdGlvblRpdGxlKV07Ci0gICAgICAgIEFTU0VSVF9V
TlVTRUQocnBJZCwgcnBJZCk7Ci0jZWxzZQotICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6V2Vi
Q29yZTo6bWFrZUNyZWRlbnRpYWxUb3VjaElEUHJvbXB0VGl0bGUocnBJZCkgZm9yS2V5OkAoTEFP
cHRpb25BdXRoZW50aWNhdGlvblRpdGxlKV07Ci0jZW5kaWYKKyAgICAgICAgW29wdGlvbnMgc2V0
T2JqZWN0OnRpdGxlIGZvcktleTpAKExBT3B0aW9uQXV0aGVudGljYXRpb25UaXRsZSldOwogICAg
ICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6QE5PIGZvcktleTpAKExBT3B0aW9uRmFsbGJhY2tWaXNp
YmxlKV07CiAgICAgfQotI2lmIFBMQVRGT1JNKElPUykKLSAgICBbb3B0aW9ucyBzZXRPYmplY3Q6
V2ViQ29yZTo6YmlvbWV0cmljRmFsbGJhY2tQcm9tcHRUaXRsZSgpIGZvcktleTpAKExBT3B0aW9u
UGFzc2NvZGVUaXRsZSldOwotI2VuZGlmCiAKICAgICBhdXRvIHJlcGx5ID0gbWFrZUJsb2NrUHRy
KFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSAoTlNEaWN0aW9uYXJ5ICosIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKICAgICAgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVj
dGlvbi5oCmluZGV4IDAxMmVkYjlmMjE4NmIxNWUyMzBkZGMzNWJhZDQ3ODY1Mzk2MTQ2ZTYuLjA0
N2M2MzJhODYyODdjMWMwYjU4YzQ4OGM1MjRlYWMyOWJlYzM2MTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01v
Y2svTW9ja0xvY2FsQ29ubmVjdGlvbi5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICBl
eHBsaWNpdCBNb2NrTG9jYWxDb25uZWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok1vY2tXZWJBdXRoZW50
aWNhdGlvbkNvbmZpZ3VyYXRpb24mKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHZlcmlmeVVzZXIo
Y29uc3QgU3RyaW5nJiwgU2VjQWNjZXNzQ29udHJvbFJlZiwgVXNlclZlcmlmaWNhdGlvbkNhbGxi
YWNrJiYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgdmVyaWZ5VXNlcihjb25zdCBTdHJpbmcmLCBX
ZWJDb3JlOjpDbGllbnREYXRhVHlwZSwgU2VjQWNjZXNzQ29udHJvbFJlZiwgVXNlclZlcmlmaWNh
dGlvbkNhbGxiYWNrJiYpIGNvbnN0IGZpbmFsOwogICAgIFJldGFpblB0cjxTZWNLZXlSZWY+IGNy
ZWF0ZUNyZWRlbnRpYWxQcml2YXRlS2V5KExBQ29udGV4dCAqLCBTZWNBY2Nlc3NDb250cm9sUmVm
LCBjb25zdCBTdHJpbmcmIHNlY0F0dHJMYWJlbCwgTlNEYXRhICpzZWNBdHRyQXBwbGljYXRpb25U
YWcpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgZ2V0QXR0ZXN0YXRpb24oU2VjS2V5UmVmLCBOU0Rh
dGEgKmF1dGhEYXRhLCBOU0RhdGEgKmhhc2gsIEF0dGVzdGF0aW9uQ2FsbGJhY2smJikgY29uc3Qg
ZmluYWw7CiAgICAgdm9pZCBmaWx0ZXJSZXNwb25zZXMoSGFzaFNldDxSZWY8V2ViQ29yZTo6QXV0
aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPj4mKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2Fs
Q29ubmVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5tbQppbmRleCAzZDVkNDAxMzA0YjdjOWNlY2Q4OTI5
YWNiM2FjZjkzYTUwZDdkYmM4Li43NDg4N2YxNzIzNGNhYzc3M2FhMTI1MWI3ODA1MDRhYWZjZjVh
YjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLm1tCkBAIC00NCw3
ICs0NCw3IEBAIE1vY2tMb2NhbENvbm5lY3Rpb246Ok1vY2tMb2NhbENvbm5lY3Rpb24oY29uc3Qg
V2ViQ29yZTo6TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uCiB7CiB9CiAKLXZvaWQgTW9ja0xvY2Fs
Q29ubmVjdGlvbjo6dmVyaWZ5VXNlcihjb25zdCBTdHJpbmcmLCBTZWNBY2Nlc3NDb250cm9sUmVm
LCBVc2VyVmVyaWZpY2F0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykgY29uc3QKK3ZvaWQgTW9ja0xv
Y2FsQ29ubmVjdGlvbjo6dmVyaWZ5VXNlcihjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpDbGllbnRE
YXRhVHlwZSwgU2VjQWNjZXNzQ29udHJvbFJlZiwgVXNlclZlcmlmaWNhdGlvbkNhbGxiYWNrJiYg
Y2FsbGJhY2spIGNvbnN0CiB7CiAgICAgLy8gTW9jayBhc3luYyBvcGVyYXRpb25zLgogICAgIFJ1
bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29uZmlndXJhdGlvbiA9IG1fY29uZmlndXJhdGlvbiwg
Y2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9u
UmVxdWVzdERhdGEuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzBlOTM3MTM0
ZGQwMzE4ODEzOGJhYzk4NmVmOTEyZjc3N2EyZmNjOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVx
dWVzdERhdGEuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oIgorCisjaWYg
RU5BQkxFKFdFQl9BVVRITikKKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworQ2xpZW50RGF0YVR5cGUgZ2V0Q2xpZW50RGF0YVR5cGUoY29uc3QgVmFyaWFu
dDxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLCBQdWJsaWNLZXlDcmVkZW50aWFs
UmVxdWVzdE9wdGlvbnM+JiBvcHRpb25zKQoreworICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0
aXZlPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+KG9wdGlvbnMpKQorICAgICAg
ICByZXR1cm4gQ2xpZW50RGF0YVR5cGU6OkNyZWF0ZTsKKyAgICByZXR1cm4gQ2xpZW50RGF0YVR5
cGU6OkdldDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5o
CmluZGV4IDhlZGIzOWMxMDVlMjNmZmRkYTA4Yjg2MDFmODUxZmY2MTg4MDVhYjEuLjJmNjEzNDUz
ZWUzNGQ0YWU3YWM3YTY3ZTI4ZmFjNjU2MDgxN2U0ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERh
dGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJB
dXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL0dsb2JhbEZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHVibGlj
S2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHVibGlj
S2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdXRo
ZW50aWNhdGlvbkNvbnN0YW50cy5oPgogI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CkBAIC01MSw2ICs1Miw4
IEBAIHN0cnVjdCBXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhIHsKICAgICBXZWJLaXQ6OkZy
YW1lSW5mb0RhdGEgZnJhbWVJbmZvOwogfTsKIAorV2ViQ29yZTo6Q2xpZW50RGF0YVR5cGUgZ2V0
Q2xpZW50RGF0YVR5cGUoY29uc3QgVmFyaWFudDxXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zLCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnM+Jik7CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9B
VVRITikK
</data>
<flag name="review"
          id="409664"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394434</attachid>
            <date>2020-03-24 16:11:39 -0700</date>
            <delta_ts>2020-03-24 17:03:26 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-208703-20200324161138.patch</filename>
            <type>text/plain</type>
            <size>20703</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZmZGNmOTAwM2YwZWQ5
ZTVkOWI0ZjFiNTYyODdmNWFiZjIzM2Q4ZC4uYjllMWNjNzM5N2Y0NWY3YzFjMGI1ODQ4NmFiMjky
MzlmMDcyZmM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAzLTE2ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBDdXN0
b21pemUgYSBiaXQgbW9yZSBvbiB0aGUgbWFjT1MgTG9jYWxBdXRoZW50aWNhdGlvbiBwcm9tcHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODcwMwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjAxMzY5NzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QnJlbnQgRnVsZ2hhbS4KKworICAgICAgICBQYXJ0IDIuCisKKyAgICAgICAgVGhpcyBwYXRjaCBh
ZGRzIGEgZGlmZmVyZW50IExvY2FsQXV0aGVudGljYXRpb24gcHJvbXB0IHRpdGxlIGZvciBnZXRB
c3NlcnRpb24uCisgICAgICAgIEl0IGFsc28gcG9saXNoZXMgdGhlIHRleHQgdXNlZCBmb3IgbWFr
ZUNyZWRlbnRpYWwuCisKKyAgICAgICAgQmVzaWRlcyB0aGF0LCBpdCBhbHNvIGVuaGFuY2VzIHRo
ZSBpT1MgdGl0bGUgc3RyaW5ncy4KKworICAgICAgICAqIGVuLmxwcm9qL0xvY2FsaXphYmxlLnN0
cmluZ3M6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpnZXRBc3NlcnRpb25Ub3VjaElEUHJvbXB0VGl0bGUpOgorICAgICAgICAqIHBs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaDoKKwogMjAyMC0wMy0xNiAgTWVnYW4gR2FyZG5lciAg
PG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENvbG9yIFBpY2tlciBjcmFzaGVz
IG9uIHRvdWNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIzNjE3ZGIxZDQxZTQzYjk2NDEwZmZkNGMwZmU3YmYwNDkz
YTM2ZmIuLjkwM2YxYTZhMWViZDRmYTAwYjY3ZjkwYzQyYWM3NjAyY2E3ZGY0M2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjggQEAKKzIwMjAtMDMtMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFw
cGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIEN1c3RvbWl6ZSBhIGJpdCBtb3JlIG9uIHRo
ZSBtYWNPUyBMb2NhbEF1dGhlbnRpY2F0aW9uIHByb21wdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NzAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82MDEzNjk3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAg
ICAgIFBhcnQgMi4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBkaWZmZXJlbnQgTG9jYWxB
dXRoZW50aWNhdGlvbiBwcm9tcHQgdGl0bGUgZm9yIGdldEFzc2VydGlvbi4KKyAgICAgICAgSXQg
YWxzbyBwb2xpc2hlcyB0aGUgdGV4dCB1c2VkIGZvciBtYWtlQ3JlZGVudGlhbC4KKworICAgICAg
ICBCZXNpZGVzIHRoYXQsIGl0IGFsc28gZW5oYW5jZXMgdGhlIGlPUyB0aXRsZSBzdHJpbmdzLgor
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVu
dGljYXRvci5tbToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51
ZU1ha2VDcmVkZW50aWFsQWZ0ZXJEZWNpZGVQb2xpY3kpOgorICAgICAgICAoV2ViS2l0OjpMb2Nh
bEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVNlbGVjdGVk
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25u
ZWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xv
Y2FsQ29ubmVjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxDb25uZWN0aW9uOjp2ZXJp
ZnlVc2VyIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9j
ay9Nb2NrTG9jYWxDb25uZWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6TW9j
a0xvY2FsQ29ubmVjdGlvbjo6dmVyaWZ5VXNlciBjb25zdCk6CisKIDIwMjAtMDMtMTYgIFBlciBB
cm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQWNjZXNz
aWJpbGl0eSBzYW5kYm94IHJlZ3Jlc3Npb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
bi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9j
YWxpemFibGUuc3RyaW5ncwppbmRleCBiODc1MjA1NmY0ZDMwMDk2ZTVkMTZhYmFiYzMxNDA5ODQ3
YTc3NTc2Li40YzkwYTU0MzUzODYzOWYwZDczMjM2MjA2NzUwZmM4MDMwZGFhMWI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTEsMyArMSw5IEBA
CisvKiBBbGxvdyB0aGUgc3BlY2lmaWVkIGJ1bmRsZSB0byB1c2UgVG91Y2ggSUQgdG8gc2lnbiBp
biB0byB0aGUgc3BlY2lmaWVkIHdlYnNpdGUgb24gdGhpcyBkZXZpY2UgKi8KKyLigJwlQOKAnSB3
b3VsZCBsaWtlIHRvIHVzZSBUb3VjaCBJRCBmb3Ig4oCcJUDigJ0uIiA9ICLigJwlQOKAnSB3b3Vs
ZCBsaWtlIHRvIHVzZSBUb3VjaCBJRCBmb3Ig4oCcJUDigJ0uIjsKKworLyogIkFsbG93IHRoZSBz
cGVjaWZpZWQgYnVuZGxlIHRvIHNpZ24gaW4gdG8gdGhlIHNwZWNpZmllZCB3ZWJzaXRlICovCisi
4oCcJUDigJ0gd291bGQgbGlrZSB0byBzaWduIGluIHRvIOKAnCVA4oCdLiIgPSAi4oCcJUDigJ0g
d291bGQgbGlrZSB0byBzaWduIGluIHRvIOKAnCVA4oCdLiI7CisKIC8qIGFjY2Vzc2liaWxpdHkg
aGVscCB0ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPj0gMSBkYXkgKi8KICIl
MSRkIGRheXMgJTIkZCBob3VycyAlMyRkIG1pbnV0ZXMgJTQkZCBzZWNvbmRzIiA9ICIlMSRkIGRh
eXMgJTIkZCBob3VycyAlMyRkIG1pbnV0ZXMgJTQkZCBzZWNvbmRzIjsKIApAQCAtMzEzLDkgKzMx
OSw2IEBACiAvKiBWaWRlbyBFbnRlciBGdWxsIFNjcmVlbiBjb250ZXh0IG1lbnUgaXRlbSAqLwog
IkVudGVyIEZ1bGwgU2NyZWVuIiA9ICJFbnRlciBGdWxsIFNjcmVlbiI7CiAKLS8qIFVzZSBwYXNz
Y29kZSBhcyBhIGZhbGxiYWNrIHRvIHNpZ24gaW50byB0aGlzIHdlYnNpdGUgKi8KLSJFbnRlciBw
YXNzY29kZSB0byBzaWduIGludG8gdGhpcyB3ZWJzaXRlLiIgPSAiRW50ZXIgcGFzc2NvZGUgdG8g
c2lnbiBpbnRvIHRoaXMgd2Vic2l0ZS4iOwotCiAvKiBtZW51IGl0ZW0gKi8KICJFbnRlciBQaWN0
dXJlIGluIFBpY3R1cmUiID0gIkVudGVyIFBpY3R1cmUgaW4gUGljdHVyZSI7CiAKQEAgLTg2NSw2
ICs4NjgsOSBAQAogLyogVW53YW50ZWQgc29mdHdhcmUgd2FybmluZyAqLwogIlRoaXMgd2Vic2l0
ZSBtYXkgdHJ5IHRvIHRyaWNrIHlvdSBpbnRvIGluc3RhbGxpbmcgc29mdHdhcmUgdGhhdCBoYXJt
cyB5b3VyIGJyb3dzaW5nIGV4cGVyaWVuY2UsIGxpa2UgY2hhbmdpbmcgeW91ciBzZXR0aW5ncyB3
aXRob3V0IHlvdXIgcGVybWlzc2lvbiBvciBzaG93aW5nIHlvdSB1bndhbnRlZCBhZHMuIE9uY2Ug
aW5zdGFsbGVkLCBpdCBtYXkgYmUgZGlmZmljdWx0IHRvIHJlbW92ZS4iID0gIlRoaXMgd2Vic2l0
ZSBtYXkgdHJ5IHRvIHRyaWNrIHlvdSBpbnRvIGluc3RhbGxpbmcgc29mdHdhcmUgdGhhdCBoYXJt
cyB5b3VyIGJyb3dzaW5nIGV4cGVyaWVuY2UsIGxpa2UgY2hhbmdpbmcgeW91ciBzZXR0aW5ncyB3
aXRob3V0IHlvdXIgcGVybWlzc2lvbiBvciBzaG93aW5nIHlvdSB1bndhbnRlZCBhZHMuIE9uY2Ug
aW5zdGFsbGVkLCBpdCBtYXkgYmUgZGlmZmljdWx0IHRvIHJlbW92ZS4iOwogCisvKiBUaGlzIHdl
YnNpdGUgd291bGQgbGlrZSB0byB1c2UgVG91Y2ggSUQgKi8KKyJUaGlzIHdlYnNpdGUgd291bGQg
bGlrZSB0byB1c2UgVG91Y2ggSUQuIiA9ICJUaGlzIHdlYnNpdGUgd291bGQgbGlrZSB0byB1c2Ug
VG91Y2ggSUQuIjsKKwogLyogSW5mb3JtYXRpdmUgdGV4dCBmb3IgcmVxdWVzdGluZyBjcm9zcy1z
aXRlIGNvb2tpZSBhbmQgd2Vic2l0ZSBkYXRhIGFjY2Vzcy4gKi8KICJUaGlzIHdpbGwgYWxsb3cg
4oCcJUDigJ0gdG8gdHJhY2sgeW91ciBhY3Rpdml0eS4iID0gIlRoaXMgd2lsbCBhbGxvdyDigJwl
QOKAnSB0byB0cmFjayB5b3VyIGFjdGl2aXR5LiI7CiAKQEAgLTg4MywxMSArODg5LDggQEAKIC8q
IHByb21wdCBzdHJpbmcgaW4gYXV0aGVudGljYXRpb24gcGFuZWwgKi8KICJUbyB2aWV3IHRoaXMg
cGFnZSwgeW91IG11c3QgbG9nIGluIHRvIHRoaXMgYXJlYSBvbiAlQDoiID0gIlRvIHZpZXcgdGhp
cyBwYWdlLCB5b3UgbXVzdCBsb2cgaW4gdG8gdGhpcyBhcmVhIG9uICVAOiI7CiAKLS8qIFVzZSBU
b3VjaCBJRCB0byBzaWduIGludG8gdGhpcyB3ZWJzaXRlICovCi0iVG91Y2ggSUQgdG8gc2lnbiBp
bnRvIHRoaXMgd2Vic2l0ZS4iID0gIlRvdWNoIElEIHRvIHNpZ24gaW50byB0aGlzIHdlYnNpdGUu
IjsKLQotLyogQWxsb3cgdXNpbmcgVG91Y2ggSUQgdG8gc2lnbiBpbnRvIHRoZSBzcGVjaWZpZWQg
d2Vic2l0ZSBvbiB0aGlzIGRldmljZSAqLwotIlRvdWNoIElEIHRvIGFsbG93IHNpZ25pbmcgaW50
byDigJwlQOKAnSB3aXRoIFRvdWNoIElELiIgPSAiVG91Y2ggSUQgdG8gYWxsb3cgc2lnbmluZyBp
bnRvIOKAnCVA4oCdIHdpdGggVG91Y2ggSUQuIjsKKy8qIFVzZSBUb3VjaCBJRCB0byBzaWduIGlu
IHRvIHRoaXMgd2Vic2l0ZSAqLworIlRvdWNoIElEIHRvIHNpZ24gaW4gdG8gdGhpcyB3ZWJzaXRl
LiIgPSAiVG91Y2ggSUQgdG8gc2lnbiBpbiB0byB0aGlzIHdlYnNpdGUuIjsKIAogLyogVHJhbnNm
b3JtYXRpb25zIGNvbnRleHQgc3ViLW1lbnUgaXRlbSAqLwogIlRyYW5zZm9ybWF0aW9ucyIgPSAi
VHJhbnNmb3JtYXRpb25zIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Y2FsaXplZFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5jcHAKaW5kZXggNGJiZmExMzcwNWRjZWY4M2UzNTViMDc2NjRlNWQ4OTcwMzEzYzdkOS4u
YTkwZjg4MjM5ZWQ5MDc3NjcyMjg4MTViOTI2MTY3ODgxMjJjYTQ4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTEyMDgsMjAgKzEyMDgsMjkg
QEAgU3RyaW5nIHVuYWNjZXB0YWJsZVRMU0NlcnRpZmljYXRlKCkKICNlbmRpZgogCiAjaWYgRU5B
QkxFKFdFQl9BVVRITikKLVN0cmluZyBnZW5lcmljVG91Y2hJRFByb21wdFRpdGxlKCkKKy8vIE9u
IG1hY09TLCBUb3VjaCBJRCBwcm9tcHQgaXMgbm90IGd1YXJhbnRlZWQgdG8gc2hvdyBvbiB0b3Ag
b2YgdGhlIFVJIGNsaWVudCwgYW5kIHRoZXJlZm9yZSBhZGRpdGlvbmFsCisvLyBpbmZvcm1hdGlv
biBpcyBwcm92aWRlZCB0byBoZWxwIHVzZXJzIHRvIG1ha2UgZGVjaXNpb25zLgorI2lmIFBMQVRG
T1JNKE1BQykKK1N0cmluZyBtYWtlQ3JlZGVudGlhbFRvdWNoSURQcm9tcHRUaXRsZShjb25zdCBT
dHJpbmcmIGJ1bmRsZU5hbWUsIGNvbnN0IFN0cmluZyYgZG9tYWluKQogewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJUb3VjaCBJRCB0byBzaWduIGludG8gdGhpcyB3ZWJzaXRlLiIsICJVc2Ug
VG91Y2ggSUQgdG8gc2lnbiBpbnRvIHRoaXMgd2Vic2l0ZSIpOworICAgIHJldHVybiBmb3JtYXRM
b2NhbGl6ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HKCLigJwlQOKAnSB3b3VsZCBsaWtlIHRvIHVz
ZSBUb3VjaCBJRCBmb3Ig4oCcJUDigJ0uIiwgIkFsbG93IHRoZSBzcGVjaWZpZWQgYnVuZGxlIHRv
IHVzZSBUb3VjaCBJRCB0byBzaWduIGluIHRvIHRoZSBzcGVjaWZpZWQgd2Vic2l0ZSBvbiB0aGlz
IGRldmljZSIpLCBidW5kbGVOYW1lLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGRvbWFpbi5jcmVh
dGVDRlN0cmluZygpLmdldCgpKTsKIH0KIAotU3RyaW5nIG1ha2VDcmVkZW50aWFsVG91Y2hJRFBy
b21wdFRpdGxlKGNvbnN0IFN0cmluZyYgZG9tYWluKQorU3RyaW5nIGdldEFzc2VydGlvblRvdWNo
SURQcm9tcHRUaXRsZShjb25zdCBTdHJpbmcmIGJ1bmRsZU5hbWUsIGNvbnN0IFN0cmluZyYgZG9t
YWluKQogewotICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5H
KCJUb3VjaCBJRCB0byBhbGxvdyBzaWduaW5nIGludG8g4oCcJUDigJ0gd2l0aCBUb3VjaCBJRC4i
LCAiQWxsb3cgdXNpbmcgVG91Y2ggSUQgdG8gc2lnbiBpbnRvIHRoZSBzcGVjaWZpZWQgd2Vic2l0
ZSBvbiB0aGlzIGRldmljZSIpLCBkb21haW4uY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CisgICAg
cmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfQ0ZTVFJJTkcoIuKAnCVA4oCdIHdv
dWxkIGxpa2UgdG8gc2lnbiBpbiB0byDigJwlQOKAnS4iLCAiQWxsb3cgdGhlIHNwZWNpZmllZCBi
dW5kbGUgdG8gc2lnbiBpbiB0byB0aGUgc3BlY2lmaWVkIHdlYnNpdGUiKSwgYnVuZGxlTmFtZS5j
cmVhdGVDRlN0cmluZygpLmdldCgpLCBkb21haW4uY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7Cit9
CisjZWxzZQorU3RyaW5nIG1ha2VDcmVkZW50aWFsVG91Y2hJRFByb21wdFRpdGxlKGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlRoaXMg
d2Vic2l0ZSB3b3VsZCBsaWtlIHRvIHVzZSBUb3VjaCBJRC4iLCAiVGhpcyB3ZWJzaXRlIHdvdWxk
IGxpa2UgdG8gdXNlIFRvdWNoIElEIik7CiB9CiAKLVN0cmluZyBiaW9tZXRyaWNGYWxsYmFja1By
b21wdFRpdGxlKCkKK1N0cmluZyBnZXRBc3NlcnRpb25Ub3VjaElEUHJvbXB0VGl0bGUoY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJikKIHsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRW50
ZXIgcGFzc2NvZGUgdG8gc2lnbiBpbnRvIHRoaXMgd2Vic2l0ZS4iLCAiVXNlIHBhc3Njb2RlIGFz
IGEgZmFsbGJhY2sgdG8gc2lnbiBpbnRvIHRoaXMgd2Vic2l0ZSIpOworICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJUb3VjaCBJRCB0byBzaWduIGluIHRvIHRoaXMgd2Vic2l0ZS4iLCAiVXNlIFRv
dWNoIElEIHRvIHNpZ24gaW4gdG8gdGhpcyB3ZWJzaXRlIik7CiB9Ci0jZW5kaWYKKyNlbmRpZiAv
LyBQTEFURk9STShNQUMpCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5o
CmluZGV4IDkzYmM4ZDU2NDExNTg4YmJmNzZhZGU3Y2IxZGQ4NTdlYTc2MjRkYzcuLjcxNjAwYzE2
ODQ5YjFhNzg4YjI0OWQ1MjNjYWNlMTdmNDQzNzM4ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTM0MCw5ICszNDAsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0gICAgV0VCQ09SRV9FWFBP
UlQgU3RyaW5nIGdlbmVyaWNUb3VjaElEUHJvbXB0VGl0bGUoKTsKLSAgICBXRUJDT1JFX0VYUE9S
VCBTdHJpbmcgbWFrZUNyZWRlbnRpYWxUb3VjaElEUHJvbXB0VGl0bGUoY29uc3QgU3RyaW5nJiBk
b21haW4pOwotICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBiaW9tZXRyaWNGYWxsYmFja1Byb21w
dFRpdGxlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIG1ha2VDcmVkZW50aWFsVG91Y2hJ
RFByb21wdFRpdGxlKGNvbnN0IFN0cmluZyYgYnVuZGxlTmFtZSwgY29uc3QgU3RyaW5nJiBkb21h
aW4pOworICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBnZXRBc3NlcnRpb25Ub3VjaElEUHJvbXB0
VGl0bGUoY29uc3QgU3RyaW5nJiBidW5kbGVOYW1lLCBjb25zdCBTdHJpbmcmIGRvbWFpbik7CiAj
ZW5kaWYKIAogI2lmIFVTRShHTElCKSAmJiBkZWZpbmVkKEdFVFRFWFRfUEFDS0FHRSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMu
dHh0CmluZGV4IGMzZTM4NzRkMTQ4MDIyOGEwOWI1M2FkM2VkZGE2NmZiMzNlZGMyZjIuLjVhM2Rk
NjY2MzVkMTcxNmIwNDY0NDA0NGUwNWRiOWFjMTA5ZjcxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNDcx
LDYgKzQ3MSw3IEBAIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFu
YWdlci5jcHAKIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yVHJhbnNw
b3J0U2VydmljZS5jcHAKIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9y
LmNwcAogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvclByb3h5LmNwcAorVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0
aW9uUmVxdWVzdERhdGEuY3BwCiAKIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuY3BwCiBVSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFSZWNvcmQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5j
cHAKaW5kZXggOTc3ODM3NTE3ZTE3MDhiZjJhYTU1MWZlNjRkNmEyNTQwM2NkYWFhYS4uZjIzMzM2
MWNmZWE4NDZlOGVhY2EyMTE5YzI2NjE2NmM4OGQyY2I3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRp
Y2F0b3JNYW5hZ2VyLmNwcApAQCAtMTQzLDEzICsxNDMsNiBAQCBzdGF0aWMgU3RyaW5nIGdldFJw
SWQoY29uc3QgVmFyaWFudDxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLCBQdWJs
aWNLZQogICAgIHJldHVybiBXVEY6OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnM+KG9wdGlvbnMpLnJwSWQ7CiB9CiAKLXN0YXRpYyBDbGllbnREYXRhVHlwZSBnZXRDbGllbnRE
YXRhVHlwZShjb25zdCBWYXJpYW50PFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMs
IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4mIG9wdGlvbnMpCi17Ci0gICAgaWYg
KFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cz4ob3B0aW9ucykpCi0gICAgICAgIHJldHVybiBDbGllbnREYXRhVHlwZTo6Q3JlYXRlOwotICAg
IHJldHVybiBDbGllbnREYXRhVHlwZTo6R2V0OwotfQotCiB9IC8vIG5hbWVzcGFjZQogCiBjb25z
dCBzaXplX3QgQXV0aGVudGljYXRvck1hbmFnZXI6Om1heFRyYW5zcG9ydE51bWJlciA9IDM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2Nv
YS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KaW5kZXggZTRhZDU4YzliMzBl
ZWMwNWEzM2NjMjY5MzJmY2VmYTE3NGZmNzI4Ni4uOGFhNjE0NTFkMzBlMTg2YzI3MGU2YTE1YmRj
Zjg2ZjY5OTk4OGY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5t
bQpAQCAtMjYzLDcgKzI2Myw3IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1h
a2VDcmVkZW50aWFsQWZ0ZXJEZWNpZGVQb2xpY3koTG9jYWxBdXRoZW50aWNhCiAKICAgICAgICAg
d2Vha1RoaXMtPmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlclVzZXJWZXJpZmljYXRpb24oYWNj
ZXNzQ29udHJvbC5nZXQoKSwgdmVyaWZpY2F0aW9uLCBjb250ZXh0KTsKICAgICB9OwotICAgIG1f
Y29ubmVjdGlvbi0+dmVyaWZ5VXNlcihjcmVhdGlvbk9wdGlvbnMucnAuaWQsIGFjY2Vzc0NvbnRy
b2xSZWYsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnZlcmlmeVVzZXIo
Y3JlYXRpb25PcHRpb25zLnJwLmlkLCBnZXRDbGllbnREYXRhVHlwZShyZXF1ZXN0RGF0YSgpLm9w
dGlvbnMpLCBhY2Nlc3NDb250cm9sUmVmLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKIHZvaWQg
TG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJVc2VyVmVyaWZp
Y2F0aW9uKFNlY0FjY2Vzc0NvbnRyb2xSZWYgYWNjZXNzQ29udHJvbFJlZiwgTG9jYWxDb25uZWN0
aW9uOjpVc2VyVmVyaWZpY2F0aW9uIHZlcmlmaWNhdGlvbiwgTEFDb250ZXh0ICpjb250ZXh0KQpA
QCAtNDkxLDcgKzQ5MSw3IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldEFz
c2VydGlvbkFmdGVyUmVzcG9uc2VTZWxlY3RlZChSZWY8V2ViQ29yZTo6CiAKICAgICAgICAgd2Vh
a1RoaXMtPmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJVc2VyVmVyaWZpY2F0aW9uKFdURk1vdmUo
cmVzcG9uc2UpLCB2ZXJpZmljYXRpb24sIGNvbnRleHQpOwogICAgIH07Ci0gICAgbV9jb25uZWN0
aW9uLT52ZXJpZnlVc2VyKHJlcXVlc3RPcHRpb25zLnJwSWQsIGFjY2Vzc0NvbnRyb2xSZWYsIFdU
Rk1vdmUoY2FsbGJhY2spKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnZlcmlmeVVzZXIocmVxdWVzdE9w
dGlvbnMucnBJZCwgZ2V0Q2xpZW50RGF0YVR5cGUocmVxdWVzdERhdGEoKS5vcHRpb25zKSwgYWNj
ZXNzQ29udHJvbFJlZiwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIExvY2FsQXV0aGVu
dGljYXRvcjo6Y29udGludWVHZXRBc3NlcnRpb25BZnRlclVzZXJWZXJpZmljYXRpb24oUmVmPFdl
YkNvcmU6OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4mJiByZXNwb25zZSwgTG9jYWxD
b25uZWN0aW9uOjpVc2VyVmVyaWZpY2F0aW9uIHZlcmlmaWNhdGlvbiwgTEFDb250ZXh0ICpjb250
ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24uaAppbmRleCA2NTg0MGJlOGQ2ZDEy
MzBiMTQwMDZiYjQ3NGQ3MDcyMjY4ZjllYmU2Li5hNGEyZjk0NTUwYmYyZDFlNGVkODgxZjZhNDZi
YWRmNWFlZGMxNDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24uaApAQCAtMzcs
NiArMzcsNyBAQCBPQkpDX0NMQVNTIExBQ29udGV4dDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOworZW51bSBjbGFzcyBDbGllbnRE
YXRhVHlwZSA6IGJvb2w7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTksMTAgKzYwLDEx
IEBAIHB1YmxpYzoKICAgICB1c2luZyBVc2VyVmVyaWZpY2F0aW9uQ2FsbGJhY2sgPSBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFVzZXJWZXJpZmljYXRpb24sIExBQ29udGV4dCAqKT47CiAKICAgICBM
b2NhbENvbm5lY3Rpb24oKSA9IGRlZmF1bHQ7CisgICAgLy8gRklYTUUoMTgzNTM0KTogSW52YWxp
ZGF0ZSB0aGUgTEFDb250ZXh0LgogICAgIHZpcnR1YWwgfkxvY2FsQ29ubmVjdGlvbigpID0gZGVm
YXVsdDsKIAogICAgIC8vIE92ZXJyaWRlZCBieSBNb2NrTG9jYWxDb25uZWN0aW9uLgotICAgIHZp
cnR1YWwgdm9pZCB2ZXJpZnlVc2VyKGNvbnN0IFN0cmluZyYgcnBJZCwgU2VjQWNjZXNzQ29udHJv
bFJlZiwgVXNlclZlcmlmaWNhdGlvbkNhbGxiYWNrJiYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9p
ZCB2ZXJpZnlVc2VyKGNvbnN0IFN0cmluZyYgcnBJZCwgV2ViQ29yZTo6Q2xpZW50RGF0YVR5cGUs
IFNlY0FjY2Vzc0NvbnRyb2xSZWYsIFVzZXJWZXJpZmljYXRpb25DYWxsYmFjayYmKSBjb25zdDsK
ICAgICB2aXJ0dWFsIFJldGFpblB0cjxTZWNLZXlSZWY+IGNyZWF0ZUNyZWRlbnRpYWxQcml2YXRl
S2V5KExBQ29udGV4dCAqLCBTZWNBY2Nlc3NDb250cm9sUmVmLCBjb25zdCBTdHJpbmcmIHNlY0F0
dHJMYWJlbCwgTlNEYXRhICpzZWNBdHRyQXBwbGljYXRpb25UYWcpIGNvbnN0OwogICAgIHZpcnR1
YWwgdm9pZCBnZXRBdHRlc3RhdGlvbihTZWNLZXlSZWYsIE5TRGF0YSAqYXV0aERhdGEsIE5TRGF0
YSAqaGFzaCwgQXR0ZXN0YXRpb25DYWxsYmFjayYmKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQg
ZmlsdGVyUmVzcG9uc2VzKEhhc2hTZXQ8UmVmPFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBc3NlcnRp
b25SZXNwb25zZT4+JikgY29uc3QgeyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9u
Lm1tCmluZGV4IGExNTU1YzY4MDIxODBiNDI4ZmZmM2ZmYTBlZmVjYmNlYTE2NTVmYzcuLjgzYmRh
ZjE3MzA4OWFlNWI5MTFmN2JlMDRiOGJjNTE0ZDk1OWRiNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlvbi5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9M
b2NhbENvbm5lY3Rpb24ubW0KQEAgLTM5LDI0ICszOSw0MiBAQAogI2ltcG9ydCAiTG9jYWxBdXRo
ZW50aWNhdGlvblNvZnRMaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKLXZvaWQgTG9jYWxDb25uZWN0aW9uOjp2ZXJpZnlVc2VyKGNvbnN0IFN0
cmluZyYgcnBJZCwgU2VjQWNjZXNzQ29udHJvbFJlZiBhY2Nlc3NDb250cm9sLCBVc2VyVmVyaWZp
Y2F0aW9uQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKK25hbWVzcGFjZSB7Citz
dGF0aWMgU3RyaW5nIGJ1bmRsZU5hbWUoKQogeworICAgIFN0cmluZyBidW5kbGVOYW1lOworCisj
aWYgUExBVEZPUk0oTUFDKQorICAgIGJ1bmRsZU5hbWUgPSBbW05TUnVubmluZ0FwcGxpY2F0aW9u
IGN1cnJlbnRBcHBsaWNhdGlvbl0gbG9jYWxpemVkTmFtZV07CisjZW5kaWYKKworICAgIHJldHVy
biBidW5kbGVOYW1lOworfQorfSAvLyBuYW1lc3BhY2UKKwordm9pZCBMb2NhbENvbm5lY3Rpb246
OnZlcmlmeVVzZXIoY29uc3QgU3RyaW5nJiBycElkLCBDbGllbnREYXRhVHlwZSB0eXBlLCBTZWNB
Y2Nlc3NDb250cm9sUmVmIGFjY2Vzc0NvbnRyb2wsIFVzZXJWZXJpZmljYXRpb25DYWxsYmFjayYm
IGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAoreworICAgIFN0cmluZyB0aXRsZTsKKyAgICBzd2l0
Y2ggKHR5cGUpIHsKKyAgICBjYXNlIENsaWVudERhdGFUeXBlOjpDcmVhdGU6CisgICAgICAgIHRp
dGxlID0gbWFrZUNyZWRlbnRpYWxUb3VjaElEUHJvbXB0VGl0bGUoYnVuZGxlTmFtZSgpLCBycElk
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDbGllbnREYXRhVHlwZTo6R2V0OgorICAgICAg
ICB0aXRsZSA9IGdldEFzc2VydGlvblRvdWNoSURQcm9tcHRUaXRsZShidW5kbGVOYW1lKCksIHJw
SWQpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICB9CisKICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdE5TKFthbGxvY0xBQ29u
dGV4dEluc3RhbmNlKCkgaW5pdF0pOwogCiAgICAgYXV0byBvcHRpb25zID0gYWRvcHROUyhbW05T
TXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKICAgICBpZiAoW2NvbnRleHQgYmlvbWV0
cnlUeXBlXSA9PSBMQUJpb21ldHJ5VHlwZVRvdWNoSUQpIHsKLSNpZiBQTEFURk9STShJT1MpCi0g
ICAgICAgIFtvcHRpb25zIHNldE9iamVjdDpXZWJDb3JlOjpnZW5lcmljVG91Y2hJRFByb21wdFRp
dGxlKCkgZm9yS2V5OkAoTEFPcHRpb25BdXRoZW50aWNhdGlvblRpdGxlKV07Ci0gICAgICAgIEFT
U0VSVF9VTlVTRUQocnBJZCwgcnBJZCk7Ci0jZWxzZQotICAgICAgICBbb3B0aW9ucyBzZXRPYmpl
Y3Q6V2ViQ29yZTo6bWFrZUNyZWRlbnRpYWxUb3VjaElEUHJvbXB0VGl0bGUocnBJZCkgZm9yS2V5
OkAoTEFPcHRpb25BdXRoZW50aWNhdGlvblRpdGxlKV07Ci0jZW5kaWYKKyAgICAgICAgW29wdGlv
bnMgc2V0T2JqZWN0OnRpdGxlIGZvcktleTpAKExBT3B0aW9uQXV0aGVudGljYXRpb25UaXRsZSld
OwogICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6QE5PIGZvcktleTpAKExBT3B0aW9uRmFsbGJh
Y2tWaXNpYmxlKV07CiAgICAgfQotI2lmIFBMQVRGT1JNKElPUykKLSAgICBbb3B0aW9ucyBzZXRP
YmplY3Q6V2ViQ29yZTo6YmlvbWV0cmljRmFsbGJhY2tQcm9tcHRUaXRsZSgpIGZvcktleTpAKExB
T3B0aW9uUGFzc2NvZGVUaXRsZSldOwotI2VuZGlmCiAKICAgICBhdXRvIHJlcGx5ID0gbWFrZUJs
b2NrUHRyKFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSAoTlNEaWN0aW9uYXJ5ICosIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKICAgICAg
ICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2Fs
Q29ubmVjdGlvbi5oCmluZGV4IDAxMmVkYjlmMjE4NmIxNWUyMzBkZGMzNWJhZDQ3ODY1Mzk2MTQ2
ZTYuLjA0N2M2MzJhODYyODdjMWMwYjU4YzQ4OGM1MjRlYWMyOWJlYzM2MTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2Fs
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoK
ICAgICBleHBsaWNpdCBNb2NrTG9jYWxDb25uZWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok1vY2tXZWJB
dXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24mKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHZlcmlm
eVVzZXIoY29uc3QgU3RyaW5nJiwgU2VjQWNjZXNzQ29udHJvbFJlZiwgVXNlclZlcmlmaWNhdGlv
bkNhbGxiYWNrJiYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgdmVyaWZ5VXNlcihjb25zdCBTdHJp
bmcmLCBXZWJDb3JlOjpDbGllbnREYXRhVHlwZSwgU2VjQWNjZXNzQ29udHJvbFJlZiwgVXNlclZl
cmlmaWNhdGlvbkNhbGxiYWNrJiYpIGNvbnN0IGZpbmFsOwogICAgIFJldGFpblB0cjxTZWNLZXlS
ZWY+IGNyZWF0ZUNyZWRlbnRpYWxQcml2YXRlS2V5KExBQ29udGV4dCAqLCBTZWNBY2Nlc3NDb250
cm9sUmVmLCBjb25zdCBTdHJpbmcmIHNlY0F0dHJMYWJlbCwgTlNEYXRhICpzZWNBdHRyQXBwbGlj
YXRpb25UYWcpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgZ2V0QXR0ZXN0YXRpb24oU2VjS2V5UmVm
LCBOU0RhdGEgKmF1dGhEYXRhLCBOU0RhdGEgKmhhc2gsIEF0dGVzdGF0aW9uQ2FsbGJhY2smJikg
Y29uc3QgZmluYWw7CiAgICAgdm9pZCBmaWx0ZXJSZXNwb25zZXMoSGFzaFNldDxSZWY8V2ViQ29y
ZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPj4mKSBjb25zdCBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9j
a0xvY2FsQ29ubmVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5tbQppbmRleCAzZDVkNDAxMzA0YjdjOWNl
Y2Q4OTI5YWNiM2FjZjkzYTUwZDdkYmM4Li43NDg4N2YxNzIzNGNhYzc3M2FhMTI1MWI3ODA1MDRh
YWZjZjVhYjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLm1tCkBA
IC00NCw3ICs0NCw3IEBAIE1vY2tMb2NhbENvbm5lY3Rpb246Ok1vY2tMb2NhbENvbm5lY3Rpb24o
Y29uc3QgV2ViQ29yZTo6TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uCiB7CiB9CiAKLXZvaWQgTW9j
a0xvY2FsQ29ubmVjdGlvbjo6dmVyaWZ5VXNlcihjb25zdCBTdHJpbmcmLCBTZWNBY2Nlc3NDb250
cm9sUmVmLCBVc2VyVmVyaWZpY2F0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykgY29uc3QKK3ZvaWQg
TW9ja0xvY2FsQ29ubmVjdGlvbjo6dmVyaWZ5VXNlcihjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpD
bGllbnREYXRhVHlwZSwgU2VjQWNjZXNzQ29udHJvbFJlZiwgVXNlclZlcmlmaWNhdGlvbkNhbGxi
YWNrJiYgY2FsbGJhY2spIGNvbnN0CiB7CiAgICAgLy8gTW9jayBhc3luYyBvcGVyYXRpb25zLgog
ICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29uZmlndXJhdGlvbiA9IG1fY29uZmlndXJh
dGlvbiwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRp
Y2F0aW9uUmVxdWVzdERhdGEuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzBl
OTM3MTM0ZGQwMzE4ODEzOGJhYzk4NmVmOTEyZjc3N2EyZmNjOQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0
aW9uUmVxdWVzdERhdGEuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oIgor
CisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKworQ2xpZW50RGF0YVR5cGUgZ2V0Q2xpZW50RGF0YVR5cGUoY29uc3Qg
VmFyaWFudDxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLCBQdWJsaWNLZXlDcmVk
ZW50aWFsUmVxdWVzdE9wdGlvbnM+JiBvcHRpb25zKQoreworICAgIGlmIChXVEY6OmhvbGRzX2Fs
dGVybmF0aXZlPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+KG9wdGlvbnMpKQor
ICAgICAgICByZXR1cm4gQ2xpZW50RGF0YVR5cGU6OkNyZWF0ZTsKKyAgICByZXR1cm4gQ2xpZW50
RGF0YVR5cGU6OkdldDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0
RGF0YS5oCmluZGV4IDhlZGIzOWMxMDVlMjNmZmRkYTA4Yjg2MDFmODUxZmY2MTg4MDVhYjEuLjJm
NjEzNDUzZWUzNGQ0YWU3YWM3YTY3ZTI4ZmFjNjU2MDgxN2U0ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVx
dWVzdERhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0dsb2JhbEZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9X
ZWJBdXRoZW50aWNhdGlvbkNvbnN0YW50cy5oPgogI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CkBAIC01MSw2
ICs1Miw4IEBAIHN0cnVjdCBXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhIHsKICAgICBXZWJL
aXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvOwogfTsKIAorV2ViQ29yZTo6Q2xpZW50RGF0YVR5
cGUgZ2V0Q2xpZW50RGF0YVR5cGUoY29uc3QgVmFyaWFudDxXZWJDb3JlOjpQdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zLCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVz
dE9wdGlvbnM+Jik7CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxF
KFdFQl9BVVRITikK
</data>

          </attachment>
      

    </bug>

</bugzilla>