<?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>206810</bug_id>
          
          <creation_ts>2020-01-26 14:49:29 -0800</creation_ts>
          <short_desc>[LFC][IFC] Display::Run has physical geometry only.</short_desc>
          <delta_ts>2020-01-27 07:25:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1611236</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-01-26 14:49:29 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611237</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-26 14:49:46 -0800</bug_when>
    <thetext>&lt;rdar://problem/58905455&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611238</commentid>
    <comment_count>2</comment_count>
      <attachid>388816</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-01-26 14:57:39 -0800</bug_when>
    <thetext>Created attachment 388816
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611259</commentid>
    <comment_count>3</comment_count>
      <attachid>388820</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-01-26 17:50:22 -0800</bug_when>
    <thetext>Created attachment 388820
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611342</commentid>
    <comment_count>4</comment_count>
      <attachid>388820</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-01-27 02:09:55 -0800</bug_when>
    <thetext>Comment on attachment 388820
Patch

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

&gt; Source/WebCore/rendering/line/LineLayoutTraversalDisplayRunPath.h:-54
&gt; -    FloatRect logicalRect() const

You can also remove this from SimplePath and ComplexPath.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611384</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-01-27 06:35:22 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #4)
&gt; Comment on attachment 388820 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=388820&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/line/LineLayoutTraversalDisplayRunPath.h:-54
&gt; &gt; -    FloatRect logicalRect() const
&gt; 
&gt; You can also remove this from SimplePath and ComplexPath.

good point!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611386</commentid>
    <comment_count>6</comment_count>
      <attachid>388853</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-01-27 06:39:10 -0800</bug_when>
    <thetext>Created attachment 388853
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611396</commentid>
    <comment_count>7</comment_count>
      <attachid>388853</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-27 07:25:38 -0800</bug_when>
    <thetext>Comment on attachment 388853
Patch

Clearing flags on attachment: 388853

Committed r255143: &lt;https://trac.webkit.org/changeset/255143&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611397</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-27 07:25:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388816</attachid>
            <date>2020-01-26 14:57:39 -0800</date>
            <delta_ts>2020-01-26 17:50:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206810-20200126145738.patch</filename>
            <type>text/plain</type>
            <size>20491</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1MTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWVjNGVkZDAwYjAxODUx
MGY2ZjVjMDZmMGVkMzZiODhiMzEzZWQ4Yi4uOGYwZTQyMjY4OTI1MTEwZjNkMDE4ZWU4MjE0YjNj
NzZlYjYwODNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIwLTAxLTI2ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBEaXNwbGF5
OjpSdW4gaGFzIG5vbi1sb2dpY2FsIGdlb21ldHJ5IG9ubHkuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY4MTAKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzU4OTA1NDU1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFNpbmNlIGluIExGQyB0aGUgRGlzcGxheTo6UnVucyBhcmUgdXNlZCBmb3IgcGFpbnRp
bmcgYW5kIGhpdHRlc3RpbmcgYnV0IG5ldmVyIGZvciBsYXlvdXQsCisgICAgICAgIHRoZSBnZW9t
ZXRyeSBpcyBhbHdheXMgbm9uLWxvZ2ljYWwuCisKKyAgICAgICAgKiBsYXlvdXQvVmVyaWZpY2F0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6b3V0cHV0TWlzbWF0Y2hpbmdTaW1w
bGVMaW5lSW5mb3JtYXRpb25JZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OmNo
ZWNrRm9yTWF0Y2hpbmdOb25UZXh0UnVucyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OmNo
ZWNrRm9yTWF0Y2hpbmdUZXh0UnVucyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Om91dHB1
dE1pc21hdGNoaW5nQ29tcGxleExpbmVJbmZvcm1hdGlvbklmTmVlZGVkKToKKyAgICAgICAgKiBs
YXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheVBhaW50ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheTo6cGFpbnRJbmxpbmVDb250ZW50KToKKyAgICAgICAgKiBsYXlvdXQvZGlzcGxheXRy
ZWUvRGlzcGxheVJ1bi5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjpyZWN0IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlJ1bjo6dG9wTGVmdCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpSdW46OmxlZnQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheTo6UnVuOjpyaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5OjpSdW46OnRvcCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpSdW46OmJv
dHRvbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpSdW46OndpZHRoIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlJ1bjo6aGVpZ2h0IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXk6OlJ1bjo6c2V0V2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheTo6UnVuOjpzZXRUb3ApOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjpz
ZXRsTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpSdW46Om1vdmVWZXJ0aWNhbGx5
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlJ1bjo6bW92ZUhvcml6b250YWxseSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpSdW46OmV4cGFuZFZlcnRpY2FsbHkpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjpleHBhbmRIb3Jpem9udGFsbHkpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheTo6UnVuOjpSdW4pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6
UnVuOjpsb2dpY2FsUmVjdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5OjpSdW46OmxvZ2ljYWxUb3BMZWZ0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXk6OlJ1bjo6bG9naWNhbExlZnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheTo6UnVuOjpsb2dpY2FsUmlnaHQgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjpsb2dpY2FsVG9wIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlJ1bjo6bG9naWNhbEJvdHRvbSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpSdW46OmxvZ2ljYWxXaWR0aCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpSdW46OmxvZ2ljYWxIZWln
aHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjpzZXRM
b2dpY2FsV2lkdGgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjpz
ZXRMb2dpY2FsVG9wKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlJ1bjo6
c2V0TG9naWNhbExlZnQpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dEludGVncmF0aW9uOjpMaW5lTGF5b3V0OjpoaXRUZXN0KToKKyAgICAgICAgKiBsYXlvdXQvbGF5
b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
Om91dHB1dElubGluZVJ1bnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndyaXRlVGV4dEJveCk6CisgICAgICAgICogcmVuZGVy
aW5nL2xpbmUvTGluZUxheW91dFRyYXZlcnNhbC5oOgorICAgICAgICAoV2ViQ29yZTo6TGluZUxh
eW91dFRyYXZlcnNhbDo6Qm94Ojpsb2dpY2FsUmVjdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogcmVuZGVyaW5nL2xpbmUvTGluZUxheW91dFRyYXZlcnNhbERpc3BsYXlSdW5QYXRoLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpMaW5lTGF5b3V0VHJhdmVyc2FsOjpsaW5lUG9zaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6TGluZUxheW91dFRyYXZlcnNhbDo6RGlzcGxheVJ1blBhdGg6OnJlY3Qg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGluZUxheW91dFRyYXZlcnNhbDo6RGlzcGxheVJ1
blBhdGg6OmxvZ2ljYWxSZWN0IGNvbnN0KTogRGVsZXRlZC4KKwogMjAyMC0wMS0yNSAgUGVyIEFy
bmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBNZWRpYSBt
aW1lIHR5cGVzIG1hcCBzaG91bGQgYmUgY3JlYXRlZCBpbiB0aGUgVUkgcHJvY2VzcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L1ZlcmlmaWNhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvVmVyaWZpY2F0aW9uLmNwcAppbmRleCBkYTEwNTEwMmFmM2YyMmE3ZmUyNmY4
YTUyZjgwZjZiZTlhMjY5ZTQ3Li40NGYzY2M3MDFkYzg4NDZiZDFiNjcyNGE0ZjJiMjc4Y2JmOTgw
ZTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvVmVyaWZpY2F0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvVmVyaWZpY2F0aW9uLmNwcApAQCAtOTUsNyArOTUs
NyBAQCBzdGF0aWMgYm9vbCBvdXRwdXRNaXNtYXRjaGluZ1NpbXBsZUxpbmVJbmZvcm1hdGlvbklm
TmVlZGVkKFRleHRTdHJlYW0mIHN0cmVhbSwgYwogICAgICAgICBhdXRvJiBzaW1wbGVSdW4gPSBs
aW5lTGF5b3V0RGF0YS0+cnVuQXQoaSk7CiAgICAgICAgIGF1dG8mIGRpc3BsYXlSdW4gPSBkaXNw
bGF5UnVuc1tpXTsKIAotICAgICAgICBhdXRvIG1hdGNoaW5nUnVucyA9IGFyZUVzc2VudGlhbGx5
RXF1YWwoc2ltcGxlUnVuLmxvZ2ljYWxMZWZ0LCBkaXNwbGF5UnVuLmxvZ2ljYWxMZWZ0KCkpICYm
IGFyZUVzc2VudGlhbGx5RXF1YWwoc2ltcGxlUnVuLmxvZ2ljYWxSaWdodCwgZGlzcGxheVJ1bi5s
b2dpY2FsUmlnaHQoKSk7CisgICAgICAgIGF1dG8gbWF0Y2hpbmdSdW5zID0gYXJlRXNzZW50aWFs
bHlFcXVhbChzaW1wbGVSdW4ubG9naWNhbExlZnQsIGRpc3BsYXlSdW4ubGVmdCgpKSAmJiBhcmVF
c3NlbnRpYWxseUVxdWFsKHNpbXBsZVJ1bi5sb2dpY2FsUmlnaHQsIGRpc3BsYXlSdW4ucmlnaHQo
KSk7CiAgICAgICAgIGlmIChtYXRjaGluZ1J1bnMgJiYgZGlzcGxheVJ1bi50ZXh0Q29udGV4dCgp
KSB7CiAgICAgICAgICAgICBtYXRjaGluZ1J1bnMgPSBzaW1wbGVSdW4uc3RhcnQgPT0gZGlzcGxh
eVJ1bi50ZXh0Q29udGV4dCgpLT5zdGFydCgpICYmIHNpbXBsZVJ1bi5lbmQgPT0gZGlzcGxheVJ1
bi50ZXh0Q29udGV4dCgpLT5lbmQoKTsKICAgICAgICAgICAgIC8vIFNMTCBoYW5kbGVzIHN0cmlu
Z3MgaW4gYSBtb3JlIGNvbmNhdGVuYXRlZCBmb3JtYXQgPGRpdj5mb288YnI+YmFyPC9kaXY+IC0+
IGZvbyAtPiAwLDMgYmFyIC0+IDMsNiB2cy4gMCwzIGFuZCAwLDMKQEAgLTEwOSw3ICsxMDksNyBA
QCBzdGF0aWMgYm9vbCBvdXRwdXRNaXNtYXRjaGluZ1NpbXBsZUxpbmVJbmZvcm1hdGlvbklmTmVl
ZGVkKFRleHRTdHJlYW0mIHN0cmVhbSwgYwogICAgICAgICBzdHJlYW0gPDwgIiBpbmxpbmUgcnVu
IjsKICAgICAgICAgaWYgKGRpc3BsYXlSdW4udGV4dENvbnRleHQoKSkKICAgICAgICAgICAgIHN0
cmVhbSA8PCAiICgiIDw8IGRpc3BsYXlSdW4udGV4dENvbnRleHQoKS0+c3RhcnQoKSA8PCAiLCAi
IDw8IGRpc3BsYXlSdW4udGV4dENvbnRleHQoKS0+ZW5kKCkgPDwgIikiOwotICAgICAgICBzdHJl
YW0gPDwgIiAoIiA8PCBkaXNwbGF5UnVuLmxvZ2ljYWxMZWZ0KCkgPDwgIiwgIiA8PCBkaXNwbGF5
UnVuLmxvZ2ljYWxUb3AoKSA8PCAiKSAoIiA8PCBkaXNwbGF5UnVuLmxvZ2ljYWxXaWR0aCgpIDw8
ICJ4IiA8PCBkaXNwbGF5UnVuLmxvZ2ljYWxIZWlnaHQoKSA8PCAiKSI7CisgICAgICAgIHN0cmVh
bSA8PCAiICgiIDw8IGRpc3BsYXlSdW4ubGVmdCgpIDw8ICIsICIgPDwgZGlzcGxheVJ1bi50b3Ao
KSA8PCAiKSAoIiA8PCBkaXNwbGF5UnVuLndpZHRoKCkgPDwgIngiIDw8IGRpc3BsYXlSdW4uaGVp
Z2h0KCkgPDwgIikiOwogICAgICAgICBzdHJlYW0ubmV4dExpbmUoKTsKICAgICAgICAgbWlzbWF0
Y2hlZCA9IHRydWU7CiAgICAgfQpAQCAtMTE4LDE5ICsxMTgsMTkgQEAgc3RhdGljIGJvb2wgb3V0
cHV0TWlzbWF0Y2hpbmdTaW1wbGVMaW5lSW5mb3JtYXRpb25JZk5lZWRlZChUZXh0U3RyZWFtJiBz
dHJlYW0sIGMKIAogc3RhdGljIGJvb2wgY2hlY2tGb3JNYXRjaGluZ05vblRleHRSdW5zKGNvbnN0
IERpc3BsYXk6OlJ1biYgaW5saW5lUnVuLCBjb25zdCBXZWJDb3JlOjpJbmxpbmVCb3gmIGlubGlu
ZUJveCkKIHsKLSAgICByZXR1cm4gYXJlRXNzZW50aWFsbHlFcXVhbChpbmxpbmVCb3gubG9naWNh
bExlZnQoKSwgaW5saW5lUnVuLmxvZ2ljYWxMZWZ0KCkpCi0gICAgICAgICYmIGFyZUVzc2VudGlh
bGx5RXF1YWwoaW5saW5lQm94LmxvZ2ljYWxSaWdodCgpLCBpbmxpbmVSdW4ubG9naWNhbFJpZ2h0
KCkpCi0gICAgICAgICYmIGFyZUVzc2VudGlhbGx5RXF1YWwoaW5saW5lQm94LmxvZ2ljYWxUb3Ao
KSwgaW5saW5lUnVuLmxvZ2ljYWxUb3AoKSkKLSAgICAgICAgJiYgYXJlRXNzZW50aWFsbHlFcXVh
bChpbmxpbmVCb3gubG9naWNhbEJvdHRvbSgpLCBpbmxpbmVSdW4ubG9naWNhbEJvdHRvbSgpKTsK
KyAgICByZXR1cm4gYXJlRXNzZW50aWFsbHlFcXVhbChpbmxpbmVCb3gubGVmdCgpLCBpbmxpbmVS
dW4ubGVmdCgpKQorICAgICAgICAmJiBhcmVFc3NlbnRpYWxseUVxdWFsKGlubGluZUJveC5yaWdo
dCgpLCBpbmxpbmVSdW4ucmlnaHQoKSkKKyAgICAgICAgJiYgYXJlRXNzZW50aWFsbHlFcXVhbChp
bmxpbmVCb3gudG9wKCksIGlubGluZVJ1bi50b3AoKSkKKyAgICAgICAgJiYgYXJlRXNzZW50aWFs
bHlFcXVhbChpbmxpbmVCb3guYm90dG9tKCksIGlubGluZVJ1bi5ib3R0b20oKSk7CiB9CiAKIAog
c3RhdGljIGJvb2wgY2hlY2tGb3JNYXRjaGluZ1RleHRSdW5zKGNvbnN0IERpc3BsYXk6OlJ1biYg
aW5saW5lUnVuLCBjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94KQogewotICAgIHJl
dHVybiBhcmVFc3NlbnRpYWxseUVxdWFsKGlubGluZVRleHRCb3gubG9naWNhbExlZnQoKSwgaW5s
aW5lUnVuLmxvZ2ljYWxMZWZ0KCkpCi0gICAgICAgICYmIGFyZUVzc2VudGlhbGx5RXF1YWwoaW5s
aW5lVGV4dEJveC5sb2dpY2FsUmlnaHQoKSwgaW5saW5lUnVuLmxvZ2ljYWxSaWdodCgpKQotICAg
ICAgICAmJiBhcmVFc3NlbnRpYWxseUVxdWFsKGlubGluZVRleHRCb3gubG9naWNhbFRvcCgpLCBp
bmxpbmVSdW4ubG9naWNhbFRvcCgpKQotICAgICAgICAmJiBhcmVFc3NlbnRpYWxseUVxdWFsKGlu
bGluZVRleHRCb3gubG9naWNhbEJvdHRvbSgpLCBpbmxpbmVSdW4ubG9naWNhbEJvdHRvbSgpKQor
ICAgIHJldHVybiBhcmVFc3NlbnRpYWxseUVxdWFsKGlubGluZVRleHRCb3gubGVmdCgpLCBpbmxp
bmVSdW4ubGVmdCgpKQorICAgICAgICAmJiBhcmVFc3NlbnRpYWxseUVxdWFsKGlubGluZVRleHRC
b3gucmlnaHQoKSwgaW5saW5lUnVuLnJpZ2h0KCkpCisgICAgICAgICYmIGFyZUVzc2VudGlhbGx5
RXF1YWwoaW5saW5lVGV4dEJveC50b3AoKSwgaW5saW5lUnVuLnRvcCgpKQorICAgICAgICAmJiBh
cmVFc3NlbnRpYWxseUVxdWFsKGlubGluZVRleHRCb3guYm90dG9tKCksIGlubGluZVJ1bi5ib3R0
b20oKSkKICAgICAgICAgJiYgKGlubGluZVRleHRCb3guaXNMaW5lQnJlYWsoKSB8fCAoaW5saW5l
VGV4dEJveC5zdGFydCgpID09IGlubGluZVJ1bi50ZXh0Q29udGV4dCgpLT5zdGFydCgpICYmIGlu
bGluZVRleHRCb3guZW5kKCkgPT0gaW5saW5lUnVuLnRleHRDb250ZXh0KCktPmVuZCgpKSk7CiB9
CiAKQEAgLTIwNiw3ICsyMDYsNyBAQCBzdGF0aWMgYm9vbCBvdXRwdXRNaXNtYXRjaGluZ0NvbXBs
ZXhMaW5lSW5mb3JtYXRpb25JZk5lZWRlZChUZXh0U3RyZWFtJiBzdHJlYW0sCiAgICAgICAgICAg
ICBzdHJlYW0gPDwgIiBpbmxpbmUgcnVuIjsKICAgICAgICAgICAgIGlmIChkaXNwbGF5UnVuLnRl
eHRDb250ZXh0KCkpCiAgICAgICAgICAgICAgICAgc3RyZWFtIDw8ICIgKCIgPDwgZGlzcGxheVJ1
bi50ZXh0Q29udGV4dCgpLT5zdGFydCgpIDw8ICIsICIgPDwgZGlzcGxheVJ1bi50ZXh0Q29udGV4
dCgpLT5lbmQoKSA8PCAiKSI7Ci0gICAgICAgICAgICBzdHJlYW0gPDwgIiAoIiA8PCBkaXNwbGF5
UnVuLmxvZ2ljYWxMZWZ0KCkgPDwgIiwgIiA8PCBkaXNwbGF5UnVuLmxvZ2ljYWxUb3AoKSA8PCAi
KSAoIiA8PCBkaXNwbGF5UnVuLmxvZ2ljYWxXaWR0aCgpIDw8ICJ4IiA8PCBkaXNwbGF5UnVuLmxv
Z2ljYWxIZWlnaHQoKSA8PCAiKSI7CisgICAgICAgICAgICBzdHJlYW0gPDwgIiAoIiA8PCBkaXNw
bGF5UnVuLmxlZnQoKSA8PCAiLCAiIDw8IGRpc3BsYXlSdW4udG9wKCkgPDwgIikgKCIgPDwgZGlz
cGxheVJ1bi53aWR0aCgpIDw8ICJ4IiA8PCBkaXNwbGF5UnVuLmhlaWdodCgpIDw8ICIpIjsKICAg
ICAgICAgICAgIHN0cmVhbS5uZXh0TGluZSgpOwogICAgICAgICAgICAgbWlzbWF0Y2hlZCA9IHRy
dWU7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5
dHJlZS9EaXNwbGF5UGFpbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRy
ZWUvRGlzcGxheVBhaW50ZXIuY3BwCmluZGV4IDFkNTkxNjljNmEyNDI0NjNmMjIyMzRlODMwZjc4
Mzg4MWY4NmZhYTQuLjQyYzIxMjA1MThjYWQ2NmUxZmVkMWZkOTZkNmI3YWNlMTIyMjM1MGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5UGFpbnRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlQYWlu
dGVyLmNwcApAQCAtMTI2LDE4ICsxMjYsMTggQEAgc3RhdGljIHZvaWQgcGFpbnRJbmxpbmVDb250
ZW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgTGF5b3V0UG9pbnQgYWJzb2x1dGVPZmYKICAg
ICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3Ioc3R5bGUuY29sb3IoKSk7CiAgICAgICAg
ICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihzdHlsZS5jb2xvcigpKTsKIAotICAgICAgICAgICAg
YXV0byBhYnNvbHV0ZUxvZ2ljYWxMZWZ0ID0gYWJzb2x1dGVPZmZzZXQueCgpICsgcnVuLmxvZ2lj
YWxMZWZ0KCk7CisgICAgICAgICAgICBhdXRvIGFic29sdXRlTGVmdCA9IGFic29sdXRlT2Zmc2V0
LngoKSArIHJ1bi5sZWZ0KCk7CiAgICAgICAgICAgICAvLyBGSVhNRTogQWRkIG5vbi1iYXNlbGlu
ZSBhbGlnbiBwYWludGluZwogICAgICAgICAgICAgYXV0byYgbGluZUJveCA9IGRpc3BsYXlJbmxp
bmVDb250ZW50LT5saW5lQm94Rm9yUnVuKHJ1bik7CiAgICAgICAgICAgICBhdXRvIGJhc2VsaW5l
T2Zmc2V0ID0gYWJzb2x1dGVPZmZzZXQueSgpICsgbGluZUJveC5sb2dpY2FsVG9wKCkgKyBsaW5l
Qm94LmJhc2VsaW5lT2Zmc2V0KCk7CiAgICAgICAgICAgICBhdXRvIGV4cGFuc2lvbkNvbnRleHQg
PSB0ZXh0Q29udGV4dC0+ZXhwYW5zaW9uKCk7Ci0gICAgICAgICAgICBhdXRvIHRleHRSdW4gPSBU
ZXh0UnVuIHsgdGV4dENvbnRleHQtPmNvbnRlbnQoKSwgcnVuLmxvZ2ljYWxMZWZ0KCkgLSBsaW5l
Qm94LmxvZ2ljYWxMZWZ0KCksCisgICAgICAgICAgICBhdXRvIHRleHRSdW4gPSBUZXh0UnVuIHsg
dGV4dENvbnRleHQtPmNvbnRlbnQoKSwgcnVuLmxlZnQoKSAtIGxpbmVCb3gubG9naWNhbExlZnQo
KSwKICAgICAgICAgICAgICAgICBleHBhbnNpb25Db250ZXh0ID8gZXhwYW5zaW9uQ29udGV4dC0+
aG9yaXpvbnRhbEV4cGFuc2lvbiA6IDAsCiAgICAgICAgICAgICAgICAgZXhwYW5zaW9uQ29udGV4
dCA/IGV4cGFuc2lvbkNvbnRleHQtPmJlaGF2aW9yIDogRGVmYXVsdEV4cGFuc2lvbiB9OwogICAg
ICAgICAgICAgdGV4dFJ1bi5zZXRUYWJTaXplKCFzdHlsZS5jb2xsYXBzZVdoaXRlU3BhY2UoKSwg
c3R5bGUudGFiU2l6ZSgpKTsKLSAgICAgICAgICAgIGNvbnRleHQuZHJhd1RleHQoc3R5bGUuZm9u
dENhc2NhZGUoKSwgdGV4dFJ1biwgeyBhYnNvbHV0ZUxvZ2ljYWxMZWZ0LCBiYXNlbGluZU9mZnNl
dCB9KTsKKyAgICAgICAgICAgIGNvbnRleHQuZHJhd1RleHQoc3R5bGUuZm9udENhc2NhZGUoKSwg
dGV4dFJ1biwgeyBhYnNvbHV0ZUxlZnQsIGJhc2VsaW5lT2Zmc2V0IH0pOwogICAgICAgICB9IGVs
c2UgaWYgKGF1dG8qIGNhY2hlZEltYWdlID0gcnVuLmltYWdlKCkpIHsKLSAgICAgICAgICAgIGF1
dG8gcnVuQWJzb2x1dGVSZWN0ID0gRmxvYXRSZWN0IHsgYWJzb2x1dGVPZmZzZXQueCgpICsgcnVu
LmxvZ2ljYWxMZWZ0KCksIGFic29sdXRlT2Zmc2V0LnkoKSArIHJ1bi5sb2dpY2FsVG9wKCksIHJ1
bi5sb2dpY2FsV2lkdGgoKSwgcnVuLmxvZ2ljYWxIZWlnaHQoKSB9OworICAgICAgICAgICAgYXV0
byBydW5BYnNvbHV0ZVJlY3QgPSBGbG9hdFJlY3QgeyBhYnNvbHV0ZU9mZnNldC54KCkgKyBydW4u
bGVmdCgpLCBhYnNvbHV0ZU9mZnNldC55KCkgKyBydW4udG9wKCksIHJ1bi53aWR0aCgpLCBydW4u
aGVpZ2h0KCkgfTsKICAgICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKCpjYWNoZWRJbWFnZS0+
aW1hZ2UoKSwgcnVuQWJzb2x1dGVSZWN0KTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5UnVuLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheVJ1bi5oCmluZGV4IDZlY2QzZDM4N2Iy
NDM2NmQ5NzQxNzI2NGI2MmRlZmY4OTIzNTkzOGMuLjNlNGZkOGJmM2Y0OWI4MjExNDQ2NmEzNzQ5
NGFhMzZlN2QxOWIwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5
dHJlZS9EaXNwbGF5UnVuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVl
L0Rpc3BsYXlSdW4uaApAQCAtNzEsMjkgKzcxLDI5IEBAIHN0cnVjdCBSdW4gewogICAgICAgICBP
cHRpb25hbDxFeHBhbnNpb25Db250ZXh0PiBtX2V4cGFuc2lvbkNvbnRleHQ7CiAgICAgfTsKIAot
ICAgIFJ1bihzaXplX3QgbGluZUluZGV4LCBjb25zdCBMYXlvdXQ6OkJveCYsIGNvbnN0IElubGlu
ZVJlY3QmIGxvZ2ljYWxSZWN0LCBjb25zdCBJbmxpbmVSZWN0JiBpbmtPdmVyZmxvdywgT3B0aW9u
YWw8VGV4dENvbnRleHQ+ID0gV1RGOjpudWxsb3B0KTsKKyAgICBSdW4oc2l6ZV90IGxpbmVJbmRl
eCwgY29uc3QgTGF5b3V0OjpCb3gmLCBjb25zdCBJbmxpbmVSZWN0JiwgY29uc3QgSW5saW5lUmVj
dCYgaW5rT3ZlcmZsb3csIE9wdGlvbmFsPFRleHRDb250ZXh0PiA9IFdURjo6bnVsbG9wdCk7CiAK
ICAgICBzaXplX3QgbGluZUluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9saW5lSW5kZXg7IH0KIAot
ICAgIGNvbnN0IElubGluZVJlY3QmIGxvZ2ljYWxSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9sb2dp
Y2FsUmVjdDsgfQorICAgIGNvbnN0IElubGluZVJlY3QmIHJlY3QoKSBjb25zdCB7IHJldHVybiBt
X3JlY3Q7IH0KICAgICBjb25zdCBJbmxpbmVSZWN0JiBpbmtPdmVyZmxvdygpIGNvbnN0IHsgcmV0
dXJuIG1faW5rT3ZlcmZsb3c7IH0KIAotICAgIElubGluZUxheW91dFBvaW50IGxvZ2ljYWxUb3BM
ZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sb2dpY2FsUmVjdC50b3BMZWZ0KCk7IH0KLSAgICBJbmxp
bmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sb2dpY2FsUmVjdC5s
ZWZ0KCk7IH0KLSAgICBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxSaWdodCgpIGNvbnN0IHsgcmV0
dXJuIG1fbG9naWNhbFJlY3QucmlnaHQoKTsgfQotICAgIElubGluZUxheW91dFVuaXQgbG9naWNh
bFRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9naWNhbFJlY3QudG9wKCk7IH0KLSAgICBJbmxpbmVM
YXlvdXRVbml0IGxvZ2ljYWxCb3R0b20oKSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxSZWN0LmJv
dHRvbSgpOyB9CisgICAgSW5saW5lTGF5b3V0UG9pbnQgdG9wTGVmdCgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVjdC50b3BMZWZ0KCk7IH0KKyAgICBJbmxpbmVMYXlvdXRVbml0IGxlZnQoKSBjb25zdCB7
IHJldHVybiBtX3JlY3QubGVmdCgpOyB9CisgICAgSW5saW5lTGF5b3V0VW5pdCByaWdodCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVjdC5yaWdodCgpOyB9CisgICAgSW5saW5lTGF5b3V0VW5pdCB0b3Ao
KSBjb25zdCB7IHJldHVybiBtX3JlY3QudG9wKCk7IH0KKyAgICBJbmxpbmVMYXlvdXRVbml0IGJv
dHRvbSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC5ib3R0b20oKTsgfQogCi0gICAgSW5saW5lTGF5
b3V0VW5pdCBsb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxSZWN0LndpZHRo
KCk7IH0KLSAgICBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVy
biBtX2xvZ2ljYWxSZWN0LmhlaWdodCgpOyB9CisgICAgSW5saW5lTGF5b3V0VW5pdCB3aWR0aCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVjdC53aWR0aCgpOyB9CisgICAgSW5saW5lTGF5b3V0VW5pdCBo
ZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX3JlY3QuaGVpZ2h0KCk7IH0KIAotICAgIHZvaWQgc2V0
TG9naWNhbFdpZHRoKElubGluZUxheW91dFVuaXQgd2lkdGgpIHsgbV9sb2dpY2FsUmVjdC5zZXRX
aWR0aCh3aWR0aCk7IH0KLSAgICB2b2lkIHNldExvZ2ljYWxUb3AoSW5saW5lTGF5b3V0VW5pdCBs
b2dpY2FsVG9wKSB7IG1fbG9naWNhbFJlY3Quc2V0VG9wKGxvZ2ljYWxUb3ApOyB9Ci0gICAgdm9p
ZCBzZXRMb2dpY2FsTGVmdChJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0KSB7IG1fbG9naWNh
bFJlY3Quc2V0TGVmdChsb2dpY2FsTGVmdCk7IH0KLSAgICB2b2lkIG1vdmVWZXJ0aWNhbGx5KElu
bGluZUxheW91dFVuaXQgZGVsdGEpIHsgbV9sb2dpY2FsUmVjdC5tb3ZlVmVydGljYWxseShkZWx0
YSk7IH0KLSAgICB2b2lkIG1vdmVIb3Jpem9udGFsbHkoSW5saW5lTGF5b3V0VW5pdCBkZWx0YSkg
eyBtX2xvZ2ljYWxSZWN0Lm1vdmVIb3Jpem9udGFsbHkoZGVsdGEpOyB9Ci0gICAgdm9pZCBleHBh
bmRWZXJ0aWNhbGx5KElubGluZUxheW91dFVuaXQgZGVsdGEpIHsgbV9sb2dpY2FsUmVjdC5leHBh
bmRWZXJ0aWNhbGx5KGRlbHRhKTsgfQotICAgIHZvaWQgZXhwYW5kSG9yaXpvbnRhbGx5KElubGlu
ZUxheW91dFVuaXQgZGVsdGEpIHsgbV9sb2dpY2FsUmVjdC5leHBhbmRIb3Jpem9udGFsbHkoZGVs
dGEpOyB9CisgICAgdm9pZCBzZXRXaWR0aChJbmxpbmVMYXlvdXRVbml0IHdpZHRoKSB7IG1fcmVj
dC5zZXRXaWR0aCh3aWR0aCk7IH0KKyAgICB2b2lkIHNldFRvcChJbmxpbmVMYXlvdXRVbml0IHRv
cCkgeyBtX3JlY3Quc2V0VG9wKHRvcCk7IH0KKyAgICB2b2lkIHNldGxMZWZ0KElubGluZUxheW91
dFVuaXQgbGVmdCkgeyBtX3JlY3Quc2V0TGVmdChsZWZ0KTsgfQorICAgIHZvaWQgbW92ZVZlcnRp
Y2FsbHkoSW5saW5lTGF5b3V0VW5pdCBkZWx0YSkgeyBtX3JlY3QubW92ZVZlcnRpY2FsbHkoZGVs
dGEpOyB9CisgICAgdm9pZCBtb3ZlSG9yaXpvbnRhbGx5KElubGluZUxheW91dFVuaXQgZGVsdGEp
IHsgbV9yZWN0Lm1vdmVIb3Jpem9udGFsbHkoZGVsdGEpOyB9CisgICAgdm9pZCBleHBhbmRWZXJ0
aWNhbGx5KElubGluZUxheW91dFVuaXQgZGVsdGEpIHsgbV9yZWN0LmV4cGFuZFZlcnRpY2FsbHko
ZGVsdGEpOyB9CisgICAgdm9pZCBleHBhbmRIb3Jpem9udGFsbHkoSW5saW5lTGF5b3V0VW5pdCBk
ZWx0YSkgeyBtX3JlY3QuZXhwYW5kSG9yaXpvbnRhbGx5KGRlbHRhKTsgfQogCiAgICAgdm9pZCBz
ZXRUZXh0Q29udGV4dChjb25zdCBUZXh0Q29udGV4dCYmIHRleHRDb250ZXh0KSB7IG1fdGV4dENv
bnRleHQuZW1wbGFjZSh0ZXh0Q29udGV4dCk7IH0KICAgICBjb25zdCBPcHRpb25hbDxUZXh0Q29u
dGV4dD4mIHRleHRDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0Q29udGV4dDsgfQpAQCAt
MTEyLDE1ICsxMTIsMTUgQEAgcHJpdmF0ZToKICAgICBjb25zdCBzaXplX3QgbV9saW5lSW5kZXg7
CiAgICAgV2Vha1B0cjxjb25zdCBMYXlvdXQ6OkJveD4gbV9sYXlvdXRCb3g7CiAgICAgQ2FjaGVk
SW1hZ2UqIG1fY2FjaGVkSW1hZ2UgeyBudWxscHRyIH07Ci0gICAgSW5saW5lUmVjdCBtX2xvZ2lj
YWxSZWN0OworICAgIElubGluZVJlY3QgbV9yZWN0OwogICAgIElubGluZVJlY3QgbV9pbmtPdmVy
ZmxvdzsKICAgICBPcHRpb25hbDxUZXh0Q29udGV4dD4gbV90ZXh0Q29udGV4dDsKIH07CiAKLWlu
bGluZSBSdW46OlJ1bihzaXplX3QgbGluZUluZGV4LCBjb25zdCBMYXlvdXQ6OkJveCYgbGF5b3V0
Qm94LCBjb25zdCBJbmxpbmVSZWN0JiBsb2dpY2FsUmVjdCwgY29uc3QgSW5saW5lUmVjdCYgaW5r
T3ZlcmZsb3csIE9wdGlvbmFsPFRleHRDb250ZXh0PiB0ZXh0Q29udGV4dCkKK2lubGluZSBSdW46
OlJ1bihzaXplX3QgbGluZUluZGV4LCBjb25zdCBMYXlvdXQ6OkJveCYgbGF5b3V0Qm94LCBjb25z
dCBJbmxpbmVSZWN0JiByZWN0LCBjb25zdCBJbmxpbmVSZWN0JiBpbmtPdmVyZmxvdywgT3B0aW9u
YWw8VGV4dENvbnRleHQ+IHRleHRDb250ZXh0KQogICAgIDogbV9saW5lSW5kZXgobGluZUluZGV4
KQogICAgICwgbV9sYXlvdXRCb3gobWFrZVdlYWtQdHIobGF5b3V0Qm94KSkKLSAgICAsIG1fbG9n
aWNhbFJlY3QobG9naWNhbFJlY3QpCisgICAgLCBtX3JlY3QocmVjdCkKICAgICAsIG1faW5rT3Zl
cmZsb3coaW5rT3ZlcmZsb3cpCiAgICAgLCBtX3RleHRDb250ZXh0KHRleHRDb250ZXh0KQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVn
cmF0aW9uTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAppbmRleCAyMmIyZDZjZDI1ZjE5NTdmNTM3
ZWU2ZWI0MTZkMDlmODdjNzBmOGJlLi4yMzg4NjljNmQ2MjQwODIwNGNmMWExOThiOWUyMGQ3Nzk4
NGZlNDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcApAQCAtMjQ2LDcgKzI0
Niw3IEBAIHZvaWQgTGluZUxheW91dDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0
IExheW91dFBvaW50JiBwYWludE9mZnNldCkKICAgICAgICAgaWYgKHN0eWxlLnZpc2liaWxpdHko
KSAhPSBWaXNpYmlsaXR5OjpWaXNpYmxlKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAg
ICAgYXV0byByZWN0ID0gRmxvYXRSZWN0IHsgcnVuLmxvZ2ljYWxSZWN0KCkgfTsKKyAgICAgICAg
YXV0byByZWN0ID0gRmxvYXRSZWN0IHsgcnVuLnJlY3QoKSB9OwogICAgICAgICBhdXRvIHZpc3Vh
bE92ZXJmbG93UmVjdCA9IEZsb2F0UmVjdCB7IHJ1bi5pbmtPdmVyZmxvdygpIH07CiAgICAgICAg
IGlmIChwYWludFJlY3QueSgpID4gdmlzdWFsT3ZlcmZsb3dSZWN0Lm1heFkoKSB8fCBwYWludFJl
Y3QubWF4WSgpIDwgdmlzdWFsT3ZlcmZsb3dSZWN0LnkoKSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwpAQCAtMjY2LDcgKzI2Niw3IEBAIHZvaWQgTGluZUxheW91dDo6cGFpbnQoUGFpbnRJbmZvJiBw
YWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKICAgICAgICAgU3RyaW5n
IHRleHRXaXRoSHlwaGVuOwogICAgICAgICBpZiAodGV4dENvbnRleHQubmVlZHNIeXBoZW4oKSkK
ICAgICAgICAgICAgIHRleHRXaXRoSHlwaGVuID0gbWFrZVN0cmluZyh0ZXh0Q29udGV4dC5jb250
ZW50KCksIHN0eWxlLmh5cGhlblN0cmluZygpKTsKLSAgICAgICAgVGV4dFJ1biB0ZXh0UnVuIHsg
IXRleHRXaXRoSHlwaGVuLmlzRW1wdHkoKSA/IHRleHRXaXRoSHlwaGVuIDogdGV4dENvbnRleHQu
Y29udGVudCgpLCBydW4ubG9naWNhbExlZnQoKSAtIGxpbmVCb3gubG9naWNhbExlZnQoKSwgaG9y
aXpvbnRhbEV4cGFuc2lvbiwgYmVoYXZpb3IgfTsKKyAgICAgICAgVGV4dFJ1biB0ZXh0UnVuIHsg
IXRleHRXaXRoSHlwaGVuLmlzRW1wdHkoKSA/IHRleHRXaXRoSHlwaGVuIDogdGV4dENvbnRleHQu
Y29udGVudCgpLCBydW4ubGVmdCgpIC0gbGluZUJveC5sb2dpY2FsTGVmdCgpLCBob3Jpem9udGFs
RXhwYW5zaW9uLCBiZWhhdmlvciB9OwogICAgICAgICB0ZXh0UnVuLnNldFRhYlNpemUoIXN0eWxl
LmNvbGxhcHNlV2hpdGVTcGFjZSgpLCBzdHlsZS50YWJTaXplKCkpOwogICAgICAgICBGbG9hdFBv
aW50IHRleHRPcmlnaW4geyByZWN0LngoKSArIHBhaW50T2Zmc2V0LngoKSwgcm91bmRUb0Rldmlj
ZVBpeGVsKGJhc2VsaW5lT2Zmc2V0LCBkZXZpY2VTY2FsZUZhY3RvcikgfTsKIApAQCAtMzAyLDcg
KzMwMiw3IEBAIGJvb2wgTGluZUxheW91dDo6aGl0VGVzdChjb25zdCBIaXRUZXN0UmVxdWVzdCYg
cmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjCiAKICAgICAvLyBGSVhNRTogVGhpcyBz
aG91bGQgZG8gc29tZXRoaW5nIGVmZmljaWVudCB0byBmaW5kIHRoZSBydW4gcmFuZ2UuCiAgICAg
Zm9yIChhdXRvJiBydW4gOiBpbmxpbmVDb250ZW50LnJ1bnMpIHsKLSAgICAgICAgYXV0byBydW5S
ZWN0ID0gTGF5b3V0Ojp0b0xheW91dFJlY3QocnVuLmxvZ2ljYWxSZWN0KCkpOworICAgICAgICBh
dXRvIHJ1blJlY3QgPSBMYXlvdXQ6OnRvTGF5b3V0UmVjdChydW4ucmVjdCgpKTsKICAgICAgICAg
cnVuUmVjdC5tb3ZlQnkoYWNjdW11bGF0ZWRPZmZzZXQpOwogCiAgICAgICAgIGlmICghbG9jYXRp
b25JbkNvbnRhaW5lci5pbnRlcnNlY3RzKHJ1blJlY3QpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCmluZGV4IDY4NmU0
OGExZjFmY2UyMDMwMjMyNGY2MDY2ZjY4NWEwZDQ4NTk3NzcuLjJmYmJiOWM0NDQ2YTBmZGJiOTI3
YmRlMDI5N2I5MzkwMDFjMzJmZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9s
YXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAKQEAgLTM0Miw3ICszNDIsNyBAQCBz
dGF0aWMgdm9pZCBvdXRwdXRJbmxpbmVSdW5zKFRleHRTdHJlYW0mIHN0cmVhbSwgY29uc3QgTGF5
b3V0U3RhdGUmIGxheW91dFN0YXRlLAogICAgICAgICAgICAgc3RyZWFtIDw8ICJpbmxpbmUgdGV4
dCBib3giOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzdHJlYW0gPDwgImlubGluZSBib3gi
OwotICAgICAgICBzdHJlYW0gPDwgIiBhdCAoIiA8PCBkaXNwbGF5UnVuLmxvZ2ljYWxMZWZ0KCkg
PDwgIiwiIDw8IGRpc3BsYXlSdW4ubG9naWNhbFRvcCgpIDw8ICIpIHNpemUgIiA8PCBkaXNwbGF5
UnVuLmxvZ2ljYWxXaWR0aCgpIDw8ICJ4IiA8PCBkaXNwbGF5UnVuLmxvZ2ljYWxIZWlnaHQoKTsK
KyAgICAgICAgc3RyZWFtIDw8ICIgYXQgKCIgPDwgZGlzcGxheVJ1bi5sZWZ0KCkgPDwgIiwiIDw8
IGRpc3BsYXlSdW4udG9wKCkgPDwgIikgc2l6ZSAiIDw8IGRpc3BsYXlSdW4ud2lkdGgoKSA8PCAi
eCIgPDwgZGlzcGxheVJ1bi5oZWlnaHQoKTsKICAgICAgICAgaWYgKGRpc3BsYXlSdW4udGV4dENv
bnRleHQoKSkKICAgICAgICAgICAgIHN0cmVhbSA8PCAiIHJ1bigiIDw8IGRpc3BsYXlSdW4udGV4
dENvbnRleHQoKS0+c3RhcnQoKSA8PCAiLCAiIDw8IGRpc3BsYXlSdW4udGV4dENvbnRleHQoKS0+
ZW5kKCkgPDwgIikiOwogICAgICAgICBzdHJlYW0ubmV4dExpbmUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAppbmRleCBiYjQzYzFhMDM5YTY4MTQz
YjlkNjlkYTRjY2YyNWEwMjVjZDE0ZWE3Li41NmQyN2QwMWM2ZDJiMjEwOGNjY2I3M2Q3YjI2MDAz
ZTY3NTlmMThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJl
ZUFzVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1Rl
eHQuY3BwCkBAIC00ODAsMTQgKzQ4MCwxMCBAQCB2b2lkIHdyaXRlRGVidWdJbmZvKFRleHRTdHJl
YW0mIHRzLCBjb25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCwgT3B0aW9uU2V0PFJlbmRlcgogc3Rh
dGljIHZvaWQgd3JpdGVUZXh0Qm94KFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5kZXJUZXh0JiBv
LCBjb25zdCBMaW5lTGF5b3V0VHJhdmVyc2FsOjpUZXh0Qm94JiB0ZXh0Qm94KQogewogICAgIGF1
dG8gcmVjdCA9IHRleHRCb3gucmVjdCgpOwotICAgIGF1dG8gbG9naWNhbFJlY3QgPSB0ZXh0Qm94
LmxvZ2ljYWxSZWN0KCk7Ci0KICAgICBpbnQgeCA9IHJlY3QueCgpOwogICAgIGludCB5ID0gcmVj
dC55KCk7Ci0KLSAgICAvLyBGSVhNRTogTWl4aW5nIGxvZ2ljYWwgYW5kIHBoeXNpY2FsIGhlcmUg
ZG9lc24ndCBtYWtlIHNlbnNlLgotICAgIGludCBsb2dpY2FsV2lkdGggPSBjZWlsZihyZWN0Lngo
KSArIGxvZ2ljYWxSZWN0LndpZHRoKCkpIC0geDsKLQorICAgIC8vIEZJWE1FOiBVc2Ugbm9uLWxv
Z2ljYWwgd2lkdGguIHdlYmtpdC5vcmcvYi8yMDY4MDkuCisgICAgaW50IGxvZ2ljYWxXaWR0aCA9
IGNlaWxmKHJlY3QueCgpICsgKHRleHRCb3guaXNIb3Jpem9udGFsKCkgPyByZWN0LndpZHRoKCkg
OiByZWN0LmhlaWdodCgpKSkgLSB4OwogICAgIC8vIEZJWE1FOiBUYWJsZSBjZWxsIGFkanVzdG1l
bnQgaXMgdGVtcG9yYXJ5IHVudGlsIHJlc3VsdHMgY2FuIGJlIHVwZGF0ZWQuCiAgICAgaWYgKGlz
PFJlbmRlclRhYmxlQ2VsbD4oKm8uY29udGFpbmluZ0Jsb2NrKCkpKQogICAgICAgICB5IC09IGZs
b29yVG9JbnQoZG93bmNhc3Q8UmVuZGVyVGFibGVDZWxsPigqby5jb250YWluaW5nQmxvY2soKSku
aW50cmluc2ljUGFkZGluZ0JlZm9yZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9saW5lL0xpbmVMYXlvdXRUcmF2ZXJzYWwuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9saW5lL0xpbmVMYXlvdXRUcmF2ZXJzYWwuaAppbmRleCA3MWI5MjZlMDEwNjNiMGZlMGYw
ZDBkNWZmMWE5ZjRlZjI5YWFmZTQ3Li45NGFiOTZkZWMzY2JlMzIyOWRlMGUwODllN2M1ODc0MmUx
YmQyMGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lTGF5
b3V0VHJhdmVyc2FsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZUxh
eW91dFRyYXZlcnNhbC5oCkBAIC01OSw3ICs1OSw2IEBAIHB1YmxpYzoKICAgICBCb3goUGF0aFZh
cmlhbnQmJik7CiAKICAgICBGbG9hdFJlY3QgcmVjdCgpIGNvbnN0OwotICAgIEZsb2F0UmVjdCBs
b2dpY2FsUmVjdCgpIGNvbnN0OwogCiAgICAgZmxvYXQgYmFzZWxpbmVPZmZzZXQoKSBjb25zdDsK
IApAQCAtMTY3LDEzICsxNjYsNiBAQCBpbmxpbmUgRmxvYXRSZWN0IEJveDo6cmVjdCgpIGNvbnN0
CiAgICAgfSk7CiB9CiAKLWlubGluZSBGbG9hdFJlY3QgQm94Ojpsb2dpY2FsUmVjdCgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0
aCkgewotICAgICAgICByZXR1cm4gcGF0aC5sb2dpY2FsUmVjdCgpOwotICAgIH0pOwotfQotCiBp
bmxpbmUgZmxvYXQgQm94OjpiYXNlbGluZU9mZnNldCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdU
Rjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0aCkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZUxheW91dFRyYXZlcnNhbERpc3BsYXlS
dW5QYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lTGF5b3V0VHJhdmVy
c2FsRGlzcGxheVJ1blBhdGguaAppbmRleCBmMjU5YjI3MDNlM2RiNmY4YjViZjcyMDQ4M2Y4Yjg3
M2Y4NjYzYzMzLi4wMzBhNjg3NGFiYmUxYTcyZGFlNDQ0MGE5ZDZiMDlhNjk1MzhlOWJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lTGF5b3V0VHJhdmVyc2Fs
RGlzcGxheVJ1blBhdGguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5l
TGF5b3V0VHJhdmVyc2FsRGlzcGxheVJ1blBhdGguaApAQCAtMzMsOSArMzMsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSBMaW5lTGF5b3V0VHJhdmVyc2FsIHsKIAotc3RhdGlj
IEZsb2F0UG9pbnQgbGluZVBvc2l0aW9uKGZsb2F0IGxvZ2ljYWxMZWZ0LCBmbG9hdCBsb2dpY2Fs
VG9wKQorc3RhdGljIEZsb2F0UG9pbnQgbGluZVBvc2l0aW9uKGZsb2F0IGxlZnQsIGZsb2F0IHRv
cCkKIHsKLSAgICByZXR1cm4gRmxvYXRQb2ludChsb2dpY2FsTGVmdCwgcm91bmRmKGxvZ2ljYWxU
b3ApKTsKKyAgICByZXR1cm4gRmxvYXRQb2ludChsZWZ0LCByb3VuZGYodG9wKSk7CiB9CiAKIGNs
YXNzIERpc3BsYXlSdW5QYXRoIHsKQEAgLTUwLDEzICs1MCw3IEBAIHB1YmxpYzoKICAgICBEaXNw
bGF5UnVuUGF0aCYgb3BlcmF0b3I9KGNvbnN0IERpc3BsYXlSdW5QYXRoJikgPSBkZWZhdWx0Owog
ICAgIERpc3BsYXlSdW5QYXRoJiBvcGVyYXRvcj0oRGlzcGxheVJ1blBhdGgmJikgPSBkZWZhdWx0
OwogCi0gICAgRmxvYXRSZWN0IHJlY3QoKSBjb25zdCB7IHJldHVybiBsb2dpY2FsUmVjdCgpOyB9
Ci0gICAgRmxvYXRSZWN0IGxvZ2ljYWxSZWN0KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIGF1dG8g
bG9naWNhbFJlY3QgPSBydW4oKS5sb2dpY2FsUmVjdCgpOwotICAgICAgICBGbG9hdFBvaW50IHBv
c2l0aW9uID0gbGluZVBvc2l0aW9uKGxvZ2ljYWxSZWN0LmxlZnQoKSwgbG9naWNhbFJlY3QudG9w
KCkpOwotICAgICAgICByZXR1cm4geyBwb3NpdGlvbiwgbG9naWNhbFJlY3Quc2l6ZSgpIH07Ci0g
ICAgfQorICAgIEZsb2F0UmVjdCByZWN0KCkgY29uc3Q7CiAKICAgICBmbG9hdCBiYXNlbGluZU9m
ZnNldCgpIGNvbnN0IHsgcmV0dXJuIGxpbmVCb3goKS5iYXNlbGluZU9mZnNldCgpOyB9CiAKQEAg
LTExMSw2ICsxMDUsMTMgQEAgcHJpdmF0ZToKICAgICBzaXplX3QgbV9ydW5JbmRleCB7IDAgfTsK
IH07CiAKK2lubGluZSBGbG9hdFJlY3QgRGlzcGxheVJ1blBhdGg6OnJlY3QoKSBjb25zdAorewor
ICAgIGF1dG8gcmVjdCA9IHJ1bigpLnJlY3QoKTsKKyAgICBhdXRvIHBvc2l0aW9uID0gbGluZVBv
c2l0aW9uKHJlY3QubGVmdCgpLCByZWN0LnRvcCgpKTsKKyAgICByZXR1cm4geyBwb3NpdGlvbiwg
cmVjdC5zaXplKCkgfTsKK30KKwogfQogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388820</attachid>
            <date>2020-01-26 17:50:22 -0800</date>
            <delta_ts>2020-01-27 06:39:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206810-20200126175021.patch</filename>
            <type>text/plain</type>
            <size>20485</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1MTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWVjNGVkZDAwYjAxODUx
MGY2ZjVjMDZmMGVkMzZiODhiMzEzZWQ4Yi4uNTgyOTJlNjk3YTQxY2Q5NDUzMTY2NGQyOWEzNDA0
ODNlMzU3YWVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIwLTAxLTI2ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBEaXNwbGF5
OjpSdW4gaGFzIHBoeXNpY2FsIGdlb21ldHJ5IG9ubHkuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY4MTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU4OTA1NDU1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFNpbmNlIGluIExGQyB0aGUgRGlzcGxheTo6UnVucyBhcmUgdXNlZCBmb3IgcGFpbnRpbmcg
YW5kIGhpdHRlc3RpbmcgYnV0IG5ldmVyIGZvciBsYXlvdXQsCisgICAgICAgIHRoZSBnZW9tZXRy
eSBpcyBhbHdheXMgcGh5c2ljYWwuCisKKyAgICAgICAgKiBsYXlvdXQvVmVyaWZpY2F0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6b3V0cHV0TWlzbWF0Y2hpbmdTaW1wbGVMaW5l
SW5mb3JtYXRpb25JZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OmNoZWNrRm9y
TWF0Y2hpbmdOb25UZXh0UnVucyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OmNoZWNrRm9y
TWF0Y2hpbmdUZXh0UnVucyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Om91dHB1dE1pc21h
dGNoaW5nQ29tcGxleExpbmVJbmZvcm1hdGlvbklmTmVlZGVkKToKKyAgICAgICAgKiBsYXlvdXQv
ZGlzcGxheXRyZWUvRGlzcGxheVBhaW50ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eTo6cGFpbnRJbmxpbmVDb250ZW50KToKKyAgICAgICAgKiBsYXlvdXQvZGlzcGxheXRyZWUvRGlz
cGxheVJ1bi5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjpyZWN0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlJ1bjo6dG9wTGVmdCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5OjpSdW46OmxlZnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheTo6UnVuOjpyaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpS
dW46OnRvcCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpSdW46OmJvdHRvbSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpSdW46OndpZHRoIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlJ1bjo6aGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXk6OlJ1bjo6c2V0V2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eTo6UnVuOjpzZXRUb3ApOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjpzZXRsTGVm
dCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpSdW46Om1vdmVWZXJ0aWNhbGx5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlJ1bjo6bW92ZUhvcml6b250YWxseSk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5OjpSdW46OmV4cGFuZFZlcnRpY2FsbHkpOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheTo6UnVuOjpleHBhbmRIb3Jpem9udGFsbHkpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheTo6UnVuOjpSdW4pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjps
b2dpY2FsUmVjdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpS
dW46OmxvZ2ljYWxUb3BMZWZ0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXk6OlJ1bjo6bG9naWNhbExlZnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheTo6UnVuOjpsb2dpY2FsUmlnaHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheTo6UnVuOjpsb2dpY2FsVG9wIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXk6OlJ1bjo6bG9naWNhbEJvdHRvbSBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpSdW46OmxvZ2ljYWxXaWR0aCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpSdW46OmxvZ2ljYWxIZWlnaHQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjpzZXRMb2dpY2Fs
V2lkdGgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjpzZXRMb2dp
Y2FsVG9wKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlJ1bjo6c2V0TG9n
aWNhbExlZnQpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJ
bnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdy
YXRpb246OkxpbmVMYXlvdXQ6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVn
cmF0aW9uOjpMaW5lTGF5b3V0OjpoaXRUZXN0KToKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Om91dHB1
dElubGluZVJ1bnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OndyaXRlVGV4dEJveCk6CisgICAgICAgICogcmVuZGVyaW5nL2xp
bmUvTGluZUxheW91dFRyYXZlcnNhbC5oOgorICAgICAgICAoV2ViQ29yZTo6TGluZUxheW91dFRy
YXZlcnNhbDo6Qm94Ojpsb2dpY2FsUmVjdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL2xpbmUvTGluZUxheW91dFRyYXZlcnNhbERpc3BsYXlSdW5QYXRoLmg6CisgICAgICAg
IChXZWJDb3JlOjpMaW5lTGF5b3V0VHJhdmVyc2FsOjpsaW5lUG9zaXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6TGluZUxheW91dFRyYXZlcnNhbDo6RGlzcGxheVJ1blBhdGg6OnJlY3QgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TGluZUxheW91dFRyYXZlcnNhbDo6RGlzcGxheVJ1blBhdGg6
OmxvZ2ljYWxSZWN0IGNvbnN0KTogRGVsZXRlZC4KKwogMjAyMC0wMS0yNSAgUGVyIEFybmUgVm9s
bGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBNZWRpYSBtaW1lIHR5
cGVzIG1hcCBzaG91bGQgYmUgY3JlYXRlZCBpbiB0aGUgVUkgcHJvY2VzcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L1ZlcmlmaWNhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvVmVyaWZpY2F0aW9uLmNwcAppbmRleCBkYTEwNTEwMmFmM2YyMmE3ZmUyNmY4YTUyZjgw
ZjZiZTlhMjY5ZTQ3Li40NGYzY2M3MDFkYzg4NDZiZDFiNjcyNGE0ZjJiMjc4Y2JmOTgwZTgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvVmVyaWZpY2F0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvVmVyaWZpY2F0aW9uLmNwcApAQCAtOTUsNyArOTUsNyBAQCBz
dGF0aWMgYm9vbCBvdXRwdXRNaXNtYXRjaGluZ1NpbXBsZUxpbmVJbmZvcm1hdGlvbklmTmVlZGVk
KFRleHRTdHJlYW0mIHN0cmVhbSwgYwogICAgICAgICBhdXRvJiBzaW1wbGVSdW4gPSBsaW5lTGF5
b3V0RGF0YS0+cnVuQXQoaSk7CiAgICAgICAgIGF1dG8mIGRpc3BsYXlSdW4gPSBkaXNwbGF5UnVu
c1tpXTsKIAotICAgICAgICBhdXRvIG1hdGNoaW5nUnVucyA9IGFyZUVzc2VudGlhbGx5RXF1YWwo
c2ltcGxlUnVuLmxvZ2ljYWxMZWZ0LCBkaXNwbGF5UnVuLmxvZ2ljYWxMZWZ0KCkpICYmIGFyZUVz
c2VudGlhbGx5RXF1YWwoc2ltcGxlUnVuLmxvZ2ljYWxSaWdodCwgZGlzcGxheVJ1bi5sb2dpY2Fs
UmlnaHQoKSk7CisgICAgICAgIGF1dG8gbWF0Y2hpbmdSdW5zID0gYXJlRXNzZW50aWFsbHlFcXVh
bChzaW1wbGVSdW4ubG9naWNhbExlZnQsIGRpc3BsYXlSdW4ubGVmdCgpKSAmJiBhcmVFc3NlbnRp
YWxseUVxdWFsKHNpbXBsZVJ1bi5sb2dpY2FsUmlnaHQsIGRpc3BsYXlSdW4ucmlnaHQoKSk7CiAg
ICAgICAgIGlmIChtYXRjaGluZ1J1bnMgJiYgZGlzcGxheVJ1bi50ZXh0Q29udGV4dCgpKSB7CiAg
ICAgICAgICAgICBtYXRjaGluZ1J1bnMgPSBzaW1wbGVSdW4uc3RhcnQgPT0gZGlzcGxheVJ1bi50
ZXh0Q29udGV4dCgpLT5zdGFydCgpICYmIHNpbXBsZVJ1bi5lbmQgPT0gZGlzcGxheVJ1bi50ZXh0
Q29udGV4dCgpLT5lbmQoKTsKICAgICAgICAgICAgIC8vIFNMTCBoYW5kbGVzIHN0cmluZ3MgaW4g
YSBtb3JlIGNvbmNhdGVuYXRlZCBmb3JtYXQgPGRpdj5mb288YnI+YmFyPC9kaXY+IC0+IGZvbyAt
PiAwLDMgYmFyIC0+IDMsNiB2cy4gMCwzIGFuZCAwLDMKQEAgLTEwOSw3ICsxMDksNyBAQCBzdGF0
aWMgYm9vbCBvdXRwdXRNaXNtYXRjaGluZ1NpbXBsZUxpbmVJbmZvcm1hdGlvbklmTmVlZGVkKFRl
eHRTdHJlYW0mIHN0cmVhbSwgYwogICAgICAgICBzdHJlYW0gPDwgIiBpbmxpbmUgcnVuIjsKICAg
ICAgICAgaWYgKGRpc3BsYXlSdW4udGV4dENvbnRleHQoKSkKICAgICAgICAgICAgIHN0cmVhbSA8
PCAiICgiIDw8IGRpc3BsYXlSdW4udGV4dENvbnRleHQoKS0+c3RhcnQoKSA8PCAiLCAiIDw8IGRp
c3BsYXlSdW4udGV4dENvbnRleHQoKS0+ZW5kKCkgPDwgIikiOwotICAgICAgICBzdHJlYW0gPDwg
IiAoIiA8PCBkaXNwbGF5UnVuLmxvZ2ljYWxMZWZ0KCkgPDwgIiwgIiA8PCBkaXNwbGF5UnVuLmxv
Z2ljYWxUb3AoKSA8PCAiKSAoIiA8PCBkaXNwbGF5UnVuLmxvZ2ljYWxXaWR0aCgpIDw8ICJ4IiA8
PCBkaXNwbGF5UnVuLmxvZ2ljYWxIZWlnaHQoKSA8PCAiKSI7CisgICAgICAgIHN0cmVhbSA8PCAi
ICgiIDw8IGRpc3BsYXlSdW4ubGVmdCgpIDw8ICIsICIgPDwgZGlzcGxheVJ1bi50b3AoKSA8PCAi
KSAoIiA8PCBkaXNwbGF5UnVuLndpZHRoKCkgPDwgIngiIDw8IGRpc3BsYXlSdW4uaGVpZ2h0KCkg
PDwgIikiOwogICAgICAgICBzdHJlYW0ubmV4dExpbmUoKTsKICAgICAgICAgbWlzbWF0Y2hlZCA9
IHRydWU7CiAgICAgfQpAQCAtMTE4LDE5ICsxMTgsMTkgQEAgc3RhdGljIGJvb2wgb3V0cHV0TWlz
bWF0Y2hpbmdTaW1wbGVMaW5lSW5mb3JtYXRpb25JZk5lZWRlZChUZXh0U3RyZWFtJiBzdHJlYW0s
IGMKIAogc3RhdGljIGJvb2wgY2hlY2tGb3JNYXRjaGluZ05vblRleHRSdW5zKGNvbnN0IERpc3Bs
YXk6OlJ1biYgaW5saW5lUnVuLCBjb25zdCBXZWJDb3JlOjpJbmxpbmVCb3gmIGlubGluZUJveCkK
IHsKLSAgICByZXR1cm4gYXJlRXNzZW50aWFsbHlFcXVhbChpbmxpbmVCb3gubG9naWNhbExlZnQo
KSwgaW5saW5lUnVuLmxvZ2ljYWxMZWZ0KCkpCi0gICAgICAgICYmIGFyZUVzc2VudGlhbGx5RXF1
YWwoaW5saW5lQm94LmxvZ2ljYWxSaWdodCgpLCBpbmxpbmVSdW4ubG9naWNhbFJpZ2h0KCkpCi0g
ICAgICAgICYmIGFyZUVzc2VudGlhbGx5RXF1YWwoaW5saW5lQm94LmxvZ2ljYWxUb3AoKSwgaW5s
aW5lUnVuLmxvZ2ljYWxUb3AoKSkKLSAgICAgICAgJiYgYXJlRXNzZW50aWFsbHlFcXVhbChpbmxp
bmVCb3gubG9naWNhbEJvdHRvbSgpLCBpbmxpbmVSdW4ubG9naWNhbEJvdHRvbSgpKTsKKyAgICBy
ZXR1cm4gYXJlRXNzZW50aWFsbHlFcXVhbChpbmxpbmVCb3gubGVmdCgpLCBpbmxpbmVSdW4ubGVm
dCgpKQorICAgICAgICAmJiBhcmVFc3NlbnRpYWxseUVxdWFsKGlubGluZUJveC5yaWdodCgpLCBp
bmxpbmVSdW4ucmlnaHQoKSkKKyAgICAgICAgJiYgYXJlRXNzZW50aWFsbHlFcXVhbChpbmxpbmVC
b3gudG9wKCksIGlubGluZVJ1bi50b3AoKSkKKyAgICAgICAgJiYgYXJlRXNzZW50aWFsbHlFcXVh
bChpbmxpbmVCb3guYm90dG9tKCksIGlubGluZVJ1bi5ib3R0b20oKSk7CiB9CiAKIAogc3RhdGlj
IGJvb2wgY2hlY2tGb3JNYXRjaGluZ1RleHRSdW5zKGNvbnN0IERpc3BsYXk6OlJ1biYgaW5saW5l
UnVuLCBjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94KQogewotICAgIHJldHVybiBh
cmVFc3NlbnRpYWxseUVxdWFsKGlubGluZVRleHRCb3gubG9naWNhbExlZnQoKSwgaW5saW5lUnVu
LmxvZ2ljYWxMZWZ0KCkpCi0gICAgICAgICYmIGFyZUVzc2VudGlhbGx5RXF1YWwoaW5saW5lVGV4
dEJveC5sb2dpY2FsUmlnaHQoKSwgaW5saW5lUnVuLmxvZ2ljYWxSaWdodCgpKQotICAgICAgICAm
JiBhcmVFc3NlbnRpYWxseUVxdWFsKGlubGluZVRleHRCb3gubG9naWNhbFRvcCgpLCBpbmxpbmVS
dW4ubG9naWNhbFRvcCgpKQotICAgICAgICAmJiBhcmVFc3NlbnRpYWxseUVxdWFsKGlubGluZVRl
eHRCb3gubG9naWNhbEJvdHRvbSgpLCBpbmxpbmVSdW4ubG9naWNhbEJvdHRvbSgpKQorICAgIHJl
dHVybiBhcmVFc3NlbnRpYWxseUVxdWFsKGlubGluZVRleHRCb3gubGVmdCgpLCBpbmxpbmVSdW4u
bGVmdCgpKQorICAgICAgICAmJiBhcmVFc3NlbnRpYWxseUVxdWFsKGlubGluZVRleHRCb3gucmln
aHQoKSwgaW5saW5lUnVuLnJpZ2h0KCkpCisgICAgICAgICYmIGFyZUVzc2VudGlhbGx5RXF1YWwo
aW5saW5lVGV4dEJveC50b3AoKSwgaW5saW5lUnVuLnRvcCgpKQorICAgICAgICAmJiBhcmVFc3Nl
bnRpYWxseUVxdWFsKGlubGluZVRleHRCb3guYm90dG9tKCksIGlubGluZVJ1bi5ib3R0b20oKSkK
ICAgICAgICAgJiYgKGlubGluZVRleHRCb3guaXNMaW5lQnJlYWsoKSB8fCAoaW5saW5lVGV4dEJv
eC5zdGFydCgpID09IGlubGluZVJ1bi50ZXh0Q29udGV4dCgpLT5zdGFydCgpICYmIGlubGluZVRl
eHRCb3guZW5kKCkgPT0gaW5saW5lUnVuLnRleHRDb250ZXh0KCktPmVuZCgpKSk7CiB9CiAKQEAg
LTIwNiw3ICsyMDYsNyBAQCBzdGF0aWMgYm9vbCBvdXRwdXRNaXNtYXRjaGluZ0NvbXBsZXhMaW5l
SW5mb3JtYXRpb25JZk5lZWRlZChUZXh0U3RyZWFtJiBzdHJlYW0sCiAgICAgICAgICAgICBzdHJl
YW0gPDwgIiBpbmxpbmUgcnVuIjsKICAgICAgICAgICAgIGlmIChkaXNwbGF5UnVuLnRleHRDb250
ZXh0KCkpCiAgICAgICAgICAgICAgICAgc3RyZWFtIDw8ICIgKCIgPDwgZGlzcGxheVJ1bi50ZXh0
Q29udGV4dCgpLT5zdGFydCgpIDw8ICIsICIgPDwgZGlzcGxheVJ1bi50ZXh0Q29udGV4dCgpLT5l
bmQoKSA8PCAiKSI7Ci0gICAgICAgICAgICBzdHJlYW0gPDwgIiAoIiA8PCBkaXNwbGF5UnVuLmxv
Z2ljYWxMZWZ0KCkgPDwgIiwgIiA8PCBkaXNwbGF5UnVuLmxvZ2ljYWxUb3AoKSA8PCAiKSAoIiA8
PCBkaXNwbGF5UnVuLmxvZ2ljYWxXaWR0aCgpIDw8ICJ4IiA8PCBkaXNwbGF5UnVuLmxvZ2ljYWxI
ZWlnaHQoKSA8PCAiKSI7CisgICAgICAgICAgICBzdHJlYW0gPDwgIiAoIiA8PCBkaXNwbGF5UnVu
LmxlZnQoKSA8PCAiLCAiIDw8IGRpc3BsYXlSdW4udG9wKCkgPDwgIikgKCIgPDwgZGlzcGxheVJ1
bi53aWR0aCgpIDw8ICJ4IiA8PCBkaXNwbGF5UnVuLmhlaWdodCgpIDw8ICIpIjsKICAgICAgICAg
ICAgIHN0cmVhbS5uZXh0TGluZSgpOwogICAgICAgICAgICAgbWlzbWF0Y2hlZCA9IHRydWU7CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9E
aXNwbGF5UGFpbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlz
cGxheVBhaW50ZXIuY3BwCmluZGV4IDFkNTkxNjljNmEyNDI0NjNmMjIyMzRlODMwZjc4Mzg4MWY4
NmZhYTQuLjQyYzIxMjA1MThjYWQ2NmUxZmVkMWZkOTZkNmI3YWNlMTIyMjM1MGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5UGFpbnRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlQYWludGVyLmNw
cApAQCAtMTI2LDE4ICsxMjYsMTggQEAgc3RhdGljIHZvaWQgcGFpbnRJbmxpbmVDb250ZW50KEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgTGF5b3V0UG9pbnQgYWJzb2x1dGVPZmYKICAgICAgICAg
ICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3Ioc3R5bGUuY29sb3IoKSk7CiAgICAgICAgICAgICBj
b250ZXh0LnNldEZpbGxDb2xvcihzdHlsZS5jb2xvcigpKTsKIAotICAgICAgICAgICAgYXV0byBh
YnNvbHV0ZUxvZ2ljYWxMZWZ0ID0gYWJzb2x1dGVPZmZzZXQueCgpICsgcnVuLmxvZ2ljYWxMZWZ0
KCk7CisgICAgICAgICAgICBhdXRvIGFic29sdXRlTGVmdCA9IGFic29sdXRlT2Zmc2V0LngoKSAr
IHJ1bi5sZWZ0KCk7CiAgICAgICAgICAgICAvLyBGSVhNRTogQWRkIG5vbi1iYXNlbGluZSBhbGln
biBwYWludGluZwogICAgICAgICAgICAgYXV0byYgbGluZUJveCA9IGRpc3BsYXlJbmxpbmVDb250
ZW50LT5saW5lQm94Rm9yUnVuKHJ1bik7CiAgICAgICAgICAgICBhdXRvIGJhc2VsaW5lT2Zmc2V0
ID0gYWJzb2x1dGVPZmZzZXQueSgpICsgbGluZUJveC5sb2dpY2FsVG9wKCkgKyBsaW5lQm94LmJh
c2VsaW5lT2Zmc2V0KCk7CiAgICAgICAgICAgICBhdXRvIGV4cGFuc2lvbkNvbnRleHQgPSB0ZXh0
Q29udGV4dC0+ZXhwYW5zaW9uKCk7Ci0gICAgICAgICAgICBhdXRvIHRleHRSdW4gPSBUZXh0UnVu
IHsgdGV4dENvbnRleHQtPmNvbnRlbnQoKSwgcnVuLmxvZ2ljYWxMZWZ0KCkgLSBsaW5lQm94Lmxv
Z2ljYWxMZWZ0KCksCisgICAgICAgICAgICBhdXRvIHRleHRSdW4gPSBUZXh0UnVuIHsgdGV4dENv
bnRleHQtPmNvbnRlbnQoKSwgcnVuLmxlZnQoKSAtIGxpbmVCb3gubG9naWNhbExlZnQoKSwKICAg
ICAgICAgICAgICAgICBleHBhbnNpb25Db250ZXh0ID8gZXhwYW5zaW9uQ29udGV4dC0+aG9yaXpv
bnRhbEV4cGFuc2lvbiA6IDAsCiAgICAgICAgICAgICAgICAgZXhwYW5zaW9uQ29udGV4dCA/IGV4
cGFuc2lvbkNvbnRleHQtPmJlaGF2aW9yIDogRGVmYXVsdEV4cGFuc2lvbiB9OwogICAgICAgICAg
ICAgdGV4dFJ1bi5zZXRUYWJTaXplKCFzdHlsZS5jb2xsYXBzZVdoaXRlU3BhY2UoKSwgc3R5bGUu
dGFiU2l6ZSgpKTsKLSAgICAgICAgICAgIGNvbnRleHQuZHJhd1RleHQoc3R5bGUuZm9udENhc2Nh
ZGUoKSwgdGV4dFJ1biwgeyBhYnNvbHV0ZUxvZ2ljYWxMZWZ0LCBiYXNlbGluZU9mZnNldCB9KTsK
KyAgICAgICAgICAgIGNvbnRleHQuZHJhd1RleHQoc3R5bGUuZm9udENhc2NhZGUoKSwgdGV4dFJ1
biwgeyBhYnNvbHV0ZUxlZnQsIGJhc2VsaW5lT2Zmc2V0IH0pOwogICAgICAgICB9IGVsc2UgaWYg
KGF1dG8qIGNhY2hlZEltYWdlID0gcnVuLmltYWdlKCkpIHsKLSAgICAgICAgICAgIGF1dG8gcnVu
QWJzb2x1dGVSZWN0ID0gRmxvYXRSZWN0IHsgYWJzb2x1dGVPZmZzZXQueCgpICsgcnVuLmxvZ2lj
YWxMZWZ0KCksIGFic29sdXRlT2Zmc2V0LnkoKSArIHJ1bi5sb2dpY2FsVG9wKCksIHJ1bi5sb2dp
Y2FsV2lkdGgoKSwgcnVuLmxvZ2ljYWxIZWlnaHQoKSB9OworICAgICAgICAgICAgYXV0byBydW5B
YnNvbHV0ZVJlY3QgPSBGbG9hdFJlY3QgeyBhYnNvbHV0ZU9mZnNldC54KCkgKyBydW4ubGVmdCgp
LCBhYnNvbHV0ZU9mZnNldC55KCkgKyBydW4udG9wKCksIHJ1bi53aWR0aCgpLCBydW4uaGVpZ2h0
KCkgfTsKICAgICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKCpjYWNoZWRJbWFnZS0+aW1hZ2Uo
KSwgcnVuQWJzb2x1dGVSZWN0KTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5UnVuLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheVJ1bi5oCmluZGV4IDZlY2QzZDM4N2IyNDM2NmQ5
NzQxNzI2NGI2MmRlZmY4OTIzNTkzOGMuLjNlNGZkOGJmM2Y0OWI4MjExNDQ2NmEzNzQ5NGFhMzZl
N2QxOWIwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9E
aXNwbGF5UnVuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3Bs
YXlSdW4uaApAQCAtNzEsMjkgKzcxLDI5IEBAIHN0cnVjdCBSdW4gewogICAgICAgICBPcHRpb25h
bDxFeHBhbnNpb25Db250ZXh0PiBtX2V4cGFuc2lvbkNvbnRleHQ7CiAgICAgfTsKIAotICAgIFJ1
bihzaXplX3QgbGluZUluZGV4LCBjb25zdCBMYXlvdXQ6OkJveCYsIGNvbnN0IElubGluZVJlY3Qm
IGxvZ2ljYWxSZWN0LCBjb25zdCBJbmxpbmVSZWN0JiBpbmtPdmVyZmxvdywgT3B0aW9uYWw8VGV4
dENvbnRleHQ+ID0gV1RGOjpudWxsb3B0KTsKKyAgICBSdW4oc2l6ZV90IGxpbmVJbmRleCwgY29u
c3QgTGF5b3V0OjpCb3gmLCBjb25zdCBJbmxpbmVSZWN0JiwgY29uc3QgSW5saW5lUmVjdCYgaW5r
T3ZlcmZsb3csIE9wdGlvbmFsPFRleHRDb250ZXh0PiA9IFdURjo6bnVsbG9wdCk7CiAKICAgICBz
aXplX3QgbGluZUluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9saW5lSW5kZXg7IH0KIAotICAgIGNv
bnN0IElubGluZVJlY3QmIGxvZ2ljYWxSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9sb2dpY2FsUmVj
dDsgfQorICAgIGNvbnN0IElubGluZVJlY3QmIHJlY3QoKSBjb25zdCB7IHJldHVybiBtX3JlY3Q7
IH0KICAgICBjb25zdCBJbmxpbmVSZWN0JiBpbmtPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1f
aW5rT3ZlcmZsb3c7IH0KIAotICAgIElubGluZUxheW91dFBvaW50IGxvZ2ljYWxUb3BMZWZ0KCkg
Y29uc3QgeyByZXR1cm4gbV9sb2dpY2FsUmVjdC50b3BMZWZ0KCk7IH0KLSAgICBJbmxpbmVMYXlv
dXRVbml0IGxvZ2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sb2dpY2FsUmVjdC5sZWZ0KCk7
IH0KLSAgICBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxSaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1f
bG9naWNhbFJlY3QucmlnaHQoKTsgfQotICAgIElubGluZUxheW91dFVuaXQgbG9naWNhbFRvcCgp
IGNvbnN0IHsgcmV0dXJuIG1fbG9naWNhbFJlY3QudG9wKCk7IH0KLSAgICBJbmxpbmVMYXlvdXRV
bml0IGxvZ2ljYWxCb3R0b20oKSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxSZWN0LmJvdHRvbSgp
OyB9CisgICAgSW5saW5lTGF5b3V0UG9pbnQgdG9wTGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVj
dC50b3BMZWZ0KCk7IH0KKyAgICBJbmxpbmVMYXlvdXRVbml0IGxlZnQoKSBjb25zdCB7IHJldHVy
biBtX3JlY3QubGVmdCgpOyB9CisgICAgSW5saW5lTGF5b3V0VW5pdCByaWdodCgpIGNvbnN0IHsg
cmV0dXJuIG1fcmVjdC5yaWdodCgpOyB9CisgICAgSW5saW5lTGF5b3V0VW5pdCB0b3AoKSBjb25z
dCB7IHJldHVybiBtX3JlY3QudG9wKCk7IH0KKyAgICBJbmxpbmVMYXlvdXRVbml0IGJvdHRvbSgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVjdC5ib3R0b20oKTsgfQogCi0gICAgSW5saW5lTGF5b3V0VW5p
dCBsb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxSZWN0LndpZHRoKCk7IH0K
LSAgICBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2xv
Z2ljYWxSZWN0LmhlaWdodCgpOyB9CisgICAgSW5saW5lTGF5b3V0VW5pdCB3aWR0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVjdC53aWR0aCgpOyB9CisgICAgSW5saW5lTGF5b3V0VW5pdCBoZWlnaHQo
KSBjb25zdCB7IHJldHVybiBtX3JlY3QuaGVpZ2h0KCk7IH0KIAotICAgIHZvaWQgc2V0TG9naWNh
bFdpZHRoKElubGluZUxheW91dFVuaXQgd2lkdGgpIHsgbV9sb2dpY2FsUmVjdC5zZXRXaWR0aCh3
aWR0aCk7IH0KLSAgICB2b2lkIHNldExvZ2ljYWxUb3AoSW5saW5lTGF5b3V0VW5pdCBsb2dpY2Fs
VG9wKSB7IG1fbG9naWNhbFJlY3Quc2V0VG9wKGxvZ2ljYWxUb3ApOyB9Ci0gICAgdm9pZCBzZXRM
b2dpY2FsTGVmdChJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0KSB7IG1fbG9naWNhbFJlY3Qu
c2V0TGVmdChsb2dpY2FsTGVmdCk7IH0KLSAgICB2b2lkIG1vdmVWZXJ0aWNhbGx5KElubGluZUxh
eW91dFVuaXQgZGVsdGEpIHsgbV9sb2dpY2FsUmVjdC5tb3ZlVmVydGljYWxseShkZWx0YSk7IH0K
LSAgICB2b2lkIG1vdmVIb3Jpem9udGFsbHkoSW5saW5lTGF5b3V0VW5pdCBkZWx0YSkgeyBtX2xv
Z2ljYWxSZWN0Lm1vdmVIb3Jpem9udGFsbHkoZGVsdGEpOyB9Ci0gICAgdm9pZCBleHBhbmRWZXJ0
aWNhbGx5KElubGluZUxheW91dFVuaXQgZGVsdGEpIHsgbV9sb2dpY2FsUmVjdC5leHBhbmRWZXJ0
aWNhbGx5KGRlbHRhKTsgfQotICAgIHZvaWQgZXhwYW5kSG9yaXpvbnRhbGx5KElubGluZUxheW91
dFVuaXQgZGVsdGEpIHsgbV9sb2dpY2FsUmVjdC5leHBhbmRIb3Jpem9udGFsbHkoZGVsdGEpOyB9
CisgICAgdm9pZCBzZXRXaWR0aChJbmxpbmVMYXlvdXRVbml0IHdpZHRoKSB7IG1fcmVjdC5zZXRX
aWR0aCh3aWR0aCk7IH0KKyAgICB2b2lkIHNldFRvcChJbmxpbmVMYXlvdXRVbml0IHRvcCkgeyBt
X3JlY3Quc2V0VG9wKHRvcCk7IH0KKyAgICB2b2lkIHNldGxMZWZ0KElubGluZUxheW91dFVuaXQg
bGVmdCkgeyBtX3JlY3Quc2V0TGVmdChsZWZ0KTsgfQorICAgIHZvaWQgbW92ZVZlcnRpY2FsbHko
SW5saW5lTGF5b3V0VW5pdCBkZWx0YSkgeyBtX3JlY3QubW92ZVZlcnRpY2FsbHkoZGVsdGEpOyB9
CisgICAgdm9pZCBtb3ZlSG9yaXpvbnRhbGx5KElubGluZUxheW91dFVuaXQgZGVsdGEpIHsgbV9y
ZWN0Lm1vdmVIb3Jpem9udGFsbHkoZGVsdGEpOyB9CisgICAgdm9pZCBleHBhbmRWZXJ0aWNhbGx5
KElubGluZUxheW91dFVuaXQgZGVsdGEpIHsgbV9yZWN0LmV4cGFuZFZlcnRpY2FsbHkoZGVsdGEp
OyB9CisgICAgdm9pZCBleHBhbmRIb3Jpem9udGFsbHkoSW5saW5lTGF5b3V0VW5pdCBkZWx0YSkg
eyBtX3JlY3QuZXhwYW5kSG9yaXpvbnRhbGx5KGRlbHRhKTsgfQogCiAgICAgdm9pZCBzZXRUZXh0
Q29udGV4dChjb25zdCBUZXh0Q29udGV4dCYmIHRleHRDb250ZXh0KSB7IG1fdGV4dENvbnRleHQu
ZW1wbGFjZSh0ZXh0Q29udGV4dCk7IH0KICAgICBjb25zdCBPcHRpb25hbDxUZXh0Q29udGV4dD4m
IHRleHRDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0Q29udGV4dDsgfQpAQCAtMTEyLDE1
ICsxMTIsMTUgQEAgcHJpdmF0ZToKICAgICBjb25zdCBzaXplX3QgbV9saW5lSW5kZXg7CiAgICAg
V2Vha1B0cjxjb25zdCBMYXlvdXQ6OkJveD4gbV9sYXlvdXRCb3g7CiAgICAgQ2FjaGVkSW1hZ2Uq
IG1fY2FjaGVkSW1hZ2UgeyBudWxscHRyIH07Ci0gICAgSW5saW5lUmVjdCBtX2xvZ2ljYWxSZWN0
OworICAgIElubGluZVJlY3QgbV9yZWN0OwogICAgIElubGluZVJlY3QgbV9pbmtPdmVyZmxvdzsK
ICAgICBPcHRpb25hbDxUZXh0Q29udGV4dD4gbV90ZXh0Q29udGV4dDsKIH07CiAKLWlubGluZSBS
dW46OlJ1bihzaXplX3QgbGluZUluZGV4LCBjb25zdCBMYXlvdXQ6OkJveCYgbGF5b3V0Qm94LCBj
b25zdCBJbmxpbmVSZWN0JiBsb2dpY2FsUmVjdCwgY29uc3QgSW5saW5lUmVjdCYgaW5rT3ZlcmZs
b3csIE9wdGlvbmFsPFRleHRDb250ZXh0PiB0ZXh0Q29udGV4dCkKK2lubGluZSBSdW46OlJ1bihz
aXplX3QgbGluZUluZGV4LCBjb25zdCBMYXlvdXQ6OkJveCYgbGF5b3V0Qm94LCBjb25zdCBJbmxp
bmVSZWN0JiByZWN0LCBjb25zdCBJbmxpbmVSZWN0JiBpbmtPdmVyZmxvdywgT3B0aW9uYWw8VGV4
dENvbnRleHQ+IHRleHRDb250ZXh0KQogICAgIDogbV9saW5lSW5kZXgobGluZUluZGV4KQogICAg
ICwgbV9sYXlvdXRCb3gobWFrZVdlYWtQdHIobGF5b3V0Qm94KSkKLSAgICAsIG1fbG9naWNhbFJl
Y3QobG9naWNhbFJlY3QpCisgICAgLCBtX3JlY3QocmVjdCkKICAgICAsIG1faW5rT3ZlcmZsb3co
aW5rT3ZlcmZsb3cpCiAgICAgLCBtX3RleHRDb250ZXh0KHRleHRDb250ZXh0KQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
TGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAppbmRleCAyMmIyZDZjZDI1ZjE5NTdmNTM3ZWU2ZWI0
MTZkMDlmODdjNzBmOGJlLi4yMzg4NjljNmQ2MjQwODIwNGNmMWExOThiOWUyMGQ3Nzk4NGZlNDVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50
ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdy
YXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcApAQCAtMjQ2LDcgKzI0Niw3IEBA
IHZvaWQgTGluZUxheW91dDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91
dFBvaW50JiBwYWludE9mZnNldCkKICAgICAgICAgaWYgKHN0eWxlLnZpc2liaWxpdHkoKSAhPSBW
aXNpYmlsaXR5OjpWaXNpYmxlKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgYXV0
byByZWN0ID0gRmxvYXRSZWN0IHsgcnVuLmxvZ2ljYWxSZWN0KCkgfTsKKyAgICAgICAgYXV0byBy
ZWN0ID0gRmxvYXRSZWN0IHsgcnVuLnJlY3QoKSB9OwogICAgICAgICBhdXRvIHZpc3VhbE92ZXJm
bG93UmVjdCA9IEZsb2F0UmVjdCB7IHJ1bi5pbmtPdmVyZmxvdygpIH07CiAgICAgICAgIGlmIChw
YWludFJlY3QueSgpID4gdmlzdWFsT3ZlcmZsb3dSZWN0Lm1heFkoKSB8fCBwYWludFJlY3QubWF4
WSgpIDwgdmlzdWFsT3ZlcmZsb3dSZWN0LnkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAt
MjY2LDcgKzI2Niw3IEBAIHZvaWQgTGluZUxheW91dDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKICAgICAgICAgU3RyaW5nIHRleHRX
aXRoSHlwaGVuOwogICAgICAgICBpZiAodGV4dENvbnRleHQubmVlZHNIeXBoZW4oKSkKICAgICAg
ICAgICAgIHRleHRXaXRoSHlwaGVuID0gbWFrZVN0cmluZyh0ZXh0Q29udGV4dC5jb250ZW50KCks
IHN0eWxlLmh5cGhlblN0cmluZygpKTsKLSAgICAgICAgVGV4dFJ1biB0ZXh0UnVuIHsgIXRleHRX
aXRoSHlwaGVuLmlzRW1wdHkoKSA/IHRleHRXaXRoSHlwaGVuIDogdGV4dENvbnRleHQuY29udGVu
dCgpLCBydW4ubG9naWNhbExlZnQoKSAtIGxpbmVCb3gubG9naWNhbExlZnQoKSwgaG9yaXpvbnRh
bEV4cGFuc2lvbiwgYmVoYXZpb3IgfTsKKyAgICAgICAgVGV4dFJ1biB0ZXh0UnVuIHsgIXRleHRX
aXRoSHlwaGVuLmlzRW1wdHkoKSA/IHRleHRXaXRoSHlwaGVuIDogdGV4dENvbnRleHQuY29udGVu
dCgpLCBydW4ubGVmdCgpIC0gbGluZUJveC5sb2dpY2FsTGVmdCgpLCBob3Jpem9udGFsRXhwYW5z
aW9uLCBiZWhhdmlvciB9OwogICAgICAgICB0ZXh0UnVuLnNldFRhYlNpemUoIXN0eWxlLmNvbGxh
cHNlV2hpdGVTcGFjZSgpLCBzdHlsZS50YWJTaXplKCkpOwogICAgICAgICBGbG9hdFBvaW50IHRl
eHRPcmlnaW4geyByZWN0LngoKSArIHBhaW50T2Zmc2V0LngoKSwgcm91bmRUb0RldmljZVBpeGVs
KGJhc2VsaW5lT2Zmc2V0LCBkZXZpY2VTY2FsZUZhY3RvcikgfTsKIApAQCAtMzAyLDcgKzMwMiw3
IEBAIGJvb2wgTGluZUxheW91dDo6aGl0VGVzdChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVz
dCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjCiAKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQg
ZG8gc29tZXRoaW5nIGVmZmljaWVudCB0byBmaW5kIHRoZSBydW4gcmFuZ2UuCiAgICAgZm9yIChh
dXRvJiBydW4gOiBpbmxpbmVDb250ZW50LnJ1bnMpIHsKLSAgICAgICAgYXV0byBydW5SZWN0ID0g
TGF5b3V0Ojp0b0xheW91dFJlY3QocnVuLmxvZ2ljYWxSZWN0KCkpOworICAgICAgICBhdXRvIHJ1
blJlY3QgPSBMYXlvdXQ6OnRvTGF5b3V0UmVjdChydW4ucmVjdCgpKTsKICAgICAgICAgcnVuUmVj
dC5tb3ZlQnkoYWNjdW11bGF0ZWRPZmZzZXQpOwogCiAgICAgICAgIGlmICghbG9jYXRpb25JbkNv
bnRhaW5lci5pbnRlcnNlY3RzKHJ1blJlY3QpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCmluZGV4IDY4NmU0OGExZjFm
Y2UyMDMwMjMyNGY2MDY2ZjY4NWEwZDQ4NTk3NzcuLjJmYmJiOWM0NDQ2YTBmZGJiOTI3YmRlMDI5
N2I5MzkwMDFjMzJmZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0
cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5
b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAKQEAgLTM0Miw3ICszNDIsNyBAQCBzdGF0aWMg
dm9pZCBvdXRwdXRJbmxpbmVSdW5zKFRleHRTdHJlYW0mIHN0cmVhbSwgY29uc3QgTGF5b3V0U3Rh
dGUmIGxheW91dFN0YXRlLAogICAgICAgICAgICAgc3RyZWFtIDw8ICJpbmxpbmUgdGV4dCBib3gi
OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzdHJlYW0gPDwgImlubGluZSBib3giOwotICAg
ICAgICBzdHJlYW0gPDwgIiBhdCAoIiA8PCBkaXNwbGF5UnVuLmxvZ2ljYWxMZWZ0KCkgPDwgIiwi
IDw8IGRpc3BsYXlSdW4ubG9naWNhbFRvcCgpIDw8ICIpIHNpemUgIiA8PCBkaXNwbGF5UnVuLmxv
Z2ljYWxXaWR0aCgpIDw8ICJ4IiA8PCBkaXNwbGF5UnVuLmxvZ2ljYWxIZWlnaHQoKTsKKyAgICAg
ICAgc3RyZWFtIDw8ICIgYXQgKCIgPDwgZGlzcGxheVJ1bi5sZWZ0KCkgPDwgIiwiIDw8IGRpc3Bs
YXlSdW4udG9wKCkgPDwgIikgc2l6ZSAiIDw8IGRpc3BsYXlSdW4ud2lkdGgoKSA8PCAieCIgPDwg
ZGlzcGxheVJ1bi5oZWlnaHQoKTsKICAgICAgICAgaWYgKGRpc3BsYXlSdW4udGV4dENvbnRleHQo
KSkKICAgICAgICAgICAgIHN0cmVhbSA8PCAiIHJ1bigiIDw8IGRpc3BsYXlSdW4udGV4dENvbnRl
eHQoKS0+c3RhcnQoKSA8PCAiLCAiIDw8IGRpc3BsYXlSdW4udGV4dENvbnRleHQoKS0+ZW5kKCkg
PDwgIikiOwogICAgICAgICBzdHJlYW0ubmV4dExpbmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAppbmRleCBiYjQzYzFhMDM5YTY4MTQzYjlkNjlk
YTRjY2YyNWEwMjVjZDE0ZWE3Li41NmQyN2QwMWM2ZDJiMjEwOGNjY2I3M2Q3YjI2MDAzZTY3NTlm
MThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3Bw
CkBAIC00ODAsMTQgKzQ4MCwxMCBAQCB2b2lkIHdyaXRlRGVidWdJbmZvKFRleHRTdHJlYW0mIHRz
LCBjb25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCwgT3B0aW9uU2V0PFJlbmRlcgogc3RhdGljIHZv
aWQgd3JpdGVUZXh0Qm94KFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5kZXJUZXh0JiBvLCBjb25z
dCBMaW5lTGF5b3V0VHJhdmVyc2FsOjpUZXh0Qm94JiB0ZXh0Qm94KQogewogICAgIGF1dG8gcmVj
dCA9IHRleHRCb3gucmVjdCgpOwotICAgIGF1dG8gbG9naWNhbFJlY3QgPSB0ZXh0Qm94LmxvZ2lj
YWxSZWN0KCk7Ci0KICAgICBpbnQgeCA9IHJlY3QueCgpOwogICAgIGludCB5ID0gcmVjdC55KCk7
Ci0KLSAgICAvLyBGSVhNRTogTWl4aW5nIGxvZ2ljYWwgYW5kIHBoeXNpY2FsIGhlcmUgZG9lc24n
dCBtYWtlIHNlbnNlLgotICAgIGludCBsb2dpY2FsV2lkdGggPSBjZWlsZihyZWN0LngoKSArIGxv
Z2ljYWxSZWN0LndpZHRoKCkpIC0geDsKLQorICAgIC8vIEZJWE1FOiBVc2Ugbm9uLWxvZ2ljYWwg
d2lkdGguIHdlYmtpdC5vcmcvYi8yMDY4MDkuCisgICAgaW50IGxvZ2ljYWxXaWR0aCA9IGNlaWxm
KHJlY3QueCgpICsgKHRleHRCb3guaXNIb3Jpem9udGFsKCkgPyByZWN0LndpZHRoKCkgOiByZWN0
LmhlaWdodCgpKSkgLSB4OwogICAgIC8vIEZJWE1FOiBUYWJsZSBjZWxsIGFkanVzdG1lbnQgaXMg
dGVtcG9yYXJ5IHVudGlsIHJlc3VsdHMgY2FuIGJlIHVwZGF0ZWQuCiAgICAgaWYgKGlzPFJlbmRl
clRhYmxlQ2VsbD4oKm8uY29udGFpbmluZ0Jsb2NrKCkpKQogICAgICAgICB5IC09IGZsb29yVG9J
bnQoZG93bmNhc3Q8UmVuZGVyVGFibGVDZWxsPigqby5jb250YWluaW5nQmxvY2soKSkuaW50cmlu
c2ljUGFkZGluZ0JlZm9yZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9saW5lL0xpbmVMYXlvdXRUcmF2ZXJzYWwuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9s
aW5lL0xpbmVMYXlvdXRUcmF2ZXJzYWwuaAppbmRleCA3MWI5MjZlMDEwNjNiMGZlMGYwZDBkNWZm
MWE5ZjRlZjI5YWFmZTQ3Li45NGFiOTZkZWMzY2JlMzIyOWRlMGUwODllN2M1ODc0MmUxYmQyMGI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lTGF5b3V0VHJh
dmVyc2FsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZUxheW91dFRy
YXZlcnNhbC5oCkBAIC01OSw3ICs1OSw2IEBAIHB1YmxpYzoKICAgICBCb3goUGF0aFZhcmlhbnQm
Jik7CiAKICAgICBGbG9hdFJlY3QgcmVjdCgpIGNvbnN0OwotICAgIEZsb2F0UmVjdCBsb2dpY2Fs
UmVjdCgpIGNvbnN0OwogCiAgICAgZmxvYXQgYmFzZWxpbmVPZmZzZXQoKSBjb25zdDsKIApAQCAt
MTY3LDEzICsxNjYsNiBAQCBpbmxpbmUgRmxvYXRSZWN0IEJveDo6cmVjdCgpIGNvbnN0CiAgICAg
fSk7CiB9CiAKLWlubGluZSBGbG9hdFJlY3QgQm94Ojpsb2dpY2FsUmVjdCgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0aCkgewot
ICAgICAgICByZXR1cm4gcGF0aC5sb2dpY2FsUmVjdCgpOwotICAgIH0pOwotfQotCiBpbmxpbmUg
ZmxvYXQgQm94OjpiYXNlbGluZU9mZnNldCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdURjo6c3dp
dGNoT24obV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0aCkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZUxheW91dFRyYXZlcnNhbERpc3BsYXlSdW5QYXRo
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lTGF5b3V0VHJhdmVyc2FsRGlz
cGxheVJ1blBhdGguaAppbmRleCBmMjU5YjI3MDNlM2RiNmY4YjViZjcyMDQ4M2Y4Yjg3M2Y4NjYz
YzMzLi4wMzBhNjg3NGFiYmUxYTcyZGFlNDQ0MGE5ZDZiMDlhNjk1MzhlOWJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lTGF5b3V0VHJhdmVyc2FsRGlzcGxh
eVJ1blBhdGguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lTGF5b3V0
VHJhdmVyc2FsRGlzcGxheVJ1blBhdGguaApAQCAtMzMsOSArMzMsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIG5hbWVzcGFjZSBMaW5lTGF5b3V0VHJhdmVyc2FsIHsKIAotc3RhdGljIEZsb2F0
UG9pbnQgbGluZVBvc2l0aW9uKGZsb2F0IGxvZ2ljYWxMZWZ0LCBmbG9hdCBsb2dpY2FsVG9wKQor
c3RhdGljIEZsb2F0UG9pbnQgbGluZVBvc2l0aW9uKGZsb2F0IGxlZnQsIGZsb2F0IHRvcCkKIHsK
LSAgICByZXR1cm4gRmxvYXRQb2ludChsb2dpY2FsTGVmdCwgcm91bmRmKGxvZ2ljYWxUb3ApKTsK
KyAgICByZXR1cm4gRmxvYXRQb2ludChsZWZ0LCByb3VuZGYodG9wKSk7CiB9CiAKIGNsYXNzIERp
c3BsYXlSdW5QYXRoIHsKQEAgLTUwLDEzICs1MCw3IEBAIHB1YmxpYzoKICAgICBEaXNwbGF5UnVu
UGF0aCYgb3BlcmF0b3I9KGNvbnN0IERpc3BsYXlSdW5QYXRoJikgPSBkZWZhdWx0OwogICAgIERp
c3BsYXlSdW5QYXRoJiBvcGVyYXRvcj0oRGlzcGxheVJ1blBhdGgmJikgPSBkZWZhdWx0OwogCi0g
ICAgRmxvYXRSZWN0IHJlY3QoKSBjb25zdCB7IHJldHVybiBsb2dpY2FsUmVjdCgpOyB9Ci0gICAg
RmxvYXRSZWN0IGxvZ2ljYWxSZWN0KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIGF1dG8gbG9naWNh
bFJlY3QgPSBydW4oKS5sb2dpY2FsUmVjdCgpOwotICAgICAgICBGbG9hdFBvaW50IHBvc2l0aW9u
ID0gbGluZVBvc2l0aW9uKGxvZ2ljYWxSZWN0LmxlZnQoKSwgbG9naWNhbFJlY3QudG9wKCkpOwot
ICAgICAgICByZXR1cm4geyBwb3NpdGlvbiwgbG9naWNhbFJlY3Quc2l6ZSgpIH07Ci0gICAgfQor
ICAgIEZsb2F0UmVjdCByZWN0KCkgY29uc3Q7CiAKICAgICBmbG9hdCBiYXNlbGluZU9mZnNldCgp
IGNvbnN0IHsgcmV0dXJuIGxpbmVCb3goKS5iYXNlbGluZU9mZnNldCgpOyB9CiAKQEAgLTExMSw2
ICsxMDUsMTMgQEAgcHJpdmF0ZToKICAgICBzaXplX3QgbV9ydW5JbmRleCB7IDAgfTsKIH07CiAK
K2lubGluZSBGbG9hdFJlY3QgRGlzcGxheVJ1blBhdGg6OnJlY3QoKSBjb25zdAoreworICAgIGF1
dG8gcmVjdCA9IHJ1bigpLnJlY3QoKTsKKyAgICBhdXRvIHBvc2l0aW9uID0gbGluZVBvc2l0aW9u
KHJlY3QubGVmdCgpLCByZWN0LnRvcCgpKTsKKyAgICByZXR1cm4geyBwb3NpdGlvbiwgcmVjdC5z
aXplKCkgfTsKK30KKwogfQogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388853</attachid>
            <date>2020-01-27 06:39:10 -0800</date>
            <delta_ts>2020-01-27 07:25:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206810-20200127063909.patch</filename>
            <type>text/plain</type>
            <size>21809</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1MTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWVjNGVkZDAwYjAxODUx
MGY2ZjVjMDZmMGVkMzZiODhiMzEzZWQ4Yi4uNzcxY2FhN2Y4YWY4MWJlMWQzZGY1ZmUxOTBiNDA3
YjU2YWRkMDE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIwLTAxLTI3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBEaXNwbGF5
OjpSdW4gaGFzIHBoeXNpY2FsIGdlb21ldHJ5IG9ubHkuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY4MTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU4OTA1NDU1PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAg
ICAgIFNpbmNlIGluIExGQyB0aGUgRGlzcGxheTo6UnVucyBhcmUgdXNlZCBmb3IgcGFpbnRpbmcg
YW5kIGhpdHRlc3RpbmcgYnV0IG5ldmVyIGZvciBsYXlvdXQsCisgICAgICAgIHRoZSBnZW9tZXRy
eSBpcyBhbHdheXMgcGh5c2ljYWwuCisKKyAgICAgICAgKiBsYXlvdXQvVmVyaWZpY2F0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6b3V0cHV0TWlzbWF0Y2hpbmdTaW1wbGVMaW5l
SW5mb3JtYXRpb25JZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OmNoZWNrRm9y
TWF0Y2hpbmdOb25UZXh0UnVucyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OmNoZWNrRm9y
TWF0Y2hpbmdUZXh0UnVucyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Om91dHB1dE1pc21h
dGNoaW5nQ29tcGxleExpbmVJbmZvcm1hdGlvbklmTmVlZGVkKToKKyAgICAgICAgKiBsYXlvdXQv
ZGlzcGxheXRyZWUvRGlzcGxheVBhaW50ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eTo6cGFpbnRJbmxpbmVDb250ZW50KToKKyAgICAgICAgKiBsYXlvdXQvZGlzcGxheXRyZWUvRGlz
cGxheVJ1bi5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjpyZWN0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlJ1bjo6dG9wTGVmdCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5OjpSdW46OmxlZnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheTo6UnVuOjpyaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpS
dW46OnRvcCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpSdW46OmJvdHRvbSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpSdW46OndpZHRoIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlJ1bjo6aGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXk6OlJ1bjo6c2V0V2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eTo6UnVuOjpzZXRUb3ApOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjpzZXRsTGVm
dCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpSdW46Om1vdmVWZXJ0aWNhbGx5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlJ1bjo6bW92ZUhvcml6b250YWxseSk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5OjpSdW46OmV4cGFuZFZlcnRpY2FsbHkpOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheTo6UnVuOjpleHBhbmRIb3Jpem9udGFsbHkpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheTo6UnVuOjpSdW4pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjps
b2dpY2FsUmVjdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpS
dW46OmxvZ2ljYWxUb3BMZWZ0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXk6OlJ1bjo6bG9naWNhbExlZnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheTo6UnVuOjpsb2dpY2FsUmlnaHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheTo6UnVuOjpsb2dpY2FsVG9wIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXk6OlJ1bjo6bG9naWNhbEJvdHRvbSBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpSdW46OmxvZ2ljYWxXaWR0aCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpSdW46OmxvZ2ljYWxIZWlnaHQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjpzZXRMb2dpY2Fs
V2lkdGgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjpzZXRMb2dp
Y2FsVG9wKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlJ1bjo6c2V0TG9n
aWNhbExlZnQpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJ
bnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdy
YXRpb246OkxpbmVMYXlvdXQ6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVn
cmF0aW9uOjpMaW5lTGF5b3V0OjpoaXRUZXN0KToKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Om91dHB1
dElubGluZVJ1bnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OndyaXRlVGV4dEJveCk6CisgICAgICAgICogcmVuZGVyaW5nL2xp
bmUvTGluZUxheW91dFRyYXZlcnNhbC5oOgorICAgICAgICAoV2ViQ29yZTo6TGluZUxheW91dFRy
YXZlcnNhbDo6Qm94Ojpsb2dpY2FsUmVjdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL2xpbmUvTGluZUxheW91dFRyYXZlcnNhbERpc3BsYXlSdW5QYXRoLmg6CisgICAgICAg
IChXZWJDb3JlOjpMaW5lTGF5b3V0VHJhdmVyc2FsOjpsaW5lUG9zaXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6TGluZUxheW91dFRyYXZlcnNhbDo6RGlzcGxheVJ1blBhdGg6OnJlY3QgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TGluZUxheW91dFRyYXZlcnNhbDo6RGlzcGxheVJ1blBhdGg6
OmxvZ2ljYWxSZWN0IGNvbnN0KTogRGVsZXRlZC4KKwogMjAyMC0wMS0yNSAgUGVyIEFybmUgVm9s
bGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBNZWRpYSBtaW1lIHR5
cGVzIG1hcCBzaG91bGQgYmUgY3JlYXRlZCBpbiB0aGUgVUkgcHJvY2VzcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L1ZlcmlmaWNhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvVmVyaWZpY2F0aW9uLmNwcAppbmRleCBkYTEwNTEwMmFmM2YyMmE3ZmUyNmY4YTUyZjgw
ZjZiZTlhMjY5ZTQ3Li40NGYzY2M3MDFkYzg4NDZiZDFiNjcyNGE0ZjJiMjc4Y2JmOTgwZTgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvVmVyaWZpY2F0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvVmVyaWZpY2F0aW9uLmNwcApAQCAtOTUsNyArOTUsNyBAQCBz
dGF0aWMgYm9vbCBvdXRwdXRNaXNtYXRjaGluZ1NpbXBsZUxpbmVJbmZvcm1hdGlvbklmTmVlZGVk
KFRleHRTdHJlYW0mIHN0cmVhbSwgYwogICAgICAgICBhdXRvJiBzaW1wbGVSdW4gPSBsaW5lTGF5
b3V0RGF0YS0+cnVuQXQoaSk7CiAgICAgICAgIGF1dG8mIGRpc3BsYXlSdW4gPSBkaXNwbGF5UnVu
c1tpXTsKIAotICAgICAgICBhdXRvIG1hdGNoaW5nUnVucyA9IGFyZUVzc2VudGlhbGx5RXF1YWwo
c2ltcGxlUnVuLmxvZ2ljYWxMZWZ0LCBkaXNwbGF5UnVuLmxvZ2ljYWxMZWZ0KCkpICYmIGFyZUVz
c2VudGlhbGx5RXF1YWwoc2ltcGxlUnVuLmxvZ2ljYWxSaWdodCwgZGlzcGxheVJ1bi5sb2dpY2Fs
UmlnaHQoKSk7CisgICAgICAgIGF1dG8gbWF0Y2hpbmdSdW5zID0gYXJlRXNzZW50aWFsbHlFcXVh
bChzaW1wbGVSdW4ubG9naWNhbExlZnQsIGRpc3BsYXlSdW4ubGVmdCgpKSAmJiBhcmVFc3NlbnRp
YWxseUVxdWFsKHNpbXBsZVJ1bi5sb2dpY2FsUmlnaHQsIGRpc3BsYXlSdW4ucmlnaHQoKSk7CiAg
ICAgICAgIGlmIChtYXRjaGluZ1J1bnMgJiYgZGlzcGxheVJ1bi50ZXh0Q29udGV4dCgpKSB7CiAg
ICAgICAgICAgICBtYXRjaGluZ1J1bnMgPSBzaW1wbGVSdW4uc3RhcnQgPT0gZGlzcGxheVJ1bi50
ZXh0Q29udGV4dCgpLT5zdGFydCgpICYmIHNpbXBsZVJ1bi5lbmQgPT0gZGlzcGxheVJ1bi50ZXh0
Q29udGV4dCgpLT5lbmQoKTsKICAgICAgICAgICAgIC8vIFNMTCBoYW5kbGVzIHN0cmluZ3MgaW4g
YSBtb3JlIGNvbmNhdGVuYXRlZCBmb3JtYXQgPGRpdj5mb288YnI+YmFyPC9kaXY+IC0+IGZvbyAt
PiAwLDMgYmFyIC0+IDMsNiB2cy4gMCwzIGFuZCAwLDMKQEAgLTEwOSw3ICsxMDksNyBAQCBzdGF0
aWMgYm9vbCBvdXRwdXRNaXNtYXRjaGluZ1NpbXBsZUxpbmVJbmZvcm1hdGlvbklmTmVlZGVkKFRl
eHRTdHJlYW0mIHN0cmVhbSwgYwogICAgICAgICBzdHJlYW0gPDwgIiBpbmxpbmUgcnVuIjsKICAg
ICAgICAgaWYgKGRpc3BsYXlSdW4udGV4dENvbnRleHQoKSkKICAgICAgICAgICAgIHN0cmVhbSA8
PCAiICgiIDw8IGRpc3BsYXlSdW4udGV4dENvbnRleHQoKS0+c3RhcnQoKSA8PCAiLCAiIDw8IGRp
c3BsYXlSdW4udGV4dENvbnRleHQoKS0+ZW5kKCkgPDwgIikiOwotICAgICAgICBzdHJlYW0gPDwg
IiAoIiA8PCBkaXNwbGF5UnVuLmxvZ2ljYWxMZWZ0KCkgPDwgIiwgIiA8PCBkaXNwbGF5UnVuLmxv
Z2ljYWxUb3AoKSA8PCAiKSAoIiA8PCBkaXNwbGF5UnVuLmxvZ2ljYWxXaWR0aCgpIDw8ICJ4IiA8
PCBkaXNwbGF5UnVuLmxvZ2ljYWxIZWlnaHQoKSA8PCAiKSI7CisgICAgICAgIHN0cmVhbSA8PCAi
ICgiIDw8IGRpc3BsYXlSdW4ubGVmdCgpIDw8ICIsICIgPDwgZGlzcGxheVJ1bi50b3AoKSA8PCAi
KSAoIiA8PCBkaXNwbGF5UnVuLndpZHRoKCkgPDwgIngiIDw8IGRpc3BsYXlSdW4uaGVpZ2h0KCkg
PDwgIikiOwogICAgICAgICBzdHJlYW0ubmV4dExpbmUoKTsKICAgICAgICAgbWlzbWF0Y2hlZCA9
IHRydWU7CiAgICAgfQpAQCAtMTE4LDE5ICsxMTgsMTkgQEAgc3RhdGljIGJvb2wgb3V0cHV0TWlz
bWF0Y2hpbmdTaW1wbGVMaW5lSW5mb3JtYXRpb25JZk5lZWRlZChUZXh0U3RyZWFtJiBzdHJlYW0s
IGMKIAogc3RhdGljIGJvb2wgY2hlY2tGb3JNYXRjaGluZ05vblRleHRSdW5zKGNvbnN0IERpc3Bs
YXk6OlJ1biYgaW5saW5lUnVuLCBjb25zdCBXZWJDb3JlOjpJbmxpbmVCb3gmIGlubGluZUJveCkK
IHsKLSAgICByZXR1cm4gYXJlRXNzZW50aWFsbHlFcXVhbChpbmxpbmVCb3gubG9naWNhbExlZnQo
KSwgaW5saW5lUnVuLmxvZ2ljYWxMZWZ0KCkpCi0gICAgICAgICYmIGFyZUVzc2VudGlhbGx5RXF1
YWwoaW5saW5lQm94LmxvZ2ljYWxSaWdodCgpLCBpbmxpbmVSdW4ubG9naWNhbFJpZ2h0KCkpCi0g
ICAgICAgICYmIGFyZUVzc2VudGlhbGx5RXF1YWwoaW5saW5lQm94LmxvZ2ljYWxUb3AoKSwgaW5s
aW5lUnVuLmxvZ2ljYWxUb3AoKSkKLSAgICAgICAgJiYgYXJlRXNzZW50aWFsbHlFcXVhbChpbmxp
bmVCb3gubG9naWNhbEJvdHRvbSgpLCBpbmxpbmVSdW4ubG9naWNhbEJvdHRvbSgpKTsKKyAgICBy
ZXR1cm4gYXJlRXNzZW50aWFsbHlFcXVhbChpbmxpbmVCb3gubGVmdCgpLCBpbmxpbmVSdW4ubGVm
dCgpKQorICAgICAgICAmJiBhcmVFc3NlbnRpYWxseUVxdWFsKGlubGluZUJveC5yaWdodCgpLCBp
bmxpbmVSdW4ucmlnaHQoKSkKKyAgICAgICAgJiYgYXJlRXNzZW50aWFsbHlFcXVhbChpbmxpbmVC
b3gudG9wKCksIGlubGluZVJ1bi50b3AoKSkKKyAgICAgICAgJiYgYXJlRXNzZW50aWFsbHlFcXVh
bChpbmxpbmVCb3guYm90dG9tKCksIGlubGluZVJ1bi5ib3R0b20oKSk7CiB9CiAKIAogc3RhdGlj
IGJvb2wgY2hlY2tGb3JNYXRjaGluZ1RleHRSdW5zKGNvbnN0IERpc3BsYXk6OlJ1biYgaW5saW5l
UnVuLCBjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94KQogewotICAgIHJldHVybiBh
cmVFc3NlbnRpYWxseUVxdWFsKGlubGluZVRleHRCb3gubG9naWNhbExlZnQoKSwgaW5saW5lUnVu
LmxvZ2ljYWxMZWZ0KCkpCi0gICAgICAgICYmIGFyZUVzc2VudGlhbGx5RXF1YWwoaW5saW5lVGV4
dEJveC5sb2dpY2FsUmlnaHQoKSwgaW5saW5lUnVuLmxvZ2ljYWxSaWdodCgpKQotICAgICAgICAm
JiBhcmVFc3NlbnRpYWxseUVxdWFsKGlubGluZVRleHRCb3gubG9naWNhbFRvcCgpLCBpbmxpbmVS
dW4ubG9naWNhbFRvcCgpKQotICAgICAgICAmJiBhcmVFc3NlbnRpYWxseUVxdWFsKGlubGluZVRl
eHRCb3gubG9naWNhbEJvdHRvbSgpLCBpbmxpbmVSdW4ubG9naWNhbEJvdHRvbSgpKQorICAgIHJl
dHVybiBhcmVFc3NlbnRpYWxseUVxdWFsKGlubGluZVRleHRCb3gubGVmdCgpLCBpbmxpbmVSdW4u
bGVmdCgpKQorICAgICAgICAmJiBhcmVFc3NlbnRpYWxseUVxdWFsKGlubGluZVRleHRCb3gucmln
aHQoKSwgaW5saW5lUnVuLnJpZ2h0KCkpCisgICAgICAgICYmIGFyZUVzc2VudGlhbGx5RXF1YWwo
aW5saW5lVGV4dEJveC50b3AoKSwgaW5saW5lUnVuLnRvcCgpKQorICAgICAgICAmJiBhcmVFc3Nl
bnRpYWxseUVxdWFsKGlubGluZVRleHRCb3guYm90dG9tKCksIGlubGluZVJ1bi5ib3R0b20oKSkK
ICAgICAgICAgJiYgKGlubGluZVRleHRCb3guaXNMaW5lQnJlYWsoKSB8fCAoaW5saW5lVGV4dEJv
eC5zdGFydCgpID09IGlubGluZVJ1bi50ZXh0Q29udGV4dCgpLT5zdGFydCgpICYmIGlubGluZVRl
eHRCb3guZW5kKCkgPT0gaW5saW5lUnVuLnRleHRDb250ZXh0KCktPmVuZCgpKSk7CiB9CiAKQEAg
LTIwNiw3ICsyMDYsNyBAQCBzdGF0aWMgYm9vbCBvdXRwdXRNaXNtYXRjaGluZ0NvbXBsZXhMaW5l
SW5mb3JtYXRpb25JZk5lZWRlZChUZXh0U3RyZWFtJiBzdHJlYW0sCiAgICAgICAgICAgICBzdHJl
YW0gPDwgIiBpbmxpbmUgcnVuIjsKICAgICAgICAgICAgIGlmIChkaXNwbGF5UnVuLnRleHRDb250
ZXh0KCkpCiAgICAgICAgICAgICAgICAgc3RyZWFtIDw8ICIgKCIgPDwgZGlzcGxheVJ1bi50ZXh0
Q29udGV4dCgpLT5zdGFydCgpIDw8ICIsICIgPDwgZGlzcGxheVJ1bi50ZXh0Q29udGV4dCgpLT5l
bmQoKSA8PCAiKSI7Ci0gICAgICAgICAgICBzdHJlYW0gPDwgIiAoIiA8PCBkaXNwbGF5UnVuLmxv
Z2ljYWxMZWZ0KCkgPDwgIiwgIiA8PCBkaXNwbGF5UnVuLmxvZ2ljYWxUb3AoKSA8PCAiKSAoIiA8
PCBkaXNwbGF5UnVuLmxvZ2ljYWxXaWR0aCgpIDw8ICJ4IiA8PCBkaXNwbGF5UnVuLmxvZ2ljYWxI
ZWlnaHQoKSA8PCAiKSI7CisgICAgICAgICAgICBzdHJlYW0gPDwgIiAoIiA8PCBkaXNwbGF5UnVu
LmxlZnQoKSA8PCAiLCAiIDw8IGRpc3BsYXlSdW4udG9wKCkgPDwgIikgKCIgPDwgZGlzcGxheVJ1
bi53aWR0aCgpIDw8ICJ4IiA8PCBkaXNwbGF5UnVuLmhlaWdodCgpIDw8ICIpIjsKICAgICAgICAg
ICAgIHN0cmVhbS5uZXh0TGluZSgpOwogICAgICAgICAgICAgbWlzbWF0Y2hlZCA9IHRydWU7CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9E
aXNwbGF5UGFpbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlz
cGxheVBhaW50ZXIuY3BwCmluZGV4IDFkNTkxNjljNmEyNDI0NjNmMjIyMzRlODMwZjc4Mzg4MWY4
NmZhYTQuLjQyYzIxMjA1MThjYWQ2NmUxZmVkMWZkOTZkNmI3YWNlMTIyMjM1MGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5UGFpbnRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlQYWludGVyLmNw
cApAQCAtMTI2LDE4ICsxMjYsMTggQEAgc3RhdGljIHZvaWQgcGFpbnRJbmxpbmVDb250ZW50KEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgTGF5b3V0UG9pbnQgYWJzb2x1dGVPZmYKICAgICAgICAg
ICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3Ioc3R5bGUuY29sb3IoKSk7CiAgICAgICAgICAgICBj
b250ZXh0LnNldEZpbGxDb2xvcihzdHlsZS5jb2xvcigpKTsKIAotICAgICAgICAgICAgYXV0byBh
YnNvbHV0ZUxvZ2ljYWxMZWZ0ID0gYWJzb2x1dGVPZmZzZXQueCgpICsgcnVuLmxvZ2ljYWxMZWZ0
KCk7CisgICAgICAgICAgICBhdXRvIGFic29sdXRlTGVmdCA9IGFic29sdXRlT2Zmc2V0LngoKSAr
IHJ1bi5sZWZ0KCk7CiAgICAgICAgICAgICAvLyBGSVhNRTogQWRkIG5vbi1iYXNlbGluZSBhbGln
biBwYWludGluZwogICAgICAgICAgICAgYXV0byYgbGluZUJveCA9IGRpc3BsYXlJbmxpbmVDb250
ZW50LT5saW5lQm94Rm9yUnVuKHJ1bik7CiAgICAgICAgICAgICBhdXRvIGJhc2VsaW5lT2Zmc2V0
ID0gYWJzb2x1dGVPZmZzZXQueSgpICsgbGluZUJveC5sb2dpY2FsVG9wKCkgKyBsaW5lQm94LmJh
c2VsaW5lT2Zmc2V0KCk7CiAgICAgICAgICAgICBhdXRvIGV4cGFuc2lvbkNvbnRleHQgPSB0ZXh0
Q29udGV4dC0+ZXhwYW5zaW9uKCk7Ci0gICAgICAgICAgICBhdXRvIHRleHRSdW4gPSBUZXh0UnVu
IHsgdGV4dENvbnRleHQtPmNvbnRlbnQoKSwgcnVuLmxvZ2ljYWxMZWZ0KCkgLSBsaW5lQm94Lmxv
Z2ljYWxMZWZ0KCksCisgICAgICAgICAgICBhdXRvIHRleHRSdW4gPSBUZXh0UnVuIHsgdGV4dENv
bnRleHQtPmNvbnRlbnQoKSwgcnVuLmxlZnQoKSAtIGxpbmVCb3gubG9naWNhbExlZnQoKSwKICAg
ICAgICAgICAgICAgICBleHBhbnNpb25Db250ZXh0ID8gZXhwYW5zaW9uQ29udGV4dC0+aG9yaXpv
bnRhbEV4cGFuc2lvbiA6IDAsCiAgICAgICAgICAgICAgICAgZXhwYW5zaW9uQ29udGV4dCA/IGV4
cGFuc2lvbkNvbnRleHQtPmJlaGF2aW9yIDogRGVmYXVsdEV4cGFuc2lvbiB9OwogICAgICAgICAg
ICAgdGV4dFJ1bi5zZXRUYWJTaXplKCFzdHlsZS5jb2xsYXBzZVdoaXRlU3BhY2UoKSwgc3R5bGUu
dGFiU2l6ZSgpKTsKLSAgICAgICAgICAgIGNvbnRleHQuZHJhd1RleHQoc3R5bGUuZm9udENhc2Nh
ZGUoKSwgdGV4dFJ1biwgeyBhYnNvbHV0ZUxvZ2ljYWxMZWZ0LCBiYXNlbGluZU9mZnNldCB9KTsK
KyAgICAgICAgICAgIGNvbnRleHQuZHJhd1RleHQoc3R5bGUuZm9udENhc2NhZGUoKSwgdGV4dFJ1
biwgeyBhYnNvbHV0ZUxlZnQsIGJhc2VsaW5lT2Zmc2V0IH0pOwogICAgICAgICB9IGVsc2UgaWYg
KGF1dG8qIGNhY2hlZEltYWdlID0gcnVuLmltYWdlKCkpIHsKLSAgICAgICAgICAgIGF1dG8gcnVu
QWJzb2x1dGVSZWN0ID0gRmxvYXRSZWN0IHsgYWJzb2x1dGVPZmZzZXQueCgpICsgcnVuLmxvZ2lj
YWxMZWZ0KCksIGFic29sdXRlT2Zmc2V0LnkoKSArIHJ1bi5sb2dpY2FsVG9wKCksIHJ1bi5sb2dp
Y2FsV2lkdGgoKSwgcnVuLmxvZ2ljYWxIZWlnaHQoKSB9OworICAgICAgICAgICAgYXV0byBydW5B
YnNvbHV0ZVJlY3QgPSBGbG9hdFJlY3QgeyBhYnNvbHV0ZU9mZnNldC54KCkgKyBydW4ubGVmdCgp
LCBhYnNvbHV0ZU9mZnNldC55KCkgKyBydW4udG9wKCksIHJ1bi53aWR0aCgpLCBydW4uaGVpZ2h0
KCkgfTsKICAgICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKCpjYWNoZWRJbWFnZS0+aW1hZ2Uo
KSwgcnVuQWJzb2x1dGVSZWN0KTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5UnVuLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheVJ1bi5oCmluZGV4IDZlY2QzZDM4N2IyNDM2NmQ5
NzQxNzI2NGI2MmRlZmY4OTIzNTkzOGMuLjNlNGZkOGJmM2Y0OWI4MjExNDQ2NmEzNzQ5NGFhMzZl
N2QxOWIwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9E
aXNwbGF5UnVuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3Bs
YXlSdW4uaApAQCAtNzEsMjkgKzcxLDI5IEBAIHN0cnVjdCBSdW4gewogICAgICAgICBPcHRpb25h
bDxFeHBhbnNpb25Db250ZXh0PiBtX2V4cGFuc2lvbkNvbnRleHQ7CiAgICAgfTsKIAotICAgIFJ1
bihzaXplX3QgbGluZUluZGV4LCBjb25zdCBMYXlvdXQ6OkJveCYsIGNvbnN0IElubGluZVJlY3Qm
IGxvZ2ljYWxSZWN0LCBjb25zdCBJbmxpbmVSZWN0JiBpbmtPdmVyZmxvdywgT3B0aW9uYWw8VGV4
dENvbnRleHQ+ID0gV1RGOjpudWxsb3B0KTsKKyAgICBSdW4oc2l6ZV90IGxpbmVJbmRleCwgY29u
c3QgTGF5b3V0OjpCb3gmLCBjb25zdCBJbmxpbmVSZWN0JiwgY29uc3QgSW5saW5lUmVjdCYgaW5r
T3ZlcmZsb3csIE9wdGlvbmFsPFRleHRDb250ZXh0PiA9IFdURjo6bnVsbG9wdCk7CiAKICAgICBz
aXplX3QgbGluZUluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9saW5lSW5kZXg7IH0KIAotICAgIGNv
bnN0IElubGluZVJlY3QmIGxvZ2ljYWxSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9sb2dpY2FsUmVj
dDsgfQorICAgIGNvbnN0IElubGluZVJlY3QmIHJlY3QoKSBjb25zdCB7IHJldHVybiBtX3JlY3Q7
IH0KICAgICBjb25zdCBJbmxpbmVSZWN0JiBpbmtPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1f
aW5rT3ZlcmZsb3c7IH0KIAotICAgIElubGluZUxheW91dFBvaW50IGxvZ2ljYWxUb3BMZWZ0KCkg
Y29uc3QgeyByZXR1cm4gbV9sb2dpY2FsUmVjdC50b3BMZWZ0KCk7IH0KLSAgICBJbmxpbmVMYXlv
dXRVbml0IGxvZ2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sb2dpY2FsUmVjdC5sZWZ0KCk7
IH0KLSAgICBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxSaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1f
bG9naWNhbFJlY3QucmlnaHQoKTsgfQotICAgIElubGluZUxheW91dFVuaXQgbG9naWNhbFRvcCgp
IGNvbnN0IHsgcmV0dXJuIG1fbG9naWNhbFJlY3QudG9wKCk7IH0KLSAgICBJbmxpbmVMYXlvdXRV
bml0IGxvZ2ljYWxCb3R0b20oKSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxSZWN0LmJvdHRvbSgp
OyB9CisgICAgSW5saW5lTGF5b3V0UG9pbnQgdG9wTGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVj
dC50b3BMZWZ0KCk7IH0KKyAgICBJbmxpbmVMYXlvdXRVbml0IGxlZnQoKSBjb25zdCB7IHJldHVy
biBtX3JlY3QubGVmdCgpOyB9CisgICAgSW5saW5lTGF5b3V0VW5pdCByaWdodCgpIGNvbnN0IHsg
cmV0dXJuIG1fcmVjdC5yaWdodCgpOyB9CisgICAgSW5saW5lTGF5b3V0VW5pdCB0b3AoKSBjb25z
dCB7IHJldHVybiBtX3JlY3QudG9wKCk7IH0KKyAgICBJbmxpbmVMYXlvdXRVbml0IGJvdHRvbSgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVjdC5ib3R0b20oKTsgfQogCi0gICAgSW5saW5lTGF5b3V0VW5p
dCBsb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxSZWN0LndpZHRoKCk7IH0K
LSAgICBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2xv
Z2ljYWxSZWN0LmhlaWdodCgpOyB9CisgICAgSW5saW5lTGF5b3V0VW5pdCB3aWR0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVjdC53aWR0aCgpOyB9CisgICAgSW5saW5lTGF5b3V0VW5pdCBoZWlnaHQo
KSBjb25zdCB7IHJldHVybiBtX3JlY3QuaGVpZ2h0KCk7IH0KIAotICAgIHZvaWQgc2V0TG9naWNh
bFdpZHRoKElubGluZUxheW91dFVuaXQgd2lkdGgpIHsgbV9sb2dpY2FsUmVjdC5zZXRXaWR0aCh3
aWR0aCk7IH0KLSAgICB2b2lkIHNldExvZ2ljYWxUb3AoSW5saW5lTGF5b3V0VW5pdCBsb2dpY2Fs
VG9wKSB7IG1fbG9naWNhbFJlY3Quc2V0VG9wKGxvZ2ljYWxUb3ApOyB9Ci0gICAgdm9pZCBzZXRM
b2dpY2FsTGVmdChJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0KSB7IG1fbG9naWNhbFJlY3Qu
c2V0TGVmdChsb2dpY2FsTGVmdCk7IH0KLSAgICB2b2lkIG1vdmVWZXJ0aWNhbGx5KElubGluZUxh
eW91dFVuaXQgZGVsdGEpIHsgbV9sb2dpY2FsUmVjdC5tb3ZlVmVydGljYWxseShkZWx0YSk7IH0K
LSAgICB2b2lkIG1vdmVIb3Jpem9udGFsbHkoSW5saW5lTGF5b3V0VW5pdCBkZWx0YSkgeyBtX2xv
Z2ljYWxSZWN0Lm1vdmVIb3Jpem9udGFsbHkoZGVsdGEpOyB9Ci0gICAgdm9pZCBleHBhbmRWZXJ0
aWNhbGx5KElubGluZUxheW91dFVuaXQgZGVsdGEpIHsgbV9sb2dpY2FsUmVjdC5leHBhbmRWZXJ0
aWNhbGx5KGRlbHRhKTsgfQotICAgIHZvaWQgZXhwYW5kSG9yaXpvbnRhbGx5KElubGluZUxheW91
dFVuaXQgZGVsdGEpIHsgbV9sb2dpY2FsUmVjdC5leHBhbmRIb3Jpem9udGFsbHkoZGVsdGEpOyB9
CisgICAgdm9pZCBzZXRXaWR0aChJbmxpbmVMYXlvdXRVbml0IHdpZHRoKSB7IG1fcmVjdC5zZXRX
aWR0aCh3aWR0aCk7IH0KKyAgICB2b2lkIHNldFRvcChJbmxpbmVMYXlvdXRVbml0IHRvcCkgeyBt
X3JlY3Quc2V0VG9wKHRvcCk7IH0KKyAgICB2b2lkIHNldGxMZWZ0KElubGluZUxheW91dFVuaXQg
bGVmdCkgeyBtX3JlY3Quc2V0TGVmdChsZWZ0KTsgfQorICAgIHZvaWQgbW92ZVZlcnRpY2FsbHko
SW5saW5lTGF5b3V0VW5pdCBkZWx0YSkgeyBtX3JlY3QubW92ZVZlcnRpY2FsbHkoZGVsdGEpOyB9
CisgICAgdm9pZCBtb3ZlSG9yaXpvbnRhbGx5KElubGluZUxheW91dFVuaXQgZGVsdGEpIHsgbV9y
ZWN0Lm1vdmVIb3Jpem9udGFsbHkoZGVsdGEpOyB9CisgICAgdm9pZCBleHBhbmRWZXJ0aWNhbGx5
KElubGluZUxheW91dFVuaXQgZGVsdGEpIHsgbV9yZWN0LmV4cGFuZFZlcnRpY2FsbHkoZGVsdGEp
OyB9CisgICAgdm9pZCBleHBhbmRIb3Jpem9udGFsbHkoSW5saW5lTGF5b3V0VW5pdCBkZWx0YSkg
eyBtX3JlY3QuZXhwYW5kSG9yaXpvbnRhbGx5KGRlbHRhKTsgfQogCiAgICAgdm9pZCBzZXRUZXh0
Q29udGV4dChjb25zdCBUZXh0Q29udGV4dCYmIHRleHRDb250ZXh0KSB7IG1fdGV4dENvbnRleHQu
ZW1wbGFjZSh0ZXh0Q29udGV4dCk7IH0KICAgICBjb25zdCBPcHRpb25hbDxUZXh0Q29udGV4dD4m
IHRleHRDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0Q29udGV4dDsgfQpAQCAtMTEyLDE1
ICsxMTIsMTUgQEAgcHJpdmF0ZToKICAgICBjb25zdCBzaXplX3QgbV9saW5lSW5kZXg7CiAgICAg
V2Vha1B0cjxjb25zdCBMYXlvdXQ6OkJveD4gbV9sYXlvdXRCb3g7CiAgICAgQ2FjaGVkSW1hZ2Uq
IG1fY2FjaGVkSW1hZ2UgeyBudWxscHRyIH07Ci0gICAgSW5saW5lUmVjdCBtX2xvZ2ljYWxSZWN0
OworICAgIElubGluZVJlY3QgbV9yZWN0OwogICAgIElubGluZVJlY3QgbV9pbmtPdmVyZmxvdzsK
ICAgICBPcHRpb25hbDxUZXh0Q29udGV4dD4gbV90ZXh0Q29udGV4dDsKIH07CiAKLWlubGluZSBS
dW46OlJ1bihzaXplX3QgbGluZUluZGV4LCBjb25zdCBMYXlvdXQ6OkJveCYgbGF5b3V0Qm94LCBj
b25zdCBJbmxpbmVSZWN0JiBsb2dpY2FsUmVjdCwgY29uc3QgSW5saW5lUmVjdCYgaW5rT3ZlcmZs
b3csIE9wdGlvbmFsPFRleHRDb250ZXh0PiB0ZXh0Q29udGV4dCkKK2lubGluZSBSdW46OlJ1bihz
aXplX3QgbGluZUluZGV4LCBjb25zdCBMYXlvdXQ6OkJveCYgbGF5b3V0Qm94LCBjb25zdCBJbmxp
bmVSZWN0JiByZWN0LCBjb25zdCBJbmxpbmVSZWN0JiBpbmtPdmVyZmxvdywgT3B0aW9uYWw8VGV4
dENvbnRleHQ+IHRleHRDb250ZXh0KQogICAgIDogbV9saW5lSW5kZXgobGluZUluZGV4KQogICAg
ICwgbV9sYXlvdXRCb3gobWFrZVdlYWtQdHIobGF5b3V0Qm94KSkKLSAgICAsIG1fbG9naWNhbFJl
Y3QobG9naWNhbFJlY3QpCisgICAgLCBtX3JlY3QocmVjdCkKICAgICAsIG1faW5rT3ZlcmZsb3co
aW5rT3ZlcmZsb3cpCiAgICAgLCBtX3RleHRDb250ZXh0KHRleHRDb250ZXh0KQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
TGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAppbmRleCAyMmIyZDZjZDI1ZjE5NTdmNTM3ZWU2ZWI0
MTZkMDlmODdjNzBmOGJlLi4yMzg4NjljNmQ2MjQwODIwNGNmMWExOThiOWUyMGQ3Nzk4NGZlNDVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50
ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdy
YXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcApAQCAtMjQ2LDcgKzI0Niw3IEBA
IHZvaWQgTGluZUxheW91dDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91
dFBvaW50JiBwYWludE9mZnNldCkKICAgICAgICAgaWYgKHN0eWxlLnZpc2liaWxpdHkoKSAhPSBW
aXNpYmlsaXR5OjpWaXNpYmxlKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgYXV0
byByZWN0ID0gRmxvYXRSZWN0IHsgcnVuLmxvZ2ljYWxSZWN0KCkgfTsKKyAgICAgICAgYXV0byBy
ZWN0ID0gRmxvYXRSZWN0IHsgcnVuLnJlY3QoKSB9OwogICAgICAgICBhdXRvIHZpc3VhbE92ZXJm
bG93UmVjdCA9IEZsb2F0UmVjdCB7IHJ1bi5pbmtPdmVyZmxvdygpIH07CiAgICAgICAgIGlmIChw
YWludFJlY3QueSgpID4gdmlzdWFsT3ZlcmZsb3dSZWN0Lm1heFkoKSB8fCBwYWludFJlY3QubWF4
WSgpIDwgdmlzdWFsT3ZlcmZsb3dSZWN0LnkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAt
MjY2LDcgKzI2Niw3IEBAIHZvaWQgTGluZUxheW91dDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKICAgICAgICAgU3RyaW5nIHRleHRX
aXRoSHlwaGVuOwogICAgICAgICBpZiAodGV4dENvbnRleHQubmVlZHNIeXBoZW4oKSkKICAgICAg
ICAgICAgIHRleHRXaXRoSHlwaGVuID0gbWFrZVN0cmluZyh0ZXh0Q29udGV4dC5jb250ZW50KCks
IHN0eWxlLmh5cGhlblN0cmluZygpKTsKLSAgICAgICAgVGV4dFJ1biB0ZXh0UnVuIHsgIXRleHRX
aXRoSHlwaGVuLmlzRW1wdHkoKSA/IHRleHRXaXRoSHlwaGVuIDogdGV4dENvbnRleHQuY29udGVu
dCgpLCBydW4ubG9naWNhbExlZnQoKSAtIGxpbmVCb3gubG9naWNhbExlZnQoKSwgaG9yaXpvbnRh
bEV4cGFuc2lvbiwgYmVoYXZpb3IgfTsKKyAgICAgICAgVGV4dFJ1biB0ZXh0UnVuIHsgIXRleHRX
aXRoSHlwaGVuLmlzRW1wdHkoKSA/IHRleHRXaXRoSHlwaGVuIDogdGV4dENvbnRleHQuY29udGVu
dCgpLCBydW4ubGVmdCgpIC0gbGluZUJveC5sb2dpY2FsTGVmdCgpLCBob3Jpem9udGFsRXhwYW5z
aW9uLCBiZWhhdmlvciB9OwogICAgICAgICB0ZXh0UnVuLnNldFRhYlNpemUoIXN0eWxlLmNvbGxh
cHNlV2hpdGVTcGFjZSgpLCBzdHlsZS50YWJTaXplKCkpOwogICAgICAgICBGbG9hdFBvaW50IHRl
eHRPcmlnaW4geyByZWN0LngoKSArIHBhaW50T2Zmc2V0LngoKSwgcm91bmRUb0RldmljZVBpeGVs
KGJhc2VsaW5lT2Zmc2V0LCBkZXZpY2VTY2FsZUZhY3RvcikgfTsKIApAQCAtMzAyLDcgKzMwMiw3
IEBAIGJvb2wgTGluZUxheW91dDo6aGl0VGVzdChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVz
dCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjCiAKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQg
ZG8gc29tZXRoaW5nIGVmZmljaWVudCB0byBmaW5kIHRoZSBydW4gcmFuZ2UuCiAgICAgZm9yIChh
dXRvJiBydW4gOiBpbmxpbmVDb250ZW50LnJ1bnMpIHsKLSAgICAgICAgYXV0byBydW5SZWN0ID0g
TGF5b3V0Ojp0b0xheW91dFJlY3QocnVuLmxvZ2ljYWxSZWN0KCkpOworICAgICAgICBhdXRvIHJ1
blJlY3QgPSBMYXlvdXQ6OnRvTGF5b3V0UmVjdChydW4ucmVjdCgpKTsKICAgICAgICAgcnVuUmVj
dC5tb3ZlQnkoYWNjdW11bGF0ZWRPZmZzZXQpOwogCiAgICAgICAgIGlmICghbG9jYXRpb25JbkNv
bnRhaW5lci5pbnRlcnNlY3RzKHJ1blJlY3QpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCmluZGV4IDY4NmU0OGExZjFm
Y2UyMDMwMjMyNGY2MDY2ZjY4NWEwZDQ4NTk3NzcuLjJmYmJiOWM0NDQ2YTBmZGJiOTI3YmRlMDI5
N2I5MzkwMDFjMzJmZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0
cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5
b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAKQEAgLTM0Miw3ICszNDIsNyBAQCBzdGF0aWMg
dm9pZCBvdXRwdXRJbmxpbmVSdW5zKFRleHRTdHJlYW0mIHN0cmVhbSwgY29uc3QgTGF5b3V0U3Rh
dGUmIGxheW91dFN0YXRlLAogICAgICAgICAgICAgc3RyZWFtIDw8ICJpbmxpbmUgdGV4dCBib3gi
OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzdHJlYW0gPDwgImlubGluZSBib3giOwotICAg
ICAgICBzdHJlYW0gPDwgIiBhdCAoIiA8PCBkaXNwbGF5UnVuLmxvZ2ljYWxMZWZ0KCkgPDwgIiwi
IDw8IGRpc3BsYXlSdW4ubG9naWNhbFRvcCgpIDw8ICIpIHNpemUgIiA8PCBkaXNwbGF5UnVuLmxv
Z2ljYWxXaWR0aCgpIDw8ICJ4IiA8PCBkaXNwbGF5UnVuLmxvZ2ljYWxIZWlnaHQoKTsKKyAgICAg
ICAgc3RyZWFtIDw8ICIgYXQgKCIgPDwgZGlzcGxheVJ1bi5sZWZ0KCkgPDwgIiwiIDw8IGRpc3Bs
YXlSdW4udG9wKCkgPDwgIikgc2l6ZSAiIDw8IGRpc3BsYXlSdW4ud2lkdGgoKSA8PCAieCIgPDwg
ZGlzcGxheVJ1bi5oZWlnaHQoKTsKICAgICAgICAgaWYgKGRpc3BsYXlSdW4udGV4dENvbnRleHQo
KSkKICAgICAgICAgICAgIHN0cmVhbSA8PCAiIHJ1bigiIDw8IGRpc3BsYXlSdW4udGV4dENvbnRl
eHQoKS0+c3RhcnQoKSA8PCAiLCAiIDw8IGRpc3BsYXlSdW4udGV4dENvbnRleHQoKS0+ZW5kKCkg
PDwgIikiOwogICAgICAgICBzdHJlYW0ubmV4dExpbmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAppbmRleCBiYjQzYzFhMDM5YTY4MTQzYjlkNjlk
YTRjY2YyNWEwMjVjZDE0ZWE3Li41NmQyN2QwMWM2ZDJiMjEwOGNjY2I3M2Q3YjI2MDAzZTY3NTlm
MThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3Bw
CkBAIC00ODAsMTQgKzQ4MCwxMCBAQCB2b2lkIHdyaXRlRGVidWdJbmZvKFRleHRTdHJlYW0mIHRz
LCBjb25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCwgT3B0aW9uU2V0PFJlbmRlcgogc3RhdGljIHZv
aWQgd3JpdGVUZXh0Qm94KFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5kZXJUZXh0JiBvLCBjb25z
dCBMaW5lTGF5b3V0VHJhdmVyc2FsOjpUZXh0Qm94JiB0ZXh0Qm94KQogewogICAgIGF1dG8gcmVj
dCA9IHRleHRCb3gucmVjdCgpOwotICAgIGF1dG8gbG9naWNhbFJlY3QgPSB0ZXh0Qm94LmxvZ2lj
YWxSZWN0KCk7Ci0KICAgICBpbnQgeCA9IHJlY3QueCgpOwogICAgIGludCB5ID0gcmVjdC55KCk7
Ci0KLSAgICAvLyBGSVhNRTogTWl4aW5nIGxvZ2ljYWwgYW5kIHBoeXNpY2FsIGhlcmUgZG9lc24n
dCBtYWtlIHNlbnNlLgotICAgIGludCBsb2dpY2FsV2lkdGggPSBjZWlsZihyZWN0LngoKSArIGxv
Z2ljYWxSZWN0LndpZHRoKCkpIC0geDsKLQorICAgIC8vIEZJWE1FOiBVc2Ugbm9uLWxvZ2ljYWwg
d2lkdGguIHdlYmtpdC5vcmcvYi8yMDY4MDkuCisgICAgaW50IGxvZ2ljYWxXaWR0aCA9IGNlaWxm
KHJlY3QueCgpICsgKHRleHRCb3guaXNIb3Jpem9udGFsKCkgPyByZWN0LndpZHRoKCkgOiByZWN0
LmhlaWdodCgpKSkgLSB4OwogICAgIC8vIEZJWE1FOiBUYWJsZSBjZWxsIGFkanVzdG1lbnQgaXMg
dGVtcG9yYXJ5IHVudGlsIHJlc3VsdHMgY2FuIGJlIHVwZGF0ZWQuCiAgICAgaWYgKGlzPFJlbmRl
clRhYmxlQ2VsbD4oKm8uY29udGFpbmluZ0Jsb2NrKCkpKQogICAgICAgICB5IC09IGZsb29yVG9J
bnQoZG93bmNhc3Q8UmVuZGVyVGFibGVDZWxsPigqby5jb250YWluaW5nQmxvY2soKSkuaW50cmlu
c2ljUGFkZGluZ0JlZm9yZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9saW5lL0xpbmVMYXlvdXRUcmF2ZXJzYWwuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9s
aW5lL0xpbmVMYXlvdXRUcmF2ZXJzYWwuaAppbmRleCA3MWI5MjZlMDEwNjNiMGZlMGYwZDBkNWZm
MWE5ZjRlZjI5YWFmZTQ3Li45NGFiOTZkZWMzY2JlMzIyOWRlMGUwODllN2M1ODc0MmUxYmQyMGI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lTGF5b3V0VHJh
dmVyc2FsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZUxheW91dFRy
YXZlcnNhbC5oCkBAIC01OSw3ICs1OSw2IEBAIHB1YmxpYzoKICAgICBCb3goUGF0aFZhcmlhbnQm
Jik7CiAKICAgICBGbG9hdFJlY3QgcmVjdCgpIGNvbnN0OwotICAgIEZsb2F0UmVjdCBsb2dpY2Fs
UmVjdCgpIGNvbnN0OwogCiAgICAgZmxvYXQgYmFzZWxpbmVPZmZzZXQoKSBjb25zdDsKIApAQCAt
MTY3LDEzICsxNjYsNiBAQCBpbmxpbmUgRmxvYXRSZWN0IEJveDo6cmVjdCgpIGNvbnN0CiAgICAg
fSk7CiB9CiAKLWlubGluZSBGbG9hdFJlY3QgQm94Ojpsb2dpY2FsUmVjdCgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0aCkgewot
ICAgICAgICByZXR1cm4gcGF0aC5sb2dpY2FsUmVjdCgpOwotICAgIH0pOwotfQotCiBpbmxpbmUg
ZmxvYXQgQm94OjpiYXNlbGluZU9mZnNldCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdURjo6c3dp
dGNoT24obV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0aCkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZUxheW91dFRyYXZlcnNhbENvbXBsZXhQYXRoLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lTGF5b3V0VHJhdmVyc2FsQ29tcGxl
eFBhdGguaAppbmRleCBlMTUxYWU4ZWI1NzFhYmEzZDRmYTc2ZmFmNGQ3YWU1ZmMzMjgxYzA4Li4y
ZjQyNGNhOWEyOTljNzExMGRmYzk0NjFkOGUyNjJkMjM1ZDUxYzBiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lTGF5b3V0VHJhdmVyc2FsQ29tcGxleFBhdGgu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lTGF5b3V0VHJhdmVyc2Fs
Q29tcGxleFBhdGguaApAQCAtNDEsNyArNDEsNiBAQCBwdWJsaWM6CiAgICAgeyB9CiAKICAgICBG
bG9hdFJlY3QgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lQm94LT5mcmFtZVJlY3QoKTsg
fQotICAgIEZsb2F0UmVjdCBsb2dpY2FsUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lQm94
LT5sb2dpY2FsRnJhbWVSZWN0KCk7IH0KIAogICAgIGJvb2wgaXNMZWZ0VG9SaWdodERpcmVjdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lQm94LT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCk7
IH0KICAgICBib29sIGlzSG9yaXpvbnRhbCgpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lQm94LT5p
c0hvcml6b250YWwoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xp
bmUvTGluZUxheW91dFRyYXZlcnNhbERpc3BsYXlSdW5QYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbGluZS9MaW5lTGF5b3V0VHJhdmVyc2FsRGlzcGxheVJ1blBhdGguaAppbmRleCBm
MjU5YjI3MDNlM2RiNmY4YjViZjcyMDQ4M2Y4Yjg3M2Y4NjYzYzMzLi4wMzBhNjg3NGFiYmUxYTcy
ZGFlNDQ0MGE5ZDZiMDlhNjk1MzhlOWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbGluZS9MaW5lTGF5b3V0VHJhdmVyc2FsRGlzcGxheVJ1blBhdGguaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lTGF5b3V0VHJhdmVyc2FsRGlzcGxheVJ1blBh
dGguaApAQCAtMzMsOSArMzMsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSBM
aW5lTGF5b3V0VHJhdmVyc2FsIHsKIAotc3RhdGljIEZsb2F0UG9pbnQgbGluZVBvc2l0aW9uKGZs
b2F0IGxvZ2ljYWxMZWZ0LCBmbG9hdCBsb2dpY2FsVG9wKQorc3RhdGljIEZsb2F0UG9pbnQgbGlu
ZVBvc2l0aW9uKGZsb2F0IGxlZnQsIGZsb2F0IHRvcCkKIHsKLSAgICByZXR1cm4gRmxvYXRQb2lu
dChsb2dpY2FsTGVmdCwgcm91bmRmKGxvZ2ljYWxUb3ApKTsKKyAgICByZXR1cm4gRmxvYXRQb2lu
dChsZWZ0LCByb3VuZGYodG9wKSk7CiB9CiAKIGNsYXNzIERpc3BsYXlSdW5QYXRoIHsKQEAgLTUw
LDEzICs1MCw3IEBAIHB1YmxpYzoKICAgICBEaXNwbGF5UnVuUGF0aCYgb3BlcmF0b3I9KGNvbnN0
IERpc3BsYXlSdW5QYXRoJikgPSBkZWZhdWx0OwogICAgIERpc3BsYXlSdW5QYXRoJiBvcGVyYXRv
cj0oRGlzcGxheVJ1blBhdGgmJikgPSBkZWZhdWx0OwogCi0gICAgRmxvYXRSZWN0IHJlY3QoKSBj
b25zdCB7IHJldHVybiBsb2dpY2FsUmVjdCgpOyB9Ci0gICAgRmxvYXRSZWN0IGxvZ2ljYWxSZWN0
KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIGF1dG8gbG9naWNhbFJlY3QgPSBydW4oKS5sb2dpY2Fs
UmVjdCgpOwotICAgICAgICBGbG9hdFBvaW50IHBvc2l0aW9uID0gbGluZVBvc2l0aW9uKGxvZ2lj
YWxSZWN0LmxlZnQoKSwgbG9naWNhbFJlY3QudG9wKCkpOwotICAgICAgICByZXR1cm4geyBwb3Np
dGlvbiwgbG9naWNhbFJlY3Quc2l6ZSgpIH07Ci0gICAgfQorICAgIEZsb2F0UmVjdCByZWN0KCkg
Y29uc3Q7CiAKICAgICBmbG9hdCBiYXNlbGluZU9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIGxpbmVC
b3goKS5iYXNlbGluZU9mZnNldCgpOyB9CiAKQEAgLTExMSw2ICsxMDUsMTMgQEAgcHJpdmF0ZToK
ICAgICBzaXplX3QgbV9ydW5JbmRleCB7IDAgfTsKIH07CiAKK2lubGluZSBGbG9hdFJlY3QgRGlz
cGxheVJ1blBhdGg6OnJlY3QoKSBjb25zdAoreworICAgIGF1dG8gcmVjdCA9IHJ1bigpLnJlY3Qo
KTsKKyAgICBhdXRvIHBvc2l0aW9uID0gbGluZVBvc2l0aW9uKHJlY3QubGVmdCgpLCByZWN0LnRv
cCgpKTsKKyAgICByZXR1cm4geyBwb3NpdGlvbiwgcmVjdC5zaXplKCkgfTsKK30KKwogfQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lTGF5b3V0VHJh
dmVyc2FsU2ltcGxlUGF0aC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZUxh
eW91dFRyYXZlcnNhbFNpbXBsZVBhdGguaAppbmRleCAxNTgyMmFlYjEzNGRiOTYyOGNmZTQ4ZTU0
OTEyMmFmYjFjM2Y4MDdiLi5hMDc0NTNiMzY1MmMyNzE1MGRmNGQ0YzU3YjI2ZjE1ZjA3NzdiN2Ex
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lTGF5b3V0VHJh
dmVyc2FsU2ltcGxlUGF0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xp
bmVMYXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmgKQEAgLTM5LDcgKzM5LDYgQEAgcHVibGljOgog
ICAgIHsgfQogCiAgICAgRmxvYXRSZWN0IHJlY3QoKSBjb25zdCB7IHJldHVybiAoKm1faXRlcmF0
b3IpLnJlY3QoKTsgfQotICAgIEZsb2F0UmVjdCBsb2dpY2FsUmVjdCgpIGNvbnN0IHsgcmV0dXJu
IHJlY3QoKTsgfQogCiAgICAgZmxvYXQgYmFzZWxpbmVPZmZzZXQoKSBjb25zdCB7IHJldHVybiAo
Km1faXRlcmF0b3IpLmJhc2VsaW5lT2Zmc2V0KCk7IH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>