<?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>182373</bug_id>
          
          <creation_ts>2018-01-31 20:28:39 -0800</creation_ts>
          <short_desc>[RenderTreeBuilder] Introduce RenderTreeBuilder to takeChild()</short_desc>
          <delta_ts>2018-02-01 11:42:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1395322</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-01-31 20:28:39 -0800</bug_when>
    <thetext>and move takeChild mutations to the builder slowly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395323</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-31 20:29:06 -0800</bug_when>
    <thetext>&lt;rdar://problem/37101484&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395324</commentid>
    <comment_count>2</comment_count>
      <attachid>332843</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-01-31 20:32:23 -0800</bug_when>
    <thetext>Created attachment 332843
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395325</commentid>
    <comment_count>3</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-01-31 20:32:40 -0800</bug_when>
    <thetext>EWS testing for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395476</commentid>
    <comment_count>4</comment_count>
      <attachid>332843</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-02-01 08:30:17 -0800</bug_when>
    <thetext>Comment on attachment 332843
Patch

Disregard the table change please, it got moved to a different patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395536</commentid>
    <comment_count>5</comment_count>
      <attachid>332887</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-02-01 10:29:06 -0800</bug_when>
    <thetext>Created attachment 332887
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395569</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-01 11:16:45 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 332887:

The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395572</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-01 11:16:52 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 332887:

imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.https.html bug 182396 (author: youennf@gmail.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395586</commentid>
    <comment_count>8</comment_count>
      <attachid>332887</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-01 11:42:37 -0800</bug_when>
    <thetext>Comment on attachment 332887
Patch

Clearing flags on attachment: 332887

Committed r227977: &lt;https://trac.webkit.org/changeset/227977&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395587</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-01 11:42:38 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332843</attachid>
            <date>2018-01-31 20:32:23 -0800</date>
            <delta_ts>2018-02-01 10:29:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182373-20180131203222.patch</filename>
            <type>text/plain</type>
            <size>44234</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3OTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmQwMDZlNGRmNWZhOGIy
MTcyMWZkNTAzZmEwY2ZmN2E1NWUwMjBkMS4uYzAyZWMzYWM0MmU1MGZkYjVmYmE2ZDBmMDA3ZDVh
NGIwNjZmMzA5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE4LTAxLTMxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1JlbmRlclRyZWVCdWlsZGVy
XSBJbnRyb2R1Y2UgUmVuZGVyVHJlZUJ1aWxkZXIgdG8gdGFrZUNoaWxkKCkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MjM3MworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzcxMDE0ODQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisgICAgICAgIAorICAgICAgICBFV1MgdGVzdGluZy4KKworICAgICAgICBObyBjaGFuZ2Ug
aW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dGFrZUNoaWxkKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tG
bG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6dGFrZUNoaWxkKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93Lmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJ1dHRvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCdXR0b246OnRh
a2VDaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVs
ZW1lbnQ6OnRha2VDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpyZW1v
dmVBbmREZXN0cm95Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6ZGVz
dHJveUxlZnRvdmVyQ2hpbGRyZW4pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyRnVsbFNjcmVlbjo6d3JhcEV4aXN0aW5nUmVuZGVyZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyRnVsbFNjcmVlbjo6dW53cmFwUmVuZGVyZXIpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6
OnRha2VDaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAoUmVuZGVyTWVudUxpc3Q6
OnRha2VDaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uRmxvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJNdWx0aUNvbHVtbkZsb3c6OnByb2Nlc3NQb3NzaWJsZVNwYW5uZXJEZXNjZW5k
YW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3kpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJ1
YnlBc0lubGluZTo6dGFrZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJ1YnlBc0Js
b2NrOjp0YWtlQ2hpbGQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSdWJ5Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyUnVieVJ1bjo6dGFrZUNoaWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVieVJ1
bi5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUYWJsZVJvdzo6Y29sbGFwc2VBbmREZXN0cm95QW5vbnltb3VzU2libGlu
Z1Jvd3MpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNWR0NvbnRhaW5lcjo6dGFrZUNoaWxkKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHSW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0lubGluZTo6
dGFrZUNoaWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTVkdSb290Ojp0YWtlQ2hpbGQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUm9vdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUZXh0Ojp0YWtlQ2hpbGQpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oOgorICAgICAgICAqIHJlbmRlcmluZy91
cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
cmVlQnVpbGRlcjo6Y29sbGFwc2VBbmREZXN0cm95QW5vbnltb3VzU2libGluZ1Jvd3MpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZUJ1aWxkZXI6OnJlbW92ZUZyb21QYXJlbnRBbmREZXN0
cm95Q2xlYW5pbmdVcEFub255bW91c1dyYXBwZXJzKToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcv
UmVuZGVyVHJlZUJ1aWxkZXJGaXJzdExldHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUcmVlQnVpbGRlcjo6Rmlyc3RMZXR0ZXI6OnVwZGF0ZVN0eWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRyZWVCdWlsZGVyOjpGaXJzdExldHRlcjo6Y3JlYXRlUmVuZGVyZXJzKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJMaXN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpMaXN0Ojp1cGRhdGVJdGVtTWFya2Vy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNdWx0aUNv
bHVtbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlQnVpbGRlcjo6TXVsdGlDb2x1
bW46OmNyZWF0ZUZyYWdtZW50ZWRGbG93KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVC
dWlsZGVyOjpNdWx0aUNvbHVtbjo6ZGVzdHJveUZyYWdtZW50ZWRGbG93KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJSdWJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpSdWJ5OjppbnNlcnRDaGlsZCk6CisKIDIwMTgtMDEt
MzEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBCaXRtYXBJbWFnZTo6ZHJhd1BhdHRlcm4oKSBtYXkgbm90IGRyYXcgYSBjb21wbGV0ZSBmcmFt
ZSBldmVuIGFmdGVyIGFsbCB0aGUgZGF0YSBpcyByZWNlaXZlZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggY2U5MmZiYjkwNWRmZTFlYmVjMmM3YmM2Y2FkODc3
MWEzNTY2YTE5ZC4uYmRmZjQ4M2EzYmI3ODBmMWIzNWUwMTZhYWMxZDg3ODQxMzA5ZjlmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC01ODIsMTIgKzU4Miwx
MiBAQCB2b2lkIFJlbmRlckJsb2NrOjpkcm9wQW5vbnltb3VzQm94Q2hpbGQoUmVuZGVyQmxvY2sm
IGNoaWxkKQogICAgIGNoaWxkLmRlbGV0ZUxpbmVzKCk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJP
YmplY3Q+IFJlbmRlckJsb2NrOjp0YWtlQ2hpbGQoUmVuZGVyT2JqZWN0JiBvbGRDaGlsZCkKK1Jl
bmRlclB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlckJsb2NrOjp0YWtlQ2hpbGQoUmVuZGVyVHJlZUJ1
aWxkZXImIGJ1aWxkZXIsIFJlbmRlck9iamVjdCYgb2xkQ2hpbGQpCiB7CiAgICAgLy8gTm8gbmVl
ZCB0byB3YXN0ZSB0aW1lIGluIG1lcmdpbmcgb3IgcmVtb3ZpbmcgZW1wdHkgYW5vbnltb3VzIGJs
b2Nrcy4KICAgICAvLyBXZSBjYW4ganVzdCBiYWlsIG91dCBpZiBvdXIgZG9jdW1lbnQgaXMgZ2V0
dGluZyBkZXN0cm95ZWQuCiAgICAgaWYgKHJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpKQotICAg
ICAgICByZXR1cm4gUmVuZGVyQm94Ojp0YWtlQ2hpbGQob2xkQ2hpbGQpOworICAgICAgICByZXR1
cm4gUmVuZGVyQm94Ojp0YWtlQ2hpbGQoYnVpbGRlciwgb2xkQ2hpbGQpOwogCiAgICAgLy8gSWYg
dGhpcyBjaGlsZCBpcyBhIGJsb2NrLCBhbmQgaWYgb3VyIHByZXZpb3VzIGFuZCBuZXh0IHNpYmxp
bmdzIGFyZSBib3RoIGFub255bW91cyBibG9ja3MKICAgICAvLyB3aXRoIGlubGluZSBjb250ZW50
LCB0aGVuIHdlIGNhbiBmb2xkIHRoZSBpbmxpbmUgY29udGVudCBiYWNrIHRvZ2V0aGVyLgpAQCAt
NjM3LDcgKzYzNyw3IEBAIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlckJsb2NrOjp0YWtl
Q2hpbGQoUmVuZGVyT2JqZWN0JiBvbGRDaGlsZCkKIAogICAgIGludmFsaWRhdGVMaW5lTGF5b3V0
UGF0aCgpOwogCi0gICAgYXV0byB0YWtlbkNoaWxkID0gUmVuZGVyQm94Ojp0YWtlQ2hpbGQob2xk
Q2hpbGQpOworICAgIGF1dG8gdGFrZW5DaGlsZCA9IFJlbmRlckJveDo6dGFrZUNoaWxkKGJ1aWxk
ZXIsIG9sZENoaWxkKTsKIAogICAgIFJlbmRlck9iamVjdCogY2hpbGQgPSBwcmV2ID8gcHJldiA6
IG5leHQ7CiAgICAgaWYgKGNhbk1lcmdlQW5vbnltb3VzQmxvY2tzICYmIGNoaWxkICYmICFjaGls
ZC0+cHJldmlvdXNTaWJsaW5nKCkgJiYgIWNoaWxkLT5uZXh0U2libGluZygpICYmIGNhbkRyb3BB
bm9ueW1vdXNCbG9ja0NoaWxkKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmgKaW5kZXggMjBhNzIwNDQ3NWQ2NmUwODJhYzg0ODIzZTE3NjFjNDRkZjBiNzY2NC4uM2M4ZjEz
OWI5OTI4OWEyN2ViNTJiMDMwOTU5YmE1MGYxOGVhZjJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmgKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBkZWxldGVMaW5lcygpOwogCiAgICAgdm9pZCBhZGRDaGlsZChSZW5kZXJUcmVlQnVpbGRl
ciYsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9y
ZUNoaWxkID0gMCkgb3ZlcnJpZGU7Ci0gICAgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gdGFrZUNo
aWxkKFJlbmRlck9iamVjdCYpIG92ZXJyaWRlOworICAgIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+
IHRha2VDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYsIFJlbmRlck9iamVjdCYpIG92ZXJyaWRlOwog
CiAgICAgdmlydHVhbCB2b2lkIGxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5
b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IDApOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDU2MDQxMjFmNzFlMDk5Mzc0N2YxNGQ5NTk5
M2Q4MDk3NWQ0M2M3M2IuLmE4NmJmNDhiOGEyOWMwYmE3MjRkNGY5NTI5M2NkNWY4NGRkMDc5MjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC0z
ODQ3LDE0ICszODQ3LDE0IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjphZGRDaGlsZChSZW5kZXJU
cmVlQnVpbGRlciYgYnVpbGRlciwgUmVuZGVyUHRyPFJlbmRlck9iamVjCiAgICAgYnVpbGRlci5p
bnNlcnRDaGlsZFRvUmVuZGVyQmxvY2tGbG93KCp0aGlzLCBXVEZNb3ZlKG5ld0NoaWxkKSwgYmVm
b3JlQ2hpbGQpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBSZW5kZXJCbG9ja0Zsb3c6
OnRha2VDaGlsZChSZW5kZXJPYmplY3QmIG9sZENoaWxkKQorUmVuZGVyUHRyPFJlbmRlck9iamVj
dD4gUmVuZGVyQmxvY2tGbG93Ojp0YWtlQ2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIs
IFJlbmRlck9iamVjdCYgb2xkQ2hpbGQpCiB7CiAgICAgaWYgKCFyZW5kZXJUcmVlQmVpbmdEZXN0
cm95ZWQoKSkgewogICAgICAgICBSZW5kZXJGcmFnbWVudGVkRmxvdyogZnJhZ21lbnRlZEZsb3cg
PSBtdWx0aUNvbHVtbkZsb3coKTsKICAgICAgICAgaWYgKGZyYWdtZW50ZWRGbG93ICYmIGZyYWdt
ZW50ZWRGbG93ICE9ICZvbGRDaGlsZCkKICAgICAgICAgICAgIGZyYWdtZW50ZWRGbG93LT5mcmFn
bWVudGVkRmxvd1JlbGF0aXZlV2lsbEJlUmVtb3ZlZChvbGRDaGlsZCk7CiAgICAgfQotICAgIHJl
dHVybiBSZW5kZXJCbG9jazo6dGFrZUNoaWxkKG9sZENoaWxkKTsKKyAgICByZXR1cm4gUmVuZGVy
QmxvY2s6OnRha2VDaGlsZChidWlsZGVyLCBvbGRDaGlsZCk7CiB9CiAKIHZvaWQgUmVuZGVyQmxv
Y2tGbG93OjpjaGVja0ZvclBhZ2luYXRpb25Mb2dpY2FsSGVpZ2h0Q2hhbmdlKGJvb2wmIHJlbGF5
b3V0Q2hpbGRyZW4sIExheW91dFVuaXQmIHBhZ2VMb2dpY2FsSGVpZ2h0LCBib29sJiBwYWdlTG9n
aWNhbEhlaWdodENoYW5nZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tGbG93LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tG
bG93LmgKaW5kZXggZjI5ZDhiM2RiZjYwNGU5MzhhNmJiYjhkNWM2NmI1NDZjMWU2MTRjYy4uODZl
Mjk1ZTQ4OTA5MDcyYTI5ODllNzA5MDE5NTkzZmQxOWM0MWUzYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaApAQCAtMzc5LDcgKzM3OSw3IEBAIHB1YmxpYzoK
ICAgICBib29sIGhhc05leHRQYWdlKExheW91dFVuaXQgbG9naWNhbE9mZnNldCwgUGFnZUJvdW5k
YXJ5UnVsZSA9IEV4Y2x1ZGVQYWdlQm91bmRhcnkpIGNvbnN0OwogCiAgICAgdm9pZCBhZGRDaGls
ZChSZW5kZXJUcmVlQnVpbGRlciYsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IG5ld0NoaWxkLCBS
ZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCkgb3ZlcnJpZGU7Ci0gICAgUmVuZGVyUHRyPFJl
bmRlck9iamVjdD4gdGFrZUNoaWxkKFJlbmRlck9iamVjdCYpIG92ZXJyaWRlOworICAgIFJlbmRl
clB0cjxSZW5kZXJPYmplY3Q+IHRha2VDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYsIFJlbmRlck9i
amVjdCYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCB1cGRhdGVDb2x1bW5Qcm9ncmVzc2lvbkZyb21T
dHlsZShSZW5kZXJTdHlsZSYpOwogICAgIHZvaWQgdXBkYXRlU3R5bGVzRm9yQ29sdW1uQ2hpbGRy
ZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAKaW5kZXggOGMz
YjAyOTFlNTNiOTAwMTZlN2UyNDI1MjJmZWRiNzI1YWJiZWYyNS4uNjVhZDM0YzEyMjYxM2Q5YTA2
NzA2ZTJhMDI0OWE0OThmOTFkYTg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJ1dHRvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJ1dHRvbi5jcHAKQEAgLTcwLDE2ICs3MCwxNiBAQCB2b2lkIFJlbmRlckJ1dHRvbjo6c2V0SW5u
ZXJSZW5kZXJlcihSZW5kZXJCbG9jayYgaW5uZXJSZW5kZXJlcikKICAgICB1cGRhdGVBbm9ueW1v
dXNDaGlsZFN0eWxlKG1faW5uZXItPm11dGFibGVTdHlsZSgpKTsKIH0KIAotUmVuZGVyUHRyPFJl
bmRlck9iamVjdD4gUmVuZGVyQnV0dG9uOjp0YWtlQ2hpbGQoUmVuZGVyT2JqZWN0JiBvbGRDaGls
ZCkKK1JlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlckJ1dHRvbjo6dGFrZUNoaWxkKFJlbmRl
clRyZWVCdWlsZGVyJiBidWlsZGVyLCBSZW5kZXJPYmplY3QmIG9sZENoaWxkKQogewogICAgIC8v
IG1faW5uZXIgc2hvdWxkIGJlIHRoZSBvbmx5IGNoaWxkLCBidXQgY2hlY2tpbmcgZm9yIGRpcmVj
dCBjaGlsZHJlbiB3aG8KICAgICAvLyBhcmUgbm90IG1faW5uZXIgcHJldmVudHMgc2VjdXJpdHkg
cHJvYmxlbXMgd2hlbiB0aGF0IGFzc3VtcHRpb24gaXMKICAgICAvLyB2aW9sYXRlZC4KICAgICBp
ZiAoJm9sZENoaWxkID09IG1faW5uZXIgfHwgIW1faW5uZXIgfHwgb2xkQ2hpbGQucGFyZW50KCkg
PT0gdGhpcykgewogICAgICAgICBBU1NFUlQoJm9sZENoaWxkID09IG1faW5uZXIgfHwgIW1faW5u
ZXIpOwotICAgICAgICByZXR1cm4gUmVuZGVyRmxleGlibGVCb3g6OnRha2VDaGlsZChvbGRDaGls
ZCk7CisgICAgICAgIHJldHVybiBSZW5kZXJGbGV4aWJsZUJveDo6dGFrZUNoaWxkKGJ1aWxkZXIs
IG9sZENoaWxkKTsKICAgICB9Ci0gICAgcmV0dXJuIG1faW5uZXItPnRha2VDaGlsZChvbGRDaGls
ZCk7CisgICAgcmV0dXJuIG1faW5uZXItPnRha2VDaGlsZChidWlsZGVyLCBvbGRDaGlsZCk7CiB9
CiAgICAgCiB2b2lkIFJlbmRlckJ1dHRvbjo6dXBkYXRlQW5vbnltb3VzQ2hpbGRTdHlsZShSZW5k
ZXJTdHlsZSYgY2hpbGRTdHlsZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCdXR0b24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
dXR0b24uaAppbmRleCA1MzdmMzc2MmZhN2I4MzQ5NzJhZTkwMjYzZjlhYjc3MmYwNDg3YzBlLi4y
ZTQ4ZDUxMmJhZjI2ODBhM2EyODgwNDUwMDgzZjYwNWI3NzI3MzQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKIAogICAg
IGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBSZW5kZXJQ
dHI8UmVuZGVyT2JqZWN0PiB0YWtlQ2hpbGQoUmVuZGVyT2JqZWN0Jikgb3ZlcnJpZGU7CisgICAg
UmVuZGVyUHRyPFJlbmRlck9iamVjdD4gdGFrZUNoaWxkKFJlbmRlclRyZWVCdWlsZGVyJiwgUmVu
ZGVyT2JqZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVMZWZ0b3ZlckFub255bW91c0Js
b2NrKFJlbmRlckJsb2NrKikgb3ZlcnJpZGUgeyB9CiAgICAgYm9vbCBjcmVhdGVzQW5vbnltb3Vz
V3JhcHBlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IGIxMDAxYWYyMGMwM2QyY2YyNTY4
NTIyNjM2MjNhMjk4YzM4YWRjNGEuLmRlNDM2NzlkZGEyMDE5NWU5ZWYyZDRhOWRhNTcyNTJlZWJj
MzI1YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAg
LTQ4MCwxNCArNDgwLDE0IEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6YWRkQ2hpbGRJZ25vcmluZ0Nv
bnRpbnVhdGlvbihSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlciwgUmVuCiAgICAgYnVpbGRlci5p
bnNlcnRDaGlsZCgqdGhpcywgV1RGTW92ZShuZXdDaGlsZCksIGJlZm9yZUNoaWxkKTsKIH0KIAot
UmVuZGVyUHRyPFJlbmRlck9iamVjdD4gUmVuZGVyRWxlbWVudDo6dGFrZUNoaWxkKFJlbmRlck9i
amVjdCYgb2xkQ2hpbGQpCitSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBSZW5kZXJFbGVtZW50Ojp0
YWtlQ2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImLCBSZW5kZXJPYmplY3QmIG9sZENoaWxkKQogewog
ICAgIHJldHVybiB0YWtlQ2hpbGRJbnRlcm5hbChvbGRDaGlsZCk7CiB9CiAKLXZvaWQgUmVuZGVy
RWxlbWVudDo6cmVtb3ZlQW5kRGVzdHJveUNoaWxkKFJlbmRlck9iamVjdCYgb2xkQ2hpbGQpCit2
b2lkIFJlbmRlckVsZW1lbnQ6OnJlbW92ZUFuZERlc3Ryb3lDaGlsZChSZW5kZXJUcmVlQnVpbGRl
ciYgYnVpbGRlciwgUmVuZGVyT2JqZWN0JiBvbGRDaGlsZCkKIHsKLSAgICBhdXRvIHRvRGVzdHJv
eSA9IHRha2VDaGlsZChvbGRDaGlsZCk7CisgICAgYXV0byB0b0Rlc3Ryb3kgPSB0YWtlQ2hpbGQo
YnVpbGRlciwgb2xkQ2hpbGQpOwogfQogCiB2b2lkIFJlbmRlckVsZW1lbnQ6OmRlc3Ryb3lMZWZ0
b3ZlckNoaWxkcmVuKCkKQEAgLTQ5NSw3ICs0OTUsNyBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6OmRl
c3Ryb3lMZWZ0b3ZlckNoaWxkcmVuKCkKICAgICB3aGlsZSAobV9maXJzdENoaWxkKSB7CiAgICAg
ICAgIGlmIChhdXRvKiBub2RlID0gbV9maXJzdENoaWxkLT5ub2RlKCkpCiAgICAgICAgICAgICBu
b2RlLT5zZXRSZW5kZXJlcihudWxscHRyKTsKLSAgICAgICAgcmVtb3ZlQW5kRGVzdHJveUNoaWxk
KCptX2ZpcnN0Q2hpbGQpOworICAgICAgICByZW1vdmVBbmREZXN0cm95Q2hpbGQoKlJlbmRlclRy
ZWVCdWlsZGVyOjpjdXJyZW50KCksICptX2ZpcnN0Q2hpbGQpOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKaW5kZXggNWIxMTI5ZTdmYWUwMDYyZDQw
NzI2NGRiOGUxNGQ5M2M5MGE2YmMyMC4uNDQ2NmQwMWI5MmEyYjc0ZGRiMGY3OWNhZGZmMmNjOGIw
Nzk3ZDI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCkBAIC04
OSw4ICs4OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNDaGlsZEFsbG93ZWQoY29u
c3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CiAgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlclRyZWVCdWlsZGVyJiwgUmVuZGVy
UHRyPFJlbmRlck9iamVjdD4sIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpOwogICAgIHZpcnR1
YWwgdm9pZCBhZGRDaGlsZElnbm9yaW5nQ29udGludWF0aW9uKFJlbmRlclRyZWVCdWlsZGVyJiwg
UmVuZGVyUHRyPFJlbmRlck9iamVjdD4gbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hp
bGQgPSBudWxscHRyKTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IHRha2VD
aGlsZChSZW5kZXJPYmplY3QmKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdm9pZCByZW1vdmVB
bmREZXN0cm95Q2hpbGQoUmVuZGVyT2JqZWN0Jik7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyT2JqZWN0PiB0YWtlQ2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImLCBSZW5kZXJPYmplY3QmKSBX
QVJOX1VOVVNFRF9SRVRVUk47CisgICAgdm9pZCByZW1vdmVBbmREZXN0cm95Q2hpbGQoUmVuZGVy
VHJlZUJ1aWxkZXImLCBSZW5kZXJPYmplY3QmKTsKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgZnVu
Y3Rpb25zIGFyZSB1c2VkIHdoZW4gdGhlIHJlbmRlciB0cmVlIGhpZXJhcmNoeSBjaGFuZ2VzIHRv
IG1ha2Ugc3VyZSBsYXllcnMgZ2V0CiAgICAgLy8gcHJvcGVybHkgYWRkZWQgYW5kIHJlbW92ZWQu
IFNpbmNlIGNvbnRhaW5lcnNoaXAgY2FuIGJlIGltcGxlbWVudGVkIGJ5IGFueSBzdWJjbGFzcywg
YW5kIHNpbmNlIGEgaGllcmFyY2h5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RnVsbFNjcmVlbi5jcHAKaW5kZXggNzRhZjNmNzkwM2MxZDk4YTRhZjQ5MWUyOWM2ODQ1ZjczZDNm
ZTJlOS4uOGYwMzUyZDhlNTAyMjkyYTlhZTI0NDE4ZWVlMDExY2QxNjNjYjdmOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcApAQCAtMTMyLDcgKzEz
Miw3IEBAIHZvaWQgUmVuZGVyRnVsbFNjcmVlbjo6d3JhcEV4aXN0aW5nUmVuZGVyZXIoUmVuZGVy
RWxlbWVudCYgcmVuZGVyZXIsIERvY3VtZW50JiBkCiAKICAgICBidWlsZGVyLmluc2VydENoaWxk
KHBhcmVudCwgV1RGTW92ZShuZXdGdWxsc2NyZWVuUmVuZGVyZXIpLCAmcmVuZGVyZXIpOwogCi0g
ICAgYXV0byB0b01vdmUgPSBwYXJlbnQudGFrZUNoaWxkKHJlbmRlcmVyKTsKKyAgICBhdXRvIHRv
TW92ZSA9IHBhcmVudC50YWtlQ2hpbGQoYnVpbGRlciwgcmVuZGVyZXIpOwogCiAgICAgLy8gQWx3
YXlzIGp1c3QgZG8gYSBmdWxsIGxheW91dCB0byBlbnN1cmUgdGhhdCBsaW5lIGJveGVzIGdldCBk
ZWxldGVkIHByb3Blcmx5LgogICAgIC8vIEJlY2F1c2Ugb2JqZWN0cyBtb3ZlZCBmcm9tIHxwYXJl
bnR8IHRvIHxmdWxsc2NyZWVuUmVuZGVyZXJ8LCB3ZSB3YW50IHRvCkBAIC0xNzgsNyArMTc4LDcg
QEAgdm9pZCBSZW5kZXJGdWxsU2NyZWVuOjp1bndyYXBSZW5kZXJlcihib29sJiByZXF1aXJlc1Jl
bmRlclRyZWVSZWJ1aWxkKQogICAgICAgICAgICAgLy8gbHlpbmcgYXJvdW5kIG9uIHRoZSBjaGls
ZC4KICAgICAgICAgICAgIGlmIChpczxSZW5kZXJCb3g+KCpjaGlsZCkpCiAgICAgICAgICAgICAg
ICAgZG93bmNhc3Q8UmVuZGVyQm94PigqY2hpbGQpLmNsZWFyT3ZlcnJpZGVTaXplKCk7Ci0gICAg
ICAgICAgICBhdXRvIGNoaWxkVG9Nb3ZlID0gY2hpbGQtPnBhcmVudCgpLT50YWtlQ2hpbGQoKmNo
aWxkKTsKKyAgICAgICAgICAgIGF1dG8gY2hpbGRUb01vdmUgPSBjaGlsZC0+cGFyZW50KCktPnRh
a2VDaGlsZChidWlsZGVyLCAqY2hpbGQpOwogICAgICAgICAgICAgYnVpbGRlci5pbnNlcnRDaGls
ZCgqcGFyZW50KCksIFdURk1vdmUoY2hpbGRUb01vdmUpLCB0aGlzKTsKICAgICAgICAgICAgIHBh
cmVudCgpLT5zZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IGY5ZGFlOGM3ZTE3OTJh
ZDRiYmVjYWVhYjQwMmZhNjJmYzA3ODY3ZGYuLjk3NDI2ODRlMTMwMDZmYzgzOWMwN2I2MDBhMzBl
OTlkZDJjY2E4ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJH
cmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAg
LTg1LDkgKzg1LDkgQEAgdm9pZCBSZW5kZXJHcmlkOjphZGRDaGlsZChSZW5kZXJUcmVlQnVpbGRl
ciYgYnVpbGRlciwgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gbmUKICAgICBkaXJ0eUdyaWQoKTsK
IH0KIAotUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gUmVuZGVyR3JpZDo6dGFrZUNoaWxkKFJlbmRl
ck9iamVjdCYgY2hpbGQpCitSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBSZW5kZXJHcmlkOjp0YWtl
Q2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIsIFJlbmRlck9iamVjdCYgY2hpbGQpCiB7
Ci0gICAgYXV0byB0YWtlbkNoaWxkID0gUmVuZGVyQmxvY2s6OnRha2VDaGlsZChjaGlsZCk7Cisg
ICAgYXV0byB0YWtlbkNoaWxkID0gUmVuZGVyQmxvY2s6OnRha2VDaGlsZChidWlsZGVyLCBjaGls
ZCk7CiAKICAgICAvLyBQb3NpdGlvbmVkIGdyaWQgaXRlbXMgZG8gbm90IHRha2UgdXAgc3BhY2Ug
b3Igb3RoZXJ3aXNlIHBhcnRpY2lwYXRlIGluIHRoZSBsYXlvdXQgb2YgdGhlIGdyaWQsCiAgICAg
Ly8gZm9yIHRoYXQgcmVhc29uIHdlIGRvbid0IG5lZWQgdG8gbWFyayB0aGUgZ3JpZCBhcyBkaXJ0
eSB3aGVuIHRoZXkgYXJlIHJlbW92ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
aAppbmRleCAyYTQ5NWZkZjAzMzQzMTJhMTJhMzE3NTc4MjJkNDFiODNlNzhjZDU1Li40MTU4NmNk
NTdjYmVmNWEwNWQ0OWJjMTUwMTVlZTM3OTJkZDc0NmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJHcmlkLmgKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbXB1
dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5
b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgYWRk
Q2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImLCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBuZXdDaGls
ZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCkgZmluYWw7Ci0gICAgUmVuZGVyUHRyPFJlbmRl
ck9iamVjdD4gdGFrZUNoaWxkKFJlbmRlck9iamVjdCYpIGZpbmFsOworICAgIFJlbmRlclB0cjxS
ZW5kZXJPYmplY3Q+IHRha2VDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYsIFJlbmRlck9iamVjdCYp
IGZpbmFsOwogCiAgICAgU3R5bGVTZWxmQWxpZ25tZW50RGF0YSBzZWxmQWxpZ25tZW50Rm9yQ2hp
bGQoR3JpZEF4aXMsIGNvbnN0IFJlbmRlckJveCYsIGNvbnN0IFJlbmRlclN0eWxlKiA9IG51bGxw
dHIpIGNvbnN0OwogICAgIGJvb2wgc2VsZkFsaWdubWVudENoYW5nZWRUb1N0cmV0Y2goR3JpZEF4
aXMsIGNvbnN0IFJlbmRlclN0eWxlJiBvbGRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0
eWxlLCBjb25zdCBSZW5kZXJCb3gmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuY3BwCmluZGV4IGQ1MTc2Y2UzODlhOWMyNDI0YzNkZmViMTY4Yzc5YWMw
YTYyZTc5YmMuLjQwN2QyY2IyZjgxMGNlMGMxZTI0ZTJjZDJlZGNhZTlkNGRjYzQ4YzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMTcyLDExICsx
NzIsMTEgQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6YWRkQ2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXIm
LCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBjaGlsZCwKICAgICAgICAgY2FjaGUtPmNoaWxkcmVu
Q2hhbmdlZCh0aGlzLCBjaGlsZC5nZXQoKSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJPYmplY3Q+
IFJlbmRlck1lbnVMaXN0Ojp0YWtlQ2hpbGQoUmVuZGVyT2JqZWN0JiBvbGRDaGlsZCkKK1JlbmRl
clB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlck1lbnVMaXN0Ojp0YWtlQ2hpbGQoUmVuZGVyVHJlZUJ1
aWxkZXImIGJ1aWxkZXIsIFJlbmRlck9iamVjdCYgb2xkQ2hpbGQpCiB7CiAgICAgaWYgKCFtX2lu
bmVyQmxvY2sgfHwgJm9sZENoaWxkID09IG1faW5uZXJCbG9jaykKLSAgICAgICAgcmV0dXJuIFJl
bmRlckZsZXhpYmxlQm94Ojp0YWtlQ2hpbGQob2xkQ2hpbGQpOwotICAgIHJldHVybiBtX2lubmVy
QmxvY2stPnRha2VDaGlsZChvbGRDaGlsZCk7CisgICAgICAgIHJldHVybiBSZW5kZXJGbGV4aWJs
ZUJveDo6dGFrZUNoaWxkKGJ1aWxkZXIsIG9sZENoaWxkKTsKKyAgICByZXR1cm4gbV9pbm5lckJs
b2NrLT50YWtlQ2hpbGQoYnVpbGRlciwgb2xkQ2hpbGQpOwogfQogCiB2b2lkIFJlbmRlck1lbnVM
aXN0OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5
bGUqIG9sZFN0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1lbnVMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaApp
bmRleCAwMWM3NTkxOTUwNGFkYzllNjRjMzlhNGM0ZWFiN2JhOTMxZWMyMzYxLi5iZGY0NDcxNmVl
MGYxZmM3ZmU5YjczY2VmOGE0OGY1ZTA1Yzk3MTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVudUxpc3QuaApAQCAtNzAsNyArNzAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
aXNNZW51TGlzdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZvaWQg
YWRkQ2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImLCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBuZXdD
aGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApIG92ZXJyaWRlOwotICAgIFJlbmRl
clB0cjxSZW5kZXJPYmplY3Q+IHRha2VDaGlsZChSZW5kZXJPYmplY3QmKSBvdmVycmlkZTsKKyAg
ICBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiB0YWtlQ2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImLCBS
ZW5kZXJPYmplY3QmKSBvdmVycmlkZTsKICAgICBib29sIGNyZWF0ZXNBbm9ueW1vdXNXcmFwcGVy
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdm9pZCB1cGRhdGVGcm9t
RWxlbWVudCgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck11bHRpQ29sdW1uRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTXVsdGlDb2x1bW5GbG93LmNwcAppbmRleCBkNjdjZjU3YmQzYTQwZGQ1MmJmZWQ0OThiMThj
OTRkYzJkMTNkN2Y4Li5mNGQwYTM1YjI2ZmExZTdmMjRiZjFlZGJhZDU1YjZlNDVmMDJiYzk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93
LmNwcApAQCAtMjc0LDcgKzI3NCw3IEBAIFJlbmRlck9iamVjdCogUmVuZGVyTXVsdGlDb2x1bW5G
bG93Ojpwcm9jZXNzUG9zc2libGVTcGFubmVyRGVzY2VuZGFudChSZW5kZXJPYmplCiAgICAgICAg
IGF1dG8gbmV3UGxhY2Vob2xkZXIgPSBSZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRl
cjo6Y3JlYXRlQW5vbnltb3VzKCp0aGlzLCBkb3duY2FzdDxSZW5kZXJCb3g+KGRlc2NlbmRhbnQp
LCBjb250YWluZXItPnN0eWxlKCkpOwogICAgICAgICBhdXRvJiBwbGFjZWhvbGRlciA9ICpuZXdQ
bGFjZWhvbGRlcjsKICAgICAgICAgUmVuZGVyVHJlZUJ1aWxkZXI6OmN1cnJlbnQoKS0+aW5zZXJ0
Q2hpbGQoKmNvbnRhaW5lciwgV1RGTW92ZShuZXdQbGFjZWhvbGRlciksIGRlc2NlbmRhbnQubmV4
dFNpYmxpbmcoKSk7Ci0gICAgICAgIGF1dG8gdGFrZW5EZXNjZW5kYW50ID0gY29udGFpbmVyLT50
YWtlQ2hpbGQoZGVzY2VuZGFudCk7CisgICAgICAgIGF1dG8gdGFrZW5EZXNjZW5kYW50ID0gY29u
dGFpbmVyLT50YWtlQ2hpbGQoKlJlbmRlclRyZWVCdWlsZGVyOjpjdXJyZW50KCksIGRlc2NlbmRh
bnQpOwogICAgICAgICAKICAgICAgICAgLy8gVGhpcyBpcyBhIGd1YXJkIHRvIHN0b3AgYW4gYW5j
ZXN0b3IgZmxvdyB0aHJlYWQgZnJvbSBwcm9jZXNzaW5nIHRoZSBzcGFubmVyLgogICAgICAgICBn
U2hpZnRpbmdTcGFubmVyID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAKaW5kZXggZmFhNzNiNWM4ODk3NzQyY2RjZDVkOTJhM2U3MzYyNTExNzljZGRjNC4u
ZjdjNWMxMTY5MmMwY2VkMWYwYWFiMjY5NWVkMTAwMjQ0YWNjNGMwZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJTY3JvbGxiYXJQYXJ0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGFibGVSb3cuaCIKICNp
bmNsdWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIlJlbmRlclRyZWVCdWlsZGVyLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1
ZGUgIlNWR1JlbmRlclN1cHBvcnQuaCIKQEAgLTI1Nyw3ICsyNTgsNyBAQCB2b2lkIFJlbmRlck9i
amVjdDo6c2V0UGFyZW50KFJlbmRlckVsZW1lbnQqIHBhcmVudCkKIHZvaWQgUmVuZGVyT2JqZWN0
OjpyZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSgpCiB7CiAgICAgQVNTRVJUKG1fcGFyZW50KTsK
LSAgICBtX3BhcmVudC0+cmVtb3ZlQW5kRGVzdHJveUNoaWxkKCp0aGlzKTsKKyAgICBtX3BhcmVu
dC0+cmVtb3ZlQW5kRGVzdHJveUNoaWxkKCpSZW5kZXJUcmVlQnVpbGRlcjo6Y3VycmVudCgpLCAq
dGhpcyk7CiB9CiAKIFJlbmRlck9iamVjdCogUmVuZGVyT2JqZWN0OjpuZXh0SW5QcmVPcmRlcigp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAKaW5kZXggN2Y1N2Q5
NzQ2OWI0MWZiYWNkMzNmZjNhODE1MTg3ODFhZTNiMzdjMy4uN2MwNGE4NjIwYzA5Y2FhN2VkNTE4
YjFlYWRhNGVlNzJhNWM1YTVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclJ1YnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5
LmNwcApAQCAtOTMsNyArOTMsNyBAQCB2b2lkIFJlbmRlclJ1YnlBc0lubGluZTo6c3R5bGVEaWRD
aGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKgogICAgIHByb3Bh
Z2F0ZVN0eWxlVG9Bbm9ueW1vdXNDaGlsZHJlbihQcm9wYWdhdGVUb0FsbENoaWxkcmVuKTsKIH0K
IAotUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gUmVuZGVyUnVieUFzSW5saW5lOjp0YWtlQ2hpbGQo
UmVuZGVyT2JqZWN0JiBjaGlsZCkKK1JlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlclJ1YnlB
c0lubGluZTo6dGFrZUNoaWxkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyLCBSZW5kZXJPYmpl
Y3QmIGNoaWxkKQogewogICAgIC8vIElmIHRoZSBjaGlsZCdzIHBhcmVudCBpcyAqdGhpcyAobXVz
dCBiZSBhIHJ1YnkgcnVuIG9yIGdlbmVyYXRlZCBjb250ZW50IG9yIGFub255bW91cyBibG9jayks
CiAgICAgLy8ganVzdCB1c2UgdGhlIG5vcm1hbCByZW1vdmUgbWV0aG9kLgpAQCAtMTAxLDIwICsx
MDEsMjAgQEAgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gUmVuZGVyUnVieUFzSW5saW5lOjp0YWtl
Q2hpbGQoUmVuZGVyT2JqZWN0JiBjaGlsZCkKICNpZm5kZWYgQVNTRVJUX0RJU0FCTEVECiAgICAg
ICAgIEFTU0VSVChpc1J1YnlDaGlsZEZvck5vcm1hbFJlbW92YWwoY2hpbGQpKTsKICNlbmRpZgot
ICAgICAgICByZXR1cm4gUmVuZGVySW5saW5lOjp0YWtlQ2hpbGQoY2hpbGQpOworICAgICAgICBy
ZXR1cm4gUmVuZGVySW5saW5lOjp0YWtlQ2hpbGQoYnVpbGRlciwgY2hpbGQpOwogICAgIH0KICAg
ICAvLyBJZiB0aGUgY2hpbGQncyBwYXJlbnQgaXMgYW4gYW5veW1vdXMgYmxvY2sgKG11c3QgYmUg
Z2VuZXJhdGVkIDpiZWZvcmUvOmFmdGVyIGNvbnRlbnQpCiAgICAgLy8ganVzdCB1c2UgdGhlIGJs
b2NrJ3MgcmVtb3ZlIG1ldGhvZC4KICAgICBpZiAoaXNBbm9ueW1vdXNSdWJ5SW5saW5lQmxvY2so
Y2hpbGQucGFyZW50KCkpKSB7CiAgICAgICAgIEFTU0VSVChjaGlsZC5pc0JlZm9yZUNvbnRlbnQo
KSB8fCBjaGlsZC5pc0FmdGVyQ29udGVudCgpKTsKICAgICAgICAgYXV0byYgcGFyZW50ID0gKmNo
aWxkLnBhcmVudCgpOwotICAgICAgICBhdXRvIHRha2VuQ2hpbGQgPSBwYXJlbnQudGFrZUNoaWxk
KGNoaWxkKTsKKyAgICAgICAgYXV0byB0YWtlbkNoaWxkID0gcGFyZW50LnRha2VDaGlsZChidWls
ZGVyLCBjaGlsZCk7CiAgICAgICAgIHBhcmVudC5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSgp
OwogICAgICAgICByZXR1cm4gdGFrZW5DaGlsZDsKICAgICB9CiAKICAgICAvLyBPdGhlcndpc2Ug
ZmluZCB0aGUgY29udGFpbmluZyBydW4gYW5kIHJlbW92ZSBpdCBmcm9tIHRoZXJlLgotICAgIHJl
dHVybiBmaW5kUnVieVJ1blBhcmVudChjaGlsZCkudGFrZUNoaWxkKGNoaWxkKTsKKyAgICByZXR1
cm4gZmluZFJ1YnlSdW5QYXJlbnQoY2hpbGQpLnRha2VDaGlsZChidWlsZGVyLCBjaGlsZCk7CiB9
CiAKIC8vPT09IHJ1YnkgYXMgYmxvY2sgb2JqZWN0ID09PQpAQCAtMTMyLDcgKzEzMiw3IEBAIHZv
aWQgUmVuZGVyUnVieUFzQmxvY2s6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZm
LCBjb25zdCBSZW5kZXJTdHlsZSoKICAgICBwcm9wYWdhdGVTdHlsZVRvQW5vbnltb3VzQ2hpbGRy
ZW4oUHJvcGFnYXRlVG9BbGxDaGlsZHJlbik7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJPYmplY3Q+
IFJlbmRlclJ1YnlBc0Jsb2NrOjp0YWtlQ2hpbGQoUmVuZGVyT2JqZWN0JiBjaGlsZCkKK1JlbmRl
clB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlclJ1YnlBc0Jsb2NrOjp0YWtlQ2hpbGQoUmVuZGVyVHJl
ZUJ1aWxkZXImIGJ1aWxkZXIsIFJlbmRlck9iamVjdCYgY2hpbGQpCiB7CiAgICAgLy8gSWYgdGhl
IGNoaWxkJ3MgcGFyZW50IGlzICp0aGlzIChtdXN0IGJlIGEgcnVieSBydW4gb3IgZ2VuZXJhdGVk
IGNvbnRlbnQgb3IgYW5vbnltb3VzIGJsb2NrKSwKICAgICAvLyBqdXN0IHVzZSB0aGUgbm9ybWFs
IHJlbW92ZSBtZXRob2QuCkBAIC0xNDAsMjAgKzE0MCwyMCBAQCBSZW5kZXJQdHI8UmVuZGVyT2Jq
ZWN0PiBSZW5kZXJSdWJ5QXNCbG9jazo6dGFrZUNoaWxkKFJlbmRlck9iamVjdCYgY2hpbGQpCiAj
aWZuZGVmIEFTU0VSVF9ESVNBQkxFRAogICAgICAgICBBU1NFUlQoaXNSdWJ5Q2hpbGRGb3JOb3Jt
YWxSZW1vdmFsKGNoaWxkKSk7CiAjZW5kaWYKLSAgICAgICAgcmV0dXJuIFJlbmRlckJsb2NrRmxv
dzo6dGFrZUNoaWxkKGNoaWxkKTsKKyAgICAgICAgcmV0dXJuIFJlbmRlckJsb2NrRmxvdzo6dGFr
ZUNoaWxkKGJ1aWxkZXIsIGNoaWxkKTsKICAgICB9CiAgICAgLy8gSWYgdGhlIGNoaWxkJ3MgcGFy
ZW50IGlzIGFuIGFub3ltb3VzIGJsb2NrIChtdXN0IGJlIGdlbmVyYXRlZCA6YmVmb3JlLzphZnRl
ciBjb250ZW50KQogICAgIC8vIGp1c3QgdXNlIHRoZSBibG9jaydzIHJlbW92ZSBtZXRob2QuCiAg
ICAgaWYgKGlzQW5vbnltb3VzUnVieUlubGluZUJsb2NrKGNoaWxkLnBhcmVudCgpKSkgewogICAg
ICAgICBBU1NFUlQoY2hpbGQuaXNCZWZvcmVDb250ZW50KCkgfHwgY2hpbGQuaXNBZnRlckNvbnRl
bnQoKSk7CiAgICAgICAgIGF1dG8mIHBhcmVudCA9ICpjaGlsZC5wYXJlbnQoKTsKLSAgICAgICAg
YXV0byB0YWtlbkNoaWxkID0gcGFyZW50LnRha2VDaGlsZChjaGlsZCk7CisgICAgICAgIGF1dG8g
dGFrZW5DaGlsZCA9IHBhcmVudC50YWtlQ2hpbGQoYnVpbGRlciwgY2hpbGQpOwogICAgICAgICBw
YXJlbnQucmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koKTsKICAgICAgICAgcmV0dXJuIHRha2Vu
Q2hpbGQ7CiAgICAgfQogCiAgICAgLy8gT3RoZXJ3aXNlIGZpbmQgdGhlIGNvbnRhaW5pbmcgcnVu
IGFuZCByZW1vdmUgaXQgZnJvbSB0aGVyZS4KLSAgICByZXR1cm4gZmluZFJ1YnlSdW5QYXJlbnQo
Y2hpbGQpLnRha2VDaGlsZChjaGlsZCk7CisgICAgcmV0dXJuIGZpbmRSdWJ5UnVuUGFyZW50KGNo
aWxkKS50YWtlQ2hpbGQoYnVpbGRlciwgY2hpbGQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuaAppbmRleCBjYmZjMjNiYzVkZjQx
OTNlZGQ0MGQyYmM4NjhiMWVjYzA3MjM4NzViLi5jZGVjMTNhNTU4ZTAyZjEwNmFjNDVlNmNhMTNj
MjM0MDdjN2Y0NWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UnVieS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmgKQEAgLTU2
LDcgKzU2LDcgQEAgcHVibGljOgogICAgIFJlbmRlclJ1YnlBc0lubGluZShFbGVtZW50JiwgUmVu
ZGVyU3R5bGUmJik7CiAgICAgdmlydHVhbCB+UmVuZGVyUnVieUFzSW5saW5lKCk7CiAKLSAgICBS
ZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiB0YWtlQ2hpbGQoUmVuZGVyT2JqZWN0JiBjaGlsZCkgb3Zl
cnJpZGU7CisgICAgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gdGFrZUNoaWxkKFJlbmRlclRyZWVC
dWlsZGVyJiwgUmVuZGVyT2JqZWN0JiBjaGlsZCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAg
ICB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUq
IG9sZFN0eWxlKSBvdmVycmlkZTsKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgogCiAgICAgRWxl
bWVudCYgZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PEVsZW1lbnQ+KG5vZGVGb3JO
b25Bbm9ueW1vdXMoKSk7IH0KIAotICAgIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IHRha2VDaGls
ZChSZW5kZXJPYmplY3QmIGNoaWxkKSBvdmVycmlkZTsKKyAgICBSZW5kZXJQdHI8UmVuZGVyT2Jq
ZWN0PiB0YWtlQ2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImLCBSZW5kZXJPYmplY3QmIGNoaWxkKSBv
dmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZm
ZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwCmluZGV4IDg3ODg3Yjg5ZjYyZjE3MGMx
OTEwYzJhZDExMDBhN2E1OTExZTY4ZjcuLjRhZWE1OWZkZGZjYTY1NzUyMmQ1ZjBlZWFiMmY3MmIx
MDA5OWJkMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5
UnVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVJ1bi5jcHAK
QEAgLTk3LDcgKzk3LDcgQEAgYm9vbCBSZW5kZXJSdWJ5UnVuOjppc0NoaWxkQWxsb3dlZChjb25z
dCBSZW5kZXJPYmplY3QmIGNoaWxkLCBjb25zdCBSZW5kZXJTdHlsZSYKICAgICByZXR1cm4gY2hp
bGQuaXNJbmxpbmUoKSB8fCBjaGlsZC5pc1J1YnlUZXh0KCk7CiB9CiAKLVJlbmRlclB0cjxSZW5k
ZXJPYmplY3Q+IFJlbmRlclJ1YnlSdW46OnRha2VDaGlsZChSZW5kZXJPYmplY3QmIGNoaWxkKQor
UmVuZGVyUHRyPFJlbmRlck9iamVjdD4gUmVuZGVyUnVieVJ1bjo6dGFrZUNoaWxkKFJlbmRlclRy
ZWVCdWlsZGVyJiBidWlsZGVyLCBSZW5kZXJPYmplY3QmIGNoaWxkKQogewogICAgIC8vIElmIHRo
ZSBjaGlsZCBpcyBhIHJ1YnkgdGV4dCwgdGhlbiBtZXJnZSB0aGUgcnVieSBiYXNlIHdpdGggdGhl
IGJhc2Ugb2YKICAgICAvLyB0aGUgcmlnaHQgc2libGluZyBydW4sIGlmIHBvc3NpYmxlLgpAQCAt
MTE5LDEzICsxMTksMTMgQEAgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gUmVuZGVyUnVieVJ1bjo6
dGFrZUNoaWxkKFJlbmRlck9iamVjdCYgY2hpbGQpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBh
dXRvIHRha2VuQ2hpbGQgPSBSZW5kZXJCbG9ja0Zsb3c6OnRha2VDaGlsZChjaGlsZCk7CisgICAg
YXV0byB0YWtlbkNoaWxkID0gUmVuZGVyQmxvY2tGbG93Ojp0YWtlQ2hpbGQoYnVpbGRlciwgY2hp
bGQpOwogCiAgICAgaWYgKCFiZWluZ0Rlc3Ryb3llZCgpICYmICFyZW5kZXJUcmVlQmVpbmdEZXN0
cm95ZWQoKSkgewogICAgICAgICAvLyBDaGVjayBpZiBvdXIgYmFzZSAoaWYgYW55KSBpcyBub3cg
ZW1wdHkuIElmIHNvLCBkZXN0cm95IGl0LgogICAgICAgICBSZW5kZXJCbG9jayogYmFzZSA9IHJ1
YnlCYXNlKCk7CiAgICAgICAgIGlmIChiYXNlICYmICFiYXNlLT5maXJzdENoaWxkKCkpIHsKLSAg
ICAgICAgICAgIGF1dG8gdGFrZW5CYXNlID0gUmVuZGVyQmxvY2tGbG93Ojp0YWtlQ2hpbGQoKmJh
c2UpOworICAgICAgICAgICAgYXV0byB0YWtlbkJhc2UgPSBSZW5kZXJCbG9ja0Zsb3c6OnRha2VD
aGlsZChidWlsZGVyLCAqYmFzZSk7CiAgICAgICAgICAgICBiYXNlLT5kZWxldGVMaW5lcygpOwog
ICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclJ1YnlSdW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmgK
aW5kZXggZmQ0OGUzMzU1Y2E5MTM2ZmViN2UwOWEwNDkyZDY1MWMxMzZiNzY0OC4uNzFkOThlYTM5
MjdkMTQ4NjZjNzUzZWIwMjMxNzJmNTViNjJmMTI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUnVieVJ1bi5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxh
eW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlSGVpZ2h0ID0g
MCkgb3ZlcnJpZGU7CiAKICAgICBib29sIGlzQ2hpbGRBbGxvd2VkKGNvbnN0IFJlbmRlck9iamVj
dCYsIGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgUmVuZGVyUHRyPFJl
bmRlck9iamVjdD4gdGFrZUNoaWxkKFJlbmRlck9iamVjdCYpIG92ZXJyaWRlOworICAgIFJlbmRl
clB0cjxSZW5kZXJPYmplY3Q+IHRha2VDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYsIFJlbmRlck9i
amVjdCYpIG92ZXJyaWRlOwogCiAgICAgUmVuZGVyQmxvY2sqIGZpcnN0TGluZUJsb2NrKCkgY29u
c3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZVJvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cu
Y3BwCmluZGV4IGZlMTg1OTgyZDIxMmI4MTgzY2Q3NWIxY2MzMjdhYzI3NDI4NTY0YTYuLjIxM2Q4
OTYwY2U5ZjBhMGZmNzA5NjQ1MzU4ODRmNTFmMGUzMzFhODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcApAQCAtMjQwLDM4ICsyNDAsNCBAQCBSZW5kZXJQ
dHI8UmVuZGVyVGFibGVSb3c+IFJlbmRlclRhYmxlUm93OjpjcmVhdGVBbm9ueW1vdXNXaXRoUGFy
ZW50UmVuZGVyZXIoY29ucwogICAgIHJldHVybiBSZW5kZXJUYWJsZVJvdzo6Y3JlYXRlVGFibGVS
b3dXaXRoU3R5bGUocGFyZW50LmRvY3VtZW50KCksIHBhcmVudC5zdHlsZSgpKTsKIH0KIAotdm9p
ZCBSZW5kZXJUYWJsZVJvdzo6Y29sbGFwc2VBbmREZXN0cm95QW5vbnltb3VzU2libGluZ1Jvd3Mo
KQotewotICAgIGF1dG8qIHNlY3Rpb24gPSB0aGlzLT5zZWN0aW9uKCk7Ci0gICAgaWYgKCFzZWN0
aW9uKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBBbGwgc2libGluZ3MgZ2VuZXJhdGVkPwot
ICAgIGZvciAoYXV0byogY3VycmVudCA9IHNlY3Rpb24tPmZpcnN0Um93KCk7IGN1cnJlbnQ7IGN1
cnJlbnQgPSBjdXJyZW50LT5uZXh0Um93KCkpIHsKLSAgICAgICAgaWYgKGN1cnJlbnQgPT0gdGhp
cykKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAoIWN1cnJlbnQtPmlzQW5vbnlt
b3VzKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgUmVuZGVyVGFibGVSb3cq
IHJvd1RvSW5zZXJ0SW50byA9IG51bGxwdHI7Ci0gICAgYXV0byogY3VycmVudFJvdyA9IHNlY3Rp
b24tPmZpcnN0Um93KCk7Ci0gICAgd2hpbGUgKGN1cnJlbnRSb3cpIHsKLSAgICAgICAgaWYgKGN1
cnJlbnRSb3cgPT0gdGhpcykgewotICAgICAgICAgICAgY3VycmVudFJvdyA9IGN1cnJlbnRSb3ct
Pm5leHRSb3coKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIGlm
ICghcm93VG9JbnNlcnRJbnRvKSB7Ci0gICAgICAgICAgICByb3dUb0luc2VydEludG8gPSBjdXJy
ZW50Um93OwotICAgICAgICAgICAgY3VycmVudFJvdyA9IGN1cnJlbnRSb3ctPm5leHRSb3coKTsK
LSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIGN1cnJlbnRSb3ctPm1v
dmVBbGxDaGlsZHJlblRvKHJvd1RvSW5zZXJ0SW50bywgUmVuZGVyQm94TW9kZWxPYmplY3Q6Ok5v
cm1hbGl6ZUFmdGVySW5zZXJ0aW9uOjpObyk7Ci0gICAgICAgIGF1dG8gdG9EZXN0cm95ID0gc2Vj
dGlvbi0+dGFrZUNoaWxkKCpjdXJyZW50Um93KTsKLSAgICAgICAgY3VycmVudFJvdyA9IGN1cnJl
bnRSb3ctPm5leHRSb3coKTsKLSAgICB9Ci0gICAgaWYgKHJvd1RvSW5zZXJ0SW50bykKLSAgICAg
ICAgcm93VG9JbnNlcnRJbnRvLT5zZXROZWVkc0xheW91dCgpOwotfQotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGVSb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oCmluZGV4
IDhkYmZmNTU0MzY1MWIxOGU3OGRiMzZkYzNhYzVkYmE4NjNiM2MxMmUuLmJmODk3NWY0OWY5Mjhj
OGVhZjkwZmE3MjQ1Yzc1NDA1MTI5ZjdjZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZVJvdy5oCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgbm9k
ZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0
VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNj
dW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIG92ZXJyaWRlOwogCi0gICAgdm9pZCBjb2xs
YXBzZUFuZERlc3Ryb3lBbm9ueW1vdXNTaWJsaW5nUm93cygpOworICAgIFJlbmRlclRhYmxlU2Vj
dGlvbiogc2VjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PFJlbmRlclRhYmxlU2VjdGlv
bj4ocGFyZW50KCkpOyB9CiAKIHByaXZhdGU6CiAgICAgc3RhdGljIFJlbmRlclB0cjxSZW5kZXJU
YWJsZVJvdz4gY3JlYXRlVGFibGVSb3dXaXRoU3R5bGUoRG9jdW1lbnQmLCBjb25zdCBSZW5kZXJT
dHlsZSYpOwpAQCAtODYsOCArODYsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzdHlsZURpZENo
YW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgb3ZlcnJp
ZGU7CiAKLSAgICBSZW5kZXJUYWJsZVNlY3Rpb24qIHNlY3Rpb24oKSBjb25zdCB7IHJldHVybiBk
b3duY2FzdDxSZW5kZXJUYWJsZVNlY3Rpb24+KHBhcmVudCgpKTsgfQotCiAgICAgdm9pZCBmaXJz
dENoaWxkKCkgY29uc3QgPSBkZWxldGU7CiAgICAgdm9pZCBsYXN0Q2hpbGQoKSBjb25zdCA9IGRl
bGV0ZTsKICAgICB2b2lkIG5leHRTaWJsaW5nKCkgY29uc3QgPSBkZWxldGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5jcHAKaW5kZXgg
YmMxOTk4YzMzZmJkYjhhMWI5MjY2NTE2NWY4YjQ3MzA2Yjg1Y2MwNS4uOTFjYTJiNDhhMWYzMDkx
MjQwNjBiNDk1YzNkN2I1NDExMDQ4YmMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcApAQCAtOTUsMTAgKzk1LDEwIEBAIHZv
aWQgUmVuZGVyU1ZHQ29udGFpbmVyOjphZGRDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRl
ciwgUmVuZGVyUHRyPFJlbmRlck9iCiAgICAgYnVpbGRlci5pbnNlcnRDaGlsZFRvU1ZHQ29udGFp
bmVyKCp0aGlzLCBXVEZNb3ZlKG5ld0NoaWxkKSwgYmVmb3JlQ2hpbGQpOwogfQogCi1SZW5kZXJQ
dHI8UmVuZGVyT2JqZWN0PiBSZW5kZXJTVkdDb250YWluZXI6OnRha2VDaGlsZChSZW5kZXJPYmpl
Y3QmIGNoaWxkKQorUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gUmVuZGVyU1ZHQ29udGFpbmVyOjp0
YWtlQ2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIsIFJlbmRlck9iamVjdCYgY2hpbGQp
CiB7CiAgICAgU1ZHUmVzb3VyY2VzQ2FjaGU6OmNsaWVudFdpbGxCZVJlbW92ZWRGcm9tVHJlZShj
aGlsZCk7Ci0gICAgcmV0dXJuIFJlbmRlclNWR01vZGVsT2JqZWN0Ojp0YWtlQ2hpbGQoY2hpbGQp
OworICAgIHJldHVybiBSZW5kZXJTVkdNb2RlbE9iamVjdDo6dGFrZUNoaWxkKGJ1aWxkZXIsIGNo
aWxkKTsKIH0KIAogYm9vbCBSZW5kZXJTVkdDb250YWluZXI6OnNlbGZXaWxsUGFpbnQoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmgKaW5k
ZXggNDNmZWRhMTg4OTJlYjEyMzZhODE1ODFiNzQ2NzFjZWMzODE3YmZhNC4uNDVhZDkzMGQ1YzI0
OTE4MjBiYTYyODRjMWZiMTI3ZDYzM2E0ZTM3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5oCkBAIC00OSw3ICs0OSw3IEBAIHByb3Rl
Y3RlZDoKICAgICB2b2lkIGxheW91dCgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBhZGRDaGlsZChS
ZW5kZXJUcmVlQnVpbGRlciYsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJP
YmplY3QqIGJlZm9yZUNoaWxkID0gMCkgZmluYWw7Ci0gICAgUmVuZGVyUHRyPFJlbmRlck9iamVj
dD4gdGFrZUNoaWxkKFJlbmRlck9iamVjdCYpIGZpbmFsOworICAgIFJlbmRlclB0cjxSZW5kZXJP
YmplY3Q+IHRha2VDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYsIFJlbmRlck9iamVjdCYpIGZpbmFs
OwogICAgIHZvaWQgYWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9yPExheW91dFJlY3Q+JiwgY29uc3Qg
TGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxPZmZzZXQsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHBhaW50Q29udGFpbmVyID0gMCkgZmluYWw7CiAKICAgICBGbG9hdFJlY3Qgb2JqZWN0Qm91
bmRpbmdCb3goKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX29iamVjdEJvdW5kaW5nQm94OyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAKaW5k
ZXggMWIyZTEyYzhjYjRmMmY0ZGUwNTM2OTI1ZTJlZGE5MmY1ZWY0MmRlZS4uZGRlNGZkYjAxMTE1
Zjg5MDA0ZjlmZWE4OTU3NDBlNDcwYTZhYTYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcApAQCAtMTI4LDE3ICsxMjgsMTcgQEAgdm9p
ZCBSZW5kZXJTVkdJbmxpbmU6OmFkZENoaWxkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyLCBS
ZW5kZXJQdHI8UmVuZGVyT2JqZWMKICAgICBidWlsZGVyLmluc2VydENoaWxkVG9TVkdJbmxpbmUo
KnRoaXMsIFdURk1vdmUobmV3Q2hpbGQpLCBiZWZvcmVDaGlsZCk7CiB9CiAKLVJlbmRlclB0cjxS
ZW5kZXJPYmplY3Q+IFJlbmRlclNWR0lubGluZTo6dGFrZUNoaWxkKFJlbmRlck9iamVjdCYgY2hp
bGQpCitSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBSZW5kZXJTVkdJbmxpbmU6OnRha2VDaGlsZChS
ZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlciwgUmVuZGVyT2JqZWN0JiBjaGlsZCkKIHsKICAgICBT
VkdSZXNvdXJjZXNDYWNoZTo6Y2xpZW50V2lsbEJlUmVtb3ZlZEZyb21UcmVlKGNoaWxkKTsKIAog
ICAgIGF1dG8qIHRleHRBbmNlc3RvciA9IFJlbmRlclNWR1RleHQ6OmxvY2F0ZVJlbmRlclNWR1Rl
eHRBbmNlc3RvcigqdGhpcyk7CiAgICAgaWYgKCF0ZXh0QW5jZXN0b3IpCi0gICAgICAgIHJldHVy
biBSZW5kZXJJbmxpbmU6OnRha2VDaGlsZChjaGlsZCk7CisgICAgICAgIHJldHVybiBSZW5kZXJJ
bmxpbmU6OnRha2VDaGlsZChidWlsZGVyLCBjaGlsZCk7CiAKICAgICBWZWN0b3I8U1ZHVGV4dExh
eW91dEF0dHJpYnV0ZXMqLCAyPiBhZmZlY3RlZEF0dHJpYnV0ZXM7CiAgICAgdGV4dEFuY2VzdG9y
LT5zdWJ0cmVlQ2hpbGRXaWxsQmVSZW1vdmVkKCZjaGlsZCwgYWZmZWN0ZWRBdHRyaWJ1dGVzKTsK
LSAgICBhdXRvIHRha2VuQ2hpbGQgPSBSZW5kZXJJbmxpbmU6OnRha2VDaGlsZChjaGlsZCk7Cisg
ICAgYXV0byB0YWtlbkNoaWxkID0gUmVuZGVySW5saW5lOjp0YWtlQ2hpbGQoYnVpbGRlciwgY2hp
bGQpOwogICAgIHRleHRBbmNlc3Rvci0+c3VidHJlZUNoaWxkV2FzUmVtb3ZlZChhZmZlY3RlZEF0
dHJpYnV0ZXMpOwogICAgIHJldHVybiB0YWtlbkNoaWxkOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgKaW5kZXggNjliOWQ4NDQ0NDVhNjBlZTYw
OWNkZGE3Y2JiNTQ3OWYxMmIxYWNkNS4uOTc5YTgyZTg1YmE1YTA2ZTJiNmNjMDgzZTIxODc1ZjJm
ZDg3ZjcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdJbmxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lu
bGluZS5oCkBAIC02Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdHlsZURpZENoYW5n
ZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgZmluYWw7CiAK
ICAgICB2b2lkIGFkZENoaWxkKFJlbmRlclRyZWVCdWlsZGVyJiwgUmVuZGVyUHRyPFJlbmRlck9i
amVjdD4gY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSBudWxscHRyKSBmaW5hbDsK
LSAgICBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiB0YWtlQ2hpbGQoUmVuZGVyT2JqZWN0JikgZmlu
YWw7CisgICAgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gdGFrZUNoaWxkKFJlbmRlclRyZWVCdWls
ZGVyJiwgUmVuZGVyT2JqZWN0JikgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAppbmRl
eCA1NDI0YzcyZjM1YjA5ZTY0YTMzNTYxYWJkYjc4NTAwYzIwNjg1OTQ0Li5kMGMxOTJkNGEyMTI0
ZDE2YjkzY2I3OTU2NzhiNmNhNzRhOGQ3MjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKQEAgLTMwOCwxMCArMzA4LDEwIEBAIHZvaWQgUmVu
ZGVyU1ZHUm9vdDo6YWRkQ2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIsIFJlbmRlclB0
cjxSZW5kZXJPYmplY3Q+CiAgICAgYnVpbGRlci5pbnNlcnRDaGlsZFRvU1ZHUm9vdCgqdGhpcywg
V1RGTW92ZShuZXdDaGlsZCksIGJlZm9yZUNoaWxkKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlck9i
amVjdD4gUmVuZGVyU1ZHUm9vdDo6dGFrZUNoaWxkKFJlbmRlck9iamVjdCYgY2hpbGQpCitSZW5k
ZXJQdHI8UmVuZGVyT2JqZWN0PiBSZW5kZXJTVkdSb290Ojp0YWtlQ2hpbGQoUmVuZGVyVHJlZUJ1
aWxkZXImIGJ1aWxkZXIsIFJlbmRlck9iamVjdCYgY2hpbGQpCiB7CiAgICAgU1ZHUmVzb3VyY2Vz
Q2FjaGU6OmNsaWVudFdpbGxCZVJlbW92ZWRGcm9tVHJlZShjaGlsZCk7Ci0gICAgcmV0dXJuIFJl
bmRlclJlcGxhY2VkOjp0YWtlQ2hpbGQoY2hpbGQpOworICAgIHJldHVybiBSZW5kZXJSZXBsYWNl
ZDo6dGFrZUNoaWxkKGJ1aWxkZXIsIGNoaWxkKTsKIH0KIAogLy8gUmVuZGVyQm94IG1ldGhvZHMg
d2lsbCBleHBlY3QgY29vcmRpbmF0ZXMgdy9vIGFueSB0cmFuc2Zvcm1zIGluIGNvb3JkaW5hdGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCmluZGV4IDM3
NGVkNWUxNDM5ZjA4MGZlYTQ1NTMxZDBlMDQyYmU3MmIxNjQ5NmUuLjc4NjcwN2FiNGNjNTQ5NjBk
ZmVkYmFiZDdiZTFlZTcyMGY1YzJkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUm9vdC5oCkBAIC04Myw3ICs4Myw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0
eWxlKSBvdmVycmlkZTsKICAgICB2b2lkIGFkZENoaWxkKFJlbmRlclRyZWVCdWlsZGVyJiwgUmVu
ZGVyUHRyPFJlbmRlck9iamVjdD4gY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAw
KSBvdmVycmlkZTsKLSAgICBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiB0YWtlQ2hpbGQoUmVuZGVy
T2JqZWN0Jikgb3ZlcnJpZGU7CisgICAgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gdGFrZUNoaWxk
KFJlbmRlclRyZWVCdWlsZGVyJiwgUmVuZGVyT2JqZWN0Jikgb3ZlcnJpZGU7CiAKICAgICBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIGxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKSBjb25zdCBvdmVycmlk
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdU
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAK
aW5kZXggZDM0YTU5Yzk4M2FhMTVkYTJhMmRkYjM0ZDBhYzljZjJiZjFkNjI5ZS4uYjQzMWQ2Yzkx
YTlmMWM4OWIzMzdiYzNjNTVjOTVmOTNmYzM1NTFlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCkBAIC01MjUsMTMgKzUyNSwxMyBAQCB2b2lk
IFJlbmRlclNWR1RleHQ6OmFkZENoaWxkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyLCBSZW5k
ZXJQdHI8UmVuZGVyT2JqZWN0PgogICAgIGJ1aWxkZXIuaW5zZXJ0Q2hpbGRUb1NWR1RleHQoKnRo
aXMsIFdURk1vdmUobmV3Q2hpbGQpLCBiZWZvcmVDaGlsZCk7CiB9CiAKLVJlbmRlclB0cjxSZW5k
ZXJPYmplY3Q+IFJlbmRlclNWR1RleHQ6OnRha2VDaGlsZChSZW5kZXJPYmplY3QmIGNoaWxkKQor
UmVuZGVyUHRyPFJlbmRlck9iamVjdD4gUmVuZGVyU1ZHVGV4dDo6dGFrZUNoaWxkKFJlbmRlclRy
ZWVCdWlsZGVyJiBidWlsZGVyLCBSZW5kZXJPYmplY3QmIGNoaWxkKQogewogICAgIFNWR1Jlc291
cmNlc0NhY2hlOjpjbGllbnRXaWxsQmVSZW1vdmVkRnJvbVRyZWUoY2hpbGQpOwogCiAgICAgVmVj
dG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKiwgMj4gYWZmZWN0ZWRBdHRyaWJ1dGVzOwogICAg
IHN1YnRyZWVDaGlsZFdpbGxCZVJlbW92ZWQoJmNoaWxkLCBhZmZlY3RlZEF0dHJpYnV0ZXMpOwot
ICAgIGF1dG8gdGFrZW5DaGlsZCA9IFJlbmRlclNWR0Jsb2NrOjp0YWtlQ2hpbGQoY2hpbGQpOwor
ICAgIGF1dG8gdGFrZW5DaGlsZCA9IFJlbmRlclNWR0Jsb2NrOjp0YWtlQ2hpbGQoYnVpbGRlciwg
Y2hpbGQpOwogICAgIHN1YnRyZWVDaGlsZFdhc1JlbW92ZWQoYWZmZWN0ZWRBdHRyaWJ1dGVzKTsK
ICAgICByZXR1cm4gdGFrZW5DaGlsZDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdUZXh0LmgKaW5kZXggNWUxZGRkZTcwMmQ1MjhhMDJjZTJlOTc5MmU3NTMyYWE3
Y2ExYjViMS4uMTI3MjkwYWY5MmUxYWM3Y2Q2YmI5NTE0MDcwMDA3ZDg5ZmYwZDgyYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgKQEAgLTg0LDcgKzg0
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBD
b29yZGluYXRlc0ZsYWdzLCBib29sKiB3YXNGaXhlZCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgY29u
c3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdm9pZCBhZGRDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYsIFJlbmRlclB0
cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gbnVsbHB0
cikgb3ZlcnJpZGU7Ci0gICAgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gdGFrZUNoaWxkKFJlbmRl
ck9iamVjdCYpIG92ZXJyaWRlOworICAgIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IHRha2VDaGls
ZChSZW5kZXJUcmVlQnVpbGRlciYsIFJlbmRlck9iamVjdCYpIG92ZXJyaWRlOwogICAgIHZvaWQg
d2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKICAgICBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
IGxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2xvY2Fs
VHJhbnNmb3JtOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0
aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcAppbmRleCBhNTBkM2UwZTk4NjAwMTMxNWE2MTU3ZDYx
ZWEzYWU0NzBmNTk5YzlkLi41NTM2OGQ4NDNiM2EwYjU2ZTgxZjQ0NWE0Y2YwZWVhODYxY2E5ZTJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJl
ZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5k
ZXJUcmVlQnVpbGRlci5jcHAKQEAgLTM0Miw2ICszNDIsNDAgQEAgc3RhdGljIFJlbmRlck9iamVj
dCYgZmluZERlc3Ryb3lSb290SW5jbHVkaW5nQW5vbnltb3VzKFJlbmRlck9iamVjdCYgcmVuZGVy
ZXIpCiAgICAgcmV0dXJuICpkZXN0cm95Um9vdDsKIH0KIAordm9pZCBSZW5kZXJUcmVlQnVpbGRl
cjo6Y29sbGFwc2VBbmREZXN0cm95QW5vbnltb3VzU2libGluZ1Jvd3MoUmVuZGVyVGFibGVSb3cm
IHJvdykKK3sKKyAgICBhdXRvKiBzZWN0aW9uID0gcm93LnNlY3Rpb24oKTsKKyAgICBpZiAoIXNl
Y3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEFsbCBzaWJsaW5ncyBnZW5lcmF0ZWQ/
CisgICAgZm9yIChhdXRvKiBjdXJyZW50ID0gc2VjdGlvbi0+Zmlyc3RSb3coKTsgY3VycmVudDsg
Y3VycmVudCA9IGN1cnJlbnQtPm5leHRSb3coKSkgeworICAgICAgICBpZiAoY3VycmVudCA9PSAm
cm93KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICghY3VycmVudC0+aXNBbm9u
eW1vdXMoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSZW5kZXJUYWJsZVJv
dyogcm93VG9JbnNlcnRJbnRvID0gbnVsbHB0cjsKKyAgICBhdXRvKiBjdXJyZW50Um93ID0gc2Vj
dGlvbi0+Zmlyc3RSb3coKTsKKyAgICB3aGlsZSAoY3VycmVudFJvdykgeworICAgICAgICBpZiAo
Y3VycmVudFJvdyA9PSAmcm93KSB7CisgICAgICAgICAgICBjdXJyZW50Um93ID0gY3VycmVudFJv
dy0+bmV4dFJvdygpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAg
aWYgKCFyb3dUb0luc2VydEludG8pIHsKKyAgICAgICAgICAgIHJvd1RvSW5zZXJ0SW50byA9IGN1
cnJlbnRSb3c7CisgICAgICAgICAgICBjdXJyZW50Um93ID0gY3VycmVudFJvdy0+bmV4dFJvdygp
OworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgY3VycmVudFJvdy0+
bW92ZUFsbENoaWxkcmVuVG8ocm93VG9JbnNlcnRJbnRvLCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6
Tm9ybWFsaXplQWZ0ZXJJbnNlcnRpb246Ok5vKTsKKyAgICAgICAgYXV0byB0b0Rlc3Ryb3kgPSBz
ZWN0aW9uLT50YWtlQ2hpbGQoKnRoaXMsICpjdXJyZW50Um93KTsKKyAgICAgICAgY3VycmVudFJv
dyA9IGN1cnJlbnRSb3ctPm5leHRSb3coKTsKKyAgICB9CisgICAgaWYgKHJvd1RvSW5zZXJ0SW50
bykKKyAgICAgICAgcm93VG9JbnNlcnRJbnRvLT5zZXROZWVkc0xheW91dCgpOworfQorCiB2b2lk
IFJlbmRlclRyZWVCdWlsZGVyOjpyZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveUNsZWFuaW5nVXBB
bm9ueW1vdXNXcmFwcGVycyhSZW5kZXJPYmplY3QmIGNoaWxkKQogewogICAgIC8vIElmIHRoZSB0
cmVlIGlzIGRlc3Ryb3llZCwgdGhlcmUgaXMgbm8gbmVlZCBmb3IgYSBjbGVhbi11cCBwaGFzZS4K
QEAgLTM1NSwxMCArMzg5LDEwIEBAIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6OnJlbW92ZUZyb21Q
YXJlbnRBbmREZXN0cm95Q2xlYW5pbmdVcEFub255bW91c1dyYXBwZXJzKFJlCiAgICAgICAgIGRv
d25jYXN0PFJlbmRlckJveD4oY2hpbGQpLnJlbW92ZUZsb2F0aW5nT3JQb3NpdGlvbmVkQ2hpbGRG
cm9tQmxvY2tMaXN0cygpOwogICAgIGF1dG8mIGRlc3Ryb3lSb290ID0gZmluZERlc3Ryb3lSb290
SW5jbHVkaW5nQW5vbnltb3VzKGNoaWxkKTsKICAgICBpZiAoaXM8UmVuZGVyVGFibGVSb3c+KGRl
c3Ryb3lSb290KSkKLSAgICAgICAgZG93bmNhc3Q8UmVuZGVyVGFibGVSb3c+KGRlc3Ryb3lSb290
KS5jb2xsYXBzZUFuZERlc3Ryb3lBbm9ueW1vdXNTaWJsaW5nUm93cygpOworICAgICAgICBjb2xs
YXBzZUFuZERlc3Ryb3lBbm9ueW1vdXNTaWJsaW5nUm93cyhkb3duY2FzdDxSZW5kZXJUYWJsZVJv
dz4oZGVzdHJveVJvb3QpKTsKIAogICAgIGF1dG8mIGRlc3Ryb3lSb290UGFyZW50ID0gKmRlc3Ry
b3lSb290LnBhcmVudCgpOwotICAgIGRlc3Ryb3lSb290UGFyZW50LnJlbW92ZUFuZERlc3Ryb3lD
aGlsZChkZXN0cm95Um9vdCk7CisgICAgZGVzdHJveVJvb3RQYXJlbnQucmVtb3ZlQW5kRGVzdHJv
eUNoaWxkKCp0aGlzLCBkZXN0cm95Um9vdCk7CiAgICAgZGVzdHJveVJvb3RQYXJlbnQucmVtb3Zl
QW5vbnltb3VzV3JhcHBlcnNGb3JJbmxpbmVzSWZOZWNlc3NhcnkoKTsKIAogICAgIC8vIEFub255
bW91cyBwYXJlbnQgbWlnaHQgaGF2ZSBiZWNvbWUgZW1wdHksIHRyeSB0byBkZWxldGUgaXQgdG9v
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRy
ZWVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJl
ZUJ1aWxkZXIuaAppbmRleCA5MTJkM2JiMjAxNTRlMzRlZjNiYmRiMWQ0MjAwNGVlODI0YmU4MzUy
Li5mOWRlNzk5YTliM2NmMDE2MzQ1YzExMDFmNDZkYmExMTc1NGNkZmQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuaApA
QCAtMTA0LDYgKzEwNCw4IEBAIHByaXZhdGU6CiAgICAgU1ZHJiBzdmdCdWlsZGVyKCkgeyByZXR1
cm4gKm1fc3ZnQnVpbGRlcjsgfQogICAgIE1hdGhNTCYgbWF0aE1MQnVpbGRlcigpIHsgcmV0dXJu
ICptX21hdGhNTEJ1aWxkZXI7IH0KIAorICAgIHZvaWQgY29sbGFwc2VBbmREZXN0cm95QW5vbnlt
b3VzU2libGluZ1Jvd3MoUmVuZGVyVGFibGVSb3cmKTsKKwogICAgIFJlbmRlclZpZXcmIG1fdmll
dzsKIAogICAgIFJlbmRlclRyZWVCdWlsZGVyKiBtX3ByZXZpb3VzIHsgbnVsbHB0ciB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWls
ZGVyRmlyc3RMZXR0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1Jl
bmRlclRyZWVCdWlsZGVyRmlyc3RMZXR0ZXIuY3BwCmluZGV4IDNmZWFiZDVlYjBhZTAwNTIwNWUz
YTE3N2EyOGU2NjQ4ZTYxYjgzNTUuLjE5OWZiMTc4NjcwZTIzYmViODhiOGFhMjM3MDhlNWQwZjk5
YTEwMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5k
ZXJUcmVlQnVpbGRlckZpcnN0TGV0dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJGaXJzdExldHRlci5jcHAKQEAgLTE3NCw3ICsx
NzQsNyBAQCB2b2lkIFJlbmRlclRyZWVCdWlsZGVyOjpGaXJzdExldHRlcjo6dXBkYXRlU3R5bGUo
UmVuZGVyQmxvY2smIGZpcnN0TGV0dGVyQmxvY2ssCiAgICAgICAgIHdoaWxlIChSZW5kZXJPYmpl
Y3QqIGNoaWxkID0gZmlyc3RMZXR0ZXItPmZpcnN0Q2hpbGQoKSkgewogICAgICAgICAgICAgaWYg
KGlzPFJlbmRlclRleHQ+KCpjaGlsZCkpCiAgICAgICAgICAgICAgICAgZG93bmNhc3Q8UmVuZGVy
VGV4dD4oKmNoaWxkKS5yZW1vdmVBbmREZXN0cm95VGV4dEJveGVzKCk7Ci0gICAgICAgICAgICBh
dXRvIHRvTW92ZSA9IGZpcnN0TGV0dGVyLT50YWtlQ2hpbGQoKmNoaWxkKTsKKyAgICAgICAgICAg
IGF1dG8gdG9Nb3ZlID0gZmlyc3RMZXR0ZXItPnRha2VDaGlsZChtX2J1aWxkZXIsICpjaGlsZCk7
CiAgICAgICAgICAgICBtX2J1aWxkZXIuaW5zZXJ0Q2hpbGQoKm5ld0ZpcnN0TGV0dGVyLCBXVEZN
b3ZlKHRvTW92ZSkpOwogICAgICAgICB9CiAKQEAgLTE4NSw3ICsxODUsNyBAQCB2b2lkIFJlbmRl
clRyZWVCdWlsZGVyOjpGaXJzdExldHRlcjo6dXBkYXRlU3R5bGUoUmVuZGVyQmxvY2smIGZpcnN0
TGV0dGVyQmxvY2ssCiAgICAgICAgICAgICByZW1haW5pbmdUZXh0LT5zZXRGaXJzdExldHRlcigq
bmV3Rmlyc3RMZXR0ZXIpOwogICAgICAgICAgICAgbmV3Rmlyc3RMZXR0ZXItPnNldEZpcnN0TGV0
dGVyUmVtYWluaW5nVGV4dCgqcmVtYWluaW5nVGV4dCk7CiAgICAgICAgIH0KLSAgICAgICAgZmly
c3RMZXR0ZXJDb250YWluZXItPnJlbW92ZUFuZERlc3Ryb3lDaGlsZCgqZmlyc3RMZXR0ZXIpOwor
ICAgICAgICBmaXJzdExldHRlckNvbnRhaW5lci0+cmVtb3ZlQW5kRGVzdHJveUNoaWxkKG1fYnVp
bGRlciwgKmZpcnN0TGV0dGVyKTsKICAgICAgICAgbV9idWlsZGVyLmluc2VydENoaWxkKCpmaXJz
dExldHRlckNvbnRhaW5lciwgV1RGTW92ZShuZXdGaXJzdExldHRlciksIG5leHRTaWJsaW5nKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI0MSw3ICsyNDEsNyBAQCB2b2lkIFJlbmRlclRy
ZWVCdWlsZGVyOjpGaXJzdExldHRlcjo6Y3JlYXRlUmVuZGVyZXJzKFJlbmRlckJsb2NrJiBmaXJz
dExldHRlckJsbwogCiAgICAgICAgIGF1dG8qIHRleHROb2RlID0gY3VycmVudFRleHRDaGlsZC50
ZXh0Tm9kZSgpOwogICAgICAgICBhdXRvKiBiZWZvcmVDaGlsZCA9IGN1cnJlbnRUZXh0Q2hpbGQu
bmV4dFNpYmxpbmcoKTsKLSAgICAgICAgZmlyc3RMZXR0ZXJDb250YWluZXItPnJlbW92ZUFuZERl
c3Ryb3lDaGlsZChjdXJyZW50VGV4dENoaWxkKTsKKyAgICAgICAgZmlyc3RMZXR0ZXJDb250YWlu
ZXItPnJlbW92ZUFuZERlc3Ryb3lDaGlsZChtX2J1aWxkZXIsIGN1cnJlbnRUZXh0Q2hpbGQpOwog
CiAgICAgICAgIC8vIENvbnN0cnVjdCBhIHRleHQgZnJhZ21lbnQgZm9yIHRoZSB0ZXh0IGFmdGVy
IHRoZSBmaXJzdCBsZXR0ZXIuCiAgICAgICAgIC8vIFRoaXMgdGV4dCBmcmFnbWVudCBtaWdodCBi
ZSBlbXB0eS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9S
ZW5kZXJUcmVlQnVpbGRlckxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0
aW5nL1JlbmRlclRyZWVCdWlsZGVyTGlzdC5jcHAKaW5kZXggN2RkMjQ1MjFmMTNhNzU2YjcyZDll
NGE0NzY2OTUxMjExMzQ2YjZjNC4uYjAwOGM1YTZlYjZiZjUwZDA2MWQ0YTU2MTc0ZWJmMjA1YzM5
YWYxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRl
clRyZWVCdWlsZGVyTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0
aW5nL1JlbmRlclRyZWVCdWlsZGVyTGlzdC5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIFJl
bmRlclRyZWVCdWlsZGVyOjpMaXN0Ojp1cGRhdGVJdGVtTWFya2VyKFJlbmRlckxpc3RJdGVtJiBs
aXN0SXRlbVJlbmRlcmVyKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoY3VycmVudFBhcmVu
dCkKLSAgICAgICAgbV9idWlsZGVyLmluc2VydENoaWxkKCpuZXdQYXJlbnQsIGN1cnJlbnRQYXJl
bnQtPnRha2VDaGlsZCgqbWFya2VyUmVuZGVyZXIpLCBmaXJzdE5vbk1hcmtlckNoaWxkKCpuZXdQ
YXJlbnQpKTsKKyAgICAgICAgbV9idWlsZGVyLmluc2VydENoaWxkKCpuZXdQYXJlbnQsIGN1cnJl
bnRQYXJlbnQtPnRha2VDaGlsZChtX2J1aWxkZXIsICptYXJrZXJSZW5kZXJlciksIGZpcnN0Tm9u
TWFya2VyQ2hpbGQoKm5ld1BhcmVudCkpOwogICAgIGVsc2UKICAgICAgICAgbV9idWlsZGVyLmlu
c2VydENoaWxkKCpuZXdQYXJlbnQsIFdURk1vdmUobmV3TWFya2VyUmVuZGVyZXIpLCBmaXJzdE5v
bk1hcmtlckNoaWxkKCpuZXdQYXJlbnQpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTXVsdGlDb2x1bW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTXVsdGlDb2x1
bW4uY3BwCmluZGV4IDUyYzI0MTQ5ZDBjZGE1Nzk1NzBlYmZiYjhlMDJlZjliZGRjMDNmZjMuLmQy
MjJmNmUxMzJmZGI2NzZjYmRjODM2ODMzNDk5NzdiYWNhYjZhYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck11bHRpQ29sdW1u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1
aWxkZXJNdWx0aUNvbHVtbi5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBSZW5kZXJUcmVlQnVp
bGRlcjo6TXVsdGlDb2x1bW46OmNyZWF0ZUZyYWdtZW50ZWRGbG93KFJlbmRlckJsb2NrRmxvdyYg
ZmxvdykKICAgICAgICAgICAgIC8vIE1vdmUgdGhlIHNwYW5uZXIgYmFjayB0byBpdHMgb3JpZ2lu
YWwgcG9zaXRpb24uCiAgICAgICAgICAgICBhdXRvJiBzcGFubmVyT3JpZ2luYWxQYXJlbnQgPSAq
cGxhY2Vob2xkZXItPnBhcmVudCgpOwogICAgICAgICAgICAgLy8gRGV0YWNoaW5nIHRoZSBzcGFu
bmVyIHRha2VzIGNhcmUgb2YgcmVtb3ZpbmcgdGhlIHBsYWNlaG9sZGVyIChhbmQgbWVyZ2VzIHRo
ZSBSZW5kZXJNdWx0aUNvbHVtblNldHMpLgotICAgICAgICAgICAgYXV0byBzcGFubmVyVG9SZUlu
c2VydCA9IHNwYW5uZXItPnBhcmVudCgpLT50YWtlQ2hpbGQoKnNwYW5uZXIpOworICAgICAgICAg
ICAgYXV0byBzcGFubmVyVG9SZUluc2VydCA9IHNwYW5uZXItPnBhcmVudCgpLT50YWtlQ2hpbGQo
bV9idWlsZGVyLCAqc3Bhbm5lcik7CiAgICAgICAgICAgICBtX2J1aWxkZXIuaW5zZXJ0Q2hpbGQo
c3Bhbm5lck9yaWdpbmFsUGFyZW50LCBXVEZNb3ZlKHNwYW5uZXJUb1JlSW5zZXJ0KSk7CiAgICAg
ICAgIH0KICAgICB9CkBAIC0xMjcsNyArMTI3LDcgQEAgdm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6
TXVsdGlDb2x1bW46OmRlc3Ryb3lGcmFnbWVudGVkRmxvdyhSZW5kZXJCbG9ja0Zsb3cmIGZsb3cK
ICAgICAgICAgICAgIHNwYW5uZXJPcmlnaW5hbFBhcmVudCA9ICZmbG93OwogICAgICAgICAvLyBE
ZXRhY2hpbmcgdGhlIHNwYW5uZXIgdGFrZXMgY2FyZSBvZiByZW1vdmluZyB0aGUgcGxhY2Vob2xk
ZXIgKGFuZCBtZXJnZXMgdGhlIFJlbmRlck11bHRpQ29sdW1uU2V0cykuCiAgICAgICAgIGF1dG8q
IHNwYW5uZXIgPSBwbGFjZWhvbGRlci0+c3Bhbm5lcigpOwotICAgICAgICBwYXJlbnRBbmRTcGFu
bmVyTGlzdC5hcHBlbmQoc3RkOjptYWtlX3BhaXIoc3Bhbm5lck9yaWdpbmFsUGFyZW50LCBzcGFu
bmVyLT5wYXJlbnQoKS0+dGFrZUNoaWxkKCpzcGFubmVyKSkpOworICAgICAgICBwYXJlbnRBbmRT
cGFubmVyTGlzdC5hcHBlbmQoc3RkOjptYWtlX3BhaXIoc3Bhbm5lck9yaWdpbmFsUGFyZW50LCBz
cGFubmVyLT5wYXJlbnQoKS0+dGFrZUNoaWxkKG1fYnVpbGRlciwgKnNwYW5uZXIpKSk7CiAgICAg
fQogICAgIHdoaWxlIChhdXRvKiBjb2x1bW5TZXQgPSBtdWx0aUNvbHVtbkZsb3cuZmlyc3RNdWx0
aUNvbHVtblNldCgpKQogICAgICAgICBjb2x1bW5TZXQtPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0
cm95KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVu
ZGVyVHJlZUJ1aWxkZXJSdWJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGlu
Zy9SZW5kZXJUcmVlQnVpbGRlclJ1YnkuY3BwCmluZGV4IDJhYjc1YzVmN2NkOTc4NGNlMGQ4Njcz
ODg4ZmQxZjcyODAzYWJmMTMuLmQ1OTk2N2I2ODkyZWZhOWIzZDg5ZTZkM2Y3ODU5YjNhYjM5NTgy
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlQnVpbGRlclJ1YnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGlu
Zy9SZW5kZXJUcmVlQnVpbGRlclJ1YnkuY3BwCkBAIC0yMDksNyArMjA5LDcgQEAgdm9pZCBSZW5k
ZXJUcmVlQnVpbGRlcjo6UnVieTo6aW5zZXJ0Q2hpbGQoUmVuZGVyUnVieVJ1biYgcGFyZW50LCBS
ZW5kZXJQdHI8UmVuZGUKICAgICAgICAgICAgIC8vIGluIG9yZGVyIHRvIGF2b2lkIGF1dG9tYXRp
YyByZW1vdmFsIG9mIHRoZSBydWJ5IHJ1biBpbiBjYXNlIHRoZXJlIGlzIG5vCiAgICAgICAgICAg
ICAvLyBvdGhlciBjaGlsZCBiZXNpZGVzIHRoZSBvbGQgcnVieSB0ZXh0LgogICAgICAgICAgICAg
cGFyZW50LmFkZENoaWxkKG1fYnVpbGRlciwgV1RGTW92ZShjaGlsZCksIGJlZm9yZUNoaWxkKTsK
LSAgICAgICAgICAgIGF1dG8gdGFrZW5CZWZvcmVDaGlsZCA9IHBhcmVudC5SZW5kZXJCbG9ja0Zs
b3c6OnRha2VDaGlsZCgqYmVmb3JlQ2hpbGQpOworICAgICAgICAgICAgYXV0byB0YWtlbkJlZm9y
ZUNoaWxkID0gcGFyZW50LlJlbmRlckJsb2NrRmxvdzo6dGFrZUNoaWxkKG1fYnVpbGRlciwgKmJl
Zm9yZUNoaWxkKTsKICAgICAgICAgICAgIG1fYnVpbGRlci5pbnNlcnRDaGlsZCgqbmV3UnVuLCBX
VEZNb3ZlKHRha2VuQmVmb3JlQ2hpbGQpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332887</attachid>
            <date>2018-02-01 10:29:06 -0800</date>
            <delta_ts>2018-02-01 11:42:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182373-20180201102905.patch</filename>
            <type>text/plain</type>
            <size>40097</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3OTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTA3YzVkZjNhOTVhYjRi
MGRkNjliN2I1YzdhMTQ5NmY3NzQzYmQ0ZS4uNmQxNzM1YmIwY2ZmMDEyYTc2NzliMGU4ZmYyYTgw
MGM5NGRkODZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE4LTAyLTAxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1JlbmRlclRyZWVCdWlsZGVy
XSBJbnRyb2R1Y2UgUmVuZGVyVHJlZUJ1aWxkZXIgdG8gdGFrZUNoaWxkKCkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MjM3MworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzcxMDE0ODQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlz
dG8uCisgICAgICAgIAorICAgICAgICBUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZvciBtb3Zpbmcg
bXV0YXRpb24gY29kZSBvdXQgb2YgdGFrZUNoaWxkLiAKKworICAgICAgICBObyBjaGFuZ2UgaW4g
ZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dGFrZUNoaWxkKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6dGFrZUNoaWxkKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93Lmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJ1dHRvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCdXR0b246OnRha2VD
aGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1l
bnQ6OnRha2VDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpyZW1vdmVB
bmREZXN0cm95Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6ZGVzdHJv
eUxlZnRvdmVyQ2hpbGRyZW4pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50Lmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRnVsbFNjcmVlbjo6d3JhcEV4aXN0aW5nUmVuZGVyZXIpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyRnVsbFNjcmVlbjo6dW53cmFwUmVuZGVyZXIpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnRh
a2VDaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAoUmVuZGVyTWVudUxpc3Q6OnRh
a2VDaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0Lmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJNdWx0aUNvbHVtbkZsb3c6OnByb2Nlc3NQb3NzaWJsZVNwYW5uZXJEZXNjZW5kYW50
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3kpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJ1YnlB
c0lubGluZTo6dGFrZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJ1YnlBc0Jsb2Nr
Ojp0YWtlQ2hpbGQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSdWJ5Lmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
UnVieVJ1bjo6dGFrZUNoaWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVieVJ1bi5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUYWJsZVJvdzo6Y29sbGFwc2VBbmREZXN0cm95QW5vbnltb3VzU2libGluZ1Jv
d3MpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclNWR0NvbnRhaW5lcjo6dGFrZUNoaWxkKToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHSW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0lubGluZTo6dGFr
ZUNoaWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTVkdSb290Ojp0YWtlQ2hpbGQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUm9vdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUZXh0Ojp0YWtlQ2hpbGQpOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oOgorICAgICAgICAqIHJlbmRlcmluZy91cGRh
dGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVl
QnVpbGRlcjo6Y29sbGFwc2VBbmREZXN0cm95QW5vbnltb3VzU2libGluZ1Jvd3MpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVHJlZUJ1aWxkZXI6OnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95
Q2xlYW5pbmdVcEFub255bW91c1dyYXBwZXJzKToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZUJ1aWxkZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVu
ZGVyVHJlZUJ1aWxkZXJGaXJzdExldHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
cmVlQnVpbGRlcjo6Rmlyc3RMZXR0ZXI6OnVwZGF0ZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRyZWVCdWlsZGVyOjpGaXJzdExldHRlcjo6Y3JlYXRlUmVuZGVyZXJzKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJMaXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpMaXN0Ojp1cGRhdGVJdGVtTWFya2VyKToK
KyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNdWx0aUNvbHVt
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlQnVpbGRlcjo6TXVsdGlDb2x1bW46
OmNyZWF0ZUZyYWdtZW50ZWRGbG93KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVCdWls
ZGVyOjpNdWx0aUNvbHVtbjo6ZGVzdHJveUZyYWdtZW50ZWRGbG93KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJSdWJ5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRyZWVCdWlsZGVyOjpSdWJ5OjppbnNlcnRDaGlsZCk6CisKIDIwMTgtMDItMDEg
IFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgU3RydWN0
dXJlZCBjbG9uaW5nIGEgU3ltYm9sIHNob3VsZCB0aHJvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKaW5kZXggY2U5MmZiYjkwNWRmZTFlYmVjMmM3YmM2Y2FkODc3MWEz
NTY2YTE5ZC4uYmRmZjQ4M2EzYmI3ODBmMWIzNWUwMTZhYWMxZDg3ODQxMzA5ZjlmYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC01ODIsMTIgKzU4MiwxMiBA
QCB2b2lkIFJlbmRlckJsb2NrOjpkcm9wQW5vbnltb3VzQm94Q2hpbGQoUmVuZGVyQmxvY2smIGNo
aWxkKQogICAgIGNoaWxkLmRlbGV0ZUxpbmVzKCk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJPYmpl
Y3Q+IFJlbmRlckJsb2NrOjp0YWtlQ2hpbGQoUmVuZGVyT2JqZWN0JiBvbGRDaGlsZCkKK1JlbmRl
clB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlckJsb2NrOjp0YWtlQ2hpbGQoUmVuZGVyVHJlZUJ1aWxk
ZXImIGJ1aWxkZXIsIFJlbmRlck9iamVjdCYgb2xkQ2hpbGQpCiB7CiAgICAgLy8gTm8gbmVlZCB0
byB3YXN0ZSB0aW1lIGluIG1lcmdpbmcgb3IgcmVtb3ZpbmcgZW1wdHkgYW5vbnltb3VzIGJsb2Nr
cy4KICAgICAvLyBXZSBjYW4ganVzdCBiYWlsIG91dCBpZiBvdXIgZG9jdW1lbnQgaXMgZ2V0dGlu
ZyBkZXN0cm95ZWQuCiAgICAgaWYgKHJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpKQotICAgICAg
ICByZXR1cm4gUmVuZGVyQm94Ojp0YWtlQ2hpbGQob2xkQ2hpbGQpOworICAgICAgICByZXR1cm4g
UmVuZGVyQm94Ojp0YWtlQ2hpbGQoYnVpbGRlciwgb2xkQ2hpbGQpOwogCiAgICAgLy8gSWYgdGhp
cyBjaGlsZCBpcyBhIGJsb2NrLCBhbmQgaWYgb3VyIHByZXZpb3VzIGFuZCBuZXh0IHNpYmxpbmdz
IGFyZSBib3RoIGFub255bW91cyBibG9ja3MKICAgICAvLyB3aXRoIGlubGluZSBjb250ZW50LCB0
aGVuIHdlIGNhbiBmb2xkIHRoZSBpbmxpbmUgY29udGVudCBiYWNrIHRvZ2V0aGVyLgpAQCAtNjM3
LDcgKzYzNyw3IEBAIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlckJsb2NrOjp0YWtlQ2hp
bGQoUmVuZGVyT2JqZWN0JiBvbGRDaGlsZCkKIAogICAgIGludmFsaWRhdGVMaW5lTGF5b3V0UGF0
aCgpOwogCi0gICAgYXV0byB0YWtlbkNoaWxkID0gUmVuZGVyQm94Ojp0YWtlQ2hpbGQob2xkQ2hp
bGQpOworICAgIGF1dG8gdGFrZW5DaGlsZCA9IFJlbmRlckJveDo6dGFrZUNoaWxkKGJ1aWxkZXIs
IG9sZENoaWxkKTsKIAogICAgIFJlbmRlck9iamVjdCogY2hpbGQgPSBwcmV2ID8gcHJldiA6IG5l
eHQ7CiAgICAgaWYgKGNhbk1lcmdlQW5vbnltb3VzQmxvY2tzICYmIGNoaWxkICYmICFjaGlsZC0+
cHJldmlvdXNTaWJsaW5nKCkgJiYgIWNoaWxkLT5uZXh0U2libGluZygpICYmIGNhbkRyb3BBbm9u
eW1vdXNCbG9ja0NoaWxkKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgK
aW5kZXggMjBhNzIwNDQ3NWQ2NmUwODJhYzg0ODIzZTE3NjFjNDRkZjBiNzY2NC4uM2M4ZjEzOWI5
OTI4OWEyN2ViNTJiMDMwOTU5YmE1MGYxOGVhZjJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmgKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBkZWxldGVMaW5lcygpOwogCiAgICAgdm9pZCBhZGRDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYs
IFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNo
aWxkID0gMCkgb3ZlcnJpZGU7Ci0gICAgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gdGFrZUNoaWxk
KFJlbmRlck9iamVjdCYpIG92ZXJyaWRlOworICAgIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IHRh
a2VDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYsIFJlbmRlck9iamVjdCYpIG92ZXJyaWRlOwogCiAg
ICAgdmlydHVhbCB2b2lkIGxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0
VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IDApOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IGUwYjQ5ZjEwZjVkNmRhYmI0NmFlZDZhZTU0YzFj
NjcyMmYyNGNlYzAuLjE1Nzg3ODhhYWI1MjAxMTk2MmRiYjA5ZWM0YjMxZDIxNTVhMDI2MWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC0zODQ5
LDE0ICszODQ5LDE0IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjphZGRDaGlsZChSZW5kZXJUcmVl
QnVpbGRlciYgYnVpbGRlciwgUmVuZGVyUHRyPFJlbmRlck9iamVjCiAgICAgYnVpbGRlci5pbnNl
cnRDaGlsZFRvUmVuZGVyQmxvY2tGbG93KCp0aGlzLCBXVEZNb3ZlKG5ld0NoaWxkKSwgYmVmb3Jl
Q2hpbGQpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBSZW5kZXJCbG9ja0Zsb3c6OnRh
a2VDaGlsZChSZW5kZXJPYmplY3QmIG9sZENoaWxkKQorUmVuZGVyUHRyPFJlbmRlck9iamVjdD4g
UmVuZGVyQmxvY2tGbG93Ojp0YWtlQ2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIsIFJl
bmRlck9iamVjdCYgb2xkQ2hpbGQpCiB7CiAgICAgaWYgKCFyZW5kZXJUcmVlQmVpbmdEZXN0cm95
ZWQoKSkgewogICAgICAgICBSZW5kZXJGcmFnbWVudGVkRmxvdyogZnJhZ21lbnRlZEZsb3cgPSBt
dWx0aUNvbHVtbkZsb3coKTsKICAgICAgICAgaWYgKGZyYWdtZW50ZWRGbG93ICYmIGZyYWdtZW50
ZWRGbG93ICE9ICZvbGRDaGlsZCkKICAgICAgICAgICAgIGZyYWdtZW50ZWRGbG93LT5mcmFnbWVu
dGVkRmxvd1JlbGF0aXZlV2lsbEJlUmVtb3ZlZChvbGRDaGlsZCk7CiAgICAgfQotICAgIHJldHVy
biBSZW5kZXJCbG9jazo6dGFrZUNoaWxkKG9sZENoaWxkKTsKKyAgICByZXR1cm4gUmVuZGVyQmxv
Y2s6OnRha2VDaGlsZChidWlsZGVyLCBvbGRDaGlsZCk7CiB9CiAKIHZvaWQgUmVuZGVyQmxvY2tG
bG93OjpjaGVja0ZvclBhZ2luYXRpb25Mb2dpY2FsSGVpZ2h0Q2hhbmdlKGJvb2wmIHJlbGF5b3V0
Q2hpbGRyZW4sIExheW91dFVuaXQmIHBhZ2VMb2dpY2FsSGVpZ2h0LCBib29sJiBwYWdlTG9naWNh
bEhlaWdodENoYW5nZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tGbG93LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
LmgKaW5kZXggZjI5ZDhiM2RiZjYwNGU5MzhhNmJiYjhkNWM2NmI1NDZjMWU2MTRjYy4uODZlMjk1
ZTQ4OTA5MDcyYTI5ODllNzA5MDE5NTkzZmQxOWM0MWUzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaApAQCAtMzc5LDcgKzM3OSw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGhhc05leHRQYWdlKExheW91dFVuaXQgbG9naWNhbE9mZnNldCwgUGFnZUJvdW5kYXJ5
UnVsZSA9IEV4Y2x1ZGVQYWdlQm91bmRhcnkpIGNvbnN0OwogCiAgICAgdm9pZCBhZGRDaGlsZChS
ZW5kZXJUcmVlQnVpbGRlciYsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IG5ld0NoaWxkLCBSZW5k
ZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCkgb3ZlcnJpZGU7Ci0gICAgUmVuZGVyUHRyPFJlbmRl
ck9iamVjdD4gdGFrZUNoaWxkKFJlbmRlck9iamVjdCYpIG92ZXJyaWRlOworICAgIFJlbmRlclB0
cjxSZW5kZXJPYmplY3Q+IHRha2VDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYsIFJlbmRlck9iamVj
dCYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCB1cGRhdGVDb2x1bW5Qcm9ncmVzc2lvbkZyb21TdHls
ZShSZW5kZXJTdHlsZSYpOwogICAgIHZvaWQgdXBkYXRlU3R5bGVzRm9yQ29sdW1uQ2hpbGRyZW4o
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAKaW5kZXggOGMzYjAy
OTFlNTNiOTAwMTZlN2UyNDI1MjJmZWRiNzI1YWJiZWYyNS4uNjVhZDM0YzEyMjYxM2Q5YTA2NzA2
ZTJhMDI0OWE0OThmOTFkYTg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJ1dHRvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1
dHRvbi5jcHAKQEAgLTcwLDE2ICs3MCwxNiBAQCB2b2lkIFJlbmRlckJ1dHRvbjo6c2V0SW5uZXJS
ZW5kZXJlcihSZW5kZXJCbG9jayYgaW5uZXJSZW5kZXJlcikKICAgICB1cGRhdGVBbm9ueW1vdXND
aGlsZFN0eWxlKG1faW5uZXItPm11dGFibGVTdHlsZSgpKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRl
ck9iamVjdD4gUmVuZGVyQnV0dG9uOjp0YWtlQ2hpbGQoUmVuZGVyT2JqZWN0JiBvbGRDaGlsZCkK
K1JlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlckJ1dHRvbjo6dGFrZUNoaWxkKFJlbmRlclRy
ZWVCdWlsZGVyJiBidWlsZGVyLCBSZW5kZXJPYmplY3QmIG9sZENoaWxkKQogewogICAgIC8vIG1f
aW5uZXIgc2hvdWxkIGJlIHRoZSBvbmx5IGNoaWxkLCBidXQgY2hlY2tpbmcgZm9yIGRpcmVjdCBj
aGlsZHJlbiB3aG8KICAgICAvLyBhcmUgbm90IG1faW5uZXIgcHJldmVudHMgc2VjdXJpdHkgcHJv
YmxlbXMgd2hlbiB0aGF0IGFzc3VtcHRpb24gaXMKICAgICAvLyB2aW9sYXRlZC4KICAgICBpZiAo
Jm9sZENoaWxkID09IG1faW5uZXIgfHwgIW1faW5uZXIgfHwgb2xkQ2hpbGQucGFyZW50KCkgPT0g
dGhpcykgewogICAgICAgICBBU1NFUlQoJm9sZENoaWxkID09IG1faW5uZXIgfHwgIW1faW5uZXIp
OwotICAgICAgICByZXR1cm4gUmVuZGVyRmxleGlibGVCb3g6OnRha2VDaGlsZChvbGRDaGlsZCk7
CisgICAgICAgIHJldHVybiBSZW5kZXJGbGV4aWJsZUJveDo6dGFrZUNoaWxkKGJ1aWxkZXIsIG9s
ZENoaWxkKTsKICAgICB9Ci0gICAgcmV0dXJuIG1faW5uZXItPnRha2VDaGlsZChvbGRDaGlsZCk7
CisgICAgcmV0dXJuIG1faW5uZXItPnRha2VDaGlsZChidWlsZGVyLCBvbGRDaGlsZCk7CiB9CiAg
ICAgCiB2b2lkIFJlbmRlckJ1dHRvbjo6dXBkYXRlQW5vbnltb3VzQ2hpbGRTdHlsZShSZW5kZXJT
dHlsZSYgY2hpbGRTdHlsZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCdXR0b24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0
b24uaAppbmRleCA1MzdmMzc2MmZhN2I4MzQ5NzJhZTkwMjYzZjlhYjc3MmYwNDg3YzBlLi4yZTQ4
ZDUxMmJhZjI2ODBhM2EyODgwNDUwMDgzZjYwNWI3NzI3MzQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJ1dHRvbi5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBSZW5kZXJQdHI8
UmVuZGVyT2JqZWN0PiB0YWtlQ2hpbGQoUmVuZGVyT2JqZWN0Jikgb3ZlcnJpZGU7CisgICAgUmVu
ZGVyUHRyPFJlbmRlck9iamVjdD4gdGFrZUNoaWxkKFJlbmRlclRyZWVCdWlsZGVyJiwgUmVuZGVy
T2JqZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVMZWZ0b3ZlckFub255bW91c0Jsb2Nr
KFJlbmRlckJsb2NrKikgb3ZlcnJpZGUgeyB9CiAgICAgYm9vbCBjcmVhdGVzQW5vbnltb3VzV3Jh
cHBlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IGIxMDAxYWYyMGMwM2QyY2YyNTY4NTIy
NjM2MjNhMjk4YzM4YWRjNGEuLmRlNDM2NzlkZGEyMDE5NWU5ZWYyZDRhOWRhNTcyNTJlZWJjMzI1
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTQ4
MCwxNCArNDgwLDE0IEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6YWRkQ2hpbGRJZ25vcmluZ0NvbnRp
bnVhdGlvbihSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlciwgUmVuCiAgICAgYnVpbGRlci5pbnNl
cnRDaGlsZCgqdGhpcywgV1RGTW92ZShuZXdDaGlsZCksIGJlZm9yZUNoaWxkKTsKIH0KIAotUmVu
ZGVyUHRyPFJlbmRlck9iamVjdD4gUmVuZGVyRWxlbWVudDo6dGFrZUNoaWxkKFJlbmRlck9iamVj
dCYgb2xkQ2hpbGQpCitSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBSZW5kZXJFbGVtZW50Ojp0YWtl
Q2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImLCBSZW5kZXJPYmplY3QmIG9sZENoaWxkKQogewogICAg
IHJldHVybiB0YWtlQ2hpbGRJbnRlcm5hbChvbGRDaGlsZCk7CiB9CiAKLXZvaWQgUmVuZGVyRWxl
bWVudDo6cmVtb3ZlQW5kRGVzdHJveUNoaWxkKFJlbmRlck9iamVjdCYgb2xkQ2hpbGQpCit2b2lk
IFJlbmRlckVsZW1lbnQ6OnJlbW92ZUFuZERlc3Ryb3lDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYg
YnVpbGRlciwgUmVuZGVyT2JqZWN0JiBvbGRDaGlsZCkKIHsKLSAgICBhdXRvIHRvRGVzdHJveSA9
IHRha2VDaGlsZChvbGRDaGlsZCk7CisgICAgYXV0byB0b0Rlc3Ryb3kgPSB0YWtlQ2hpbGQoYnVp
bGRlciwgb2xkQ2hpbGQpOwogfQogCiB2b2lkIFJlbmRlckVsZW1lbnQ6OmRlc3Ryb3lMZWZ0b3Zl
ckNoaWxkcmVuKCkKQEAgLTQ5NSw3ICs0OTUsNyBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6OmRlc3Ry
b3lMZWZ0b3ZlckNoaWxkcmVuKCkKICAgICB3aGlsZSAobV9maXJzdENoaWxkKSB7CiAgICAgICAg
IGlmIChhdXRvKiBub2RlID0gbV9maXJzdENoaWxkLT5ub2RlKCkpCiAgICAgICAgICAgICBub2Rl
LT5zZXRSZW5kZXJlcihudWxscHRyKTsKLSAgICAgICAgcmVtb3ZlQW5kRGVzdHJveUNoaWxkKCpt
X2ZpcnN0Q2hpbGQpOworICAgICAgICByZW1vdmVBbmREZXN0cm95Q2hpbGQoKlJlbmRlclRyZWVC
dWlsZGVyOjpjdXJyZW50KCksICptX2ZpcnN0Q2hpbGQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKaW5kZXggNWIxMTI5ZTdmYWUwMDYyZDQwNzI2
NGRiOGUxNGQ5M2M5MGE2YmMyMC4uNDQ2NmQwMWI5MmEyYjc0ZGRiMGY3OWNhZGZmMmNjOGIwNzk3
ZDI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCkBAIC04OSw4
ICs4OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNDaGlsZEFsbG93ZWQoY29uc3Qg
UmVuZGVyT2JqZWN0JiwgY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CiAgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlclRyZWVCdWlsZGVyJiwgUmVuZGVyUHRy
PFJlbmRlck9iamVjdD4sIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpOwogICAgIHZpcnR1YWwg
dm9pZCBhZGRDaGlsZElnbm9yaW5nQ29udGludWF0aW9uKFJlbmRlclRyZWVCdWlsZGVyJiwgUmVu
ZGVyUHRyPFJlbmRlck9iamVjdD4gbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQg
PSBudWxscHRyKTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IHRha2VDaGls
ZChSZW5kZXJPYmplY3QmKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdm9pZCByZW1vdmVBbmRE
ZXN0cm95Q2hpbGQoUmVuZGVyT2JqZWN0Jik7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVy
T2JqZWN0PiB0YWtlQ2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImLCBSZW5kZXJPYmplY3QmKSBXQVJO
X1VOVVNFRF9SRVRVUk47CisgICAgdm9pZCByZW1vdmVBbmREZXN0cm95Q2hpbGQoUmVuZGVyVHJl
ZUJ1aWxkZXImLCBSZW5kZXJPYmplY3QmKTsKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgZnVuY3Rp
b25zIGFyZSB1c2VkIHdoZW4gdGhlIHJlbmRlciB0cmVlIGhpZXJhcmNoeSBjaGFuZ2VzIHRvIG1h
a2Ugc3VyZSBsYXllcnMgZ2V0CiAgICAgLy8gcHJvcGVybHkgYWRkZWQgYW5kIHJlbW92ZWQuIFNp
bmNlIGNvbnRhaW5lcnNoaXAgY2FuIGJlIGltcGxlbWVudGVkIGJ5IGFueSBzdWJjbGFzcywgYW5k
IHNpbmNlIGEgaGllcmFyY2h5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRnVsbFNjcmVlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVs
bFNjcmVlbi5jcHAKaW5kZXggNzRhZjNmNzkwM2MxZDk4YTRhZjQ5MWUyOWM2ODQ1ZjczZDNmZTJl
OS4uOGYwMzUyZDhlNTAyMjkyYTlhZTI0NDE4ZWVlMDExY2QxNjNjYjdmOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcApAQCAtMTMyLDcgKzEzMiw3
IEBAIHZvaWQgUmVuZGVyRnVsbFNjcmVlbjo6d3JhcEV4aXN0aW5nUmVuZGVyZXIoUmVuZGVyRWxl
bWVudCYgcmVuZGVyZXIsIERvY3VtZW50JiBkCiAKICAgICBidWlsZGVyLmluc2VydENoaWxkKHBh
cmVudCwgV1RGTW92ZShuZXdGdWxsc2NyZWVuUmVuZGVyZXIpLCAmcmVuZGVyZXIpOwogCi0gICAg
YXV0byB0b01vdmUgPSBwYXJlbnQudGFrZUNoaWxkKHJlbmRlcmVyKTsKKyAgICBhdXRvIHRvTW92
ZSA9IHBhcmVudC50YWtlQ2hpbGQoYnVpbGRlciwgcmVuZGVyZXIpOwogCiAgICAgLy8gQWx3YXlz
IGp1c3QgZG8gYSBmdWxsIGxheW91dCB0byBlbnN1cmUgdGhhdCBsaW5lIGJveGVzIGdldCBkZWxl
dGVkIHByb3Blcmx5LgogICAgIC8vIEJlY2F1c2Ugb2JqZWN0cyBtb3ZlZCBmcm9tIHxwYXJlbnR8
IHRvIHxmdWxsc2NyZWVuUmVuZGVyZXJ8LCB3ZSB3YW50IHRvCkBAIC0xNzgsNyArMTc4LDcgQEAg
dm9pZCBSZW5kZXJGdWxsU2NyZWVuOjp1bndyYXBSZW5kZXJlcihib29sJiByZXF1aXJlc1JlbmRl
clRyZWVSZWJ1aWxkKQogICAgICAgICAgICAgLy8gbHlpbmcgYXJvdW5kIG9uIHRoZSBjaGlsZC4K
ICAgICAgICAgICAgIGlmIChpczxSZW5kZXJCb3g+KCpjaGlsZCkpCiAgICAgICAgICAgICAgICAg
ZG93bmNhc3Q8UmVuZGVyQm94PigqY2hpbGQpLmNsZWFyT3ZlcnJpZGVTaXplKCk7Ci0gICAgICAg
ICAgICBhdXRvIGNoaWxkVG9Nb3ZlID0gY2hpbGQtPnBhcmVudCgpLT50YWtlQ2hpbGQoKmNoaWxk
KTsKKyAgICAgICAgICAgIGF1dG8gY2hpbGRUb01vdmUgPSBjaGlsZC0+cGFyZW50KCktPnRha2VD
aGlsZChidWlsZGVyLCAqY2hpbGQpOwogICAgICAgICAgICAgYnVpbGRlci5pbnNlcnRDaGlsZCgq
cGFyZW50KCksIFdURk1vdmUoY2hpbGRUb01vdmUpLCB0aGlzKTsKICAgICAgICAgICAgIHBhcmVu
dCgpLT5zZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IGY5ZGFlOGM3ZTE3OTJhZDRi
YmVjYWVhYjQwMmZhNjJmYzA3ODY3ZGYuLjk3NDI2ODRlMTMwMDZmYzgzOWMwN2I2MDBhMzBlOTlk
ZDJjY2E4ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlk
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTg1
LDkgKzg1LDkgQEAgdm9pZCBSZW5kZXJHcmlkOjphZGRDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYg
YnVpbGRlciwgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gbmUKICAgICBkaXJ0eUdyaWQoKTsKIH0K
IAotUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gUmVuZGVyR3JpZDo6dGFrZUNoaWxkKFJlbmRlck9i
amVjdCYgY2hpbGQpCitSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBSZW5kZXJHcmlkOjp0YWtlQ2hp
bGQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIsIFJlbmRlck9iamVjdCYgY2hpbGQpCiB7Ci0g
ICAgYXV0byB0YWtlbkNoaWxkID0gUmVuZGVyQmxvY2s6OnRha2VDaGlsZChjaGlsZCk7CisgICAg
YXV0byB0YWtlbkNoaWxkID0gUmVuZGVyQmxvY2s6OnRha2VDaGlsZChidWlsZGVyLCBjaGlsZCk7
CiAKICAgICAvLyBQb3NpdGlvbmVkIGdyaWQgaXRlbXMgZG8gbm90IHRha2UgdXAgc3BhY2Ugb3Ig
b3RoZXJ3aXNlIHBhcnRpY2lwYXRlIGluIHRoZSBsYXlvdXQgb2YgdGhlIGdyaWQsCiAgICAgLy8g
Zm9yIHRoYXQgcmVhc29uIHdlIGRvbid0IG5lZWQgdG8gbWFyayB0aGUgZ3JpZCBhcyBkaXJ0eSB3
aGVuIHRoZXkgYXJlIHJlbW92ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaApp
bmRleCAyYTQ5NWZkZjAzMzQzMTJhMTJhMzE3NTc4MjJkNDFiODNlNzhjZDU1Li40MTU4NmNkNTdj
YmVmNWEwNWQ0OWJjMTUwMTVlZTM3OTJkZDc0NmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJHcmlkLmgKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbXB1dGVJ
bnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0
VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgYWRkQ2hp
bGQoUmVuZGVyVHJlZUJ1aWxkZXImLCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBuZXdDaGlsZCwg
UmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCkgZmluYWw7Ci0gICAgUmVuZGVyUHRyPFJlbmRlck9i
amVjdD4gdGFrZUNoaWxkKFJlbmRlck9iamVjdCYpIGZpbmFsOworICAgIFJlbmRlclB0cjxSZW5k
ZXJPYmplY3Q+IHRha2VDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYsIFJlbmRlck9iamVjdCYpIGZp
bmFsOwogCiAgICAgU3R5bGVTZWxmQWxpZ25tZW50RGF0YSBzZWxmQWxpZ25tZW50Rm9yQ2hpbGQo
R3JpZEF4aXMsIGNvbnN0IFJlbmRlckJveCYsIGNvbnN0IFJlbmRlclN0eWxlKiA9IG51bGxwdHIp
IGNvbnN0OwogICAgIGJvb2wgc2VsZkFsaWdubWVudENoYW5nZWRUb1N0cmV0Y2goR3JpZEF4aXMs
IGNvbnN0IFJlbmRlclN0eWxlJiBvbGRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxl
LCBjb25zdCBSZW5kZXJCb3gmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVudUxpc3QuY3BwCmluZGV4IGQ1MTc2Y2UzODlhOWMyNDI0YzNkZmViMTY4Yzc5YWMwYTYy
ZTc5YmMuLjQwN2QyY2IyZjgxMGNlMGMxZTI0ZTJjZDJlZGNhZTlkNGRjYzQ4YzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMTcyLDExICsxNzIs
MTEgQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6YWRkQ2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImLCBS
ZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBjaGlsZCwKICAgICAgICAgY2FjaGUtPmNoaWxkcmVuQ2hh
bmdlZCh0aGlzLCBjaGlsZC5nZXQoKSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJl
bmRlck1lbnVMaXN0Ojp0YWtlQ2hpbGQoUmVuZGVyT2JqZWN0JiBvbGRDaGlsZCkKK1JlbmRlclB0
cjxSZW5kZXJPYmplY3Q+IFJlbmRlck1lbnVMaXN0Ojp0YWtlQ2hpbGQoUmVuZGVyVHJlZUJ1aWxk
ZXImIGJ1aWxkZXIsIFJlbmRlck9iamVjdCYgb2xkQ2hpbGQpCiB7CiAgICAgaWYgKCFtX2lubmVy
QmxvY2sgfHwgJm9sZENoaWxkID09IG1faW5uZXJCbG9jaykKLSAgICAgICAgcmV0dXJuIFJlbmRl
ckZsZXhpYmxlQm94Ojp0YWtlQ2hpbGQob2xkQ2hpbGQpOwotICAgIHJldHVybiBtX2lubmVyQmxv
Y2stPnRha2VDaGlsZChvbGRDaGlsZCk7CisgICAgICAgIHJldHVybiBSZW5kZXJGbGV4aWJsZUJv
eDo6dGFrZUNoaWxkKGJ1aWxkZXIsIG9sZENoaWxkKTsKKyAgICByZXR1cm4gbV9pbm5lckJsb2Nr
LT50YWtlQ2hpbGQoYnVpbGRlciwgb2xkQ2hpbGQpOwogfQogCiB2b2lkIFJlbmRlck1lbnVMaXN0
OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUq
IG9sZFN0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaAppbmRl
eCAwMWM3NTkxOTUwNGFkYzllNjRjMzlhNGM0ZWFiN2JhOTMxZWMyMzYxLi5iZGY0NDcxNmVlMGYx
ZmM3ZmU5YjczY2VmOGE0OGY1ZTA1Yzk3MTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuaApAQCAtNzAsNyArNzAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNN
ZW51TGlzdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZvaWQgYWRk
Q2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImLCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBuZXdDaGls
ZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApIG92ZXJyaWRlOwotICAgIFJlbmRlclB0
cjxSZW5kZXJPYmplY3Q+IHRha2VDaGlsZChSZW5kZXJPYmplY3QmKSBvdmVycmlkZTsKKyAgICBS
ZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiB0YWtlQ2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImLCBSZW5k
ZXJPYmplY3QmKSBvdmVycmlkZTsKICAgICBib29sIGNyZWF0ZXNBbm9ueW1vdXNXcmFwcGVyKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdm9pZCB1cGRhdGVGcm9tRWxl
bWVudCgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck11bHRpQ29sdW1uRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TXVsdGlDb2x1bW5GbG93LmNwcAppbmRleCBkNjdjZjU3YmQzYTQwZGQ1MmJmZWQ0OThiMThjOTRk
YzJkMTNkN2Y4Li5mNGQwYTM1YjI2ZmExZTdmMjRiZjFlZGJhZDU1YjZlNDVmMDJiYzk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93LmNw
cApAQCAtMjc0LDcgKzI3NCw3IEBAIFJlbmRlck9iamVjdCogUmVuZGVyTXVsdGlDb2x1bW5GbG93
Ojpwcm9jZXNzUG9zc2libGVTcGFubmVyRGVzY2VuZGFudChSZW5kZXJPYmplCiAgICAgICAgIGF1
dG8gbmV3UGxhY2Vob2xkZXIgPSBSZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlcjo6
Y3JlYXRlQW5vbnltb3VzKCp0aGlzLCBkb3duY2FzdDxSZW5kZXJCb3g+KGRlc2NlbmRhbnQpLCBj
b250YWluZXItPnN0eWxlKCkpOwogICAgICAgICBhdXRvJiBwbGFjZWhvbGRlciA9ICpuZXdQbGFj
ZWhvbGRlcjsKICAgICAgICAgUmVuZGVyVHJlZUJ1aWxkZXI6OmN1cnJlbnQoKS0+aW5zZXJ0Q2hp
bGQoKmNvbnRhaW5lciwgV1RGTW92ZShuZXdQbGFjZWhvbGRlciksIGRlc2NlbmRhbnQubmV4dFNp
YmxpbmcoKSk7Ci0gICAgICAgIGF1dG8gdGFrZW5EZXNjZW5kYW50ID0gY29udGFpbmVyLT50YWtl
Q2hpbGQoZGVzY2VuZGFudCk7CisgICAgICAgIGF1dG8gdGFrZW5EZXNjZW5kYW50ID0gY29udGFp
bmVyLT50YWtlQ2hpbGQoKlJlbmRlclRyZWVCdWlsZGVyOjpjdXJyZW50KCksIGRlc2NlbmRhbnQp
OwogICAgICAgICAKICAgICAgICAgLy8gVGhpcyBpcyBhIGd1YXJkIHRvIHN0b3AgYW4gYW5jZXN0
b3IgZmxvdyB0aHJlYWQgZnJvbSBwcm9jZXNzaW5nIHRoZSBzcGFubmVyLgogICAgICAgICBnU2hp
ZnRpbmdTcGFubmVyID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHAKaW5kZXggZmFhNzNiNWM4ODk3NzQyY2RjZDVkOTJhM2U3MzYyNTExNzljZGRjNC4uZjdj
NWMxMTY5MmMwY2VkMWYwYWFiMjY5NWVkMTAwMjQ0YWNjNGMwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJS
ZW5kZXJTY3JvbGxiYXJQYXJ0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGFibGVSb3cuaCIKICNpbmNs
dWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIlJlbmRlclRyZWVCdWlsZGVyLmgiCiAjaW5j
bHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUg
IlNWR1JlbmRlclN1cHBvcnQuaCIKQEAgLTI1Nyw3ICsyNTgsNyBAQCB2b2lkIFJlbmRlck9iamVj
dDo6c2V0UGFyZW50KFJlbmRlckVsZW1lbnQqIHBhcmVudCkKIHZvaWQgUmVuZGVyT2JqZWN0Ojpy
ZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSgpCiB7CiAgICAgQVNTRVJUKG1fcGFyZW50KTsKLSAg
ICBtX3BhcmVudC0+cmVtb3ZlQW5kRGVzdHJveUNoaWxkKCp0aGlzKTsKKyAgICBtX3BhcmVudC0+
cmVtb3ZlQW5kRGVzdHJveUNoaWxkKCpSZW5kZXJUcmVlQnVpbGRlcjo6Y3VycmVudCgpLCAqdGhp
cyk7CiB9CiAKIFJlbmRlck9iamVjdCogUmVuZGVyT2JqZWN0OjpuZXh0SW5QcmVPcmRlcigpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAKaW5kZXggN2Y1N2Q5NzQ2
OWI0MWZiYWNkMzNmZjNhODE1MTg3ODFhZTNiMzdjMy4uN2MwNGE4NjIwYzA5Y2FhN2VkNTE4YjFl
YWRhNGVlNzJhNWM1YTVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclJ1YnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmNw
cApAQCAtOTMsNyArOTMsNyBAQCB2b2lkIFJlbmRlclJ1YnlBc0lubGluZTo6c3R5bGVEaWRDaGFu
Z2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKgogICAgIHByb3BhZ2F0
ZVN0eWxlVG9Bbm9ueW1vdXNDaGlsZHJlbihQcm9wYWdhdGVUb0FsbENoaWxkcmVuKTsKIH0KIAot
UmVuZGVyUHRyPFJlbmRlck9iamVjdD4gUmVuZGVyUnVieUFzSW5saW5lOjp0YWtlQ2hpbGQoUmVu
ZGVyT2JqZWN0JiBjaGlsZCkKK1JlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlclJ1YnlBc0lu
bGluZTo6dGFrZUNoaWxkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyLCBSZW5kZXJPYmplY3Qm
IGNoaWxkKQogewogICAgIC8vIElmIHRoZSBjaGlsZCdzIHBhcmVudCBpcyAqdGhpcyAobXVzdCBi
ZSBhIHJ1YnkgcnVuIG9yIGdlbmVyYXRlZCBjb250ZW50IG9yIGFub255bW91cyBibG9jayksCiAg
ICAgLy8ganVzdCB1c2UgdGhlIG5vcm1hbCByZW1vdmUgbWV0aG9kLgpAQCAtMTAxLDIwICsxMDEs
MjAgQEAgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gUmVuZGVyUnVieUFzSW5saW5lOjp0YWtlQ2hp
bGQoUmVuZGVyT2JqZWN0JiBjaGlsZCkKICNpZm5kZWYgQVNTRVJUX0RJU0FCTEVECiAgICAgICAg
IEFTU0VSVChpc1J1YnlDaGlsZEZvck5vcm1hbFJlbW92YWwoY2hpbGQpKTsKICNlbmRpZgotICAg
ICAgICByZXR1cm4gUmVuZGVySW5saW5lOjp0YWtlQ2hpbGQoY2hpbGQpOworICAgICAgICByZXR1
cm4gUmVuZGVySW5saW5lOjp0YWtlQ2hpbGQoYnVpbGRlciwgY2hpbGQpOwogICAgIH0KICAgICAv
LyBJZiB0aGUgY2hpbGQncyBwYXJlbnQgaXMgYW4gYW5veW1vdXMgYmxvY2sgKG11c3QgYmUgZ2Vu
ZXJhdGVkIDpiZWZvcmUvOmFmdGVyIGNvbnRlbnQpCiAgICAgLy8ganVzdCB1c2UgdGhlIGJsb2Nr
J3MgcmVtb3ZlIG1ldGhvZC4KICAgICBpZiAoaXNBbm9ueW1vdXNSdWJ5SW5saW5lQmxvY2soY2hp
bGQucGFyZW50KCkpKSB7CiAgICAgICAgIEFTU0VSVChjaGlsZC5pc0JlZm9yZUNvbnRlbnQoKSB8
fCBjaGlsZC5pc0FmdGVyQ29udGVudCgpKTsKICAgICAgICAgYXV0byYgcGFyZW50ID0gKmNoaWxk
LnBhcmVudCgpOwotICAgICAgICBhdXRvIHRha2VuQ2hpbGQgPSBwYXJlbnQudGFrZUNoaWxkKGNo
aWxkKTsKKyAgICAgICAgYXV0byB0YWtlbkNoaWxkID0gcGFyZW50LnRha2VDaGlsZChidWlsZGVy
LCBjaGlsZCk7CiAgICAgICAgIHBhcmVudC5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSgpOwog
ICAgICAgICByZXR1cm4gdGFrZW5DaGlsZDsKICAgICB9CiAKICAgICAvLyBPdGhlcndpc2UgZmlu
ZCB0aGUgY29udGFpbmluZyBydW4gYW5kIHJlbW92ZSBpdCBmcm9tIHRoZXJlLgotICAgIHJldHVy
biBmaW5kUnVieVJ1blBhcmVudChjaGlsZCkudGFrZUNoaWxkKGNoaWxkKTsKKyAgICByZXR1cm4g
ZmluZFJ1YnlSdW5QYXJlbnQoY2hpbGQpLnRha2VDaGlsZChidWlsZGVyLCBjaGlsZCk7CiB9CiAK
IC8vPT09IHJ1YnkgYXMgYmxvY2sgb2JqZWN0ID09PQpAQCAtMTMyLDcgKzEzMiw3IEBAIHZvaWQg
UmVuZGVyUnVieUFzQmxvY2s6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBj
b25zdCBSZW5kZXJTdHlsZSoKICAgICBwcm9wYWdhdGVTdHlsZVRvQW5vbnltb3VzQ2hpbGRyZW4o
UHJvcGFnYXRlVG9BbGxDaGlsZHJlbik7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJl
bmRlclJ1YnlBc0Jsb2NrOjp0YWtlQ2hpbGQoUmVuZGVyT2JqZWN0JiBjaGlsZCkKK1JlbmRlclB0
cjxSZW5kZXJPYmplY3Q+IFJlbmRlclJ1YnlBc0Jsb2NrOjp0YWtlQ2hpbGQoUmVuZGVyVHJlZUJ1
aWxkZXImIGJ1aWxkZXIsIFJlbmRlck9iamVjdCYgY2hpbGQpCiB7CiAgICAgLy8gSWYgdGhlIGNo
aWxkJ3MgcGFyZW50IGlzICp0aGlzIChtdXN0IGJlIGEgcnVieSBydW4gb3IgZ2VuZXJhdGVkIGNv
bnRlbnQgb3IgYW5vbnltb3VzIGJsb2NrKSwKICAgICAvLyBqdXN0IHVzZSB0aGUgbm9ybWFsIHJl
bW92ZSBtZXRob2QuCkBAIC0xNDAsMjAgKzE0MCwyMCBAQCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0
PiBSZW5kZXJSdWJ5QXNCbG9jazo6dGFrZUNoaWxkKFJlbmRlck9iamVjdCYgY2hpbGQpCiAjaWZu
ZGVmIEFTU0VSVF9ESVNBQkxFRAogICAgICAgICBBU1NFUlQoaXNSdWJ5Q2hpbGRGb3JOb3JtYWxS
ZW1vdmFsKGNoaWxkKSk7CiAjZW5kaWYKLSAgICAgICAgcmV0dXJuIFJlbmRlckJsb2NrRmxvdzo6
dGFrZUNoaWxkKGNoaWxkKTsKKyAgICAgICAgcmV0dXJuIFJlbmRlckJsb2NrRmxvdzo6dGFrZUNo
aWxkKGJ1aWxkZXIsIGNoaWxkKTsKICAgICB9CiAgICAgLy8gSWYgdGhlIGNoaWxkJ3MgcGFyZW50
IGlzIGFuIGFub3ltb3VzIGJsb2NrIChtdXN0IGJlIGdlbmVyYXRlZCA6YmVmb3JlLzphZnRlciBj
b250ZW50KQogICAgIC8vIGp1c3QgdXNlIHRoZSBibG9jaydzIHJlbW92ZSBtZXRob2QuCiAgICAg
aWYgKGlzQW5vbnltb3VzUnVieUlubGluZUJsb2NrKGNoaWxkLnBhcmVudCgpKSkgewogICAgICAg
ICBBU1NFUlQoY2hpbGQuaXNCZWZvcmVDb250ZW50KCkgfHwgY2hpbGQuaXNBZnRlckNvbnRlbnQo
KSk7CiAgICAgICAgIGF1dG8mIHBhcmVudCA9ICpjaGlsZC5wYXJlbnQoKTsKLSAgICAgICAgYXV0
byB0YWtlbkNoaWxkID0gcGFyZW50LnRha2VDaGlsZChjaGlsZCk7CisgICAgICAgIGF1dG8gdGFr
ZW5DaGlsZCA9IHBhcmVudC50YWtlQ2hpbGQoYnVpbGRlciwgY2hpbGQpOwogICAgICAgICBwYXJl
bnQucmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koKTsKICAgICAgICAgcmV0dXJuIHRha2VuQ2hp
bGQ7CiAgICAgfQogCiAgICAgLy8gT3RoZXJ3aXNlIGZpbmQgdGhlIGNvbnRhaW5pbmcgcnVuIGFu
ZCByZW1vdmUgaXQgZnJvbSB0aGVyZS4KLSAgICByZXR1cm4gZmluZFJ1YnlSdW5QYXJlbnQoY2hp
bGQpLnRha2VDaGlsZChjaGlsZCk7CisgICAgcmV0dXJuIGZpbmRSdWJ5UnVuUGFyZW50KGNoaWxk
KS50YWtlQ2hpbGQoYnVpbGRlciwgY2hpbGQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuaAppbmRleCBjYmZjMjNiYzVkZjQxOTNl
ZGQ0MGQyYmM4NjhiMWVjYzA3MjM4NzViLi5jZGVjMTNhNTU4ZTAyZjEwNmFjNDVlNmNhMTNjMjM0
MDdjN2Y0NWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVi
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmgKQEAgLTU2LDcg
KzU2LDcgQEAgcHVibGljOgogICAgIFJlbmRlclJ1YnlBc0lubGluZShFbGVtZW50JiwgUmVuZGVy
U3R5bGUmJik7CiAgICAgdmlydHVhbCB+UmVuZGVyUnVieUFzSW5saW5lKCk7CiAKLSAgICBSZW5k
ZXJQdHI8UmVuZGVyT2JqZWN0PiB0YWtlQ2hpbGQoUmVuZGVyT2JqZWN0JiBjaGlsZCkgb3ZlcnJp
ZGU7CisgICAgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gdGFrZUNoaWxkKFJlbmRlclRyZWVCdWls
ZGVyJiwgUmVuZGVyT2JqZWN0JiBjaGlsZCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICB2
b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9s
ZFN0eWxlKSBvdmVycmlkZTsKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgogCiAgICAgRWxlbWVu
dCYgZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PEVsZW1lbnQ+KG5vZGVGb3JOb25B
bm9ueW1vdXMoKSk7IH0KIAotICAgIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IHRha2VDaGlsZChS
ZW5kZXJPYmplY3QmIGNoaWxkKSBvdmVycmlkZTsKKyAgICBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0
PiB0YWtlQ2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImLCBSZW5kZXJPYmplY3QmIGNoaWxkKSBvdmVy
cmlkZTsKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJl
bmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwCmluZGV4IDg3ODg3Yjg5ZjYyZjE3MGMxOTEw
YzJhZDExMDBhN2E1OTExZTY4ZjcuLjRhZWE1OWZkZGZjYTY1NzUyMmQ1ZjBlZWFiMmY3MmIxMDA5
OWJkMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVu
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVJ1bi5jcHAKQEAg
LTk3LDcgKzk3LDcgQEAgYm9vbCBSZW5kZXJSdWJ5UnVuOjppc0NoaWxkQWxsb3dlZChjb25zdCBS
ZW5kZXJPYmplY3QmIGNoaWxkLCBjb25zdCBSZW5kZXJTdHlsZSYKICAgICByZXR1cm4gY2hpbGQu
aXNJbmxpbmUoKSB8fCBjaGlsZC5pc1J1YnlUZXh0KCk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJP
YmplY3Q+IFJlbmRlclJ1YnlSdW46OnRha2VDaGlsZChSZW5kZXJPYmplY3QmIGNoaWxkKQorUmVu
ZGVyUHRyPFJlbmRlck9iamVjdD4gUmVuZGVyUnVieVJ1bjo6dGFrZUNoaWxkKFJlbmRlclRyZWVC
dWlsZGVyJiBidWlsZGVyLCBSZW5kZXJPYmplY3QmIGNoaWxkKQogewogICAgIC8vIElmIHRoZSBj
aGlsZCBpcyBhIHJ1YnkgdGV4dCwgdGhlbiBtZXJnZSB0aGUgcnVieSBiYXNlIHdpdGggdGhlIGJh
c2Ugb2YKICAgICAvLyB0aGUgcmlnaHQgc2libGluZyBydW4sIGlmIHBvc3NpYmxlLgpAQCAtMTE5
LDEzICsxMTksMTMgQEAgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gUmVuZGVyUnVieVJ1bjo6dGFr
ZUNoaWxkKFJlbmRlck9iamVjdCYgY2hpbGQpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBhdXRv
IHRha2VuQ2hpbGQgPSBSZW5kZXJCbG9ja0Zsb3c6OnRha2VDaGlsZChjaGlsZCk7CisgICAgYXV0
byB0YWtlbkNoaWxkID0gUmVuZGVyQmxvY2tGbG93Ojp0YWtlQ2hpbGQoYnVpbGRlciwgY2hpbGQp
OwogCiAgICAgaWYgKCFiZWluZ0Rlc3Ryb3llZCgpICYmICFyZW5kZXJUcmVlQmVpbmdEZXN0cm95
ZWQoKSkgewogICAgICAgICAvLyBDaGVjayBpZiBvdXIgYmFzZSAoaWYgYW55KSBpcyBub3cgZW1w
dHkuIElmIHNvLCBkZXN0cm95IGl0LgogICAgICAgICBSZW5kZXJCbG9jayogYmFzZSA9IHJ1YnlC
YXNlKCk7CiAgICAgICAgIGlmIChiYXNlICYmICFiYXNlLT5maXJzdENoaWxkKCkpIHsKLSAgICAg
ICAgICAgIGF1dG8gdGFrZW5CYXNlID0gUmVuZGVyQmxvY2tGbG93Ojp0YWtlQ2hpbGQoKmJhc2Up
OworICAgICAgICAgICAgYXV0byB0YWtlbkJhc2UgPSBSZW5kZXJCbG9ja0Zsb3c6OnRha2VDaGls
ZChidWlsZGVyLCAqYmFzZSk7CiAgICAgICAgICAgICBiYXNlLT5kZWxldGVMaW5lcygpOwogICAg
ICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJ1YnlSdW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmgKaW5k
ZXggZmQ0OGUzMzU1Y2E5MTM2ZmViN2UwOWEwNDkyZDY1MWMxMzZiNzY0OC4uNzFkOThlYTM5Mjdk
MTQ4NjZjNzUzZWIwMjMxNzJmNTViNjJmMTI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUnVieVJ1bi5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxheW91
dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlSGVpZ2h0ID0gMCkg
b3ZlcnJpZGU7CiAKICAgICBib29sIGlzQ2hpbGRBbGxvd2VkKGNvbnN0IFJlbmRlck9iamVjdCYs
IGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgUmVuZGVyUHRyPFJlbmRl
ck9iamVjdD4gdGFrZUNoaWxkKFJlbmRlck9iamVjdCYpIG92ZXJyaWRlOworICAgIFJlbmRlclB0
cjxSZW5kZXJPYmplY3Q+IHRha2VDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYsIFJlbmRlck9iamVj
dCYpIG92ZXJyaWRlOwogCiAgICAgUmVuZGVyQmxvY2sqIGZpcnN0TGluZUJsb2NrKCkgY29uc3Qg
b3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHQ29udGFpbmVyLmNwcAppbmRleCBiYzE5OThjMzNmYmRiOGExYjkyNjY1MTY1ZjhiNDczMDZi
ODVjYzA1Li45MWNhMmI0OGExZjMwOTEyNDA2MGI0OTVjM2Q3YjU0MTEwNDhiYzFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3Bw
CkBAIC05NSwxMCArOTUsMTAgQEAgdm9pZCBSZW5kZXJTVkdDb250YWluZXI6OmFkZENoaWxkKFJl
bmRlclRyZWVCdWlsZGVyJiBidWlsZGVyLCBSZW5kZXJQdHI8UmVuZGVyT2IKICAgICBidWlsZGVy
Lmluc2VydENoaWxkVG9TVkdDb250YWluZXIoKnRoaXMsIFdURk1vdmUobmV3Q2hpbGQpLCBiZWZv
cmVDaGlsZCk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlclNWR0NvbnRhaW5l
cjo6dGFrZUNoaWxkKFJlbmRlck9iamVjdCYgY2hpbGQpCitSZW5kZXJQdHI8UmVuZGVyT2JqZWN0
PiBSZW5kZXJTVkdDb250YWluZXI6OnRha2VDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRl
ciwgUmVuZGVyT2JqZWN0JiBjaGlsZCkKIHsKICAgICBTVkdSZXNvdXJjZXNDYWNoZTo6Y2xpZW50
V2lsbEJlUmVtb3ZlZEZyb21UcmVlKGNoaWxkKTsKLSAgICByZXR1cm4gUmVuZGVyU1ZHTW9kZWxP
YmplY3Q6OnRha2VDaGlsZChjaGlsZCk7CisgICAgcmV0dXJuIFJlbmRlclNWR01vZGVsT2JqZWN0
Ojp0YWtlQ2hpbGQoYnVpbGRlciwgY2hpbGQpOwogfQogCiBib29sIFJlbmRlclNWR0NvbnRhaW5l
cjo6c2VsZldpbGxQYWludCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR0NvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdDb250YWluZXIuaAppbmRleCA0M2ZlZGExODg5MmViMTIzNmE4MTU4MWI3NDY3MWNl
YzM4MTdiZmE0Li40NWFkOTMwZDVjMjQ5MTgyMGJhNjI4NGMxZmIxMjdkNjMzYTRlMzc3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmgK
QEAgLTQ5LDcgKzQ5LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGU7
CiAKICAgICB2b2lkIGFkZENoaWxkKFJlbmRlclRyZWVCdWlsZGVyJiwgUmVuZGVyUHRyPFJlbmRl
ck9iamVjdD4gY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKSBmaW5hbDsKLSAg
ICBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiB0YWtlQ2hpbGQoUmVuZGVyT2JqZWN0JikgZmluYWw7
CisgICAgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gdGFrZUNoaWxkKFJlbmRlclRyZWVCdWlsZGVy
JiwgUmVuZGVyT2JqZWN0JikgZmluYWw7CiAgICAgdm9pZCBhZGRGb2N1c1JpbmdSZWN0cyhWZWN0
b3I8TGF5b3V0UmVjdD4mLCBjb25zdCBMYXlvdXRQb2ludCYgYWRkaXRpb25hbE9mZnNldCwgY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcGFpbnRDb250YWluZXIgPSAwKSBmaW5hbDsKIAog
ICAgIEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
b2JqZWN0Qm91bmRpbmdCb3g7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHSW5saW5lLmNwcAppbmRleCAxYjJlMTJjOGNiNGYyZjRkZTA1MzY5MjVlMmVkYTky
ZjVlZjQyZGVlLi5kZGU0ZmRiMDExMTVmODkwMDRmOWZlYTg5NTc0MGU0NzBhNmFhNjMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCkBA
IC0xMjgsMTcgKzEyOCwxNyBAQCB2b2lkIFJlbmRlclNWR0lubGluZTo6YWRkQ2hpbGQoUmVuZGVy
VHJlZUJ1aWxkZXImIGJ1aWxkZXIsIFJlbmRlclB0cjxSZW5kZXJPYmplYwogICAgIGJ1aWxkZXIu
aW5zZXJ0Q2hpbGRUb1NWR0lubGluZSgqdGhpcywgV1RGTW92ZShuZXdDaGlsZCksIGJlZm9yZUNo
aWxkKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gUmVuZGVyU1ZHSW5saW5lOjp0YWtl
Q2hpbGQoUmVuZGVyT2JqZWN0JiBjaGlsZCkKK1JlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJlbmRl
clNWR0lubGluZTo6dGFrZUNoaWxkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyLCBSZW5kZXJP
YmplY3QmIGNoaWxkKQogewogICAgIFNWR1Jlc291cmNlc0NhY2hlOjpjbGllbnRXaWxsQmVSZW1v
dmVkRnJvbVRyZWUoY2hpbGQpOwogCiAgICAgYXV0byogdGV4dEFuY2VzdG9yID0gUmVuZGVyU1ZH
VGV4dDo6bG9jYXRlUmVuZGVyU1ZHVGV4dEFuY2VzdG9yKCp0aGlzKTsKICAgICBpZiAoIXRleHRB
bmNlc3RvcikKLSAgICAgICAgcmV0dXJuIFJlbmRlcklubGluZTo6dGFrZUNoaWxkKGNoaWxkKTsK
KyAgICAgICAgcmV0dXJuIFJlbmRlcklubGluZTo6dGFrZUNoaWxkKGJ1aWxkZXIsIGNoaWxkKTsK
IAogICAgIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyosIDI+IGFmZmVjdGVkQXR0cmli
dXRlczsKICAgICB0ZXh0QW5jZXN0b3ItPnN1YnRyZWVDaGlsZFdpbGxCZVJlbW92ZWQoJmNoaWxk
LCBhZmZlY3RlZEF0dHJpYnV0ZXMpOwotICAgIGF1dG8gdGFrZW5DaGlsZCA9IFJlbmRlcklubGlu
ZTo6dGFrZUNoaWxkKGNoaWxkKTsKKyAgICBhdXRvIHRha2VuQ2hpbGQgPSBSZW5kZXJJbmxpbmU6
OnRha2VDaGlsZChidWlsZGVyLCBjaGlsZCk7CiAgICAgdGV4dEFuY2VzdG9yLT5zdWJ0cmVlQ2hp
bGRXYXNSZW1vdmVkKGFmZmVjdGVkQXR0cmlidXRlcyk7CiAgICAgcmV0dXJuIHRha2VuQ2hpbGQ7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lu
bGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaApp
bmRleCA2OWI5ZDg0NDQ0NWE2MGVlNjA5Y2RkYTdjYmI1NDc5ZjEyYjFhY2Q1Li45NzlhODJlODVi
YTVhMDZlMmI2Y2MwODNlMjE4NzVmMmZkODdmNzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgKQEAgLTYyLDcgKzYyLDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5
bGUqIG9sZFN0eWxlKSBmaW5hbDsKIAogICAgIHZvaWQgYWRkQ2hpbGQoUmVuZGVyVHJlZUJ1aWxk
ZXImLCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVD
aGlsZCA9IG51bGxwdHIpIGZpbmFsOwotICAgIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IHRha2VD
aGlsZChSZW5kZXJPYmplY3QmKSBmaW5hbDsKKyAgICBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiB0
YWtlQ2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImLCBSZW5kZXJPYmplY3QmKSBmaW5hbDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jvb3QuY3BwCmluZGV4IDU0MjRjNzJmMzViMDllNjRhMzM1NjFhYmRiNzg1MDBj
MjA2ODU5NDQuLmQwYzE5MmQ0YTIxMjRkMTZiOTNjYjc5NTY3OGI2Y2E3NGE4ZDcyNDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcApAQCAtMzA4
LDEwICszMDgsMTAgQEAgdm9pZCBSZW5kZXJTVkdSb290OjphZGRDaGlsZChSZW5kZXJUcmVlQnVp
bGRlciYgYnVpbGRlciwgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4KICAgICBidWlsZGVyLmluc2Vy
dENoaWxkVG9TVkdSb290KCp0aGlzLCBXVEZNb3ZlKG5ld0NoaWxkKSwgYmVmb3JlQ2hpbGQpOwog
fQogCi1SZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBSZW5kZXJTVkdSb290Ojp0YWtlQ2hpbGQoUmVu
ZGVyT2JqZWN0JiBjaGlsZCkKK1JlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlclNWR1Jvb3Q6
OnRha2VDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlciwgUmVuZGVyT2JqZWN0JiBjaGls
ZCkKIHsKICAgICBTVkdSZXNvdXJjZXNDYWNoZTo6Y2xpZW50V2lsbEJlUmVtb3ZlZEZyb21UcmVl
KGNoaWxkKTsKLSAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OnRha2VDaGlsZChjaGlsZCk7Cisg
ICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjp0YWtlQ2hpbGQoYnVpbGRlciwgY2hpbGQpOwogfQog
CiAvLyBSZW5kZXJCb3ggbWV0aG9kcyB3aWxsIGV4cGVjdCBjb29yZGluYXRlcyB3L28gYW55IHRy
YW5zZm9ybXMgaW4gY29vcmRpbmF0ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSb290LmgKaW5kZXggMzc0ZWQ1ZTE0MzlmMDgwZmVhNDU1MzFkMGUwNDJiZTcyYjE2
NDk2ZS4uNzg2NzA3YWI0Y2M1NDk2MGRmZWRiYWJkN2JlMWVlNzIwZjVjMmRjYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKQEAgLTgzLDcgKzgzLDcg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBj
b25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlOwogICAgIHZvaWQgYWRkQ2hpbGQo
UmVuZGVyVHJlZUJ1aWxkZXImLCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBjaGlsZCwgUmVuZGVy
T2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApIG92ZXJyaWRlOwotICAgIFJlbmRlclB0cjxSZW5kZXJP
YmplY3Q+IHRha2VDaGlsZChSZW5kZXJPYmplY3QmKSBvdmVycmlkZTsKKyAgICBSZW5kZXJQdHI8
UmVuZGVyT2JqZWN0PiB0YWtlQ2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImLCBSZW5kZXJPYmplY3Qm
KSBvdmVycmlkZTsKIAogICAgIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbG9jYWxUb1BhcmVudFRy
YW5zZm9ybSgpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAppbmRleCBkMzRhNTljOTgzYWExNWRhMmEyZGRiMzRkMGFj
OWNmMmJmMWQ2MjllLi5iNDMxZDZjOTFhOWYxYzg5YjMzN2JjM2M1NWM5NWY5M2ZjMzU1MWU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKQEAg
LTUyNSwxMyArNTI1LDEzIEBAIHZvaWQgUmVuZGVyU1ZHVGV4dDo6YWRkQ2hpbGQoUmVuZGVyVHJl
ZUJ1aWxkZXImIGJ1aWxkZXIsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+CiAgICAgYnVpbGRlci5p
bnNlcnRDaGlsZFRvU1ZHVGV4dCgqdGhpcywgV1RGTW92ZShuZXdDaGlsZCksIGJlZm9yZUNoaWxk
KTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gUmVuZGVyU1ZHVGV4dDo6dGFrZUNoaWxk
KFJlbmRlck9iamVjdCYgY2hpbGQpCitSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBSZW5kZXJTVkdU
ZXh0Ojp0YWtlQ2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIsIFJlbmRlck9iamVjdCYg
Y2hpbGQpCiB7CiAgICAgU1ZHUmVzb3VyY2VzQ2FjaGU6OmNsaWVudFdpbGxCZVJlbW92ZWRGcm9t
VHJlZShjaGlsZCk7CiAKICAgICBWZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqLCAyPiBh
ZmZlY3RlZEF0dHJpYnV0ZXM7CiAgICAgc3VidHJlZUNoaWxkV2lsbEJlUmVtb3ZlZCgmY2hpbGQs
IGFmZmVjdGVkQXR0cmlidXRlcyk7Ci0gICAgYXV0byB0YWtlbkNoaWxkID0gUmVuZGVyU1ZHQmxv
Y2s6OnRha2VDaGlsZChjaGlsZCk7CisgICAgYXV0byB0YWtlbkNoaWxkID0gUmVuZGVyU1ZHQmxv
Y2s6OnRha2VDaGlsZChidWlsZGVyLCBjaGlsZCk7CiAgICAgc3VidHJlZUNoaWxkV2FzUmVtb3Zl
ZChhZmZlY3RlZEF0dHJpYnV0ZXMpOwogICAgIHJldHVybiB0YWtlbkNoaWxkOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaAppbmRleCA1ZTFkZGRlNzAy
ZDUyOGEwMmNlMmU5NzkyZTc1MzJhYTdjYTFiNWIxLi4xMjcyOTBhZjkyZTFhYzdjZDZiYjk1MTQw
NzAwMDdkODlmZjBkODJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1RleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1RleHQuaApAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbWFwTG9jYWxU
b0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MsIGJvb2wqIHdhc0ZpeGVkKSBj
b25zdCBvdmVycmlkZTsKICAgICBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250
YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVu
ZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGFkZENoaWxkKFJlbmRl
clRyZWVCdWlsZGVyJiwgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gY2hpbGQsIFJlbmRlck9iamVj
dCogYmVmb3JlQ2hpbGQgPSBudWxscHRyKSBvdmVycmlkZTsKLSAgICBSZW5kZXJQdHI8UmVuZGVy
T2JqZWN0PiB0YWtlQ2hpbGQoUmVuZGVyT2JqZWN0Jikgb3ZlcnJpZGU7CisgICAgUmVuZGVyUHRy
PFJlbmRlck9iamVjdD4gdGFrZUNoaWxkKFJlbmRlclRyZWVCdWlsZGVyJiwgUmVuZGVyT2JqZWN0
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsKIAogICAg
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fbG9jYWxUcmFuc2Zvcm07IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwCmluZGV4IDE3
MmJlMDdmZjUxODA1ZjRjZjcxZTYzMTExNWRlZWJmMjNkN2EzZmYuLmJmNmFjMDJkZmVmZGYwOGVi
MTEyNWI1OGYyNWNhYzYwZDMyNGUxZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcApAQCAtMzU4LDcgKzM1OCw3
IEBAIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6OnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95Q2xl
YW5pbmdVcEFub255bW91c1dyYXBwZXJzKFJlCiAgICAgICAgIHRhYmxlQnVpbGRlcigpLmNvbGxh
cHNlQW5kRGVzdHJveUFub255bW91c1NpYmxpbmdSb3dzKGRvd25jYXN0PFJlbmRlclRhYmxlUm93
PihkZXN0cm95Um9vdCkpOwogCiAgICAgYXV0byYgZGVzdHJveVJvb3RQYXJlbnQgPSAqZGVzdHJv
eVJvb3QucGFyZW50KCk7Ci0gICAgZGVzdHJveVJvb3RQYXJlbnQucmVtb3ZlQW5kRGVzdHJveUNo
aWxkKGRlc3Ryb3lSb290KTsKKyAgICBkZXN0cm95Um9vdFBhcmVudC5yZW1vdmVBbmREZXN0cm95
Q2hpbGQoKnRoaXMsIGRlc3Ryb3lSb290KTsKICAgICBkZXN0cm95Um9vdFBhcmVudC5yZW1vdmVB
bm9ueW1vdXNXcmFwcGVyc0ZvcklubGluZXNJZk5lY2Vzc2FyeSgpOwogCiAgICAgLy8gQW5vbnlt
b3VzIHBhcmVudCBtaWdodCBoYXZlIGJlY29tZSBlbXB0eSwgdHJ5IHRvIGRlbGV0ZSBpdCB0b28u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJl
ZUJ1aWxkZXJGaXJzdExldHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZUJ1aWxkZXJGaXJzdExldHRlci5jcHAKaW5kZXggM2ZlYWJkNWViMGFlMDA1
MjA1ZTNhMTc3YTI4ZTY2NDhlNjFiODM1NS4uMTk5ZmIxNzg2NzBlMjNiZWI4OGI4YWEyMzcwOGU1
ZDBmOTlhMTAwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5n
L1JlbmRlclRyZWVCdWlsZGVyRmlyc3RMZXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckZpcnN0TGV0dGVyLmNwcApAQCAtMTc0
LDcgKzE3NCw3IEBAIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6OkZpcnN0TGV0dGVyOjp1cGRhdGVT
dHlsZShSZW5kZXJCbG9jayYgZmlyc3RMZXR0ZXJCbG9jaywKICAgICAgICAgd2hpbGUgKFJlbmRl
ck9iamVjdCogY2hpbGQgPSBmaXJzdExldHRlci0+Zmlyc3RDaGlsZCgpKSB7CiAgICAgICAgICAg
ICBpZiAoaXM8UmVuZGVyVGV4dD4oKmNoaWxkKSkKICAgICAgICAgICAgICAgICBkb3duY2FzdDxS
ZW5kZXJUZXh0PigqY2hpbGQpLnJlbW92ZUFuZERlc3Ryb3lUZXh0Qm94ZXMoKTsKLSAgICAgICAg
ICAgIGF1dG8gdG9Nb3ZlID0gZmlyc3RMZXR0ZXItPnRha2VDaGlsZCgqY2hpbGQpOworICAgICAg
ICAgICAgYXV0byB0b01vdmUgPSBmaXJzdExldHRlci0+dGFrZUNoaWxkKG1fYnVpbGRlciwgKmNo
aWxkKTsKICAgICAgICAgICAgIG1fYnVpbGRlci5pbnNlcnRDaGlsZCgqbmV3Rmlyc3RMZXR0ZXIs
IFdURk1vdmUodG9Nb3ZlKSk7CiAgICAgICAgIH0KIApAQCAtMTg1LDcgKzE4NSw3IEBAIHZvaWQg
UmVuZGVyVHJlZUJ1aWxkZXI6OkZpcnN0TGV0dGVyOjp1cGRhdGVTdHlsZShSZW5kZXJCbG9jayYg
Zmlyc3RMZXR0ZXJCbG9jaywKICAgICAgICAgICAgIHJlbWFpbmluZ1RleHQtPnNldEZpcnN0TGV0
dGVyKCpuZXdGaXJzdExldHRlcik7CiAgICAgICAgICAgICBuZXdGaXJzdExldHRlci0+c2V0Rmly
c3RMZXR0ZXJSZW1haW5pbmdUZXh0KCpyZW1haW5pbmdUZXh0KTsKICAgICAgICAgfQotICAgICAg
ICBmaXJzdExldHRlckNvbnRhaW5lci0+cmVtb3ZlQW5kRGVzdHJveUNoaWxkKCpmaXJzdExldHRl
cik7CisgICAgICAgIGZpcnN0TGV0dGVyQ29udGFpbmVyLT5yZW1vdmVBbmREZXN0cm95Q2hpbGQo
bV9idWlsZGVyLCAqZmlyc3RMZXR0ZXIpOwogICAgICAgICBtX2J1aWxkZXIuaW5zZXJ0Q2hpbGQo
KmZpcnN0TGV0dGVyQ29udGFpbmVyLCBXVEZNb3ZlKG5ld0ZpcnN0TGV0dGVyKSwgbmV4dFNpYmxp
bmcpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjQxLDcgKzI0MSw3IEBAIHZvaWQgUmVu
ZGVyVHJlZUJ1aWxkZXI6OkZpcnN0TGV0dGVyOjpjcmVhdGVSZW5kZXJlcnMoUmVuZGVyQmxvY2sm
IGZpcnN0TGV0dGVyQmxvCiAKICAgICAgICAgYXV0byogdGV4dE5vZGUgPSBjdXJyZW50VGV4dENo
aWxkLnRleHROb2RlKCk7CiAgICAgICAgIGF1dG8qIGJlZm9yZUNoaWxkID0gY3VycmVudFRleHRD
aGlsZC5uZXh0U2libGluZygpOwotICAgICAgICBmaXJzdExldHRlckNvbnRhaW5lci0+cmVtb3Zl
QW5kRGVzdHJveUNoaWxkKGN1cnJlbnRUZXh0Q2hpbGQpOworICAgICAgICBmaXJzdExldHRlckNv
bnRhaW5lci0+cmVtb3ZlQW5kRGVzdHJveUNoaWxkKG1fYnVpbGRlciwgY3VycmVudFRleHRDaGls
ZCk7CiAKICAgICAgICAgLy8gQ29uc3RydWN0IGEgdGV4dCBmcmFnbWVudCBmb3IgdGhlIHRleHQg
YWZ0ZXIgdGhlIGZpcnN0IGxldHRlci4KICAgICAgICAgLy8gVGhpcyB0ZXh0IGZyYWdtZW50IG1p
Z2h0IGJlIGVtcHR5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0
aW5nL1JlbmRlclRyZWVCdWlsZGVyTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
dXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJMaXN0LmNwcAppbmRleCA3ZGQyNDUyMWYxM2E3NTZi
NzJkOWU0YTQ3NjY5NTEyMTEzNDZiNmM0Li5iMDA4YzVhNmViNmJmNTBkMDYxZDRhNTYxNzRlYmYy
MDVjMzlhZjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcv
UmVuZGVyVHJlZUJ1aWxkZXJMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
dXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJMaXN0LmNwcApAQCAtMTE1LDcgKzExNSw3IEBAIHZv
aWQgUmVuZGVyVHJlZUJ1aWxkZXI6Okxpc3Q6OnVwZGF0ZUl0ZW1NYXJrZXIoUmVuZGVyTGlzdEl0
ZW0mIGxpc3RJdGVtUmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChjdXJyZW50
UGFyZW50KQotICAgICAgICBtX2J1aWxkZXIuaW5zZXJ0Q2hpbGQoKm5ld1BhcmVudCwgY3VycmVu
dFBhcmVudC0+dGFrZUNoaWxkKCptYXJrZXJSZW5kZXJlciksIGZpcnN0Tm9uTWFya2VyQ2hpbGQo
Km5ld1BhcmVudCkpOworICAgICAgICBtX2J1aWxkZXIuaW5zZXJ0Q2hpbGQoKm5ld1BhcmVudCwg
Y3VycmVudFBhcmVudC0+dGFrZUNoaWxkKG1fYnVpbGRlciwgKm1hcmtlclJlbmRlcmVyKSwgZmly
c3ROb25NYXJrZXJDaGlsZCgqbmV3UGFyZW50KSk7CiAgICAgZWxzZQogICAgICAgICBtX2J1aWxk
ZXIuaW5zZXJ0Q2hpbGQoKm5ld1BhcmVudCwgV1RGTW92ZShuZXdNYXJrZXJSZW5kZXJlciksIGZp
cnN0Tm9uTWFya2VyQ2hpbGQoKm5ld1BhcmVudCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNdWx0aUNvbHVtbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNdWx0
aUNvbHVtbi5jcHAKaW5kZXggNTJjMjQxNDlkMGNkYTU3OTU3MGViZmJiOGUwMmVmOWJkZGMwM2Zm
My4uZDIyMmY2ZTEzMmZkYjY3NmNiZGM4MzY4MzM0OTk3N2JhY2FiNmFjNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTXVsdGlD
b2x1bW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlQnVpbGRlck11bHRpQ29sdW1uLmNwcApAQCAtNzksNyArNzksNyBAQCB2b2lkIFJlbmRlclRy
ZWVCdWlsZGVyOjpNdWx0aUNvbHVtbjo6Y3JlYXRlRnJhZ21lbnRlZEZsb3coUmVuZGVyQmxvY2tG
bG93JiBmbG93KQogICAgICAgICAgICAgLy8gTW92ZSB0aGUgc3Bhbm5lciBiYWNrIHRvIGl0cyBv
cmlnaW5hbCBwb3NpdGlvbi4KICAgICAgICAgICAgIGF1dG8mIHNwYW5uZXJPcmlnaW5hbFBhcmVu
dCA9ICpwbGFjZWhvbGRlci0+cGFyZW50KCk7CiAgICAgICAgICAgICAvLyBEZXRhY2hpbmcgdGhl
IHNwYW5uZXIgdGFrZXMgY2FyZSBvZiByZW1vdmluZyB0aGUgcGxhY2Vob2xkZXIgKGFuZCBtZXJn
ZXMgdGhlIFJlbmRlck11bHRpQ29sdW1uU2V0cykuCi0gICAgICAgICAgICBhdXRvIHNwYW5uZXJU
b1JlSW5zZXJ0ID0gc3Bhbm5lci0+cGFyZW50KCktPnRha2VDaGlsZCgqc3Bhbm5lcik7CisgICAg
ICAgICAgICBhdXRvIHNwYW5uZXJUb1JlSW5zZXJ0ID0gc3Bhbm5lci0+cGFyZW50KCktPnRha2VD
aGlsZChtX2J1aWxkZXIsICpzcGFubmVyKTsKICAgICAgICAgICAgIG1fYnVpbGRlci5pbnNlcnRD
aGlsZChzcGFubmVyT3JpZ2luYWxQYXJlbnQsIFdURk1vdmUoc3Bhbm5lclRvUmVJbnNlcnQpKTsK
ICAgICAgICAgfQogICAgIH0KQEAgLTEyNyw3ICsxMjcsNyBAQCB2b2lkIFJlbmRlclRyZWVCdWls
ZGVyOjpNdWx0aUNvbHVtbjo6ZGVzdHJveUZyYWdtZW50ZWRGbG93KFJlbmRlckJsb2NrRmxvdyYg
ZmxvdwogICAgICAgICAgICAgc3Bhbm5lck9yaWdpbmFsUGFyZW50ID0gJmZsb3c7CiAgICAgICAg
IC8vIERldGFjaGluZyB0aGUgc3Bhbm5lciB0YWtlcyBjYXJlIG9mIHJlbW92aW5nIHRoZSBwbGFj
ZWhvbGRlciAoYW5kIG1lcmdlcyB0aGUgUmVuZGVyTXVsdGlDb2x1bW5TZXRzKS4KICAgICAgICAg
YXV0byogc3Bhbm5lciA9IHBsYWNlaG9sZGVyLT5zcGFubmVyKCk7Ci0gICAgICAgIHBhcmVudEFu
ZFNwYW5uZXJMaXN0LmFwcGVuZChzdGQ6Om1ha2VfcGFpcihzcGFubmVyT3JpZ2luYWxQYXJlbnQs
IHNwYW5uZXItPnBhcmVudCgpLT50YWtlQ2hpbGQoKnNwYW5uZXIpKSk7CisgICAgICAgIHBhcmVu
dEFuZFNwYW5uZXJMaXN0LmFwcGVuZChzdGQ6Om1ha2VfcGFpcihzcGFubmVyT3JpZ2luYWxQYXJl
bnQsIHNwYW5uZXItPnBhcmVudCgpLT50YWtlQ2hpbGQobV9idWlsZGVyLCAqc3Bhbm5lcikpKTsK
ICAgICB9CiAgICAgd2hpbGUgKGF1dG8qIGNvbHVtblNldCA9IG11bHRpQ29sdW1uRmxvdy5maXJz
dE11bHRpQ29sdW1uU2V0KCkpCiAgICAgICAgIGNvbHVtblNldC0+cmVtb3ZlRnJvbVBhcmVudEFu
ZERlc3Ryb3koKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGlu
Zy9SZW5kZXJUcmVlQnVpbGRlclJ1YnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3Vw
ZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyUnVieS5jcHAKaW5kZXggMmFiNzVjNWY3Y2Q5Nzg0Y2Uw
ZDg2NzM4ODhmZDFmNzI4MDNhYmYxMy4uZDU5OTY3YjY4OTJlZmE5YjNkODllNmQzZjc4NTliM2Fi
Mzk1ODI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1Jl
bmRlclRyZWVCdWlsZGVyUnVieS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3Vw
ZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyUnVieS5jcHAKQEAgLTIwOSw3ICsyMDksNyBAQCB2b2lk
IFJlbmRlclRyZWVCdWlsZGVyOjpSdWJ5OjppbnNlcnRDaGlsZChSZW5kZXJSdWJ5UnVuJiBwYXJl
bnQsIFJlbmRlclB0cjxSZW5kZQogICAgICAgICAgICAgLy8gaW4gb3JkZXIgdG8gYXZvaWQgYXV0
b21hdGljIHJlbW92YWwgb2YgdGhlIHJ1YnkgcnVuIGluIGNhc2UgdGhlcmUgaXMgbm8KICAgICAg
ICAgICAgIC8vIG90aGVyIGNoaWxkIGJlc2lkZXMgdGhlIG9sZCBydWJ5IHRleHQuCiAgICAgICAg
ICAgICBwYXJlbnQuYWRkQ2hpbGQobV9idWlsZGVyLCBXVEZNb3ZlKGNoaWxkKSwgYmVmb3JlQ2hp
bGQpOwotICAgICAgICAgICAgYXV0byB0YWtlbkJlZm9yZUNoaWxkID0gcGFyZW50LlJlbmRlckJs
b2NrRmxvdzo6dGFrZUNoaWxkKCpiZWZvcmVDaGlsZCk7CisgICAgICAgICAgICBhdXRvIHRha2Vu
QmVmb3JlQ2hpbGQgPSBwYXJlbnQuUmVuZGVyQmxvY2tGbG93Ojp0YWtlQ2hpbGQobV9idWlsZGVy
LCAqYmVmb3JlQ2hpbGQpOwogICAgICAgICAgICAgbV9idWlsZGVyLmluc2VydENoaWxkKCpuZXdS
dW4sIFdURk1vdmUodGFrZW5CZWZvcmVDaGlsZCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVu
ZGVyVHJlZUJ1aWxkZXJUYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZUJ1aWxkZXJUYWJsZS5jcHAKaW5kZXggNWQ4M2FjNDdhYjdlYWJhODgyMDkz
NzdmYjdjMjViOWExZmNmOWQxMy4uMDVmYmI1OGE1NmQ4Zjc5ODFmMjRhZWZhMWE4NmIyMjg1N2Yw
YWViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRl
clRyZWVCdWlsZGVyVGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRh
dGluZy9SZW5kZXJUcmVlQnVpbGRlclRhYmxlLmNwcApAQCAtMjM2LDcgKzIzNiw3IEBAIHZvaWQg
UmVuZGVyVHJlZUJ1aWxkZXI6OlRhYmxlOjpjb2xsYXBzZUFuZERlc3Ryb3lBbm9ueW1vdXNTaWJs
aW5nUm93cyhSZW5kZXJUYWJsCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogICAg
ICAgICBjdXJyZW50Um93LT5tb3ZlQWxsQ2hpbGRyZW5Ubyhyb3dUb0luc2VydEludG8sIFJlbmRl
ckJveE1vZGVsT2JqZWN0OjpOb3JtYWxpemVBZnRlckluc2VydGlvbjo6Tm8pOwotICAgICAgICBh
dXRvIHRvRGVzdHJveSA9IHNlY3Rpb24tPnRha2VDaGlsZCgqY3VycmVudFJvdyk7CisgICAgICAg
IGF1dG8gdG9EZXN0cm95ID0gc2VjdGlvbi0+dGFrZUNoaWxkKG1fYnVpbGRlciwgKmN1cnJlbnRS
b3cpOwogICAgICAgICBjdXJyZW50Um93ID0gY3VycmVudFJvdy0+bmV4dFJvdygpOwogICAgIH0K
ICAgICBpZiAocm93VG9JbnNlcnRJbnRvKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>