<?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>227453</bug_id>
          
          <creation_ts>2021-06-28 09:40:55 -0700</creation_ts>
          <short_desc>Live Text selections inside images is misaligned when &quot;object-fit&quot; is not &quot;fill&quot;</short_desc>
          <delta_ts>2021-06-28 14:45:17 -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>Platform</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1773099</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-28 09:40:55 -0700</bug_when>
    <thetext>On a Mac that supports live text:

1. Go to https://whsieh.github.io/examples/live-text
2. Try to select text in the images after the first</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773107</commentid>
    <comment_count>1</comment_count>
      <attachid>432403</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-28 10:06:53 -0700</bug_when>
    <thetext>Created attachment 432403
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773158</commentid>
    <comment_count>2</comment_count>
      <attachid>432414</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-28 12:35:10 -0700</bug_when>
    <thetext>Created attachment 432414
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773165</commentid>
    <comment_count>3</comment_count>
      <attachid>432414</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-06-28 13:10:25 -0700</bug_when>
    <thetext>Comment on attachment 432414
Patch

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

&gt; Source/WebCore/html/HTMLElement.cpp:1466
&gt; +    document().updateLayoutIfDimensionsOutOfDate(*this);

I don&apos;t think this is the right kind of layout? I think you want the normal update-if-needed-recursively</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773166</commentid>
    <comment_count>4</comment_count>
      <attachid>432414</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-28 13:22:39 -0700</bug_when>
    <thetext>Comment on attachment 432414
Patch

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

&gt;&gt; Source/WebCore/html/HTMLElement.cpp:1466
&gt;&gt; +    document().updateLayoutIfDimensionsOutOfDate(*this);
&gt; 
&gt; I don&apos;t think this is the right kind of layout? I think you want the normal update-if-needed-recursively

Good point — will change this to just be a standard `document().updateLayoutIgnorePendingStylesheets();`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773186</commentid>
    <comment_count>5</comment_count>
      <attachid>432419</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-28 14:02:41 -0700</bug_when>
    <thetext>Created attachment 432419
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773204</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-28 14:44:59 -0700</bug_when>
    <thetext>Committed r279349 (239217@main): &lt;https://commits.webkit.org/239217@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432419.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773205</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-28 14:45:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/79882889&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432403</attachid>
            <date>2021-06-28 10:06:53 -0700</date>
            <delta_ts>2021-06-28 12:35:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227453-20210628100652.patch</filename>
            <type>text/plain</type>
            <size>20025</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDFlMTQ1MzUyYjVjNWY2
Y2IyNmUwNmEyYTRkY2M5NjM2MmEyNjJhNy4uYjJkZDEyMDcyYmRmZmM3ZTdlZGY3MTQ3YjYwNTQ2
NDI5MWM2ZDI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTA2LTI4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIExpdmUgVGV4dCBz
ZWxlY3Rpb25zIGluc2lkZSBpbWFnZXMgaXMgbWlzYWxpZ25lZCB3aGVuICJvYmplY3QtZml0IiBp
cyBub3QgImZpbGwiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjc0NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXZSBjdXJyZW50bHkgdXNlIHRoZSBib3VuZHMgb2YgdGhlIGltYWdlIG92ZXJsYXkgaG9z
dCBlbGVtZW50IHdoZW4gaW5qZWN0aW5nIHRyYW5zZm9ybWVkIExpdmUgVGV4dCBpbnRvIGltYWdl
CisgICAgICAgIGVsZW1lbnQgVUEgc2hhZG93IHJvb3RzLiBIb3dldmVyLCB0aGlzIGNhdXNlcyB0
ZXh0IHRvIGxheSBvdXQgaW4gdGhlIHdyb25nIHBsYWNlIHJlbGF0aXZlIHRvIHRoZSBpbWFnZSB3
aGVuCisgICAgICAgIHVzaW5nIGFueSAib2JqZWN0LWZpdCIgdmFsdWVzIHRoYXQgYXJlIG5vdCAi
ZmlsbCIuIFRvIGFkZHJlc3MgdGhpcywgdXNlIHRoZSBgcmVwbGFjZWRDb250ZW50UmVjdCgpYCBv
ZiB0aGUgaW1hZ2UKKyAgICAgICAgcmVuZGVyZXIgd2hlbiBpbmplY3RpbmcgT0NSIHRleHQgcXVh
ZHMgaW5zdGVhZC4KKworICAgICAgICBUZXN0czogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlv
bi9pbWFnZS1vdmVybGF5LW9iamVjdC1maXQtY2hhbmdlLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1vYmplY3QtZml0Lmh0bWwK
KworICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEVsZW1lbnQ6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQpOiBTZWUgZGVzY3JpcHRp
b24gYWJvdmUgZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6dXBkYXRlRWxlbWVudHNXaXRoVGV4dFJlY29nbml0aW9uUmVz
dWx0cyk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpjYWNoZVRleHRSZWNvZ25pdGlvblJlc3Vs
dCk6CisKKyAgICAgICAgQWRkaXRpb25hbGx5IGFkanVzdCB0aGUgdGV4dCByZWNvZ25pdGlvbiBy
ZXN1bHQgY2FjaGluZyBtZWNoYW5pc20gdG8gdXBkYXRlIGltYWdlIG92ZXJsYXkgY29udGVudCB3
aGVuIGNoYW5naW5nCisgICAgICAgIHRoZSByZXBsYWNlZCBjb250ZW50IHJlY3QsIHJhdGhlciB0
aGFuIHRoZSBlbGVtZW50J3Mgb2Zmc2V0IHdpZHRoIG9yIGhlaWdodC4gVGhpcyBlbnN1cmVzIHRo
YXQgY2hhbmdpbmcgQ1NTCisgICAgICAgICJvYmplY3QtZml0IiB2YWx1ZXMgZHluYW1pY2FsbHkg
Zm9yIGltYWdlcyB3aXRoIExpdmUgVGV4dCBjYXVzZXMgTGl2ZSBUZXh0IGJvdW5kcyB0byBzdGF5
IHVwIHRvIGRhdGUuCisKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKwogMjAyMS0wNi0yNyAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TIDE1XSBG
aXggdGhlIGludGVybmFsIGJ1aWxkIGFmdGVyIHJkYXI6Ly83NjU0OTEwOQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmNwcAppbmRleCA3MTc0NWViM2VlYzQzMGU0MDA2M2Q2NjlkYTk0MThlYjAx
NmZlNjUwLi5mMGQ0MDA2YTFiNTI4MWRkMzYyNzdmZWEzYTNmZmZlN2RmNDM5MzY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtMTQ1NiwxMyArMTQ1Niw2IEBAIHZvaWQgSFRN
TEVsZW1lbnQ6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoY29uc3QgVGV4dFJlY29n
bml0aW9uUmVzdWx0JiByCiAgICAgICAgICAgICBzZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1By
b3BlcnR5V2Via2l0VXNlclNlbGVjdCwgQ1NTVmFsdWVUZXh0KTsKICAgICB9CiAKLSAgICBpZiAo
YXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKSB7Ci0gICAgICAgIGlmICghaXM8UmVu
ZGVySW1hZ2U+KHJlbmRlcmVyKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBkb3du
Y2FzdDxSZW5kZXJJbWFnZT4oKnJlbmRlcmVyKS5zZXRIYXNJbWFnZU92ZXJsYXkoKTsKLSAgICB9
Ci0KICAgICBpZiAoIWhhZEV4aXN0aW5nVGV4dFJlY29nbml0aW9uRWxlbWVudHMpIHsKICAgICAg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHNoYWRvd1N0
eWxlKFN0cmluZ0ltcGw6OmNyZWF0ZVdpdGhvdXRDb3B5aW5nKGltYWdlT3ZlcmxheVVzZXJBZ2Vu
dFN0eWxlU2hlZXQsIHNpemVvZihpbWFnZU92ZXJsYXlVc2VyQWdlbnRTdHlsZVNoZWV0KSkpOwog
ICAgICAgICBhdXRvIHN0eWxlID0gSFRNTFN0eWxlRWxlbWVudDo6Y3JlYXRlKEhUTUxOYW1lczo6
c3R5bGVUYWcsIGRvY3VtZW50KCksIGZhbHNlKTsKQEAgLTE0NzAsMTcgKzE0NjMsMzAgQEAgdm9p
ZCBIVE1MRWxlbWVudDo6dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBUZXh0
UmVjb2duaXRpb25SZXN1bHQmIHIKICAgICAgICAgc2hhZG93Um9vdC0+YXBwZW5kQ2hpbGQoV1RG
TW92ZShzdHlsZSkpOwogICAgIH0KIAotICAgIEludFNpemUgY29udGFpbmVyU2l6ZSB7IG9mZnNl
dFdpZHRoKCksIG9mZnNldEhlaWdodCgpIH07CisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJ
ZkRpbWVuc2lvbnNPdXRPZkRhdGUoKnRoaXMpOworCisgICAgYXV0byogcmVuZGVyZXIgPSB0aGlz
LT5yZW5kZXJlcigpOworICAgIGlmICghaXM8UmVuZGVySW1hZ2U+KHJlbmRlcmVyKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCpyZW5kZXJlcikuc2V0SGFz
SW1hZ2VPdmVybGF5KCk7CisKKyAgICBhdXRvIGNvbnRhaW5lclJlY3QgPSBlbmNsb3NpbmdJbnRS
ZWN0KGRvd25jYXN0PFJlbmRlckltYWdlPigqcmVuZGVyZXIpLnJlcGxhY2VkQ29udGVudFJlY3Qo
KSk7CisgICAgYXV0byBjb252ZXJ0VG9Db250YWluZXJDb29yZGluYXRlcyA9IFsmXShjb25zdCBG
bG9hdFF1YWQmIG5vcm1hbGl6ZWRRdWFkKSB7CisgICAgICAgIGF1dG8gcXVhZCA9IG5vcm1hbGl6
ZWRRdWFkOworICAgICAgICBxdWFkLnNjYWxlKGNvbnRhaW5lclJlY3Qud2lkdGgoKSwgY29udGFp
bmVyUmVjdC5oZWlnaHQoKSk7CisgICAgICAgIHF1YWQubW92ZShjb250YWluZXJSZWN0LngoKSwg
Y29udGFpbmVyUmVjdC55KCkpOworICAgICAgICByZXR1cm4gcXVhZDsKKyAgICB9OworCiAgICAg
Zm9yIChzaXplX3QgbGluZUluZGV4ID0gMDsgbGluZUluZGV4IDwgcmVzdWx0LmxpbmVzLnNpemUo
KTsgKytsaW5lSW5kZXgpIHsKICAgICAgICAgYXV0byYgbGluZUVsZW1lbnRzID0gdGV4dFJlY29n
bml0aW9uRWxlbWVudHMubGluZXNbbGluZUluZGV4XTsKICAgICAgICAgYXV0byYgbGluZUNvbnRh
aW5lciA9IGxpbmVFbGVtZW50cy5saW5lOwogICAgICAgICBhdXRvJiBsaW5lID0gcmVzdWx0Lmxp
bmVzW2xpbmVJbmRleF07Ci0gICAgICAgIGF1dG8gbGluZVF1YWQgPSBsaW5lLm5vcm1hbGl6ZWRR
dWFkOworICAgICAgICBhdXRvIGxpbmVRdWFkID0gY29udmVydFRvQ29udGFpbmVyQ29vcmRpbmF0
ZXMobGluZS5ub3JtYWxpemVkUXVhZCk7CiAgICAgICAgIGlmIChsaW5lUXVhZC5pc0VtcHR5KCkp
CiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBsaW5lUXVhZC5zY2FsZShjb250YWlu
ZXJTaXplLndpZHRoKCksIGNvbnRhaW5lclNpemUuaGVpZ2h0KCkpOwotCiAgICAgICAgIGF1dG8g
bGluZUJvdW5kcyA9IHJvdGF0ZWRCb3VuZGluZ1JlY3RXaXRoTWluaW11bUFuZ2xlT2ZSb3RhdGlv
bihsaW5lUXVhZCwgMC4wMSk7CiAgICAgICAgIGxpbmVDb250YWluZXItPnNldElubGluZVN0eWxl
UHJvcGVydHkoQ1NTUHJvcGVydHlXaWR0aCwgbGluZUJvdW5kcy5zaXplLndpZHRoKCksIENTU1Vu
aXRUeXBlOjpDU1NfUFgpOwogICAgICAgICBsaW5lQ29udGFpbmVyLT5zZXRJbmxpbmVTdHlsZVBy
b3BlcnR5KENTU1Byb3BlcnR5SGVpZ2h0LCBsaW5lQm91bmRzLnNpemUuaGVpZ2h0KCksIENTU1Vu
aXRUeXBlOjpDU1NfUFgpOwpAQCAtMTUwMCw4ICsxNTA2LDcgQEAgdm9pZCBIVE1MRWxlbWVudDo6
dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBUZXh0UmVjb2duaXRpb25SZXN1
bHQmIHIKICAgICAgICAgfTsKIAogICAgICAgICBhdXRvIG9mZnNldHNBbG9uZ0hvcml6b250YWxB
eGlzID0gbGluZS5jaGlsZHJlbi5tYXAoWyZdKGF1dG8mIGNoaWxkKSAtPiBXVEY6OlJhbmdlPGZs
b2F0PiB7Ci0gICAgICAgICAgICBhdXRvIHRleHRRdWFkID0gY2hpbGQubm9ybWFsaXplZFF1YWQ7
Ci0gICAgICAgICAgICB0ZXh0UXVhZC5zY2FsZShjb250YWluZXJTaXplLndpZHRoKCksIGNvbnRh
aW5lclNpemUuaGVpZ2h0KCkpOworICAgICAgICAgICAgYXV0byB0ZXh0UXVhZCA9IGNvbnZlcnRU
b0NvbnRhaW5lckNvb3JkaW5hdGVzKGNoaWxkLm5vcm1hbGl6ZWRRdWFkKTsKICAgICAgICAgICAg
IHJldHVybiB7CiAgICAgICAgICAgICAgICAgb2Zmc2V0QWxvbmdIb3Jpem9udGFsQXhpcyh0ZXh0
UXVhZC5wMSgpLCB0ZXh0UXVhZC5wNCgpKSwKICAgICAgICAgICAgICAgICBvZmZzZXRBbG9uZ0hv
cml6b250YWxBeGlzKHRleHRRdWFkLnAyKCksIHRleHRRdWFkLnAzKCkpCkBAIC0xNTc1LDkgKzE1
ODAsNyBAQCB2b2lkIEhUTUxFbGVtZW50Ojp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0
KGNvbnN0IFRleHRSZWNvZ25pdGlvblJlc3VsdCYgcgogICAgICAgICAgICAgY29udGludWU7CiAK
ICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBjb21lIHVwIHdpdGggYSB3YXkgdG8gY29hbGVz
Y2UgdGhlIGJvdW5kaW5nIHF1YWRzIGludG8gb25lIG9yIG1vcmUgcm90YXRlZCByZWN0cyB3aXRo
IHRoZSBzYW1lIGFuZ2xlIG9mIHJvdGF0aW9uLgotICAgICAgICBhdXRvIHRhcmdldFF1YWQgPSBk
YXRhRGV0ZWN0b3Iubm9ybWFsaXplZFF1YWRzLmZpcnN0KCk7Ci0gICAgICAgIHRhcmdldFF1YWQu
c2NhbGUoY29udGFpbmVyU2l6ZS53aWR0aCgpLCBjb250YWluZXJTaXplLmhlaWdodCgpKTsKLQor
ICAgICAgICBhdXRvIHRhcmdldFF1YWQgPSBjb252ZXJ0VG9Db250YWluZXJDb29yZGluYXRlcyhk
YXRhRGV0ZWN0b3Iubm9ybWFsaXplZFF1YWRzLmZpcnN0KCkpOwogICAgICAgICBhdXRvIHRhcmdl
dEJvdW5kcyA9IHJvdGF0ZWRCb3VuZGluZ1JlY3RXaXRoTWluaW11bUFuZ2xlT2ZSb3RhdGlvbih0
YXJnZXRRdWFkLCAwLjAxKTsKICAgICAgICAgZGF0YURldGVjdG9yQ29udGFpbmVyLT5zZXRJbmxp
bmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5V2lkdGgsIHRhcmdldEJvdW5kcy5zaXplLndpZHRo
KCksIENTU1VuaXRUeXBlOjpDU1NfUFgpOwogICAgICAgICBkYXRhRGV0ZWN0b3JDb250YWluZXIt
PnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlIZWlnaHQsIHRhcmdldEJvdW5kcy5z
aXplLmhlaWdodCgpLCBDU1NVbml0VHlwZTo6Q1NTX1BYKTsKQEAgLTE1OTUsNyArMTU5OCw3IEBA
IHZvaWQgSFRNTEVsZW1lbnQ6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoY29uc3Qg
VGV4dFJlY29nbml0aW9uUmVzdWx0JiByCiAKICAgICBpZiAoY2FjaGVUZXh0UmVjb2duaXRpb25S
ZXN1bHRzID09IENhY2hlVGV4dFJlY29nbml0aW9uUmVzdWx0czo6WWVzKSB7CiAgICAgICAgIGlm
IChhdXRvKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgICAgICBwYWdlLT5jYWNo
ZVRleHRSZWNvZ25pdGlvblJlc3VsdCgqdGhpcywgY29udGFpbmVyU2l6ZSwgcmVzdWx0KTsKKyAg
ICAgICAgICAgIHBhZ2UtPmNhY2hlVGV4dFJlY29nbml0aW9uUmVzdWx0KCp0aGlzLCBjb250YWlu
ZXJSZWN0LCByZXN1bHQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMmM2OTUx
YzI0ZDdhZWE1ODczMjc2ZDFkYjI3ZTAxZDNhMzcxMTgyMS4uZjM5MDZhYjM1NGZkZGZlZDdjZDM4
YjkyZjFjN2VhY2I1YzcxNzYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMDgsNiArMTA4LDcg
QEAKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlJlbmRlckltYWdl
LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVy
VGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC0zNjE4LDE3ICszNjE5LDIxIEBA
IHZvaWQgUGFnZTo6dXBkYXRlRWxlbWVudHNXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0cygpCiAg
ICAgICAgIHJldHVybiAhZWxlbWVudEFuZFJlc3VsdC5maXJzdDsKICAgICB9KTsKIAotICAgIGZv
ciAoYXV0byYgW2VsZW1lbnQsIHJlc3VsdEFuZFNpemVdIDogbV90ZXh0UmVjb2duaXRpb25SZXN1
bHRzQnlFbGVtZW50KSB7CisgICAgZm9yIChhdXRvJiBbZWxlbWVudCwgcmVzdWx0QW5kUmVjdF0g
OiBtX3RleHRSZWNvZ25pdGlvblJlc3VsdHNCeUVsZW1lbnQpIHsKICAgICAgICAgaWYgKCFlbGVt
ZW50IHx8ICFlbGVtZW50LT5pc0Nvbm5lY3RlZCgpKQogICAgICAgICAgICAgY29udGludWU7CiAK
ICAgICAgICAgYXV0byBwcm90ZWN0ZWRFbGVtZW50ID0gbWFrZVJlZigqZWxlbWVudCk7Ci0gICAg
ICAgIGF1dG8mIFtyZXN1bHQsIG9mZnNldFNpemVdID0gcmVzdWx0QW5kU2l6ZTsKLSAgICAgICAg
SW50U2l6ZSBuZXdPZmZzZXRTaXplIHsgcHJvdGVjdGVkRWxlbWVudC0+b2Zmc2V0V2lkdGgoKSwg
cHJvdGVjdGVkRWxlbWVudC0+b2Zmc2V0SGVpZ2h0KCkgfTsKLSAgICAgICAgaWYgKG9mZnNldFNp
emUgPT0gbmV3T2Zmc2V0U2l6ZSkKKyAgICAgICAgYXV0byYgW3Jlc3VsdCwgY29udGFpbmVyUmVj
dF0gPSByZXN1bHRBbmRSZWN0OworICAgICAgICBhdXRvIHJlbmRlcmVyID0gcHJvdGVjdGVkRWxl
bWVudC0+cmVuZGVyZXIoKTsKKyAgICAgICAgaWYgKCFpczxSZW5kZXJJbWFnZT4ocmVuZGVyZXIp
KQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgb2Zmc2V0U2l6ZSA9IG5ld09mZnNl
dFNpemU7CisgICAgICAgIGF1dG8gbmV3Q29udGFpbmVyUmVjdCA9IGVuY2xvc2luZ0ludFJlY3Qo
ZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCpyZW5kZXJlcikucmVwbGFjZWRDb250ZW50UmVjdCgpKTsK
KyAgICAgICAgaWYgKGNvbnRhaW5lclJlY3QgPT0gbmV3Q29udGFpbmVyUmVjdCkKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworCisgICAgICAgIGNvbnRhaW5lclJlY3QgPSBuZXdDb250YWluZXJSZWN0
OwogICAgICAgICBwcm90ZWN0ZWRFbGVtZW50LT51cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVz
dWx0KHJlc3VsdCwgSFRNTEVsZW1lbnQ6OkNhY2hlVGV4dFJlY29nbml0aW9uUmVzdWx0czo6Tm8p
OwogICAgIH0KIH0KQEAgLTM2MzgsNyArMzY0Myw3IEBAIGJvb2wgUGFnZTo6aGFzQ2FjaGVkVGV4
dFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IEhUTUxFbGVtZW50JiBlbGVtZW50KSBjb25zdAogICAg
IHJldHVybiBtX2VsZW1lbnRzV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdHMuY29udGFpbnMoZWxl
bWVudCk7CiB9CiAKLXZvaWQgUGFnZTo6Y2FjaGVUZXh0UmVjb2duaXRpb25SZXN1bHQoY29uc3Qg
SFRNTEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEludFNpemUmIG9mZnNldFNpemUsIGNvbnN0IFRl
eHRSZWNvZ25pdGlvblJlc3VsdCYgcmVzdWx0KQordm9pZCBQYWdlOjpjYWNoZVRleHRSZWNvZ25p
dGlvblJlc3VsdChjb25zdCBIVE1MRWxlbWVudCYgZWxlbWVudCwgY29uc3QgSW50UmVjdCYgY29u
dGFpbmVyUmVjdCwgY29uc3QgVGV4dFJlY29nbml0aW9uUmVzdWx0JiByZXN1bHQpCiB7CiAgICAg
bV9lbGVtZW50c1dpdGhUZXh0UmVjb2duaXRpb25SZXN1bHRzLmFkZChlbGVtZW50KTsKIApAQCAt
MzY0Nyw5ICszNjUyLDkgQEAgdm9pZCBQYWdlOjpjYWNoZVRleHRSZWNvZ25pdGlvblJlc3VsdChj
b25zdCBIVE1MRWxlbWVudCYgZWxlbWVudCwgY29uc3QgSW50U2l6ZSYKICAgICB9KTsKIAogICAg
IGlmIChpbmRleCA9PSBub3RGb3VuZCkKLSAgICAgICAgbV90ZXh0UmVjb2duaXRpb25SZXN1bHRz
QnlFbGVtZW50LmFwcGVuZCh7IG1ha2VXZWFrUHRyKGVsZW1lbnQpLCB7IHJlc3VsdCwgb2Zmc2V0
U2l6ZSB9IH0pOworICAgICAgICBtX3RleHRSZWNvZ25pdGlvblJlc3VsdHNCeUVsZW1lbnQuYXBw
ZW5kKHsgbWFrZVdlYWtQdHIoZWxlbWVudCksIHsgcmVzdWx0LCBjb250YWluZXJSZWN0IH0gfSk7
CiAgICAgZWxzZQotICAgICAgICBtX3RleHRSZWNvZ25pdGlvblJlc3VsdHNCeUVsZW1lbnRbaW5k
ZXhdLnNlY29uZCA9IHsgcmVzdWx0LCBvZmZzZXRTaXplIH07CisgICAgICAgIG1fdGV4dFJlY29n
bml0aW9uUmVzdWx0c0J5RWxlbWVudFtpbmRleF0uc2Vjb25kID0geyByZXN1bHQsIGNvbnRhaW5l
clJlY3QgfTsKIAogICAgIG1fdGV4dFJlY29nbml0aW9uUmVzdWx0c0J5RWxlbWVudC5yZW1vdmVB
bGxNYXRjaGluZyhbXShhdXRvJiBlbGVtZW50QW5kUmVzdWx0KSB7CiAgICAgICAgIHJldHVybiAh
ZWxlbWVudEFuZFJlc3VsdC5maXJzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggZDY3MWU3OGFhZTk2MGE5
NzY3NmJhMWI5MTIzM2RkODJkNzZhODk5MC4uMjA3OWM1YTU0YmIxMDg0ZWFlYzFiNTU1M2E2MTE1
MTAzYjA5N2M4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTg2Myw3ICs4NjMsNyBAQCBwdWJsaWM6CiAK
ICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYXND
YWNoZWRUZXh0UmVjb2duaXRpb25SZXN1bHQoY29uc3QgSFRNTEVsZW1lbnQmKSBjb25zdDsKLSAg
ICB2b2lkIGNhY2hlVGV4dFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IEhUTUxFbGVtZW50JiwgY29u
c3QgSW50U2l6ZSYgb2Zmc2V0U2l6ZSwgY29uc3QgVGV4dFJlY29nbml0aW9uUmVzdWx0Jik7Cisg
ICAgdm9pZCBjYWNoZVRleHRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBIVE1MRWxlbWVudCYsIGNv
bnN0IEludFJlY3QmIGNvbnRhaW5lclJlY3QsIGNvbnN0IFRleHRSZWNvZ25pdGlvblJlc3VsdCYp
OwogI2VuZGlmCiAKIHByaXZhdGU6CkBAIC0xMTg5LDcgKzExODksNyBAQCBwcml2YXRlOgogCiAj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgYmUg
cmVmYWN0b3JlZCB0byB1c2UgYSB3ZWFrIGhhc2ggbWFwIG9mIEhUTUxFbGVtZW50IHRvIHN0ZDo6
cGFpcjxUZXh0UmVjb2duaXRpb25SZXN1bHQsIEludFNpemU+LgotICAgIFZlY3RvcjxzdGQ6OnBh
aXI8V2Vha1B0cjxIVE1MRWxlbWVudD4sIHN0ZDo6cGFpcjxUZXh0UmVjb2duaXRpb25SZXN1bHQs
IEludFNpemU+Pj4gbV90ZXh0UmVjb2duaXRpb25SZXN1bHRzQnlFbGVtZW50OworICAgIFZlY3Rv
cjxzdGQ6OnBhaXI8V2Vha1B0cjxIVE1MRWxlbWVudD4sIHN0ZDo6cGFpcjxUZXh0UmVjb2duaXRp
b25SZXN1bHQsIEludFJlY3Q+Pj4gbV90ZXh0UmVjb2duaXRpb25SZXN1bHRzQnlFbGVtZW50Owog
ICAgIFdlYWtIYXNoU2V0PEhUTUxFbGVtZW50PiBtX2VsZW1lbnRzV2l0aFRleHRSZWNvZ25pdGlv
blJlc3VsdHM7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjk2MmVjMGI5YjlmNTg2ZjQwZmFiNjk2MzFm
OWZjZmNjMmY0YTFkYS4uZjU1Njk4MjU1NTZmYTJiZWU2ZWVkYTdhZGM2ODRiMDAzYTk0YjRkOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA2LTI4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIExpdmUgVGV4dCBzZWxlY3Rpb25zIGluc2lkZSBp
bWFnZXMgaXMgbWlzYWxpZ25lZCB3aGVuICJvYmplY3QtZml0IiBpcyBub3QgImZpbGwiCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc0NTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBjb3VwbGUg
b2YgbmV3IHRlc3RzLCBhbmQgZG8gc29tZSBtaW5vciBjbGVhbnVwIGluIGFuIGV4aXN0aW5nIHRl
c3QuCisKKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJs
YXktb2JqZWN0LWZpdC1jaGFuZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktb2JqZWN0LWZpdC1jaGFuZ2Uu
aHRtbDogQWRkZWQuCisKKyAgICAgICAgQWRkIGEgbGF5b3V0IHRlc3QgdG8gdmVyaWZ5IHRoYXQg
ZHluYW1pY2FsbHkgY2hhbmdpbmcgQ1NTICJvYmplY3QtZml0IiB2YWx1ZXMgZm9yIGFuIGltYWdl
IHdpdGggTGl2ZSBUZXh0IGNhdXNlcworICAgICAgICB0aGUgZGltZW5zaW9ucyBvZiB0aGUgTGl2
ZSBUZXh0IHRvIHVwZGF0ZSBhcyB3ZWxsLgorCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1y
ZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LW9iamVjdC1maXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktb2Jq
ZWN0LWZpdC5odG1sOiBBZGRlZC4KKworICAgICAgICBBZGQgYSBsYXlvdXQgdGVzdCB0byB2ZXJp
ZnkgdGhhdCBMaXZlIFRleHQgaXMgaW5qZWN0ZWQgY29ycmVjdGx5IHdoZW4gdXNpbmcgYWxsIDUg
dmFsdWVzIG9mICJvYmplY3QtZml0Ii4KKworICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVj
b2duaXRpb24vaW1hZ2Utb3ZlcmxheS1zaXplLWNoYW5nZS5odG1sOgorCisgICAgICAgIENsZWFu
IHVwIHRoaXMgbGF5b3V0IHRlc3QgYSBiaXQ6IHJlbW92ZSBhbiB1bm5lY2Vzc2FyaWx5IGluY2x1
ZGVkIHNjcmlwdCBmaWxlLCBhZGQgYSBtaXNzaW5nIGBoZWFkYCB0YWcgYW5kCisgICAgICAgIGRv
bid0IHRyeSB0byBpbmplY3QgYW4gaW1hZ2Ugb3ZlcmxheSAxMCB0aW1lcy4KKwogMjAyMS0wNi0y
NyAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bVEZDXSBB
ZGQgc3VwcG9ydCBmb3Igc2hyaW5raW5nIG92ZXItY29uc3RyYWluZWQgY29sdW1ucyBiYXNlZCBv
biB0aGUgd2lkdGggdHlwZSBwcmlvcml0eSBsaXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktb2JqZWN0LWZpdC1jaGFu
Z2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlv
bi9pbWFnZS1vdmVybGF5LW9iamVjdC1maXQtY2hhbmdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zZDJiNDE4Y2FhZTViYTAxMzM4ZWIxZTFmOTUwYWE5ZGExOTAzNGFmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVy
bGF5LW9iamVjdC1maXQtY2hhbmdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1BBU1Mg
d2lkdGggaXMgNTAKK1BBU1MgaGVpZ2h0IGlzIDI1CitQQVNTIHdpZHRoIGJlY2FtZSAxMDAKK1BB
U1MgaGVpZ2h0IGlzIDUwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNv
Z25pdGlvbi9pbWFnZS1vdmVybGF5LW9iamVjdC1maXQtY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktb2JqZWN0LWZpdC1j
aGFuZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzc1MDM4ZGQ4MDlmMmZlOTc5ODI3MThlZjc3MjczMWVi
MmNkMWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1y
ZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LW9iamVjdC1maXQtY2hhbmdlLmh0bWwKQEAgLTAsMCAr
MSw2MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2ltZyB7Cisg
ICAgd2lkdGg6IDEwMHB4OworICAgIGhlaWdodDogMjAwcHg7Cit9Cis8L3N0eWxlPgorPC9oZWFk
PgorPGJvZHk+Cis8aW1nIHNyYz0iLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2lt
Zz4KKzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2xldCBpbWFnZSA9IGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoImltZyIpOword2lkdGggPSAwOworaGVpZ2h0ID0gMDsKKworZnVuY3Rp
b24gdXBkYXRlSW1hZ2VPdmVybGF5VGV4dERpbWVuc2lvbnMoKSB7CisgICAgbGV0IHRleHRCb3Vu
ZGluZ1JlY3QgPSBpbnRlcm5hbHMuc2hhZG93Um9vdChpbWFnZSkucXVlcnlTZWxlY3RvcigiLmlt
YWdlLW92ZXJsYXktdGV4dCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgIHdpZHRoID0g
dGV4dEJvdW5kaW5nUmVjdC53aWR0aDsKKyAgICBoZWlnaHQgPSB0ZXh0Qm91bmRpbmdSZWN0Lmhl
aWdodDsKK30KKworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKKyAgICBp
bWFnZS5zdHlsZS5vYmplY3RGaXQgPSAiY29udGFpbiI7CisgICAgaW50ZXJuYWxzLmluc3RhbGxJ
bWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLjUsIDApLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLjUsIDAuMjUpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAsIDAuMjUpLAorICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiZm9vIiwKKyAgICAgICAg
ICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAg
ICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMCksCisg
ICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41
LCAwLjI1KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAsIDAuMjUpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAg
ICAgfQorICAgIF0pOworCisgICAgdXBkYXRlSW1hZ2VPdmVybGF5VGV4dERpbWVuc2lvbnMoKTsK
KworICAgIHNob3VsZEJlKCJ3aWR0aCIsICI1MCIpOworICAgIHNob3VsZEJlKCJoZWlnaHQiLCAi
MjUiKTsKKworICAgIGltYWdlLnN0eWxlLm9iamVjdEZpdCA9ICJjb3ZlciI7CisgICAgc2V0SW50
ZXJ2YWwodXBkYXRlSW1hZ2VPdmVybGF5VGV4dERpbWVuc2lvbnMsIDEwKTsKKworICAgIGF3YWl0
IHNob3VsZEJlY29tZUVxdWFsKCJ3aWR0aCIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgiaGVpZ2h0
IiwgIjUwIik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LW9iamVjdC1m
aXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlv
bi9pbWFnZS1vdmVybGF5LW9iamVjdC1maXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4ZmUz
MTkzODUyMzU4ZmI4ZjY4NjNlODFjNzNkMWNmZDFkNWQxYWUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktb2Jq
ZWN0LWZpdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorCitQQVNTIHRleHRSZWN0c1sn
ZmlsbCddIGlzIFswLCAwLCAxMDAsIDI1XQorUEFTUyB0ZXh0UmVjdHNbJ2NvbnRhaW4nXSBpcyBb
NTAsIDAsIDUwLCAyNV0KK1BBU1MgdGV4dFJlY3RzWydjb3ZlciddIGlzIFswLCAtNTAsIDEwMCwg
NTBdCitQQVNTIHRleHRSZWN0c1snbm9uZSddIGlzIFstMTAwLCAtMTUwLCAyMDAsIDEwMF0KK1BB
U1MgdGV4dFJlY3RzWydzY2FsZS1kb3duJ10gaXMgWzUwLCAwLCA1MCwgMjVdCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LW9iamVj
dC1maXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1h
Z2Utb3ZlcmxheS1vYmplY3QtZml0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWY0MzY0MjZiODgwMTY4Mjg3
ZTI3YTRlYzEyMzcxNzUzY2E5NTVmYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1vYmplY3QtZml0Lmh0bWwK
QEAgLTAsMCArMSw2NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4K
K2JvZHksIGh0bWwgeworICAgIG1hcmdpbjogMDsKK30KK2ltZyB7CisgICAgd2lkdGg6IDIwMHB4
OworICAgIGhlaWdodDogMTAwcHg7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDog
MDsKKyAgICBsZWZ0OiAwOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBzdHls
ZT0ib2JqZWN0LWZpdDogZmlsbDsiIHNyYz0iLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5n
Ij48L2ltZz4KKzxpbWcgc3R5bGU9Im9iamVjdC1maXQ6IGNvbnRhaW47IiBzcmM9Ii4uL3Jlc291
cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8aW1nIHN0eWxlPSJvYmplY3QtZml0OiBj
b3ZlcjsiIHNyYz0iLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzxpbWcg
c3R5bGU9Im9iamVjdC1maXQ6IG5vbmU7IiBzcmM9Ii4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAw
LnBuZyI+PC9pbWc+Cis8aW1nIHN0eWxlPSJvYmplY3QtZml0OiBzY2FsZS1kb3duOyIgc3JjPSIu
Li9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPHByZSBpZD0iY29uc29sZSI+
PC9wcmU+Cis8c2NyaXB0PgorZnVuY3Rpb24gaW1hZ2VPdmVybGF5VGV4dFJlY3QoaW1hZ2UpIHsK
KyAgICBsZXQgYm91bmRzID0gaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLnF1ZXJ5U2VsZWN0
b3IoIi5pbWFnZS1vdmVybGF5LXRleHQiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICBy
ZXR1cm4gWyBNYXRoLnJvdW5kKGJvdW5kcy5sZWZ0KSwgTWF0aC5yb3VuZChib3VuZHMudG9wKSwg
TWF0aC5yb3VuZChib3VuZHMud2lkdGgpLCBNYXRoLnJvdW5kKGJvdW5kcy5oZWlnaHQpIF07Cit9
CisKK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAgdGV4dFJlY3Rz
ID0geyB9OworCisgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiaW1nIikuZm9yRWFjaChp
bWFnZSA9PiB7CisgICAgICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBb
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAsIDApLAorICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMC41LCAwKSwKKyAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAuNSwgMC4yNSksCisgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAsIDAuMjUpLAorICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCisg
ICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiZm9v
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMC41LCAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjI1KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjI1KSwKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0KKyAgICAgICAgXSk7
CisKKyAgICAgICAgdGV4dFJlY3RzW2dldENvbXB1dGVkU3R5bGUoaW1hZ2UpLm9iamVjdEZpdF0g
PSBpbWFnZU92ZXJsYXlUZXh0UmVjdChpbWFnZSk7CisgICAgfSk7CisKKyAgICBzaG91bGRCZSgi
dGV4dFJlY3RzWydmaWxsJ10iLCAiWzAsIDAsIDEwMCwgMjVdIik7CisgICAgc2hvdWxkQmUoInRl
eHRSZWN0c1snY29udGFpbiddIiwgIls1MCwgMCwgNTAsIDI1XSIpOworICAgIHNob3VsZEJlKCJ0
ZXh0UmVjdHNbJ2NvdmVyJ10iLCAiWzAsIC01MCwgMTAwLCA1MF0iKTsKKyAgICBzaG91bGRCZSgi
dGV4dFJlY3RzWydub25lJ10iLCAiWy0xMDAsIC0xNTAsIDIwMCwgMTAwXSIpOworICAgIHNob3Vs
ZEJlKCJ0ZXh0UmVjdHNbJ3NjYWxlLWRvd24nXSIsICJbNTAsIDAsIDUwLCAyNV0iKTsKK30pOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFn
ZS1vdmVybGF5LXNpemUtY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0
LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktc2l6ZS1jaGFuZ2UuaHRtbAppbmRleCBhM2U0NDUy
YzNmOGFhZmYzYWIxYTI2MmE5NTUwZDg2MzkyYTJlMWU2Li4wYjVmZTVjODk1NWI1ZDY3YTJkYjVm
Y2I0MjI2YjUwYjY5ZjRlN2RlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90
ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktc2l6ZS1jaGFuZ2UuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktc2l6ZS1j
aGFuZ2UuaHRtbApAQCAtMSw3ICsxLDggQEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+Cis8aGVh
ZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+CiA8Ym9keT4KIDxpbWcgc3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5w
bmciPjwvaW1nPgogPHNjcmlwdD4KQEAgLTE3LDI1ICsxOCwyMyBAQCBmdW5jdGlvbiB1cGRhdGVJ
bWFnZU92ZXJsYXlUZXh0RGltZW5zaW9ucygpIHsKIH0KIAogYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsIGFzeW5jICgpID0+IHsKLSAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwOyArK2kpIHsKLSAg
ICAgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAw
LjUpLAotICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwg
MC41KSwKLSAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDEsIDEpLAotICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLjUsIDEpLAotICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiSGVsbG8iLAotICAgICAgICAg
ICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwK
LSAgICAgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MSwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMSwgMSksCi0gICAgICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKLSAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICB9Ci0gICAgICAgIF0pOwotICAgIH0KKyAgICBp
bnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWworICAgICAgICB7CisgICAgICAg
ICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAorICAgICAgICAg
ICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAg
Ym90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKKyAgICAgICAgICAgIGJv
dHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEpLAorICAgICAgICAgICAgY2hp
bGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAi
SGVsbG8iLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMC41LCAwLjUpLAorICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEpLAorICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIF0sCisgICAgICAgIH0KKyAgICBdKTsKIAogICAgIHVwZGF0ZUltYWdlT3ZlcmxheVRl
eHREaW1lbnNpb25zKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432414</attachid>
            <date>2021-06-28 12:35:10 -0700</date>
            <delta_ts>2021-06-28 13:10:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227453-20210628123509.patch</filename>
            <type>text/plain</type>
            <size>21038</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDFlMTQ1MzUyYjVjNWY2
Y2IyNmUwNmEyYTRkY2M5NjM2MmEyNjJhNy4uYzU3ZjFlMjcwMzBkY2I1NmE1NWYwNWYwMGMzMWE4
YjlhNzlhMjhmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTA2LTI4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIExpdmUgVGV4dCBz
ZWxlY3Rpb25zIGluc2lkZSBpbWFnZXMgaXMgbWlzYWxpZ25lZCB3aGVuICJvYmplY3QtZml0IiBp
cyBub3QgImZpbGwiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjc0NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXZSBjdXJyZW50bHkgdXNlIHRoZSBib3VuZHMgb2YgdGhlIGltYWdlIG92ZXJsYXkgaG9z
dCBlbGVtZW50IHdoZW4gaW5qZWN0aW5nIHRyYW5zZm9ybWVkIExpdmUgVGV4dCBpbnRvIGltYWdl
CisgICAgICAgIGVsZW1lbnQgVUEgc2hhZG93IHJvb3RzLiBIb3dldmVyLCB0aGlzIGNhdXNlcyB0
ZXh0IHRvIGxheSBvdXQgaW4gdGhlIHdyb25nIHBsYWNlIHJlbGF0aXZlIHRvIHRoZSBpbWFnZSB3
aGVuCisgICAgICAgIHVzaW5nIGFueSAib2JqZWN0LWZpdCIgdmFsdWVzIHRoYXQgYXJlIG5vdCAi
ZmlsbCIuIFRvIGFkZHJlc3MgdGhpcywgdXNlIHRoZSBgcmVwbGFjZWRDb250ZW50UmVjdCgpYCBv
ZiB0aGUgaW1hZ2UKKyAgICAgICAgcmVuZGVyZXIgd2hlbiBpbmplY3RpbmcgT0NSIHRleHQgcXVh
ZHMgaW5zdGVhZC4KKworICAgICAgICBUZXN0czogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlv
bi9pbWFnZS1vdmVybGF5LW9iamVjdC1maXQtY2hhbmdlLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1vYmplY3QtZml0Lmh0bWwK
KworICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEVsZW1lbnQ6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQpOiBTZWUgZGVzY3JpcHRp
b24gYWJvdmUgZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6dXBkYXRlRWxlbWVudHNXaXRoVGV4dFJlY29nbml0aW9uUmVz
dWx0cyk6CisKKyAgICAgICAgV2UgYWxzbyByZWZhY3RvciB0aGlzIGNvZGUgc28gdGhhdCB3ZSBk
b24ndCBpbW1lZGlhdGVseSB0cnkgdG8gdXBkYXRlIHRleHQgcmVjb2duaXRpb24gcmVzdWx0cywg
YW5kIGluc3RlYWQKKyAgICAgICAgcXVldWUgYW4gaW50ZXJuYWwgYXN5bmMgdGFzayB0byBkbyBz
by4gSW1tZWRpYXRlbHkgcGVyZm9ybWluZyB0aGUgdXBkYXRlIGhlcmUgY2FuIHBvdGVudGlhbGx5
IGNhdXNlIGEgZGVidWcKKyAgICAgICAgYXNzZXJ0aW9uIGR1ZSB0byBsZWF2aW5nIHVzIGluIGEg
c3RhdGUgd2hlcmUgd2UgcmVxdWlyZSBsYXlvdXQgaW1tZWRpYXRlbHkgYWZ0ZXIgYSByZW5kZXJp
bmcgdXBkYXRlLgorCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpjYWNoZVRleHRSZWNvZ25pdGlv
blJlc3VsdCk6CisKKyAgICAgICAgQWRkaXRpb25hbGx5IGFkanVzdCB0aGUgdGV4dCByZWNvZ25p
dGlvbiByZXN1bHQgY2FjaGluZyBtZWNoYW5pc20gdG8gdXBkYXRlIGltYWdlIG92ZXJsYXkgY29u
dGVudCB3aGVuIGNoYW5naW5nCisgICAgICAgIHRoZSByZXBsYWNlZCBjb250ZW50IHJlY3QsIHJh
dGhlciB0aGFuIHRoZSBlbGVtZW50J3Mgb2Zmc2V0IHdpZHRoIG9yIGhlaWdodC4gVGhpcyBlbnN1
cmVzIHRoYXQgY2hhbmdpbmcgQ1NTCisgICAgICAgICJvYmplY3QtZml0IiB2YWx1ZXMgZHluYW1p
Y2FsbHkgZm9yIGltYWdlcyB3aXRoIExpdmUgVGV4dCBjYXVzZXMgTGl2ZSBUZXh0IGJvdW5kcyB0
byBzdGF5IHVwIHRvIGRhdGUuCisKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKwogMjAyMS0wNi0y
NyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9T
IDE1XSBGaXggdGhlIGludGVybmFsIGJ1aWxkIGFmdGVyIHJkYXI6Ly83NjU0OTEwOQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCA3MTc0NWViM2VlYzQzMGU0MDA2M2Q2NjlkYTk0
MThlYjAxNmZlNjUwLi5mMGQ0MDA2YTFiNTI4MWRkMzYyNzdmZWEzYTNmZmZlN2RmNDM5MzY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtMTQ1NiwxMyArMTQ1Niw2IEBAIHZv
aWQgSFRNTEVsZW1lbnQ6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoY29uc3QgVGV4
dFJlY29nbml0aW9uUmVzdWx0JiByCiAgICAgICAgICAgICBzZXRJbmxpbmVTdHlsZVByb3BlcnR5
KENTU1Byb3BlcnR5V2Via2l0VXNlclNlbGVjdCwgQ1NTVmFsdWVUZXh0KTsKICAgICB9CiAKLSAg
ICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKSB7Ci0gICAgICAgIGlmICgh
aXM8UmVuZGVySW1hZ2U+KHJlbmRlcmVyKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICBkb3duY2FzdDxSZW5kZXJJbWFnZT4oKnJlbmRlcmVyKS5zZXRIYXNJbWFnZU92ZXJsYXkoKTsK
LSAgICB9Ci0KICAgICBpZiAoIWhhZEV4aXN0aW5nVGV4dFJlY29nbml0aW9uRWxlbWVudHMpIHsK
ICAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHNo
YWRvd1N0eWxlKFN0cmluZ0ltcGw6OmNyZWF0ZVdpdGhvdXRDb3B5aW5nKGltYWdlT3ZlcmxheVVz
ZXJBZ2VudFN0eWxlU2hlZXQsIHNpemVvZihpbWFnZU92ZXJsYXlVc2VyQWdlbnRTdHlsZVNoZWV0
KSkpOwogICAgICAgICBhdXRvIHN0eWxlID0gSFRNTFN0eWxlRWxlbWVudDo6Y3JlYXRlKEhUTUxO
YW1lczo6c3R5bGVUYWcsIGRvY3VtZW50KCksIGZhbHNlKTsKQEAgLTE0NzAsMTcgKzE0NjMsMzAg
QEAgdm9pZCBIVE1MRWxlbWVudDo6dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChjb25z
dCBUZXh0UmVjb2duaXRpb25SZXN1bHQmIHIKICAgICAgICAgc2hhZG93Um9vdC0+YXBwZW5kQ2hp
bGQoV1RGTW92ZShzdHlsZSkpOwogICAgIH0KIAotICAgIEludFNpemUgY29udGFpbmVyU2l6ZSB7
IG9mZnNldFdpZHRoKCksIG9mZnNldEhlaWdodCgpIH07CisgICAgZG9jdW1lbnQoKS51cGRhdGVM
YXlvdXRJZkRpbWVuc2lvbnNPdXRPZkRhdGUoKnRoaXMpOworCisgICAgYXV0byogcmVuZGVyZXIg
PSB0aGlzLT5yZW5kZXJlcigpOworICAgIGlmICghaXM8UmVuZGVySW1hZ2U+KHJlbmRlcmVyKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCpyZW5kZXJlciku
c2V0SGFzSW1hZ2VPdmVybGF5KCk7CisKKyAgICBhdXRvIGNvbnRhaW5lclJlY3QgPSBlbmNsb3Np
bmdJbnRSZWN0KGRvd25jYXN0PFJlbmRlckltYWdlPigqcmVuZGVyZXIpLnJlcGxhY2VkQ29udGVu
dFJlY3QoKSk7CisgICAgYXV0byBjb252ZXJ0VG9Db250YWluZXJDb29yZGluYXRlcyA9IFsmXShj
b25zdCBGbG9hdFF1YWQmIG5vcm1hbGl6ZWRRdWFkKSB7CisgICAgICAgIGF1dG8gcXVhZCA9IG5v
cm1hbGl6ZWRRdWFkOworICAgICAgICBxdWFkLnNjYWxlKGNvbnRhaW5lclJlY3Qud2lkdGgoKSwg
Y29udGFpbmVyUmVjdC5oZWlnaHQoKSk7CisgICAgICAgIHF1YWQubW92ZShjb250YWluZXJSZWN0
LngoKSwgY29udGFpbmVyUmVjdC55KCkpOworICAgICAgICByZXR1cm4gcXVhZDsKKyAgICB9Owor
CiAgICAgZm9yIChzaXplX3QgbGluZUluZGV4ID0gMDsgbGluZUluZGV4IDwgcmVzdWx0LmxpbmVz
LnNpemUoKTsgKytsaW5lSW5kZXgpIHsKICAgICAgICAgYXV0byYgbGluZUVsZW1lbnRzID0gdGV4
dFJlY29nbml0aW9uRWxlbWVudHMubGluZXNbbGluZUluZGV4XTsKICAgICAgICAgYXV0byYgbGlu
ZUNvbnRhaW5lciA9IGxpbmVFbGVtZW50cy5saW5lOwogICAgICAgICBhdXRvJiBsaW5lID0gcmVz
dWx0LmxpbmVzW2xpbmVJbmRleF07Ci0gICAgICAgIGF1dG8gbGluZVF1YWQgPSBsaW5lLm5vcm1h
bGl6ZWRRdWFkOworICAgICAgICBhdXRvIGxpbmVRdWFkID0gY29udmVydFRvQ29udGFpbmVyQ29v
cmRpbmF0ZXMobGluZS5ub3JtYWxpemVkUXVhZCk7CiAgICAgICAgIGlmIChsaW5lUXVhZC5pc0Vt
cHR5KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBsaW5lUXVhZC5zY2FsZShj
b250YWluZXJTaXplLndpZHRoKCksIGNvbnRhaW5lclNpemUuaGVpZ2h0KCkpOwotCiAgICAgICAg
IGF1dG8gbGluZUJvdW5kcyA9IHJvdGF0ZWRCb3VuZGluZ1JlY3RXaXRoTWluaW11bUFuZ2xlT2ZS
b3RhdGlvbihsaW5lUXVhZCwgMC4wMSk7CiAgICAgICAgIGxpbmVDb250YWluZXItPnNldElubGlu
ZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlXaWR0aCwgbGluZUJvdW5kcy5zaXplLndpZHRoKCks
IENTU1VuaXRUeXBlOjpDU1NfUFgpOwogICAgICAgICBsaW5lQ29udGFpbmVyLT5zZXRJbmxpbmVT
dHlsZVByb3BlcnR5KENTU1Byb3BlcnR5SGVpZ2h0LCBsaW5lQm91bmRzLnNpemUuaGVpZ2h0KCks
IENTU1VuaXRUeXBlOjpDU1NfUFgpOwpAQCAtMTUwMCw4ICsxNTA2LDcgQEAgdm9pZCBIVE1MRWxl
bWVudDo6dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBUZXh0UmVjb2duaXRp
b25SZXN1bHQmIHIKICAgICAgICAgfTsKIAogICAgICAgICBhdXRvIG9mZnNldHNBbG9uZ0hvcml6
b250YWxBeGlzID0gbGluZS5jaGlsZHJlbi5tYXAoWyZdKGF1dG8mIGNoaWxkKSAtPiBXVEY6OlJh
bmdlPGZsb2F0PiB7Ci0gICAgICAgICAgICBhdXRvIHRleHRRdWFkID0gY2hpbGQubm9ybWFsaXpl
ZFF1YWQ7Ci0gICAgICAgICAgICB0ZXh0UXVhZC5zY2FsZShjb250YWluZXJTaXplLndpZHRoKCks
IGNvbnRhaW5lclNpemUuaGVpZ2h0KCkpOworICAgICAgICAgICAgYXV0byB0ZXh0UXVhZCA9IGNv
bnZlcnRUb0NvbnRhaW5lckNvb3JkaW5hdGVzKGNoaWxkLm5vcm1hbGl6ZWRRdWFkKTsKICAgICAg
ICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgb2Zmc2V0QWxvbmdIb3Jpem9udGFsQXhp
cyh0ZXh0UXVhZC5wMSgpLCB0ZXh0UXVhZC5wNCgpKSwKICAgICAgICAgICAgICAgICBvZmZzZXRB
bG9uZ0hvcml6b250YWxBeGlzKHRleHRRdWFkLnAyKCksIHRleHRRdWFkLnAzKCkpCkBAIC0xNTc1
LDkgKzE1ODAsNyBAQCB2b2lkIEhUTUxFbGVtZW50Ojp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9u
UmVzdWx0KGNvbnN0IFRleHRSZWNvZ25pdGlvblJlc3VsdCYgcgogICAgICAgICAgICAgY29udGlu
dWU7CiAKICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBjb21lIHVwIHdpdGggYSB3YXkgdG8g
Y29hbGVzY2UgdGhlIGJvdW5kaW5nIHF1YWRzIGludG8gb25lIG9yIG1vcmUgcm90YXRlZCByZWN0
cyB3aXRoIHRoZSBzYW1lIGFuZ2xlIG9mIHJvdGF0aW9uLgotICAgICAgICBhdXRvIHRhcmdldFF1
YWQgPSBkYXRhRGV0ZWN0b3Iubm9ybWFsaXplZFF1YWRzLmZpcnN0KCk7Ci0gICAgICAgIHRhcmdl
dFF1YWQuc2NhbGUoY29udGFpbmVyU2l6ZS53aWR0aCgpLCBjb250YWluZXJTaXplLmhlaWdodCgp
KTsKLQorICAgICAgICBhdXRvIHRhcmdldFF1YWQgPSBjb252ZXJ0VG9Db250YWluZXJDb29yZGlu
YXRlcyhkYXRhRGV0ZWN0b3Iubm9ybWFsaXplZFF1YWRzLmZpcnN0KCkpOwogICAgICAgICBhdXRv
IHRhcmdldEJvdW5kcyA9IHJvdGF0ZWRCb3VuZGluZ1JlY3RXaXRoTWluaW11bUFuZ2xlT2ZSb3Rh
dGlvbih0YXJnZXRRdWFkLCAwLjAxKTsKICAgICAgICAgZGF0YURldGVjdG9yQ29udGFpbmVyLT5z
ZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5V2lkdGgsIHRhcmdldEJvdW5kcy5zaXpl
LndpZHRoKCksIENTU1VuaXRUeXBlOjpDU1NfUFgpOwogICAgICAgICBkYXRhRGV0ZWN0b3JDb250
YWluZXItPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlIZWlnaHQsIHRhcmdldEJv
dW5kcy5zaXplLmhlaWdodCgpLCBDU1NVbml0VHlwZTo6Q1NTX1BYKTsKQEAgLTE1OTUsNyArMTU5
OCw3IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQo
Y29uc3QgVGV4dFJlY29nbml0aW9uUmVzdWx0JiByCiAKICAgICBpZiAoY2FjaGVUZXh0UmVjb2du
aXRpb25SZXN1bHRzID09IENhY2hlVGV4dFJlY29nbml0aW9uUmVzdWx0czo6WWVzKSB7CiAgICAg
ICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgICAgICBwYWdl
LT5jYWNoZVRleHRSZWNvZ25pdGlvblJlc3VsdCgqdGhpcywgY29udGFpbmVyU2l6ZSwgcmVzdWx0
KTsKKyAgICAgICAgICAgIHBhZ2UtPmNhY2hlVGV4dFJlY29nbml0aW9uUmVzdWx0KCp0aGlzLCBj
b250YWluZXJSZWN0LCByZXN1bHQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXgg
MmM2OTUxYzI0ZDdhZWE1ODczMjc2ZDFkYjI3ZTAxZDNhMzcxMTgyMS4uZjJmMDFhYzgwNzRlNzIw
ODIxOGFjM2Y3NDlhMjczOTRiM2NkMWJhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMDgsNiAr
MTA4LDcgQEAKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNsdWRlICJSYW5nZS5o
IgogI2luY2x1ZGUgIlJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlJlbmRl
ckltYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAi
UmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC0zNjE4LDE4ICszNjE5
LDMzIEBAIHZvaWQgUGFnZTo6dXBkYXRlRWxlbWVudHNXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0
cygpCiAgICAgICAgIHJldHVybiAhZWxlbWVudEFuZFJlc3VsdC5maXJzdDsKICAgICB9KTsKIAot
ICAgIGZvciAoYXV0byYgW2VsZW1lbnQsIHJlc3VsdEFuZFNpemVdIDogbV90ZXh0UmVjb2duaXRp
b25SZXN1bHRzQnlFbGVtZW50KSB7Ci0gICAgICAgIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC0+
aXNDb25uZWN0ZWQoKSkKKyAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZjxIVE1MRWxlbWVudD4sIFRl
eHRSZWNvZ25pdGlvblJlc3VsdD4+IGVsZW1lbnRzVG9VcGRhdGU7CisgICAgZm9yIChhdXRvJiBb
ZWxlbWVudCwgcmVzdWx0QW5kUmVjdF0gOiBtX3RleHRSZWNvZ25pdGlvblJlc3VsdHNCeUVsZW1l
bnQpIHsKKyAgICAgICAgaWYgKCFlbGVtZW50LT5pc0Nvbm5lY3RlZCgpKQogICAgICAgICAgICAg
Y29udGludWU7CiAKKyAgICAgICAgYXV0byYgW3Jlc3VsdCwgY29udGFpbmVyUmVjdF0gPSByZXN1
bHRBbmRSZWN0OwogICAgICAgICBhdXRvIHByb3RlY3RlZEVsZW1lbnQgPSBtYWtlUmVmKCplbGVt
ZW50KTsKLSAgICAgICAgYXV0byYgW3Jlc3VsdCwgb2Zmc2V0U2l6ZV0gPSByZXN1bHRBbmRTaXpl
OwotICAgICAgICBJbnRTaXplIG5ld09mZnNldFNpemUgeyBwcm90ZWN0ZWRFbGVtZW50LT5vZmZz
ZXRXaWR0aCgpLCBwcm90ZWN0ZWRFbGVtZW50LT5vZmZzZXRIZWlnaHQoKSB9OwotICAgICAgICBp
ZiAob2Zmc2V0U2l6ZSA9PSBuZXdPZmZzZXRTaXplKQorICAgICAgICBhdXRvIHJlbmRlcmVyID0g
cHJvdGVjdGVkRWxlbWVudC0+cmVuZGVyZXIoKTsKKyAgICAgICAgaWYgKCFpczxSZW5kZXJJbWFn
ZT4ocmVuZGVyZXIpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgb2Zmc2V0U2l6
ZSA9IG5ld09mZnNldFNpemU7Ci0gICAgICAgIHByb3RlY3RlZEVsZW1lbnQtPnVwZGF0ZVdpdGhU
ZXh0UmVjb2duaXRpb25SZXN1bHQocmVzdWx0LCBIVE1MRWxlbWVudDo6Q2FjaGVUZXh0UmVjb2du
aXRpb25SZXN1bHRzOjpObyk7CisgICAgICAgIGF1dG8gbmV3Q29udGFpbmVyUmVjdCA9IGVuY2xv
c2luZ0ludFJlY3QoZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCpyZW5kZXJlcikucmVwbGFjZWRDb250
ZW50UmVjdCgpKTsKKyAgICAgICAgaWYgKGNvbnRhaW5lclJlY3QgPT0gbmV3Q29udGFpbmVyUmVj
dCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGNvbnRhaW5lclJlY3QgPSBuZXdD
b250YWluZXJSZWN0OworICAgICAgICBlbGVtZW50c1RvVXBkYXRlLmFwcGVuZCh7IFdURk1vdmUo
cHJvdGVjdGVkRWxlbWVudCksIHJlc3VsdCB9KTsKKyAgICB9CisKKyAgICBmb3IgKGF1dG8mIFtl
bGVtZW50LCByZXN1bHRdIDogZWxlbWVudHNUb1VwZGF0ZSkgeworICAgICAgICBlbGVtZW50LT5k
b2N1bWVudCgpLmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpJbnRlcm5hbEFzeW5j
VGFzaywgW3Jlc3VsdCA9IFRleHRSZWNvZ25pdGlvblJlc3VsdCB7IHJlc3VsdCB9LCB3ZWFrRWxl
bWVudCA9IG1ha2VXZWFrUHRyKGVsZW1lbnQuZ2V0KCkpXSB7CisgICAgICAgICAgICBhdXRvIGVs
ZW1lbnQgPSBtYWtlUmVmUHRyKHdlYWtFbGVtZW50LmdldCgpKTsKKyAgICAgICAgICAgIGlmICgh
ZWxlbWVudCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGVsZW1lbnQt
PnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQocmVzdWx0LCBIVE1MRWxlbWVudDo6Q2Fj
aGVUZXh0UmVjb2duaXRpb25SZXN1bHRzOjpObyk7CisgICAgICAgIH0pOwogICAgIH0KIH0KIApA
QCAtMzYzOCw3ICszNjU0LDcgQEAgYm9vbCBQYWdlOjpoYXNDYWNoZWRUZXh0UmVjb2duaXRpb25S
ZXN1bHQoY29uc3QgSFRNTEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0CiAgICAgcmV0dXJuIG1fZWxl
bWVudHNXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0cy5jb250YWlucyhlbGVtZW50KTsKIH0KIAot
dm9pZCBQYWdlOjpjYWNoZVRleHRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBIVE1MRWxlbWVudCYg
ZWxlbWVudCwgY29uc3QgSW50U2l6ZSYgb2Zmc2V0U2l6ZSwgY29uc3QgVGV4dFJlY29nbml0aW9u
UmVzdWx0JiByZXN1bHQpCit2b2lkIFBhZ2U6OmNhY2hlVGV4dFJlY29nbml0aW9uUmVzdWx0KGNv
bnN0IEhUTUxFbGVtZW50JiBlbGVtZW50LCBjb25zdCBJbnRSZWN0JiBjb250YWluZXJSZWN0LCBj
b25zdCBUZXh0UmVjb2duaXRpb25SZXN1bHQmIHJlc3VsdCkKIHsKICAgICBtX2VsZW1lbnRzV2l0
aFRleHRSZWNvZ25pdGlvblJlc3VsdHMuYWRkKGVsZW1lbnQpOwogCkBAIC0zNjQ3LDkgKzM2NjMs
OSBAQCB2b2lkIFBhZ2U6OmNhY2hlVGV4dFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IEhUTUxFbGVt
ZW50JiBlbGVtZW50LCBjb25zdCBJbnRTaXplJgogICAgIH0pOwogCiAgICAgaWYgKGluZGV4ID09
IG5vdEZvdW5kKQotICAgICAgICBtX3RleHRSZWNvZ25pdGlvblJlc3VsdHNCeUVsZW1lbnQuYXBw
ZW5kKHsgbWFrZVdlYWtQdHIoZWxlbWVudCksIHsgcmVzdWx0LCBvZmZzZXRTaXplIH0gfSk7Cisg
ICAgICAgIG1fdGV4dFJlY29nbml0aW9uUmVzdWx0c0J5RWxlbWVudC5hcHBlbmQoeyBtYWtlV2Vh
a1B0cihlbGVtZW50KSwgeyByZXN1bHQsIGNvbnRhaW5lclJlY3QgfSB9KTsKICAgICBlbHNlCi0g
ICAgICAgIG1fdGV4dFJlY29nbml0aW9uUmVzdWx0c0J5RWxlbWVudFtpbmRleF0uc2Vjb25kID0g
eyByZXN1bHQsIG9mZnNldFNpemUgfTsKKyAgICAgICAgbV90ZXh0UmVjb2duaXRpb25SZXN1bHRz
QnlFbGVtZW50W2luZGV4XS5zZWNvbmQgPSB7IHJlc3VsdCwgY29udGFpbmVyUmVjdCB9OwogCiAg
ICAgbV90ZXh0UmVjb2duaXRpb25SZXN1bHRzQnlFbGVtZW50LnJlbW92ZUFsbE1hdGNoaW5nKFtd
KGF1dG8mIGVsZW1lbnRBbmRSZXN1bHQpIHsKICAgICAgICAgcmV0dXJuICFlbGVtZW50QW5kUmVz
dWx0LmZpcnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBkNjcxZTc4YWFlOTYwYTk3Njc2YmExYjkxMjMz
ZGQ4MmQ3NmE4OTkwLi4yMDc5YzVhNTRiYjEwODRlYWVjMWI1NTUzYTYxMTUxMDNiMDk3YzgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaApAQCAtODYzLDcgKzg2Myw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShJ
TUFHRV9BTkFMWVNJUykKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhc0NhY2hlZFRleHRSZWNv
Z25pdGlvblJlc3VsdChjb25zdCBIVE1MRWxlbWVudCYpIGNvbnN0OwotICAgIHZvaWQgY2FjaGVU
ZXh0UmVjb2duaXRpb25SZXN1bHQoY29uc3QgSFRNTEVsZW1lbnQmLCBjb25zdCBJbnRTaXplJiBv
ZmZzZXRTaXplLCBjb25zdCBUZXh0UmVjb2duaXRpb25SZXN1bHQmKTsKKyAgICB2b2lkIGNhY2hl
VGV4dFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IEhUTUxFbGVtZW50JiwgY29uc3QgSW50UmVjdCYg
Y29udGFpbmVyUmVjdCwgY29uc3QgVGV4dFJlY29nbml0aW9uUmVzdWx0Jik7CiAjZW5kaWYKIAog
cHJpdmF0ZToKQEAgLTExODksNyArMTE4OSw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoSU1B
R0VfQU5BTFlTSVMpCiAgICAgLy8gRklYTUU6IFRoZXNlIHNob3VsZCBiZSByZWZhY3RvcmVkIHRv
IHVzZSBhIHdlYWsgaGFzaCBtYXAgb2YgSFRNTEVsZW1lbnQgdG8gc3RkOjpwYWlyPFRleHRSZWNv
Z25pdGlvblJlc3VsdCwgSW50U2l6ZT4uCi0gICAgVmVjdG9yPHN0ZDo6cGFpcjxXZWFrUHRyPEhU
TUxFbGVtZW50Piwgc3RkOjpwYWlyPFRleHRSZWNvZ25pdGlvblJlc3VsdCwgSW50U2l6ZT4+PiBt
X3RleHRSZWNvZ25pdGlvblJlc3VsdHNCeUVsZW1lbnQ7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjxX
ZWFrUHRyPEhUTUxFbGVtZW50Piwgc3RkOjpwYWlyPFRleHRSZWNvZ25pdGlvblJlc3VsdCwgSW50
UmVjdD4+PiBtX3RleHRSZWNvZ25pdGlvblJlc3VsdHNCeUVsZW1lbnQ7CiAgICAgV2Vha0hhc2hT
ZXQ8SFRNTEVsZW1lbnQ+IG1fZWxlbWVudHNXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0czsKICNl
bmRpZgogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBmOTYyZWMwYjliOWY1ODZmNDBmYWI2OTYzMWY5ZmNmY2MyZjRhMWRh
Li5mNTU2OTgyNTU1NmZhMmJlZTZlZWRhN2FkYzY4NGIwMDNhOTRiNGQ4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjggQEAKKzIwMjEtMDYtMjggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CisKKyAgICAgICAgTGl2ZSBUZXh0IHNlbGVjdGlvbnMgaW5zaWRlIGltYWdlcyBpcyBtaXNh
bGlnbmVkIHdoZW4gIm9iamVjdC1maXQiIGlzIG5vdCAiZmlsbCIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzQ1MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIGNvdXBsZSBvZiBuZXcgdGVzdHMs
IGFuZCBkbyBzb21lIG1pbm9yIGNsZWFudXAgaW4gYW4gZXhpc3RpbmcgdGVzdC4KKworICAgICAg
ICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1vYmplY3QtZml0
LWNoYW5nZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1vYmplY3QtZml0LWNoYW5nZS5odG1sOiBBZGRlZC4K
KworICAgICAgICBBZGQgYSBsYXlvdXQgdGVzdCB0byB2ZXJpZnkgdGhhdCBkeW5hbWljYWxseSBj
aGFuZ2luZyBDU1MgIm9iamVjdC1maXQiIHZhbHVlcyBmb3IgYW4gaW1hZ2Ugd2l0aCBMaXZlIFRl
eHQgY2F1c2VzCisgICAgICAgIHRoZSBkaW1lbnNpb25zIG9mIHRoZSBMaXZlIFRleHQgdG8gdXBk
YXRlIGFzIHdlbGwuCisKKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lt
YWdlLW92ZXJsYXktb2JqZWN0LWZpdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1vYmplY3QtZml0Lmh0bWw6
IEFkZGVkLgorCisgICAgICAgIEFkZCBhIGxheW91dCB0ZXN0IHRvIHZlcmlmeSB0aGF0IExpdmUg
VGV4dCBpcyBpbmplY3RlZCBjb3JyZWN0bHkgd2hlbiB1c2luZyBhbGwgNSB2YWx1ZXMgb2YgIm9i
amVjdC1maXQiLgorCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFn
ZS1vdmVybGF5LXNpemUtY2hhbmdlLmh0bWw6CisKKyAgICAgICAgQ2xlYW4gdXAgdGhpcyBsYXlv
dXQgdGVzdCBhIGJpdDogcmVtb3ZlIGFuIHVubmVjZXNzYXJpbHkgaW5jbHVkZWQgc2NyaXB0IGZp
bGUsIGFkZCBhIG1pc3NpbmcgYGhlYWRgIHRhZyBhbmQKKyAgICAgICAgZG9uJ3QgdHJ5IHRvIGlu
amVjdCBhbiBpbWFnZSBvdmVybGF5IDEwIHRpbWVzLgorCiAyMDIxLTA2LTI3ICBBbGFuIEJ1anRh
cyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtURkNdIEFkZCBzdXBwb3J0IGZv
ciBzaHJpbmtpbmcgb3Zlci1jb25zdHJhaW5lZCBjb2x1bW5zIGJhc2VkIG9uIHRoZSB3aWR0aCB0
eXBlIHByaW9yaXR5IGxpc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Rl
eHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1vYmplY3QtZml0LWNoYW5nZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJs
YXktb2JqZWN0LWZpdC1jaGFuZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkMmI0MThjYWFl
NWJhMDEzMzhlYjFlMWY5NTBhYTlkYTE5MDM0YWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktb2JqZWN0LWZp
dC1jaGFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorUEFTUyB3aWR0aCBpcyA1MAor
UEFTUyBoZWlnaHQgaXMgMjUKK1BBU1Mgd2lkdGggYmVjYW1lIDEwMAorUEFTUyBoZWlnaHQgaXMg
NTAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdl
LW92ZXJsYXktb2JqZWN0LWZpdC1jaGFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1vYmplY3QtZml0LWNoYW5nZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJjNzUwMzhkZDgwOWYyZmU5Nzk4MjcxOGVmNzcyNzMxZWIyY2QxZDgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lt
YWdlLW92ZXJsYXktb2JqZWN0LWZpdC1jaGFuZ2UuaHRtbApAQCAtMCwwICsxLDYxIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHN0eWxlPgoraW1nIHsKKyAgICB3aWR0aDogMTAw
cHg7CisgICAgaGVpZ2h0OiAyMDBweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxp
bWcgc3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPHNjcmlwdD4K
K2pzVGVzdElzQXN5bmMgPSB0cnVlOworbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiaW1nIik7Cit3aWR0aCA9IDA7CitoZWlnaHQgPSAwOworCitmdW5jdGlvbiB1cGRhdGVJbWFn
ZU92ZXJsYXlUZXh0RGltZW5zaW9ucygpIHsKKyAgICBsZXQgdGV4dEJvdW5kaW5nUmVjdCA9IGlu
dGVybmFscy5zaGFkb3dSb290KGltYWdlKS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2Utb3ZlcmxheS10
ZXh0IikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgd2lkdGggPSB0ZXh0Qm91bmRpbmdS
ZWN0LndpZHRoOworICAgIGhlaWdodCA9IHRleHRCb3VuZGluZ1JlY3QuaGVpZ2h0OworfQorCith
ZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4geworICAgIGltYWdlLnN0eWxlLm9i
amVjdEZpdCA9ICJjb250YWluIjsKKyAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShp
bWFnZSwgWworICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMCwgMCksCisgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAuNSwgMCksCisgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAuNSwgMC4yNSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMCwgMC4yNSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJmb28iLAorICAgICAgICAgICAgICAgICAgICB0
b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICAgICAgICAg
IHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwKSwKKyAgICAgICAgICAgICAg
ICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuMjUpLAorICAg
ICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC4y
NSksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAgICB9CisgICAgXSk7
CisKKyAgICB1cGRhdGVJbWFnZU92ZXJsYXlUZXh0RGltZW5zaW9ucygpOworCisgICAgc2hvdWxk
QmUoIndpZHRoIiwgIjUwIik7CisgICAgc2hvdWxkQmUoImhlaWdodCIsICIyNSIpOworCisgICAg
aW1hZ2Uuc3R5bGUub2JqZWN0Rml0ID0gImNvdmVyIjsKKyAgICBzZXRJbnRlcnZhbCh1cGRhdGVJ
bWFnZU92ZXJsYXlUZXh0RGltZW5zaW9ucywgMTApOworCisgICAgYXdhaXQgc2hvdWxkQmVjb21l
RXF1YWwoIndpZHRoIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJoZWlnaHQiLCAiNTAiKTsKKwor
ICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktb2JqZWN0LWZpdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJs
YXktb2JqZWN0LWZpdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDhmZTMxOTM4NTIzNThmYjhm
Njg2M2U4MWM3M2QxY2ZkMWQ1ZDFhZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1vYmplY3QtZml0LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKK1BBU1MgdGV4dFJlY3RzWydmaWxsJ10gaXMgWzAs
IDAsIDEwMCwgMjVdCitQQVNTIHRleHRSZWN0c1snY29udGFpbiddIGlzIFs1MCwgMCwgNTAsIDI1
XQorUEFTUyB0ZXh0UmVjdHNbJ2NvdmVyJ10gaXMgWzAsIC01MCwgMTAwLCA1MF0KK1BBU1MgdGV4
dFJlY3RzWydub25lJ10gaXMgWy0xMDAsIC0xNTAsIDIwMCwgMTAwXQorUEFTUyB0ZXh0UmVjdHNb
J3NjYWxlLWRvd24nXSBpcyBbNTAsIDAsIDUwLCAyNV0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktb2JqZWN0LWZpdC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LW9i
amVjdC1maXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjQzNjQyNmI4ODAxNjgyODdlMjdhNGVjMTIzNzE3
NTNjYTk1NWZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4
dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LW9iamVjdC1maXQuaHRtbApAQCAtMCwwICsxLDY0
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorYm9keSwgaHRtbCB7
CisgICAgbWFyZ2luOiAwOworfQoraW1nIHsKKyAgICB3aWR0aDogMjAwcHg7CisgICAgaGVpZ2h0
OiAxMDBweDsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6
IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIHN0eWxlPSJvYmplY3QtZml0
OiBmaWxsOyIgc3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPGlt
ZyBzdHlsZT0ib2JqZWN0LWZpdDogY29udGFpbjsiIHNyYz0iLi4vcmVzb3VyY2VzL2dyZWVuLTQw
MHg0MDAucG5nIj48L2ltZz4KKzxpbWcgc3R5bGU9Im9iamVjdC1maXQ6IGNvdmVyOyIgc3JjPSIu
Li9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPGltZyBzdHlsZT0ib2JqZWN0
LWZpdDogbm9uZTsiIHNyYz0iLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4K
KzxpbWcgc3R5bGU9Im9iamVjdC1maXQ6IHNjYWxlLWRvd247IiBzcmM9Ii4uL3Jlc291cmNlcy9n
cmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzxzY3Jp
cHQ+CitmdW5jdGlvbiBpbWFnZU92ZXJsYXlUZXh0UmVjdChpbWFnZSkgeworICAgIGxldCBib3Vu
ZHMgPSBpbnRlcm5hbHMuc2hhZG93Um9vdChpbWFnZSkucXVlcnlTZWxlY3RvcigiLmltYWdlLW92
ZXJsYXktdGV4dCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgIHJldHVybiBbIE1hdGgu
cm91bmQoYm91bmRzLmxlZnQpLCBNYXRoLnJvdW5kKGJvdW5kcy50b3ApLCBNYXRoLnJvdW5kKGJv
dW5kcy53aWR0aCksIE1hdGgucm91bmQoYm91bmRzLmhlaWdodCkgXTsKK30KKworYWRkRXZlbnRM
aXN0ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKKyAgICB0ZXh0UmVjdHMgPSB7IH07CisKKyAg
ICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJpbWciKS5mb3JFYWNoKGltYWdlID0+IHsKKyAg
ICAgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCks
CisgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAp
LAorICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41
LCAwLjI1KSwKKyAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMCwgMC4yNSksCisgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJmb28iLAorICAgICAgICAg
ICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAg
ICAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUs
IDApLAorICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjUsIDAuMjUpLAorICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuMjUpLAorICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfQorICAgICAgICBdKTsKKworICAgICAgICB0
ZXh0UmVjdHNbZ2V0Q29tcHV0ZWRTdHlsZShpbWFnZSkub2JqZWN0Rml0XSA9IGltYWdlT3Zlcmxh
eVRleHRSZWN0KGltYWdlKTsKKyAgICB9KTsKKworICAgIHNob3VsZEJlKCJ0ZXh0UmVjdHNbJ2Zp
bGwnXSIsICJbMCwgMCwgMTAwLCAyNV0iKTsKKyAgICBzaG91bGRCZSgidGV4dFJlY3RzWydjb250
YWluJ10iLCAiWzUwLCAwLCA1MCwgMjVdIik7CisgICAgc2hvdWxkQmUoInRleHRSZWN0c1snY292
ZXInXSIsICJbMCwgLTUwLCAxMDAsIDUwXSIpOworICAgIHNob3VsZEJlKCJ0ZXh0UmVjdHNbJ25v
bmUnXSIsICJbLTEwMCwgLTE1MCwgMjAwLCAxMDBdIik7CisgICAgc2hvdWxkQmUoInRleHRSZWN0
c1snc2NhbGUtZG93biddIiwgIls1MCwgMCwgNTAsIDI1XSIpOworfSk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktc2l6
ZS1jaGFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24v
aW1hZ2Utb3ZlcmxheS1zaXplLWNoYW5nZS5odG1sCmluZGV4IGEzZTQ0NTJjM2Y4YWFmZjNhYjFh
MjYyYTk1NTBkODYzOTJhMmUxZTYuLjBiNWZlNWM4OTU1YjVkNjdhMmRiNWZjYjQyMjZiNTBiNjlm
NGU3ZGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRp
b24vaW1hZ2Utb3ZlcmxheS1zaXplLWNoYW5nZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1zaXplLWNoYW5nZS5odG1sCkBA
IC0xLDcgKzEsOCBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KKzxoZWFkPgogPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KIDxi
b2R5PgogPGltZyBzcmM9Ii4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+CiA8
c2NyaXB0PgpAQCAtMTcsMjUgKzE4LDIzIEBAIGZ1bmN0aW9uIHVwZGF0ZUltYWdlT3ZlcmxheVRl
eHREaW1lbnNpb25zKCkgewogfQogCiBhZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkg
PT4gewotICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTA7ICsraSkgewotICAgICAgICBpbnRlcm5h
bHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWwotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCi0gICAgICAg
ICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAg
ICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCi0gICAg
ICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCi0g
ICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICAgICAgdGV4dCA6ICJIZWxsbyIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgx
LCAxKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjUsIDEpLAotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
XSwKLSAgICAgICAgICAgIH0KLSAgICAgICAgXSk7Ci0gICAgfQorICAgIGludGVybmFscy5pbnN0
YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCisgICAgICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCisgICAgICAgICAgICB0b3BSaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICBib3R0b21SaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJIZWxsbyIsCisgICAg
ICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSks
CisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwg
MC41KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgxLCAxKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAuNSwgMSksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAg
ICAgICAgfQorICAgIF0pOwogCiAgICAgdXBkYXRlSW1hZ2VPdmVybGF5VGV4dERpbWVuc2lvbnMo
KTsKIAo=
</data>
<flag name="review"
          id="454438"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432419</attachid>
            <date>2021-06-28 14:02:41 -0700</date>
            <delta_ts>2021-06-28 14:45:01 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-227453-20210628140240.patch</filename>
            <type>text/plain</type>
            <size>21028</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDFlMTQ1MzUyYjVjNWY2
Y2IyNmUwNmEyYTRkY2M5NjM2MmEyNjJhNy4uMzUzOTdlYTFiMzQ0NzJlMjViNmQ0NjUzZWNmNzcy
NTJlMzg4MDJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTA2LTI4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIExpdmUgVGV4dCBz
ZWxlY3Rpb25zIGluc2lkZSBpbWFnZXMgaXMgbWlzYWxpZ25lZCB3aGVuICJvYmplY3QtZml0IiBp
cyBub3QgImZpbGwiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjc0NTMKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAg
IFdlIGN1cnJlbnRseSB1c2UgdGhlIGJvdW5kcyBvZiB0aGUgaW1hZ2Ugb3ZlcmxheSBob3N0IGVs
ZW1lbnQgd2hlbiBpbmplY3RpbmcgdHJhbnNmb3JtZWQgTGl2ZSBUZXh0IGludG8gaW1hZ2UKKyAg
ICAgICAgZWxlbWVudCBVQSBzaGFkb3cgcm9vdHMuIEhvd2V2ZXIsIHRoaXMgY2F1c2VzIHRleHQg
dG8gbGF5IG91dCBpbiB0aGUgd3JvbmcgcGxhY2UgcmVsYXRpdmUgdG8gdGhlIGltYWdlIHdoZW4K
KyAgICAgICAgdXNpbmcgYW55ICJvYmplY3QtZml0IiB2YWx1ZXMgdGhhdCBhcmUgbm90ICJmaWxs
Ii4gVG8gYWRkcmVzcyB0aGlzLCB1c2UgdGhlIGByZXBsYWNlZENvbnRlbnRSZWN0KClgIG9mIHRo
ZSBpbWFnZQorICAgICAgICByZW5kZXJlciB3aGVuIGluamVjdGluZyBPQ1IgdGV4dCBxdWFkcyBp
bnN0ZWFkLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lt
YWdlLW92ZXJsYXktb2JqZWN0LWZpdC1jaGFuZ2UuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9p
bWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LW9iamVjdC1maXQuaHRtbAorCisg
ICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxl
bWVudDo6dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdCk6IFNlZSBkZXNjcmlwdGlvbiBh
Ym92ZSBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjp1cGRhdGVFbGVtZW50c1dpdGhUZXh0UmVjb2duaXRpb25SZXN1bHRz
KToKKworICAgICAgICBXZSBhbHNvIHJlZmFjdG9yIHRoaXMgY29kZSBzbyB0aGF0IHdlIGRvbid0
IGltbWVkaWF0ZWx5IHRyeSB0byB1cGRhdGUgdGV4dCByZWNvZ25pdGlvbiByZXN1bHRzLCBhbmQg
aW5zdGVhZAorICAgICAgICBxdWV1ZSBhbiBpbnRlcm5hbCBhc3luYyB0YXNrIHRvIGRvIHNvLiBJ
bW1lZGlhdGVseSBwZXJmb3JtaW5nIHRoZSB1cGRhdGUgaGVyZSBjYW4gcG90ZW50aWFsbHkgY2F1
c2UgYSBkZWJ1ZworICAgICAgICBhc3NlcnRpb24gZHVlIHRvIGxlYXZpbmcgdXMgaW4gYSBzdGF0
ZSB3aGVyZSB3ZSByZXF1aXJlIGxheW91dCBpbW1lZGlhdGVseSBhZnRlciBhIHJlbmRlcmluZyB1
cGRhdGUuCisKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmNhY2hlVGV4dFJlY29nbml0aW9uUmVz
dWx0KToKKworICAgICAgICBBZGRpdGlvbmFsbHkgYWRqdXN0IHRoZSB0ZXh0IHJlY29nbml0aW9u
IHJlc3VsdCBjYWNoaW5nIG1lY2hhbmlzbSB0byB1cGRhdGUgaW1hZ2Ugb3ZlcmxheSBjb250ZW50
IHdoZW4gY2hhbmdpbmcKKyAgICAgICAgdGhlIHJlcGxhY2VkIGNvbnRlbnQgcmVjdCwgcmF0aGVy
IHRoYW4gdGhlIGVsZW1lbnQncyBvZmZzZXQgd2lkdGggb3IgaGVpZ2h0LiBUaGlzIGVuc3VyZXMg
dGhhdCBjaGFuZ2luZyBDU1MKKyAgICAgICAgIm9iamVjdC1maXQiIHZhbHVlcyBkeW5hbWljYWxs
eSBmb3IgaW1hZ2VzIHdpdGggTGl2ZSBUZXh0IGNhdXNlcyBMaXZlIFRleHQgYm91bmRzIHRvIHN0
YXkgdXAgdG8gZGF0ZS4KKworICAgICAgICAqIHBhZ2UvUGFnZS5oOgorCiAyMDIxLTA2LTI3ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1MgMTVd
IEZpeCB0aGUgaW50ZXJuYWwgYnVpbGQgYWZ0ZXIgcmRhcjovLzc2NTQ5MTA5CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IDcxNzQ1ZWIzZWVjNDMwZTQwMDYzZDY2OWRhOTQxOGVi
MDE2ZmU2NTAuLjk5YjI5ZGM1ZjgwYzRhZmU4MjdiYjFiMDg0ZTk4NDVhM2UwYTBiYTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC0xNDU2LDEzICsxNDU2LDYgQEAgdm9pZCBI
VE1MRWxlbWVudDo6dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBUZXh0UmVj
b2duaXRpb25SZXN1bHQmIHIKICAgICAgICAgICAgIHNldElubGluZVN0eWxlUHJvcGVydHkoQ1NT
UHJvcGVydHlXZWJraXRVc2VyU2VsZWN0LCBDU1NWYWx1ZVRleHQpOwogICAgIH0KIAotICAgIGlm
IChhdXRvKiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkpIHsKLSAgICAgICAgaWYgKCFpczxS
ZW5kZXJJbWFnZT4ocmVuZGVyZXIpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGRv
d25jYXN0PFJlbmRlckltYWdlPigqcmVuZGVyZXIpLnNldEhhc0ltYWdlT3ZlcmxheSgpOwotICAg
IH0KLQogICAgIGlmICghaGFkRXhpc3RpbmdUZXh0UmVjb2duaXRpb25FbGVtZW50cykgewogICAg
ICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gc2hhZG93
U3R5bGUoU3RyaW5nSW1wbDo6Y3JlYXRlV2l0aG91dENvcHlpbmcoaW1hZ2VPdmVybGF5VXNlckFn
ZW50U3R5bGVTaGVldCwgc2l6ZW9mKGltYWdlT3ZlcmxheVVzZXJBZ2VudFN0eWxlU2hlZXQpKSk7
CiAgICAgICAgIGF1dG8gc3R5bGUgPSBIVE1MU3R5bGVFbGVtZW50OjpjcmVhdGUoSFRNTE5hbWVz
OjpzdHlsZVRhZywgZG9jdW1lbnQoKSwgZmFsc2UpOwpAQCAtMTQ3MCwxNyArMTQ2MywzMCBAQCB2
b2lkIEhUTUxFbGVtZW50Ojp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFRl
eHRSZWNvZ25pdGlvblJlc3VsdCYgcgogICAgICAgICBzaGFkb3dSb290LT5hcHBlbmRDaGlsZChX
VEZNb3ZlKHN0eWxlKSk7CiAgICAgfQogCi0gICAgSW50U2l6ZSBjb250YWluZXJTaXplIHsgb2Zm
c2V0V2lkdGgoKSwgb2Zmc2V0SGVpZ2h0KCkgfTsKKyAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworCisgICAgYXV0byogcmVuZGVyZXIgPSB0aGlz
LT5yZW5kZXJlcigpOworICAgIGlmICghaXM8UmVuZGVySW1hZ2U+KHJlbmRlcmVyKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCpyZW5kZXJlcikuc2V0SGFz
SW1hZ2VPdmVybGF5KCk7CisKKyAgICBhdXRvIGNvbnRhaW5lclJlY3QgPSBlbmNsb3NpbmdJbnRS
ZWN0KGRvd25jYXN0PFJlbmRlckltYWdlPigqcmVuZGVyZXIpLnJlcGxhY2VkQ29udGVudFJlY3Qo
KSk7CisgICAgYXV0byBjb252ZXJ0VG9Db250YWluZXJDb29yZGluYXRlcyA9IFsmXShjb25zdCBG
bG9hdFF1YWQmIG5vcm1hbGl6ZWRRdWFkKSB7CisgICAgICAgIGF1dG8gcXVhZCA9IG5vcm1hbGl6
ZWRRdWFkOworICAgICAgICBxdWFkLnNjYWxlKGNvbnRhaW5lclJlY3Qud2lkdGgoKSwgY29udGFp
bmVyUmVjdC5oZWlnaHQoKSk7CisgICAgICAgIHF1YWQubW92ZShjb250YWluZXJSZWN0LngoKSwg
Y29udGFpbmVyUmVjdC55KCkpOworICAgICAgICByZXR1cm4gcXVhZDsKKyAgICB9OworCiAgICAg
Zm9yIChzaXplX3QgbGluZUluZGV4ID0gMDsgbGluZUluZGV4IDwgcmVzdWx0LmxpbmVzLnNpemUo
KTsgKytsaW5lSW5kZXgpIHsKICAgICAgICAgYXV0byYgbGluZUVsZW1lbnRzID0gdGV4dFJlY29n
bml0aW9uRWxlbWVudHMubGluZXNbbGluZUluZGV4XTsKICAgICAgICAgYXV0byYgbGluZUNvbnRh
aW5lciA9IGxpbmVFbGVtZW50cy5saW5lOwogICAgICAgICBhdXRvJiBsaW5lID0gcmVzdWx0Lmxp
bmVzW2xpbmVJbmRleF07Ci0gICAgICAgIGF1dG8gbGluZVF1YWQgPSBsaW5lLm5vcm1hbGl6ZWRR
dWFkOworICAgICAgICBhdXRvIGxpbmVRdWFkID0gY29udmVydFRvQ29udGFpbmVyQ29vcmRpbmF0
ZXMobGluZS5ub3JtYWxpemVkUXVhZCk7CiAgICAgICAgIGlmIChsaW5lUXVhZC5pc0VtcHR5KCkp
CiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBsaW5lUXVhZC5zY2FsZShjb250YWlu
ZXJTaXplLndpZHRoKCksIGNvbnRhaW5lclNpemUuaGVpZ2h0KCkpOwotCiAgICAgICAgIGF1dG8g
bGluZUJvdW5kcyA9IHJvdGF0ZWRCb3VuZGluZ1JlY3RXaXRoTWluaW11bUFuZ2xlT2ZSb3RhdGlv
bihsaW5lUXVhZCwgMC4wMSk7CiAgICAgICAgIGxpbmVDb250YWluZXItPnNldElubGluZVN0eWxl
UHJvcGVydHkoQ1NTUHJvcGVydHlXaWR0aCwgbGluZUJvdW5kcy5zaXplLndpZHRoKCksIENTU1Vu
aXRUeXBlOjpDU1NfUFgpOwogICAgICAgICBsaW5lQ29udGFpbmVyLT5zZXRJbmxpbmVTdHlsZVBy
b3BlcnR5KENTU1Byb3BlcnR5SGVpZ2h0LCBsaW5lQm91bmRzLnNpemUuaGVpZ2h0KCksIENTU1Vu
aXRUeXBlOjpDU1NfUFgpOwpAQCAtMTUwMCw4ICsxNTA2LDcgQEAgdm9pZCBIVE1MRWxlbWVudDo6
dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBUZXh0UmVjb2duaXRpb25SZXN1
bHQmIHIKICAgICAgICAgfTsKIAogICAgICAgICBhdXRvIG9mZnNldHNBbG9uZ0hvcml6b250YWxB
eGlzID0gbGluZS5jaGlsZHJlbi5tYXAoWyZdKGF1dG8mIGNoaWxkKSAtPiBXVEY6OlJhbmdlPGZs
b2F0PiB7Ci0gICAgICAgICAgICBhdXRvIHRleHRRdWFkID0gY2hpbGQubm9ybWFsaXplZFF1YWQ7
Ci0gICAgICAgICAgICB0ZXh0UXVhZC5zY2FsZShjb250YWluZXJTaXplLndpZHRoKCksIGNvbnRh
aW5lclNpemUuaGVpZ2h0KCkpOworICAgICAgICAgICAgYXV0byB0ZXh0UXVhZCA9IGNvbnZlcnRU
b0NvbnRhaW5lckNvb3JkaW5hdGVzKGNoaWxkLm5vcm1hbGl6ZWRRdWFkKTsKICAgICAgICAgICAg
IHJldHVybiB7CiAgICAgICAgICAgICAgICAgb2Zmc2V0QWxvbmdIb3Jpem9udGFsQXhpcyh0ZXh0
UXVhZC5wMSgpLCB0ZXh0UXVhZC5wNCgpKSwKICAgICAgICAgICAgICAgICBvZmZzZXRBbG9uZ0hv
cml6b250YWxBeGlzKHRleHRRdWFkLnAyKCksIHRleHRRdWFkLnAzKCkpCkBAIC0xNTc1LDkgKzE1
ODAsNyBAQCB2b2lkIEhUTUxFbGVtZW50Ojp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0
KGNvbnN0IFRleHRSZWNvZ25pdGlvblJlc3VsdCYgcgogICAgICAgICAgICAgY29udGludWU7CiAK
ICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBjb21lIHVwIHdpdGggYSB3YXkgdG8gY29hbGVz
Y2UgdGhlIGJvdW5kaW5nIHF1YWRzIGludG8gb25lIG9yIG1vcmUgcm90YXRlZCByZWN0cyB3aXRo
IHRoZSBzYW1lIGFuZ2xlIG9mIHJvdGF0aW9uLgotICAgICAgICBhdXRvIHRhcmdldFF1YWQgPSBk
YXRhRGV0ZWN0b3Iubm9ybWFsaXplZFF1YWRzLmZpcnN0KCk7Ci0gICAgICAgIHRhcmdldFF1YWQu
c2NhbGUoY29udGFpbmVyU2l6ZS53aWR0aCgpLCBjb250YWluZXJTaXplLmhlaWdodCgpKTsKLQor
ICAgICAgICBhdXRvIHRhcmdldFF1YWQgPSBjb252ZXJ0VG9Db250YWluZXJDb29yZGluYXRlcyhk
YXRhRGV0ZWN0b3Iubm9ybWFsaXplZFF1YWRzLmZpcnN0KCkpOwogICAgICAgICBhdXRvIHRhcmdl
dEJvdW5kcyA9IHJvdGF0ZWRCb3VuZGluZ1JlY3RXaXRoTWluaW11bUFuZ2xlT2ZSb3RhdGlvbih0
YXJnZXRRdWFkLCAwLjAxKTsKICAgICAgICAgZGF0YURldGVjdG9yQ29udGFpbmVyLT5zZXRJbmxp
bmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5V2lkdGgsIHRhcmdldEJvdW5kcy5zaXplLndpZHRo
KCksIENTU1VuaXRUeXBlOjpDU1NfUFgpOwogICAgICAgICBkYXRhRGV0ZWN0b3JDb250YWluZXIt
PnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlIZWlnaHQsIHRhcmdldEJvdW5kcy5z
aXplLmhlaWdodCgpLCBDU1NVbml0VHlwZTo6Q1NTX1BYKTsKQEAgLTE1OTUsNyArMTU5OCw3IEBA
IHZvaWQgSFRNTEVsZW1lbnQ6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoY29uc3Qg
VGV4dFJlY29nbml0aW9uUmVzdWx0JiByCiAKICAgICBpZiAoY2FjaGVUZXh0UmVjb2duaXRpb25S
ZXN1bHRzID09IENhY2hlVGV4dFJlY29nbml0aW9uUmVzdWx0czo6WWVzKSB7CiAgICAgICAgIGlm
IChhdXRvKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgICAgICBwYWdlLT5jYWNo
ZVRleHRSZWNvZ25pdGlvblJlc3VsdCgqdGhpcywgY29udGFpbmVyU2l6ZSwgcmVzdWx0KTsKKyAg
ICAgICAgICAgIHBhZ2UtPmNhY2hlVGV4dFJlY29nbml0aW9uUmVzdWx0KCp0aGlzLCBjb250YWlu
ZXJSZWN0LCByZXN1bHQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMmM2OTUx
YzI0ZDdhZWE1ODczMjc2ZDFkYjI3ZTAxZDNhMzcxMTgyMS4uZjJmMDFhYzgwNzRlNzIwODIxOGFj
M2Y3NDlhMjczOTRiM2NkMWJhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMDgsNiArMTA4LDcg
QEAKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlJlbmRlckltYWdl
LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVy
VGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC0zNjE4LDE4ICszNjE5LDMzIEBA
IHZvaWQgUGFnZTo6dXBkYXRlRWxlbWVudHNXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0cygpCiAg
ICAgICAgIHJldHVybiAhZWxlbWVudEFuZFJlc3VsdC5maXJzdDsKICAgICB9KTsKIAotICAgIGZv
ciAoYXV0byYgW2VsZW1lbnQsIHJlc3VsdEFuZFNpemVdIDogbV90ZXh0UmVjb2duaXRpb25SZXN1
bHRzQnlFbGVtZW50KSB7Ci0gICAgICAgIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC0+aXNDb25u
ZWN0ZWQoKSkKKyAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZjxIVE1MRWxlbWVudD4sIFRleHRSZWNv
Z25pdGlvblJlc3VsdD4+IGVsZW1lbnRzVG9VcGRhdGU7CisgICAgZm9yIChhdXRvJiBbZWxlbWVu
dCwgcmVzdWx0QW5kUmVjdF0gOiBtX3RleHRSZWNvZ25pdGlvblJlc3VsdHNCeUVsZW1lbnQpIHsK
KyAgICAgICAgaWYgKCFlbGVtZW50LT5pc0Nvbm5lY3RlZCgpKQogICAgICAgICAgICAgY29udGlu
dWU7CiAKKyAgICAgICAgYXV0byYgW3Jlc3VsdCwgY29udGFpbmVyUmVjdF0gPSByZXN1bHRBbmRS
ZWN0OwogICAgICAgICBhdXRvIHByb3RlY3RlZEVsZW1lbnQgPSBtYWtlUmVmKCplbGVtZW50KTsK
LSAgICAgICAgYXV0byYgW3Jlc3VsdCwgb2Zmc2V0U2l6ZV0gPSByZXN1bHRBbmRTaXplOwotICAg
ICAgICBJbnRTaXplIG5ld09mZnNldFNpemUgeyBwcm90ZWN0ZWRFbGVtZW50LT5vZmZzZXRXaWR0
aCgpLCBwcm90ZWN0ZWRFbGVtZW50LT5vZmZzZXRIZWlnaHQoKSB9OwotICAgICAgICBpZiAob2Zm
c2V0U2l6ZSA9PSBuZXdPZmZzZXRTaXplKQorICAgICAgICBhdXRvIHJlbmRlcmVyID0gcHJvdGVj
dGVkRWxlbWVudC0+cmVuZGVyZXIoKTsKKyAgICAgICAgaWYgKCFpczxSZW5kZXJJbWFnZT4ocmVu
ZGVyZXIpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgb2Zmc2V0U2l6ZSA9IG5l
d09mZnNldFNpemU7Ci0gICAgICAgIHByb3RlY3RlZEVsZW1lbnQtPnVwZGF0ZVdpdGhUZXh0UmVj
b2duaXRpb25SZXN1bHQocmVzdWx0LCBIVE1MRWxlbWVudDo6Q2FjaGVUZXh0UmVjb2duaXRpb25S
ZXN1bHRzOjpObyk7CisgICAgICAgIGF1dG8gbmV3Q29udGFpbmVyUmVjdCA9IGVuY2xvc2luZ0lu
dFJlY3QoZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCpyZW5kZXJlcikucmVwbGFjZWRDb250ZW50UmVj
dCgpKTsKKyAgICAgICAgaWYgKGNvbnRhaW5lclJlY3QgPT0gbmV3Q29udGFpbmVyUmVjdCkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGNvbnRhaW5lclJlY3QgPSBuZXdDb250YWlu
ZXJSZWN0OworICAgICAgICBlbGVtZW50c1RvVXBkYXRlLmFwcGVuZCh7IFdURk1vdmUocHJvdGVj
dGVkRWxlbWVudCksIHJlc3VsdCB9KTsKKyAgICB9CisKKyAgICBmb3IgKGF1dG8mIFtlbGVtZW50
LCByZXN1bHRdIDogZWxlbWVudHNUb1VwZGF0ZSkgeworICAgICAgICBlbGVtZW50LT5kb2N1bWVu
dCgpLmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpJbnRlcm5hbEFzeW5jVGFzaywg
W3Jlc3VsdCA9IFRleHRSZWNvZ25pdGlvblJlc3VsdCB7IHJlc3VsdCB9LCB3ZWFrRWxlbWVudCA9
IG1ha2VXZWFrUHRyKGVsZW1lbnQuZ2V0KCkpXSB7CisgICAgICAgICAgICBhdXRvIGVsZW1lbnQg
PSBtYWtlUmVmUHRyKHdlYWtFbGVtZW50LmdldCgpKTsKKyAgICAgICAgICAgIGlmICghZWxlbWVu
dCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGVsZW1lbnQtPnVwZGF0
ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQocmVzdWx0LCBIVE1MRWxlbWVudDo6Q2FjaGVUZXh0
UmVjb2duaXRpb25SZXN1bHRzOjpObyk7CisgICAgICAgIH0pOwogICAgIH0KIH0KIApAQCAtMzYz
OCw3ICszNjU0LDcgQEAgYm9vbCBQYWdlOjpoYXNDYWNoZWRUZXh0UmVjb2duaXRpb25SZXN1bHQo
Y29uc3QgSFRNTEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0CiAgICAgcmV0dXJuIG1fZWxlbWVudHNX
aXRoVGV4dFJlY29nbml0aW9uUmVzdWx0cy5jb250YWlucyhlbGVtZW50KTsKIH0KIAotdm9pZCBQ
YWdlOjpjYWNoZVRleHRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBIVE1MRWxlbWVudCYgZWxlbWVu
dCwgY29uc3QgSW50U2l6ZSYgb2Zmc2V0U2l6ZSwgY29uc3QgVGV4dFJlY29nbml0aW9uUmVzdWx0
JiByZXN1bHQpCit2b2lkIFBhZ2U6OmNhY2hlVGV4dFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IEhU
TUxFbGVtZW50JiBlbGVtZW50LCBjb25zdCBJbnRSZWN0JiBjb250YWluZXJSZWN0LCBjb25zdCBU
ZXh0UmVjb2duaXRpb25SZXN1bHQmIHJlc3VsdCkKIHsKICAgICBtX2VsZW1lbnRzV2l0aFRleHRS
ZWNvZ25pdGlvblJlc3VsdHMuYWRkKGVsZW1lbnQpOwogCkBAIC0zNjQ3LDkgKzM2NjMsOSBAQCB2
b2lkIFBhZ2U6OmNhY2hlVGV4dFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IEhUTUxFbGVtZW50JiBl
bGVtZW50LCBjb25zdCBJbnRTaXplJgogICAgIH0pOwogCiAgICAgaWYgKGluZGV4ID09IG5vdEZv
dW5kKQotICAgICAgICBtX3RleHRSZWNvZ25pdGlvblJlc3VsdHNCeUVsZW1lbnQuYXBwZW5kKHsg
bWFrZVdlYWtQdHIoZWxlbWVudCksIHsgcmVzdWx0LCBvZmZzZXRTaXplIH0gfSk7CisgICAgICAg
IG1fdGV4dFJlY29nbml0aW9uUmVzdWx0c0J5RWxlbWVudC5hcHBlbmQoeyBtYWtlV2Vha1B0cihl
bGVtZW50KSwgeyByZXN1bHQsIGNvbnRhaW5lclJlY3QgfSB9KTsKICAgICBlbHNlCi0gICAgICAg
IG1fdGV4dFJlY29nbml0aW9uUmVzdWx0c0J5RWxlbWVudFtpbmRleF0uc2Vjb25kID0geyByZXN1
bHQsIG9mZnNldFNpemUgfTsKKyAgICAgICAgbV90ZXh0UmVjb2duaXRpb25SZXN1bHRzQnlFbGVt
ZW50W2luZGV4XS5zZWNvbmQgPSB7IHJlc3VsdCwgY29udGFpbmVyUmVjdCB9OwogCiAgICAgbV90
ZXh0UmVjb2duaXRpb25SZXN1bHRzQnlFbGVtZW50LnJlbW92ZUFsbE1hdGNoaW5nKFtdKGF1dG8m
IGVsZW1lbnRBbmRSZXN1bHQpIHsKICAgICAgICAgcmV0dXJuICFlbGVtZW50QW5kUmVzdWx0LmZp
cnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaAppbmRleCBkNjcxZTc4YWFlOTYwYTk3Njc2YmExYjkxMjMzZGQ4MmQ3
NmE4OTkwLi4yMDc5YzVhNTRiYjEwODRlYWVjMWI1NTUzYTYxMTUxMDNiMDk3YzgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaApAQCAtODYzLDcgKzg2Myw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShJTUFHRV9B
TkFMWVNJUykKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhc0NhY2hlZFRleHRSZWNvZ25pdGlv
blJlc3VsdChjb25zdCBIVE1MRWxlbWVudCYpIGNvbnN0OwotICAgIHZvaWQgY2FjaGVUZXh0UmVj
b2duaXRpb25SZXN1bHQoY29uc3QgSFRNTEVsZW1lbnQmLCBjb25zdCBJbnRTaXplJiBvZmZzZXRT
aXplLCBjb25zdCBUZXh0UmVjb2duaXRpb25SZXN1bHQmKTsKKyAgICB2b2lkIGNhY2hlVGV4dFJl
Y29nbml0aW9uUmVzdWx0KGNvbnN0IEhUTUxFbGVtZW50JiwgY29uc3QgSW50UmVjdCYgY29udGFp
bmVyUmVjdCwgY29uc3QgVGV4dFJlY29nbml0aW9uUmVzdWx0Jik7CiAjZW5kaWYKIAogcHJpdmF0
ZToKQEAgLTExODksNyArMTE4OSw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoSU1BR0VfQU5B
TFlTSVMpCiAgICAgLy8gRklYTUU6IFRoZXNlIHNob3VsZCBiZSByZWZhY3RvcmVkIHRvIHVzZSBh
IHdlYWsgaGFzaCBtYXAgb2YgSFRNTEVsZW1lbnQgdG8gc3RkOjpwYWlyPFRleHRSZWNvZ25pdGlv
blJlc3VsdCwgSW50U2l6ZT4uCi0gICAgVmVjdG9yPHN0ZDo6cGFpcjxXZWFrUHRyPEhUTUxFbGVt
ZW50Piwgc3RkOjpwYWlyPFRleHRSZWNvZ25pdGlvblJlc3VsdCwgSW50U2l6ZT4+PiBtX3RleHRS
ZWNvZ25pdGlvblJlc3VsdHNCeUVsZW1lbnQ7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjxXZWFrUHRy
PEhUTUxFbGVtZW50Piwgc3RkOjpwYWlyPFRleHRSZWNvZ25pdGlvblJlc3VsdCwgSW50UmVjdD4+
PiBtX3RleHRSZWNvZ25pdGlvblJlc3VsdHNCeUVsZW1lbnQ7CiAgICAgV2Vha0hhc2hTZXQ8SFRN
TEVsZW1lbnQ+IG1fZWxlbWVudHNXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0czsKICNlbmRpZgog
fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBmOTYyZWMwYjliOWY1ODZmNDBmYWI2OTYzMWY5ZmNmY2MyZjRhMWRhLi45MmIy
Yjc3NmY2ZDg0NTJmNWE2YWVjNzRiYmZiYjIxMGM2ZTM2YWI3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjgg
QEAKKzIwMjEtMDYtMjggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisK
KyAgICAgICAgTGl2ZSBUZXh0IHNlbGVjdGlvbnMgaW5zaWRlIGltYWdlcyBpcyBtaXNhbGlnbmVk
IHdoZW4gIm9iamVjdC1maXQiIGlzIG5vdCAiZmlsbCIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzQ1MworCisgICAgICAgIFJldmlld2VkIGJ5IFRp
bSBIb3J0b24uCisKKyAgICAgICAgQWRkIGEgY291cGxlIG9mIG5ldyB0ZXN0cywgYW5kIGRvIHNv
bWUgbWlub3IgY2xlYW51cCBpbiBhbiBleGlzdGluZyB0ZXN0LgorCisgICAgICAgICogZmFzdC9p
bWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LW9iamVjdC1maXQtY2hhbmdlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlv
bi9pbWFnZS1vdmVybGF5LW9iamVjdC1maXQtY2hhbmdlLmh0bWw6IEFkZGVkLgorCisgICAgICAg
IEFkZCBhIGxheW91dCB0ZXN0IHRvIHZlcmlmeSB0aGF0IGR5bmFtaWNhbGx5IGNoYW5naW5nIENT
UyAib2JqZWN0LWZpdCIgdmFsdWVzIGZvciBhbiBpbWFnZSB3aXRoIExpdmUgVGV4dCBjYXVzZXMK
KyAgICAgICAgdGhlIGRpbWVuc2lvbnMgb2YgdGhlIExpdmUgVGV4dCB0byB1cGRhdGUgYXMgd2Vs
bC4KKworICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3Zlcmxh
eS1vYmplY3QtZml0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMv
dGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LW9iamVjdC1maXQuaHRtbDogQWRkZWQuCisK
KyAgICAgICAgQWRkIGEgbGF5b3V0IHRlc3QgdG8gdmVyaWZ5IHRoYXQgTGl2ZSBUZXh0IGlzIGlu
amVjdGVkIGNvcnJlY3RseSB3aGVuIHVzaW5nIGFsbCA1IHZhbHVlcyBvZiAib2JqZWN0LWZpdCIu
CisKKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXkt
c2l6ZS1jaGFuZ2UuaHRtbDoKKworICAgICAgICBDbGVhbiB1cCB0aGlzIGxheW91dCB0ZXN0IGEg
Yml0OiByZW1vdmUgYW4gdW5uZWNlc3NhcmlseSBpbmNsdWRlZCBzY3JpcHQgZmlsZSwgYWRkIGEg
bWlzc2luZyBgaGVhZGAgdGFnIGFuZAorICAgICAgICBkb24ndCB0cnkgdG8gaW5qZWN0IGFuIGlt
YWdlIG92ZXJsYXkgMTAgdGltZXMuCisKIDIwMjEtMDYtMjcgIEFsYW4gQnVqdGFzICA8emFsYW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW1RGQ10gQWRkIHN1cHBvcnQgZm9yIHNocmlua2lu
ZyBvdmVyLWNvbnN0cmFpbmVkIGNvbHVtbnMgYmFzZWQgb24gdGhlIHdpZHRoIHR5cGUgcHJpb3Jp
dHkgbGlzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25p
dGlvbi9pbWFnZS1vdmVybGF5LW9iamVjdC1maXQtY2hhbmdlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1vYmplY3Qt
Zml0LWNoYW5nZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2QyYjQxOGNhYWU1YmEwMTMzOGVi
MWUxZjk1MGFhOWRhMTkwMzRhZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1vYmplY3QtZml0LWNoYW5nZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitQQVNTIHdpZHRoIGlzIDUwCitQQVNTIGhlaWdo
dCBpcyAyNQorUEFTUyB3aWR0aCBiZWNhbWUgMTAwCitQQVNTIGhlaWdodCBpcyA1MAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1v
YmplY3QtZml0LWNoYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNv
Z25pdGlvbi9pbWFnZS1vdmVybGF5LW9iamVjdC1maXQtY2hhbmdlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MmM3NTAzOGRkODA5ZjJmZTk3OTgyNzE4ZWY3NzI3MzFlYjJjZDFkOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3Zlcmxh
eS1vYmplY3QtZml0LWNoYW5nZS5odG1sCkBAIC0wLDAgKzEsNjEgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitpbWcgeworICAgIHdpZHRoOiAxMDBweDsKKyAgICBo
ZWlnaHQ6IDIwMHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9Ii4u
L3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8c2NyaXB0PgoranNUZXN0SXNB
c3luYyA9IHRydWU7CitsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsK
K3dpZHRoID0gMDsKK2hlaWdodCA9IDA7CisKK2Z1bmN0aW9uIHVwZGF0ZUltYWdlT3ZlcmxheVRl
eHREaW1lbnNpb25zKCkgeworICAgIGxldCB0ZXh0Qm91bmRpbmdSZWN0ID0gaW50ZXJuYWxzLnNo
YWRvd1Jvb3QoaW1hZ2UpLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1vdmVybGF5LXRleHQiKS5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICB3aWR0aCA9IHRleHRCb3VuZGluZ1JlY3Qud2lkdGg7
CisgICAgaGVpZ2h0ID0gdGV4dEJvdW5kaW5nUmVjdC5oZWlnaHQ7Cit9CisKK2FkZEV2ZW50TGlz
dGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAgaW1hZ2Uuc3R5bGUub2JqZWN0Rml0ID0g
ImNvbnRhaW4iOworICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAw
KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwKSwK
KyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjI1
KSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjI1
KSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICB0ZXh0IDogImZvbyIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDApLAorICAgICAgICAgICAgICAgICAgICBib3R0
b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC4yNSksCisgICAgICAgICAgICAg
ICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjI1KSwKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAgICBdKTsKKworICAgIHVw
ZGF0ZUltYWdlT3ZlcmxheVRleHREaW1lbnNpb25zKCk7CisKKyAgICBzaG91bGRCZSgid2lkdGgi
LCAiNTAiKTsKKyAgICBzaG91bGRCZSgiaGVpZ2h0IiwgIjI1Iik7CisKKyAgICBpbWFnZS5zdHls
ZS5vYmplY3RGaXQgPSAiY292ZXIiOworICAgIHNldEludGVydmFsKHVwZGF0ZUltYWdlT3Zlcmxh
eVRleHREaW1lbnNpb25zLCAxMCk7CisKKyAgICBhd2FpdCBzaG91bGRCZWNvbWVFcXVhbCgid2lk
dGgiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoImhlaWdodCIsICI1MCIpOworCisgICAgZmluaXNo
SlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1vYmplY3QtZml0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1vYmplY3Qt
Zml0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOGZlMzE5Mzg1MjM1OGZiOGY2ODYzZTgxYzcz
ZDFjZmQxZDVkMWFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
dGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LW9iamVjdC1maXQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTAgQEAKKworUEFTUyB0ZXh0UmVjdHNbJ2ZpbGwnXSBpcyBbMCwgMCwgMTAwLCAy
NV0KK1BBU1MgdGV4dFJlY3RzWydjb250YWluJ10gaXMgWzUwLCAwLCA1MCwgMjVdCitQQVNTIHRl
eHRSZWN0c1snY292ZXInXSBpcyBbMCwgLTUwLCAxMDAsIDUwXQorUEFTUyB0ZXh0UmVjdHNbJ25v
bmUnXSBpcyBbLTEwMCwgLTE1MCwgMjAwLCAxMDBdCitQQVNTIHRleHRSZWN0c1snc2NhbGUtZG93
biddIGlzIFs1MCwgMCwgNTAsIDI1XQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Rl
eHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1vYmplY3QtZml0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktb2JqZWN0LWZpdC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmFmNDM2NDI2Yjg4MDE2ODI4N2UyN2E0ZWMxMjM3MTc1M2NhOTU1ZmEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0
aW9uL2ltYWdlLW92ZXJsYXktb2JqZWN0LWZpdC5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Citib2R5LCBodG1sIHsKKyAgICBtYXJn
aW46IDA7Cit9CitpbWcgeworICAgIHdpZHRoOiAyMDBweDsKKyAgICBoZWlnaHQ6IDEwMHB4Owor
ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKK30KKzwv
c3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbWcgc3R5bGU9Im9iamVjdC1maXQ6IGZpbGw7IiBz
cmM9Ii4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8aW1nIHN0eWxlPSJv
YmplY3QtZml0OiBjb250YWluOyIgc3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmci
PjwvaW1nPgorPGltZyBzdHlsZT0ib2JqZWN0LWZpdDogY292ZXI7IiBzcmM9Ii4uL3Jlc291cmNl
cy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8aW1nIHN0eWxlPSJvYmplY3QtZml0OiBub25l
OyIgc3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPGltZyBzdHls
ZT0ib2JqZWN0LWZpdDogc2NhbGUtZG93bjsiIHNyYz0iLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0
MDAucG5nIj48L2ltZz4KKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPHNjcmlwdD4KK2Z1bmN0
aW9uIGltYWdlT3ZlcmxheVRleHRSZWN0KGltYWdlKSB7CisgICAgbGV0IGJvdW5kcyA9IGludGVy
bmFscy5zaGFkb3dSb290KGltYWdlKS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2Utb3ZlcmxheS10ZXh0
IikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgcmV0dXJuIFsgTWF0aC5yb3VuZChib3Vu
ZHMubGVmdCksIE1hdGgucm91bmQoYm91bmRzLnRvcCksIE1hdGgucm91bmQoYm91bmRzLndpZHRo
KSwgTWF0aC5yb3VuZChib3VuZHMuaGVpZ2h0KSBdOworfQorCithZGRFdmVudExpc3RlbmVyKCJs
b2FkIiwgYXN5bmMgKCkgPT4geworICAgIHRleHRSZWN0cyA9IHsgfTsKKworICAgIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoImltZyIpLmZvckVhY2goaW1hZ2UgPT4geworICAgICAgICBpbnRl
cm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWworICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAg
ICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMCksCisgICAgICAg
ICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuMjUpLAor
ICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjI1
KSwKKyAgICAgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImZvbyIsCisgICAgICAgICAgICAgICAgICAg
ICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICAg
ICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMCksCisgICAg
ICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAu
NSwgMC4yNSksCisgICAgICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMCwgMC4yNSksCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBdCisgICAgICAgICAgICB9CisgICAgICAgIF0pOworCisgICAgICAgIHRleHRSZWN0c1tn
ZXRDb21wdXRlZFN0eWxlKGltYWdlKS5vYmplY3RGaXRdID0gaW1hZ2VPdmVybGF5VGV4dFJlY3Qo
aW1hZ2UpOworICAgIH0pOworCisgICAgc2hvdWxkQmUoInRleHRSZWN0c1snZmlsbCddIiwgIlsw
LCAwLCAxMDAsIDI1XSIpOworICAgIHNob3VsZEJlKCJ0ZXh0UmVjdHNbJ2NvbnRhaW4nXSIsICJb
NTAsIDAsIDUwLCAyNV0iKTsKKyAgICBzaG91bGRCZSgidGV4dFJlY3RzWydjb3ZlciddIiwgIlsw
LCAtNTAsIDEwMCwgNTBdIik7CisgICAgc2hvdWxkQmUoInRleHRSZWN0c1snbm9uZSddIiwgIlst
MTAwLCAtMTUwLCAyMDAsIDEwMF0iKTsKKyAgICBzaG91bGRCZSgidGV4dFJlY3RzWydzY2FsZS1k
b3duJ10iLCAiWzUwLCAwLCA1MCwgMjVdIik7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1zaXplLWNoYW5nZS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVy
bGF5LXNpemUtY2hhbmdlLmh0bWwKaW5kZXggYTNlNDQ1MmMzZjhhYWZmM2FiMWEyNjJhOTU1MGQ4
NjM5MmEyZTFlNi4uMGI1ZmU1Yzg5NTViNWQ2N2EyZGI1ZmNiNDIyNmI1MGI2OWY0ZTdkZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1v
dmVybGF5LXNpemUtY2hhbmdlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4
dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LXNpemUtY2hhbmdlLmh0bWwKQEAgLTEsNyArMSw4
IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgorPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgogPGJvZHk+CiA8aW1n
IHNyYz0iLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KIDxzY3JpcHQ+CkBA
IC0xNywyNSArMTgsMjMgQEAgZnVuY3Rpb24gdXBkYXRlSW1hZ2VPdmVybGF5VGV4dERpbWVuc2lv
bnMoKSB7CiB9CiAKIGFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7Ci0gICAg
Zm9yIChsZXQgaSA9IDA7IGkgPCAxMDsgKytpKSB7Ci0gICAgICAgIGludGVybmFscy5pbnN0YWxs
SW1hZ2VPdmVybGF5KGltYWdlLCBbCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdG9w
TGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKLSAgICAgICAgICAgICAgICB0
b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAg
Ym90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAgICAgICAg
ICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKLSAgICAgICAgICAg
ICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB0ZXh0IDogIkhlbGxvIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHRvcExlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgICAg
ICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAg
ICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAu
NSwgMSksCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAg
ICAgICAgfQotICAgICAgICBdKTsKLSAgICB9CisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92
ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMC41LCAxKSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogIkhlbGxvIiwKKyAgICAgICAgICAgICAg
ICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAgICAg
ICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAg
ICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEp
LAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MC41LCAxKSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICB9Cisg
ICAgXSk7CiAKICAgICB1cGRhdGVJbWFnZU92ZXJsYXlUZXh0RGltZW5zaW9ucygpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>