<?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>235939</bug_id>
          
          <creation_ts>2022-01-31 21:42:53 -0800</creation_ts>
          <short_desc>[GPU Process] Remove DisplayList::Replayer::Delegate and DisplayList::RecorderImpl::Delegate</short_desc>
          <delta_ts>2022-02-11 13:26:58 -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>
          
          <blocked>236508</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1835833</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-01-31 21:42:53 -0800</bug_when>
    <thetext>These classes are abstract classes and they are not overridden by any client right now. These unused classes should be removed after the display list stream connection refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835834</commentid>
    <comment_count>1</comment_count>
      <attachid>450498</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-01-31 21:46:27 -0800</bug_when>
    <thetext>Created attachment 450498
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835839</commentid>
    <comment_count>2</comment_count>
      <attachid>450501</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-01-31 23:10:29 -0800</bug_when>
    <thetext>Created attachment 450501
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835848</commentid>
    <comment_count>3</comment_count>
      <attachid>450503</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-01-31 23:47:06 -0800</bug_when>
    <thetext>Created attachment 450503
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835860</commentid>
    <comment_count>4</comment_count>
      <attachid>450507</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-02-01 01:24:23 -0800</bug_when>
    <thetext>Created attachment 450507
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836057</commentid>
    <comment_count>5</comment_count>
      <attachid>450507</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-02-01 10:55:02 -0800</bug_when>
    <thetext>Comment on attachment 450507
Patch

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

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListReplayer.cpp:94
&gt; +        return *imageIdentifier;

Nit - let&apos;s keep these return types on line 94 and 97 consistent (maybe by getting the value inside the optional in both cases).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836554</commentid>
    <comment_count>6</comment_count>
      <attachid>450681</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-02-02 11:42:36 -0800</bug_when>
    <thetext>Created attachment 450681
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836601</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-02 13:09:55 -0800</bug_when>
    <thetext>Committed r288991 (246710@main): &lt;https://commits.webkit.org/246710@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 450681.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836602</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-02 13:10:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/88397449&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450498</attachid>
            <date>2022-01-31 21:46:27 -0800</date>
            <delta_ts>2022-01-31 23:10:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235939-20220131214626.patch</filename>
            <type>text/plain</type>
            <size>29194</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4ODY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTAxNDllMjkwZDY2N2Rh
MWEyYzAxNjAxMjc4YTgyOGJlZjRkNTQ1Yi4uMzhkM2MyNGM3NDM5ZDc2MzUxZTk4MjFmMDg5ZmEz
MGZmN2Q1Nzc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIyLTAxLTMxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
UmVtb3ZlIERpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGUgYW5kIERpc3BsYXlMaXN0OjpS
ZWNvcmRlckltcGw6OkRlbGVnYXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzU5MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGVzZSBjbGFzc2VzIGFyZSBhYnN0cmFjdCBjbGFzc2VzIGFuZCB0aGV5
IGFyZSBub3Qgb3ZlcnJpZGRlbiBieSBhbnkKKyAgICAgICAgY2xpZW50IHJpZ2h0IG5vdy4gVGhl
c2UgdW51c2VkIGNsYXNzZXMgc2hvdWxkIGJlIHJlbW92ZWQgYWZ0ZXIgdGhlIGRpc3BsYXkKKyAg
ICAgICAgbGlzdCBzdHJlYW0gY29ubmVjdGlvbiByZWZhY3RvcmluZy4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
YXNjYWRlOjpkaXNwbGF5TGlzdEZvclRleHRSdW4gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3aW5nQ29udGV4dDo6RHJhd2luZ0NvbnRl
eHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dERyYXdpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd2lu
Z0NvbnRleHQ6OkRyYXdpbmdDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6UmVjb3Jk
ZXJJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlckltcGw6OnJl
Y29yZFJlc291cmNlVXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
ckltcGw6OmNhbkFwcGVuZEl0ZW1PZlR5cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6Y2FuRHJhd0ltYWdlQnVmZmVyIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlckltcGw6
OnJlbmRlcmluZ01vZGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5oOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlckltcGw6OkRlbGVnYXRlOjp+RGVsZWdhdGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6RGVsZWdh
dGU6OmNhbkFwcGVuZEl0ZW1PZlR5cGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlJlY29yZGVySW1wbDo6RGVsZWdhdGU6OnJlY29yZE5hdGl2ZUltYWdlVXNlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlckltcGw6OkRl
bGVnYXRlOjppc0NhY2hlZEltYWdlQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlckltcGw6OkRlbGVnYXRlOjpyZWNvcmRGb250VXNl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlckltcGw6
OkRlbGVnYXRlOjpyZWNvcmRJbWFnZUJ1ZmZlclVzZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXJJbXBsOjpEZWxlZ2F0ZTo6cmVuZGVyaW5nTW9kZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlcGxheWVyOjpSZXBsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6YXBw
bHlJbWFnZUJ1ZmZlckl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmFwcGx5
TmF0aXZlSW1hZ2VJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjphcHBseVNl
dFN0YXRlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6YXBwbHlGb250SXRl
bSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVwbGF5ZXI6OmFwcGx5SXRlbSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVw
bGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6cmVwbGF5
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGU6On5E
ZWxlZ2F0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVwbGF5
ZXI6OkRlbGVnYXRlOjphcHBseSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6UmVwbGF5ZXI6OkRlbGVnYXRlOjpkaWRDcmVhdGVNYXNrSW1hZ2VCdWZmZXIpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlcGxheWVyOjpEZWxlZ2F0ZTo6
ZGlkUmVzZXRNYXNrSW1hZ2VCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlJlcGxheWVyOjpEZWxlZ2F0ZTo6cmVjb3JkUmVzb3VyY2VVc2UpOiBEZWxldGVk
LgorCiAyMDIyLTAxLTMxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtHUFUgUHJvY2Vzc10gUGF0dGVybiBzaG91bGQgaG9sZCBTb3VyY2VJbWFnZSB3aGlj
aCBjYW4gYmUgY29udmVydGVkIHRvIGEgTmF0aXZlSW1hZ2Ugb25seSB3aGVuIG5lZWRlZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCAzYWY3MmIzOGY0NGYwMTVmMzQ0NGM1MmZiZDVmNjNkZGFiNjU0ZjAxLi5mNzNjYzk3
MmVjMzhmZjA3NzBjNGYyZDY3ZTZkYTUwZjE1YmZkNjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDIyLTAxLTMxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtHUFUgUHJvY2Vzc10gUmVtb3ZlIERpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdh
dGUgYW5kIERpc3BsYXlMaXN0OjpSZWNvcmRlckltcGw6OkRlbGVnYXRlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU5MzkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkUmVzb3VyY2VVc2UpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OmNhbkRyYXdJbWFn
ZUJ1ZmZlciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5Lmg6CisKIDIwMjItMDEtMzEgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBQ
YXR0ZXJuIHNob3VsZCBob2xkIFNvdXJjZUltYWdlIHdoaWNoIGNhbiBiZSBjb252ZXJ0ZWQgdG8g
YSBOYXRpdmVJbWFnZSBvbmx5IHdoZW4gbmVlZGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKaW5kZXggMmE3NjEzNjJjODNmYTY4NWI1MWM2
ZWUwNTJjNmIxMzVjMDI1ZjlhMC4uMDhkMmU2NzgyYTEzODE1ODI4MjMyMjU4YzgxZDI2MGJiZGRj
NTliOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
c2NhZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNj
YWRlLmNwcApAQCAtMjE0LDcgKzIxNCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6
SW5NZW1vcnlEaXNwbGF5TGlzdD4gRm9udENhc2NhZGU6OmRpc3BsYXlMaXN0Rm9yVGV4CiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlz
dDo6SW5NZW1vcnlEaXNwbGF5TGlzdD4gZGlzcGxheUxpc3QgPSBtYWtlVW5pcXVlPERpc3BsYXlM
aXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0PigpOwotICAgIERpc3BsYXlMaXN0OjpSZWNvcmRlcklt
cGwgcmVjb3JkaW5nQ29udGV4dCgqZGlzcGxheUxpc3QsIGNvbnRleHQuc3RhdGUoKSwgRmxvYXRS
ZWN0KCksIEFmZmluZVRyYW5zZm9ybSgpLCBudWxscHRyLCBEcmF3R2x5cGhzUmVjb3JkZXI6OkRl
Y29uc3RydWN0RHJhd0dseXBoczo6Tm8pOworICAgIERpc3BsYXlMaXN0OjpSZWNvcmRlckltcGwg
cmVjb3JkaW5nQ29udGV4dCgqZGlzcGxheUxpc3QsIGNvbnRleHQuc3RhdGUoKSwgRmxvYXRSZWN0
KCksIEFmZmluZVRyYW5zZm9ybSgpLCBEcmF3R2x5cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0RHJh
d0dseXBoczo6Tm8pOwogICAgIAogICAgIEZsb2F0UG9pbnQgc3RhcnRQb2ludCA9IHRvRmxvYXRQ
b2ludChXZWJDb3JlOjpzaXplKGdseXBoQnVmZmVyLmluaXRpYWxBZHZhbmNlKCkpKTsKICAgICBk
cmF3R2x5cGhCdWZmZXIocmVjb3JkaW5nQ29udGV4dCwgZ2x5cGhCdWZmZXIsIHN0YXJ0UG9pbnQs
IGN1c3RvbUZvbnROb3RSZWFkeUFjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3REcmF3aW5nQ29udGV4dC5jcHAKaW5kZXggMzYyZDQzNjc1MmFjNzNhOWJjM2IzY2M4YzA1
NmFhNGQ3ZjA3YjI0NS4uMGMyNTIyNjRhZjQxNjY1NjIxNzUxNjA0MTA0MmE4YmRkM2JmYWJiNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmNwcApA
QCAtMzMsOCArMzMsOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlM
aXN0IHsKIAotRHJhd2luZ0NvbnRleHQ6OkRyYXdpbmdDb250ZXh0KGNvbnN0IEZsb2F0U2l6ZSYg
bG9naWNhbFNpemUsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5pdGlhbENUTSwgUmVjb3JkZXJJ
bXBsOjpEZWxlZ2F0ZSogZGVsZWdhdGUpCi0gICAgOiBtX2NvbnRleHQobV9kaXNwbGF5TGlzdCwg
R3JhcGhpY3NDb250ZXh0U3RhdGUoKSwgRmxvYXRSZWN0KHsgfSwgbG9naWNhbFNpemUpLCBpbml0
aWFsQ1RNLCBkZWxlZ2F0ZSkKK0RyYXdpbmdDb250ZXh0OjpEcmF3aW5nQ29udGV4dChjb25zdCBG
bG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0p
CisgICAgOiBtX2NvbnRleHQobV9kaXNwbGF5TGlzdCwgR3JhcGhpY3NDb250ZXh0U3RhdGUoKSwg
RmxvYXRSZWN0KHsgfSwgbG9naWNhbFNpemUpLCBpbml0aWFsQ1RNKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3REcmF3aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaAppbmRleCAxN2YyMmU5MDNl
YTYwZDA5ZTkwZTIwYzNlOTdiYzEzYmNhYzcyM2RjLi5hNzg2NDZlOGIyYmEzMzRiY2EyNjEzMGZk
NDJiOTkyMTQ4ZDRmNjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdp
bmdDb250ZXh0LmgKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgSW5NZW1vcnlEaXNwbGF5TGlzdDsK
IGNsYXNzIERyYXdpbmdDb250ZXh0IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBEcmF3aW5nQ29udGV4dChjb25zdCBGbG9hdFNpemUm
IGxvZ2ljYWxTaXplLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0gPSB7IH0sIFJl
Y29yZGVySW1wbDo6RGVsZWdhdGUqID0gbnVsbHB0cik7CisgICAgV0VCQ09SRV9FWFBPUlQgRHJh
d2luZ0NvbnRleHQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiBpbml0aWFsQ1RNID0geyB9KTsKIAogICAgIEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8RHJhd2luZ0NvbnRleHQmPigqdGhpcykubV9j
b250ZXh0OyB9CiAgICAgUmVjb3JkZXJJbXBsJiByZWNvcmRlcigpIHsgcmV0dXJuIG1fY29udGV4
dDsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCmluZGV4IDdl
YTJhMTRjNzhmMzg1ZmE3ZWZkOTk2NWI5ZTJjMmQ5ZDUwMDIxMDAuLmU4ZjY4YTM3M2RiZWQ5Mjgy
NTZlMWYyOWMzZjJlZDY5N2IzNjZhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SW1hZ2VCdWZmZXIuaApAQCAtNjAsOSArNjAsOSBAQCBwdWJsaWM6CiAgICAgICAgIG1fZHJhd2lu
Z0NvbnRleHQuZGlzcGxheUxpc3QoKS5zZXRJdGVtQnVmZmVyUmVhZGluZ0NsaWVudChtX3JlYWRp
bmdDbGllbnQuZ2V0KCkpOwogICAgIH0KIAotICAgIEltYWdlQnVmZmVyKGNvbnN0IEltYWdlQnVm
ZmVyQmFja2VuZDo6UGFyYW1ldGVycyYgcGFyYW1ldGVycywgUmVjb3JkZXJJbXBsOjpEZWxlZ2F0
ZSogZGVsZWdhdGUgPSBudWxscHRyKQorICAgIEltYWdlQnVmZmVyKGNvbnN0IEltYWdlQnVmZmVy
QmFja2VuZDo6UGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICAgICAgOiBCYXNlQ29uY3JldGVJ
bWFnZUJ1ZmZlcihwYXJhbWV0ZXJzKQotICAgICAgICAsIG1fZHJhd2luZ0NvbnRleHQobG9naWNh
bFNpemUoKSwgYmFzZVRyYW5zZm9ybSgpLCBkZWxlZ2F0ZSkKKyAgICAgICAgLCBtX2RyYXdpbmdD
b250ZXh0KGxvZ2ljYWxTaXplKCksIGJhc2VUcmFuc2Zvcm0oKSkKICAgICAgICAgLCBtX3dyaXRp
bmdDbGllbnQobWFrZVVuaXF1ZTxJbk1lbW9yeURpc3BsYXlMaXN0OjpXcml0aW5nQ2xpZW50Pigp
KQogICAgICAgICAsIG1fcmVhZGluZ0NsaWVudChtYWtlVW5pcXVlPEluTWVtb3J5RGlzcGxheUxp
c3Q6OlJlYWRpbmdDbGllbnQ+KCkpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVyLmgKaW5kZXggOWIyYjBiOTM3OTAxZDg2NTExNjFlYjgyYjkwZjRkMDViOTQyNWUwZi4u
NDBlN2EwYzI1NjAzNzEzNTljYWVkZGZkZDUzOTIwNWVkMTU4N2U5OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC0xNDQsMTAgKzE0NCw2IEBAIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIGJvb2wgcmVjb3JkUmVzb3VyY2VVc2UoY29uc3QgU291cmNlSW1hZ2UmKSA9
IDA7CiAgICAgdmlydHVhbCBib29sIHJlY29yZFJlc291cmNlVXNlKEZvbnQmKSA9IDA7CiAKLSAg
ICAvLyBGSVhNRTogTWF5YmUgcmVtb3ZlIHRoaXM/Ci0gICAgdmlydHVhbCBib29sIGNhbkRyYXdJ
bWFnZUJ1ZmZlcihjb25zdCBJbWFnZUJ1ZmZlciYpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFJl
bmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSgpIGNvbnN0ID0gMDsKLQogICAgIHZpcnR1YWwgc3Rk
Ojp1bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4dD4gY3JlYXRlTmVzdGVkQ29udGV4dChjb25zdCBG
bG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0p
ID0gMDsKIAogICAgIHN0cnVjdCBDb250ZXh0U3RhdGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVySW1wbC5jcHAKaW5kZXggZmU1MTU1OGQ3ODIzNTM0MTlhNjRjOWE3
ZjliODk3OTAzYWE2ZjlhNC4uM2VjYmM3YmEzMzM1ZmM3YmJhYmY5MGUxNDdkYzNiYTkzNGY2NDg2
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3BwCkBA
IC00MiwxMCArNDIsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlM
aXN0IHsKIAotUmVjb3JkZXJJbXBsOjpSZWNvcmRlckltcGwoRGlzcGxheUxpc3QmIGRpc3BsYXlM
aXN0LCBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUsIGNvbnN0IEZsb2F0UmVjdCYg
aW5pdGlhbENsaXAsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5pdGlhbENUTSwgRGVsZWdhdGUq
IGRlbGVnYXRlLCBEcmF3R2x5cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0RHJhd0dseXBocyBkZWNv
bnN0cnVjdERyYXdHbHlwaHMpCitSZWNvcmRlckltcGw6OlJlY29yZGVySW1wbChEaXNwbGF5TGlz
dCYgZGlzcGxheUxpc3QsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwgY29uc3Qg
RmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RN
LCBEcmF3R2x5cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0RHJhd0dseXBocyBkZWNvbnN0cnVjdERy
YXdHbHlwaHMpCiAgICAgOiBSZWNvcmRlcihzdGF0ZSwgaW5pdGlhbENsaXAsIGluaXRpYWxDVE0s
IGRlY29uc3RydWN0RHJhd0dseXBocykKICAgICAsIG1fZGlzcGxheUxpc3QoZGlzcGxheUxpc3Qp
Ci0gICAgLCBtX2RlbGVnYXRlKGRlbGVnYXRlKQogewogICAgIExPR19XSVRIX1NUUkVBTShEaXNw
bGF5TGlzdHMsIHN0cmVhbSA8PCAiXG5SZWNvcmRpbmcgd2l0aCBjbGlwICIgPDwgaW5pdGlhbENs
aXApOwogfQpAQCAtNTMsNyArNTIsNiBAQCBSZWNvcmRlckltcGw6OlJlY29yZGVySW1wbChEaXNw
bGF5TGlzdCYgZGlzcGxheUxpc3QsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJgogUmVjb3Jk
ZXJJbXBsOjpSZWNvcmRlckltcGwoUmVjb3JkZXJJbXBsJiBwYXJlbnQsIGNvbnN0IEdyYXBoaWNz
Q29udGV4dFN0YXRlJiBzdGF0ZSwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNKQogICAgIDogUmVjb3JkZXIocGFyZW50LCBzdGF0
ZSwgaW5pdGlhbENsaXAsIGluaXRpYWxDVE0pCiAgICAgLCBtX2Rpc3BsYXlMaXN0KHBhcmVudC5t
X2Rpc3BsYXlMaXN0KQotICAgICwgbV9kZWxlZ2F0ZShwYXJlbnQubV9kZWxlZ2F0ZSkKICAgICAs
IG1faXNOZXN0ZWQodHJ1ZSkKIHsKIH0KQEAgLTc1LDIxICs3Myw2IEBAIHZvaWQgUmVjb3JkZXJJ
bXBsOjpwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIsIGNvbnN0
IEludFJlY3QmCiAgICAgYXBwZW5kPFB1dFBpeGVsQnVmZmVyPihwaXhlbEJ1ZmZlciwgc3JjUmVj
dCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0KTsKIH0KIAotYm9vbCBSZWNvcmRlckltcGw6OmNhbkFw
cGVuZEl0ZW1PZlR5cGUoSXRlbVR5cGUgdHlwZSkgY29uc3QKLXsKLSAgICByZXR1cm4gIW1fZGVs
ZWdhdGUgfHwgbV9kZWxlZ2F0ZS0+Y2FuQXBwZW5kSXRlbU9mVHlwZSh0eXBlKTsKLX0KLQotYm9v
bCBSZWNvcmRlckltcGw6OmNhbkRyYXdJbWFnZUJ1ZmZlcihjb25zdCBJbWFnZUJ1ZmZlciYgaW1h
Z2VCdWZmZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICFtX2RlbGVnYXRlIHx8IG1fZGVsZWdhdGUt
PmlzQ2FjaGVkSW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIpOwotfQotCi1SZW5kZXJpbmdNb2RlIFJl
Y29yZGVySW1wbDo6cmVuZGVyaW5nTW9kZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZGVsZWdh
dGUgPyBtX2RlbGVnYXRlLT5yZW5kZXJpbmdNb2RlKCkgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2Vs
ZXJhdGVkOwotfQotCiBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0PiBSZWNvcmRlcklt
cGw6OmNyZWF0ZU5lc3RlZENvbnRleHQoY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNKQogewogICAgIHJldHVybiBtYWtlVW5pcXVl
PFJlY29yZGVySW1wbD4oKnRoaXMsIEdyYXBoaWNzQ29udGV4dFN0YXRlIHsgfSwgaW5pdGlhbENs
aXAsIGluaXRpYWxDVE0pOwpAQCAtNDIxLDE4ICs0MDQsMTIgQEAgdm9pZCBSZWNvcmRlckltcGw6
OnJlY29yZEFwcGx5RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCiAKIGJvb2wg
UmVjb3JkZXJJbXBsOjpyZWNvcmRSZXNvdXJjZVVzZShOYXRpdmVJbWFnZSYgbmF0aXZlSW1hZ2Up
CiB7Ci0gICAgaWYgKG1fZGVsZWdhdGUpCi0gICAgICAgIG1fZGVsZWdhdGUtPnJlY29yZE5hdGl2
ZUltYWdlVXNlKG5hdGl2ZUltYWdlKTsKICAgICBtX2Rpc3BsYXlMaXN0LmNhY2hlTmF0aXZlSW1h
Z2UobmF0aXZlSW1hZ2UpOwogICAgIHJldHVybiB0cnVlOwogfQogCiBib29sIFJlY29yZGVySW1w
bDo6cmVjb3JkUmVzb3VyY2VVc2UoSW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKQogewotICAgIGlm
ICghY2FuRHJhd0ltYWdlQnVmZmVyKGltYWdlQnVmZmVyKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIGlmIChtX2RlbGVnYXRlKQotICAgICAgICBtX2RlbGVnYXRlLT5yZWNvcmRJbWFnZUJ1
ZmZlclVzZShpbWFnZUJ1ZmZlcik7CiAgICAgbV9kaXNwbGF5TGlzdC5jYWNoZUltYWdlQnVmZmVy
KGltYWdlQnVmZmVyKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTQ1MCw4ICs0MjcsNiBAQCBi
b29sIFJlY29yZGVySW1wbDo6cmVjb3JkUmVzb3VyY2VVc2UoY29uc3QgU291cmNlSW1hZ2UmIGlt
YWdlKQogCiBib29sIFJlY29yZGVySW1wbDo6cmVjb3JkUmVzb3VyY2VVc2UoRm9udCYgZm9udCkK
IHsKLSAgICBpZiAobV9kZWxlZ2F0ZSkKLSAgICAgICAgbV9kZWxlZ2F0ZS0+cmVjb3JkRm9udFVz
ZShmb250KTsKICAgICBtX2Rpc3BsYXlMaXN0LmNhY2hlRm9udChmb250KTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmgKaW5k
ZXggZWQ0NzEwYjNkNjkwM2JlZDYyNjljZGJjNmIyNTdmNTdmZmY1ODhlYy4uOTI2YzMzYjMxMTEy
MjU1ZWMzMmMyMjQ2ZTMyOTE5ZTE4ZWNmNTQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVjb3JkZXJJbXBsLmgKQEAgLTM1LDI1ICszNSwxMyBAQCBjbGFzcyBSZWNvcmRlcklt
cGwgOiBwdWJsaWMgUmVjb3JkZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFJlY29yZGVySW1wbCk7CiBwdWJsaWM6Ci0gICAgY2xhc3Mg
RGVsZWdhdGU7Ci0gICAgV0VCQ09SRV9FWFBPUlQgUmVjb3JkZXJJbXBsKERpc3BsYXlMaXN0Jiwg
Y29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlw
LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBEZWxlZ2F0ZSogPSBudWxscHRyLCBEcmF3R2x5cGhz
UmVjb3JkZXI6OkRlY29uc3RydWN0RHJhd0dseXBocyA9IERyYXdHbHlwaHNSZWNvcmRlcjo6RGVj
b25zdHJ1Y3REcmF3R2x5cGhzOjpZZXMpOworICAgIFdFQkNPUkVfRVhQT1JUIFJlY29yZGVySW1w
bChEaXNwbGF5TGlzdCYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwgY29uc3QgRmxvYXRS
ZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgRHJhd0dseXBoc1JlY29y
ZGVyOjpEZWNvbnN0cnVjdERyYXdHbHlwaHMgPSBEcmF3R2x5cGhzUmVjb3JkZXI6OkRlY29uc3Ry
dWN0RHJhd0dseXBoczo6WWVzKTsKICAgICBSZWNvcmRlckltcGwoUmVjb3JkZXJJbXBsJiBwYXJl
bnQsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFs
Q2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNKTsKIAogICAgIFdFQkNPUkVf
RVhQT1JUIHZpcnR1YWwgflJlY29yZGVySW1wbCgpOwogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29u
c3QgeyByZXR1cm4gbV9kaXNwbGF5TGlzdC5pc0VtcHR5KCk7IH0KIAotICAgIGNsYXNzIERlbGVn
YXRlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgfkRlbGVnYXRlKCkgeyB9Ci0gICAg
ICAgIHZpcnR1YWwgYm9vbCBjYW5BcHBlbmRJdGVtT2ZUeXBlKEl0ZW1UeXBlKSB7IHJldHVybiBm
YWxzZTsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVjb3JkTmF0aXZlSW1hZ2VVc2UoTmF0aXZl
SW1hZ2UmKSB7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGlzQ2FjaGVkSW1hZ2VCdWZmZXIoY29u
c3QgSW1hZ2VCdWZmZXImKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgICAgICB2aXJ0dWFs
IHZvaWQgcmVjb3JkRm9udFVzZShGb250JikgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZWNv
cmRJbWFnZUJ1ZmZlclVzZShJbWFnZUJ1ZmZlciYpIHsgfQotICAgICAgICB2aXJ0dWFsIFJlbmRl
cmluZ01vZGUgcmVuZGVyaW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIFJlbmRlcmluZ01vZGU6OlVu
YWNjZWxlcmF0ZWQ7IH0KLSAgICB9OwotCiAgICAgdm9pZCBnZXRQaXhlbEJ1ZmZlcihjb25zdCBQ
aXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0
KSBmaW5hbDsKICAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiwgY29u
c3QgSW50UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgQWxwaGFQcmVt
dWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KSBmaW5hbDsKICAgICB2b2lkIGNvbnZlcnRUb0x1bWlu
YW5jZU1hc2soKSBmaW5hbCB7IH0KQEAgLTYxLDEwICs0OSw2IEBAIHB1YmxpYzoKICAgICB2b2lk
IGZsdXNoQ29udGV4dChHcmFwaGljc0NvbnRleHRGbHVzaElkZW50aWZpZXIgaWRlbnRpZmllcikg
ZmluYWwgeyBhcHBlbmQ8Rmx1c2hDb250ZXh0PihpZGVudGlmaWVyKTsgfQogCiBwcml2YXRlOgot
ICAgIC8vIEZJWE1FOiBNYXliZSByZW1vdmUgdGhpcz8KLSAgICBib29sIGNhbkRyYXdJbWFnZUJ1
ZmZlcihjb25zdCBJbWFnZUJ1ZmZlciYpIGNvbnN0IGZpbmFsOwotICAgIFJlbmRlcmluZ01vZGUg
cmVuZGVyaW5nTW9kZSgpIGNvbnN0IGZpbmFsOwotCiAgICAgdm9pZCByZWNvcmRTYXZlKCkgZmlu
YWw7CiAgICAgdm9pZCByZWNvcmRSZXN0b3JlKCkgZmluYWw7CiAgICAgdm9pZCByZWNvcmRUcmFu
c2xhdGUoZmxvYXQgeCwgZmxvYXQgeSkgZmluYWw7CkBAIC0xNDYsOSArMTMwLDYgQEAgcHJpdmF0
ZToKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBjbGFzcy4uLiBBcmdzPgogICAgIHZvaWQgYXBw
ZW5kKEFyZ3MmJi4uLiBhcmdzKQogICAgIHsKLSAgICAgICAgaWYgKFVOTElLRUxZKCFjYW5BcHBl
bmRJdGVtT2ZUeXBlKFQ6Oml0ZW1UeXBlKSkpCi0gICAgICAgICAgICByZXR1cm47Ci0KICAgICAg
ICAgbV9kaXNwbGF5TGlzdC5hcHBlbmQ8VD4oc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsK
IAogICAgICAgICBpZiBjb25zdGV4cHIgKFQ6OmlzRHJhd2luZ0l0ZW0pIHsKQEAgLTE2NiwxMCAr
MTQ3LDggQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICBGbG9hdFJlY3QgZXh0ZW50RnJvbUxvY2Fs
Qm91bmRzKGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wg
Y2FuQXBwZW5kSXRlbU9mVHlwZShJdGVtVHlwZSkgY29uc3Q7CiAKICAgICBEaXNwbGF5TGlzdCYg
bV9kaXNwbGF5TGlzdDsKLSAgICBEZWxlZ2F0ZSogbV9kZWxlZ2F0ZSB7IG51bGxwdHIgfTsKICAg
ICBib29sIG1faXNOZXN0ZWQgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVwbGF5ZXIuY3BwCmluZGV4IDZmMjJiMmM4NzE0MjBkZjBiNjk1NjM0M2ZiMDE5OTM2
MzUyOGQ5MzYuLmQzYjRiZWY0NjgxNWM5YzAyNzliZTIyZjI1YmYwZDE1M2NjMGViYzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdFJlcGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAKQEAgLTM3LDk1ICszNyw3MiBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKIAotUmVwbGF5
ZXI6OlJlcGxheWVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRGlzcGxheUxpc3Qm
IGRpc3BsYXlMaXN0LCBjb25zdCBSZXNvdXJjZUhlYXAqIHJlc291cmNlSGVhcCwgSW1hZ2VCdWZm
ZXIqIG1hc2tJbWFnZUJ1ZmZlciwgRGVsZWdhdGUqIGRlbGVnYXRlKQorUmVwbGF5ZXI6OlJlcGxh
eWVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRGlzcGxheUxpc3QmIGRpc3BsYXlM
aXN0KQogICAgIDogbV9jb250ZXh0KGNvbnRleHQpCi0gICAgLCBtX21hc2tJbWFnZUJ1ZmZlciht
YXNrSW1hZ2VCdWZmZXIpCiAgICAgLCBtX2Rpc3BsYXlMaXN0KGRpc3BsYXlMaXN0KQotICAgICwg
bV9yZXNvdXJjZUhlYXAocmVzb3VyY2VIZWFwID8gKnJlc291cmNlSGVhcCA6IG1fZGlzcGxheUxp
c3QucmVzb3VyY2VIZWFwKCkpCi0gICAgLCBtX2RlbGVnYXRlKGRlbGVnYXRlKQogewogfQogCi1S
ZXBsYXllcjo6flJlcGxheWVyKCkgPSBkZWZhdWx0OwotCiBHcmFwaGljc0NvbnRleHQmIFJlcGxh
eWVyOjpjb250ZXh0KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9tYXNrSW1hZ2VCdWZmZXIgPyBt
X21hc2tJbWFnZUJ1ZmZlci0+Y29udGV4dCgpIDogbV9jb250ZXh0OwogfQogCiB0ZW1wbGF0ZTxj
bGFzcyBUPgotaW5saW5lIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcj4gYXBwbHlJbWFnZUJ1ZmZlckl0ZW0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBj
b25zdCBSZXNvdXJjZUhlYXAmIHJlc291cmNlSGVhcCwgSXRlbUhhbmRsZSBpdGVtLCBSZXBsYXll
cjo6RGVsZWdhdGUqIGRlbGVnYXRlKQoraW5saW5lIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcj4gYXBwbHlJbWFnZUJ1ZmZlckl0ZW0oR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZUhlYXAmIHJlc291cmNlSGVhcCwgSXRlbUhhbmRs
ZSBpdGVtKQogewogICAgIGF1dG8mIGltYWdlQnVmZmVySXRlbSA9IGl0ZW0uZ2V0PFQ+KCk7CiAg
ICAgYXV0byByZXNvdXJjZUlkZW50aWZpZXIgPSBpbWFnZUJ1ZmZlckl0ZW0uaW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyKCk7CiAgICAgaWYgKGF1dG8qIGltYWdlQnVmZmVyID0gcmVzb3VyY2VIZWFwLmdl
dEltYWdlQnVmZmVyKHJlc291cmNlSWRlbnRpZmllcikpIHsKICAgICAgICAgaW1hZ2VCdWZmZXJJ
dGVtLmFwcGx5KGNvbnRleHQsICppbWFnZUJ1ZmZlcik7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSkK
LSAgICAgICAgICAgIGRlbGVnYXRlLT5yZWNvcmRSZXNvdXJjZVVzZShyZXNvdXJjZUlkZW50aWZp
ZXIpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KICAgICByZXR1cm4gcmVz
b3VyY2VJZGVudGlmaWVyOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBUPgotaW5saW5lIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gYXBwbHlOYXRpdmVJbWFn
ZUl0ZW0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZUhlYXAmIHJlc291
cmNlSGVhcCwgSXRlbUhhbmRsZSBpdGVtLCBSZXBsYXllcjo6RGVsZWdhdGUqIGRlbGVnYXRlKQor
aW5saW5lIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4g
YXBwbHlOYXRpdmVJbWFnZUl0ZW0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBSZXNv
dXJjZUhlYXAmIHJlc291cmNlSGVhcCwgSXRlbUhhbmRsZSBpdGVtKQogewogICAgIGF1dG8mIG5h
dGl2ZUltYWdlSXRlbSA9IGl0ZW0uZ2V0PFQ+KCk7CiAgICAgYXV0byByZXNvdXJjZUlkZW50aWZp
ZXIgPSBuYXRpdmVJbWFnZUl0ZW0uaW1hZ2VJZGVudGlmaWVyKCk7CiAgICAgaWYgKGF1dG8qIGlt
YWdlID0gcmVzb3VyY2VIZWFwLmdldE5hdGl2ZUltYWdlKHJlc291cmNlSWRlbnRpZmllcikpIHsK
ICAgICAgICAgbmF0aXZlSW1hZ2VJdGVtLmFwcGx5KGNvbnRleHQsICppbWFnZSk7Ci0gICAgICAg
IGlmIChkZWxlZ2F0ZSkKLSAgICAgICAgICAgIGRlbGVnYXRlLT5yZWNvcmRSZXNvdXJjZVVzZShy
ZXNvdXJjZUlkZW50aWZpZXIpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0K
ICAgICByZXR1cm4gcmVzb3VyY2VJZGVudGlmaWVyOwogfQogCi1pbmxpbmUgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBhcHBseVNldFN0YXRlSXRlbShH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFJlc291cmNlSGVhcCYgcmVzb3VyY2VIZWFw
LCBJdGVtSGFuZGxlIGl0ZW0sIFJlcGxheWVyOjpEZWxlZ2F0ZSogZGVsZWdhdGUpCitpbmxpbmUg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBhcHBseVNl
dFN0YXRlSXRlbShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFJlc291cmNlSGVhcCYg
cmVzb3VyY2VIZWFwLCBJdGVtSGFuZGxlIGl0ZW0pCiB7Ci0gICAgUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIHN0cm9rZVBhdHRlcm5JbWFnZUlkZW50aWZpZXI7Ci0gICAgUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIGZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyOwogICAgIGF1dG8mIHNl
dFN0YXRlSXRlbSA9IGl0ZW0uZ2V0PFNldFN0YXRlPigpOwogCi0gICAgaWYgKGF1dG8mIHN0cm9r
ZVBhdHRlcm4gPSBzZXRTdGF0ZUl0ZW0uc3RhdGVDaGFuZ2UoKS5tX3N0YXRlLnN0cm9rZVBhdHRl
cm4pIHsKLSAgICAgICAgc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllciA9IHN0cm9rZVBhdHRl
cm4tPnRpbGVJbWFnZSgpLmltYWdlSWRlbnRpZmllcigpOwotICAgICAgICBhdXRvIHN0cm9rZVBh
dHRlcm5JbWFnZSA9IHJlc291cmNlSGVhcC5nZXRTb3VyY2VJbWFnZShzdHJva2VQYXR0ZXJuSW1h
Z2VJZGVudGlmaWVyKTsKLSAgICAgICAgaWYgKCFzdHJva2VQYXR0ZXJuSW1hZ2UpCi0gICAgICAg
ICAgICByZXR1cm4gc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcjsKKyAgICBhdXRvIGZpeFBh
dHRlcm5UaWxlSW1hZ2UgPSBbJl0oUGF0dGVybiogcGF0dGVybikgLT4gc3RkOjpvcHRpb25hbDxS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHsKKyAgICAgICAgYXV0byBpbWFnZUlkZW50aWZp
ZXIgPSBwYXR0ZXJuLT50aWxlSW1hZ2UoKS5pbWFnZUlkZW50aWZpZXIoKTsKKyAgICAgICAgYXV0
byBzb3VyY2VJbWFnZSA9IHJlc291cmNlSGVhcC5nZXRTb3VyY2VJbWFnZShpbWFnZUlkZW50aWZp
ZXIpOworICAgICAgICBpZiAoIXNvdXJjZUltYWdlKQorICAgICAgICAgICAgcmV0dXJuIGltYWdl
SWRlbnRpZmllcjsKIAotICAgICAgICBzdHJva2VQYXR0ZXJuLT5zZXRUaWxlSW1hZ2UoV1RGTW92
ZSgqc3Ryb2tlUGF0dGVybkltYWdlKSk7Ci0gICAgfQorICAgICAgICBwYXR0ZXJuLT5zZXRUaWxl
SW1hZ2UoV1RGTW92ZSgqc291cmNlSW1hZ2UpKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICB9OwogCi0gICAgaWYgKGF1dG8mIGZpbGxQYXR0ZXJuID0gc2V0U3RhdGVJdGVtLnN0
YXRlQ2hhbmdlKCkubV9zdGF0ZS5maWxsUGF0dGVybikgewotICAgICAgICBmaWxsUGF0dGVybklt
YWdlSWRlbnRpZmllciA9IGZpbGxQYXR0ZXJuLT50aWxlSW1hZ2UoKS5pbWFnZUlkZW50aWZpZXIo
KTsKLSAgICAgICAgYXV0byBmaWxsUGF0dGVybkltYWdlID0gcmVzb3VyY2VIZWFwLmdldFNvdXJj
ZUltYWdlKGZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyKTsKLSAgICAgICAgaWYgKCFmaWxsUGF0
dGVybkltYWdlKQotICAgICAgICAgICAgcmV0dXJuIGZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVy
OworICAgIGlmIChhdXRvIGltYWdlSWRlbnRpZmllciA9IGZpeFBhdHRlcm5UaWxlSW1hZ2Uoc2V0
U3RhdGVJdGVtLnN0YXRlQ2hhbmdlKCkubV9zdGF0ZS5zdHJva2VQYXR0ZXJuLmdldCgpKSkKKyAg
ICAgICAgcmV0dXJuICppbWFnZUlkZW50aWZpZXI7CiAKLSAgICAgICAgZmlsbFBhdHRlcm4tPnNl
dFRpbGVJbWFnZShXVEZNb3ZlKCpmaWxsUGF0dGVybkltYWdlKSk7Ci0gICAgfQorICAgIGlmIChh
dXRvIGltYWdlSWRlbnRpZmllciA9IGZpeFBhdHRlcm5UaWxlSW1hZ2Uoc2V0U3RhdGVJdGVtLnN0
YXRlQ2hhbmdlKCkubV9zdGF0ZS5maWxsUGF0dGVybi5nZXQoKSkpCisgICAgICAgIHJldHVybiBp
bWFnZUlkZW50aWZpZXI7CiAKICAgICBzZXRTdGF0ZUl0ZW0uYXBwbHkoY29udGV4dCk7Ci0KLSAg
ICBpZiAoIWRlbGVnYXRlKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgaWYg
KHN0cm9rZVBhdHRlcm5JbWFnZUlkZW50aWZpZXIpCi0gICAgICAgIGRlbGVnYXRlLT5yZWNvcmRS
ZXNvdXJjZVVzZShzdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyKTsKLSAgICBpZiAoZmlsbFBh
dHRlcm5JbWFnZUlkZW50aWZpZXIpCi0gICAgICAgIGRlbGVnYXRlLT5yZWNvcmRSZXNvdXJjZVVz
ZShmaWxsUGF0dGVybkltYWdlSWRlbnRpZmllcik7CiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
IH0KIAogdGVtcGxhdGU8Y2xhc3MgVD4KLWlubGluZSBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGFwcGx5Rm9udEl0ZW0oR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBSZXNvdXJjZUhlYXAmIHJlc291cmNlSGVhcCwgSXRlbUhhbmRsZSBpdGVt
LCBSZXBsYXllcjo6RGVsZWdhdGUqIGRlbGVnYXRlKQoraW5saW5lIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gYXBwbHlGb250SXRlbShHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQsIGNvbnN0IFJlc291cmNlSGVhcCYgcmVzb3VyY2VIZWFwLCBJdGVtSGFu
ZGxlIGl0ZW0pCiB7CiAgICAgYXV0byYgZm9udEl0ZW0gPSBpdGVtLmdldDxUPigpOwogICAgIGF1
dG8gcmVzb3VyY2VJZGVudGlmaWVyID0gZm9udEl0ZW0uZm9udElkZW50aWZpZXIoKTsKICAgICBp
ZiAoYXV0byogZm9udCA9IHJlc291cmNlSGVhcC5nZXRGb250KHJlc291cmNlSWRlbnRpZmllcikp
IHsKICAgICAgICAgZm9udEl0ZW0uYXBwbHkoY29udGV4dCwgKmZvbnQpOwotICAgICAgICBpZiAo
ZGVsZWdhdGUpCi0gICAgICAgICAgICBkZWxlZ2F0ZS0+cmVjb3JkUmVzb3VyY2VVc2UocmVzb3Vy
Y2VJZGVudGlmaWVyKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAgICAg
cmV0dXJuIHJlc291cmNlSWRlbnRpZmllcjsKQEAgLTEzMyw0MSArMTEwLDM4IEBAIGlubGluZSBz
dGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGFwcGx5Rm9u
dEl0ZW0oR3JhcGhpY3NDCiAKIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFN0b3BSZXBsYXlSZWFz
b24+LCBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4+IFJlcGxheWVy
OjphcHBseUl0ZW0oSXRlbUhhbmRsZSBpdGVtKQogewotICAgIGlmIChtX2RlbGVnYXRlICYmIG1f
ZGVsZWdhdGUtPmFwcGx5KGl0ZW0sIGNvbnRleHQoKSkpCi0gICAgICAgIHJldHVybiB7IHN0ZDo6
bnVsbG9wdCwgc3RkOjpudWxsb3B0IH07Ci0KICAgICBpZiAoaXRlbS5pczxEcmF3SW1hZ2VCdWZm
ZXI+KCkpIHsKLSAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmll
ciA9IGFwcGx5SW1hZ2VCdWZmZXJJdGVtPERyYXdJbWFnZUJ1ZmZlcj4oY29udGV4dCgpLCBtX3Jl
c291cmNlSGVhcCwgaXRlbSwgbV9kZWxlZ2F0ZSkpCisgICAgICAgIGlmIChhdXRvIG1pc3NpbmdD
YWNoZWRSZXNvdXJjZUlkZW50aWZpZXIgPSBhcHBseUltYWdlQnVmZmVySXRlbTxEcmF3SW1hZ2VC
dWZmZXI+KGNvbnRleHQoKSwgbV9kaXNwbGF5TGlzdC5yZXNvdXJjZUhlYXAoKSwgaXRlbSkpCiAg
ICAgICAgICAgICByZXR1cm4geyBTdG9wUmVwbGF5UmVhc29uOjpNaXNzaW5nQ2FjaGVkUmVzb3Vy
Y2UsIFdURk1vdmUobWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllcikgfTsKICAgICAgICAg
cmV0dXJuIHsgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfTsKICAgICB9CiAKICAgICBpZiAo
aXRlbS5pczxDbGlwVG9JbWFnZUJ1ZmZlcj4oKSkgewotICAgICAgICBpZiAoYXV0byBtaXNzaW5n
Q2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBwbHlJbWFnZUJ1ZmZlckl0ZW08Q2xpcFRvSW1h
Z2VCdWZmZXI+KGNvbnRleHQoKSwgbV9yZXNvdXJjZUhlYXAsIGl0ZW0sIG1fZGVsZWdhdGUpKQor
ICAgICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBwbHlJ
bWFnZUJ1ZmZlckl0ZW08Q2xpcFRvSW1hZ2VCdWZmZXI+KGNvbnRleHQoKSwgbV9kaXNwbGF5TGlz
dC5yZXNvdXJjZUhlYXAoKSwgaXRlbSkpCiAgICAgICAgICAgICByZXR1cm4geyBTdG9wUmVwbGF5
UmVhc29uOjpNaXNzaW5nQ2FjaGVkUmVzb3VyY2UsIFdURk1vdmUobWlzc2luZ0NhY2hlZFJlc291
cmNlSWRlbnRpZmllcikgfTsKICAgICAgICAgcmV0dXJuIHsgc3RkOjpudWxsb3B0LCBzdGQ6Om51
bGxvcHQgfTsKICAgICB9CiAKICAgICBpZiAoaXRlbS5pczxEcmF3TmF0aXZlSW1hZ2U+KCkpIHsK
LSAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9IGFwcGx5
TmF0aXZlSW1hZ2VJdGVtPERyYXdOYXRpdmVJbWFnZT4oY29udGV4dCgpLCBtX3Jlc291cmNlSGVh
cCwgaXRlbSwgbV9kZWxlZ2F0ZSkpCisgICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNoZWRSZXNv
dXJjZUlkZW50aWZpZXIgPSBhcHBseU5hdGl2ZUltYWdlSXRlbTxEcmF3TmF0aXZlSW1hZ2U+KGNv
bnRleHQoKSwgbV9kaXNwbGF5TGlzdC5yZXNvdXJjZUhlYXAoKSwgaXRlbSkpCiAgICAgICAgICAg
ICByZXR1cm4geyBTdG9wUmVwbGF5UmVhc29uOjpNaXNzaW5nQ2FjaGVkUmVzb3VyY2UsIFdURk1v
dmUobWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllcikgfTsKICAgICAgICAgcmV0dXJuIHsg
c3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfTsKICAgICB9CiAKICAgICBpZiAoaXRlbS5pczxE
cmF3R2x5cGhzPigpKSB7Ci0gICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlk
ZW50aWZpZXIgPSBhcHBseUZvbnRJdGVtPERyYXdHbHlwaHM+KGNvbnRleHQoKSwgbV9yZXNvdXJj
ZUhlYXAsIGl0ZW0sIG1fZGVsZWdhdGUpKQorICAgICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVk
UmVzb3VyY2VJZGVudGlmaWVyID0gYXBwbHlGb250SXRlbTxEcmF3R2x5cGhzPihjb250ZXh0KCks
IG1fZGlzcGxheUxpc3QucmVzb3VyY2VIZWFwKCksIGl0ZW0pKQogICAgICAgICAgICAgcmV0dXJu
IHsgU3RvcFJlcGxheVJlYXNvbjo6TWlzc2luZ0NhY2hlZFJlc291cmNlLCBXVEZNb3ZlKG1pc3Np
bmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIpIH07CiAgICAgICAgIHJldHVybiB7IHN0ZDo6bnVs
bG9wdCwgc3RkOjpudWxsb3B0IH07CiAgICAgfQogCiAgICAgaWYgKGl0ZW0uaXM8RHJhd1BhdHRl
cm4+KCkpIHsKLSAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmll
ciA9IGFwcGx5TmF0aXZlSW1hZ2VJdGVtPERyYXdQYXR0ZXJuPihjb250ZXh0KCksIG1fcmVzb3Vy
Y2VIZWFwLCBpdGVtLCBtX2RlbGVnYXRlKSkKKyAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hl
ZFJlc291cmNlSWRlbnRpZmllciA9IGFwcGx5TmF0aXZlSW1hZ2VJdGVtPERyYXdQYXR0ZXJuPihj
b250ZXh0KCksIG1fZGlzcGxheUxpc3QucmVzb3VyY2VIZWFwKCksIGl0ZW0pKQogICAgICAgICAg
ICAgcmV0dXJuIHsgU3RvcFJlcGxheVJlYXNvbjo6TWlzc2luZ0NhY2hlZFJlc291cmNlLCBXVEZN
b3ZlKG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIpIH07CiAgICAgICAgIHJldHVybiB7
IHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0IH07CiAgICAgfQogCiAgICAgaWYgKGl0ZW0uaXM8
U2V0U3RhdGU+KCkpIHsKLSAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRl
bnRpZmllciA9IGFwcGx5U2V0U3RhdGVJdGVtKGNvbnRleHQoKSwgbV9yZXNvdXJjZUhlYXAsIGl0
ZW0sIG1fZGVsZWdhdGUpKQorICAgICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJ
ZGVudGlmaWVyID0gYXBwbHlTZXRTdGF0ZUl0ZW0oY29udGV4dCgpLCBtX2Rpc3BsYXlMaXN0LnJl
c291cmNlSGVhcCgpLCBpdGVtKSkKICAgICAgICAgICAgIHJldHVybiB7IFN0b3BSZXBsYXlSZWFz
b246Ok1pc3NpbmdDYWNoZWRSZXNvdXJjZSwgV1RGTW92ZShtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJ
ZGVudGlmaWVyKSB9OwogICAgICAgICByZXR1cm4geyBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9w
dCB9OwogICAgIH0KQEAgLTE3OSw4ICsxNTMsNiBAQCBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxT
dG9wUmVwbGF5UmVhc29uPiwgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aQog
ICAgICAgICBtX21hc2tJbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGVDb21wYXRpYmxl
QnVmZmVyKGNsaXBJdGVtLmRlc3RpbmF0aW9uKCkuc2l6ZSgpLCBjbGlwSXRlbS5jb2xvclNwYWNl
KCksIG1fY29udGV4dCk7CiAgICAgICAgIGlmICghbV9tYXNrSW1hZ2VCdWZmZXIpCiAgICAgICAg
ICAgICByZXR1cm4geyBTdG9wUmVwbGF5UmVhc29uOjpPdXRPZk1lbW9yeSwgc3RkOjpudWxsb3B0
IH07Ci0gICAgICAgIGlmIChtX2RlbGVnYXRlKQotICAgICAgICAgICAgbV9kZWxlZ2F0ZS0+ZGlk
Q3JlYXRlTWFza0ltYWdlQnVmZmVyKCptX21hc2tJbWFnZUJ1ZmZlcik7CiAgICAgICAgIHJldHVy
biB7IHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0IH07CiAgICAgfQogCkBAIC0xOTAsOCArMTYy
LDYgQEAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8U3RvcFJlcGxheVJlYXNvbj4sIHN0ZDo6b3B0
aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGkKICAgICAgICAgYXV0byYgY2xpcEl0ZW0gPSBp
dGVtLmdldDxFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHM+KCk7CiAgICAgICAgIG1fY29udGV4dC5j
bGlwVG9JbWFnZUJ1ZmZlcigqbV9tYXNrSW1hZ2VCdWZmZXIsIGNsaXBJdGVtLmRlc3RpbmF0aW9u
KCkpOwogICAgICAgICBtX21hc2tJbWFnZUJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgICAgIGlmICht
X2RlbGVnYXRlKQotICAgICAgICAgICAgbV9kZWxlZ2F0ZS0+ZGlkUmVzZXRNYXNrSW1hZ2VCdWZm
ZXIoKTsKICAgICAgICAgcmV0dXJuIHsgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5oCmluZGV4IDkyODViYmRk
MTAwNDhjMmFlZjliZmRkMzllMjBhZTFjNjMzZDVjN2MuLjdkMGI5ODFjZjI4MjI0YjZlY2FiYTk3
ODdjYTlhYjExYzRkMzIyMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIu
aApAQCAtMzEsNyArMzEsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3Mg
QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiA6IHVpbnQ4X3Q7CiBjbGFzcyBGbG9hdFJlY3Q7CiBjbGFz
cyBHcmFwaGljc0NvbnRleHQ7CiAKQEAgLTU4LDIxICs1NywxMSBAQCBzdHJ1Y3QgUmVwbGF5UmVz
dWx0IHsKIGNsYXNzIFJlcGxheWVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZXBsYXll
cik7CiBwdWJsaWM6Ci0gICAgY2xhc3MgRGVsZWdhdGU7Ci0gICAgV0VCQ09SRV9FWFBPUlQgUmVw
bGF5ZXIoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRGlzcGxheUxpc3QmLCBjb25zdCBSZXNvdXJj
ZUhlYXAqID0gbnVsbHB0ciwgV2ViQ29yZTo6SW1hZ2VCdWZmZXIqIG1hc2tJbWFnZUJ1ZmZlciA9
IG51bGxwdHIsIERlbGVnYXRlKiA9IG51bGxwdHIpOwotICAgIFdFQkNPUkVfRVhQT1JUIH5SZXBs
YXllcigpOworICAgIFJlcGxheWVyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IERpc3BsYXlMaXN0
Jik7CisgICAgflJlcGxheWVyKCkgPSBkZWZhdWx0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgUmVw
bGF5UmVzdWx0IHJlcGxheShjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwID0geyB9LCBib29s
IHRyYWNrUmVwbGF5TGlzdCA9IGZhbHNlKTsKKyAgICBSZXBsYXlSZXN1bHQgcmVwbGF5KGNvbnN0
IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAgPSB7IH0sIGJvb2wgdHJhY2tSZXBsYXlMaXN0ID0gZmFs
c2UpOwogCi0gICAgY2xhc3MgRGVsZWdhdGUgewotICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVh
bCB+RGVsZWdhdGUoKSB7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGFwcGx5KEl0ZW1IYW5kbGUs
IEdyYXBoaWNzQ29udGV4dCYpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIHZpcnR1YWwgdm9p
ZCBkaWRDcmVhdGVNYXNrSW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImKSB7IH0KLSAg
ICAgICAgdmlydHVhbCB2b2lkIGRpZFJlc2V0TWFza0ltYWdlQnVmZmVyKCkgeyB9Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCByZWNvcmRSZXNvdXJjZVVzZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIpIHsgfQotICAgIH07Ci0gICAgCiBwcml2YXRlOgogICAgIEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCgpIGNvbnN0OwogICAgIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFN0b3BSZXBsYXlSZWFz
b24+LCBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4+IGFwcGx5SXRl
bShJdGVtSGFuZGxlKTsKQEAgLTgwLDggKzY5LDYgQEAgcHJpdmF0ZToKICAgICBHcmFwaGljc0Nv
bnRleHQmIG1fY29udGV4dDsKICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IG1fbWFz
a0ltYWdlQnVmZmVyOwogICAgIGNvbnN0IERpc3BsYXlMaXN0JiBtX2Rpc3BsYXlMaXN0OwotICAg
IGNvbnN0IFJlc291cmNlSGVhcCYgbV9yZXNvdXJjZUhlYXA7Ci0gICAgRGVsZWdhdGUqIG1fZGVs
ZWdhdGU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94
eS5jcHAKaW5kZXggODU3MjNjMzgzZDQ3ZTRhZmMyNTNlMzE1ZDg0YjIyMmE4NDMxNzI3Yy4uOWQz
NDNmYTlhYzQ5NGJhYzVlYTRjYWRkMDExOWIwMGNlMmM4Njc2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcApAQCAtODAsMTEgKzgwLDYgQEAgdm9pZCBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnRyYW5zZm9ybVRvQ29sb3JTcGFjZShjb25z
dCBXZWJDb3JlOjpEZXN0aW4KICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpUcmFuc2Zvcm1Ub0NvbG9yU3BhY2UoY29sb3JTcGFjZSkpOwogfQogCi1ib29sIFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6Y2FuRHJhd0ltYWdlQnVmZmVyKGNvbnN0IElt
YWdlQnVmZmVyJiBpbWFnZUJ1ZmZlcikgY29uc3QKLXsKLSAgICByZXR1cm4gbV9yZW5kZXJpbmdC
YWNrZW5kICYmIG1fcmVuZGVyaW5nQmFja2VuZC0+aXNDYWNoZWQoaW1hZ2VCdWZmZXIpOwotfQot
CiBSZW5kZXJpbmdNb2RlIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVuZGVyaW5n
TW9kZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW1hZ2VCdWZmZXIgPyBtX2ltYWdlQnVmZmVy
LT5yZW5kZXJpbmdNb2RlKCkgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkOwpAQCAtNDMw
LDcgKzQyNSw3IEBAIGJvb2wgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRS
ZXNvdXJjZVVzZShJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAKLSAgICBpZiAoIWNhbkRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcikpCisg
ICAgaWYgKCFtX3JlbmRlcmluZ0JhY2tlbmQtPmlzQ2FjaGVkKGltYWdlQnVmZmVyKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5yZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHkoKS5yZWNvcmRJbWFnZUJ1ZmZlclVzZShpbWFnZUJ1ZmZlcik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaAppbmRleCBhNDE4ZWYyZmIwM2ViM2Uy
MjFjY2Q3ZjVhNjQxNTQ4MmQ3MWMzNDZhLi4zMDA5OGJlYTYxYzFiNjQ0ZTQyMGFjYTMzMzlmOTA0
NDkxZTRiN2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmgK
QEAgLTY2LDcgKzY2LDYgQEAgcHJpdmF0ZToKIAogICAgIGZyaWVuZCBjbGFzcyBXZWJDb3JlOjpE
cmF3R2x5cGhzUmVjb3JkZXI7CiAKLSAgICBib29sIGNhbkRyYXdJbWFnZUJ1ZmZlcihjb25zdCBX
ZWJDb3JlOjpJbWFnZUJ1ZmZlciYpIGNvbnN0IGZpbmFsOwogICAgIFdlYkNvcmU6OlJlbmRlcmlu
Z01vZGUgcmVuZGVyaW5nTW9kZSgpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCByZWNvcmRTYXZl
KCkgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450501</attachid>
            <date>2022-01-31 23:10:29 -0800</date>
            <delta_ts>2022-01-31 23:47:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235939-20220131231028.patch</filename>
            <type>text/plain</type>
            <size>29057</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4ODY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTE0ZjM5ZWQzZWE4MWVl
MjgwOTAxZjY1Y2IyZGZlYTcxZTVjNWE2NC4uMTAxMmI5MDA5ZDgwMjk4NWZjZjRjOGE3Mjk0NGY0
MmE3NGU1MmZkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIyLTAxLTMxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
UmVtb3ZlIERpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGUgYW5kIERpc3BsYXlMaXN0OjpS
ZWNvcmRlckltcGw6OkRlbGVnYXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzU5MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGVzZSBjbGFzc2VzIGFyZSBhYnN0cmFjdCBjbGFzc2VzIGFuZCB0aGV5
IGFyZSBub3Qgb3ZlcnJpZGRlbiBieSBhbnkKKyAgICAgICAgY2xpZW50IHJpZ2h0IG5vdy4gVGhl
c2UgdW51c2VkIGNsYXNzZXMgc2hvdWxkIGJlIHJlbW92ZWQgYWZ0ZXIgdGhlIGRpc3BsYXkKKyAg
ICAgICAgbGlzdCBzdHJlYW0gY29ubmVjdGlvbiByZWZhY3RvcmluZy4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
YXNjYWRlOjpkaXNwbGF5TGlzdEZvclRleHRSdW4gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3aW5nQ29udGV4dDo6RHJhd2luZ0NvbnRl
eHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dERyYXdpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd2lu
Z0NvbnRleHQ6OkRyYXdpbmdDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6UmVjb3Jk
ZXJJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlckltcGw6OnJl
Y29yZFJlc291cmNlVXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
ckltcGw6OmNhbkFwcGVuZEl0ZW1PZlR5cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6Y2FuRHJhd0ltYWdlQnVmZmVyIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlckltcGw6
OnJlbmRlcmluZ01vZGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5oOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlckltcGw6OkRlbGVnYXRlOjp+RGVsZWdhdGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6RGVsZWdh
dGU6OmNhbkFwcGVuZEl0ZW1PZlR5cGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlJlY29yZGVySW1wbDo6RGVsZWdhdGU6OnJlY29yZE5hdGl2ZUltYWdlVXNlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlckltcGw6OkRl
bGVnYXRlOjppc0NhY2hlZEltYWdlQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlckltcGw6OkRlbGVnYXRlOjpyZWNvcmRGb250VXNl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlckltcGw6
OkRlbGVnYXRlOjpyZWNvcmRJbWFnZUJ1ZmZlclVzZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXJJbXBsOjpEZWxlZ2F0ZTo6cmVuZGVyaW5nTW9kZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlcGxheWVyOjpSZXBsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6YXBw
bHlJbWFnZUJ1ZmZlckl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmFwcGx5
TmF0aXZlSW1hZ2VJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjphcHBseVNl
dFN0YXRlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6YXBwbHlGb250SXRl
bSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVwbGF5ZXI6OmFwcGx5SXRlbSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVw
bGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6cmVwbGF5
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGU6On5E
ZWxlZ2F0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVwbGF5
ZXI6OkRlbGVnYXRlOjphcHBseSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6UmVwbGF5ZXI6OkRlbGVnYXRlOjpkaWRDcmVhdGVNYXNrSW1hZ2VCdWZmZXIpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlcGxheWVyOjpEZWxlZ2F0ZTo6
ZGlkUmVzZXRNYXNrSW1hZ2VCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlJlcGxheWVyOjpEZWxlZ2F0ZTo6cmVjb3JkUmVzb3VyY2VVc2UpOiBEZWxldGVk
LgorCiAyMDIyLTAxLTMxICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIEZpeCBoYW5kbGluZyBvZiBhY2Nlc3Mga2V5IGV2ZW50cwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzYWY3
MmIzOGY0NGYwMTVmMzQ0NGM1MmZiZDVmNjNkZGFiNjU0ZjAxLi5mNzNjYzk3MmVjMzhmZjA3NzBj
NGYyZDY3ZTZkYTUwZjE1YmZkNjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTAx
LTMxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUg
UHJvY2Vzc10gUmVtb3ZlIERpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGUgYW5kIERpc3Bs
YXlMaXN0OjpSZWNvcmRlckltcGw6OkRlbGVnYXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU5MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkUmVzb3VyY2VVc2UpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OmNhbkRyYXdJbWFnZUJ1ZmZlciBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5Lmg6CisKIDIwMjItMDEtMzEgIFNhaWQgQWJvdS1IYWxsYXdh
ICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBQYXR0ZXJuIHNob3Vs
ZCBob2xkIFNvdXJjZUltYWdlIHdoaWNoIGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBOYXRpdmVJbWFn
ZSBvbmx5IHdoZW4gbmVlZGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FzY2FkZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250Q2FzY2FkZS5jcHAKaW5kZXggMmE3NjEzNjJjODNmYTY4NWI1MWM2ZWUwNTJjNmIxMzVj
MDI1ZjlhMC4uMDhkMmU2NzgyYTEzODE1ODI4MjMyMjU4YzgxZDI2MGJiZGRjNTliOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcApAQCAt
MjE0LDcgKzIxNCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNw
bGF5TGlzdD4gRm9udENhc2NhZGU6OmRpc3BsYXlMaXN0Rm9yVGV4CiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6SW5NZW1vcnlE
aXNwbGF5TGlzdD4gZGlzcGxheUxpc3QgPSBtYWtlVW5pcXVlPERpc3BsYXlMaXN0OjpJbk1lbW9y
eURpc3BsYXlMaXN0PigpOwotICAgIERpc3BsYXlMaXN0OjpSZWNvcmRlckltcGwgcmVjb3JkaW5n
Q29udGV4dCgqZGlzcGxheUxpc3QsIGNvbnRleHQuc3RhdGUoKSwgRmxvYXRSZWN0KCksIEFmZmlu
ZVRyYW5zZm9ybSgpLCBudWxscHRyLCBEcmF3R2x5cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0RHJh
d0dseXBoczo6Tm8pOworICAgIERpc3BsYXlMaXN0OjpSZWNvcmRlckltcGwgcmVjb3JkaW5nQ29u
dGV4dCgqZGlzcGxheUxpc3QsIGNvbnRleHQuc3RhdGUoKSwgRmxvYXRSZWN0KCksIEFmZmluZVRy
YW5zZm9ybSgpLCBEcmF3R2x5cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0RHJhd0dseXBoczo6Tm8p
OwogICAgIAogICAgIEZsb2F0UG9pbnQgc3RhcnRQb2ludCA9IHRvRmxvYXRQb2ludChXZWJDb3Jl
OjpzaXplKGdseXBoQnVmZmVyLmluaXRpYWxBZHZhbmNlKCkpKTsKICAgICBkcmF3R2x5cGhCdWZm
ZXIocmVjb3JkaW5nQ29udGV4dCwgZ2x5cGhCdWZmZXIsIHN0YXJ0UG9pbnQsIGN1c3RvbUZvbnRO
b3RSZWFkeUFjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5n
Q29udGV4dC5jcHAKaW5kZXggMzYyZDQzNjc1MmFjNzNhOWJjM2IzY2M4YzA1NmFhNGQ3ZjA3YjI0
NS4uMGMyNTIyNjRhZjQxNjY1NjIxNzUxNjA0MTA0MmE4YmRkM2JmYWJiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
RHJhd2luZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmNwcApAQCAtMzMsOCArMzMs
OCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKIAotRHJh
d2luZ0NvbnRleHQ6OkRyYXdpbmdDb250ZXh0KGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUs
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5pdGlhbENUTSwgUmVjb3JkZXJJbXBsOjpEZWxlZ2F0
ZSogZGVsZWdhdGUpCi0gICAgOiBtX2NvbnRleHQobV9kaXNwbGF5TGlzdCwgR3JhcGhpY3NDb250
ZXh0U3RhdGUoKSwgRmxvYXRSZWN0KHsgfSwgbG9naWNhbFNpemUpLCBpbml0aWFsQ1RNLCBkZWxl
Z2F0ZSkKK0RyYXdpbmdDb250ZXh0OjpEcmF3aW5nQ29udGV4dChjb25zdCBGbG9hdFNpemUmIGxv
Z2ljYWxTaXplLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0pCisgICAgOiBtX2Nv
bnRleHQobV9kaXNwbGF5TGlzdCwgR3JhcGhpY3NDb250ZXh0U3RhdGUoKSwgRmxvYXRSZWN0KHsg
fSwgbG9naWNhbFNpemUpLCBpbml0aWFsQ1RNKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5n
Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaAppbmRleCAxN2YyMmU5MDNlYTYwZDA5ZTkwZTIw
YzNlOTdiYzEzYmNhYzcyM2RjLi5hNzg2NDZlOGIyYmEzMzRiY2EyNjEzMGZkNDJiOTkyMTQ4ZDRm
NjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmgK
QEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgSW5NZW1vcnlEaXNwbGF5TGlzdDsKIGNsYXNzIERyYXdp
bmdDb250ZXh0IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBX
RUJDT1JFX0VYUE9SVCBEcmF3aW5nQ29udGV4dChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXpl
LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0gPSB7IH0sIFJlY29yZGVySW1wbDo6
RGVsZWdhdGUqID0gbnVsbHB0cik7CisgICAgV0VCQ09SRV9FWFBPUlQgRHJhd2luZ0NvbnRleHQo
Y29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0
aWFsQ1RNID0geyB9KTsKIAogICAgIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCgpIGNvbnN0IHsg
cmV0dXJuIGNvbnN0X2Nhc3Q8RHJhd2luZ0NvbnRleHQmPigqdGhpcykubV9jb250ZXh0OyB9CiAg
ICAgUmVjb3JkZXJJbXBsJiByZWNvcmRlcigpIHsgcmV0dXJuIG1fY29udGV4dDsgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCmluZGV4IDdlYTJhMTRjNzhmMzg1
ZmE3ZWZkOTk2NWI5ZTJjMmQ5ZDUwMDIxMDAuLmU4ZjY4YTM3M2RiZWQ5MjgyNTZlMWYyOWMzZjJl
ZDY5N2IzNjZhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIu
aApAQCAtNjAsOSArNjAsOSBAQCBwdWJsaWM6CiAgICAgICAgIG1fZHJhd2luZ0NvbnRleHQuZGlz
cGxheUxpc3QoKS5zZXRJdGVtQnVmZmVyUmVhZGluZ0NsaWVudChtX3JlYWRpbmdDbGllbnQuZ2V0
KCkpOwogICAgIH0KIAotICAgIEltYWdlQnVmZmVyKGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZDo6
UGFyYW1ldGVycyYgcGFyYW1ldGVycywgUmVjb3JkZXJJbXBsOjpEZWxlZ2F0ZSogZGVsZWdhdGUg
PSBudWxscHRyKQorICAgIEltYWdlQnVmZmVyKGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZDo6UGFy
YW1ldGVycyYgcGFyYW1ldGVycykKICAgICAgICAgOiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcihw
YXJhbWV0ZXJzKQotICAgICAgICAsIG1fZHJhd2luZ0NvbnRleHQobG9naWNhbFNpemUoKSwgYmFz
ZVRyYW5zZm9ybSgpLCBkZWxlZ2F0ZSkKKyAgICAgICAgLCBtX2RyYXdpbmdDb250ZXh0KGxvZ2lj
YWxTaXplKCksIGJhc2VUcmFuc2Zvcm0oKSkKICAgICAgICAgLCBtX3dyaXRpbmdDbGllbnQobWFr
ZVVuaXF1ZTxJbk1lbW9yeURpc3BsYXlMaXN0OjpXcml0aW5nQ2xpZW50PigpKQogICAgICAgICAs
IG1fcmVhZGluZ0NsaWVudChtYWtlVW5pcXVlPEluTWVtb3J5RGlzcGxheUxpc3Q6OlJlYWRpbmdD
bGllbnQ+KCkpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKaW5k
ZXggOWIyYjBiOTM3OTAxZDg2NTExNjFlYjgyYjkwZjRkMDViOTQyNWUwZi4uNDBlN2EwYzI1NjAz
NzEzNTljYWVkZGZkZDUzOTIwNWVkMTU4N2U5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RSZWNvcmRlci5oCkBAIC0xNDQsMTAgKzE0NCw2IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFs
IGJvb2wgcmVjb3JkUmVzb3VyY2VVc2UoY29uc3QgU291cmNlSW1hZ2UmKSA9IDA7CiAgICAgdmly
dHVhbCBib29sIHJlY29yZFJlc291cmNlVXNlKEZvbnQmKSA9IDA7CiAKLSAgICAvLyBGSVhNRTog
TWF5YmUgcmVtb3ZlIHRoaXM/Ci0gICAgdmlydHVhbCBib29sIGNhbkRyYXdJbWFnZUJ1ZmZlcihj
b25zdCBJbWFnZUJ1ZmZlciYpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFJlbmRlcmluZ01vZGUg
cmVuZGVyaW5nTW9kZSgpIGNvbnN0ID0gMDsKLQogICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRy
PEdyYXBoaWNzQ29udGV4dD4gY3JlYXRlTmVzdGVkQ29udGV4dChjb25zdCBGbG9hdFJlY3QmIGlu
aXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0pID0gMDsKIAogICAg
IHN0cnVjdCBDb250ZXh0U3RhdGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVySW1wbC5jcHAKaW5kZXggZmU1MTU1OGQ3ODIzNTM0MTlhNjRjOWE3ZjliODk3OTAzYWE2
ZjlhNC4uM2VjYmM3YmEzMzM1ZmM3YmJhYmY5MGUxNDdkYzNiYTkzNGY2NDg2NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3BwCkBAIC00MiwxMCArNDIs
OSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKIAotUmVj
b3JkZXJJbXBsOjpSZWNvcmRlckltcGwoRGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBjb25zdCBH
cmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUsIGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAs
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5pdGlhbENUTSwgRGVsZWdhdGUqIGRlbGVnYXRlLCBE
cmF3R2x5cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0RHJhd0dseXBocyBkZWNvbnN0cnVjdERyYXdH
bHlwaHMpCitSZWNvcmRlckltcGw6OlJlY29yZGVySW1wbChEaXNwbGF5TGlzdCYgZGlzcGxheUxp
c3QsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwgY29uc3QgRmxvYXRSZWN0JiBp
bml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNLCBEcmF3R2x5cGhz
UmVjb3JkZXI6OkRlY29uc3RydWN0RHJhd0dseXBocyBkZWNvbnN0cnVjdERyYXdHbHlwaHMpCiAg
ICAgOiBSZWNvcmRlcihzdGF0ZSwgaW5pdGlhbENsaXAsIGluaXRpYWxDVE0sIGRlY29uc3RydWN0
RHJhd0dseXBocykKICAgICAsIG1fZGlzcGxheUxpc3QoZGlzcGxheUxpc3QpCi0gICAgLCBtX2Rl
bGVnYXRlKGRlbGVnYXRlKQogewogICAgIExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGlzdHMsIHN0
cmVhbSA8PCAiXG5SZWNvcmRpbmcgd2l0aCBjbGlwICIgPDwgaW5pdGlhbENsaXApOwogfQpAQCAt
NTMsNyArNTIsNiBAQCBSZWNvcmRlckltcGw6OlJlY29yZGVySW1wbChEaXNwbGF5TGlzdCYgZGlz
cGxheUxpc3QsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJgogUmVjb3JkZXJJbXBsOjpSZWNv
cmRlckltcGwoUmVjb3JkZXJJbXBsJiBwYXJlbnQsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRl
JiBzdGF0ZSwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiBpbml0aWFsQ1RNKQogICAgIDogUmVjb3JkZXIocGFyZW50LCBzdGF0ZSwgaW5pdGlhbENs
aXAsIGluaXRpYWxDVE0pCiAgICAgLCBtX2Rpc3BsYXlMaXN0KHBhcmVudC5tX2Rpc3BsYXlMaXN0
KQotICAgICwgbV9kZWxlZ2F0ZShwYXJlbnQubV9kZWxlZ2F0ZSkKICAgICAsIG1faXNOZXN0ZWQo
dHJ1ZSkKIHsKIH0KQEAgLTc1LDIxICs3Myw2IEBAIHZvaWQgUmVjb3JkZXJJbXBsOjpwdXRQaXhl
bEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIsIGNvbnN0IEludFJlY3QmCiAg
ICAgYXBwZW5kPFB1dFBpeGVsQnVmZmVyPihwaXhlbEJ1ZmZlciwgc3JjUmVjdCwgZGVzdFBvaW50
LCBkZXN0Rm9ybWF0KTsKIH0KIAotYm9vbCBSZWNvcmRlckltcGw6OmNhbkFwcGVuZEl0ZW1PZlR5
cGUoSXRlbVR5cGUgdHlwZSkgY29uc3QKLXsKLSAgICByZXR1cm4gIW1fZGVsZWdhdGUgfHwgbV9k
ZWxlZ2F0ZS0+Y2FuQXBwZW5kSXRlbU9mVHlwZSh0eXBlKTsKLX0KLQotYm9vbCBSZWNvcmRlcklt
cGw6OmNhbkRyYXdJbWFnZUJ1ZmZlcihjb25zdCBJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuICFtX2RlbGVnYXRlIHx8IG1fZGVsZWdhdGUtPmlzQ2FjaGVkSW1h
Z2VCdWZmZXIoaW1hZ2VCdWZmZXIpOwotfQotCi1SZW5kZXJpbmdNb2RlIFJlY29yZGVySW1wbDo6
cmVuZGVyaW5nTW9kZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZGVsZWdhdGUgPyBtX2RlbGVn
YXRlLT5yZW5kZXJpbmdNb2RlKCkgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkOwotfQot
CiBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0PiBSZWNvcmRlckltcGw6OmNyZWF0ZU5l
c3RlZENvbnRleHQoY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiBpbml0aWFsQ1RNKQogewogICAgIHJldHVybiBtYWtlVW5pcXVlPFJlY29yZGVySW1w
bD4oKnRoaXMsIEdyYXBoaWNzQ29udGV4dFN0YXRlIHsgfSwgaW5pdGlhbENsaXAsIGluaXRpYWxD
VE0pOwpAQCAtNDIxLDE4ICs0MDQsMTIgQEAgdm9pZCBSZWNvcmRlckltcGw6OnJlY29yZEFwcGx5
RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCiAKIGJvb2wgUmVjb3JkZXJJbXBs
OjpyZWNvcmRSZXNvdXJjZVVzZShOYXRpdmVJbWFnZSYgbmF0aXZlSW1hZ2UpCiB7Ci0gICAgaWYg
KG1fZGVsZWdhdGUpCi0gICAgICAgIG1fZGVsZWdhdGUtPnJlY29yZE5hdGl2ZUltYWdlVXNlKG5h
dGl2ZUltYWdlKTsKICAgICBtX2Rpc3BsYXlMaXN0LmNhY2hlTmF0aXZlSW1hZ2UobmF0aXZlSW1h
Z2UpOwogICAgIHJldHVybiB0cnVlOwogfQogCiBib29sIFJlY29yZGVySW1wbDo6cmVjb3JkUmVz
b3VyY2VVc2UoSW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKQogewotICAgIGlmICghY2FuRHJhd0lt
YWdlQnVmZmVyKGltYWdlQnVmZmVyKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICht
X2RlbGVnYXRlKQotICAgICAgICBtX2RlbGVnYXRlLT5yZWNvcmRJbWFnZUJ1ZmZlclVzZShpbWFn
ZUJ1ZmZlcik7CiAgICAgbV9kaXNwbGF5TGlzdC5jYWNoZUltYWdlQnVmZmVyKGltYWdlQnVmZmVy
KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTQ1MCw4ICs0MjcsNiBAQCBib29sIFJlY29yZGVy
SW1wbDo6cmVjb3JkUmVzb3VyY2VVc2UoY29uc3QgU291cmNlSW1hZ2UmIGltYWdlKQogCiBib29s
IFJlY29yZGVySW1wbDo6cmVjb3JkUmVzb3VyY2VVc2UoRm9udCYgZm9udCkKIHsKLSAgICBpZiAo
bV9kZWxlZ2F0ZSkKLSAgICAgICAgbV9kZWxlZ2F0ZS0+cmVjb3JkRm9udFVzZShmb250KTsKICAg
ICBtX2Rpc3BsYXlMaXN0LmNhY2hlRm9udChmb250KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmgKaW5kZXggZWQ0NzEwYjNk
NjkwM2JlZDYyNjljZGJjNmIyNTdmNTdmZmY1ODhlYy4uOTI2YzMzYjMxMTEyMjU1ZWMzMmMyMjQ2
ZTMyOTE5ZTE4ZWNmNTQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXJJbXBsLmgKQEAgLTM1LDI1ICszNSwxMyBAQCBjbGFzcyBSZWNvcmRlckltcGwgOiBwdWJsaWMg
UmVjb3JkZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFJlY29yZGVySW1wbCk7CiBwdWJsaWM6Ci0gICAgY2xhc3MgRGVsZWdhdGU7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgUmVjb3JkZXJJbXBsKERpc3BsYXlMaXN0JiwgY29uc3QgR3JhcGhp
Y3NDb250ZXh0U3RhdGUmLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mLCBEZWxlZ2F0ZSogPSBudWxscHRyLCBEcmF3R2x5cGhzUmVjb3JkZXI6OkRl
Y29uc3RydWN0RHJhd0dseXBocyA9IERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3
R2x5cGhzOjpZZXMpOworICAgIFdFQkNPUkVfRVhQT1JUIFJlY29yZGVySW1wbChEaXNwbGF5TGlz
dCYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFs
Q2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgRHJhd0dseXBoc1JlY29yZGVyOjpEZWNvbnN0
cnVjdERyYXdHbHlwaHMgPSBEcmF3R2x5cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0RHJhd0dseXBo
czo6WWVzKTsKICAgICBSZWNvcmRlckltcGwoUmVjb3JkZXJJbXBsJiBwYXJlbnQsIGNvbnN0IEdy
YXBoaWNzQ29udGV4dFN0YXRlJiwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1
YWwgflJlY29yZGVySW1wbCgpOwogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4g
bV9kaXNwbGF5TGlzdC5pc0VtcHR5KCk7IH0KIAotICAgIGNsYXNzIERlbGVnYXRlIHsKLSAgICBw
dWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgfkRlbGVnYXRlKCkgeyB9Ci0gICAgICAgIHZpcnR1YWwg
Ym9vbCBjYW5BcHBlbmRJdGVtT2ZUeXBlKEl0ZW1UeXBlKSB7IHJldHVybiBmYWxzZTsgfQotICAg
ICAgICB2aXJ0dWFsIHZvaWQgcmVjb3JkTmF0aXZlSW1hZ2VVc2UoTmF0aXZlSW1hZ2UmKSB7IH0K
LSAgICAgICAgdmlydHVhbCBib29sIGlzQ2FjaGVkSW1hZ2VCdWZmZXIoY29uc3QgSW1hZ2VCdWZm
ZXImKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVjb3Jk
Rm9udFVzZShGb250JikgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZWNvcmRJbWFnZUJ1ZmZl
clVzZShJbWFnZUJ1ZmZlciYpIHsgfQotICAgICAgICB2aXJ0dWFsIFJlbmRlcmluZ01vZGUgcmVu
ZGVyaW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7
IH0KLSAgICB9OwotCiAgICAgdm9pZCBnZXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlckZv
cm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0KSBmaW5hbDsKICAg
ICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiwgY29uc3QgSW50UmVjdCYg
c3JjUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgQWxwaGFQcmVtdWx0aXBsaWNhdGlv
biBkZXN0Rm9ybWF0KSBmaW5hbDsKICAgICB2b2lkIGNvbnZlcnRUb0x1bWluYW5jZU1hc2soKSBm
aW5hbCB7IH0KQEAgLTYxLDEwICs0OSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGZsdXNoQ29udGV4
dChHcmFwaGljc0NvbnRleHRGbHVzaElkZW50aWZpZXIgaWRlbnRpZmllcikgZmluYWwgeyBhcHBl
bmQ8Rmx1c2hDb250ZXh0PihpZGVudGlmaWVyKTsgfQogCiBwcml2YXRlOgotICAgIC8vIEZJWE1F
OiBNYXliZSByZW1vdmUgdGhpcz8KLSAgICBib29sIGNhbkRyYXdJbWFnZUJ1ZmZlcihjb25zdCBJ
bWFnZUJ1ZmZlciYpIGNvbnN0IGZpbmFsOwotICAgIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9k
ZSgpIGNvbnN0IGZpbmFsOwotCiAgICAgdm9pZCByZWNvcmRTYXZlKCkgZmluYWw7CiAgICAgdm9p
ZCByZWNvcmRSZXN0b3JlKCkgZmluYWw7CiAgICAgdm9pZCByZWNvcmRUcmFuc2xhdGUoZmxvYXQg
eCwgZmxvYXQgeSkgZmluYWw7CkBAIC0xNDYsOSArMTMwLDYgQEAgcHJpdmF0ZToKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBULCBjbGFzcy4uLiBBcmdzPgogICAgIHZvaWQgYXBwZW5kKEFyZ3MmJi4u
LiBhcmdzKQogICAgIHsKLSAgICAgICAgaWYgKFVOTElLRUxZKCFjYW5BcHBlbmRJdGVtT2ZUeXBl
KFQ6Oml0ZW1UeXBlKSkpCi0gICAgICAgICAgICByZXR1cm47Ci0KICAgICAgICAgbV9kaXNwbGF5
TGlzdC5hcHBlbmQ8VD4oc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKIAogICAgICAgICBp
ZiBjb25zdGV4cHIgKFQ6OmlzRHJhd2luZ0l0ZW0pIHsKQEAgLTE2NiwxMCArMTQ3LDggQEAgcHJp
dmF0ZToKICAgICB9CiAKICAgICBGbG9hdFJlY3QgZXh0ZW50RnJvbUxvY2FsQm91bmRzKGNvbnN0
IEZsb2F0UmVjdCYpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2FuQXBwZW5kSXRl
bU9mVHlwZShJdGVtVHlwZSkgY29uc3Q7CiAKICAgICBEaXNwbGF5TGlzdCYgbV9kaXNwbGF5TGlz
dDsKLSAgICBEZWxlZ2F0ZSogbV9kZWxlZ2F0ZSB7IG51bGxwdHIgfTsKICAgICBib29sIG1faXNO
ZXN0ZWQgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5
ZXIuY3BwCmluZGV4IDZmMjJiMmM4NzE0MjBkZjBiNjk1NjM0M2ZiMDE5OTM2MzUyOGQ5MzYuLjk4
NmEzZWEyOWVlMjA2OTVhNTU5ZjM5MGM4MjZjNDc3YzgyOGVhYTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAKQEAgLTM3LDk1ICszNyw3MyBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKIAotUmVwbGF5ZXI6OlJlcGxheWVy
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0
LCBjb25zdCBSZXNvdXJjZUhlYXAqIHJlc291cmNlSGVhcCwgSW1hZ2VCdWZmZXIqIG1hc2tJbWFn
ZUJ1ZmZlciwgRGVsZWdhdGUqIGRlbGVnYXRlKQorUmVwbGF5ZXI6OlJlcGxheWVyKEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCwgY29uc3QgRGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBjb25zdCBS
ZXNvdXJjZUhlYXAqIHJlc291cmNlSGVhcCkKICAgICA6IG1fY29udGV4dChjb250ZXh0KQotICAg
ICwgbV9tYXNrSW1hZ2VCdWZmZXIobWFza0ltYWdlQnVmZmVyKQogICAgICwgbV9kaXNwbGF5TGlz
dChkaXNwbGF5TGlzdCkKICAgICAsIG1fcmVzb3VyY2VIZWFwKHJlc291cmNlSGVhcCA/ICpyZXNv
dXJjZUhlYXAgOiBtX2Rpc3BsYXlMaXN0LnJlc291cmNlSGVhcCgpKQotICAgICwgbV9kZWxlZ2F0
ZShkZWxlZ2F0ZSkKIHsKIH0KIAotUmVwbGF5ZXI6On5SZXBsYXllcigpID0gZGVmYXVsdDsKLQog
R3JhcGhpY3NDb250ZXh0JiBSZXBsYXllcjo6Y29udGV4dCgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fbWFza0ltYWdlQnVmZmVyID8gbV9tYXNrSW1hZ2VCdWZmZXItPmNvbnRleHQoKSA6IG1fY29u
dGV4dDsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgVD4KLWlubGluZSBzdGF0aWMgc3RkOjpvcHRpb25h
bDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGFwcGx5SW1hZ2VCdWZmZXJJdGVtKEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgUmVzb3VyY2VIZWFwJiByZXNvdXJjZUhlYXAsIEl0
ZW1IYW5kbGUgaXRlbSwgUmVwbGF5ZXI6OkRlbGVnYXRlKiBkZWxlZ2F0ZSkKK2lubGluZSBzdGF0
aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGFwcGx5SW1hZ2VC
dWZmZXJJdGVtKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgUmVzb3VyY2VIZWFwJiBy
ZXNvdXJjZUhlYXAsIEl0ZW1IYW5kbGUgaXRlbSkKIHsKICAgICBhdXRvJiBpbWFnZUJ1ZmZlckl0
ZW0gPSBpdGVtLmdldDxUPigpOwogICAgIGF1dG8gcmVzb3VyY2VJZGVudGlmaWVyID0gaW1hZ2VC
dWZmZXJJdGVtLmltYWdlQnVmZmVySWRlbnRpZmllcigpOwogICAgIGlmIChhdXRvKiBpbWFnZUJ1
ZmZlciA9IHJlc291cmNlSGVhcC5nZXRJbWFnZUJ1ZmZlcihyZXNvdXJjZUlkZW50aWZpZXIpKSB7
CiAgICAgICAgIGltYWdlQnVmZmVySXRlbS5hcHBseShjb250ZXh0LCAqaW1hZ2VCdWZmZXIpOwot
ICAgICAgICBpZiAoZGVsZWdhdGUpCi0gICAgICAgICAgICBkZWxlZ2F0ZS0+cmVjb3JkUmVzb3Vy
Y2VVc2UocmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ICAgICB9CiAgICAgcmV0dXJuIHJlc291cmNlSWRlbnRpZmllcjsKIH0KIAogdGVtcGxhdGU8Y2xh
c3MgVD4KLWlubGluZSBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXI+IGFwcGx5TmF0aXZlSW1hZ2VJdGVtKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29u
c3QgUmVzb3VyY2VIZWFwJiByZXNvdXJjZUhlYXAsIEl0ZW1IYW5kbGUgaXRlbSwgUmVwbGF5ZXI6
OkRlbGVnYXRlKiBkZWxlZ2F0ZSkKK2lubGluZSBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXI+IGFwcGx5TmF0aXZlSW1hZ2VJdGVtKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgY29uc3QgUmVzb3VyY2VIZWFwJiByZXNvdXJjZUhlYXAsIEl0ZW1IYW5kbGUg
aXRlbSkKIHsKICAgICBhdXRvJiBuYXRpdmVJbWFnZUl0ZW0gPSBpdGVtLmdldDxUPigpOwogICAg
IGF1dG8gcmVzb3VyY2VJZGVudGlmaWVyID0gbmF0aXZlSW1hZ2VJdGVtLmltYWdlSWRlbnRpZmll
cigpOwogICAgIGlmIChhdXRvKiBpbWFnZSA9IHJlc291cmNlSGVhcC5nZXROYXRpdmVJbWFnZShy
ZXNvdXJjZUlkZW50aWZpZXIpKSB7CiAgICAgICAgIG5hdGl2ZUltYWdlSXRlbS5hcHBseShjb250
ZXh0LCAqaW1hZ2UpOwotICAgICAgICBpZiAoZGVsZWdhdGUpCi0gICAgICAgICAgICBkZWxlZ2F0
ZS0+cmVjb3JkUmVzb3VyY2VVc2UocmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKICAgICB9CiAgICAgcmV0dXJuIHJlc291cmNlSWRlbnRpZmllcjsKIH0K
IAotaW5saW5lIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cj4gYXBwbHlTZXRTdGF0ZUl0ZW0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBSZXNv
dXJjZUhlYXAmIHJlc291cmNlSGVhcCwgSXRlbUhhbmRsZSBpdGVtLCBSZXBsYXllcjo6RGVsZWdh
dGUqIGRlbGVnYXRlKQoraW5saW5lIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcj4gYXBwbHlTZXRTdGF0ZUl0ZW0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBjb25zdCBSZXNvdXJjZUhlYXAmIHJlc291cmNlSGVhcCwgSXRlbUhhbmRsZSBpdGVtKQogewot
ICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBzdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlm
aWVyOwotICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBmaWxsUGF0dGVybkltYWdlSWRl
bnRpZmllcjsKICAgICBhdXRvJiBzZXRTdGF0ZUl0ZW0gPSBpdGVtLmdldDxTZXRTdGF0ZT4oKTsK
IAotICAgIGlmIChhdXRvJiBzdHJva2VQYXR0ZXJuID0gc2V0U3RhdGVJdGVtLnN0YXRlQ2hhbmdl
KCkubV9zdGF0ZS5zdHJva2VQYXR0ZXJuKSB7Ci0gICAgICAgIHN0cm9rZVBhdHRlcm5JbWFnZUlk
ZW50aWZpZXIgPSBzdHJva2VQYXR0ZXJuLT50aWxlSW1hZ2UoKS5pbWFnZUlkZW50aWZpZXIoKTsK
LSAgICAgICAgYXV0byBzdHJva2VQYXR0ZXJuSW1hZ2UgPSByZXNvdXJjZUhlYXAuZ2V0U291cmNl
SW1hZ2Uoc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcik7Ci0gICAgICAgIGlmICghc3Ryb2tl
UGF0dGVybkltYWdlKQotICAgICAgICAgICAgcmV0dXJuIHN0cm9rZVBhdHRlcm5JbWFnZUlkZW50
aWZpZXI7CisgICAgYXV0byBmaXhQYXR0ZXJuVGlsZUltYWdlID0gWyZdKFBhdHRlcm4qIHBhdHRl
cm4pIC0+IHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiB7CisgICAg
ICAgIGF1dG8gaW1hZ2VJZGVudGlmaWVyID0gcGF0dGVybi0+dGlsZUltYWdlKCkuaW1hZ2VJZGVu
dGlmaWVyKCk7CisgICAgICAgIGF1dG8gc291cmNlSW1hZ2UgPSByZXNvdXJjZUhlYXAuZ2V0U291
cmNlSW1hZ2UoaW1hZ2VJZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKCFzb3VyY2VJbWFnZSkKKyAg
ICAgICAgICAgIHJldHVybiBpbWFnZUlkZW50aWZpZXI7CiAKLSAgICAgICAgc3Ryb2tlUGF0dGVy
bi0+c2V0VGlsZUltYWdlKFdURk1vdmUoKnN0cm9rZVBhdHRlcm5JbWFnZSkpOwotICAgIH0KKyAg
ICAgICAgcGF0dGVybi0+c2V0VGlsZUltYWdlKFdURk1vdmUoKnNvdXJjZUltYWdlKSk7CisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKIAotICAgIGlmIChhdXRvJiBmaWxsUGF0
dGVybiA9IHNldFN0YXRlSXRlbS5zdGF0ZUNoYW5nZSgpLm1fc3RhdGUuZmlsbFBhdHRlcm4pIHsK
LSAgICAgICAgZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZpZXIgPSBmaWxsUGF0dGVybi0+dGlsZUlt
YWdlKCkuaW1hZ2VJZGVudGlmaWVyKCk7Ci0gICAgICAgIGF1dG8gZmlsbFBhdHRlcm5JbWFnZSA9
IHJlc291cmNlSGVhcC5nZXRTb3VyY2VJbWFnZShmaWxsUGF0dGVybkltYWdlSWRlbnRpZmllcik7
Ci0gICAgICAgIGlmICghZmlsbFBhdHRlcm5JbWFnZSkKLSAgICAgICAgICAgIHJldHVybiBmaWxs
UGF0dGVybkltYWdlSWRlbnRpZmllcjsKKyAgICBpZiAoYXV0byBpbWFnZUlkZW50aWZpZXIgPSBm
aXhQYXR0ZXJuVGlsZUltYWdlKHNldFN0YXRlSXRlbS5zdGF0ZUNoYW5nZSgpLm1fc3RhdGUuc3Ry
b2tlUGF0dGVybi5nZXQoKSkpCisgICAgICAgIHJldHVybiAqaW1hZ2VJZGVudGlmaWVyOwogCi0g
ICAgICAgIGZpbGxQYXR0ZXJuLT5zZXRUaWxlSW1hZ2UoV1RGTW92ZSgqZmlsbFBhdHRlcm5JbWFn
ZSkpOwotICAgIH0KKyAgICBpZiAoYXV0byBpbWFnZUlkZW50aWZpZXIgPSBmaXhQYXR0ZXJuVGls
ZUltYWdlKHNldFN0YXRlSXRlbS5zdGF0ZUNoYW5nZSgpLm1fc3RhdGUuZmlsbFBhdHRlcm4uZ2V0
KCkpKQorICAgICAgICByZXR1cm4gaW1hZ2VJZGVudGlmaWVyOwogCiAgICAgc2V0U3RhdGVJdGVt
LmFwcGx5KGNvbnRleHQpOwotCi0gICAgaWYgKCFkZWxlZ2F0ZSkKLSAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKLQotICAgIGlmIChzdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyKQotICAg
ICAgICBkZWxlZ2F0ZS0+cmVjb3JkUmVzb3VyY2VVc2Uoc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRp
Zmllcik7Ci0gICAgaWYgKGZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyKQotICAgICAgICBkZWxl
Z2F0ZS0+cmVjb3JkUmVzb3VyY2VVc2UoZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZpZXIpOwogICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIFQ+Ci1pbmxpbmUgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBhcHBseUZvbnRJ
dGVtKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgUmVzb3VyY2VIZWFwJiByZXNvdXJj
ZUhlYXAsIEl0ZW1IYW5kbGUgaXRlbSwgUmVwbGF5ZXI6OkRlbGVnYXRlKiBkZWxlZ2F0ZSkKK2lu
bGluZSBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGFw
cGx5Rm9udEl0ZW0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZUhlYXAm
IHJlc291cmNlSGVhcCwgSXRlbUhhbmRsZSBpdGVtKQogewogICAgIGF1dG8mIGZvbnRJdGVtID0g
aXRlbS5nZXQ8VD4oKTsKICAgICBhdXRvIHJlc291cmNlSWRlbnRpZmllciA9IGZvbnRJdGVtLmZv
bnRJZGVudGlmaWVyKCk7CiAgICAgaWYgKGF1dG8qIGZvbnQgPSByZXNvdXJjZUhlYXAuZ2V0Rm9u
dChyZXNvdXJjZUlkZW50aWZpZXIpKSB7CiAgICAgICAgIGZvbnRJdGVtLmFwcGx5KGNvbnRleHQs
ICpmb250KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlKQotICAgICAgICAgICAgZGVsZWdhdGUtPnJl
Y29yZFJlc291cmNlVXNlKHJlc291cmNlSWRlbnRpZmllcik7CiAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CiAgICAgfQogICAgIHJldHVybiByZXNvdXJjZUlkZW50aWZpZXI7CkBAIC0xMzMs
NDEgKzExMSwzOCBAQCBpbmxpbmUgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyPiBhcHBseUZvbnRJdGVtKEdyYXBoaWNzQwogCiBzdGQ6OnBhaXI8c3RkOjpv
cHRpb25hbDxTdG9wUmVwbGF5UmVhc29uPiwgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXI+PiBSZXBsYXllcjo6YXBwbHlJdGVtKEl0ZW1IYW5kbGUgaXRlbSkKIHsKLSAg
ICBpZiAobV9kZWxlZ2F0ZSAmJiBtX2RlbGVnYXRlLT5hcHBseShpdGVtLCBjb250ZXh0KCkpKQot
ICAgICAgICByZXR1cm4geyBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9OwotCiAgICAgaWYg
KGl0ZW0uaXM8RHJhd0ltYWdlQnVmZmVyPigpKSB7Ci0gICAgICAgIGlmIChhdXRvIG1pc3NpbmdD
YWNoZWRSZXNvdXJjZUlkZW50aWZpZXIgPSBhcHBseUltYWdlQnVmZmVySXRlbTxEcmF3SW1hZ2VC
dWZmZXI+KGNvbnRleHQoKSwgbV9yZXNvdXJjZUhlYXAsIGl0ZW0sIG1fZGVsZWdhdGUpKQorICAg
ICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBwbHlJbWFn
ZUJ1ZmZlckl0ZW08RHJhd0ltYWdlQnVmZmVyPihjb250ZXh0KCksIG1fcmVzb3VyY2VIZWFwLCBp
dGVtKSkKICAgICAgICAgICAgIHJldHVybiB7IFN0b3BSZXBsYXlSZWFzb246Ok1pc3NpbmdDYWNo
ZWRSZXNvdXJjZSwgV1RGTW92ZShtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyKSB9Owog
ICAgICAgICByZXR1cm4geyBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9OwogICAgIH0KIAog
ICAgIGlmIChpdGVtLmlzPENsaXBUb0ltYWdlQnVmZmVyPigpKSB7Ci0gICAgICAgIGlmIChhdXRv
IG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIgPSBhcHBseUltYWdlQnVmZmVySXRlbTxD
bGlwVG9JbWFnZUJ1ZmZlcj4oY29udGV4dCgpLCBtX3Jlc291cmNlSGVhcCwgaXRlbSwgbV9kZWxl
Z2F0ZSkpCisgICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIg
PSBhcHBseUltYWdlQnVmZmVySXRlbTxDbGlwVG9JbWFnZUJ1ZmZlcj4oY29udGV4dCgpLCBtX3Jl
c291cmNlSGVhcCwgaXRlbSkpCiAgICAgICAgICAgICByZXR1cm4geyBTdG9wUmVwbGF5UmVhc29u
OjpNaXNzaW5nQ2FjaGVkUmVzb3VyY2UsIFdURk1vdmUobWlzc2luZ0NhY2hlZFJlc291cmNlSWRl
bnRpZmllcikgfTsKICAgICAgICAgcmV0dXJuIHsgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQg
fTsKICAgICB9CiAKICAgICBpZiAoaXRlbS5pczxEcmF3TmF0aXZlSW1hZ2U+KCkpIHsKLSAgICAg
ICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9IGFwcGx5TmF0aXZl
SW1hZ2VJdGVtPERyYXdOYXRpdmVJbWFnZT4oY29udGV4dCgpLCBtX3Jlc291cmNlSGVhcCwgaXRl
bSwgbV9kZWxlZ2F0ZSkpCisgICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlk
ZW50aWZpZXIgPSBhcHBseU5hdGl2ZUltYWdlSXRlbTxEcmF3TmF0aXZlSW1hZ2U+KGNvbnRleHQo
KSwgbV9yZXNvdXJjZUhlYXAsIGl0ZW0pKQogICAgICAgICAgICAgcmV0dXJuIHsgU3RvcFJlcGxh
eVJlYXNvbjo6TWlzc2luZ0NhY2hlZFJlc291cmNlLCBXVEZNb3ZlKG1pc3NpbmdDYWNoZWRSZXNv
dXJjZUlkZW50aWZpZXIpIH07CiAgICAgICAgIHJldHVybiB7IHN0ZDo6bnVsbG9wdCwgc3RkOjpu
dWxsb3B0IH07CiAgICAgfQogCiAgICAgaWYgKGl0ZW0uaXM8RHJhd0dseXBocz4oKSkgewotICAg
ICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBwbHlGb250
SXRlbTxEcmF3R2x5cGhzPihjb250ZXh0KCksIG1fcmVzb3VyY2VIZWFwLCBpdGVtLCBtX2RlbGVn
YXRlKSkKKyAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9
IGFwcGx5Rm9udEl0ZW08RHJhd0dseXBocz4oY29udGV4dCgpLCBtX3Jlc291cmNlSGVhcCwgaXRl
bSkpCiAgICAgICAgICAgICByZXR1cm4geyBTdG9wUmVwbGF5UmVhc29uOjpNaXNzaW5nQ2FjaGVk
UmVzb3VyY2UsIFdURk1vdmUobWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllcikgfTsKICAg
ICAgICAgcmV0dXJuIHsgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfTsKICAgICB9CiAKICAg
ICBpZiAoaXRlbS5pczxEcmF3UGF0dGVybj4oKSkgewotICAgICAgICBpZiAoYXV0byBtaXNzaW5n
Q2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBwbHlOYXRpdmVJbWFnZUl0ZW08RHJhd1BhdHRl
cm4+KGNvbnRleHQoKSwgbV9yZXNvdXJjZUhlYXAsIGl0ZW0sIG1fZGVsZWdhdGUpKQorICAgICAg
ICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBwbHlOYXRpdmVJ
bWFnZUl0ZW08RHJhd1BhdHRlcm4+KGNvbnRleHQoKSwgbV9yZXNvdXJjZUhlYXAsIGl0ZW0pKQog
ICAgICAgICAgICAgcmV0dXJuIHsgU3RvcFJlcGxheVJlYXNvbjo6TWlzc2luZ0NhY2hlZFJlc291
cmNlLCBXVEZNb3ZlKG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIpIH07CiAgICAgICAg
IHJldHVybiB7IHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0IH07CiAgICAgfQogCiAgICAgaWYg
KGl0ZW0uaXM8U2V0U3RhdGU+KCkpIHsKLSAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJl
c291cmNlSWRlbnRpZmllciA9IGFwcGx5U2V0U3RhdGVJdGVtKGNvbnRleHQoKSwgbV9yZXNvdXJj
ZUhlYXAsIGl0ZW0sIG1fZGVsZWdhdGUpKQorICAgICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVk
UmVzb3VyY2VJZGVudGlmaWVyID0gYXBwbHlTZXRTdGF0ZUl0ZW0oY29udGV4dCgpLCBtX3Jlc291
cmNlSGVhcCwgaXRlbSkpCiAgICAgICAgICAgICByZXR1cm4geyBTdG9wUmVwbGF5UmVhc29uOjpN
aXNzaW5nQ2FjaGVkUmVzb3VyY2UsIFdURk1vdmUobWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRp
ZmllcikgfTsKICAgICAgICAgcmV0dXJuIHsgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfTsK
ICAgICB9CkBAIC0xNzksOCArMTU0LDYgQEAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8U3RvcFJl
cGxheVJlYXNvbj4sIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGkKICAgICAg
ICAgbV9tYXNrSW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZl
cihjbGlwSXRlbS5kZXN0aW5hdGlvbigpLnNpemUoKSwgY2xpcEl0ZW0uY29sb3JTcGFjZSgpLCBt
X2NvbnRleHQpOwogICAgICAgICBpZiAoIW1fbWFza0ltYWdlQnVmZmVyKQogICAgICAgICAgICAg
cmV0dXJuIHsgU3RvcFJlcGxheVJlYXNvbjo6T3V0T2ZNZW1vcnksIHN0ZDo6bnVsbG9wdCB9Owot
ICAgICAgICBpZiAobV9kZWxlZ2F0ZSkKLSAgICAgICAgICAgIG1fZGVsZWdhdGUtPmRpZENyZWF0
ZU1hc2tJbWFnZUJ1ZmZlcigqbV9tYXNrSW1hZ2VCdWZmZXIpOwogICAgICAgICByZXR1cm4geyBz
dGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9OwogICAgIH0KIApAQCAtMTkwLDggKzE2Myw2IEBA
IHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFN0b3BSZXBsYXlSZWFzb24+LCBzdGQ6Om9wdGlvbmFs
PFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpCiAgICAgICAgIGF1dG8mIGNsaXBJdGVtID0gaXRlbS5n
ZXQ8RW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzPigpOwogICAgICAgICBtX2NvbnRleHQuY2xpcFRv
SW1hZ2VCdWZmZXIoKm1fbWFza0ltYWdlQnVmZmVyLCBjbGlwSXRlbS5kZXN0aW5hdGlvbigpKTsK
ICAgICAgICAgbV9tYXNrSW1hZ2VCdWZmZXIgPSBudWxscHRyOwotICAgICAgICBpZiAobV9kZWxl
Z2F0ZSkKLSAgICAgICAgICAgIG1fZGVsZWdhdGUtPmRpZFJlc2V0TWFza0ltYWdlQnVmZmVyKCk7
CiAgICAgICAgIHJldHVybiB7IHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0IH07CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZXBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaAppbmRleCA5Mjg1YmJkZDEwMDQ4
YzJhZWY5YmZkZDM5ZTIwYWUxYzYzM2Q1YzdjLi5iZGIzNTVhNzhlYWY0YzBmZmEwZGJhY2JiOTU1
YjljMThhMmVjYTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmgKQEAg
LTMxLDcgKzMxLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIEFscGhh
UHJlbXVsdGlwbGljYXRpb24gOiB1aW50OF90OwogY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgR3Jh
cGhpY3NDb250ZXh0OwogCkBAIC01OCwzMCArNTcsMTkgQEAgc3RydWN0IFJlcGxheVJlc3VsdCB7
CiBjbGFzcyBSZXBsYXllciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVwbGF5ZXIpOwog
cHVibGljOgotICAgIGNsYXNzIERlbGVnYXRlOwotICAgIFdFQkNPUkVfRVhQT1JUIFJlcGxheWVy
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IERpc3BsYXlMaXN0JiwgY29uc3QgUmVzb3VyY2VIZWFw
KiA9IG51bGxwdHIsIFdlYkNvcmU6OkltYWdlQnVmZmVyKiBtYXNrSW1hZ2VCdWZmZXIgPSBudWxs
cHRyLCBEZWxlZ2F0ZSogPSBudWxscHRyKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB+UmVwbGF5ZXIo
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZXBsYXllcihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBE
aXNwbGF5TGlzdCYsIGNvbnN0IFJlc291cmNlSGVhcCogPSBudWxscHRyKTsKKyAgICB+UmVwbGF5
ZXIoKSA9IGRlZmF1bHQ7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBSZXBsYXlSZXN1bHQgcmVwbGF5
KGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAgPSB7IH0sIGJvb2wgdHJhY2tSZXBsYXlMaXN0
ID0gZmFsc2UpOwogCi0gICAgY2xhc3MgRGVsZWdhdGUgewotICAgIHB1YmxpYzoKLSAgICAgICAg
dmlydHVhbCB+RGVsZWdhdGUoKSB7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGFwcGx5KEl0ZW1I
YW5kbGUsIEdyYXBoaWNzQ29udGV4dCYpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIHZpcnR1
YWwgdm9pZCBkaWRDcmVhdGVNYXNrSW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImKSB7
IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlc2V0TWFza0ltYWdlQnVmZmVyKCkgeyB9Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCByZWNvcmRSZXNvdXJjZVVzZShSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpIHsgfQotICAgIH07Ci0gICAgCiBwcml2YXRlOgogICAgIEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCgpIGNvbnN0OwogICAgIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFN0b3BSZXBs
YXlSZWFzb24+LCBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4+IGFw
cGx5SXRlbShJdGVtSGFuZGxlKTsKIAogICAgIEdyYXBoaWNzQ29udGV4dCYgbV9jb250ZXh0Owot
ICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gbV9tYXNrSW1hZ2VCdWZmZXI7CiAgICAg
Y29uc3QgRGlzcGxheUxpc3QmIG1fZGlzcGxheUxpc3Q7CiAgICAgY29uc3QgUmVzb3VyY2VIZWFw
JiBtX3Jlc291cmNlSGVhcDsKLSAgICBEZWxlZ2F0ZSogbV9kZWxlZ2F0ZTsKKyAgICBSZWZQdHI8
V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IG1fbWFza0ltYWdlQnVmZmVyOwogfTsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCmluZGV4IDg1NzIzYzM4M2Q0
N2U0YWZjMjUzZTMxNWQ4NGIyMjJhODQzMTcyN2MuLjlkMzQzZmE5YWM0OTRiYWM1ZWE0Y2FkZDAx
MTliMDBjZTJjODY3NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eS5jcHAKQEAgLTgwLDExICs4MCw2IEBAIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5Ojp0cmFuc2Zvcm1Ub0NvbG9yU3BhY2UoY29uc3QgV2ViQ29yZTo6RGVzdGluCiAgICAg
c2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6VHJhbnNmb3JtVG9Db2xv
clNwYWNlKGNvbG9yU3BhY2UpKTsKIH0KIAotYm9vbCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6OmNhbkRyYXdJbWFnZUJ1ZmZlcihjb25zdCBJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcmVuZGVyaW5nQmFja2VuZCAmJiBtX3JlbmRlcmluZ0Jh
Y2tlbmQtPmlzQ2FjaGVkKGltYWdlQnVmZmVyKTsKLX0KLQogUmVuZGVyaW5nTW9kZSBSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlbmRlcmluZ01vZGUoKSBjb25zdAogewogICAgIHJl
dHVybiBtX2ltYWdlQnVmZmVyID8gbV9pbWFnZUJ1ZmZlci0+cmVuZGVyaW5nTW9kZSgpIDogUmVu
ZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZDsKQEAgLTQzMCw3ICs0MjUsNyBAQCBib29sIFJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkUmVzb3VyY2VVc2UoSW1hZ2VCdWZmZXIm
IGltYWdlQnVmZmVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKCFj
YW5EcmF3SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIpKQorICAgIGlmICghbV9yZW5kZXJpbmdCYWNr
ZW5kLT5pc0NhY2hlZChpbWFnZUJ1ZmZlcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IG1fcmVuZGVyaW5nQmFja2VuZC0+cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkucmVjb3JkSW1h
Z2VCdWZmZXJVc2UoaW1hZ2VCdWZmZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlclByb3h5LmgKaW5kZXggYTQxOGVmMmZiMDNlYjNlMjIxY2NkN2Y1YTY0MTU0ODJkNzFjMzQ2
YS4uMzAwOThiZWE2MWMxYjY0NGU0MjBhY2EzMzM5ZjkwNDQ5MWU0YjdmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oCkBAIC02Niw3ICs2Niw2IEBAIHByaXZh
dGU6CiAKICAgICBmcmllbmQgY2xhc3MgV2ViQ29yZTo6RHJhd0dseXBoc1JlY29yZGVyOwogCi0g
ICAgYm9vbCBjYW5EcmF3SW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6SW1hZ2VCdWZmZXImKSBj
b25zdCBmaW5hbDsKICAgICBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUoKSBj
b25zdCBmaW5hbDsKIAogICAgIHZvaWQgcmVjb3JkU2F2ZSgpIGZpbmFsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450503</attachid>
            <date>2022-01-31 23:47:06 -0800</date>
            <delta_ts>2022-02-01 01:24:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235939-20220131234705.patch</filename>
            <type>text/plain</type>
            <size>32595</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4ODY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTE0ZjM5ZWQzZWE4MWVl
MjgwOTAxZjY1Y2IyZGZlYTcxZTVjNWE2NC4uOTc2MzA5ZDFjYTk1Y2IyMzkzMTI2NTBmNzJiMzY2
NTRkOWZkMGNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIyLTAxLTMxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
UmVtb3ZlIERpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGUgYW5kIERpc3BsYXlMaXN0OjpS
ZWNvcmRlckltcGw6OkRlbGVnYXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzU5MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGVzZSBjbGFzc2VzIGFyZSBhYnN0cmFjdCBjbGFzc2VzIGFuZCB0aGV5
IGFyZSBub3Qgb3ZlcnJpZGRlbiBieSBhbnkKKyAgICAgICAgY2xpZW50IHJpZ2h0IG5vdy4gVGhl
c2UgdW51c2VkIGNsYXNzZXMgc2hvdWxkIGJlIHJlbW92ZWQgYWZ0ZXIgdGhlIGRpc3BsYXkKKyAg
ICAgICAgbGlzdCBzdHJlYW0gY29ubmVjdGlvbiByZWZhY3RvcmluZy4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
YXNjYWRlOjpkaXNwbGF5TGlzdEZvclRleHRSdW4gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6
Y2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcjo6cHJlcGFyZVRvQXBwZW5kRGlzcGxheUxpc3RJdGVtcyk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJh
d2luZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdpbmdD
b250ZXh0OjpEcmF3aW5nQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEcmF3aW5nQ29udGV4dDo6RHJhd2luZ0NvbnRleHQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZWNvcmRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdFJlY29yZGVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
UmVjb3JkZXJJbXBsOjpSZWNvcmRlckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVySW1wbDo6cmVjb3JkUmVzb3VyY2VVc2UpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6Y2FuQXBwZW5kSXRlbU9mVHlwZSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXJJbXBsOjpjYW5E
cmF3SW1hZ2VCdWZmZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OlJlY29yZGVySW1wbDo6cmVuZGVyaW5nTW9kZSBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJ
bXBsLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXJJbXBsOjphcHBl
bmQpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6RGVsZWdh
dGU6On5EZWxlZ2F0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
UmVjb3JkZXJJbXBsOjpEZWxlZ2F0ZTo6Y2FuQXBwZW5kSXRlbU9mVHlwZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXJJbXBsOjpEZWxlZ2F0ZTo6cmVj
b3JkTmF0aXZlSW1hZ2VVc2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVySW1wbDo6RGVsZWdhdGU6OmlzQ2FjaGVkSW1hZ2VCdWZmZXIgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6RGVs
ZWdhdGU6OnJlY29yZEZvbnRVc2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OlJlY29yZGVySW1wbDo6RGVsZWdhdGU6OnJlY29yZEltYWdlQnVmZmVyVXNlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlckltcGw6OkRlbGVn
YXRlOjpyZW5kZXJpbmdNb2RlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVwbGF5ZXI6OlJlcGxheWVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjphcHBseUltYWdlQnVmZmVySXRlbSk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6YXBwbHlOYXRpdmVJbWFnZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OmFwcGx5U2V0U3RhdGVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjphcHBseUZvbnRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpS
ZXBsYXllcjo6YXBwbHlJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlcGxheWVyOjpEZWxlZ2F0ZTo6fkRlbGVnYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGU6OmFwcGx5KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGU6OmRpZENy
ZWF0ZU1hc2tJbWFnZUJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6UmVwbGF5ZXI6OkRlbGVnYXRlOjpkaWRSZXNldE1hc2tJbWFnZUJ1ZmZlcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVwbGF5ZXI6OkRlbGVnYXRlOjpy
ZWNvcmRSZXNvdXJjZVVzZSk6IERlbGV0ZWQuCisKIDIwMjItMDEtMzEgIEJyZW50IEZ1bGdoYW0g
IDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGhhbmRsaW5nIG9mIGFjY2VzcyBr
ZXkgZXZlbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNhZjcyYjM4ZjQ0ZjAxNWYzNDQ0YzUyZmJkNWY2M2RkYWI2
NTRmMDEuLmY3M2NjOTcyZWMzOGZmMDc3MGM0ZjJkNjdlNmRhNTBmMTViZmQ2ODEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMjItMDEtMzEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBh
cHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBSZW1vdmUgRGlzcGxheUxpc3Q6OlJl
cGxheWVyOjpEZWxlZ2F0ZSBhbmQgRGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6RGVsZWdhdGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTkzOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRSZXNv
dXJjZVVzZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94
eTo6Y2FuRHJhd0ltYWdlQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaDoKKwogMjAy
Mi0wMS0zMSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBb
R1BVIFByb2Nlc3NdIFBhdHRlcm4gc2hvdWxkIGhvbGQgU291cmNlSW1hZ2Ugd2hpY2ggY2FuIGJl
IGNvbnZlcnRlZCB0byBhIE5hdGl2ZUltYWdlIG9ubHkgd2hlbiBuZWVkZWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcAppbmRleCAyYTc2MTM2
MmM4M2ZhNjg1YjUxYzZlZTA1MmM2YjEzNWMwMjVmOWEwLi4wOGQyZTY3ODJhMTM4MTU4MjgyMzIy
NThjODFkMjYwYmJkZGM1OWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udENhc2NhZGUuY3BwCkBAIC0yMTQsNyArMjE0LDcgQEAgc3RkOjp1bmlxdWVfcHRy
PERpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0PiBGb250Q2FzY2FkZTo6ZGlzcGxheUxp
c3RGb3JUZXgKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCiAgICAgc3RkOjp1bmlxdWVf
cHRyPERpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0PiBkaXNwbGF5TGlzdCA9IG1ha2VV
bmlxdWU8RGlzcGxheUxpc3Q6OkluTWVtb3J5RGlzcGxheUxpc3Q+KCk7Ci0gICAgRGlzcGxheUxp
c3Q6OlJlY29yZGVySW1wbCByZWNvcmRpbmdDb250ZXh0KCpkaXNwbGF5TGlzdCwgY29udGV4dC5z
dGF0ZSgpLCBGbG9hdFJlY3QoKSwgQWZmaW5lVHJhbnNmb3JtKCksIG51bGxwdHIsIERyYXdHbHlw
aHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzOjpObyk7CisgICAgRGlzcGxheUxpc3Q6
OlJlY29yZGVySW1wbCByZWNvcmRpbmdDb250ZXh0KCpkaXNwbGF5TGlzdCwgY29udGV4dC5zdGF0
ZSgpLCBGbG9hdFJlY3QoKSwgQWZmaW5lVHJhbnNmb3JtKCksIERyYXdHbHlwaHNSZWNvcmRlcjo6
RGVjb25zdHJ1Y3REcmF3R2x5cGhzOjpObyk7CiAgICAgCiAgICAgRmxvYXRQb2ludCBzdGFydFBv
aW50ID0gdG9GbG9hdFBvaW50KFdlYkNvcmU6OnNpemUoZ2x5cGhCdWZmZXIuaW5pdGlhbEFkdmFu
Y2UoKSkpOwogICAgIGRyYXdHbHlwaEJ1ZmZlcihyZWNvcmRpbmdDb250ZXh0LCBnbHlwaEJ1ZmZl
ciwgc3RhcnRQb2ludCwgY3VzdG9tRm9udE5vdFJlYWR5QWN0aW9uKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IGQyZDliZTllZjQwMzJm
YWEyNWJlNjJjYWNlNDM3ODJkZWZjYjc0MTUuLjRiNzFmMjM1M2M4ZDBjZDhlZGY0YWY1ZTU5MjZi
N2RlMjkyYzhhNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXIuaApAQCAtOTUsOSArOTUsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGZs
dXNoRHJhd2luZ0NvbnRleHRBc3luYygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRGbHVzaChH
cmFwaGljc0NvbnRleHRGbHVzaElkZW50aWZpZXIpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGNo
YW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXIoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSB7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvQXBwZW5kRGlzcGxheUxpc3RJdGVtcyhEaXNw
bGF5TGlzdDo6SXRlbUJ1ZmZlckhhbmRsZSYmKSB7IH0KLQogICAgIHZpcnR1YWwgRmxvYXRTaXpl
IGxvZ2ljYWxTaXplKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgSW50U2l6ZSB0cnVuY2F0ZWRM
b2dpY2FsU2l6ZSgpIGNvbnN0ID0gMDsgLy8gVGhpcyB0cnVuY2F0ZXMgdGhlIHJlYWwgc2l6ZS4g
WW91IHByb2JhYmx5IHNob3VsZCBiZSBjYWxsaW5nIGxvZ2ljYWxTaXplKCkgaW5zdGVhZC4KICAg
ICB2aXJ0dWFsIGZsb2F0IHJlc29sdXRpb25TY2FsZSgpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dERyYXdpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmNwcAppbmRleCAzNjJkNDM2NzUy
YWM3M2E5YmMzYjNjYzhjMDU2YWE0ZDdmMDdiMjQ1Li4wYzI1MjI2NGFmNDE2NjU2MjE3NTE2MDQx
MDQyYThiZGQzYmZhYmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJh
d2luZ0NvbnRleHQuY3BwCkBAIC0zMyw4ICszMyw4IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBu
YW1lc3BhY2UgRGlzcGxheUxpc3QgewogCi1EcmF3aW5nQ29udGV4dDo6RHJhd2luZ0NvbnRleHQo
Y29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0
aWFsQ1RNLCBSZWNvcmRlckltcGw6OkRlbGVnYXRlKiBkZWxlZ2F0ZSkKLSAgICA6IG1fY29udGV4
dChtX2Rpc3BsYXlMaXN0LCBHcmFwaGljc0NvbnRleHRTdGF0ZSgpLCBGbG9hdFJlY3QoeyB9LCBs
b2dpY2FsU2l6ZSksIGluaXRpYWxDVE0sIGRlbGVnYXRlKQorRHJhd2luZ0NvbnRleHQ6OkRyYXdp
bmdDb250ZXh0KGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgaW5pdGlhbENUTSkKKyAgICA6IG1fY29udGV4dChtX2Rpc3BsYXlMaXN0LCBHcmFwaGlj
c0NvbnRleHRTdGF0ZSgpLCBGbG9hdFJlY3QoeyB9LCBsb2dpY2FsU2l6ZSksIGluaXRpYWxDVE0p
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5o
CmluZGV4IDE3ZjIyZTkwM2VhNjBkMDllOTBlMjBjM2U5N2JjMTNiY2FjNzIzZGMuLmE3ODY0NmU4
YjJiYTMzNGJjYTI2MTMwZmQ0MmI5OTIxNDhkNGY2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBJbk1l
bW9yeURpc3BsYXlMaXN0OwogY2xhc3MgRHJhd2luZ0NvbnRleHQgewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIERyYXdpbmdDb250ZXh0
KGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5p
dGlhbENUTSA9IHsgfSwgUmVjb3JkZXJJbXBsOjpEZWxlZ2F0ZSogPSBudWxscHRyKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBEcmF3aW5nQ29udGV4dChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXpl
LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0gPSB7IH0pOwogCiAgICAgR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxEcmF3aW5nQ29u
dGV4dCY+KCp0aGlzKS5tX2NvbnRleHQ7IH0KICAgICBSZWNvcmRlckltcGwmIHJlY29yZGVyKCkg
eyByZXR1cm4gbV9jb250ZXh0OyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdl
QnVmZmVyLmgKaW5kZXggN2VhMmExNGM3OGYzODVmYTdlZmQ5OTY1YjllMmMyZDlkNTAwMjEwMC4u
ZThmNjhhMzczZGJlZDkyODI1NmUxZjI5YzNmMmVkNjk3YjM2NmFjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1h
Z2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCkBAIC02MCw5ICs2MCw5IEBAIHB1YmxpYzoK
ICAgICAgICAgbV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpLnNldEl0ZW1CdWZmZXJSZWFk
aW5nQ2xpZW50KG1fcmVhZGluZ0NsaWVudC5nZXQoKSk7CiAgICAgfQogCi0gICAgSW1hZ2VCdWZm
ZXIoY29uc3QgSW1hZ2VCdWZmZXJCYWNrZW5kOjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBSZWNv
cmRlckltcGw6OkRlbGVnYXRlKiBkZWxlZ2F0ZSA9IG51bGxwdHIpCisgICAgSW1hZ2VCdWZmZXIo
Y29uc3QgSW1hZ2VCdWZmZXJCYWNrZW5kOjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgICAg
ICA6IEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyKHBhcmFtZXRlcnMpCi0gICAgICAgICwgbV9kcmF3
aW5nQ29udGV4dChsb2dpY2FsU2l6ZSgpLCBiYXNlVHJhbnNmb3JtKCksIGRlbGVnYXRlKQorICAg
ICAgICAsIG1fZHJhd2luZ0NvbnRleHQobG9naWNhbFNpemUoKSwgYmFzZVRyYW5zZm9ybSgpKQog
ICAgICAgICAsIG1fd3JpdGluZ0NsaWVudChtYWtlVW5pcXVlPEluTWVtb3J5RGlzcGxheUxpc3Q6
OldyaXRpbmdDbGllbnQ+KCkpCiAgICAgICAgICwgbV9yZWFkaW5nQ2xpZW50KG1ha2VVbmlxdWU8
SW5NZW1vcnlEaXNwbGF5TGlzdDo6UmVhZGluZ0NsaWVudD4oKSkKICAgICB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCA5YjJiMGI5Mzc5MDFkODY1MTE2MWViODJi
OTBmNGQwNWI5NDI1ZTBmLi40MGU3YTBjMjU2MDM3MTM1OWNhZWRkZmRkNTM5MjA1ZWQxNTg3ZTk4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTE0NCwxMCArMTQ0
LDYgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCByZWNvcmRSZXNvdXJjZVVzZShjb25z
dCBTb3VyY2VJbWFnZSYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgcmVjb3JkUmVzb3VyY2VVc2Uo
Rm9udCYpID0gMDsKIAotICAgIC8vIEZJWE1FOiBNYXliZSByZW1vdmUgdGhpcz8KLSAgICB2aXJ0
dWFsIGJvb2wgY2FuRHJhd0ltYWdlQnVmZmVyKGNvbnN0IEltYWdlQnVmZmVyJikgY29uc3QgPSAw
OwotICAgIHZpcnR1YWwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKCkgY29uc3QgPSAwOwot
CiAgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0PiBjcmVhdGVOZXN0
ZWRDb250ZXh0KGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgaW5pdGlhbENUTSkgPSAwOwogCiAgICAgc3RydWN0IENvbnRleHRTdGF0ZSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZWNvcmRlckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmNwcAppbmRleCBmZTUxNTU4
ZDc4MjM1MzQxOWE2NGM5YTdmOWI4OTc5MDNhYTZmOWE0Li4zZWNiYzdiYTMzMzVmYzdiYmFiZjkw
ZTE0N2RjM2JhOTM0ZjY0ODY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVySW1wbC5jcHAKQEAgLTQyLDEwICs0Miw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBu
YW1lc3BhY2UgRGlzcGxheUxpc3QgewogCi1SZWNvcmRlckltcGw6OlJlY29yZGVySW1wbChEaXNw
bGF5TGlzdCYgZGlzcGxheUxpc3QsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwg
Y29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0
aWFsQ1RNLCBEZWxlZ2F0ZSogZGVsZWdhdGUsIERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1
Y3REcmF3R2x5cGhzIGRlY29uc3RydWN0RHJhd0dseXBocykKK1JlY29yZGVySW1wbDo6UmVjb3Jk
ZXJJbXBsKERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3Rh
dGUmIHN0YXRlLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIGluaXRpYWxDVE0sIERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5
cGhzIGRlY29uc3RydWN0RHJhd0dseXBocykKICAgICA6IFJlY29yZGVyKHN0YXRlLCBpbml0aWFs
Q2xpcCwgaW5pdGlhbENUTSwgZGVjb25zdHJ1Y3REcmF3R2x5cGhzKQogICAgICwgbV9kaXNwbGF5
TGlzdChkaXNwbGF5TGlzdCkKLSAgICAsIG1fZGVsZWdhdGUoZGVsZWdhdGUpCiB7CiAgICAgTE9H
X1dJVEhfU1RSRUFNKERpc3BsYXlMaXN0cywgc3RyZWFtIDw8ICJcblJlY29yZGluZyB3aXRoIGNs
aXAgIiA8PCBpbml0aWFsQ2xpcCk7CiB9CkBAIC01Myw3ICs1Miw2IEBAIFJlY29yZGVySW1wbDo6
UmVjb3JkZXJJbXBsKERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgY29uc3QgR3JhcGhpY3NDb250
ZXh0U3RhdGUmCiBSZWNvcmRlckltcGw6OlJlY29yZGVySW1wbChSZWNvcmRlckltcGwmIHBhcmVu
dCwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlLCBjb25zdCBGbG9hdFJlY3QmIGlu
aXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0pCiAgICAgOiBSZWNv
cmRlcihwYXJlbnQsIHN0YXRlLCBpbml0aWFsQ2xpcCwgaW5pdGlhbENUTSkKICAgICAsIG1fZGlz
cGxheUxpc3QocGFyZW50Lm1fZGlzcGxheUxpc3QpCi0gICAgLCBtX2RlbGVnYXRlKHBhcmVudC5t
X2RlbGVnYXRlKQogICAgICwgbV9pc05lc3RlZCh0cnVlKQogewogfQpAQCAtNzUsMjEgKzczLDYg
QEAgdm9pZCBSZWNvcmRlckltcGw6OnB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiBw
aXhlbEJ1ZmZlciwgY29uc3QgSW50UmVjdCYKICAgICBhcHBlbmQ8UHV0UGl4ZWxCdWZmZXI+KHBp
eGVsQnVmZmVyLCBzcmNSZWN0LCBkZXN0UG9pbnQsIGRlc3RGb3JtYXQpOwogfQogCi1ib29sIFJl
Y29yZGVySW1wbDo6Y2FuQXBwZW5kSXRlbU9mVHlwZShJdGVtVHlwZSB0eXBlKSBjb25zdAotewot
ICAgIHJldHVybiAhbV9kZWxlZ2F0ZSB8fCBtX2RlbGVnYXRlLT5jYW5BcHBlbmRJdGVtT2ZUeXBl
KHR5cGUpOwotfQotCi1ib29sIFJlY29yZGVySW1wbDo6Y2FuRHJhd0ltYWdlQnVmZmVyKGNvbnN0
IEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlcikgY29uc3QKLXsKLSAgICByZXR1cm4gIW1fZGVsZWdh
dGUgfHwgbV9kZWxlZ2F0ZS0+aXNDYWNoZWRJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcik7Ci19Ci0K
LVJlbmRlcmluZ01vZGUgUmVjb3JkZXJJbXBsOjpyZW5kZXJpbmdNb2RlKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gbV9kZWxlZ2F0ZSA/IG1fZGVsZWdhdGUtPnJlbmRlcmluZ01vZGUoKSA6IFJlbmRl
cmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7Ci19Ci0KIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0Nv
bnRleHQ+IFJlY29yZGVySW1wbDo6Y3JlYXRlTmVzdGVkQ29udGV4dChjb25zdCBGbG9hdFJlY3Qm
IGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0pCiB7CiAgICAg
cmV0dXJuIG1ha2VVbmlxdWU8UmVjb3JkZXJJbXBsPigqdGhpcywgR3JhcGhpY3NDb250ZXh0U3Rh
dGUgeyB9LCBpbml0aWFsQ2xpcCwgaW5pdGlhbENUTSk7CkBAIC00MjEsMTggKzQwNCwxMiBAQCB2
b2lkIFJlY29yZGVySW1wbDo6cmVjb3JkQXBwbHlEZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2Fs
ZUZhY3RvcikKIAogYm9vbCBSZWNvcmRlckltcGw6OnJlY29yZFJlc291cmNlVXNlKE5hdGl2ZUlt
YWdlJiBuYXRpdmVJbWFnZSkKIHsKLSAgICBpZiAobV9kZWxlZ2F0ZSkKLSAgICAgICAgbV9kZWxl
Z2F0ZS0+cmVjb3JkTmF0aXZlSW1hZ2VVc2UobmF0aXZlSW1hZ2UpOwogICAgIG1fZGlzcGxheUxp
c3QuY2FjaGVOYXRpdmVJbWFnZShuYXRpdmVJbWFnZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
IGJvb2wgUmVjb3JkZXJJbXBsOjpyZWNvcmRSZXNvdXJjZVVzZShJbWFnZUJ1ZmZlciYgaW1hZ2VC
dWZmZXIpCiB7Ci0gICAgaWYgKCFjYW5EcmF3SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKG1fZGVsZWdhdGUpCi0gICAgICAgIG1fZGVsZWdh
dGUtPnJlY29yZEltYWdlQnVmZmVyVXNlKGltYWdlQnVmZmVyKTsKICAgICBtX2Rpc3BsYXlMaXN0
LmNhY2hlSW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIpOwogICAgIHJldHVybiB0cnVlOwogfQpAQCAt
NDUwLDggKzQyNyw2IEBAIGJvb2wgUmVjb3JkZXJJbXBsOjpyZWNvcmRSZXNvdXJjZVVzZShjb25z
dCBTb3VyY2VJbWFnZSYgaW1hZ2UpCiAKIGJvb2wgUmVjb3JkZXJJbXBsOjpyZWNvcmRSZXNvdXJj
ZVVzZShGb250JiBmb250KQogewotICAgIGlmIChtX2RlbGVnYXRlKQotICAgICAgICBtX2RlbGVn
YXRlLT5yZWNvcmRGb250VXNlKGZvbnQpOwogICAgIG1fZGlzcGxheUxpc3QuY2FjaGVGb250KGZv
bnQpOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZWNvcmRlckltcGwuaAppbmRleCBlZDQ3MTBiM2Q2OTAzYmVkNjI2OWNkYmM2YjI1N2Y1N2ZmZjU4
OGVjLi45MjZjMzNiMzExMTIyNTVlYzMyYzIyNDZlMzI5MTllMThlY2Y1NDAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RSZWNvcmRlckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuaApAQCAtMzUsMjUgKzM1LDEzIEBA
IGNsYXNzIFJlY29yZGVySW1wbCA6IHB1YmxpYyBSZWNvcmRlciB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVjb3JkZXJJbXBsKTsKIHB1
YmxpYzoKLSAgICBjbGFzcyBEZWxlZ2F0ZTsKLSAgICBXRUJDT1JFX0VYUE9SVCBSZWNvcmRlcklt
cGwoRGlzcGxheUxpc3QmLCBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYsIGNvbnN0IEZsb2F0
UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIERlbGVnYXRlKiA9IG51
bGxwdHIsIERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzID0gRHJhd0ds
eXBoc1JlY29yZGVyOjpEZWNvbnN0cnVjdERyYXdHbHlwaHM6Olllcyk7CisgICAgV0VCQ09SRV9F
WFBPUlQgUmVjb3JkZXJJbXBsKERpc3BsYXlMaXN0JiwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3Rh
dGUmLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
LCBEcmF3R2x5cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0RHJhd0dseXBocyA9IERyYXdHbHlwaHNS
ZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzOjpZZXMpOwogICAgIFJlY29yZGVySW1wbChS
ZWNvcmRlckltcGwmIHBhcmVudCwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmLCBjb25zdCBG
bG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0p
OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+UmVjb3JkZXJJbXBsKCk7CiAKICAgICBi
b29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlMaXN0LmlzRW1wdHkoKTsgfQog
Ci0gICAgY2xhc3MgRGVsZWdhdGUgewotICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB+RGVs
ZWdhdGUoKSB7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGNhbkFwcGVuZEl0ZW1PZlR5cGUoSXRl
bVR5cGUpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZWNvcmROYXRp
dmVJbWFnZVVzZShOYXRpdmVJbWFnZSYpIHsgfQotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNDYWNo
ZWRJbWFnZUJ1ZmZlcihjb25zdCBJbWFnZUJ1ZmZlciYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZWNvcmRGb250VXNlKEZvbnQmKSB7IH0KLSAgICAgICAg
dmlydHVhbCB2b2lkIHJlY29yZEltYWdlQnVmZmVyVXNlKEltYWdlQnVmZmVyJikgeyB9Ci0gICAg
ICAgIHZpcnR1YWwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4g
UmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZDsgfQotICAgIH07Ci0KICAgICB2b2lkIGdldFBp
eGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IElu
dFJlY3QmIHNvdXJjZVJlY3QpIGZpbmFsOwogICAgIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3Qg
UGl4ZWxCdWZmZXImLCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVz
dFBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpIGZpbmFsOwogICAgIHZv
aWQgY29udmVydFRvTHVtaW5hbmNlTWFzaygpIGZpbmFsIHsgfQpAQCAtNjEsMTAgKzQ5LDYgQEAg
cHVibGljOgogICAgIHZvaWQgZmx1c2hDb250ZXh0KEdyYXBoaWNzQ29udGV4dEZsdXNoSWRlbnRp
ZmllciBpZGVudGlmaWVyKSBmaW5hbCB7IGFwcGVuZDxGbHVzaENvbnRleHQ+KGlkZW50aWZpZXIp
OyB9CiAKIHByaXZhdGU6Ci0gICAgLy8gRklYTUU6IE1heWJlIHJlbW92ZSB0aGlzPwotICAgIGJv
b2wgY2FuRHJhd0ltYWdlQnVmZmVyKGNvbnN0IEltYWdlQnVmZmVyJikgY29uc3QgZmluYWw7Ci0g
ICAgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKCkgY29uc3QgZmluYWw7Ci0KICAgICB2b2lk
IHJlY29yZFNhdmUoKSBmaW5hbDsKICAgICB2b2lkIHJlY29yZFJlc3RvcmUoKSBmaW5hbDsKICAg
ICB2b2lkIHJlY29yZFRyYW5zbGF0ZShmbG9hdCB4LCBmbG9hdCB5KSBmaW5hbDsKQEAgLTE0Niw5
ICsxMzAsNiBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIGNsYXNzLi4uIEFy
Z3M+CiAgICAgdm9pZCBhcHBlbmQoQXJncyYmLi4uIGFyZ3MpCiAgICAgewotICAgICAgICBpZiAo
VU5MSUtFTFkoIWNhbkFwcGVuZEl0ZW1PZlR5cGUoVDo6aXRlbVR5cGUpKSkKLSAgICAgICAgICAg
IHJldHVybjsKLQogICAgICAgICBtX2Rpc3BsYXlMaXN0LmFwcGVuZDxUPihzdGQ6OmZvcndhcmQ8
QXJncz4oYXJncykuLi4pOwogCiAgICAgICAgIGlmIGNvbnN0ZXhwciAoVDo6aXNEcmF3aW5nSXRl
bSkgewpAQCAtMTY2LDEwICsxNDcsOCBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIEZsb2F0UmVj
dCBleHRlbnRGcm9tTG9jYWxCb3VuZHMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBjYW5BcHBlbmRJdGVtT2ZUeXBlKEl0ZW1UeXBlKSBjb25zdDsKIAog
ICAgIERpc3BsYXlMaXN0JiBtX2Rpc3BsYXlMaXN0OwotICAgIERlbGVnYXRlKiBtX2RlbGVnYXRl
IHsgbnVsbHB0ciB9OwogICAgIGJvb2wgbV9pc05lc3RlZCB7IGZhbHNlIH07CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZXBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAKaW5kZXggNmYyMmIyYzg3MTQyMGRm
MGI2OTU2MzQzZmIwMTk5MzYzNTI4ZDkzNi4uOTg2YTNlYTI5ZWUyMDY5NWE1NTlmMzkwYzgyNmM0
NzdjODI4ZWFhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcApA
QCAtMzcsOTUgKzM3LDczIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxh
eUxpc3QgewogCi1SZXBsYXllcjo6UmVwbGF5ZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBj
b25zdCBEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIGNvbnN0IFJlc291cmNlSGVhcCogcmVzb3Vy
Y2VIZWFwLCBJbWFnZUJ1ZmZlciogbWFza0ltYWdlQnVmZmVyLCBEZWxlZ2F0ZSogZGVsZWdhdGUp
CitSZXBsYXllcjo6UmVwbGF5ZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBEaXNw
bGF5TGlzdCYgZGlzcGxheUxpc3QsIGNvbnN0IFJlc291cmNlSGVhcCogcmVzb3VyY2VIZWFwKQog
ICAgIDogbV9jb250ZXh0KGNvbnRleHQpCi0gICAgLCBtX21hc2tJbWFnZUJ1ZmZlcihtYXNrSW1h
Z2VCdWZmZXIpCiAgICAgLCBtX2Rpc3BsYXlMaXN0KGRpc3BsYXlMaXN0KQogICAgICwgbV9yZXNv
dXJjZUhlYXAocmVzb3VyY2VIZWFwID8gKnJlc291cmNlSGVhcCA6IG1fZGlzcGxheUxpc3QucmVz
b3VyY2VIZWFwKCkpCi0gICAgLCBtX2RlbGVnYXRlKGRlbGVnYXRlKQogewogfQogCi1SZXBsYXll
cjo6flJlcGxheWVyKCkgPSBkZWZhdWx0OwotCiBHcmFwaGljc0NvbnRleHQmIFJlcGxheWVyOjpj
b250ZXh0KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9tYXNrSW1hZ2VCdWZmZXIgPyBtX21hc2tJ
bWFnZUJ1ZmZlci0+Y29udGV4dCgpIDogbV9jb250ZXh0OwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBU
PgotaW5saW5lIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cj4gYXBwbHlJbWFnZUJ1ZmZlckl0ZW0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBS
ZXNvdXJjZUhlYXAmIHJlc291cmNlSGVhcCwgSXRlbUhhbmRsZSBpdGVtLCBSZXBsYXllcjo6RGVs
ZWdhdGUqIGRlbGVnYXRlKQoraW5saW5lIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcj4gYXBwbHlJbWFnZUJ1ZmZlckl0ZW0oR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBSZXNvdXJjZUhlYXAmIHJlc291cmNlSGVhcCwgSXRlbUhhbmRsZSBpdGVt
KQogewogICAgIGF1dG8mIGltYWdlQnVmZmVySXRlbSA9IGl0ZW0uZ2V0PFQ+KCk7CiAgICAgYXV0
byByZXNvdXJjZUlkZW50aWZpZXIgPSBpbWFnZUJ1ZmZlckl0ZW0uaW1hZ2VCdWZmZXJJZGVudGlm
aWVyKCk7CiAgICAgaWYgKGF1dG8qIGltYWdlQnVmZmVyID0gcmVzb3VyY2VIZWFwLmdldEltYWdl
QnVmZmVyKHJlc291cmNlSWRlbnRpZmllcikpIHsKICAgICAgICAgaW1hZ2VCdWZmZXJJdGVtLmFw
cGx5KGNvbnRleHQsICppbWFnZUJ1ZmZlcik7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSkKLSAgICAg
ICAgICAgIGRlbGVnYXRlLT5yZWNvcmRSZXNvdXJjZVVzZShyZXNvdXJjZUlkZW50aWZpZXIpOwog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KICAgICByZXR1cm4gcmVzb3VyY2VJ
ZGVudGlmaWVyOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBUPgotaW5saW5lIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gYXBwbHlOYXRpdmVJbWFnZUl0ZW0o
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZUhlYXAmIHJlc291cmNlSGVh
cCwgSXRlbUhhbmRsZSBpdGVtLCBSZXBsYXllcjo6RGVsZWdhdGUqIGRlbGVnYXRlKQoraW5saW5l
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gYXBwbHlO
YXRpdmVJbWFnZUl0ZW0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZUhl
YXAmIHJlc291cmNlSGVhcCwgSXRlbUhhbmRsZSBpdGVtKQogewogICAgIGF1dG8mIG5hdGl2ZUlt
YWdlSXRlbSA9IGl0ZW0uZ2V0PFQ+KCk7CiAgICAgYXV0byByZXNvdXJjZUlkZW50aWZpZXIgPSBu
YXRpdmVJbWFnZUl0ZW0uaW1hZ2VJZGVudGlmaWVyKCk7CiAgICAgaWYgKGF1dG8qIGltYWdlID0g
cmVzb3VyY2VIZWFwLmdldE5hdGl2ZUltYWdlKHJlc291cmNlSWRlbnRpZmllcikpIHsKICAgICAg
ICAgbmF0aXZlSW1hZ2VJdGVtLmFwcGx5KGNvbnRleHQsICppbWFnZSk7Ci0gICAgICAgIGlmIChk
ZWxlZ2F0ZSkKLSAgICAgICAgICAgIGRlbGVnYXRlLT5yZWNvcmRSZXNvdXJjZVVzZShyZXNvdXJj
ZUlkZW50aWZpZXIpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KICAgICBy
ZXR1cm4gcmVzb3VyY2VJZGVudGlmaWVyOwogfQogCi1pbmxpbmUgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBhcHBseVNldFN0YXRlSXRlbShHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFJlc291cmNlSGVhcCYgcmVzb3VyY2VIZWFwLCBJdGVt
SGFuZGxlIGl0ZW0sIFJlcGxheWVyOjpEZWxlZ2F0ZSogZGVsZWdhdGUpCitpbmxpbmUgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBhcHBseVNldFN0YXRl
SXRlbShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFJlc291cmNlSGVhcCYgcmVzb3Vy
Y2VIZWFwLCBJdGVtSGFuZGxlIGl0ZW0pCiB7Ci0gICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIHN0cm9rZVBhdHRlcm5JbWFnZUlkZW50aWZpZXI7Ci0gICAgUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIGZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyOwogICAgIGF1dG8mIHNldFN0YXRl
SXRlbSA9IGl0ZW0uZ2V0PFNldFN0YXRlPigpOwogCi0gICAgaWYgKGF1dG8mIHN0cm9rZVBhdHRl
cm4gPSBzZXRTdGF0ZUl0ZW0uc3RhdGVDaGFuZ2UoKS5tX3N0YXRlLnN0cm9rZVBhdHRlcm4pIHsK
LSAgICAgICAgc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllciA9IHN0cm9rZVBhdHRlcm4tPnRp
bGVJbWFnZSgpLmltYWdlSWRlbnRpZmllcigpOwotICAgICAgICBhdXRvIHN0cm9rZVBhdHRlcm5J
bWFnZSA9IHJlc291cmNlSGVhcC5nZXRTb3VyY2VJbWFnZShzdHJva2VQYXR0ZXJuSW1hZ2VJZGVu
dGlmaWVyKTsKLSAgICAgICAgaWYgKCFzdHJva2VQYXR0ZXJuSW1hZ2UpCi0gICAgICAgICAgICBy
ZXR1cm4gc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcjsKKyAgICBhdXRvIGZpeFBhdHRlcm5U
aWxlSW1hZ2UgPSBbJl0oUGF0dGVybiogcGF0dGVybikgLT4gc3RkOjpvcHRpb25hbDxSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXI+IHsKKyAgICAgICAgYXV0byBpbWFnZUlkZW50aWZpZXIgPSBw
YXR0ZXJuLT50aWxlSW1hZ2UoKS5pbWFnZUlkZW50aWZpZXIoKTsKKyAgICAgICAgYXV0byBzb3Vy
Y2VJbWFnZSA9IHJlc291cmNlSGVhcC5nZXRTb3VyY2VJbWFnZShpbWFnZUlkZW50aWZpZXIpOwor
ICAgICAgICBpZiAoIXNvdXJjZUltYWdlKQorICAgICAgICAgICAgcmV0dXJuIGltYWdlSWRlbnRp
ZmllcjsKIAotICAgICAgICBzdHJva2VQYXR0ZXJuLT5zZXRUaWxlSW1hZ2UoV1RGTW92ZSgqc3Ry
b2tlUGF0dGVybkltYWdlKSk7Ci0gICAgfQorICAgICAgICBwYXR0ZXJuLT5zZXRUaWxlSW1hZ2Uo
V1RGTW92ZSgqc291cmNlSW1hZ2UpKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICB9OwogCi0gICAgaWYgKGF1dG8mIGZpbGxQYXR0ZXJuID0gc2V0U3RhdGVJdGVtLnN0YXRlQ2hh
bmdlKCkubV9zdGF0ZS5maWxsUGF0dGVybikgewotICAgICAgICBmaWxsUGF0dGVybkltYWdlSWRl
bnRpZmllciA9IGZpbGxQYXR0ZXJuLT50aWxlSW1hZ2UoKS5pbWFnZUlkZW50aWZpZXIoKTsKLSAg
ICAgICAgYXV0byBmaWxsUGF0dGVybkltYWdlID0gcmVzb3VyY2VIZWFwLmdldFNvdXJjZUltYWdl
KGZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyKTsKLSAgICAgICAgaWYgKCFmaWxsUGF0dGVybklt
YWdlKQotICAgICAgICAgICAgcmV0dXJuIGZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyOworICAg
IGlmIChhdXRvIGltYWdlSWRlbnRpZmllciA9IGZpeFBhdHRlcm5UaWxlSW1hZ2Uoc2V0U3RhdGVJ
dGVtLnN0YXRlQ2hhbmdlKCkubV9zdGF0ZS5zdHJva2VQYXR0ZXJuLmdldCgpKSkKKyAgICAgICAg
cmV0dXJuICppbWFnZUlkZW50aWZpZXI7CiAKLSAgICAgICAgZmlsbFBhdHRlcm4tPnNldFRpbGVJ
bWFnZShXVEZNb3ZlKCpmaWxsUGF0dGVybkltYWdlKSk7Ci0gICAgfQorICAgIGlmIChhdXRvIGlt
YWdlSWRlbnRpZmllciA9IGZpeFBhdHRlcm5UaWxlSW1hZ2Uoc2V0U3RhdGVJdGVtLnN0YXRlQ2hh
bmdlKCkubV9zdGF0ZS5maWxsUGF0dGVybi5nZXQoKSkpCisgICAgICAgIHJldHVybiBpbWFnZUlk
ZW50aWZpZXI7CiAKICAgICBzZXRTdGF0ZUl0ZW0uYXBwbHkoY29udGV4dCk7Ci0KLSAgICBpZiAo
IWRlbGVnYXRlKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgaWYgKHN0cm9r
ZVBhdHRlcm5JbWFnZUlkZW50aWZpZXIpCi0gICAgICAgIGRlbGVnYXRlLT5yZWNvcmRSZXNvdXJj
ZVVzZShzdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyKTsKLSAgICBpZiAoZmlsbFBhdHRlcm5J
bWFnZUlkZW50aWZpZXIpCi0gICAgICAgIGRlbGVnYXRlLT5yZWNvcmRSZXNvdXJjZVVzZShmaWxs
UGF0dGVybkltYWdlSWRlbnRpZmllcik7CiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIAog
dGVtcGxhdGU8Y2xhc3MgVD4KLWlubGluZSBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXI+IGFwcGx5Rm9udEl0ZW0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBjb25zdCBSZXNvdXJjZUhlYXAmIHJlc291cmNlSGVhcCwgSXRlbUhhbmRsZSBpdGVtLCBSZXBs
YXllcjo6RGVsZWdhdGUqIGRlbGVnYXRlKQoraW5saW5lIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gYXBwbHlGb250SXRlbShHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IFJlc291cmNlSGVhcCYgcmVzb3VyY2VIZWFwLCBJdGVtSGFuZGxlIGl0
ZW0pCiB7CiAgICAgYXV0byYgZm9udEl0ZW0gPSBpdGVtLmdldDxUPigpOwogICAgIGF1dG8gcmVz
b3VyY2VJZGVudGlmaWVyID0gZm9udEl0ZW0uZm9udElkZW50aWZpZXIoKTsKICAgICBpZiAoYXV0
byogZm9udCA9IHJlc291cmNlSGVhcC5nZXRGb250KHJlc291cmNlSWRlbnRpZmllcikpIHsKICAg
ICAgICAgZm9udEl0ZW0uYXBwbHkoY29udGV4dCwgKmZvbnQpOwotICAgICAgICBpZiAoZGVsZWdh
dGUpCi0gICAgICAgICAgICBkZWxlZ2F0ZS0+cmVjb3JkUmVzb3VyY2VVc2UocmVzb3VyY2VJZGVu
dGlmaWVyKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAgICAgcmV0dXJu
IHJlc291cmNlSWRlbnRpZmllcjsKQEAgLTEzMyw0MSArMTExLDM4IEBAIGlubGluZSBzdGF0aWMg
c3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGFwcGx5Rm9udEl0ZW0o
R3JhcGhpY3NDCiAKIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFN0b3BSZXBsYXlSZWFzb24+LCBz
dGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4+IFJlcGxheWVyOjphcHBs
eUl0ZW0oSXRlbUhhbmRsZSBpdGVtKQogewotICAgIGlmIChtX2RlbGVnYXRlICYmIG1fZGVsZWdh
dGUtPmFwcGx5KGl0ZW0sIGNvbnRleHQoKSkpCi0gICAgICAgIHJldHVybiB7IHN0ZDo6bnVsbG9w
dCwgc3RkOjpudWxsb3B0IH07Ci0KICAgICBpZiAoaXRlbS5pczxEcmF3SW1hZ2VCdWZmZXI+KCkp
IHsKLSAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9IGFw
cGx5SW1hZ2VCdWZmZXJJdGVtPERyYXdJbWFnZUJ1ZmZlcj4oY29udGV4dCgpLCBtX3Jlc291cmNl
SGVhcCwgaXRlbSwgbV9kZWxlZ2F0ZSkpCisgICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNoZWRS
ZXNvdXJjZUlkZW50aWZpZXIgPSBhcHBseUltYWdlQnVmZmVySXRlbTxEcmF3SW1hZ2VCdWZmZXI+
KGNvbnRleHQoKSwgbV9yZXNvdXJjZUhlYXAsIGl0ZW0pKQogICAgICAgICAgICAgcmV0dXJuIHsg
U3RvcFJlcGxheVJlYXNvbjo6TWlzc2luZ0NhY2hlZFJlc291cmNlLCBXVEZNb3ZlKG1pc3NpbmdD
YWNoZWRSZXNvdXJjZUlkZW50aWZpZXIpIH07CiAgICAgICAgIHJldHVybiB7IHN0ZDo6bnVsbG9w
dCwgc3RkOjpudWxsb3B0IH07CiAgICAgfQogCiAgICAgaWYgKGl0ZW0uaXM8Q2xpcFRvSW1hZ2VC
dWZmZXI+KCkpIHsKLSAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRp
ZmllciA9IGFwcGx5SW1hZ2VCdWZmZXJJdGVtPENsaXBUb0ltYWdlQnVmZmVyPihjb250ZXh0KCks
IG1fcmVzb3VyY2VIZWFwLCBpdGVtLCBtX2RlbGVnYXRlKSkKKyAgICAgICAgaWYgKGF1dG8gbWlz
c2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9IGFwcGx5SW1hZ2VCdWZmZXJJdGVtPENsaXBU
b0ltYWdlQnVmZmVyPihjb250ZXh0KCksIG1fcmVzb3VyY2VIZWFwLCBpdGVtKSkKICAgICAgICAg
ICAgIHJldHVybiB7IFN0b3BSZXBsYXlSZWFzb246Ok1pc3NpbmdDYWNoZWRSZXNvdXJjZSwgV1RG
TW92ZShtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyKSB9OwogICAgICAgICByZXR1cm4g
eyBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9OwogICAgIH0KIAogICAgIGlmIChpdGVtLmlz
PERyYXdOYXRpdmVJbWFnZT4oKSkgewotICAgICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVz
b3VyY2VJZGVudGlmaWVyID0gYXBwbHlOYXRpdmVJbWFnZUl0ZW08RHJhd05hdGl2ZUltYWdlPihj
b250ZXh0KCksIG1fcmVzb3VyY2VIZWFwLCBpdGVtLCBtX2RlbGVnYXRlKSkKKyAgICAgICAgaWYg
KGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9IGFwcGx5TmF0aXZlSW1hZ2VJ
dGVtPERyYXdOYXRpdmVJbWFnZT4oY29udGV4dCgpLCBtX3Jlc291cmNlSGVhcCwgaXRlbSkpCiAg
ICAgICAgICAgICByZXR1cm4geyBTdG9wUmVwbGF5UmVhc29uOjpNaXNzaW5nQ2FjaGVkUmVzb3Vy
Y2UsIFdURk1vdmUobWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllcikgfTsKICAgICAgICAg
cmV0dXJuIHsgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfTsKICAgICB9CiAKICAgICBpZiAo
aXRlbS5pczxEcmF3R2x5cGhzPigpKSB7Ci0gICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNoZWRS
ZXNvdXJjZUlkZW50aWZpZXIgPSBhcHBseUZvbnRJdGVtPERyYXdHbHlwaHM+KGNvbnRleHQoKSwg
bV9yZXNvdXJjZUhlYXAsIGl0ZW0sIG1fZGVsZWdhdGUpKQorICAgICAgICBpZiAoYXV0byBtaXNz
aW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBwbHlGb250SXRlbTxEcmF3R2x5cGhzPihj
b250ZXh0KCksIG1fcmVzb3VyY2VIZWFwLCBpdGVtKSkKICAgICAgICAgICAgIHJldHVybiB7IFN0
b3BSZXBsYXlSZWFzb246Ok1pc3NpbmdDYWNoZWRSZXNvdXJjZSwgV1RGTW92ZShtaXNzaW5nQ2Fj
aGVkUmVzb3VyY2VJZGVudGlmaWVyKSB9OwogICAgICAgICByZXR1cm4geyBzdGQ6Om51bGxvcHQs
IHN0ZDo6bnVsbG9wdCB9OwogICAgIH0KIAogICAgIGlmIChpdGVtLmlzPERyYXdQYXR0ZXJuPigp
KSB7Ci0gICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIgPSBh
cHBseU5hdGl2ZUltYWdlSXRlbTxEcmF3UGF0dGVybj4oY29udGV4dCgpLCBtX3Jlc291cmNlSGVh
cCwgaXRlbSwgbV9kZWxlZ2F0ZSkpCisgICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNoZWRSZXNv
dXJjZUlkZW50aWZpZXIgPSBhcHBseU5hdGl2ZUltYWdlSXRlbTxEcmF3UGF0dGVybj4oY29udGV4
dCgpLCBtX3Jlc291cmNlSGVhcCwgaXRlbSkpCiAgICAgICAgICAgICByZXR1cm4geyBTdG9wUmVw
bGF5UmVhc29uOjpNaXNzaW5nQ2FjaGVkUmVzb3VyY2UsIFdURk1vdmUobWlzc2luZ0NhY2hlZFJl
c291cmNlSWRlbnRpZmllcikgfTsKICAgICAgICAgcmV0dXJuIHsgc3RkOjpudWxsb3B0LCBzdGQ6
Om51bGxvcHQgfTsKICAgICB9CiAKICAgICBpZiAoaXRlbS5pczxTZXRTdGF0ZT4oKSkgewotICAg
ICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBwbHlTZXRT
dGF0ZUl0ZW0oY29udGV4dCgpLCBtX3Jlc291cmNlSGVhcCwgaXRlbSwgbV9kZWxlZ2F0ZSkpCisg
ICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIgPSBhcHBseVNl
dFN0YXRlSXRlbShjb250ZXh0KCksIG1fcmVzb3VyY2VIZWFwLCBpdGVtKSkKICAgICAgICAgICAg
IHJldHVybiB7IFN0b3BSZXBsYXlSZWFzb246Ok1pc3NpbmdDYWNoZWRSZXNvdXJjZSwgV1RGTW92
ZShtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyKSB9OwogICAgICAgICByZXR1cm4geyBz
dGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9OwogICAgIH0KQEAgLTE3OSw4ICsxNTQsNiBAQCBz
dGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxTdG9wUmVwbGF5UmVhc29uPiwgc3RkOjpvcHRpb25hbDxS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aQogICAgICAgICBtX21hc2tJbWFnZUJ1ZmZlciA9IEltYWdl
QnVmZmVyOjpjcmVhdGVDb21wYXRpYmxlQnVmZmVyKGNsaXBJdGVtLmRlc3RpbmF0aW9uKCkuc2l6
ZSgpLCBjbGlwSXRlbS5jb2xvclNwYWNlKCksIG1fY29udGV4dCk7CiAgICAgICAgIGlmICghbV9t
YXNrSW1hZ2VCdWZmZXIpCiAgICAgICAgICAgICByZXR1cm4geyBTdG9wUmVwbGF5UmVhc29uOjpP
dXRPZk1lbW9yeSwgc3RkOjpudWxsb3B0IH07Ci0gICAgICAgIGlmIChtX2RlbGVnYXRlKQotICAg
ICAgICAgICAgbV9kZWxlZ2F0ZS0+ZGlkQ3JlYXRlTWFza0ltYWdlQnVmZmVyKCptX21hc2tJbWFn
ZUJ1ZmZlcik7CiAgICAgICAgIHJldHVybiB7IHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0IH07
CiAgICAgfQogCkBAIC0xOTAsOCArMTYzLDYgQEAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8U3Rv
cFJlcGxheVJlYXNvbj4sIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGkKICAg
ICAgICAgYXV0byYgY2xpcEl0ZW0gPSBpdGVtLmdldDxFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHM+
KCk7CiAgICAgICAgIG1fY29udGV4dC5jbGlwVG9JbWFnZUJ1ZmZlcigqbV9tYXNrSW1hZ2VCdWZm
ZXIsIGNsaXBJdGVtLmRlc3RpbmF0aW9uKCkpOwogICAgICAgICBtX21hc2tJbWFnZUJ1ZmZlciA9
IG51bGxwdHI7Ci0gICAgICAgIGlmIChtX2RlbGVnYXRlKQotICAgICAgICAgICAgbV9kZWxlZ2F0
ZS0+ZGlkUmVzZXRNYXNrSW1hZ2VCdWZmZXIoKTsKICAgICAgICAgcmV0dXJuIHsgc3RkOjpudWxs
b3B0LCBzdGQ6Om51bGxvcHQgfTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZXBsYXllci5oCmluZGV4IDkyODViYmRkMTAwNDhjMmFlZjliZmRkMzllMjBhZTFjNjMzZDVjN2Mu
LjZmNzcyYmY0NTUyNjM5YmJmMzA0ZGI2NmQxOWI2OTg4MWYxNDQ0NTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
cGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaApAQCAtMzEsNyArMzEsNiBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiA6IHVpbnQ4X3Q7
CiBjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAKQEAgLTQyLDcgKzQx
LDYgQEAgY2xhc3MgUmVzb3VyY2VIZWFwOwogZW51bSBjbGFzcyBTdG9wUmVwbGF5UmVhc29uIDog
dWludDhfdCB7CiAgICAgUmVwbGF5ZWRBbGxJdGVtcywKICAgICBNaXNzaW5nQ2FjaGVkUmVzb3Vy
Y2UsCi0gICAgQ2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1ZmZlciwKICAgICBJbnZhbGlkSXRlbU9y
RXh0ZW50LAogICAgIE91dE9mTWVtb3J5CiB9OwpAQCAtNTAsNyArNDgsNiBAQCBlbnVtIGNsYXNz
IFN0b3BSZXBsYXlSZWFzb24gOiB1aW50OF90IHsKIHN0cnVjdCBSZXBsYXlSZXN1bHQgewogICAg
IHN0ZDo6dW5pcXVlX3B0cjxJbk1lbW9yeURpc3BsYXlMaXN0PiB0cmFja2VkRGlzcGxheUxpc3Q7
CiAgICAgc2l6ZV90IG51bWJlck9mQnl0ZXNSZWFkIHsgMCB9OwotICAgIHN0ZDo6b3B0aW9uYWw8
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBuZXh0RGVzdGluYXRpb25JbWFnZUJ1ZmZlcjsK
ICAgICBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gbWlzc2luZ0Nh
Y2hlZFJlc291cmNlSWRlbnRpZmllcjsKICAgICBTdG9wUmVwbGF5UmVhc29uIHJlYXNvbkZvclN0
b3BwaW5nIHsgU3RvcFJlcGxheVJlYXNvbjo6UmVwbGF5ZWRBbGxJdGVtcyB9OwogfTsKQEAgLTU4
LDMwICs1NSwxOSBAQCBzdHJ1Y3QgUmVwbGF5UmVzdWx0IHsKIGNsYXNzIFJlcGxheWVyIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZXBsYXllcik7CiBwdWJsaWM6Ci0gICAgY2xhc3MgRGVs
ZWdhdGU7Ci0gICAgV0VCQ09SRV9FWFBPUlQgUmVwbGF5ZXIoR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRGlzcGxheUxpc3QmLCBjb25zdCBSZXNvdXJjZUhlYXAqID0gbnVsbHB0ciwgV2ViQ29yZTo6
SW1hZ2VCdWZmZXIqIG1hc2tJbWFnZUJ1ZmZlciA9IG51bGxwdHIsIERlbGVnYXRlKiA9IG51bGxw
dHIpOwotICAgIFdFQkNPUkVfRVhQT1JUIH5SZXBsYXllcigpOworICAgIFdFQkNPUkVfRVhQT1JU
IFJlcGxheWVyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IERpc3BsYXlMaXN0JiwgY29uc3QgUmVz
b3VyY2VIZWFwKiA9IG51bGxwdHIpOworICAgIH5SZXBsYXllcigpID0gZGVmYXVsdDsKIAogICAg
IFdFQkNPUkVfRVhQT1JUIFJlcGxheVJlc3VsdCByZXBsYXkoY29uc3QgRmxvYXRSZWN0JiBpbml0
aWFsQ2xpcCA9IHsgfSwgYm9vbCB0cmFja1JlcGxheUxpc3QgPSBmYWxzZSk7CiAKLSAgICBjbGFz
cyBEZWxlZ2F0ZSB7Ci0gICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIH5EZWxlZ2F0ZSgpIHsg
fQotICAgICAgICB2aXJ0dWFsIGJvb2wgYXBwbHkoSXRlbUhhbmRsZSwgR3JhcGhpY3NDb250ZXh0
JikgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZU1hc2tJ
bWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYpIHsgfQotICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVzZXRNYXNrSW1hZ2VCdWZmZXIoKSB7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIHJl
Y29yZFJlc291cmNlVXNlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikgeyB9Ci0gICAgfTsK
LSAgICAKIHByaXZhdGU6CiAgICAgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KCkgY29uc3Q7CiAg
ICAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8U3RvcFJlcGxheVJlYXNvbj4sIHN0ZDo6b3B0aW9u
YWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPj4gYXBwbHlJdGVtKEl0ZW1IYW5kbGUpOwog
CiAgICAgR3JhcGhpY3NDb250ZXh0JiBtX2NvbnRleHQ7Ci0gICAgUmVmUHRyPFdlYkNvcmU6Oklt
YWdlQnVmZmVyPiBtX21hc2tJbWFnZUJ1ZmZlcjsKICAgICBjb25zdCBEaXNwbGF5TGlzdCYgbV9k
aXNwbGF5TGlzdDsKICAgICBjb25zdCBSZXNvdXJjZUhlYXAmIG1fcmVzb3VyY2VIZWFwOwotICAg
IERlbGVnYXRlKiBtX2RlbGVnYXRlOworICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4g
bV9tYXNrSW1hZ2VCdWZmZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXJQcm94eS5jcHAKaW5kZXggODU3MjNjMzgzZDQ3ZTRhZmMyNTNlMzE1ZDg0YjIyMmE4
NDMxNzI3Yy4uOWQzNDNmYTlhYzQ5NGJhYzVlYTRjYWRkMDExOWIwMGNlMmM4Njc2YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcApAQCAtODAsMTEgKzgw
LDYgQEAgdm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnRyYW5zZm9ybVRvQ29s
b3JTcGFjZShjb25zdCBXZWJDb3JlOjpEZXN0aW4KICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjpUcmFuc2Zvcm1Ub0NvbG9yU3BhY2UoY29sb3JTcGFjZSkpOwog
fQogCi1ib29sIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6Y2FuRHJhd0ltYWdlQnVm
ZmVyKGNvbnN0IEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlcikgY29uc3QKLXsKLSAgICByZXR1cm4g
bV9yZW5kZXJpbmdCYWNrZW5kICYmIG1fcmVuZGVyaW5nQmFja2VuZC0+aXNDYWNoZWQoaW1hZ2VC
dWZmZXIpOwotfQotCiBSZW5kZXJpbmdNb2RlIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94
eTo6cmVuZGVyaW5nTW9kZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW1hZ2VCdWZmZXIgPyBt
X2ltYWdlQnVmZmVyLT5yZW5kZXJpbmdNb2RlKCkgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJh
dGVkOwpAQCAtNDMwLDcgKzQyNSw3IEBAIGJvb2wgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5OjpyZWNvcmRSZXNvdXJjZVVzZShJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAoIWNhbkRyYXdJbWFnZUJ1ZmZlcihpbWFn
ZUJ1ZmZlcikpCisgICAgaWYgKCFtX3JlbmRlcmluZ0JhY2tlbmQtPmlzQ2FjaGVkKGltYWdlQnVm
ZmVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5y
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoKS5yZWNvcmRJbWFnZUJ1ZmZlclVzZShpbWFnZUJ1ZmZl
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaAppbmRleCBhNDE4
ZWYyZmIwM2ViM2UyMjFjY2Q3ZjVhNjQxNTQ4MmQ3MWMzNDZhLi4zMDA5OGJlYTYxYzFiNjQ0ZTQy
MGFjYTMzMzlmOTA0NDkxZTRiN2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlclByb3h5LmgKQEAgLTY2LDcgKzY2LDYgQEAgcHJpdmF0ZToKIAogICAgIGZyaWVuZCBjbGFz
cyBXZWJDb3JlOjpEcmF3R2x5cGhzUmVjb3JkZXI7CiAKLSAgICBib29sIGNhbkRyYXdJbWFnZUJ1
ZmZlcihjb25zdCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciYpIGNvbnN0IGZpbmFsOwogICAgIFdlYkNv
cmU6OlJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSgpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9p
ZCByZWNvcmRTYXZlKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggM2JlZGY5ZGVlODgyZmI4M2U0ZjFhMjMwNzdjYzM5YThjMmZiNzAy
Zi4uMTVkZjUyMmJhOTFmMWYzODVkYmIyZTY4ZTE4NzA4OGFhMGE3NjVhNCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDIyLTAxLTMxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAg
IFtHUFUgUHJvY2Vzc10gUmVtb3ZlIERpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGUgYW5k
IERpc3BsYXlMaXN0OjpSZWNvcmRlckltcGw6OkRlbGVnYXRlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU5MzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisKIDIwMjItMDEtMzEgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBDb2xsYXBzZWQgcmFuZ2VzIHJldHVybiB6ZXJvIHJlY3RzIGluIERvY3Vt
ZW50Q29udGV4dApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcAppbmRleCA4NTgyOGYwMzkyMjQ1ZjRhOTli
NzYwNmI1ZjRhYzVlYzM0ZGNlZTViLi5iY2M1YTExOGYyM2Q3Y2JiNjRlZmMxZTY0Y2MyNzEzOTA5
NWRiMDMwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cv
RGlzcGxheUxpc3RUZXN0c0NHLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcApAQCAtMTM2LDcgKzEzNiw2IEBAIFRFU1Qo
RGlzcGxheUxpc3RUZXN0cywgT3V0T2ZMaW5lSXRlbURlY29kaW5nRmFpbHVyZSkKICAgICBSZXBs
YXllciByZXBsYXllciB7IGNvbnRleHQsIHNoYWxsb3dDb3B5IH07CiAgICAgYXV0byByZXN1bHQg
PSByZXBsYXllci5yZXBsYXkoKTsKICAgICBFWFBFQ1RfR1QocmVzdWx0Lm51bWJlck9mQnl0ZXNS
ZWFkLCAwVSk7Ci0gICAgRVhQRUNUX0VRKHJlc3VsdC5uZXh0RGVzdGluYXRpb25JbWFnZUJ1ZmZl
ciwgc3RkOjpudWxsb3B0KTsKICAgICBFWFBFQ1RfRVEocmVzdWx0Lm1pc3NpbmdDYWNoZWRSZXNv
dXJjZUlkZW50aWZpZXIsIHN0ZDo6bnVsbG9wdCk7CiAgICAgRVhQRUNUX0VRKHJlc3VsdC5yZWFz
b25Gb3JTdG9wcGluZywgU3RvcFJlcGxheVJlYXNvbjo6SW52YWxpZEl0ZW1PckV4dGVudCk7CiB9
CkBAIC0xNjAsNyArMTU5LDYgQEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBJbmxpbmVJdGVtVmFs
aWRhdGlvbkZhaWx1cmUpCiAgICAgICAgIFJlcGxheWVyIHJlcGxheWVyIHsgY29udGV4dCwgbGlz
dCB9OwogICAgICAgICBhdXRvIHJlc3VsdCA9IHJlcGxheWVyLnJlcGxheSgpOwogICAgICAgICBF
WFBFQ1RfRVEocmVzdWx0Lm51bWJlck9mQnl0ZXNSZWFkLCAwVSk7Ci0gICAgICAgIEVYUEVDVF9F
UShyZXN1bHQubmV4dERlc3RpbmF0aW9uSW1hZ2VCdWZmZXIsIHN0ZDo6bnVsbG9wdCk7CiAgICAg
ICAgIEVYUEVDVF9FUShyZXN1bHQubWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciwgc3Rk
OjpudWxsb3B0KTsKICAgICAgICAgRVhQRUNUX0VRKHJlc3VsdC5yZWFzb25Gb3JTdG9wcGluZywg
U3RvcFJlcGxheVJlYXNvbjo6SW52YWxpZEl0ZW1PckV4dGVudCk7CiAgICAgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450507</attachid>
            <date>2022-02-01 01:24:23 -0800</date>
            <delta_ts>2022-02-01 12:14:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235939-20220201012423.patch</filename>
            <type>text/plain</type>
            <size>32686</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4ODY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTE0ZjM5ZWQzZWE4MWVl
MjgwOTAxZjY1Y2IyZGZlYTcxZTVjNWE2NC4uOTc2MzA5ZDFjYTk1Y2IyMzkzMTI2NTBmNzJiMzY2
NTRkOWZkMGNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIyLTAxLTMxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
UmVtb3ZlIERpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGUgYW5kIERpc3BsYXlMaXN0OjpS
ZWNvcmRlckltcGw6OkRlbGVnYXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzU5MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGVzZSBjbGFzc2VzIGFyZSBhYnN0cmFjdCBjbGFzc2VzIGFuZCB0aGV5
IGFyZSBub3Qgb3ZlcnJpZGRlbiBieSBhbnkKKyAgICAgICAgY2xpZW50IHJpZ2h0IG5vdy4gVGhl
c2UgdW51c2VkIGNsYXNzZXMgc2hvdWxkIGJlIHJlbW92ZWQgYWZ0ZXIgdGhlIGRpc3BsYXkKKyAg
ICAgICAgbGlzdCBzdHJlYW0gY29ubmVjdGlvbiByZWZhY3RvcmluZy4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
YXNjYWRlOjpkaXNwbGF5TGlzdEZvclRleHRSdW4gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6
Y2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcjo6cHJlcGFyZVRvQXBwZW5kRGlzcGxheUxpc3RJdGVtcyk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJh
d2luZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdpbmdD
b250ZXh0OjpEcmF3aW5nQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEcmF3aW5nQ29udGV4dDo6RHJhd2luZ0NvbnRleHQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZWNvcmRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdFJlY29yZGVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
UmVjb3JkZXJJbXBsOjpSZWNvcmRlckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVySW1wbDo6cmVjb3JkUmVzb3VyY2VVc2UpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6Y2FuQXBwZW5kSXRlbU9mVHlwZSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXJJbXBsOjpjYW5E
cmF3SW1hZ2VCdWZmZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OlJlY29yZGVySW1wbDo6cmVuZGVyaW5nTW9kZSBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJ
bXBsLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXJJbXBsOjphcHBl
bmQpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6RGVsZWdh
dGU6On5EZWxlZ2F0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
UmVjb3JkZXJJbXBsOjpEZWxlZ2F0ZTo6Y2FuQXBwZW5kSXRlbU9mVHlwZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXJJbXBsOjpEZWxlZ2F0ZTo6cmVj
b3JkTmF0aXZlSW1hZ2VVc2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVySW1wbDo6RGVsZWdhdGU6OmlzQ2FjaGVkSW1hZ2VCdWZmZXIgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6RGVs
ZWdhdGU6OnJlY29yZEZvbnRVc2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OlJlY29yZGVySW1wbDo6RGVsZWdhdGU6OnJlY29yZEltYWdlQnVmZmVyVXNlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlckltcGw6OkRlbGVn
YXRlOjpyZW5kZXJpbmdNb2RlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVwbGF5ZXI6OlJlcGxheWVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjphcHBseUltYWdlQnVmZmVySXRlbSk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6YXBwbHlOYXRpdmVJbWFnZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OmFwcGx5U2V0U3RhdGVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjphcHBseUZvbnRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpS
ZXBsYXllcjo6YXBwbHlJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlcGxheWVyOjpEZWxlZ2F0ZTo6fkRlbGVnYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGU6OmFwcGx5KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGU6OmRpZENy
ZWF0ZU1hc2tJbWFnZUJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6UmVwbGF5ZXI6OkRlbGVnYXRlOjpkaWRSZXNldE1hc2tJbWFnZUJ1ZmZlcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVwbGF5ZXI6OkRlbGVnYXRlOjpy
ZWNvcmRSZXNvdXJjZVVzZSk6IERlbGV0ZWQuCisKIDIwMjItMDEtMzEgIEJyZW50IEZ1bGdoYW0g
IDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGhhbmRsaW5nIG9mIGFjY2VzcyBr
ZXkgZXZlbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNhZjcyYjM4ZjQ0ZjAxNWYzNDQ0YzUyZmJkNWY2M2RkYWI2
NTRmMDEuLmY3M2NjOTcyZWMzOGZmMDc3MGM0ZjJkNjdlNmRhNTBmMTViZmQ2ODEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMjItMDEtMzEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBh
cHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBSZW1vdmUgRGlzcGxheUxpc3Q6OlJl
cGxheWVyOjpEZWxlZ2F0ZSBhbmQgRGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6RGVsZWdhdGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTkzOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRSZXNv
dXJjZVVzZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94
eTo6Y2FuRHJhd0ltYWdlQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaDoKKwogMjAy
Mi0wMS0zMSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBb
R1BVIFByb2Nlc3NdIFBhdHRlcm4gc2hvdWxkIGhvbGQgU291cmNlSW1hZ2Ugd2hpY2ggY2FuIGJl
IGNvbnZlcnRlZCB0byBhIE5hdGl2ZUltYWdlIG9ubHkgd2hlbiBuZWVkZWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcAppbmRleCAyYTc2MTM2
MmM4M2ZhNjg1YjUxYzZlZTA1MmM2YjEzNWMwMjVmOWEwLi4wOGQyZTY3ODJhMTM4MTU4MjgyMzIy
NThjODFkMjYwYmJkZGM1OWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udENhc2NhZGUuY3BwCkBAIC0yMTQsNyArMjE0LDcgQEAgc3RkOjp1bmlxdWVfcHRy
PERpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0PiBGb250Q2FzY2FkZTo6ZGlzcGxheUxp
c3RGb3JUZXgKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCiAgICAgc3RkOjp1bmlxdWVf
cHRyPERpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0PiBkaXNwbGF5TGlzdCA9IG1ha2VV
bmlxdWU8RGlzcGxheUxpc3Q6OkluTWVtb3J5RGlzcGxheUxpc3Q+KCk7Ci0gICAgRGlzcGxheUxp
c3Q6OlJlY29yZGVySW1wbCByZWNvcmRpbmdDb250ZXh0KCpkaXNwbGF5TGlzdCwgY29udGV4dC5z
dGF0ZSgpLCBGbG9hdFJlY3QoKSwgQWZmaW5lVHJhbnNmb3JtKCksIG51bGxwdHIsIERyYXdHbHlw
aHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzOjpObyk7CisgICAgRGlzcGxheUxpc3Q6
OlJlY29yZGVySW1wbCByZWNvcmRpbmdDb250ZXh0KCpkaXNwbGF5TGlzdCwgY29udGV4dC5zdGF0
ZSgpLCBGbG9hdFJlY3QoKSwgQWZmaW5lVHJhbnNmb3JtKCksIERyYXdHbHlwaHNSZWNvcmRlcjo6
RGVjb25zdHJ1Y3REcmF3R2x5cGhzOjpObyk7CiAgICAgCiAgICAgRmxvYXRQb2ludCBzdGFydFBv
aW50ID0gdG9GbG9hdFBvaW50KFdlYkNvcmU6OnNpemUoZ2x5cGhCdWZmZXIuaW5pdGlhbEFkdmFu
Y2UoKSkpOwogICAgIGRyYXdHbHlwaEJ1ZmZlcihyZWNvcmRpbmdDb250ZXh0LCBnbHlwaEJ1ZmZl
ciwgc3RhcnRQb2ludCwgY3VzdG9tRm9udE5vdFJlYWR5QWN0aW9uKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IGQyZDliZTllZjQwMzJm
YWEyNWJlNjJjYWNlNDM3ODJkZWZjYjc0MTUuLjRiNzFmMjM1M2M4ZDBjZDhlZGY0YWY1ZTU5MjZi
N2RlMjkyYzhhNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXIuaApAQCAtOTUsOSArOTUsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGZs
dXNoRHJhd2luZ0NvbnRleHRBc3luYygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRGbHVzaChH
cmFwaGljc0NvbnRleHRGbHVzaElkZW50aWZpZXIpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGNo
YW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXIoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSB7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvQXBwZW5kRGlzcGxheUxpc3RJdGVtcyhEaXNw
bGF5TGlzdDo6SXRlbUJ1ZmZlckhhbmRsZSYmKSB7IH0KLQogICAgIHZpcnR1YWwgRmxvYXRTaXpl
IGxvZ2ljYWxTaXplKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgSW50U2l6ZSB0cnVuY2F0ZWRM
b2dpY2FsU2l6ZSgpIGNvbnN0ID0gMDsgLy8gVGhpcyB0cnVuY2F0ZXMgdGhlIHJlYWwgc2l6ZS4g
WW91IHByb2JhYmx5IHNob3VsZCBiZSBjYWxsaW5nIGxvZ2ljYWxTaXplKCkgaW5zdGVhZC4KICAg
ICB2aXJ0dWFsIGZsb2F0IHJlc29sdXRpb25TY2FsZSgpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dERyYXdpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmNwcAppbmRleCAzNjJkNDM2NzUy
YWM3M2E5YmMzYjNjYzhjMDU2YWE0ZDdmMDdiMjQ1Li4wYzI1MjI2NGFmNDE2NjU2MjE3NTE2MDQx
MDQyYThiZGQzYmZhYmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJh
d2luZ0NvbnRleHQuY3BwCkBAIC0zMyw4ICszMyw4IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBu
YW1lc3BhY2UgRGlzcGxheUxpc3QgewogCi1EcmF3aW5nQ29udGV4dDo6RHJhd2luZ0NvbnRleHQo
Y29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0
aWFsQ1RNLCBSZWNvcmRlckltcGw6OkRlbGVnYXRlKiBkZWxlZ2F0ZSkKLSAgICA6IG1fY29udGV4
dChtX2Rpc3BsYXlMaXN0LCBHcmFwaGljc0NvbnRleHRTdGF0ZSgpLCBGbG9hdFJlY3QoeyB9LCBs
b2dpY2FsU2l6ZSksIGluaXRpYWxDVE0sIGRlbGVnYXRlKQorRHJhd2luZ0NvbnRleHQ6OkRyYXdp
bmdDb250ZXh0KGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgaW5pdGlhbENUTSkKKyAgICA6IG1fY29udGV4dChtX2Rpc3BsYXlMaXN0LCBHcmFwaGlj
c0NvbnRleHRTdGF0ZSgpLCBGbG9hdFJlY3QoeyB9LCBsb2dpY2FsU2l6ZSksIGluaXRpYWxDVE0p
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5o
CmluZGV4IDE3ZjIyZTkwM2VhNjBkMDllOTBlMjBjM2U5N2JjMTNiY2FjNzIzZGMuLmE3ODY0NmU4
YjJiYTMzNGJjYTI2MTMwZmQ0MmI5OTIxNDhkNGY2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBJbk1l
bW9yeURpc3BsYXlMaXN0OwogY2xhc3MgRHJhd2luZ0NvbnRleHQgewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIERyYXdpbmdDb250ZXh0
KGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5p
dGlhbENUTSA9IHsgfSwgUmVjb3JkZXJJbXBsOjpEZWxlZ2F0ZSogPSBudWxscHRyKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBEcmF3aW5nQ29udGV4dChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXpl
LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0gPSB7IH0pOwogCiAgICAgR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxEcmF3aW5nQ29u
dGV4dCY+KCp0aGlzKS5tX2NvbnRleHQ7IH0KICAgICBSZWNvcmRlckltcGwmIHJlY29yZGVyKCkg
eyByZXR1cm4gbV9jb250ZXh0OyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdl
QnVmZmVyLmgKaW5kZXggN2VhMmExNGM3OGYzODVmYTdlZmQ5OTY1YjllMmMyZDlkNTAwMjEwMC4u
ZThmNjhhMzczZGJlZDkyODI1NmUxZjI5YzNmMmVkNjk3YjM2NmFjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1h
Z2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCkBAIC02MCw5ICs2MCw5IEBAIHB1YmxpYzoK
ICAgICAgICAgbV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpLnNldEl0ZW1CdWZmZXJSZWFk
aW5nQ2xpZW50KG1fcmVhZGluZ0NsaWVudC5nZXQoKSk7CiAgICAgfQogCi0gICAgSW1hZ2VCdWZm
ZXIoY29uc3QgSW1hZ2VCdWZmZXJCYWNrZW5kOjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBSZWNv
cmRlckltcGw6OkRlbGVnYXRlKiBkZWxlZ2F0ZSA9IG51bGxwdHIpCisgICAgSW1hZ2VCdWZmZXIo
Y29uc3QgSW1hZ2VCdWZmZXJCYWNrZW5kOjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgICAg
ICA6IEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyKHBhcmFtZXRlcnMpCi0gICAgICAgICwgbV9kcmF3
aW5nQ29udGV4dChsb2dpY2FsU2l6ZSgpLCBiYXNlVHJhbnNmb3JtKCksIGRlbGVnYXRlKQorICAg
ICAgICAsIG1fZHJhd2luZ0NvbnRleHQobG9naWNhbFNpemUoKSwgYmFzZVRyYW5zZm9ybSgpKQog
ICAgICAgICAsIG1fd3JpdGluZ0NsaWVudChtYWtlVW5pcXVlPEluTWVtb3J5RGlzcGxheUxpc3Q6
OldyaXRpbmdDbGllbnQ+KCkpCiAgICAgICAgICwgbV9yZWFkaW5nQ2xpZW50KG1ha2VVbmlxdWU8
SW5NZW1vcnlEaXNwbGF5TGlzdDo6UmVhZGluZ0NsaWVudD4oKSkKICAgICB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCA5YjJiMGI5Mzc5MDFkODY1MTE2MWViODJi
OTBmNGQwNWI5NDI1ZTBmLi40MGU3YTBjMjU2MDM3MTM1OWNhZWRkZmRkNTM5MjA1ZWQxNTg3ZTk4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTE0NCwxMCArMTQ0
LDYgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCByZWNvcmRSZXNvdXJjZVVzZShjb25z
dCBTb3VyY2VJbWFnZSYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgcmVjb3JkUmVzb3VyY2VVc2Uo
Rm9udCYpID0gMDsKIAotICAgIC8vIEZJWE1FOiBNYXliZSByZW1vdmUgdGhpcz8KLSAgICB2aXJ0
dWFsIGJvb2wgY2FuRHJhd0ltYWdlQnVmZmVyKGNvbnN0IEltYWdlQnVmZmVyJikgY29uc3QgPSAw
OwotICAgIHZpcnR1YWwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKCkgY29uc3QgPSAwOwot
CiAgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0PiBjcmVhdGVOZXN0
ZWRDb250ZXh0KGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgaW5pdGlhbENUTSkgPSAwOwogCiAgICAgc3RydWN0IENvbnRleHRTdGF0ZSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZWNvcmRlckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmNwcAppbmRleCBmZTUxNTU4
ZDc4MjM1MzQxOWE2NGM5YTdmOWI4OTc5MDNhYTZmOWE0Li4zZWNiYzdiYTMzMzVmYzdiYmFiZjkw
ZTE0N2RjM2JhOTM0ZjY0ODY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVySW1wbC5jcHAKQEAgLTQyLDEwICs0Miw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBu
YW1lc3BhY2UgRGlzcGxheUxpc3QgewogCi1SZWNvcmRlckltcGw6OlJlY29yZGVySW1wbChEaXNw
bGF5TGlzdCYgZGlzcGxheUxpc3QsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwg
Y29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0
aWFsQ1RNLCBEZWxlZ2F0ZSogZGVsZWdhdGUsIERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1
Y3REcmF3R2x5cGhzIGRlY29uc3RydWN0RHJhd0dseXBocykKK1JlY29yZGVySW1wbDo6UmVjb3Jk
ZXJJbXBsKERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3Rh
dGUmIHN0YXRlLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIGluaXRpYWxDVE0sIERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5
cGhzIGRlY29uc3RydWN0RHJhd0dseXBocykKICAgICA6IFJlY29yZGVyKHN0YXRlLCBpbml0aWFs
Q2xpcCwgaW5pdGlhbENUTSwgZGVjb25zdHJ1Y3REcmF3R2x5cGhzKQogICAgICwgbV9kaXNwbGF5
TGlzdChkaXNwbGF5TGlzdCkKLSAgICAsIG1fZGVsZWdhdGUoZGVsZWdhdGUpCiB7CiAgICAgTE9H
X1dJVEhfU1RSRUFNKERpc3BsYXlMaXN0cywgc3RyZWFtIDw8ICJcblJlY29yZGluZyB3aXRoIGNs
aXAgIiA8PCBpbml0aWFsQ2xpcCk7CiB9CkBAIC01Myw3ICs1Miw2IEBAIFJlY29yZGVySW1wbDo6
UmVjb3JkZXJJbXBsKERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgY29uc3QgR3JhcGhpY3NDb250
ZXh0U3RhdGUmCiBSZWNvcmRlckltcGw6OlJlY29yZGVySW1wbChSZWNvcmRlckltcGwmIHBhcmVu
dCwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlLCBjb25zdCBGbG9hdFJlY3QmIGlu
aXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0pCiAgICAgOiBSZWNv
cmRlcihwYXJlbnQsIHN0YXRlLCBpbml0aWFsQ2xpcCwgaW5pdGlhbENUTSkKICAgICAsIG1fZGlz
cGxheUxpc3QocGFyZW50Lm1fZGlzcGxheUxpc3QpCi0gICAgLCBtX2RlbGVnYXRlKHBhcmVudC5t
X2RlbGVnYXRlKQogICAgICwgbV9pc05lc3RlZCh0cnVlKQogewogfQpAQCAtNzUsMjEgKzczLDYg
QEAgdm9pZCBSZWNvcmRlckltcGw6OnB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiBw
aXhlbEJ1ZmZlciwgY29uc3QgSW50UmVjdCYKICAgICBhcHBlbmQ8UHV0UGl4ZWxCdWZmZXI+KHBp
eGVsQnVmZmVyLCBzcmNSZWN0LCBkZXN0UG9pbnQsIGRlc3RGb3JtYXQpOwogfQogCi1ib29sIFJl
Y29yZGVySW1wbDo6Y2FuQXBwZW5kSXRlbU9mVHlwZShJdGVtVHlwZSB0eXBlKSBjb25zdAotewot
ICAgIHJldHVybiAhbV9kZWxlZ2F0ZSB8fCBtX2RlbGVnYXRlLT5jYW5BcHBlbmRJdGVtT2ZUeXBl
KHR5cGUpOwotfQotCi1ib29sIFJlY29yZGVySW1wbDo6Y2FuRHJhd0ltYWdlQnVmZmVyKGNvbnN0
IEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlcikgY29uc3QKLXsKLSAgICByZXR1cm4gIW1fZGVsZWdh
dGUgfHwgbV9kZWxlZ2F0ZS0+aXNDYWNoZWRJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcik7Ci19Ci0K
LVJlbmRlcmluZ01vZGUgUmVjb3JkZXJJbXBsOjpyZW5kZXJpbmdNb2RlKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gbV9kZWxlZ2F0ZSA/IG1fZGVsZWdhdGUtPnJlbmRlcmluZ01vZGUoKSA6IFJlbmRl
cmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7Ci19Ci0KIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0Nv
bnRleHQ+IFJlY29yZGVySW1wbDo6Y3JlYXRlTmVzdGVkQ29udGV4dChjb25zdCBGbG9hdFJlY3Qm
IGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0pCiB7CiAgICAg
cmV0dXJuIG1ha2VVbmlxdWU8UmVjb3JkZXJJbXBsPigqdGhpcywgR3JhcGhpY3NDb250ZXh0U3Rh
dGUgeyB9LCBpbml0aWFsQ2xpcCwgaW5pdGlhbENUTSk7CkBAIC00MjEsMTggKzQwNCwxMiBAQCB2
b2lkIFJlY29yZGVySW1wbDo6cmVjb3JkQXBwbHlEZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2Fs
ZUZhY3RvcikKIAogYm9vbCBSZWNvcmRlckltcGw6OnJlY29yZFJlc291cmNlVXNlKE5hdGl2ZUlt
YWdlJiBuYXRpdmVJbWFnZSkKIHsKLSAgICBpZiAobV9kZWxlZ2F0ZSkKLSAgICAgICAgbV9kZWxl
Z2F0ZS0+cmVjb3JkTmF0aXZlSW1hZ2VVc2UobmF0aXZlSW1hZ2UpOwogICAgIG1fZGlzcGxheUxp
c3QuY2FjaGVOYXRpdmVJbWFnZShuYXRpdmVJbWFnZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
IGJvb2wgUmVjb3JkZXJJbXBsOjpyZWNvcmRSZXNvdXJjZVVzZShJbWFnZUJ1ZmZlciYgaW1hZ2VC
dWZmZXIpCiB7Ci0gICAgaWYgKCFjYW5EcmF3SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKG1fZGVsZWdhdGUpCi0gICAgICAgIG1fZGVsZWdh
dGUtPnJlY29yZEltYWdlQnVmZmVyVXNlKGltYWdlQnVmZmVyKTsKICAgICBtX2Rpc3BsYXlMaXN0
LmNhY2hlSW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIpOwogICAgIHJldHVybiB0cnVlOwogfQpAQCAt
NDUwLDggKzQyNyw2IEBAIGJvb2wgUmVjb3JkZXJJbXBsOjpyZWNvcmRSZXNvdXJjZVVzZShjb25z
dCBTb3VyY2VJbWFnZSYgaW1hZ2UpCiAKIGJvb2wgUmVjb3JkZXJJbXBsOjpyZWNvcmRSZXNvdXJj
ZVVzZShGb250JiBmb250KQogewotICAgIGlmIChtX2RlbGVnYXRlKQotICAgICAgICBtX2RlbGVn
YXRlLT5yZWNvcmRGb250VXNlKGZvbnQpOwogICAgIG1fZGlzcGxheUxpc3QuY2FjaGVGb250KGZv
bnQpOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZWNvcmRlckltcGwuaAppbmRleCBlZDQ3MTBiM2Q2OTAzYmVkNjI2OWNkYmM2YjI1N2Y1N2ZmZjU4
OGVjLi45MjZjMzNiMzExMTIyNTVlYzMyYzIyNDZlMzI5MTllMThlY2Y1NDAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RSZWNvcmRlckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuaApAQCAtMzUsMjUgKzM1LDEzIEBA
IGNsYXNzIFJlY29yZGVySW1wbCA6IHB1YmxpYyBSZWNvcmRlciB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVjb3JkZXJJbXBsKTsKIHB1
YmxpYzoKLSAgICBjbGFzcyBEZWxlZ2F0ZTsKLSAgICBXRUJDT1JFX0VYUE9SVCBSZWNvcmRlcklt
cGwoRGlzcGxheUxpc3QmLCBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYsIGNvbnN0IEZsb2F0
UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIERlbGVnYXRlKiA9IG51
bGxwdHIsIERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzID0gRHJhd0ds
eXBoc1JlY29yZGVyOjpEZWNvbnN0cnVjdERyYXdHbHlwaHM6Olllcyk7CisgICAgV0VCQ09SRV9F
WFBPUlQgUmVjb3JkZXJJbXBsKERpc3BsYXlMaXN0JiwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3Rh
dGUmLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
LCBEcmF3R2x5cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0RHJhd0dseXBocyA9IERyYXdHbHlwaHNS
ZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzOjpZZXMpOwogICAgIFJlY29yZGVySW1wbChS
ZWNvcmRlckltcGwmIHBhcmVudCwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmLCBjb25zdCBG
bG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0p
OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+UmVjb3JkZXJJbXBsKCk7CiAKICAgICBi
b29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlMaXN0LmlzRW1wdHkoKTsgfQog
Ci0gICAgY2xhc3MgRGVsZWdhdGUgewotICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB+RGVs
ZWdhdGUoKSB7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGNhbkFwcGVuZEl0ZW1PZlR5cGUoSXRl
bVR5cGUpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZWNvcmROYXRp
dmVJbWFnZVVzZShOYXRpdmVJbWFnZSYpIHsgfQotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNDYWNo
ZWRJbWFnZUJ1ZmZlcihjb25zdCBJbWFnZUJ1ZmZlciYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZWNvcmRGb250VXNlKEZvbnQmKSB7IH0KLSAgICAgICAg
dmlydHVhbCB2b2lkIHJlY29yZEltYWdlQnVmZmVyVXNlKEltYWdlQnVmZmVyJikgeyB9Ci0gICAg
ICAgIHZpcnR1YWwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4g
UmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZDsgfQotICAgIH07Ci0KICAgICB2b2lkIGdldFBp
eGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IElu
dFJlY3QmIHNvdXJjZVJlY3QpIGZpbmFsOwogICAgIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3Qg
UGl4ZWxCdWZmZXImLCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVz
dFBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpIGZpbmFsOwogICAgIHZv
aWQgY29udmVydFRvTHVtaW5hbmNlTWFzaygpIGZpbmFsIHsgfQpAQCAtNjEsMTAgKzQ5LDYgQEAg
cHVibGljOgogICAgIHZvaWQgZmx1c2hDb250ZXh0KEdyYXBoaWNzQ29udGV4dEZsdXNoSWRlbnRp
ZmllciBpZGVudGlmaWVyKSBmaW5hbCB7IGFwcGVuZDxGbHVzaENvbnRleHQ+KGlkZW50aWZpZXIp
OyB9CiAKIHByaXZhdGU6Ci0gICAgLy8gRklYTUU6IE1heWJlIHJlbW92ZSB0aGlzPwotICAgIGJv
b2wgY2FuRHJhd0ltYWdlQnVmZmVyKGNvbnN0IEltYWdlQnVmZmVyJikgY29uc3QgZmluYWw7Ci0g
ICAgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKCkgY29uc3QgZmluYWw7Ci0KICAgICB2b2lk
IHJlY29yZFNhdmUoKSBmaW5hbDsKICAgICB2b2lkIHJlY29yZFJlc3RvcmUoKSBmaW5hbDsKICAg
ICB2b2lkIHJlY29yZFRyYW5zbGF0ZShmbG9hdCB4LCBmbG9hdCB5KSBmaW5hbDsKQEAgLTE0Niw5
ICsxMzAsNiBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIGNsYXNzLi4uIEFy
Z3M+CiAgICAgdm9pZCBhcHBlbmQoQXJncyYmLi4uIGFyZ3MpCiAgICAgewotICAgICAgICBpZiAo
VU5MSUtFTFkoIWNhbkFwcGVuZEl0ZW1PZlR5cGUoVDo6aXRlbVR5cGUpKSkKLSAgICAgICAgICAg
IHJldHVybjsKLQogICAgICAgICBtX2Rpc3BsYXlMaXN0LmFwcGVuZDxUPihzdGQ6OmZvcndhcmQ8
QXJncz4oYXJncykuLi4pOwogCiAgICAgICAgIGlmIGNvbnN0ZXhwciAoVDo6aXNEcmF3aW5nSXRl
bSkgewpAQCAtMTY2LDEwICsxNDcsOCBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIEZsb2F0UmVj
dCBleHRlbnRGcm9tTG9jYWxCb3VuZHMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBjYW5BcHBlbmRJdGVtT2ZUeXBlKEl0ZW1UeXBlKSBjb25zdDsKIAog
ICAgIERpc3BsYXlMaXN0JiBtX2Rpc3BsYXlMaXN0OwotICAgIERlbGVnYXRlKiBtX2RlbGVnYXRl
IHsgbnVsbHB0ciB9OwogICAgIGJvb2wgbV9pc05lc3RlZCB7IGZhbHNlIH07CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZXBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAKaW5kZXggNmYyMmIyYzg3MTQyMGRm
MGI2OTU2MzQzZmIwMTk5MzYzNTI4ZDkzNi4uYjg5NTc0ZDc3ZDUwMGExZTVlZWU0Yzc0ZTAyNTdi
MTdiNzE4ODNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcApA
QCAtMzcsOTUgKzM3LDc2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxh
eUxpc3QgewogCi1SZXBsYXllcjo6UmVwbGF5ZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBj
b25zdCBEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIGNvbnN0IFJlc291cmNlSGVhcCogcmVzb3Vy
Y2VIZWFwLCBJbWFnZUJ1ZmZlciogbWFza0ltYWdlQnVmZmVyLCBEZWxlZ2F0ZSogZGVsZWdhdGUp
CitSZXBsYXllcjo6UmVwbGF5ZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBEaXNw
bGF5TGlzdCYgZGlzcGxheUxpc3QsIGNvbnN0IFJlc291cmNlSGVhcCogcmVzb3VyY2VIZWFwKQog
ICAgIDogbV9jb250ZXh0KGNvbnRleHQpCi0gICAgLCBtX21hc2tJbWFnZUJ1ZmZlcihtYXNrSW1h
Z2VCdWZmZXIpCiAgICAgLCBtX2Rpc3BsYXlMaXN0KGRpc3BsYXlMaXN0KQogICAgICwgbV9yZXNv
dXJjZUhlYXAocmVzb3VyY2VIZWFwID8gKnJlc291cmNlSGVhcCA6IG1fZGlzcGxheUxpc3QucmVz
b3VyY2VIZWFwKCkpCi0gICAgLCBtX2RlbGVnYXRlKGRlbGVnYXRlKQogewogfQogCi1SZXBsYXll
cjo6flJlcGxheWVyKCkgPSBkZWZhdWx0OwotCiBHcmFwaGljc0NvbnRleHQmIFJlcGxheWVyOjpj
b250ZXh0KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9tYXNrSW1hZ2VCdWZmZXIgPyBtX21hc2tJ
bWFnZUJ1ZmZlci0+Y29udGV4dCgpIDogbV9jb250ZXh0OwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBU
PgotaW5saW5lIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cj4gYXBwbHlJbWFnZUJ1ZmZlckl0ZW0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBS
ZXNvdXJjZUhlYXAmIHJlc291cmNlSGVhcCwgSXRlbUhhbmRsZSBpdGVtLCBSZXBsYXllcjo6RGVs
ZWdhdGUqIGRlbGVnYXRlKQoraW5saW5lIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcj4gYXBwbHlJbWFnZUJ1ZmZlckl0ZW0oR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBSZXNvdXJjZUhlYXAmIHJlc291cmNlSGVhcCwgSXRlbUhhbmRsZSBpdGVt
KQogewogICAgIGF1dG8mIGltYWdlQnVmZmVySXRlbSA9IGl0ZW0uZ2V0PFQ+KCk7CiAgICAgYXV0
byByZXNvdXJjZUlkZW50aWZpZXIgPSBpbWFnZUJ1ZmZlckl0ZW0uaW1hZ2VCdWZmZXJJZGVudGlm
aWVyKCk7CiAgICAgaWYgKGF1dG8qIGltYWdlQnVmZmVyID0gcmVzb3VyY2VIZWFwLmdldEltYWdl
QnVmZmVyKHJlc291cmNlSWRlbnRpZmllcikpIHsKICAgICAgICAgaW1hZ2VCdWZmZXJJdGVtLmFw
cGx5KGNvbnRleHQsICppbWFnZUJ1ZmZlcik7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSkKLSAgICAg
ICAgICAgIGRlbGVnYXRlLT5yZWNvcmRSZXNvdXJjZVVzZShyZXNvdXJjZUlkZW50aWZpZXIpOwog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KICAgICByZXR1cm4gcmVzb3VyY2VJ
ZGVudGlmaWVyOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBUPgotaW5saW5lIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gYXBwbHlOYXRpdmVJbWFnZUl0ZW0o
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZUhlYXAmIHJlc291cmNlSGVh
cCwgSXRlbUhhbmRsZSBpdGVtLCBSZXBsYXllcjo6RGVsZWdhdGUqIGRlbGVnYXRlKQoraW5saW5l
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gYXBwbHlO
YXRpdmVJbWFnZUl0ZW0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZUhl
YXAmIHJlc291cmNlSGVhcCwgSXRlbUhhbmRsZSBpdGVtKQogewogICAgIGF1dG8mIG5hdGl2ZUlt
YWdlSXRlbSA9IGl0ZW0uZ2V0PFQ+KCk7CiAgICAgYXV0byByZXNvdXJjZUlkZW50aWZpZXIgPSBu
YXRpdmVJbWFnZUl0ZW0uaW1hZ2VJZGVudGlmaWVyKCk7CiAgICAgaWYgKGF1dG8qIGltYWdlID0g
cmVzb3VyY2VIZWFwLmdldE5hdGl2ZUltYWdlKHJlc291cmNlSWRlbnRpZmllcikpIHsKICAgICAg
ICAgbmF0aXZlSW1hZ2VJdGVtLmFwcGx5KGNvbnRleHQsICppbWFnZSk7Ci0gICAgICAgIGlmIChk
ZWxlZ2F0ZSkKLSAgICAgICAgICAgIGRlbGVnYXRlLT5yZWNvcmRSZXNvdXJjZVVzZShyZXNvdXJj
ZUlkZW50aWZpZXIpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KICAgICBy
ZXR1cm4gcmVzb3VyY2VJZGVudGlmaWVyOwogfQogCi1pbmxpbmUgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBhcHBseVNldFN0YXRlSXRlbShHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFJlc291cmNlSGVhcCYgcmVzb3VyY2VIZWFwLCBJdGVt
SGFuZGxlIGl0ZW0sIFJlcGxheWVyOjpEZWxlZ2F0ZSogZGVsZWdhdGUpCitpbmxpbmUgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBhcHBseVNldFN0YXRl
SXRlbShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFJlc291cmNlSGVhcCYgcmVzb3Vy
Y2VIZWFwLCBJdGVtSGFuZGxlIGl0ZW0pCiB7Ci0gICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIHN0cm9rZVBhdHRlcm5JbWFnZUlkZW50aWZpZXI7Ci0gICAgUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIGZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyOwogICAgIGF1dG8mIHNldFN0YXRl
SXRlbSA9IGl0ZW0uZ2V0PFNldFN0YXRlPigpOwogCi0gICAgaWYgKGF1dG8mIHN0cm9rZVBhdHRl
cm4gPSBzZXRTdGF0ZUl0ZW0uc3RhdGVDaGFuZ2UoKS5tX3N0YXRlLnN0cm9rZVBhdHRlcm4pIHsK
LSAgICAgICAgc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllciA9IHN0cm9rZVBhdHRlcm4tPnRp
bGVJbWFnZSgpLmltYWdlSWRlbnRpZmllcigpOwotICAgICAgICBhdXRvIHN0cm9rZVBhdHRlcm5J
bWFnZSA9IHJlc291cmNlSGVhcC5nZXRTb3VyY2VJbWFnZShzdHJva2VQYXR0ZXJuSW1hZ2VJZGVu
dGlmaWVyKTsKLSAgICAgICAgaWYgKCFzdHJva2VQYXR0ZXJuSW1hZ2UpCi0gICAgICAgICAgICBy
ZXR1cm4gc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcjsKLQotICAgICAgICBzdHJva2VQYXR0
ZXJuLT5zZXRUaWxlSW1hZ2UoV1RGTW92ZSgqc3Ryb2tlUGF0dGVybkltYWdlKSk7Ci0gICAgfQor
ICAgIGF1dG8gZml4UGF0dGVyblRpbGVJbWFnZSA9IFsmXShQYXR0ZXJuKiBwYXR0ZXJuKSAtPiBz
dGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4geworICAgICAgICBpZiAo
IXBhdHRlcm4pCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgaWYgKGF1
dG8mIGZpbGxQYXR0ZXJuID0gc2V0U3RhdGVJdGVtLnN0YXRlQ2hhbmdlKCkubV9zdGF0ZS5maWxs
UGF0dGVybikgewotICAgICAgICBmaWxsUGF0dGVybkltYWdlSWRlbnRpZmllciA9IGZpbGxQYXR0
ZXJuLT50aWxlSW1hZ2UoKS5pbWFnZUlkZW50aWZpZXIoKTsKLSAgICAgICAgYXV0byBmaWxsUGF0
dGVybkltYWdlID0gcmVzb3VyY2VIZWFwLmdldFNvdXJjZUltYWdlKGZpbGxQYXR0ZXJuSW1hZ2VJ
ZGVudGlmaWVyKTsKLSAgICAgICAgaWYgKCFmaWxsUGF0dGVybkltYWdlKQotICAgICAgICAgICAg
cmV0dXJuIGZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyOworICAgICAgICBhdXRvIGltYWdlSWRl
bnRpZmllciA9IHBhdHRlcm4tPnRpbGVJbWFnZSgpLmltYWdlSWRlbnRpZmllcigpOworICAgICAg
ICBhdXRvIHNvdXJjZUltYWdlID0gcmVzb3VyY2VIZWFwLmdldFNvdXJjZUltYWdlKGltYWdlSWRl
bnRpZmllcik7CisgICAgICAgIGlmICghc291cmNlSW1hZ2UpCisgICAgICAgICAgICByZXR1cm4g
aW1hZ2VJZGVudGlmaWVyOwogCi0gICAgICAgIGZpbGxQYXR0ZXJuLT5zZXRUaWxlSW1hZ2UoV1RG
TW92ZSgqZmlsbFBhdHRlcm5JbWFnZSkpOwotICAgIH0KKyAgICAgICAgcGF0dGVybi0+c2V0VGls
ZUltYWdlKFdURk1vdmUoKnNvdXJjZUltYWdlKSk7CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisgICAgfTsKIAotICAgIHNldFN0YXRlSXRlbS5hcHBseShjb250ZXh0KTsKKyAgICBpZiAo
YXV0byBpbWFnZUlkZW50aWZpZXIgPSBmaXhQYXR0ZXJuVGlsZUltYWdlKHNldFN0YXRlSXRlbS5z
dGF0ZUNoYW5nZSgpLm1fc3RhdGUuc3Ryb2tlUGF0dGVybi5nZXQoKSkpCisgICAgICAgIHJldHVy
biAqaW1hZ2VJZGVudGlmaWVyOwogCi0gICAgaWYgKCFkZWxlZ2F0ZSkKLSAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAoYXV0byBpbWFnZUlkZW50aWZpZXIgPSBmaXhQYXR0ZXJu
VGlsZUltYWdlKHNldFN0YXRlSXRlbS5zdGF0ZUNoYW5nZSgpLm1fc3RhdGUuZmlsbFBhdHRlcm4u
Z2V0KCkpKQorICAgICAgICByZXR1cm4gaW1hZ2VJZGVudGlmaWVyOwogCi0gICAgaWYgKHN0cm9r
ZVBhdHRlcm5JbWFnZUlkZW50aWZpZXIpCi0gICAgICAgIGRlbGVnYXRlLT5yZWNvcmRSZXNvdXJj
ZVVzZShzdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyKTsKLSAgICBpZiAoZmlsbFBhdHRlcm5J
bWFnZUlkZW50aWZpZXIpCi0gICAgICAgIGRlbGVnYXRlLT5yZWNvcmRSZXNvdXJjZVVzZShmaWxs
UGF0dGVybkltYWdlSWRlbnRpZmllcik7CisgICAgc2V0U3RhdGVJdGVtLmFwcGx5KGNvbnRleHQp
OwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIFQ+Ci1pbmxp
bmUgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBhcHBs
eUZvbnRJdGVtKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgUmVzb3VyY2VIZWFwJiBy
ZXNvdXJjZUhlYXAsIEl0ZW1IYW5kbGUgaXRlbSwgUmVwbGF5ZXI6OkRlbGVnYXRlKiBkZWxlZ2F0
ZSkKK2lubGluZSBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXI+IGFwcGx5Rm9udEl0ZW0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBSZXNvdXJj
ZUhlYXAmIHJlc291cmNlSGVhcCwgSXRlbUhhbmRsZSBpdGVtKQogewogICAgIGF1dG8mIGZvbnRJ
dGVtID0gaXRlbS5nZXQ8VD4oKTsKICAgICBhdXRvIHJlc291cmNlSWRlbnRpZmllciA9IGZvbnRJ
dGVtLmZvbnRJZGVudGlmaWVyKCk7CiAgICAgaWYgKGF1dG8qIGZvbnQgPSByZXNvdXJjZUhlYXAu
Z2V0Rm9udChyZXNvdXJjZUlkZW50aWZpZXIpKSB7CiAgICAgICAgIGZvbnRJdGVtLmFwcGx5KGNv
bnRleHQsICpmb250KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlKQotICAgICAgICAgICAgZGVsZWdh
dGUtPnJlY29yZFJlc291cmNlVXNlKHJlc291cmNlSWRlbnRpZmllcik7CiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgfQogICAgIHJldHVybiByZXNvdXJjZUlkZW50aWZpZXI7CkBA
IC0xMzMsNDEgKzExNCwzOCBAQCBpbmxpbmUgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyPiBhcHBseUZvbnRJdGVtKEdyYXBoaWNzQwogCiBzdGQ6OnBhaXI8
c3RkOjpvcHRpb25hbDxTdG9wUmVwbGF5UmVhc29uPiwgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXI+PiBSZXBsYXllcjo6YXBwbHlJdGVtKEl0ZW1IYW5kbGUgaXRlbSkK
IHsKLSAgICBpZiAobV9kZWxlZ2F0ZSAmJiBtX2RlbGVnYXRlLT5hcHBseShpdGVtLCBjb250ZXh0
KCkpKQotICAgICAgICByZXR1cm4geyBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9OwotCiAg
ICAgaWYgKGl0ZW0uaXM8RHJhd0ltYWdlQnVmZmVyPigpKSB7Ci0gICAgICAgIGlmIChhdXRvIG1p
c3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIgPSBhcHBseUltYWdlQnVmZmVySXRlbTxEcmF3
SW1hZ2VCdWZmZXI+KGNvbnRleHQoKSwgbV9yZXNvdXJjZUhlYXAsIGl0ZW0sIG1fZGVsZWdhdGUp
KQorICAgICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBw
bHlJbWFnZUJ1ZmZlckl0ZW08RHJhd0ltYWdlQnVmZmVyPihjb250ZXh0KCksIG1fcmVzb3VyY2VI
ZWFwLCBpdGVtKSkKICAgICAgICAgICAgIHJldHVybiB7IFN0b3BSZXBsYXlSZWFzb246Ok1pc3Np
bmdDYWNoZWRSZXNvdXJjZSwgV1RGTW92ZShtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVy
KSB9OwogICAgICAgICByZXR1cm4geyBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9OwogICAg
IH0KIAogICAgIGlmIChpdGVtLmlzPENsaXBUb0ltYWdlQnVmZmVyPigpKSB7Ci0gICAgICAgIGlm
IChhdXRvIG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIgPSBhcHBseUltYWdlQnVmZmVy
SXRlbTxDbGlwVG9JbWFnZUJ1ZmZlcj4oY29udGV4dCgpLCBtX3Jlc291cmNlSGVhcCwgaXRlbSwg
bV9kZWxlZ2F0ZSkpCisgICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50
aWZpZXIgPSBhcHBseUltYWdlQnVmZmVySXRlbTxDbGlwVG9JbWFnZUJ1ZmZlcj4oY29udGV4dCgp
LCBtX3Jlc291cmNlSGVhcCwgaXRlbSkpCiAgICAgICAgICAgICByZXR1cm4geyBTdG9wUmVwbGF5
UmVhc29uOjpNaXNzaW5nQ2FjaGVkUmVzb3VyY2UsIFdURk1vdmUobWlzc2luZ0NhY2hlZFJlc291
cmNlSWRlbnRpZmllcikgfTsKICAgICAgICAgcmV0dXJuIHsgc3RkOjpudWxsb3B0LCBzdGQ6Om51
bGxvcHQgfTsKICAgICB9CiAKICAgICBpZiAoaXRlbS5pczxEcmF3TmF0aXZlSW1hZ2U+KCkpIHsK
LSAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9IGFwcGx5
TmF0aXZlSW1hZ2VJdGVtPERyYXdOYXRpdmVJbWFnZT4oY29udGV4dCgpLCBtX3Jlc291cmNlSGVh
cCwgaXRlbSwgbV9kZWxlZ2F0ZSkpCisgICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNoZWRSZXNv
dXJjZUlkZW50aWZpZXIgPSBhcHBseU5hdGl2ZUltYWdlSXRlbTxEcmF3TmF0aXZlSW1hZ2U+KGNv
bnRleHQoKSwgbV9yZXNvdXJjZUhlYXAsIGl0ZW0pKQogICAgICAgICAgICAgcmV0dXJuIHsgU3Rv
cFJlcGxheVJlYXNvbjo6TWlzc2luZ0NhY2hlZFJlc291cmNlLCBXVEZNb3ZlKG1pc3NpbmdDYWNo
ZWRSZXNvdXJjZUlkZW50aWZpZXIpIH07CiAgICAgICAgIHJldHVybiB7IHN0ZDo6bnVsbG9wdCwg
c3RkOjpudWxsb3B0IH07CiAgICAgfQogCiAgICAgaWYgKGl0ZW0uaXM8RHJhd0dseXBocz4oKSkg
ewotICAgICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBw
bHlGb250SXRlbTxEcmF3R2x5cGhzPihjb250ZXh0KCksIG1fcmVzb3VyY2VIZWFwLCBpdGVtLCBt
X2RlbGVnYXRlKSkKKyAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRp
ZmllciA9IGFwcGx5Rm9udEl0ZW08RHJhd0dseXBocz4oY29udGV4dCgpLCBtX3Jlc291cmNlSGVh
cCwgaXRlbSkpCiAgICAgICAgICAgICByZXR1cm4geyBTdG9wUmVwbGF5UmVhc29uOjpNaXNzaW5n
Q2FjaGVkUmVzb3VyY2UsIFdURk1vdmUobWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllcikg
fTsKICAgICAgICAgcmV0dXJuIHsgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfTsKICAgICB9
CiAKICAgICBpZiAoaXRlbS5pczxEcmF3UGF0dGVybj4oKSkgewotICAgICAgICBpZiAoYXV0byBt
aXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBwbHlOYXRpdmVJbWFnZUl0ZW08RHJh
d1BhdHRlcm4+KGNvbnRleHQoKSwgbV9yZXNvdXJjZUhlYXAsIGl0ZW0sIG1fZGVsZWdhdGUpKQor
ICAgICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBwbHlO
YXRpdmVJbWFnZUl0ZW08RHJhd1BhdHRlcm4+KGNvbnRleHQoKSwgbV9yZXNvdXJjZUhlYXAsIGl0
ZW0pKQogICAgICAgICAgICAgcmV0dXJuIHsgU3RvcFJlcGxheVJlYXNvbjo6TWlzc2luZ0NhY2hl
ZFJlc291cmNlLCBXVEZNb3ZlKG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIpIH07CiAg
ICAgICAgIHJldHVybiB7IHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0IH07CiAgICAgfQogCiAg
ICAgaWYgKGl0ZW0uaXM8U2V0U3RhdGU+KCkpIHsKLSAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0Nh
Y2hlZFJlc291cmNlSWRlbnRpZmllciA9IGFwcGx5U2V0U3RhdGVJdGVtKGNvbnRleHQoKSwgbV9y
ZXNvdXJjZUhlYXAsIGl0ZW0sIG1fZGVsZWdhdGUpKQorICAgICAgICBpZiAoYXV0byBtaXNzaW5n
Q2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBwbHlTZXRTdGF0ZUl0ZW0oY29udGV4dCgpLCBt
X3Jlc291cmNlSGVhcCwgaXRlbSkpCiAgICAgICAgICAgICByZXR1cm4geyBTdG9wUmVwbGF5UmVh
c29uOjpNaXNzaW5nQ2FjaGVkUmVzb3VyY2UsIFdURk1vdmUobWlzc2luZ0NhY2hlZFJlc291cmNl
SWRlbnRpZmllcikgfTsKICAgICAgICAgcmV0dXJuIHsgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxv
cHQgfTsKICAgICB9CkBAIC0xNzksOCArMTU3LDYgQEAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8
U3RvcFJlcGxheVJlYXNvbj4sIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGkK
ICAgICAgICAgbV9tYXNrSW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlQ29tcGF0aWJs
ZUJ1ZmZlcihjbGlwSXRlbS5kZXN0aW5hdGlvbigpLnNpemUoKSwgY2xpcEl0ZW0uY29sb3JTcGFj
ZSgpLCBtX2NvbnRleHQpOwogICAgICAgICBpZiAoIW1fbWFza0ltYWdlQnVmZmVyKQogICAgICAg
ICAgICAgcmV0dXJuIHsgU3RvcFJlcGxheVJlYXNvbjo6T3V0T2ZNZW1vcnksIHN0ZDo6bnVsbG9w
dCB9OwotICAgICAgICBpZiAobV9kZWxlZ2F0ZSkKLSAgICAgICAgICAgIG1fZGVsZWdhdGUtPmRp
ZENyZWF0ZU1hc2tJbWFnZUJ1ZmZlcigqbV9tYXNrSW1hZ2VCdWZmZXIpOwogICAgICAgICByZXR1
cm4geyBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9OwogICAgIH0KIApAQCAtMTkwLDggKzE2
Niw2IEBAIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFN0b3BSZXBsYXlSZWFzb24+LCBzdGQ6Om9w
dGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpCiAgICAgICAgIGF1dG8mIGNsaXBJdGVtID0g
aXRlbS5nZXQ8RW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzPigpOwogICAgICAgICBtX2NvbnRleHQu
Y2xpcFRvSW1hZ2VCdWZmZXIoKm1fbWFza0ltYWdlQnVmZmVyLCBjbGlwSXRlbS5kZXN0aW5hdGlv
bigpKTsKICAgICAgICAgbV9tYXNrSW1hZ2VCdWZmZXIgPSBudWxscHRyOwotICAgICAgICBpZiAo
bV9kZWxlZ2F0ZSkKLSAgICAgICAgICAgIG1fZGVsZWdhdGUtPmRpZFJlc2V0TWFza0ltYWdlQnVm
ZmVyKCk7CiAgICAgICAgIHJldHVybiB7IHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0IH07CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaAppbmRleCA5Mjg1YmJk
ZDEwMDQ4YzJhZWY5YmZkZDM5ZTIwYWUxYzYzM2Q1YzdjLi42Zjc3MmJmNDU1MjYzOWJiZjMwNGRi
NjZkMTliNjk4ODFmMTQ0NDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVy
LmgKQEAgLTMxLDcgKzMxLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNz
IEFscGhhUHJlbXVsdGlwbGljYXRpb24gOiB1aW50OF90OwogY2xhc3MgRmxvYXRSZWN0OwogY2xh
c3MgR3JhcGhpY3NDb250ZXh0OwogCkBAIC00Miw3ICs0MSw2IEBAIGNsYXNzIFJlc291cmNlSGVh
cDsKIGVudW0gY2xhc3MgU3RvcFJlcGxheVJlYXNvbiA6IHVpbnQ4X3QgewogICAgIFJlcGxheWVk
QWxsSXRlbXMsCiAgICAgTWlzc2luZ0NhY2hlZFJlc291cmNlLAotICAgIENoYW5nZURlc3RpbmF0
aW9uSW1hZ2VCdWZmZXIsCiAgICAgSW52YWxpZEl0ZW1PckV4dGVudCwKICAgICBPdXRPZk1lbW9y
eQogfTsKQEAgLTUwLDcgKzQ4LDYgQEAgZW51bSBjbGFzcyBTdG9wUmVwbGF5UmVhc29uIDogdWlu
dDhfdCB7CiBzdHJ1Y3QgUmVwbGF5UmVzdWx0IHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5NZW1v
cnlEaXNwbGF5TGlzdD4gdHJhY2tlZERpc3BsYXlMaXN0OwogICAgIHNpemVfdCBudW1iZXJPZkJ5
dGVzUmVhZCB7IDAgfTsKLSAgICBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcj4gbmV4dERlc3RpbmF0aW9uSW1hZ2VCdWZmZXI7CiAgICAgc3RkOjpvcHRpb25hbDxSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXI7
CiAgICAgU3RvcFJlcGxheVJlYXNvbiByZWFzb25Gb3JTdG9wcGluZyB7IFN0b3BSZXBsYXlSZWFz
b246OlJlcGxheWVkQWxsSXRlbXMgfTsKIH07CkBAIC01OCwzMCArNTUsMTkgQEAgc3RydWN0IFJl
cGxheVJlc3VsdCB7CiBjbGFzcyBSZXBsYXllciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
UmVwbGF5ZXIpOwogcHVibGljOgotICAgIGNsYXNzIERlbGVnYXRlOwotICAgIFdFQkNPUkVfRVhQ
T1JUIFJlcGxheWVyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IERpc3BsYXlMaXN0JiwgY29uc3Qg
UmVzb3VyY2VIZWFwKiA9IG51bGxwdHIsIFdlYkNvcmU6OkltYWdlQnVmZmVyKiBtYXNrSW1hZ2VC
dWZmZXIgPSBudWxscHRyLCBEZWxlZ2F0ZSogPSBudWxscHRyKTsKLSAgICBXRUJDT1JFX0VYUE9S
VCB+UmVwbGF5ZXIoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZXBsYXllcihHcmFwaGljc0NvbnRl
eHQmLCBjb25zdCBEaXNwbGF5TGlzdCYsIGNvbnN0IFJlc291cmNlSGVhcCogPSBudWxscHRyKTsK
KyAgICB+UmVwbGF5ZXIoKSA9IGRlZmF1bHQ7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBSZXBsYXlS
ZXN1bHQgcmVwbGF5KGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAgPSB7IH0sIGJvb2wgdHJh
Y2tSZXBsYXlMaXN0ID0gZmFsc2UpOwogCi0gICAgY2xhc3MgRGVsZWdhdGUgewotICAgIHB1Ymxp
YzoKLSAgICAgICAgdmlydHVhbCB+RGVsZWdhdGUoKSB7IH0KLSAgICAgICAgdmlydHVhbCBib29s
IGFwcGx5KEl0ZW1IYW5kbGUsIEdyYXBoaWNzQ29udGV4dCYpIHsgcmV0dXJuIGZhbHNlOyB9Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVNYXNrSW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1h
Z2VCdWZmZXImKSB7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlc2V0TWFza0ltYWdlQnVm
ZmVyKCkgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZWNvcmRSZXNvdXJjZVVzZShSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpIHsgfQotICAgIH07Ci0gICAgCiBwcml2YXRlOgogICAgIEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCgpIGNvbnN0OwogICAgIHN0ZDo6cGFpcjxzdGQ6Om9wdGlv
bmFsPFN0b3BSZXBsYXlSZWFzb24+LCBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcj4+IGFwcGx5SXRlbShJdGVtSGFuZGxlKTsKIAogICAgIEdyYXBoaWNzQ29udGV4dCYg
bV9jb250ZXh0OwotICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gbV9tYXNrSW1hZ2VC
dWZmZXI7CiAgICAgY29uc3QgRGlzcGxheUxpc3QmIG1fZGlzcGxheUxpc3Q7CiAgICAgY29uc3Qg
UmVzb3VyY2VIZWFwJiBtX3Jlc291cmNlSGVhcDsKLSAgICBEZWxlZ2F0ZSogbV9kZWxlZ2F0ZTsK
KyAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IG1fbWFza0ltYWdlQnVmZmVyOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCmluZGV4
IDg1NzIzYzM4M2Q0N2U0YWZjMjUzZTMxNWQ4NGIyMjJhODQzMTcyN2MuLjlkMzQzZmE5YWM0OTRi
YWM1ZWE0Y2FkZDAxMTliMDBjZTJjODY3NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eS5jcHAKQEAgLTgwLDExICs4MCw2IEBAIHZvaWQgUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5Ojp0cmFuc2Zvcm1Ub0NvbG9yU3BhY2UoY29uc3QgV2ViQ29yZTo6
RGVzdGluCiAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6VHJh
bnNmb3JtVG9Db2xvclNwYWNlKGNvbG9yU3BhY2UpKTsKIH0KIAotYm9vbCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHk6OmNhbkRyYXdJbWFnZUJ1ZmZlcihjb25zdCBJbWFnZUJ1ZmZlciYg
aW1hZ2VCdWZmZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcmVuZGVyaW5nQmFja2VuZCAmJiBt
X3JlbmRlcmluZ0JhY2tlbmQtPmlzQ2FjaGVkKGltYWdlQnVmZmVyKTsKLX0KLQogUmVuZGVyaW5n
TW9kZSBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlbmRlcmluZ01vZGUoKSBjb25z
dAogewogICAgIHJldHVybiBtX2ltYWdlQnVmZmVyID8gbV9pbWFnZUJ1ZmZlci0+cmVuZGVyaW5n
TW9kZSgpIDogUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZDsKQEAgLTQzMCw3ICs0MjUsNyBA
QCBib29sIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkUmVzb3VyY2VVc2Uo
SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
Ci0gICAgaWYgKCFjYW5EcmF3SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIpKQorICAgIGlmICghbV9y
ZW5kZXJpbmdCYWNrZW5kLT5pc0NhY2hlZChpbWFnZUJ1ZmZlcikpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIG1fcmVuZGVyaW5nQmFja2VuZC0+cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
KCkucmVjb3JkSW1hZ2VCdWZmZXJVc2UoaW1hZ2VCdWZmZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5LmgKaW5kZXggYTQxOGVmMmZiMDNlYjNlMjIxY2NkN2Y1YTY0
MTU0ODJkNzFjMzQ2YS4uMzAwOThiZWE2MWMxYjY0NGU0MjBhY2EzMzM5ZjkwNDQ5MWU0YjdmZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oCkBAIC02Niw3ICs2
Niw2IEBAIHByaXZhdGU6CiAKICAgICBmcmllbmQgY2xhc3MgV2ViQ29yZTo6RHJhd0dseXBoc1Jl
Y29yZGVyOwogCi0gICAgYm9vbCBjYW5EcmF3SW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6SW1h
Z2VCdWZmZXImKSBjb25zdCBmaW5hbDsKICAgICBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlIHJlbmRl
cmluZ01vZGUoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgcmVjb3JkU2F2ZSgpIGZpbmFsOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDNiZWRm
OWRlZTg4MmZiODNlNGYxYTIzMDc3Y2MzOWE4YzJmYjcwMmYuLjE1ZGY1MjJiYTkxZjFmMzg1ZGJi
MmU2OGUxODcwODhhYTBhNzY1YTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0wMS0zMSAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIFJlbW92ZSBE
aXNwbGF5TGlzdDo6UmVwbGF5ZXI6OkRlbGVnYXRlIGFuZCBEaXNwbGF5TGlzdDo6UmVjb3JkZXJJ
bXBsOjpEZWxlZ2F0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM1OTM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NH
LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIyLTAxLTMxICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgQ29sbGFwc2Vk
IHJhbmdlcyByZXR1cm4gemVybyByZWN0cyBpbiBEb2N1bWVudENvbnRleHQKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVz
dHNDRy5jcHAKaW5kZXggODU4MjhmMDM5MjI0NWY0YTk5Yjc2MDZiNWY0YWM1ZWMzNGRjZWU1Yi4u
YmNjNWExMThmMjNkN2NiYjY0ZWZjMWU2NGNjMjcxMzkwOTVkYjAzMCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVz
dHNDRy5jcHAKQEAgLTEzNiw3ICsxMzYsNiBAQCBURVNUKERpc3BsYXlMaXN0VGVzdHMsIE91dE9m
TGluZUl0ZW1EZWNvZGluZ0ZhaWx1cmUpCiAgICAgUmVwbGF5ZXIgcmVwbGF5ZXIgeyBjb250ZXh0
LCBzaGFsbG93Q29weSB9OwogICAgIGF1dG8gcmVzdWx0ID0gcmVwbGF5ZXIucmVwbGF5KCk7CiAg
ICAgRVhQRUNUX0dUKHJlc3VsdC5udW1iZXJPZkJ5dGVzUmVhZCwgMFUpOwotICAgIEVYUEVDVF9F
UShyZXN1bHQubmV4dERlc3RpbmF0aW9uSW1hZ2VCdWZmZXIsIHN0ZDo6bnVsbG9wdCk7CiAgICAg
RVhQRUNUX0VRKHJlc3VsdC5taXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyLCBzdGQ6Om51
bGxvcHQpOwogICAgIEVYUEVDVF9FUShyZXN1bHQucmVhc29uRm9yU3RvcHBpbmcsIFN0b3BSZXBs
YXlSZWFzb246OkludmFsaWRJdGVtT3JFeHRlbnQpOwogfQpAQCAtMTYwLDcgKzE1OSw2IEBAIFRF
U1QoRGlzcGxheUxpc3RUZXN0cywgSW5saW5lSXRlbVZhbGlkYXRpb25GYWlsdXJlKQogICAgICAg
ICBSZXBsYXllciByZXBsYXllciB7IGNvbnRleHQsIGxpc3QgfTsKICAgICAgICAgYXV0byByZXN1
bHQgPSByZXBsYXllci5yZXBsYXkoKTsKICAgICAgICAgRVhQRUNUX0VRKHJlc3VsdC5udW1iZXJP
ZkJ5dGVzUmVhZCwgMFUpOwotICAgICAgICBFWFBFQ1RfRVEocmVzdWx0Lm5leHREZXN0aW5hdGlv
bkltYWdlQnVmZmVyLCBzdGQ6Om51bGxvcHQpOwogICAgICAgICBFWFBFQ1RfRVEocmVzdWx0Lm1p
c3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6bnVsbG9wdCk7CiAgICAgICAgIEVY
UEVDVF9FUShyZXN1bHQucmVhc29uRm9yU3RvcHBpbmcsIFN0b3BSZXBsYXlSZWFzb246OkludmFs
aWRJdGVtT3JFeHRlbnQpOwogICAgIH07Cg==
</data>
<flag name="review"
          id="476917"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
    <flag name="commit-queue"
          id="476976"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450681</attachid>
            <date>2022-02-02 11:42:36 -0800</date>
            <delta_ts>2022-02-02 13:09:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235939-20220202114236.patch</filename>
            <type>text/plain</type>
            <size>32672</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4OTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzdiMWRmOTAzNTZjMDVm
Mzg0NzcxMTRlMDJkM2U2OGYwYWFmODE0YS4uNjY2NTE1YzRiYTIwYTAyODA0MWM0MjU1MDE0MzM3
ZGVkY2RhYTAxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIyLTAyLTAyICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
UmVtb3ZlIERpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGUgYW5kIERpc3BsYXlMaXN0OjpS
ZWNvcmRlckltcGw6OkRlbGVnYXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzU5MzkKKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWgu
CisKKyAgICAgICAgVGhlc2UgY2xhc3NlcyBhcmUgYWJzdHJhY3QgY2xhc3NlcyBhbmQgdGhleSBh
cmUgbm90IG92ZXJyaWRkZW4gYnkgYW55CisgICAgICAgIGNsaWVudCByaWdodCBub3cuIFRoZXNl
IHVudXNlZCBjbGFzc2VzIHNob3VsZCBiZSByZW1vdmVkIGFmdGVyIHRoZSBkaXNwbGF5CisgICAg
ICAgIGxpc3Qgc3RyZWFtIGNvbm5lY3Rpb24gcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2Fz
Y2FkZTo6ZGlzcGxheUxpc3RGb3JUZXh0UnVuIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmNo
YW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VCdWZmZXI6OnByZXBhcmVUb0FwcGVuZERpc3BsYXlMaXN0SXRlbXMpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdp
bmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3aW5nQ29u
dGV4dDo6RHJhd2luZ0NvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RHJhd2luZ0NvbnRleHQ6OkRyYXdpbmdDb250ZXh0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RSZWNvcmRlckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJl
Y29yZGVySW1wbDo6UmVjb3JkZXJJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpSZWNvcmRlckltcGw6OnJlY29yZFJlc291cmNlVXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpSZWNvcmRlckltcGw6OmNhbkFwcGVuZEl0ZW1PZlR5cGUgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6Y2FuRHJh
d0ltYWdlQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlckltcGw6OnJlbmRlcmluZ01vZGUgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1w
bC5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6YXBwZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlckltcGw6OkRlbGVnYXRl
Ojp+RGVsZWdhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJl
Y29yZGVySW1wbDo6RGVsZWdhdGU6OmNhbkFwcGVuZEl0ZW1PZlR5cGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6RGVsZWdhdGU6OnJlY29y
ZE5hdGl2ZUltYWdlVXNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpSZWNvcmRlckltcGw6OkRlbGVnYXRlOjppc0NhY2hlZEltYWdlQnVmZmVyIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlckltcGw6OkRlbGVn
YXRlOjpyZWNvcmRGb250VXNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpSZWNvcmRlckltcGw6OkRlbGVnYXRlOjpyZWNvcmRJbWFnZUJ1ZmZlclVzZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXJJbXBsOjpEZWxlZ2F0
ZTo6cmVuZGVyaW5nTW9kZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OlJlcGxheWVyOjpSZXBsYXllcik6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6YXBwbHlJbWFnZUJ1ZmZlckl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OmFwcGx5TmF0aXZlSW1hZ2VJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjphcHBseVNldFN0YXRlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6YXBwbHlGb250SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVw
bGF5ZXI6OmFwcGx5SXRlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpSZXBsYXllcjo6RGVsZWdhdGU6On5EZWxlZ2F0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6UmVwbGF5ZXI6OkRlbGVnYXRlOjphcHBseSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVwbGF5ZXI6OkRlbGVnYXRlOjpkaWRDcmVh
dGVNYXNrSW1hZ2VCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlcGxheWVyOjpEZWxlZ2F0ZTo6ZGlkUmVzZXRNYXNrSW1hZ2VCdWZmZXIpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlcGxheWVyOjpEZWxlZ2F0ZTo6cmVj
b3JkUmVzb3VyY2VVc2UpOiBEZWxldGVkLgorCiAyMDIyLTAyLTAyICBQaGlsaXBwZSBOb3JtYW5k
ICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBHZW5lcmF0ZSB3
ZWJydGMgZW5jb2RlciBzcmMgcGFkIHRlbXBsYXRlIGJhc2VkIG9uIHN1cHBvcnRlZCBwbGF0Zm9y
bSBlbmNvZGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCAxMjkxODIxNWJkZjdiYzg4MDZiYWFlYTJiZmM4ZjYwNTVi
MTJhYmJiLi4wNjY3NmI3Yzk3MDg4NzNiMmUyZDE1NjBkZTVkYzUzMGQ0ZjMyMTc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTAyLTAyICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRA
YXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gUmVtb3ZlIERpc3BsYXlMaXN0OjpS
ZXBsYXllcjo6RGVsZWdhdGUgYW5kIERpc3BsYXlMaXN0OjpSZWNvcmRlckltcGw6OkRlbGVnYXRl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU5MzkK
KworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFJlc291
cmNlVXNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
OjpjYW5EcmF3SW1hZ2VCdWZmZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oOgorCiAyMDIy
LTAyLTAyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIGZpeCB0aGUgbWFjT1MgYnVpbGQgYWZ0ZXIgcjI4ODk1NgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCmluZGV4IGEyMTcz
ZGRmNDlkYTM2ODYyMjA5OWFmNDkzZTRiODJmNDFhOGJlNWYuLjUxZWI1NzVkZmYyOTMwYzA0YTNi
MzFhZWU4NjQ2ODIxMzE0MTFiNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKQEAgLTIxNCw3ICsyMTQsNyBAQCBzdGQ6OnVuaXF1ZV9w
dHI8RGlzcGxheUxpc3Q6OkluTWVtb3J5RGlzcGxheUxpc3Q+IEZvbnRDYXNjYWRlOjpkaXNwbGF5
TGlzdEZvclRleAogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8RGlzcGxheUxpc3Q6OkluTWVtb3J5RGlzcGxheUxpc3Q+IGRpc3BsYXlMaXN0ID0gbWFr
ZVVuaXF1ZTxEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdD4oKTsKLSAgICBEaXNwbGF5
TGlzdDo6UmVjb3JkZXJJbXBsIHJlY29yZGluZ0NvbnRleHQoKmRpc3BsYXlMaXN0LCBjb250ZXh0
LnN0YXRlKCksIEZsb2F0UmVjdCgpLCBBZmZpbmVUcmFuc2Zvcm0oKSwgbnVsbHB0ciwgRHJhd0ds
eXBoc1JlY29yZGVyOjpEZWNvbnN0cnVjdERyYXdHbHlwaHM6Ok5vKTsKKyAgICBEaXNwbGF5TGlz
dDo6UmVjb3JkZXJJbXBsIHJlY29yZGluZ0NvbnRleHQoKmRpc3BsYXlMaXN0LCBjb250ZXh0LnN0
YXRlKCksIEZsb2F0UmVjdCgpLCBBZmZpbmVUcmFuc2Zvcm0oKSwgRHJhd0dseXBoc1JlY29yZGVy
OjpEZWNvbnN0cnVjdERyYXdHbHlwaHM6Ok5vKTsKICAgICAKICAgICBGbG9hdFBvaW50IHN0YXJ0
UG9pbnQgPSB0b0Zsb2F0UG9pbnQoV2ViQ29yZTo6c2l6ZShnbHlwaEJ1ZmZlci5pbml0aWFsQWR2
YW5jZSgpKSk7CiAgICAgZHJhd0dseXBoQnVmZmVyKHJlY29yZGluZ0NvbnRleHQsIGdseXBoQnVm
ZmVyLCBzdGFydFBvaW50LCBjdXN0b21Gb250Tm90UmVhZHlBY3Rpb24pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggZDJkOWJlOWVmNDAz
MmZhYTI1YmU2MmNhY2U0Mzc4MmRlZmNiNzQxNS4uNGI3MWYyMzUzYzhkMGNkOGVkZjRhZjVlNTky
NmI3ZGUyOTJjOGE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlci5oCkBAIC05NSw5ICs5NSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
Zmx1c2hEcmF3aW5nQ29udGV4dEFzeW5jKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEZsdXNo
KEdyYXBoaWNzQ29udGV4dEZsdXNoSWRlbnRpZmllcikgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQg
Y2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
IHsgfQotICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9BcHBlbmREaXNwbGF5TGlzdEl0ZW1zKERp
c3BsYXlMaXN0OjpJdGVtQnVmZmVySGFuZGxlJiYpIHsgfQotCiAgICAgdmlydHVhbCBGbG9hdFNp
emUgbG9naWNhbFNpemUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRTaXplIHRydW5jYXRl
ZExvZ2ljYWxTaXplKCkgY29uc3QgPSAwOyAvLyBUaGlzIHRydW5jYXRlcyB0aGUgcmVhbCBzaXpl
LiBZb3UgcHJvYmFibHkgc2hvdWxkIGJlIGNhbGxpbmcgbG9naWNhbFNpemUoKSBpbnN0ZWFkLgog
ICAgIHZpcnR1YWwgZmxvYXQgcmVzb2x1dGlvblNjYWxlKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0RHJhd2luZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuY3BwCmluZGV4IDM2MmQ0MzY3
NTJhYzczYTliYzNiM2NjOGMwNTZhYTRkN2YwN2IyNDUuLjBjMjUyMjY0YWY0MTY2NTYyMTc1MTYw
NDEwNDJhOGJkZDNiZmFiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RE
cmF3aW5nQ29udGV4dC5jcHAKQEAgLTMzLDggKzMzLDggQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CiAKLURyYXdpbmdDb250ZXh0OjpEcmF3aW5nQ29udGV4
dChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGlu
aXRpYWxDVE0sIFJlY29yZGVySW1wbDo6RGVsZWdhdGUqIGRlbGVnYXRlKQotICAgIDogbV9jb250
ZXh0KG1fZGlzcGxheUxpc3QsIEdyYXBoaWNzQ29udGV4dFN0YXRlKCksIEZsb2F0UmVjdCh7IH0s
IGxvZ2ljYWxTaXplKSwgaW5pdGlhbENUTSwgZGVsZWdhdGUpCitEcmF3aW5nQ29udGV4dDo6RHJh
d2luZ0NvbnRleHQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiBpbml0aWFsQ1RNKQorICAgIDogbV9jb250ZXh0KG1fZGlzcGxheUxpc3QsIEdyYXBo
aWNzQ29udGV4dFN0YXRlKCksIEZsb2F0UmVjdCh7IH0sIGxvZ2ljYWxTaXplKSwgaW5pdGlhbENU
TSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0
LmgKaW5kZXggMTdmMjJlOTAzZWE2MGQwOWU5MGUyMGMzZTk3YmMxM2JjYWM3MjNkYy4uYTc4NjQ2
ZThiMmJhMzM0YmNhMjYxMzBmZDQyYjk5MjE0OGQ0ZjY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0Nv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIElu
TWVtb3J5RGlzcGxheUxpc3Q7CiBjbGFzcyBEcmF3aW5nQ29udGV4dCB7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgRHJhd2luZ0NvbnRl
eHQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBp
bml0aWFsQ1RNID0geyB9LCBSZWNvcmRlckltcGw6OkRlbGVnYXRlKiA9IG51bGxwdHIpOworICAg
IFdFQkNPUkVfRVhQT1JUIERyYXdpbmdDb250ZXh0KGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNp
emUsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5pdGlhbENUTSA9IHsgfSk7CiAKICAgICBHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PERyYXdpbmdD
b250ZXh0Jj4oKnRoaXMpLm1fY29udGV4dDsgfQogICAgIFJlY29yZGVySW1wbCYgcmVjb3JkZXIo
KSB7IHJldHVybiBtX2NvbnRleHQ7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1h
Z2VCdWZmZXIuaAppbmRleCA3ZWEyYTE0Yzc4ZjM4NWZhN2VmZDk5NjViOWUyYzJkOWQ1MDAyMTAw
Li5lOGY2OGEzNzNkYmVkOTI4MjU2ZTFmMjljM2YyZWQ2OTdiMzY2YWNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
bWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmgKQEAgLTYwLDkgKzYwLDkgQEAgcHVibGlj
OgogICAgICAgICBtX2RyYXdpbmdDb250ZXh0LmRpc3BsYXlMaXN0KCkuc2V0SXRlbUJ1ZmZlclJl
YWRpbmdDbGllbnQobV9yZWFkaW5nQ2xpZW50LmdldCgpKTsKICAgICB9CiAKLSAgICBJbWFnZUJ1
ZmZlcihjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQ6OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIFJl
Y29yZGVySW1wbDo6RGVsZWdhdGUqIGRlbGVnYXRlID0gbnVsbHB0cikKKyAgICBJbWFnZUJ1ZmZl
cihjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQ6OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAg
ICAgIDogQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXIocGFyYW1ldGVycykKLSAgICAgICAgLCBtX2Ry
YXdpbmdDb250ZXh0KGxvZ2ljYWxTaXplKCksIGJhc2VUcmFuc2Zvcm0oKSwgZGVsZWdhdGUpCisg
ICAgICAgICwgbV9kcmF3aW5nQ29udGV4dChsb2dpY2FsU2l6ZSgpLCBiYXNlVHJhbnNmb3JtKCkp
CiAgICAgICAgICwgbV93cml0aW5nQ2xpZW50KG1ha2VVbmlxdWU8SW5NZW1vcnlEaXNwbGF5TGlz
dDo6V3JpdGluZ0NsaWVudD4oKSkKICAgICAgICAgLCBtX3JlYWRpbmdDbGllbnQobWFrZVVuaXF1
ZTxJbk1lbW9yeURpc3BsYXlMaXN0OjpSZWFkaW5nQ2xpZW50PigpKQogICAgIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IDliMmIwYjkzNzkwMWQ4NjUxMTYxZWI4
MmI5MGY0ZDA1Yjk0MjVlMGYuLjQwZTdhMGMyNTYwMzcxMzU5Y2FlZGRmZGQ1MzkyMDVlZDE1ODdl
OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAtMTQ0LDEwICsx
NDQsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHJlY29yZFJlc291cmNlVXNlKGNv
bnN0IFNvdXJjZUltYWdlJikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCByZWNvcmRSZXNvdXJjZVVz
ZShGb250JikgPSAwOwogCi0gICAgLy8gRklYTUU6IE1heWJlIHJlbW92ZSB0aGlzPwotICAgIHZp
cnR1YWwgYm9vbCBjYW5EcmF3SW1hZ2VCdWZmZXIoY29uc3QgSW1hZ2VCdWZmZXImKSBjb25zdCA9
IDA7Ci0gICAgdmlydHVhbCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUoKSBjb25zdCA9IDA7
Ci0KICAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+IGNyZWF0ZU5l
c3RlZENvbnRleHQoY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiBpbml0aWFsQ1RNKSA9IDA7CiAKICAgICBzdHJ1Y3QgQ29udGV4dFN0YXRlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3BwCmluZGV4IGZlNTE1
NThkNzgyMzUzNDE5YTY0YzlhN2Y5Yjg5NzkwM2FhNmY5YTQuLjNlY2JjN2JhMzMzNWZjN2JiYWJm
OTBlMTQ3ZGMzYmE5MzRmNjQ4NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXJJbXBsLmNwcApAQCAtNDIsMTAgKzQyLDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CiAKLVJlY29yZGVySW1wbDo6UmVjb3JkZXJJbXBsKERp
c3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRl
LCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGlu
aXRpYWxDVE0sIERlbGVnYXRlKiBkZWxlZ2F0ZSwgRHJhd0dseXBoc1JlY29yZGVyOjpEZWNvbnN0
cnVjdERyYXdHbHlwaHMgZGVjb25zdHJ1Y3REcmF3R2x5cGhzKQorUmVjb3JkZXJJbXBsOjpSZWNv
cmRlckltcGwoRGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBjb25zdCBHcmFwaGljc0NvbnRleHRT
dGF0ZSYgc3RhdGUsIGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgaW5pdGlhbENUTSwgRHJhd0dseXBoc1JlY29yZGVyOjpEZWNvbnN0cnVjdERyYXdH
bHlwaHMgZGVjb25zdHJ1Y3REcmF3R2x5cGhzKQogICAgIDogUmVjb3JkZXIoc3RhdGUsIGluaXRp
YWxDbGlwLCBpbml0aWFsQ1RNLCBkZWNvbnN0cnVjdERyYXdHbHlwaHMpCiAgICAgLCBtX2Rpc3Bs
YXlMaXN0KGRpc3BsYXlMaXN0KQotICAgICwgbV9kZWxlZ2F0ZShkZWxlZ2F0ZSkKIHsKICAgICBM
T0dfV0lUSF9TVFJFQU0oRGlzcGxheUxpc3RzLCBzdHJlYW0gPDwgIlxuUmVjb3JkaW5nIHdpdGgg
Y2xpcCAiIDw8IGluaXRpYWxDbGlwKTsKIH0KQEAgLTUzLDcgKzUyLDYgQEAgUmVjb3JkZXJJbXBs
OjpSZWNvcmRlckltcGwoRGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBjb25zdCBHcmFwaGljc0Nv
bnRleHRTdGF0ZSYKIFJlY29yZGVySW1wbDo6UmVjb3JkZXJJbXBsKFJlY29yZGVySW1wbCYgcGFy
ZW50LCBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUsIGNvbnN0IEZsb2F0UmVjdCYg
aW5pdGlhbENsaXAsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5pdGlhbENUTSkKICAgICA6IFJl
Y29yZGVyKHBhcmVudCwgc3RhdGUsIGluaXRpYWxDbGlwLCBpbml0aWFsQ1RNKQogICAgICwgbV9k
aXNwbGF5TGlzdChwYXJlbnQubV9kaXNwbGF5TGlzdCkKLSAgICAsIG1fZGVsZWdhdGUocGFyZW50
Lm1fZGVsZWdhdGUpCiAgICAgLCBtX2lzTmVzdGVkKHRydWUpCiB7CiB9CkBAIC03NSwyMSArNzMs
NiBAQCB2b2lkIFJlY29yZGVySW1wbDo6cHV0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXIm
IHBpeGVsQnVmZmVyLCBjb25zdCBJbnRSZWN0JgogICAgIGFwcGVuZDxQdXRQaXhlbEJ1ZmZlcj4o
cGl4ZWxCdWZmZXIsIHNyY1JlY3QsIGRlc3RQb2ludCwgZGVzdEZvcm1hdCk7CiB9CiAKLWJvb2wg
UmVjb3JkZXJJbXBsOjpjYW5BcHBlbmRJdGVtT2ZUeXBlKEl0ZW1UeXBlIHR5cGUpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuICFtX2RlbGVnYXRlIHx8IG1fZGVsZWdhdGUtPmNhbkFwcGVuZEl0ZW1PZlR5
cGUodHlwZSk7Ci19Ci0KLWJvb2wgUmVjb3JkZXJJbXBsOjpjYW5EcmF3SW1hZ2VCdWZmZXIoY29u
c3QgSW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKSBjb25zdAotewotICAgIHJldHVybiAhbV9kZWxl
Z2F0ZSB8fCBtX2RlbGVnYXRlLT5pc0NhY2hlZEltYWdlQnVmZmVyKGltYWdlQnVmZmVyKTsKLX0K
LQotUmVuZGVyaW5nTW9kZSBSZWNvcmRlckltcGw6OnJlbmRlcmluZ01vZGUoKSBjb25zdAotewot
ICAgIHJldHVybiBtX2RlbGVnYXRlID8gbV9kZWxlZ2F0ZS0+cmVuZGVyaW5nTW9kZSgpIDogUmVu
ZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZDsKLX0KLQogc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNz
Q29udGV4dD4gUmVjb3JkZXJJbXBsOjpjcmVhdGVOZXN0ZWRDb250ZXh0KGNvbnN0IEZsb2F0UmVj
dCYgaW5pdGlhbENsaXAsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5pdGlhbENUTSkKIHsKICAg
ICByZXR1cm4gbWFrZVVuaXF1ZTxSZWNvcmRlckltcGw+KCp0aGlzLCBHcmFwaGljc0NvbnRleHRT
dGF0ZSB7IH0sIGluaXRpYWxDbGlwLCBpbml0aWFsQ1RNKTsKQEAgLTQyMSwxOCArNDA0LDEyIEBA
IHZvaWQgUmVjb3JkZXJJbXBsOjpyZWNvcmRBcHBseURldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNj
YWxlRmFjdG9yKQogCiBib29sIFJlY29yZGVySW1wbDo6cmVjb3JkUmVzb3VyY2VVc2UoTmF0aXZl
SW1hZ2UmIG5hdGl2ZUltYWdlKQogewotICAgIGlmIChtX2RlbGVnYXRlKQotICAgICAgICBtX2Rl
bGVnYXRlLT5yZWNvcmROYXRpdmVJbWFnZVVzZShuYXRpdmVJbWFnZSk7CiAgICAgbV9kaXNwbGF5
TGlzdC5jYWNoZU5hdGl2ZUltYWdlKG5hdGl2ZUltYWdlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAogYm9vbCBSZWNvcmRlckltcGw6OnJlY29yZFJlc291cmNlVXNlKEltYWdlQnVmZmVyJiBpbWFn
ZUJ1ZmZlcikKIHsKLSAgICBpZiAoIWNhbkRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcikpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAobV9kZWxlZ2F0ZSkKLSAgICAgICAgbV9kZWxl
Z2F0ZS0+cmVjb3JkSW1hZ2VCdWZmZXJVc2UoaW1hZ2VCdWZmZXIpOwogICAgIG1fZGlzcGxheUxp
c3QuY2FjaGVJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcik7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBA
IC00NTAsOCArNDI3LDYgQEAgYm9vbCBSZWNvcmRlckltcGw6OnJlY29yZFJlc291cmNlVXNlKGNv
bnN0IFNvdXJjZUltYWdlJiBpbWFnZSkKIAogYm9vbCBSZWNvcmRlckltcGw6OnJlY29yZFJlc291
cmNlVXNlKEZvbnQmIGZvbnQpCiB7Ci0gICAgaWYgKG1fZGVsZWdhdGUpCi0gICAgICAgIG1fZGVs
ZWdhdGUtPnJlY29yZEZvbnRVc2UoZm9udCk7CiAgICAgbV9kaXNwbGF5TGlzdC5jYWNoZUZvbnQo
Zm9udCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlY29yZGVySW1wbC5oCmluZGV4IGVkNDcxMGIzZDY5MDNiZWQ2MjY5Y2RiYzZiMjU3ZjU3ZmZm
NTg4ZWMuLjkyNmMzM2IzMTExMjI1NWVjMzJjMjI0NmUzMjkxOWUxOGVjZjU0MDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdFJlY29yZGVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5oCkBAIC0zNSwyNSArMzUsMTMg
QEAgY2xhc3MgUmVjb3JkZXJJbXBsIDogcHVibGljIFJlY29yZGVyIHsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZWNvcmRlckltcGwpOwog
cHVibGljOgotICAgIGNsYXNzIERlbGVnYXRlOwotICAgIFdFQkNPUkVfRVhQT1JUIFJlY29yZGVy
SW1wbChEaXNwbGF5TGlzdCYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwgY29uc3QgRmxv
YXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgRGVsZWdhdGUqID0g
bnVsbHB0ciwgRHJhd0dseXBoc1JlY29yZGVyOjpEZWNvbnN0cnVjdERyYXdHbHlwaHMgPSBEcmF3
R2x5cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0RHJhd0dseXBoczo6WWVzKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBSZWNvcmRlckltcGwoRGlzcGxheUxpc3QmLCBjb25zdCBHcmFwaGljc0NvbnRleHRT
dGF0ZSYsIGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYsIERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzID0gRHJhd0dseXBo
c1JlY29yZGVyOjpEZWNvbnN0cnVjdERyYXdHbHlwaHM6Olllcyk7CiAgICAgUmVjb3JkZXJJbXBs
KFJlY29yZGVySW1wbCYgcGFyZW50LCBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYsIGNvbnN0
IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5pdGlhbENU
TSk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5SZWNvcmRlckltcGwoKTsKIAogICAg
IGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUxpc3QuaXNFbXB0eSgpOyB9
CiAKLSAgICBjbGFzcyBEZWxlZ2F0ZSB7Ci0gICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIH5E
ZWxlZ2F0ZSgpIHsgfQotICAgICAgICB2aXJ0dWFsIGJvb2wgY2FuQXBwZW5kSXRlbU9mVHlwZShJ
dGVtVHlwZSkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIHJlY29yZE5h
dGl2ZUltYWdlVXNlKE5hdGl2ZUltYWdlJikgeyB9Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBpc0Nh
Y2hlZEltYWdlQnVmZmVyKGNvbnN0IEltYWdlQnVmZmVyJikgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIHJlY29yZEZvbnRVc2UoRm9udCYpIHsgfQotICAgICAg
ICB2aXJ0dWFsIHZvaWQgcmVjb3JkSW1hZ2VCdWZmZXJVc2UoSW1hZ2VCdWZmZXImKSB7IH0KLSAg
ICAgICAgdmlydHVhbCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUoKSBjb25zdCB7IHJldHVy
biBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkOyB9Ci0gICAgfTsKLQogICAgIHZvaWQgZ2V0
UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3Qg
SW50UmVjdCYgc291cmNlUmVjdCkgZmluYWw7CiAgICAgdm9pZCBwdXRQaXhlbEJ1ZmZlcihjb25z
dCBQaXhlbEJ1ZmZlciYsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBk
ZXN0UG9pbnQsIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkgZmluYWw7CiAgICAg
dm9pZCBjb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCkgZmluYWwgeyB9CkBAIC02MSwxMCArNDksNiBA
QCBwdWJsaWM6CiAgICAgdm9pZCBmbHVzaENvbnRleHQoR3JhcGhpY3NDb250ZXh0Rmx1c2hJZGVu
dGlmaWVyIGlkZW50aWZpZXIpIGZpbmFsIHsgYXBwZW5kPEZsdXNoQ29udGV4dD4oaWRlbnRpZmll
cik7IH0KIAogcHJpdmF0ZToKLSAgICAvLyBGSVhNRTogTWF5YmUgcmVtb3ZlIHRoaXM/Ci0gICAg
Ym9vbCBjYW5EcmF3SW1hZ2VCdWZmZXIoY29uc3QgSW1hZ2VCdWZmZXImKSBjb25zdCBmaW5hbDsK
LSAgICBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUoKSBjb25zdCBmaW5hbDsKLQogICAgIHZv
aWQgcmVjb3JkU2F2ZSgpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkUmVzdG9yZSgpIGZpbmFsOwog
ICAgIHZvaWQgcmVjb3JkVHJhbnNsYXRlKGZsb2F0IHgsIGZsb2F0IHkpIGZpbmFsOwpAQCAtMTQ2
LDkgKzEzMCw2IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgY2xhc3MuLi4g
QXJncz4KICAgICB2b2lkIGFwcGVuZChBcmdzJiYuLi4gYXJncykKICAgICB7Ci0gICAgICAgIGlm
IChVTkxJS0VMWSghY2FuQXBwZW5kSXRlbU9mVHlwZShUOjppdGVtVHlwZSkpKQotICAgICAgICAg
ICAgcmV0dXJuOwotCiAgICAgICAgIG1fZGlzcGxheUxpc3QuYXBwZW5kPFQ+KHN0ZDo6Zm9yd2Fy
ZDxBcmdzPihhcmdzKS4uLik7CiAKICAgICAgICAgaWYgY29uc3RleHByIChUOjppc0RyYXdpbmdJ
dGVtKSB7CkBAIC0xNjYsMTAgKzE0Nyw4IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgRmxvYXRS
ZWN0IGV4dGVudEZyb21Mb2NhbEJvdW5kcyhjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKLSAgICBX
RUJDT1JFX0VYUE9SVCBib29sIGNhbkFwcGVuZEl0ZW1PZlR5cGUoSXRlbVR5cGUpIGNvbnN0Owog
CiAgICAgRGlzcGxheUxpc3QmIG1fZGlzcGxheUxpc3Q7Ci0gICAgRGVsZWdhdGUqIG1fZGVsZWdh
dGUgeyBudWxscHRyIH07CiAgICAgYm9vbCBtX2lzTmVzdGVkIHsgZmFsc2UgfTsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlcGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcAppbmRleCA2ZjIyYjJjODcxNDIw
ZGYwYjY5NTYzNDNmYjAxOTkzNjM1MjhkOTM2Li5iMTg4Y2VhYjQyNjk2ZmZlMjAxMjA5YTkwMGFi
NzAwOTk1MGI4NWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3Bw
CkBAIC0zNyw5NSArMzcsNzYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBEaXNw
bGF5TGlzdCB7CiAKLVJlcGxheWVyOjpSZXBsYXllcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgY29uc3QgUmVzb3VyY2VIZWFwKiByZXNv
dXJjZUhlYXAsIEltYWdlQnVmZmVyKiBtYXNrSW1hZ2VCdWZmZXIsIERlbGVnYXRlKiBkZWxlZ2F0
ZSkKK1JlcGxheWVyOjpSZXBsYXllcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IERp
c3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgY29uc3QgUmVzb3VyY2VIZWFwKiByZXNvdXJjZUhlYXAp
CiAgICAgOiBtX2NvbnRleHQoY29udGV4dCkKLSAgICAsIG1fbWFza0ltYWdlQnVmZmVyKG1hc2tJ
bWFnZUJ1ZmZlcikKICAgICAsIG1fZGlzcGxheUxpc3QoZGlzcGxheUxpc3QpCiAgICAgLCBtX3Jl
c291cmNlSGVhcChyZXNvdXJjZUhlYXAgPyAqcmVzb3VyY2VIZWFwIDogbV9kaXNwbGF5TGlzdC5y
ZXNvdXJjZUhlYXAoKSkKLSAgICAsIG1fZGVsZWdhdGUoZGVsZWdhdGUpCiB7CiB9CiAKLVJlcGxh
eWVyOjp+UmVwbGF5ZXIoKSA9IGRlZmF1bHQ7Ci0KIEdyYXBoaWNzQ29udGV4dCYgUmVwbGF5ZXI6
OmNvbnRleHQoKSBjb25zdAogewogICAgIHJldHVybiBtX21hc2tJbWFnZUJ1ZmZlciA/IG1fbWFz
a0ltYWdlQnVmZmVyLT5jb250ZXh0KCkgOiBtX2NvbnRleHQ7CiB9CiAKIHRlbXBsYXRlPGNsYXNz
IFQ+Ci1pbmxpbmUgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyPiBhcHBseUltYWdlQnVmZmVySXRlbShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IFJlc291cmNlSGVhcCYgcmVzb3VyY2VIZWFwLCBJdGVtSGFuZGxlIGl0ZW0sIFJlcGxheWVyOjpE
ZWxlZ2F0ZSogZGVsZWdhdGUpCitpbmxpbmUgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyPiBhcHBseUltYWdlQnVmZmVySXRlbShHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IFJlc291cmNlSGVhcCYgcmVzb3VyY2VIZWFwLCBJdGVtSGFuZGxlIGl0
ZW0pCiB7CiAgICAgYXV0byYgaW1hZ2VCdWZmZXJJdGVtID0gaXRlbS5nZXQ8VD4oKTsKICAgICBh
dXRvIHJlc291cmNlSWRlbnRpZmllciA9IGltYWdlQnVmZmVySXRlbS5pbWFnZUJ1ZmZlcklkZW50
aWZpZXIoKTsKICAgICBpZiAoYXV0byogaW1hZ2VCdWZmZXIgPSByZXNvdXJjZUhlYXAuZ2V0SW1h
Z2VCdWZmZXIocmVzb3VyY2VJZGVudGlmaWVyKSkgewogICAgICAgICBpbWFnZUJ1ZmZlckl0ZW0u
YXBwbHkoY29udGV4dCwgKmltYWdlQnVmZmVyKTsKLSAgICAgICAgaWYgKGRlbGVnYXRlKQotICAg
ICAgICAgICAgZGVsZWdhdGUtPnJlY29yZFJlc291cmNlVXNlKHJlc291cmNlSWRlbnRpZmllcik7
CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogICAgIHJldHVybiByZXNvdXJj
ZUlkZW50aWZpZXI7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIFQ+Ci1pbmxpbmUgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBhcHBseU5hdGl2ZUltYWdlSXRl
bShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFJlc291cmNlSGVhcCYgcmVzb3VyY2VI
ZWFwLCBJdGVtSGFuZGxlIGl0ZW0sIFJlcGxheWVyOjpEZWxlZ2F0ZSogZGVsZWdhdGUpCitpbmxp
bmUgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBhcHBs
eU5hdGl2ZUltYWdlSXRlbShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFJlc291cmNl
SGVhcCYgcmVzb3VyY2VIZWFwLCBJdGVtSGFuZGxlIGl0ZW0pCiB7CiAgICAgYXV0byYgbmF0aXZl
SW1hZ2VJdGVtID0gaXRlbS5nZXQ8VD4oKTsKICAgICBhdXRvIHJlc291cmNlSWRlbnRpZmllciA9
IG5hdGl2ZUltYWdlSXRlbS5pbWFnZUlkZW50aWZpZXIoKTsKICAgICBpZiAoYXV0byogaW1hZ2Ug
PSByZXNvdXJjZUhlYXAuZ2V0TmF0aXZlSW1hZ2UocmVzb3VyY2VJZGVudGlmaWVyKSkgewogICAg
ICAgICBuYXRpdmVJbWFnZUl0ZW0uYXBwbHkoY29udGV4dCwgKmltYWdlKTsKLSAgICAgICAgaWYg
KGRlbGVnYXRlKQotICAgICAgICAgICAgZGVsZWdhdGUtPnJlY29yZFJlc291cmNlVXNlKHJlc291
cmNlSWRlbnRpZmllcik7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogICAg
IHJldHVybiByZXNvdXJjZUlkZW50aWZpZXI7CiB9CiAKLWlubGluZSBzdGF0aWMgc3RkOjpvcHRp
b25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGFwcGx5U2V0U3RhdGVJdGVtKEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgUmVzb3VyY2VIZWFwJiByZXNvdXJjZUhlYXAsIEl0
ZW1IYW5kbGUgaXRlbSwgUmVwbGF5ZXI6OkRlbGVnYXRlKiBkZWxlZ2F0ZSkKK2lubGluZSBzdGF0
aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGFwcGx5U2V0U3Rh
dGVJdGVtKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgUmVzb3VyY2VIZWFwJiByZXNv
dXJjZUhlYXAsIEl0ZW1IYW5kbGUgaXRlbSkKIHsKLSAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcjsKLSAgICBSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZpZXI7CiAgICAgYXV0byYgc2V0U3Rh
dGVJdGVtID0gaXRlbS5nZXQ8U2V0U3RhdGU+KCk7CiAKLSAgICBpZiAoYXV0byYgc3Ryb2tlUGF0
dGVybiA9IHNldFN0YXRlSXRlbS5zdGF0ZUNoYW5nZSgpLm1fc3RhdGUuc3Ryb2tlUGF0dGVybikg
ewotICAgICAgICBzdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyID0gc3Ryb2tlUGF0dGVybi0+
dGlsZUltYWdlKCkuaW1hZ2VJZGVudGlmaWVyKCk7Ci0gICAgICAgIGF1dG8gc3Ryb2tlUGF0dGVy
bkltYWdlID0gcmVzb3VyY2VIZWFwLmdldFNvdXJjZUltYWdlKHN0cm9rZVBhdHRlcm5JbWFnZUlk
ZW50aWZpZXIpOwotICAgICAgICBpZiAoIXN0cm9rZVBhdHRlcm5JbWFnZSkKLSAgICAgICAgICAg
IHJldHVybiBzdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyOwotCi0gICAgICAgIHN0cm9rZVBh
dHRlcm4tPnNldFRpbGVJbWFnZShXVEZNb3ZlKCpzdHJva2VQYXR0ZXJuSW1hZ2UpKTsKLSAgICB9
CisgICAgYXV0byBmaXhQYXR0ZXJuVGlsZUltYWdlID0gWyZdKFBhdHRlcm4qIHBhdHRlcm4pIC0+
IHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiB7CisgICAgICAgIGlm
ICghcGF0dGVybikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBpZiAo
YXV0byYgZmlsbFBhdHRlcm4gPSBzZXRTdGF0ZUl0ZW0uc3RhdGVDaGFuZ2UoKS5tX3N0YXRlLmZp
bGxQYXR0ZXJuKSB7Ci0gICAgICAgIGZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyID0gZmlsbFBh
dHRlcm4tPnRpbGVJbWFnZSgpLmltYWdlSWRlbnRpZmllcigpOwotICAgICAgICBhdXRvIGZpbGxQ
YXR0ZXJuSW1hZ2UgPSByZXNvdXJjZUhlYXAuZ2V0U291cmNlSW1hZ2UoZmlsbFBhdHRlcm5JbWFn
ZUlkZW50aWZpZXIpOwotICAgICAgICBpZiAoIWZpbGxQYXR0ZXJuSW1hZ2UpCi0gICAgICAgICAg
ICByZXR1cm4gZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZpZXI7CisgICAgICAgIGF1dG8gaW1hZ2VJ
ZGVudGlmaWVyID0gcGF0dGVybi0+dGlsZUltYWdlKCkuaW1hZ2VJZGVudGlmaWVyKCk7CisgICAg
ICAgIGF1dG8gc291cmNlSW1hZ2UgPSByZXNvdXJjZUhlYXAuZ2V0U291cmNlSW1hZ2UoaW1hZ2VJ
ZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKCFzb3VyY2VJbWFnZSkKKyAgICAgICAgICAgIHJldHVy
biBpbWFnZUlkZW50aWZpZXI7CiAKLSAgICAgICAgZmlsbFBhdHRlcm4tPnNldFRpbGVJbWFnZShX
VEZNb3ZlKCpmaWxsUGF0dGVybkltYWdlKSk7Ci0gICAgfQorICAgICAgICBwYXR0ZXJuLT5zZXRU
aWxlSW1hZ2UoV1RGTW92ZSgqc291cmNlSW1hZ2UpKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICB9OwogCi0gICAgc2V0U3RhdGVJdGVtLmFwcGx5KGNvbnRleHQpOworICAgIGlm
IChhdXRvIGltYWdlSWRlbnRpZmllciA9IGZpeFBhdHRlcm5UaWxlSW1hZ2Uoc2V0U3RhdGVJdGVt
LnN0YXRlQ2hhbmdlKCkubV9zdGF0ZS5zdHJva2VQYXR0ZXJuLmdldCgpKSkKKyAgICAgICAgcmV0
dXJuICppbWFnZUlkZW50aWZpZXI7CiAKLSAgICBpZiAoIWRlbGVnYXRlKQotICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworICAgIGlmIChhdXRvIGltYWdlSWRlbnRpZmllciA9IGZpeFBhdHRl
cm5UaWxlSW1hZ2Uoc2V0U3RhdGVJdGVtLnN0YXRlQ2hhbmdlKCkubV9zdGF0ZS5maWxsUGF0dGVy
bi5nZXQoKSkpCisgICAgICAgIHJldHVybiAqaW1hZ2VJZGVudGlmaWVyOwogCi0gICAgaWYgKHN0
cm9rZVBhdHRlcm5JbWFnZUlkZW50aWZpZXIpCi0gICAgICAgIGRlbGVnYXRlLT5yZWNvcmRSZXNv
dXJjZVVzZShzdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyKTsKLSAgICBpZiAoZmlsbFBhdHRl
cm5JbWFnZUlkZW50aWZpZXIpCi0gICAgICAgIGRlbGVnYXRlLT5yZWNvcmRSZXNvdXJjZVVzZShm
aWxsUGF0dGVybkltYWdlSWRlbnRpZmllcik7CisgICAgc2V0U3RhdGVJdGVtLmFwcGx5KGNvbnRl
eHQpOwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIFQ+Ci1p
bmxpbmUgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBh
cHBseUZvbnRJdGVtKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgUmVzb3VyY2VIZWFw
JiByZXNvdXJjZUhlYXAsIEl0ZW1IYW5kbGUgaXRlbSwgUmVwbGF5ZXI6OkRlbGVnYXRlKiBkZWxl
Z2F0ZSkKK2lubGluZSBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXI+IGFwcGx5Rm9udEl0ZW0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBSZXNv
dXJjZUhlYXAmIHJlc291cmNlSGVhcCwgSXRlbUhhbmRsZSBpdGVtKQogewogICAgIGF1dG8mIGZv
bnRJdGVtID0gaXRlbS5nZXQ8VD4oKTsKICAgICBhdXRvIHJlc291cmNlSWRlbnRpZmllciA9IGZv
bnRJdGVtLmZvbnRJZGVudGlmaWVyKCk7CiAgICAgaWYgKGF1dG8qIGZvbnQgPSByZXNvdXJjZUhl
YXAuZ2V0Rm9udChyZXNvdXJjZUlkZW50aWZpZXIpKSB7CiAgICAgICAgIGZvbnRJdGVtLmFwcGx5
KGNvbnRleHQsICpmb250KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlKQotICAgICAgICAgICAgZGVs
ZWdhdGUtPnJlY29yZFJlc291cmNlVXNlKHJlc291cmNlSWRlbnRpZmllcik7CiAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogICAgIHJldHVybiByZXNvdXJjZUlkZW50aWZpZXI7
CkBAIC0xMzMsNDEgKzExNCwzOCBAQCBpbmxpbmUgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyPiBhcHBseUZvbnRJdGVtKEdyYXBoaWNzQwogCiBzdGQ6OnBh
aXI8c3RkOjpvcHRpb25hbDxTdG9wUmVwbGF5UmVhc29uPiwgc3RkOjpvcHRpb25hbDxSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXI+PiBSZXBsYXllcjo6YXBwbHlJdGVtKEl0ZW1IYW5kbGUgaXRl
bSkKIHsKLSAgICBpZiAobV9kZWxlZ2F0ZSAmJiBtX2RlbGVnYXRlLT5hcHBseShpdGVtLCBjb250
ZXh0KCkpKQotICAgICAgICByZXR1cm4geyBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9Owot
CiAgICAgaWYgKGl0ZW0uaXM8RHJhd0ltYWdlQnVmZmVyPigpKSB7Ci0gICAgICAgIGlmIChhdXRv
IG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIgPSBhcHBseUltYWdlQnVmZmVySXRlbTxE
cmF3SW1hZ2VCdWZmZXI+KGNvbnRleHQoKSwgbV9yZXNvdXJjZUhlYXAsIGl0ZW0sIG1fZGVsZWdh
dGUpKQorICAgICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0g
YXBwbHlJbWFnZUJ1ZmZlckl0ZW08RHJhd0ltYWdlQnVmZmVyPihjb250ZXh0KCksIG1fcmVzb3Vy
Y2VIZWFwLCBpdGVtKSkKICAgICAgICAgICAgIHJldHVybiB7IFN0b3BSZXBsYXlSZWFzb246Ok1p
c3NpbmdDYWNoZWRSZXNvdXJjZSwgV1RGTW92ZShtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlm
aWVyKSB9OwogICAgICAgICByZXR1cm4geyBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9Owog
ICAgIH0KIAogICAgIGlmIChpdGVtLmlzPENsaXBUb0ltYWdlQnVmZmVyPigpKSB7Ci0gICAgICAg
IGlmIChhdXRvIG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIgPSBhcHBseUltYWdlQnVm
ZmVySXRlbTxDbGlwVG9JbWFnZUJ1ZmZlcj4oY29udGV4dCgpLCBtX3Jlc291cmNlSGVhcCwgaXRl
bSwgbV9kZWxlZ2F0ZSkpCisgICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlk
ZW50aWZpZXIgPSBhcHBseUltYWdlQnVmZmVySXRlbTxDbGlwVG9JbWFnZUJ1ZmZlcj4oY29udGV4
dCgpLCBtX3Jlc291cmNlSGVhcCwgaXRlbSkpCiAgICAgICAgICAgICByZXR1cm4geyBTdG9wUmVw
bGF5UmVhc29uOjpNaXNzaW5nQ2FjaGVkUmVzb3VyY2UsIFdURk1vdmUobWlzc2luZ0NhY2hlZFJl
c291cmNlSWRlbnRpZmllcikgfTsKICAgICAgICAgcmV0dXJuIHsgc3RkOjpudWxsb3B0LCBzdGQ6
Om51bGxvcHQgfTsKICAgICB9CiAKICAgICBpZiAoaXRlbS5pczxEcmF3TmF0aXZlSW1hZ2U+KCkp
IHsKLSAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9IGFw
cGx5TmF0aXZlSW1hZ2VJdGVtPERyYXdOYXRpdmVJbWFnZT4oY29udGV4dCgpLCBtX3Jlc291cmNl
SGVhcCwgaXRlbSwgbV9kZWxlZ2F0ZSkpCisgICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNoZWRS
ZXNvdXJjZUlkZW50aWZpZXIgPSBhcHBseU5hdGl2ZUltYWdlSXRlbTxEcmF3TmF0aXZlSW1hZ2U+
KGNvbnRleHQoKSwgbV9yZXNvdXJjZUhlYXAsIGl0ZW0pKQogICAgICAgICAgICAgcmV0dXJuIHsg
U3RvcFJlcGxheVJlYXNvbjo6TWlzc2luZ0NhY2hlZFJlc291cmNlLCBXVEZNb3ZlKG1pc3NpbmdD
YWNoZWRSZXNvdXJjZUlkZW50aWZpZXIpIH07CiAgICAgICAgIHJldHVybiB7IHN0ZDo6bnVsbG9w
dCwgc3RkOjpudWxsb3B0IH07CiAgICAgfQogCiAgICAgaWYgKGl0ZW0uaXM8RHJhd0dseXBocz4o
KSkgewotICAgICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0g
YXBwbHlGb250SXRlbTxEcmF3R2x5cGhzPihjb250ZXh0KCksIG1fcmVzb3VyY2VIZWFwLCBpdGVt
LCBtX2RlbGVnYXRlKSkKKyAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRl
bnRpZmllciA9IGFwcGx5Rm9udEl0ZW08RHJhd0dseXBocz4oY29udGV4dCgpLCBtX3Jlc291cmNl
SGVhcCwgaXRlbSkpCiAgICAgICAgICAgICByZXR1cm4geyBTdG9wUmVwbGF5UmVhc29uOjpNaXNz
aW5nQ2FjaGVkUmVzb3VyY2UsIFdURk1vdmUobWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmll
cikgfTsKICAgICAgICAgcmV0dXJuIHsgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfTsKICAg
ICB9CiAKICAgICBpZiAoaXRlbS5pczxEcmF3UGF0dGVybj4oKSkgewotICAgICAgICBpZiAoYXV0
byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBwbHlOYXRpdmVJbWFnZUl0ZW08
RHJhd1BhdHRlcm4+KGNvbnRleHQoKSwgbV9yZXNvdXJjZUhlYXAsIGl0ZW0sIG1fZGVsZWdhdGUp
KQorICAgICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBw
bHlOYXRpdmVJbWFnZUl0ZW08RHJhd1BhdHRlcm4+KGNvbnRleHQoKSwgbV9yZXNvdXJjZUhlYXAs
IGl0ZW0pKQogICAgICAgICAgICAgcmV0dXJuIHsgU3RvcFJlcGxheVJlYXNvbjo6TWlzc2luZ0Nh
Y2hlZFJlc291cmNlLCBXVEZNb3ZlKG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIpIH07
CiAgICAgICAgIHJldHVybiB7IHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0IH07CiAgICAgfQog
CiAgICAgaWYgKGl0ZW0uaXM8U2V0U3RhdGU+KCkpIHsKLSAgICAgICAgaWYgKGF1dG8gbWlzc2lu
Z0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9IGFwcGx5U2V0U3RhdGVJdGVtKGNvbnRleHQoKSwg
bV9yZXNvdXJjZUhlYXAsIGl0ZW0sIG1fZGVsZWdhdGUpKQorICAgICAgICBpZiAoYXV0byBtaXNz
aW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBwbHlTZXRTdGF0ZUl0ZW0oY29udGV4dCgp
LCBtX3Jlc291cmNlSGVhcCwgaXRlbSkpCiAgICAgICAgICAgICByZXR1cm4geyBTdG9wUmVwbGF5
UmVhc29uOjpNaXNzaW5nQ2FjaGVkUmVzb3VyY2UsIFdURk1vdmUobWlzc2luZ0NhY2hlZFJlc291
cmNlSWRlbnRpZmllcikgfTsKICAgICAgICAgcmV0dXJuIHsgc3RkOjpudWxsb3B0LCBzdGQ6Om51
bGxvcHQgfTsKICAgICB9CkBAIC0xNzksOCArMTU3LDYgQEAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9u
YWw8U3RvcFJlcGxheVJlYXNvbj4sIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGkKICAgICAgICAgbV9tYXNrSW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlQ29tcGF0
aWJsZUJ1ZmZlcihjbGlwSXRlbS5kZXN0aW5hdGlvbigpLnNpemUoKSwgY2xpcEl0ZW0uY29sb3JT
cGFjZSgpLCBtX2NvbnRleHQpOwogICAgICAgICBpZiAoIW1fbWFza0ltYWdlQnVmZmVyKQogICAg
ICAgICAgICAgcmV0dXJuIHsgU3RvcFJlcGxheVJlYXNvbjo6T3V0T2ZNZW1vcnksIHN0ZDo6bnVs
bG9wdCB9OwotICAgICAgICBpZiAobV9kZWxlZ2F0ZSkKLSAgICAgICAgICAgIG1fZGVsZWdhdGUt
PmRpZENyZWF0ZU1hc2tJbWFnZUJ1ZmZlcigqbV9tYXNrSW1hZ2VCdWZmZXIpOwogICAgICAgICBy
ZXR1cm4geyBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9OwogICAgIH0KIApAQCAtMTkwLDgg
KzE2Niw2IEBAIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFN0b3BSZXBsYXlSZWFzb24+LCBzdGQ6
Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpCiAgICAgICAgIGF1dG8mIGNsaXBJdGVt
ID0gaXRlbS5nZXQ8RW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzPigpOwogICAgICAgICBtX2NvbnRl
eHQuY2xpcFRvSW1hZ2VCdWZmZXIoKm1fbWFza0ltYWdlQnVmZmVyLCBjbGlwSXRlbS5kZXN0aW5h
dGlvbigpKTsKICAgICAgICAgbV9tYXNrSW1hZ2VCdWZmZXIgPSBudWxscHRyOwotICAgICAgICBp
ZiAobV9kZWxlZ2F0ZSkKLSAgICAgICAgICAgIG1fZGVsZWdhdGUtPmRpZFJlc2V0TWFza0ltYWdl
QnVmZmVyKCk7CiAgICAgICAgIHJldHVybiB7IHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0IH07
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaAppbmRleCA5Mjg1
YmJkZDEwMDQ4YzJhZWY5YmZkZDM5ZTIwYWUxYzYzM2Q1YzdjLi42Zjc3MmJmNDU1MjYzOWJiZjMw
NGRiNjZkMTliNjk4ODFmMTQ0NDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxh
eWVyLmgKQEAgLTMxLDcgKzMxLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNs
YXNzIEFscGhhUHJlbXVsdGlwbGljYXRpb24gOiB1aW50OF90OwogY2xhc3MgRmxvYXRSZWN0Owog
Y2xhc3MgR3JhcGhpY3NDb250ZXh0OwogCkBAIC00Miw3ICs0MSw2IEBAIGNsYXNzIFJlc291cmNl
SGVhcDsKIGVudW0gY2xhc3MgU3RvcFJlcGxheVJlYXNvbiA6IHVpbnQ4X3QgewogICAgIFJlcGxh
eWVkQWxsSXRlbXMsCiAgICAgTWlzc2luZ0NhY2hlZFJlc291cmNlLAotICAgIENoYW5nZURlc3Rp
bmF0aW9uSW1hZ2VCdWZmZXIsCiAgICAgSW52YWxpZEl0ZW1PckV4dGVudCwKICAgICBPdXRPZk1l
bW9yeQogfTsKQEAgLTUwLDcgKzQ4LDYgQEAgZW51bSBjbGFzcyBTdG9wUmVwbGF5UmVhc29uIDog
dWludDhfdCB7CiBzdHJ1Y3QgUmVwbGF5UmVzdWx0IHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5N
ZW1vcnlEaXNwbGF5TGlzdD4gdHJhY2tlZERpc3BsYXlMaXN0OwogICAgIHNpemVfdCBudW1iZXJP
ZkJ5dGVzUmVhZCB7IDAgfTsKLSAgICBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcj4gbmV4dERlc3RpbmF0aW9uSW1hZ2VCdWZmZXI7CiAgICAgc3RkOjpvcHRpb25hbDxS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZp
ZXI7CiAgICAgU3RvcFJlcGxheVJlYXNvbiByZWFzb25Gb3JTdG9wcGluZyB7IFN0b3BSZXBsYXlS
ZWFzb246OlJlcGxheWVkQWxsSXRlbXMgfTsKIH07CkBAIC01OCwzMCArNTUsMTkgQEAgc3RydWN0
IFJlcGxheVJlc3VsdCB7CiBjbGFzcyBSZXBsYXllciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoUmVwbGF5ZXIpOwogcHVibGljOgotICAgIGNsYXNzIERlbGVnYXRlOwotICAgIFdFQkNPUkVf
RVhQT1JUIFJlcGxheWVyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IERpc3BsYXlMaXN0JiwgY29u
c3QgUmVzb3VyY2VIZWFwKiA9IG51bGxwdHIsIFdlYkNvcmU6OkltYWdlQnVmZmVyKiBtYXNrSW1h
Z2VCdWZmZXIgPSBudWxscHRyLCBEZWxlZ2F0ZSogPSBudWxscHRyKTsKLSAgICBXRUJDT1JFX0VY
UE9SVCB+UmVwbGF5ZXIoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZXBsYXllcihHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBEaXNwbGF5TGlzdCYsIGNvbnN0IFJlc291cmNlSGVhcCogPSBudWxscHRy
KTsKKyAgICB+UmVwbGF5ZXIoKSA9IGRlZmF1bHQ7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBSZXBs
YXlSZXN1bHQgcmVwbGF5KGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAgPSB7IH0sIGJvb2wg
dHJhY2tSZXBsYXlMaXN0ID0gZmFsc2UpOwogCi0gICAgY2xhc3MgRGVsZWdhdGUgewotICAgIHB1
YmxpYzoKLSAgICAgICAgdmlydHVhbCB+RGVsZWdhdGUoKSB7IH0KLSAgICAgICAgdmlydHVhbCBi
b29sIGFwcGx5KEl0ZW1IYW5kbGUsIEdyYXBoaWNzQ29udGV4dCYpIHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVNYXNrSW1hZ2VCdWZmZXIoV2ViQ29yZTo6
SW1hZ2VCdWZmZXImKSB7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlc2V0TWFza0ltYWdl
QnVmZmVyKCkgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZWNvcmRSZXNvdXJjZVVzZShSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpIHsgfQotICAgIH07Ci0gICAgCiBwcml2YXRlOgogICAg
IEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCgpIGNvbnN0OwogICAgIHN0ZDo6cGFpcjxzdGQ6Om9w
dGlvbmFsPFN0b3BSZXBsYXlSZWFzb24+LCBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcj4+IGFwcGx5SXRlbShJdGVtSGFuZGxlKTsKIAogICAgIEdyYXBoaWNzQ29udGV4
dCYgbV9jb250ZXh0OwotICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gbV9tYXNrSW1h
Z2VCdWZmZXI7CiAgICAgY29uc3QgRGlzcGxheUxpc3QmIG1fZGlzcGxheUxpc3Q7CiAgICAgY29u
c3QgUmVzb3VyY2VIZWFwJiBtX3Jlc291cmNlSGVhcDsKLSAgICBEZWxlZ2F0ZSogbV9kZWxlZ2F0
ZTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IG1fbWFza0ltYWdlQnVmZmVyOwog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCmlu
ZGV4IDg1NzIzYzM4M2Q0N2U0YWZjMjUzZTMxNWQ4NGIyMjJhODQzMTcyN2MuLjlkMzQzZmE5YWM0
OTRiYWM1ZWE0Y2FkZDAxMTliMDBjZTJjODY3NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eS5jcHAKQEAgLTgwLDExICs4MCw2IEBAIHZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5Ojp0cmFuc2Zvcm1Ub0NvbG9yU3BhY2UoY29uc3QgV2ViQ29y
ZTo6RGVzdGluCiAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
VHJhbnNmb3JtVG9Db2xvclNwYWNlKGNvbG9yU3BhY2UpKTsKIH0KIAotYm9vbCBSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyUHJveHk6OmNhbkRyYXdJbWFnZUJ1ZmZlcihjb25zdCBJbWFnZUJ1ZmZl
ciYgaW1hZ2VCdWZmZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcmVuZGVyaW5nQmFja2VuZCAm
JiBtX3JlbmRlcmluZ0JhY2tlbmQtPmlzQ2FjaGVkKGltYWdlQnVmZmVyKTsKLX0KLQogUmVuZGVy
aW5nTW9kZSBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlbmRlcmluZ01vZGUoKSBj
b25zdAogewogICAgIHJldHVybiBtX2ltYWdlQnVmZmVyID8gbV9pbWFnZUJ1ZmZlci0+cmVuZGVy
aW5nTW9kZSgpIDogUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZDsKQEAgLTQzMCw3ICs0MjUs
NyBAQCBib29sIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkUmVzb3VyY2VV
c2UoSW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogCi0gICAgaWYgKCFjYW5EcmF3SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIpKQorICAgIGlmICgh
bV9yZW5kZXJpbmdCYWNrZW5kLT5pc0NhY2hlZChpbWFnZUJ1ZmZlcikpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIG1fcmVuZGVyaW5nQmFja2VuZC0+cmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5KCkucmVjb3JkSW1hZ2VCdWZmZXJVc2UoaW1hZ2VCdWZmZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmgKaW5kZXggYTQxOGVmMmZiMDNlYjNlMjIxY2NkN2Y1
YTY0MTU0ODJkNzFjMzQ2YS4uMzAwOThiZWE2MWMxYjY0NGU0MjBhY2EzMzM5ZjkwNDQ5MWU0Yjdm
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oCkBAIC02Niw3
ICs2Niw2IEBAIHByaXZhdGU6CiAKICAgICBmcmllbmQgY2xhc3MgV2ViQ29yZTo6RHJhd0dseXBo
c1JlY29yZGVyOwogCi0gICAgYm9vbCBjYW5EcmF3SW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6
SW1hZ2VCdWZmZXImKSBjb25zdCBmaW5hbDsKICAgICBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlIHJl
bmRlcmluZ01vZGUoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgcmVjb3JkU2F2ZSgpIGZpbmFs
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQw
MmRkMmM4M2ZlZjE3NTY3OTU1ZDQwNDhmZjVmYzNhYmMyNDkxZDcuLjZlZmE0MmIwNWVkNGQ5Y2Jm
YzBkYzVkM2IxZTdjZjBiOWY3N2RlNjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0wMi0wMiAgU2FpZCBBYm91
LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIFJlbW92
ZSBEaXNwbGF5TGlzdDo6UmVwbGF5ZXI6OkRlbGVnYXRlIGFuZCBEaXNwbGF5TGlzdDo6UmVjb3Jk
ZXJJbXBsOjpEZWxlZ2F0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM1OTM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHND
Ry5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMi0wMS0yNiAgSm9u
YXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW2dpdC13ZWJraXRd
IEltcHJvdmUgdXNlciBwcm9tcHRzIChQYXJ0IDUpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwCmluZGV4
IDg1ODI4ZjAzOTIyNDVmNGE5OWI3NjA2YjVmNGFjNWVjMzRkY2VlNWIuLmJjYzVhMTE4ZjIzZDdj
YmI2NGVmYzFlNjRjYzI3MTM5MDk1ZGIwMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwCkBAIC0x
MzYsNyArMTM2LDYgQEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBPdXRPZkxpbmVJdGVtRGVjb2Rp
bmdGYWlsdXJlKQogICAgIFJlcGxheWVyIHJlcGxheWVyIHsgY29udGV4dCwgc2hhbGxvd0NvcHkg
fTsKICAgICBhdXRvIHJlc3VsdCA9IHJlcGxheWVyLnJlcGxheSgpOwogICAgIEVYUEVDVF9HVChy
ZXN1bHQubnVtYmVyT2ZCeXRlc1JlYWQsIDBVKTsKLSAgICBFWFBFQ1RfRVEocmVzdWx0Lm5leHRE
ZXN0aW5hdGlvbkltYWdlQnVmZmVyLCBzdGQ6Om51bGxvcHQpOwogICAgIEVYUEVDVF9FUShyZXN1
bHQubWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciwgc3RkOjpudWxsb3B0KTsKICAgICBF
WFBFQ1RfRVEocmVzdWx0LnJlYXNvbkZvclN0b3BwaW5nLCBTdG9wUmVwbGF5UmVhc29uOjpJbnZh
bGlkSXRlbU9yRXh0ZW50KTsKIH0KQEAgLTE2MCw3ICsxNTksNiBAQCBURVNUKERpc3BsYXlMaXN0
VGVzdHMsIElubGluZUl0ZW1WYWxpZGF0aW9uRmFpbHVyZSkKICAgICAgICAgUmVwbGF5ZXIgcmVw
bGF5ZXIgeyBjb250ZXh0LCBsaXN0IH07CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gcmVwbGF5ZXIu
cmVwbGF5KCk7CiAgICAgICAgIEVYUEVDVF9FUShyZXN1bHQubnVtYmVyT2ZCeXRlc1JlYWQsIDBV
KTsKLSAgICAgICAgRVhQRUNUX0VRKHJlc3VsdC5uZXh0RGVzdGluYXRpb25JbWFnZUJ1ZmZlciwg
c3RkOjpudWxsb3B0KTsKICAgICAgICAgRVhQRUNUX0VRKHJlc3VsdC5taXNzaW5nQ2FjaGVkUmVz
b3VyY2VJZGVudGlmaWVyLCBzdGQ6Om51bGxvcHQpOwogICAgICAgICBFWFBFQ1RfRVEocmVzdWx0
LnJlYXNvbkZvclN0b3BwaW5nLCBTdG9wUmVwbGF5UmVhc29uOjpJbnZhbGlkSXRlbU9yRXh0ZW50
KTsKICAgICB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>