<?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>168474</bug_id>
          
          <creation_ts>2017-02-16 15:11:34 -0800</creation_ts>
          <short_desc>[WebRTC] libwebrtc socket addresses should not be passed as strings</short_desc>
          <delta_ts>2017-02-16 18:54:14 -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>WebKit2</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1277940</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-16 15:11:34 -0800</bug_when>
    <thetext>There is loss of information that might trigger bugs in libwebrtc network stack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277951</commentid>
    <comment_count>1</comment_count>
      <attachid>301840</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-16 15:25:35 -0800</bug_when>
    <thetext>Created attachment 301840
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277952</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-16 15:27:41 -0800</bug_when>
    <thetext>Attachment 301840 did not pass style-queue:


ERROR: Source/WebKit2/Shared/RTCNetwork.h:62:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 1 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277959</commentid>
    <comment_count>3</comment_count>
      <attachid>301840</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-02-16 15:35:02 -0800</bug_when>
    <thetext>Comment on attachment 301840
Patch

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

&gt; Source/WebKit2/WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:64
&gt; +    callOnMainThread([identifier = socket-&gt;identifier(), address, minPort, maxPort]() {

Let&apos;s make an isolatedCopy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278022</commentid>
    <comment_count>4</comment_count>
      <attachid>301859</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-16 16:57:14 -0800</bug_when>
    <thetext>Created attachment 301859
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278024</commentid>
    <comment_count>5</comment_count>
      <attachid>301859</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-16 16:58:13 -0800</bug_when>
    <thetext>Comment on attachment 301859
Patch for landing

Rejecting attachment 301859 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 301859, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WebKit2/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/3135895</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278046</commentid>
    <comment_count>6</comment_count>
      <attachid>301866</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-16 17:45:45 -0800</bug_when>
    <thetext>Created attachment 301866
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278071</commentid>
    <comment_count>7</comment_count>
      <attachid>301866</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-16 18:54:11 -0800</bug_when>
    <thetext>Comment on attachment 301866
Patch for landing

Clearing flags on attachment: 301866

Committed r212519: &lt;http://trac.webkit.org/changeset/212519&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278072</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-16 18:54:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301840</attachid>
            <date>2017-02-16 15:25:35 -0800</date>
            <delta_ts>2017-02-16 16:57:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168474-20170216152258.patch</filename>
            <type>text/plain</type>
            <size>26292</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyNDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjc5MDlhYjhhMTU3N2Y0
NGIzY2FjYjcyOTRlZWQ2NjFlN2QzODMxNC4uMDQzMDY4ZWI5ZGJhNmQ0NTA4YTZlM2U0OTBhYTRi
MTQ4NjcxY2Y0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE3LTAyLTE2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViUlRDXSBsaWJ3ZWJy
dGMgc29ja2V0IGFkZHJlc3NlcyBzaG91bGQgbm90IGJlIHBhc3NlZCBhcyBzdHJpbmdzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg0NzQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmluZyBhbGwg
c2VyYWxpemF0aW9uIG9mIHNvY2tldCBhZGRyZXNzZXMgYXMgc3RyaW5ncy4KKyAgICAgICAgSW5z
dGVhZCwgYSBkZWRpY2F0ZWQgc2VyaWFsaXphdGlvbiBpcyBwcm92aWRlZC4KKyAgICAgICAgVGhp
cyBhbGxvd3MgcHJvcGVyIGhhbmRsaW5nIG9mIHZhcmlvdXMgY2FzZXMgbGlrZSBhZGRyZXNzZXMg
d2l0aCBib3RoIGhvc3RuYW1lcyBhbmQgcmVzb2x2ZWQgSVBzLgorCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkxpYldlYlJUQ1NvY2tldENsaWVudDo6c2lnbmFsUmVhZFBhY2tldCk6CisgICAgICAgIChX
ZWJLaXQ6OkxpYldlYlJUQ1NvY2tldENsaWVudDo6c2lnbmFsU2VudFBhY2tldCk6CisgICAgICAg
IChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldENsaWVudDo6c2lnbmFsQWRkcmVzc1JlYWR5KToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVVRFBTb2NrZXQpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNlcnZlclRDUFNvY2tldCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29j
a2V0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVy
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Nv
Y2tldC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENTb2NrZXQ6OnNlbmRUbyk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBTaGFyZWQvUlRDTmV0d29yay5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3M6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ05ldHdv
cms6OlNvY2tldEFkZHJlc3M6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1JUQ05ldHdvcmsu
aDoKKyAgICAgICAgKFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzczo6U29ja2V0QWRk
cmVzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2Nr
ZXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6OnNpZ25hbEFkZHJlc3NS
ZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldDo6U2VuZFRvKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVNlcnZlclRj
cFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0
ZVVkcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNy
ZWF0ZUNsaWVudFRjcFNvY2tldCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9XZWJSVENTb2NrZXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTb2NrZXQ6OnNpZ25h
bEFkZHJlc3NSZWFkeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJS
VENTb2NrZXQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Nv
Y2tldC5tZXNzYWdlcy5pbjoKKwogMjAxNy0wMi0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dlYlJUQ11bTWFjXSBBY3RpdmF0ZSBsaWJ3ZWJydGMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENT
b2NrZXRDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL0xp
YldlYlJUQ1NvY2tldENsaWVudC5jcHAKaW5kZXggNWY3ZDcyMzk0NjU4MGI5YTE1ZThiYjY5ODI3
ODMyOTEwZmY0YzBkOS4uMmJjZjQ1ZGU4MzM1ZDY1MjRlZjE3YTJkMzE1MDNmOGEwMWQ3ODU5OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL0xpYldlYlJU
Q1NvY2tldENsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2Vi
cnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5jcHAKQEAgLTk4LDggKzk4LDcgQEAgdm9pZCBMaWJX
ZWJSVENTb2NrZXRDbGllbnQ6OnNpZ25hbFNlbnRQYWNrZXQocnRjOjpBc3luY1BhY2tldFNvY2tl
dCosIGNvbnN0IHJ0YzoKIHZvaWQgTGliV2ViUlRDU29ja2V0Q2xpZW50OjpzaWduYWxBZGRyZXNz
UmVhZHkocnRjOjpBc3luY1BhY2tldFNvY2tldCosIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYg
YWRkcmVzcykKIHsKICAgICBtX3J0Y1Byb3ZpZGVyLnNlbmRGcm9tTWFpblRocmVhZChbaWRlbnRp
ZmllciA9IG1faWRlbnRpZmllciwgYWRkcmVzc10oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
KSB7Ci0gICAgICAgIGF1dG8gYWRkcmVzc1N0cmluZyA9IGFkZHJlc3MuVG9TdHJpbmcoKTsKLSAg
ICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpXZWJSVENTb2NrZXQ6OlNpZ25hbEFkZHJl
c3NSZWFkeShTdHJpbmcoYWRkcmVzc1N0cmluZy5kYXRhKCksIGFkZHJlc3NTdHJpbmcubGVuZ3Ro
KCkpKSwgaWRlbnRpZmllcik7CisgICAgICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6V2Vi
UlRDU29ja2V0OjpTaWduYWxBZGRyZXNzUmVhZHkoUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhh
ZGRyZXNzKSksIGlkZW50aWZpZXIpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3Bw
CmluZGV4IDdjMmE4Yjg4YjA3ZDIyZTcwM2QwZjI4OWY2MGU5MmY5Y2EwMmQ4NjUuLmMwYTFjZTZl
YTAyYjg0ZTU3OWI2NzkwMzkyMGMyNTY0MmVlM2VjOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3Bw
CkBAIC02NywzOCArNjcsMjYgQEAgdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNsb3NlKCkKICAg
ICB9KTsKIH0KIAotdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVVEUFNvY2tldCh1aW50
NjRfdCBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQs
IHVpbnQxNl90IG1heFBvcnQpCit2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlVURQU29j
a2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3Mm
IGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpCiB7Ci0gICAgcnRj
OjpTb2NrZXRBZGRyZXNzIHNvY2tldEFkZHJlc3M7Ci0gICAgc29ja2V0QWRkcmVzcy5Gcm9tU3Ry
aW5nKGFkZHJlc3MudXRmOCgpLmRhdGEoKSk7Ci0KLSAgICBjYWxsT25SVENOZXR3b3JrVGhyZWFk
KFt0aGlzLCBpZGVudGlmaWVyLCBzb2NrZXRBZGRyZXNzLCBtaW5Qb3J0LCBtYXhQb3J0XSgpIHsK
LSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+IHNvY2tldCht
X3BhY2tldFNvY2tldEZhY3RvcnktPkNyZWF0ZVVkcFNvY2tldChzb2NrZXRBZGRyZXNzLCBtaW5Q
b3J0LCBtYXhQb3J0KSk7CisgICAgY2FsbE9uUlRDTmV0d29ya1RocmVhZChbdGhpcywgaWRlbnRp
ZmllciwgYWRkcmVzcywgbWluUG9ydCwgbWF4UG9ydF0oKSB7CisgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiBzb2NrZXQobV9wYWNrZXRTb2NrZXRGYWN0b3J5
LT5DcmVhdGVVZHBTb2NrZXQoYWRkcmVzcy52YWx1ZSwgbWluUG9ydCwgbWF4UG9ydCkpOwogICAg
ICAgICBhZGRTb2NrZXQoaWRlbnRpZmllciwgc3RkOjptYWtlX3VuaXF1ZTxMaWJXZWJSVENTb2Nr
ZXRDbGllbnQ+KGlkZW50aWZpZXIsICp0aGlzLCBXVEZNb3ZlKHNvY2tldCksIExpYldlYlJUQ1Nv
Y2tldENsaWVudDo6VHlwZTo6VURQKSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgTmV0d29ya1JUQ1By
b3ZpZGVyOjpjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQg
b3B0aW9ucykKK3ZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQo
dWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgYWRk
cmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCiB7
Ci0gICAgcnRjOjpTb2NrZXRBZGRyZXNzIHNvY2tldEFkZHJlc3M7Ci0gICAgc29ja2V0QWRkcmVz
cy5Gcm9tU3RyaW5nKGFkZHJlc3MudXRmOCgpLmRhdGEoKSk7Ci0KLSAgICBjYWxsT25SVENOZXR3
b3JrVGhyZWFkKFt0aGlzLCBpZGVudGlmaWVyLCBzb2NrZXRBZGRyZXNzLCBtaW5Qb3J0LCBtYXhQ
b3J0LCBvcHRpb25zXSgpIHsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNr
ZXRTb2NrZXQ+IHNvY2tldChtX3BhY2tldFNvY2tldEZhY3RvcnktPkNyZWF0ZVNlcnZlclRjcFNv
Y2tldChzb2NrZXRBZGRyZXNzLCBtaW5Qb3J0LCBtYXhQb3J0LCBvcHRpb25zKSk7CisgICAgY2Fs
bE9uUlRDTmV0d29ya1RocmVhZChbdGhpcywgaWRlbnRpZmllciwgYWRkcmVzcywgbWluUG9ydCwg
bWF4UG9ydCwgb3B0aW9uc10oKSB7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5j
UGFja2V0U29ja2V0PiBzb2NrZXQobV9wYWNrZXRTb2NrZXRGYWN0b3J5LT5DcmVhdGVTZXJ2ZXJU
Y3BTb2NrZXQoYWRkcmVzcy52YWx1ZSwgbWluUG9ydCwgbWF4UG9ydCwgb3B0aW9ucykpOwogICAg
ICAgICBhZGRTb2NrZXQoaWRlbnRpZmllciwgc3RkOjptYWtlX3VuaXF1ZTxMaWJXZWJSVENTb2Nr
ZXRDbGllbnQ+KGlkZW50aWZpZXIsICp0aGlzLCBXVEZNb3ZlKHNvY2tldCksIExpYldlYlJUQ1Nv
Y2tldENsaWVudDo6VHlwZTo6U2VydmVyVENQKSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgTmV0d29y
a1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBsb2NhbEFkZHJlc3MsIGNvbnN0IFN0cmluZyYgcmVtb3RlQWRkcmVzcywg
aW50IG9wdGlvbnMpCit2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29j
a2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3Mm
IGxvY2FsQWRkcmVzcywgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRk
cmVzcywgaW50IG9wdGlvbnMpCiB7Ci0gICAgcnRjOjpTb2NrZXRBZGRyZXNzIHNvY2tldExvY2Fs
QWRkcmVzczsKLSAgICBzb2NrZXRMb2NhbEFkZHJlc3MuRnJvbVN0cmluZyhsb2NhbEFkZHJlc3Mu
dXRmOCgpLmRhdGEoKSk7Ci0KLSAgICBydGM6OlNvY2tldEFkZHJlc3Mgc29ja2V0UmVtb3RlQWRk
cmVzczsKLSAgICBzb2NrZXRSZW1vdGVBZGRyZXNzLkZyb21TdHJpbmcocmVtb3RlQWRkcmVzcy51
dGY4KCkuZGF0YSgpKTsKLQotICAgIGNhbGxPblJUQ05ldHdvcmtUaHJlYWQoW3RoaXMsIGlkZW50
aWZpZXIsIHNvY2tldExvY2FsQWRkcmVzcywgc29ja2V0UmVtb3RlQWRkcmVzcywgb3B0aW9uc10o
KSB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiBzb2Nr
ZXQobV9wYWNrZXRTb2NrZXRGYWN0b3J5LT5DcmVhdGVDbGllbnRUY3BTb2NrZXQoc29ja2V0TG9j
YWxBZGRyZXNzLCBzb2NrZXRSZW1vdGVBZGRyZXNzLCB7IH0sIHsgfSwgb3B0aW9ucykpOworICAg
IGNhbGxPblJUQ05ldHdvcmtUaHJlYWQoW3RoaXMsIGlkZW50aWZpZXIsIGxvY2FsQWRkcmVzcywg
cmVtb3RlQWRkcmVzcywgb3B0aW9uc10oKSB7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6
OkFzeW5jUGFja2V0U29ja2V0PiBzb2NrZXQobV9wYWNrZXRTb2NrZXRGYWN0b3J5LT5DcmVhdGVD
bGllbnRUY3BTb2NrZXQobG9jYWxBZGRyZXNzLnZhbHVlLCByZW1vdGVBZGRyZXNzLnZhbHVlLCB7
IH0sIHsgfSwgb3B0aW9ucykpOwogICAgICAgICBhZGRTb2NrZXQoaWRlbnRpZmllciwgc3RkOjpt
YWtlX3VuaXF1ZTxMaWJXZWJSVENTb2NrZXRDbGllbnQ+KGlkZW50aWZpZXIsICp0aGlzLCBXVEZN
b3ZlKHNvY2tldCksIExpYldlYlJUQ1NvY2tldENsaWVudDo6VHlwZTo6Q2xpZW50VENQKSk7CiAg
ICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93
ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKaW5kZXggNzAwYzM4ZmI0Nzc2NDg5YWY4YzVhNzRi
OGY0N2EzN2I1ODAxYzZkOC4uNmE3MjE4MmJlMmE5NzI5YTI4M2MwZjFiYTBlNjk5NWVhOTlkMGQ2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiTGli
V2ViUlRDU29ja2V0Q2xpZW50LmgiCiAjaW5jbHVkZSAiTmV0d29ya1JUQ01vbml0b3IuaCIKKyNp
bmNsdWRlICJSVENOZXR3b3JrLmgiCiAjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGSG9zdC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDTWFjcm9zLmg+CiAjaW5jbHVkZSA8d2VicnRjL2Jhc2Uv
c2lnc2xvdC5oPgpAQCAtNjgsOSArNjksOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IE5ldHdvcmtSVENQcm92aWRlcihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOwog
Ci0gICAgdm9pZCBjcmVhdGVVRFBTb2NrZXQodWludDY0X3QsIGNvbnN0IFN0cmluZyYsIHVpbnQx
Nl90LCB1aW50MTZfdCk7Ci0gICAgdm9pZCBjcmVhdGVDbGllbnRUQ1BTb2NrZXQodWludDY0X3Qs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGludCk7Ci0gICAgdm9pZCBjcmVhdGVTZXJ2
ZXJUQ1BTb2NrZXQodWludDY0X3QsIGNvbnN0IFN0cmluZyYsIHVpbnQxNl90IG1pblBvcnQsIHVp
bnQxNl90IG1heFBvcnQsIGludCk7CisgICAgdm9pZCBjcmVhdGVVRFBTb2NrZXQodWludDY0X3Qs
IGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCwgdWludDE2X3QpOwor
ICAgIHZvaWQgY3JlYXRlQ2xpZW50VENQU29ja2V0KHVpbnQ2NF90LCBjb25zdCBSVENOZXR3b3Jr
OjpTb2NrZXRBZGRyZXNzJiwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIGludCk7
CisgICAgdm9pZCBjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQodWludDY0X3QsIGNvbnN0IFJUQ05ldHdv
cms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBp
bnQpOwogICAgIHZvaWQgY3JlYXRlUmVzb2x2ZXIodWludDY0X3QsIGNvbnN0IFN0cmluZyYpOwog
ICAgIHZvaWQgc3RvcFJlc29sdmVyKHVpbnQ2NF90KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlk
ZXIubWVzc2FnZXMuaW4KaW5kZXggMGY2NmNhOTg4YzZhZTFkMmJjMmQyMmUwMzMyMzhhNmYyMzc5
ZTFlZC4uOTQwOTUyMTQ0ZTAyODczYmM5MjRiYTZhMzliYmZjOTJjOGQ2ZjRlYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRl
ci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMv
TmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCkBAIC0yMyw5ICsyMyw5IEBACiAjaWYgVVNF
KExJQldFQlJUQykKIAogbWVzc2FnZXMgLT4gTmV0d29ya1JUQ1Byb3ZpZGVyIHsKLSAgICBDcmVh
dGVVRFBTb2NrZXQoaW50IGlkZW50aWZpZXIsIFN0cmluZyBsb2NhbEFkZHJlc3MsIHVpbnQxNl90
IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpCi0gICAgQ3JlYXRlU2VydmVyVENQU29ja2V0KGlu
dCBpZGVudGlmaWVyLCBTdHJpbmcgbG9jYWxBZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50
MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKLSAgICBDcmVhdGVDbGllbnRUQ1BTb2NrZXQoaW50
IGlkZW50aWZpZXIsIFN0cmluZyBsb2NhbEFkZHJlc3MsIFN0cmluZyByZW1vdGVBZGRyZXNzLCBp
bnQgb3B0aW9ucykKKyAgICBDcmVhdGVVRFBTb2NrZXQoaW50IGlkZW50aWZpZXIsIFdlYktpdDo6
UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQs
IHVpbnQxNl90IG1heFBvcnQpCisgICAgQ3JlYXRlU2VydmVyVENQU29ja2V0KGludCBpZGVudGlm
aWVyLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCB1aW50
MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKKyAgICBDcmVhdGVD
bGllbnRUQ1BTb2NrZXQoaW50IGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0
QWRkcmVzcyBsb2NhbEFkZHJlc3MsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBy
ZW1vdGVBZGRyZXNzLCBpbnQgb3B0aW9ucykKICAgICBDcmVhdGVSZXNvbHZlcih1aW50NjRfdCBp
ZGVudGlmaWVyLCBTdHJpbmcgYWRkcmVzcykKICAgICBTdG9wUmVzb2x2ZXIodWludDY0X3QgaWRl
bnRpZmllcikKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmNwcAppbmRleCBlYzA5ZTMwYmMzZDI2ZDQ4MjhiMWVh
ODhhMWJkMjg0ZTAzMzkyYzg2Li5mY2QxMjQ5OGY2N2FmNDY5ZDc1OTIwODI3M2VlYjg3ZDFjODM1
ZjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya1JUQ1NvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2Vi
cnRjL05ldHdvcmtSVENTb2NrZXQuY3BwCkBAIC00MiwxMiArNDIsMTAgQEAgTmV0d29ya1JUQ1Nv
Y2tldDo6TmV0d29ya1JUQ1NvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJv
dmlkZXImIHJ0Y1AKIHsKIH0KIAotdm9pZCBOZXR3b3JrUlRDU29ja2V0OjpzZW5kVG8oY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBjb25zdCBSVENOZXR3b3JrOjpJUEFkZHJlc3MmIGFk
ZHJlc3MsIHVpbnQxNl90IHBvcnQsIGludCBwYWNrZXRJRCwgaW50IHJ0cFNlbmR0aW1lRXh0ZW5z
aW9uSUQsIFN0cmluZyBzcnRwQXV0aCwgaW50NjRfdCBzcnRwUGFja2V0SW5kZXgsIGludCBkc2Nw
KQordm9pZCBOZXR3b3JrUlRDU29ja2V0OjpzZW5kVG8oY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JiBkYXRhLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBzb2NrZXRBZGRyZXNzLCBp
bnQgcGFja2V0SUQsIGludCBydHBTZW5kdGltZUV4dGVuc2lvbklELCBTdHJpbmcgc3J0cEF1dGgs
IGludDY0X3Qgc3J0cFBhY2tldEluZGV4LCBpbnQgZHNjcCkKIHsKICAgICBhdXRvIGJ1ZmZlciA9
IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7
CiAKLSAgICBydGM6OlNvY2tldEFkZHJlc3Mgc29ja2V0QWRkcmVzcyhhZGRyZXNzLnZhbHVlLCBw
b3J0KTsKLQogICAgIHJ0Yzo6UGFja2V0T3B0aW9ucyBvcHRpb25zOwogICAgIG9wdGlvbnMucGFj
a2V0X2lkID0gcGFja2V0SUQ7CiAgICAgb3B0aW9ucy5wYWNrZXRfdGltZV9wYXJhbXMucnRwX3Nl
bmR0aW1lX2V4dGVuc2lvbl9pZCA9IHJ0cFNlbmR0aW1lRXh0ZW5zaW9uSUQ7CkBAIC02MCw3ICs1
OCw3IEBAIHZvaWQgTmV0d29ya1JUQ1NvY2tldDo6c2VuZFRvKGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYgZGF0YSwgY29uc3QgUlRDTmV0d29yazo6CiAgICAgICAgIG9wdGlvbnMucGFja2V0X3Rp
bWVfcGFyYW1zLnNydHBfYXV0aF90YWdfbGVuID0gLTE7CiAgICAgCiAgICAgbV9ydGNQcm92aWRl
ci5jYWxsU29ja2V0KG1faWRlbnRpZmllciwgW2J1ZmZlciA9IFdURk1vdmUoYnVmZmVyKSwgc29j
a2V0QWRkcmVzcywgb3B0aW9uc10oTGliV2ViUlRDU29ja2V0Q2xpZW50JiBjbGllbnQpIHsKLSAg
ICAgICAgY2xpZW50LnNlbmRUbyhidWZmZXIuZ2V0KCksIHNvY2tldEFkZHJlc3MsIG9wdGlvbnMp
OworICAgICAgICBjbGllbnQuc2VuZFRvKGJ1ZmZlci5nZXQoKSwgc29ja2V0QWRkcmVzcy52YWx1
ZSwgb3B0aW9ucyk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmggYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5oCmluZGV4IDQ0MGY3MGY0ZWE4
YTA1NjcyMTg2NmExNDVhNDE3MTI0ZTM0NjE0ZjcuLmVhOTk1NDBlNjk3NzMzNDIxZTU1YmQ1OTFk
YThhOTc3NzM5YzNlMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuaApAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6
CiAgICAgTmV0d29ya1JUQ1NvY2tldCh1aW50NjRfdCwgTmV0d29ya1JUQ1Byb3ZpZGVyJik7CiAg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KTsKIHByaXZhdGU6Ci0gICAgdm9pZCBzZW5kVG8oY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwg
Y29uc3QgUlRDTmV0d29yazo6SVBBZGRyZXNzJiwgdWludDE2X3QgcG9ydCwgaW50IHBhY2tldElE
LCBpbnQgcnRwU2VuZHRpbWVFeHRlbnNpb25JRCwgU3RyaW5nIHNydHBBdXRoLCBpbnQ2NF90IHNy
dHBQYWNrZXRJbmRleCwgaW50IGRzY3ApOworICAgIHZvaWQgc2VuZFRvKGNvbnN0IElQQzo6RGF0
YVJlZmVyZW5jZSYsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBpbnQgcGFja2V0
SUQsIGludCBydHBTZW5kdGltZUV4dGVuc2lvbklELCBTdHJpbmcgc3J0cEF1dGgsIGludDY0X3Qg
c3J0cFBhY2tldEluZGV4LCBpbnQgZHNjcCk7CiAgICAgdm9pZCBjbG9zZSgpOwogICAgIHZvaWQg
c2V0T3B0aW9uKGludCBvcHRpb24sIGludCB2YWx1ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0Lm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQu
bWVzc2FnZXMuaW4KaW5kZXggYTJlYTNlMWJlNzY3ZGNiNDFlNDcyYjg1Y2E3N2NlNGY1NzNlYjRk
YS4uNzEzZDQyM2U4NDYyZGVmNzM1YmEwZTA4YzU2ZDRiMzk4OGRjZDI4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENTb2NrZXQubWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAKICNpZiBVU0UoTElCV0VC
UlRDKQogCiBtZXNzYWdlcyAtPiBOZXR3b3JrUlRDU29ja2V0IHsKLSAgICB2b2lkIFNlbmRUbyhJ
UEM6OkRhdGFSZWZlcmVuY2UgZGF0YSwgV2ViS2l0OjpSVENOZXR3b3JrOjpJUEFkZHJlc3MgYWRk
cmVzcywgdWludDE2X3QgcG9ydCwgaW50IHBhY2tldElELCBpbnQgcnRwU2VuZHRpbWVFeHRlbnNp
b25JRCwgU3RyaW5nIHNydHBBdXRoLCBpbnQ2NF90IHNydHBQYWNrZXRJbmRleCwgaW50IGRzY3Ap
CisgICAgdm9pZCBTZW5kVG8oSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEsIFdlYktpdDo6UlRDTmV0
d29yazo6U29ja2V0QWRkcmVzcyBhZGRyZXNzLCBpbnQgcGFja2V0SUQsIGludCBydHBTZW5kdGlt
ZUV4dGVuc2lvbklELCBTdHJpbmcgc3J0cEF1dGgsIGludDY0X3Qgc3J0cFBhY2tldEluZGV4LCBp
bnQgZHNjcCkKICAgICB2b2lkIENsb3NlKCkKICAgICB2b2lkIFNldE9wdGlvbihpbnQgb3B0aW9u
LCBpbnQgdmFsdWUpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUlRDTmV0
d29yay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUlRDTmV0d29yay5jcHAKaW5kZXggYjEz
ZWJjOWMwN2JkYTA2ZDljYjU4Y2M5YTdkMTBkOGIzNmY1MDJkZC4uYTExMjQyM2I3MzUyOWE4ODE0
MTM5NWEyMTdlMjRlZmM3ZGVjNWJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1JUQ05ldHdvcmsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9SVENOZXR3b3JrLmNw
cApAQCAtOTIsNiArOTIsNTIgQEAgdm9pZCBSVENOZXR3b3JrOjpJUEFkZHJlc3M6OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBJUEM6OkRhdGFSZWZl
cmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oJmFkZHJlc3MpLCBzaXplb2Yo
YWRkcmVzcykpOwogfQogCitib29sIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3M6OmRlY29kZShJ
UEM6OkRlY29kZXImIGRlY29kZXIsIFNvY2tldEFkZHJlc3MmIHJlc3VsdCkKK3sKKyAgICB1aW50
MTZfdCBwb3J0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9ydCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBpbnQgc2NvcGVJZDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNjb3Bl
SWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmVzdWx0LnZhbHVlLlNldFBvcnQocG9y
dCk7CisgICAgcmVzdWx0LnZhbHVlLlNldFNjb3BlSUQoc2NvcGVJZCk7CisKKyAgICBJUEM6OkRh
dGFSZWZlcmVuY2UgaG9zdG5hbWU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShob3N0bmFtZSkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXN1bHQudmFsdWUuU2V0SVAoc3RkOjpzdHJp
bmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oaG9zdG5hbWUuZGF0YSgpKSwgaG9zdG5h
bWUuc2l6ZSgpKSk7CisKKyAgICBib29sIGlzVW5yZXNvbHZlZDsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGlzVW5yZXNvbHZlZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoaXNV
bnJlc29sdmVkKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIFJUQ05ldHdvcms6OklQQWRk
cmVzcyBpcEFkZHJlc3M7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpcEFkZHJlc3MpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgcmVzdWx0LnZhbHVlLlNldFJlc29sdmVkSVAoaXBBZGRy
ZXNzLnZhbHVlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBSVENOZXR3b3JrOjpTb2Nr
ZXRBZGRyZXNzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVu
Y29kZXIgPDwgdmFsdWUucG9ydCgpOworICAgIGVuY29kZXIgPDwgdmFsdWUuc2NvcGVfaWQoKTsK
KworICAgIGF1dG8gaG9zdG5hbWUgPSB2YWx1ZS5ob3N0bmFtZSgpOworICAgIGVuY29kZXIgPDwg
SVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGhvc3Ru
YW1lLmRhdGEoKSksIGhvc3RuYW1lLmxlbmd0aCgpKTsKKworICAgIGVuY29kZXIgPDwgdmFsdWUu
SXNVbnJlc29sdmVkSVAoKTsKKyAgICBpZiAodmFsdWUuSXNVbnJlc29sdmVkSVAoKSkgeworICAg
ICAgICBlbmNvZGVyIDw8IHRydWU7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZW5jb2Rl
ciA8PCBmYWxzZTsKKyAgICBlbmNvZGVyIDw8IFJUQ05ldHdvcms6OklQQWRkcmVzcyh2YWx1ZS5p
cGFkZHIoKSk7Cit9CisKIGJvb2wgUlRDTmV0d29yazo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVj
b2RlciwgUlRDTmV0d29yayYgcmVzdWx0KQogewogICAgIElQQzo6RGF0YVJlZmVyZW5jZSBuYW1l
LCBkZXNjcmlwdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9SVENOZXR3
b3JrLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUlRDTmV0d29yay5oCmluZGV4IDkxMGZiZmMx
OTM4MmI5ODU3NzAxYTZkNDNkZTQ2NzFlMjMzZjExMzIuLjljZTMyMzQzMGIwZjFkNDRlMmJlZGYx
MDBmODA0MDhmMGYzOTY0ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9SVENO
ZXR3b3JrLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1JUQ05ldHdvcmsuaApAQCAtNTcs
NiArNTcsMTYgQEAgc3RydWN0IFJUQ05ldHdvcmsgewogICAgICAgICBydGM6OklQQWRkcmVzcyB2
YWx1ZTsKICAgICB9OwogCisgICAgc3RydWN0IFNvY2tldEFkZHJlc3MgeworICAgICAgICBTb2Nr
ZXRBZGRyZXNzKCkgPSBkZWZhdWx0OworICAgICAgICBleHBsaWNpdCBTb2NrZXRBZGRyZXNzKGNv
bnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcyk6IHZhbHVlKGFkZHJlc3MpIHsgfQorCisg
ICAgICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgICAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgU29ja2V0QWRkcmVzcyYpOworCisgICAgICAgIHJ0
Yzo6U29ja2V0QWRkcmVzcyB2YWx1ZTsKKyAgICB9OworCiAgICAgc3RkOjpzdHJpbmcgbmFtZTsK
ICAgICBzdGQ6OnN0cmluZyBkZXNjcmlwdGlvbjsKICAgICBJUEFkZHJlc3MgcHJlZml4OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJS
VENTb2NrZXQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9M
aWJXZWJSVENTb2NrZXQuY3BwCmluZGV4IDNkMjgyMWQ3ZGFmNDgxZDZiNTQyODhlMjI3MDhjNGEz
NTA4OGYyMDguLjIwMjc3ZDU3NzkxMzdkYzZkMzU0NzM0ZmEyOTBhY2VmZGY4ZDZjZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRD
U29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ1NvY2tldC5jcHAKQEAgLTcxLDkgKzcxLDkgQEAgcnRjOjpTb2NrZXRBZGRyZXNz
IExpYldlYlJUQ1NvY2tldDo6R2V0UmVtb3RlQWRkcmVzcygpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cmVtb3RlQWRkcmVzczsKIH0KIAotdm9pZCBMaWJXZWJSVENTb2NrZXQ6OnNpZ25hbEFkZHJlc3NS
ZWFkeShjb25zdCBTdHJpbmcmIGFkZHJlc3MpCit2b2lkIExpYldlYlJUQ1NvY2tldDo6c2lnbmFs
QWRkcmVzc1JlYWR5KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcykKIHsKLSAgICBt
X2xvY2FsQWRkcmVzcy5Gcm9tU3RyaW5nKGFkZHJlc3MudXRmOCgpLmRhdGEoKSk7CisgICAgbV9s
b2NhbEFkZHJlc3MgPSBhZGRyZXNzOwogICAgIG1fc3RhdGUgPSAobV90eXBlID09IFR5cGU6OkNs
aWVudFRDUCkgPyBTVEFURV9DT05ORUNURUQgOiBTVEFURV9CT1VORDsKICAgICBTaWduYWxBZGRy
ZXNzUmVhZHkodGhpcywgbV9sb2NhbEFkZHJlc3MpOwogfQpAQCAtMTM2LDcgKzEzNiw3IEBAIGlu
dCBMaWJXZWJSVENTb2NrZXQ6OlNlbmRUbyhjb25zdCB2b2lkICp2YWx1ZSwgc2l6ZV90IHNpemUs
IGNvbnN0IHJ0Yzo6U29ja2V0QWRkCiAgICAgc2VuZE9uTWFpblRocmVhZChbaWRlbnRpZmllciwg
YnVmZmVyID0gV1RGTW92ZShidWZmZXIpLCBhZGRyZXNzLCBvcHRpb25zXShJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24pIHsKICAgICAgICAgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEocmVpbnRl
cnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oYnVmZmVyLT5kYXRhKCkpLCBidWZmZXItPnNpemUo
KSk7CiAgICAgICAgIFN0cmluZyBzcnRwQXV0aEtleSA9IGF1dGhLZXkob3B0aW9ucyk7Ci0gICAg
ICAgIE1lc3NhZ2VzOjpOZXR3b3JrUlRDU29ja2V0OjpTZW5kVG8gbWVzc2FnZShkYXRhLCBSVENO
ZXR3b3JrOjpJUEFkZHJlc3MoYWRkcmVzcy5pcGFkZHIoKSksIGFkZHJlc3MucG9ydCgpLCBvcHRp
b25zLnBhY2tldF9pZCwgb3B0aW9ucy5wYWNrZXRfdGltZV9wYXJhbXMucnRwX3NlbmR0aW1lX2V4
dGVuc2lvbl9pZCwgc3J0cEF1dGhLZXksIG9wdGlvbnMucGFja2V0X3RpbWVfcGFyYW1zLnNydHBf
cGFja2V0X2luZGV4LCBvcHRpb25zLmRzY3ApOworICAgICAgICBNZXNzYWdlczo6TmV0d29ya1JU
Q1NvY2tldDo6U2VuZFRvIG1lc3NhZ2UoZGF0YSwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhh
ZGRyZXNzKSwgb3B0aW9ucy5wYWNrZXRfaWQsIG9wdGlvbnMucGFja2V0X3RpbWVfcGFyYW1zLnJ0
cF9zZW5kdGltZV9leHRlbnNpb25faWQsIHNydHBBdXRoS2V5LCBvcHRpb25zLnBhY2tldF90aW1l
X3BhcmFtcy5zcnRwX3BhY2tldF9pbmRleCwgb3B0aW9ucy5kc2NwKTsKICAgICAgICAgY29ubmVj
dGlvbi5zZW5kKFdURk1vdmUobWVzc2FnZSksIGlkZW50aWZpZXIpOwogICAgIH0pOwogICAgIHJl
dHVybiBzaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmgKaW5kZXggNzE1NzQ4YjRlZDkwNjNmNWU4ODQx
NDJlNjRhYmYyYmU0MWJlNjdiZi4uOTU3NDM3ZjhkYTI3YjBkODc4MzIwZTYzNDg5Y2IwNjRmZGZm
ZWQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oCkBAIC02Niw3ICs2Niw3IEBAIHByaXZhdGU6CiAg
ICAgZnJpZW5kIGNsYXNzIFdlYlJUQ1NvY2tldDsKICAgICB2b2lkIHNpZ25hbFJlYWRQYWNrZXQo
Y29uc3QgV2ViQ29yZTo6U2hhcmVkQnVmZmVyJiwgcnRjOjpTb2NrZXRBZGRyZXNzJiYsIGludDY0
X3QpOwogICAgIHZvaWQgc2lnbmFsU2VudFBhY2tldChpbnQsIGludDY0X3QpOwotICAgIHZvaWQg
c2lnbmFsQWRkcmVzc1JlYWR5KGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgc2lnbmFsQWRkcmVz
c1JlYWR5KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYpOwogICAgIHZvaWQgc2lnbmFsQ29ubmVj
dCgpOwogICAgIHZvaWQgc2lnbmFsQ2xvc2UoaW50KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29j
a2V0RmFjdG9yeS5jcHAKaW5kZXggMDFiNTRiNjk1NTE2M2ZhYjVkNTEwNmJiYzUzMTNmZTZiMDcz
ZmJkNC4uMmY4N2M3MDEzYjM4MmQ0OGYyMGRjZTc1NjcyYjVmOWRkNjFhZjVlNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCkBAIC00MCwxNiArNDAsMTMgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiB1aW50NjRfdCBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpzX3VuaXF1ZVNv
Y2tldElkZW50aWZpZXIgPSAwOwogdWludDY0X3QgTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6c191
bmlxdWVSZXNvbHZlcklkZW50aWZpZXIgPSAwOwogCi1ydGM6OkFzeW5jUGFja2V0U29ja2V0KiBM
aWJXZWJSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3QgcnRjOjpT
b2NrZXRBZGRyZXNzJiBzb2NrZXRBZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBt
YXhQb3J0LCBpbnQgb3B0aW9ucykKK3J0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1Nv
Y2tldEZhY3Rvcnk6OkNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJl
c3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRp
b25zKQogewotICAgIGF1dG8gc29ja2V0ID0gc3RkOjptYWtlX3VuaXF1ZTxMaWJXZWJSVENTb2Nr
ZXQ+KCp0aGlzLCArK3NfdW5pcXVlU29ja2V0SWRlbnRpZmllciwgTGliV2ViUlRDU29ja2V0OjpU
eXBlOjpTZXJ2ZXJUQ1AsIHNvY2tldEFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsKKyAg
ICBhdXRvIHNvY2tldCA9IHN0ZDo6bWFrZV91bmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywg
KytzX3VuaXF1ZVNvY2tldElkZW50aWZpZXIsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6U2VydmVy
VENQLCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJlc3MoKSk7CiAgICAgbV9zb2NrZXRzLnNldChz
b2NrZXQtPmlkZW50aWZpZXIoKSwgc29ja2V0LmdldCgpKTsKIAotICAgIGF1dG8gaWRlbnRpZmll
ciA9IHNvY2tldC0+aWRlbnRpZmllcigpOwotICAgIGF1dG8gYWRkcmVzcyA9IHNvY2tldC0+bG9j
YWxBZGRyZXNzKCkuVG9TdHJpbmcoKTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVy
LCBhZGRyZXNzLCBtaW5Qb3J0LCBtYXhQb3J0LCBvcHRpb25zXSgpIHsKLSAgICAgICAgU3RyaW5n
IGFkZHJlc3NTdHJpbmcgPSBTdHJpbmcoYWRkcmVzcy5kYXRhKCksIGFkZHJlc3MubGVuZ3RoKCkp
OwotICAgICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRl
U2VydmVyVENQU29ja2V0KGlkZW50aWZpZXIsIGFkZHJlc3NTdHJpbmcsIG1pblBvcnQsIG1heFBv
cnQsIG9wdGlvbnMpLCAwKSkgeworICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBz
b2NrZXQtPmlkZW50aWZpZXIoKSwgYWRkcmVzcywgbWluUG9ydCwgbWF4UG9ydCwgb3B0aW9uc10o
KSB7CisgICAgICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rp
b24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVh
dGVTZXJ2ZXJUQ1BTb2NrZXQoaWRlbnRpZmllciwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhh
ZGRyZXNzKSwgbWluUG9ydCwgbWF4UG9ydCwgb3B0aW9ucyksIDApKSB7CiAgICAgICAgICAgICAv
LyBGSVhNRTogU2V0IGVycm9yIGJhY2sgdG8gc29ja2V0CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KQEAgLTU5LDE2ICs1NiwxMyBAQCBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJX
ZWJSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3QgcnRjOgogICAg
IHJldHVybiBzb2NrZXQucmVsZWFzZSgpOwogfQogCi1ydGM6OkFzeW5jUGFja2V0U29ja2V0KiBM
aWJXZWJSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVVZHBTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRB
ZGRyZXNzJiBzb2NrZXRBZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0
KQorcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRl
VWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWlu
UG9ydCwgdWludDE2X3QgbWF4UG9ydCkKIHsKLSAgICBhdXRvIHNvY2tldCA9IHN0ZDo6bWFrZV91
bmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgKytzX3VuaXF1ZVNvY2tldElkZW50aWZpZXIs
IExpYldlYlJUQ1NvY2tldDo6VHlwZTo6VURQLCBzb2NrZXRBZGRyZXNzLCBydGM6OlNvY2tldEFk
ZHJlc3MoKSk7CisgICAgYXV0byBzb2NrZXQgPSBzdGQ6Om1ha2VfdW5pcXVlPExpYldlYlJUQ1Nv
Y2tldD4oKnRoaXMsICsrc191bmlxdWVTb2NrZXRJZGVudGlmaWVyLCBMaWJXZWJSVENTb2NrZXQ6
OlR5cGU6OlVEUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNzKCkpOwogICAgIG1fc29ja2V0
cy5zZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIHNvY2tldC5nZXQoKSk7CiAKLSAgICBhdXRvIGlk
ZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKTsKLSAgICBhdXRvIGFkZHJlc3MgPSBzb2Nr
ZXQtPmxvY2FsQWRkcmVzcygpLlRvU3RyaW5nKCk7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbaWRl
bnRpZmllciwgYWRkcmVzcywgbWluUG9ydCwgbWF4UG9ydF0oKSB7Ci0gICAgICAgIFN0cmluZyBh
ZGRyZXNzU3RyaW5nID0gU3RyaW5nKGFkZHJlc3MuZGF0YSgpLCBhZGRyZXNzLmxlbmd0aCgpKTsK
LSAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigp
LmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZVVE
UFNvY2tldChpZGVudGlmaWVyLCBhZGRyZXNzU3RyaW5nLCBtaW5Qb3J0LCBtYXhQb3J0KSwgMCkp
IHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVy
KCksIGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnRdKCkgeworICAgICAgICBpZiAoIVdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlVURQU29ja2V0KGlkZW50aWZpZXIsIFJU
Q05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1pblBvcnQsIG1heFBvcnQpLCAwKSkg
ewogICAgICAgICAgICAgLy8gRklYTUU6IFNldCBlcnJvciBiYWNrIHRvIHNvY2tldAogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC03NiwxOSArNzAsMTQgQEAgcnRjOjpBc3luY1Bh
Y2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlVWRwU29ja2V0KGNvbnN0
IHJ0Yzo6U29ja2UKICAgICByZXR1cm4gc29ja2V0LnJlbGVhc2UoKTsKIH0KIAotcnRjOjpBc3lu
Y1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlQ2xpZW50VGNwU29j
a2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxTb2NrZXRBZGRyZXNzLCBjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZVNvY2tldEFkZHJlc3MsIGNvbnN0IHJ0Yzo6UHJveHlJ
bmZvJiwgY29uc3Qgc3RkOjpzdHJpbmcmLCBpbnQgb3B0aW9ucykKK3J0Yzo6QXN5bmNQYWNrZXRT
b2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZUNsaWVudFRjcFNvY2tldChjb25z
dCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRjOjpTb2NrZXRBZGRy
ZXNzJiByZW1vdGVBZGRyZXNzLCBjb25zdCBydGM6OlByb3h5SW5mbyYsIGNvbnN0IHN0ZDo6c3Ry
aW5nJiwgaW50IG9wdGlvbnMpCiB7Ci0gICAgYXV0byBzb2NrZXQgPSBzdGQ6Om1ha2VfdW5pcXVl
PExpYldlYlJUQ1NvY2tldD4oKnRoaXMsICsrc191bmlxdWVTb2NrZXRJZGVudGlmaWVyLCBMaWJX
ZWJSVENTb2NrZXQ6OlR5cGU6OkNsaWVudFRDUCwgbG9jYWxTb2NrZXRBZGRyZXNzLCByZW1vdGVT
b2NrZXRBZGRyZXNzKTsKKyAgICBhdXRvIHNvY2tldCA9IHN0ZDo6bWFrZV91bmlxdWU8TGliV2Vi
UlRDU29ja2V0PigqdGhpcywgKytzX3VuaXF1ZVNvY2tldElkZW50aWZpZXIsIExpYldlYlJUQ1Nv
Y2tldDo6VHlwZTo6Q2xpZW50VENQLCBsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJlc3MpOwogICAg
IHNvY2tldC0+c2V0U3RhdGUoTGliV2ViUlRDU29ja2V0OjpTVEFURV9DT05ORUNUSU5HKTsKICAg
ICBtX3NvY2tldHMuc2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBzb2NrZXQuZ2V0KCkpOwogCi0g
ICAgYXV0byBpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCk7Ci0gICAgYXV0byBsb2Nh
bEFkZHJlc3MgPSBzb2NrZXQtPmxvY2FsQWRkcmVzcygpLlRvU3RyaW5nKCk7Ci0gICAgYXV0byBy
ZW1vdGVBZGRyZXNzID0gc29ja2V0LT5yZW1vdGVBZGRyZXNzKCkuVG9TdHJpbmcoKTsKLSAgICBj
YWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyLCBsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJlc3Ms
IG9wdGlvbnNdKCkgewotICAgICAgICBTdHJpbmcgbG9jYWxBZGRyZXNzU3RyaW5nID0gU3RyaW5n
KGxvY2FsQWRkcmVzcy5kYXRhKCksIGxvY2FsQWRkcmVzcy5sZW5ndGgoKSk7Ci0gICAgICAgIFN0
cmluZyByZW1vdGVBZGRyZXNzU3RyaW5nID0gU3RyaW5nKHJlbW90ZUFkZHJlc3MuZGF0YSgpLCBy
ZW1vdGVBZGRyZXNzLmxlbmd0aCgpKTsKLSAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZUNsaWVudFRDUFNvY2tldChpZGVudGlmaWVyLCBsb2NhbEFk
ZHJlc3NTdHJpbmcsIHJlbW90ZUFkZHJlc3NTdHJpbmcsIG9wdGlvbnMpLCAwKSkgeworICAgIGNh
bGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgbG9jYWxB
ZGRyZXNzLCByZW1vdGVBZGRyZXNzLCBvcHRpb25zXSgpIHsKKyAgICAgICAgaWYgKCFXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZUNsaWVudFRDUFNvY2tldChpZGVudGlm
aWVyLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcyksIFJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcyksIG9wdGlvbnMpLCAwKSkgewogICAgICAgICAg
ICAgLy8gRklYTUU6IFNldCBlcnJvciBiYWNrIHRvIHNvY2tldAogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL1dlYlJUQ1NvY2tldC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5jcHAKaW5kZXggNjRhNTVjZmIxMjczZTkwMWJkZjFh
MDkwNjA5MmQ2NjBiMGNkYTFkZC4uZDZkY2U0OGFhMWJmNjU0ZTBiNTJhZjJlN2U1OTYzZmE1YTYz
ZWE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9XZWJSVENTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcApAQCAtNTQsMTAgKzU0LDEwIEBAIFdlYlJUQ1NvY2tl
dDo6V2ViUlRDU29ja2V0KExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIGZhY3RvcnksIHVpbnQ2NF90
IGlkZW50aWZpZXIpCiB7CiB9CiAKLXZvaWQgV2ViUlRDU29ja2V0OjpzaWduYWxBZGRyZXNzUmVh
ZHkoY29uc3QgU3RyaW5nJiBhZGRyZXNzKQordm9pZCBXZWJSVENTb2NrZXQ6OnNpZ25hbEFkZHJl
c3NSZWFkeShjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzKQogewogICAg
IHNpZ25hbE9uTmV0d29ya1RocmVhZChtX2ZhY3RvcnksIG1faWRlbnRpZmllciwgW2FkZHJlc3Nd
KExpYldlYlJUQ1NvY2tldCYgc29ja2V0KSB7Ci0gICAgICAgIHNvY2tldC5zaWduYWxBZGRyZXNz
UmVhZHkoYWRkcmVzcyk7CisgICAgICAgIHNvY2tldC5zaWduYWxBZGRyZXNzUmVhZHkoYWRkcmVz
cy52YWx1ZSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5oCmluZGV4IDliYzdjYTM1ZjJlZGMw
OWE5YzUzOTczZWY3N2JiOTJiMjAxOTg0NzcuLmQyNmQ2MGYyNDRjMjk3MzhlODQ5OGM1YjVlNTc4
MTVlYTI2ZjQ2MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvV2ViUlRDU29ja2V0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuaApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIHZvaWQgc2lnbmFsUmVhZFBhY2tldChjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmLCBjb25zdCBSVENOZXR3b3JrOjpJUEFkZHJlc3MmLCB1aW50MTZfdCBwb3J0LCBpbnQ2NF90
KTsKICAgICB2b2lkIHNpZ25hbFNlbnRQYWNrZXQoaW50LCBpbnQ2NF90KTsKLSAgICB2b2lkIHNp
Z25hbEFkZHJlc3NSZWFkeShjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHNpZ25hbEFkZHJlc3NS
ZWFkeShjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJik7CiAgICAgdm9pZCBzaWduYWxD
b25uZWN0KCk7CiAgICAgdm9pZCBzaWduYWxDbG9zZShpbnQpOwogICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJU
Q1NvY2tldC5tZXNzYWdlcy5pbgppbmRleCA5OTMxNzgxNjI1NDA5Y2RhNTgwOTBkNWRhMjAxZDAz
NGYwNTMyMzlhLi40MjZkNmQxOTI5M2U1MTUzNDc3NDJhY2ViZTM0NzQ5ZGE0ZGFmZmEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Nv
Y2tldC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL1dlYlJUQ1NvY2tldC5tZXNzYWdlcy5pbgpAQCAtMjUsNyArMjUsNyBAQAogbWVzc2Fn
ZXMgLT4gV2ViUlRDU29ja2V0IHsKICAgICBTaWduYWxSZWFkUGFja2V0KElQQzo6RGF0YVJlZmVy
ZW5jZSBkYXRhLCBXZWJLaXQ6OlJUQ05ldHdvcms6OklQQWRkcmVzcyBhZGRyZXNzLCB1aW50MTZf
dCBwb3J0LCBpbnQ2NF90IHRpbWVzdGFtcCkKICAgICBTaWduYWxTZW50UGFja2V0KGludCBwYWNr
ZXRTaXplLCBpbnQ2NF90IHRpbWVzdGFtcCkKLSAgICBTaWduYWxBZGRyZXNzUmVhZHkoU3RyaW5n
IGFkZHJlc3MpCisgICAgU2lnbmFsQWRkcmVzc1JlYWR5KFdlYktpdDo6UlRDTmV0d29yazo6U29j
a2V0QWRkcmVzcyBhZGRyZXNzKQogICAgIFNpZ25hbENvbm5lY3QoKQogICAgIFNpZ25hbENsb3Nl
KGludCBlcnJvcikKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301859</attachid>
            <date>2017-02-16 16:57:14 -0800</date>
            <delta_ts>2017-02-16 17:45:42 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-168474-20170216165437.patch</filename>
            <type>text/plain</type>
            <size>28126</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyNDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjc5MDlhYjhhMTU3N2Y0
NGIzY2FjYjcyOTRlZWQ2NjFlN2QzODMxNC4uMDQzMDY4ZWI5ZGJhNmQ0NTA4YTZlM2U0OTBhYTRi
MTQ4NjcxY2Y0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE3LTAyLTE2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViUlRDXSBsaWJ3ZWJy
dGMgc29ja2V0IGFkZHJlc3NlcyBzaG91bGQgbm90IGJlIHBhc3NlZCBhcyBzdHJpbmdzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg0NzQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmluZyBhbGwg
c2VyYWxpemF0aW9uIG9mIHNvY2tldCBhZGRyZXNzZXMgYXMgc3RyaW5ncy4KKyAgICAgICAgSW5z
dGVhZCwgYSBkZWRpY2F0ZWQgc2VyaWFsaXphdGlvbiBpcyBwcm92aWRlZC4KKyAgICAgICAgVGhp
cyBhbGxvd3MgcHJvcGVyIGhhbmRsaW5nIG9mIHZhcmlvdXMgY2FzZXMgbGlrZSBhZGRyZXNzZXMg
d2l0aCBib3RoIGhvc3RuYW1lcyBhbmQgcmVzb2x2ZWQgSVBzLgorCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkxpYldlYlJUQ1NvY2tldENsaWVudDo6c2lnbmFsUmVhZFBhY2tldCk6CisgICAgICAgIChX
ZWJLaXQ6OkxpYldlYlJUQ1NvY2tldENsaWVudDo6c2lnbmFsU2VudFBhY2tldCk6CisgICAgICAg
IChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldENsaWVudDo6c2lnbmFsQWRkcmVzc1JlYWR5KToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVVRFBTb2NrZXQpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNlcnZlclRDUFNvY2tldCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29j
a2V0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVy
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Nv
Y2tldC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENTb2NrZXQ6OnNlbmRUbyk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBTaGFyZWQvUlRDTmV0d29yay5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3M6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ05ldHdv
cms6OlNvY2tldEFkZHJlc3M6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1JUQ05ldHdvcmsu
aDoKKyAgICAgICAgKFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzczo6U29ja2V0QWRk
cmVzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2Nr
ZXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6OnNpZ25hbEFkZHJlc3NS
ZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldDo6U2VuZFRvKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVNlcnZlclRj
cFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0
ZVVkcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNy
ZWF0ZUNsaWVudFRjcFNvY2tldCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9XZWJSVENTb2NrZXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTb2NrZXQ6OnNpZ25h
bEFkZHJlc3NSZWFkeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJS
VENTb2NrZXQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Nv
Y2tldC5tZXNzYWdlcy5pbjoKKwogMjAxNy0wMi0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dlYlJUQ11bTWFjXSBBY3RpdmF0ZSBsaWJ3ZWJydGMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENT
b2NrZXRDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL0xp
YldlYlJUQ1NvY2tldENsaWVudC5jcHAKaW5kZXggNWY3ZDcyMzk0NjU4MGI5YTE1ZThiYjY5ODI3
ODMyOTEwZmY0YzBkOS4uMzNjNmJlNTA1MzM1NzAxMGI3MGVhNDk5YTJhZTQ2MjIzMWY5ZGJmNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL0xpYldlYlJU
Q1NvY2tldENsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2Vi
cnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBMaWJX
ZWJSVENTb2NrZXRDbGllbnQ6OnNldE9wdGlvbihpbnQgb3B0aW9uLCBpbnQgdmFsdWUpCiB2b2lk
IExpYldlYlJUQ1NvY2tldENsaWVudDo6c2lnbmFsUmVhZFBhY2tldChydGM6OkFzeW5jUGFja2V0
U29ja2V0KiwgY29uc3QgY2hhciogdmFsdWUsIHNpemVfdCBsZW5ndGgsIGNvbnN0IHJ0Yzo6U29j
a2V0QWRkcmVzcyYgYWRkcmVzcywgY29uc3QgcnRjOjpQYWNrZXRUaW1lJiBwYWNrZXRUaW1lKQog
ewogICAgIGF1dG8gYnVmZmVyID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUodmFsdWUs
IGxlbmd0aCk7Ci0gICAgbV9ydGNQcm92aWRlci5zZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50aWZp
ZXIgPSBtX2lkZW50aWZpZXIsIGJ1ZmZlciA9IFdURk1vdmUoYnVmZmVyKSwgYWRkcmVzcywgcGFj
a2V0VGltZV0oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKSB7CisgICAgbV9ydGNQcm92aWRl
ci5zZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBtX2lkZW50aWZpZXIsIGJ1ZmZlciA9
IFdURk1vdmUoYnVmZmVyKSwgYWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShhZGRy
ZXNzKSwgcGFja2V0VGltZV0oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKSB7CiAgICAgICAg
IElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+
KGJ1ZmZlci0+ZGF0YSgpKSwgYnVmZmVyLT5zaXplKCkpOwogICAgICAgICBjb25uZWN0aW9uLnNl
bmQoTWVzc2FnZXM6OldlYlJUQ1NvY2tldDo6U2lnbmFsUmVhZFBhY2tldChkYXRhLCBSVENOZXR3
b3JrOjpJUEFkZHJlc3MoYWRkcmVzcy5pcGFkZHIoKSksIGFkZHJlc3MucG9ydCgpLCBwYWNrZXRU
aW1lLnRpbWVzdGFtcCksIGlkZW50aWZpZXIpOwogICAgIH0pOwpAQCAtOTcsOSArOTcsOCBAQCB2
b2lkIExpYldlYlJUQ1NvY2tldENsaWVudDo6c2lnbmFsU2VudFBhY2tldChydGM6OkFzeW5jUGFj
a2V0U29ja2V0KiwgY29uc3QgcnRjOgogCiB2b2lkIExpYldlYlJUQ1NvY2tldENsaWVudDo6c2ln
bmFsQWRkcmVzc1JlYWR5KHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqLCBjb25zdCBydGM6OlNvY2tl
dEFkZHJlc3MmIGFkZHJlc3MpCiB7Ci0gICAgbV9ydGNQcm92aWRlci5zZW5kRnJvbU1haW5UaHJl
YWQoW2lkZW50aWZpZXIgPSBtX2lkZW50aWZpZXIsIGFkZHJlc3NdKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbikgewotICAgICAgICBhdXRvIGFkZHJlc3NTdHJpbmcgPSBhZGRyZXNzLlRvU3Ry
aW5nKCk7Ci0gICAgICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6V2ViUlRDU29ja2V0OjpT
aWduYWxBZGRyZXNzUmVhZHkoU3RyaW5nKGFkZHJlc3NTdHJpbmcuZGF0YSgpLCBhZGRyZXNzU3Ry
aW5nLmxlbmd0aCgpKSksIGlkZW50aWZpZXIpOworICAgIG1fcnRjUHJvdmlkZXIuc2VuZEZyb21N
YWluVGhyZWFkKFtpZGVudGlmaWVyID0gbV9pZGVudGlmaWVyLCBhZGRyZXNzID0gUlRDTmV0d29y
azo6aXNvbGF0ZWRDb3B5KGFkZHJlc3MpXShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pIHsK
KyAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpXZWJSVENTb2NrZXQ6OlNpZ25hbEFk
ZHJlc3NSZWFkeShSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3MpKSwgaWRlbnRpZmll
cik7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKaW5kZXggN2MyYThiODhiMDdk
MjJlNzAzZDBmMjg5ZjYwZTkyZjljYTAyZDg2NS4uYTY0ZjBmMmNkYjdlMzhlNGZhM2U2M2M3NWRj
NzBjNThmNjk3NjkxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKQEAgLTY3LDM4ICs2NywyNiBA
QCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y2xvc2UoKQogICAgIH0pOwogfQogCi12b2lkIE5l
dHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlVURQU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkK
K3ZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVVRFBTb2NrZXQodWludDY0X3QgaWRlbnRp
ZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3Qg
bWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkKIHsKLSAgICBydGM6OlNvY2tldEFkZHJlc3Mgc29j
a2V0QWRkcmVzczsKLSAgICBzb2NrZXRBZGRyZXNzLkZyb21TdHJpbmcoYWRkcmVzcy51dGY4KCku
ZGF0YSgpKTsKLQotICAgIGNhbGxPblJUQ05ldHdvcmtUaHJlYWQoW3RoaXMsIGlkZW50aWZpZXIs
IHNvY2tldEFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnRdKCkgewotICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4gc29ja2V0KG1fcGFja2V0U29ja2V0RmFjdG9y
eS0+Q3JlYXRlVWRwU29ja2V0KHNvY2tldEFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQpKTsKKyAg
ICBjYWxsT25SVENOZXR3b3JrVGhyZWFkKFt0aGlzLCBpZGVudGlmaWVyLCBhZGRyZXNzID0gUlRD
TmV0d29yazo6aXNvbGF0ZWRDb3B5KGFkZHJlc3MudmFsdWUpLCBtaW5Qb3J0LCBtYXhQb3J0XSgp
IHsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+IHNvY2tl
dChtX3BhY2tldFNvY2tldEZhY3RvcnktPkNyZWF0ZVVkcFNvY2tldChhZGRyZXNzLCBtaW5Qb3J0
LCBtYXhQb3J0KSk7CiAgICAgICAgIGFkZFNvY2tldChpZGVudGlmaWVyLCBzdGQ6Om1ha2VfdW5p
cXVlPExpYldlYlJUQ1NvY2tldENsaWVudD4oaWRlbnRpZmllciwgKnRoaXMsIFdURk1vdmUoc29j
a2V0KSwgTGliV2ViUlRDU29ja2V0Q2xpZW50OjpUeXBlOjpVRFApKTsKICAgICB9KTsKIH0KIAot
dm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNlcnZlclRDUFNvY2tldCh1aW50NjRfdCBp
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQx
Nl90IG1heFBvcnQsIGludCBvcHRpb25zKQordm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0
ZVNlcnZlclRDUFNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpT
b2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0
LCBpbnQgb3B0aW9ucykKIHsKLSAgICBydGM6OlNvY2tldEFkZHJlc3Mgc29ja2V0QWRkcmVzczsK
LSAgICBzb2NrZXRBZGRyZXNzLkZyb21TdHJpbmcoYWRkcmVzcy51dGY4KCkuZGF0YSgpKTsKLQot
ICAgIGNhbGxPblJUQ05ldHdvcmtUaHJlYWQoW3RoaXMsIGlkZW50aWZpZXIsIHNvY2tldEFkZHJl
c3MsIG1pblBvcnQsIG1heFBvcnQsIG9wdGlvbnNdKCkgewotICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4gc29ja2V0KG1fcGFja2V0U29ja2V0RmFjdG9yeS0+
Q3JlYXRlU2VydmVyVGNwU29ja2V0KHNvY2tldEFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQsIG9w
dGlvbnMpKTsKKyAgICBjYWxsT25SVENOZXR3b3JrVGhyZWFkKFt0aGlzLCBpZGVudGlmaWVyLCBh
ZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KGFkZHJlc3MudmFsdWUpLCBtaW5Qb3J0
LCBtYXhQb3J0LCBvcHRpb25zXSgpIHsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5
bmNQYWNrZXRTb2NrZXQ+IHNvY2tldChtX3BhY2tldFNvY2tldEZhY3RvcnktPkNyZWF0ZVNlcnZl
clRjcFNvY2tldChhZGRyZXNzLCBtaW5Qb3J0LCBtYXhQb3J0LCBvcHRpb25zKSk7CiAgICAgICAg
IGFkZFNvY2tldChpZGVudGlmaWVyLCBzdGQ6Om1ha2VfdW5pcXVlPExpYldlYlJUQ1NvY2tldENs
aWVudD4oaWRlbnRpZmllciwgKnRoaXMsIFdURk1vdmUoc29ja2V0KSwgTGliV2ViUlRDU29ja2V0
Q2xpZW50OjpUeXBlOjpTZXJ2ZXJUQ1ApKTsKICAgICB9KTsKIH0KIAotdm9pZCBOZXR3b3JrUlRD
UHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIGxvY2FsQWRkcmVzcywgY29uc3QgU3RyaW5nJiByZW1vdGVBZGRyZXNzLCBpbnQg
b3B0aW9ucykKK3ZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQo
dWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgbG9j
YWxBZGRyZXNzLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNz
LCBpbnQgb3B0aW9ucykKIHsKLSAgICBydGM6OlNvY2tldEFkZHJlc3Mgc29ja2V0TG9jYWxBZGRy
ZXNzOwotICAgIHNvY2tldExvY2FsQWRkcmVzcy5Gcm9tU3RyaW5nKGxvY2FsQWRkcmVzcy51dGY4
KCkuZGF0YSgpKTsKLQotICAgIHJ0Yzo6U29ja2V0QWRkcmVzcyBzb2NrZXRSZW1vdGVBZGRyZXNz
OwotICAgIHNvY2tldFJlbW90ZUFkZHJlc3MuRnJvbVN0cmluZyhyZW1vdGVBZGRyZXNzLnV0Zjgo
KS5kYXRhKCkpOwotCi0gICAgY2FsbE9uUlRDTmV0d29ya1RocmVhZChbdGhpcywgaWRlbnRpZmll
ciwgc29ja2V0TG9jYWxBZGRyZXNzLCBzb2NrZXRSZW1vdGVBZGRyZXNzLCBvcHRpb25zXSgpIHsK
LSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+IHNvY2tldCht
X3BhY2tldFNvY2tldEZhY3RvcnktPkNyZWF0ZUNsaWVudFRjcFNvY2tldChzb2NrZXRMb2NhbEFk
ZHJlc3MsIHNvY2tldFJlbW90ZUFkZHJlc3MsIHsgfSwgeyB9LCBvcHRpb25zKSk7CisgICAgY2Fs
bE9uUlRDTmV0d29ya1RocmVhZChbdGhpcywgaWRlbnRpZmllciwgbG9jYWxBZGRyZXNzID0gUlRD
TmV0d29yazo6aXNvbGF0ZWRDb3B5KGxvY2FsQWRkcmVzcy52YWx1ZSksIHJlbW90ZUFkZHJlc3Mg
PSBSVENOZXR3b3JrOjppc29sYXRlZENvcHkocmVtb3RlQWRkcmVzcy52YWx1ZSksIG9wdGlvbnNd
KCkgeworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4gc29j
a2V0KG1fcGFja2V0U29ja2V0RmFjdG9yeS0+Q3JlYXRlQ2xpZW50VGNwU29ja2V0KGxvY2FsQWRk
cmVzcywgcmVtb3RlQWRkcmVzcywgeyB9LCB7IH0sIG9wdGlvbnMpKTsKICAgICAgICAgYWRkU29j
a2V0KGlkZW50aWZpZXIsIHN0ZDo6bWFrZV91bmlxdWU8TGliV2ViUlRDU29ja2V0Q2xpZW50Pihp
ZGVudGlmaWVyLCAqdGhpcywgV1RGTW92ZShzb2NrZXQpLCBMaWJXZWJSVENTb2NrZXRDbGllbnQ6
OlR5cGU6OkNsaWVudFRDUCkpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCmluZGV4IDcw
MGMzOGZiNDc3NjQ4OWFmOGM1YTc0YjhmNDdhMzdiNTgwMWM2ZDguLjZhNzIxODJiZTJhOTcyOWEy
ODNjMGYxYmEwZTY5OTVlYTk5ZDBkNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKQEAgLTI5LDYgKzI5
LDcgQEAKIAogI2luY2x1ZGUgIkxpYldlYlJUQ1NvY2tldENsaWVudC5oIgogI2luY2x1ZGUgIk5l
dHdvcmtSVENNb25pdG9yLmgiCisjaW5jbHVkZSAiUlRDTmV0d29yay5oIgogI2luY2x1ZGUgPENG
TmV0d29yay9DRkhvc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ01hY3Jvcy5oPgog
I2luY2x1ZGUgPHdlYnJ0Yy9iYXNlL3NpZ3Nsb3QuaD4KQEAgLTY4LDkgKzY5LDkgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBOZXR3b3JrUlRDUHJvdmlkZXIoTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmKTsKIAotICAgIHZvaWQgY3JlYXRlVURQU29ja2V0KHVpbnQ2NF90
LCBjb25zdCBTdHJpbmcmLCB1aW50MTZfdCwgdWludDE2X3QpOwotICAgIHZvaWQgY3JlYXRlQ2xp
ZW50VENQU29ja2V0KHVpbnQ2NF90LCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBpbnQp
OwotICAgIHZvaWQgY3JlYXRlU2VydmVyVENQU29ja2V0KHVpbnQ2NF90LCBjb25zdCBTdHJpbmcm
LCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQpOworICAgIHZvaWQgY3Jl
YXRlVURQU29ja2V0KHVpbnQ2NF90LCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwg
dWludDE2X3QsIHVpbnQxNl90KTsKKyAgICB2b2lkIGNyZWF0ZUNsaWVudFRDUFNvY2tldCh1aW50
NjRfdCwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIGNvbnN0IFJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MmLCBpbnQpOworICAgIHZvaWQgY3JlYXRlU2VydmVyVENQU29ja2V0KHVp
bnQ2NF90LCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9y
dCwgdWludDE2X3QgbWF4UG9ydCwgaW50KTsKICAgICB2b2lkIGNyZWF0ZVJlc29sdmVyKHVpbnQ2
NF90LCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHN0b3BSZXNvbHZlcih1aW50NjRfdCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3Jr
UlRDUHJvdmlkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93
ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCmluZGV4IDBmNjZjYTk4OGM2YWUx
ZDJiYzJkMjJlMDMzMjM4YTZmMjM3OWUxZWQuLjk0MDk1MjE0NGUwMjg3M2JjOTI0YmE2YTM5YmJm
YzkyYzhkNmY0ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbgpAQCAt
MjMsOSArMjMsOSBAQAogI2lmIFVTRShMSUJXRUJSVEMpCiAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtS
VENQcm92aWRlciB7Ci0gICAgQ3JlYXRlVURQU29ja2V0KGludCBpZGVudGlmaWVyLCBTdHJpbmcg
bG9jYWxBZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQotICAgIENy
ZWF0ZVNlcnZlclRDUFNvY2tldChpbnQgaWRlbnRpZmllciwgU3RyaW5nIGxvY2FsQWRkcmVzcywg
dWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCi0gICAgQ3Jl
YXRlQ2xpZW50VENQU29ja2V0KGludCBpZGVudGlmaWVyLCBTdHJpbmcgbG9jYWxBZGRyZXNzLCBT
dHJpbmcgcmVtb3RlQWRkcmVzcywgaW50IG9wdGlvbnMpCisgICAgQ3JlYXRlVURQU29ja2V0KGlu
dCBpZGVudGlmaWVyLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRy
ZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQorICAgIENyZWF0ZVNlcnZl
clRDUFNvY2tldChpbnQgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRy
ZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50
IG9wdGlvbnMpCisgICAgQ3JlYXRlQ2xpZW50VENQU29ja2V0KGludCBpZGVudGlmaWVyLCBXZWJL
aXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCBXZWJLaXQ6OlJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MgcmVtb3RlQWRkcmVzcywgaW50IG9wdGlvbnMpCiAgICAgQ3Jl
YXRlUmVzb2x2ZXIodWludDY0X3QgaWRlbnRpZmllciwgU3RyaW5nIGFkZHJlc3MpCiAgICAgU3Rv
cFJlc29sdmVyKHVpbnQ2NF90IGlkZW50aWZpZXIpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5jcHAKaW5kZXgg
ZWMwOWUzMGJjM2QyNmQ0ODI4YjFlYTg4YTFiZDI4NGUwMzM5MmM4Ni4uZmNkMTI0OThmNjdhZjQ2
OWQ3NTkyMDgyNzNlZWI4N2QxYzgzNWY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmNwcApAQCAtNDIsMTIg
KzQyLDEwIEBAIE5ldHdvcmtSVENTb2NrZXQ6Ok5ldHdvcmtSVENTb2NrZXQodWludDY0X3QgaWRl
bnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQCiB7CiB9CiAKLXZvaWQgTmV0d29ya1JU
Q1NvY2tldDo6c2VuZFRvKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgY29uc3QgUlRD
TmV0d29yazo6SVBBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0LCBpbnQgcGFja2V0SUQs
IGludCBydHBTZW5kdGltZUV4dGVuc2lvbklELCBTdHJpbmcgc3J0cEF1dGgsIGludDY0X3Qgc3J0
cFBhY2tldEluZGV4LCBpbnQgZHNjcCkKK3ZvaWQgTmV0d29ya1JUQ1NvY2tldDo6c2VuZFRvKGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRk
cmVzcyYgc29ja2V0QWRkcmVzcywgaW50IHBhY2tldElELCBpbnQgcnRwU2VuZHRpbWVFeHRlbnNp
b25JRCwgU3RyaW5nIHNydHBBdXRoLCBpbnQ2NF90IHNydHBQYWNrZXRJbmRleCwgaW50IGRzY3Ap
CiB7CiAgICAgYXV0byBidWZmZXIgPSBXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRh
LmRhdGEoKSwgZGF0YS5zaXplKCkpOwogCi0gICAgcnRjOjpTb2NrZXRBZGRyZXNzIHNvY2tldEFk
ZHJlc3MoYWRkcmVzcy52YWx1ZSwgcG9ydCk7Ci0KICAgICBydGM6OlBhY2tldE9wdGlvbnMgb3B0
aW9uczsKICAgICBvcHRpb25zLnBhY2tldF9pZCA9IHBhY2tldElEOwogICAgIG9wdGlvbnMucGFj
a2V0X3RpbWVfcGFyYW1zLnJ0cF9zZW5kdGltZV9leHRlbnNpb25faWQgPSBydHBTZW5kdGltZUV4
dGVuc2lvbklEOwpAQCAtNjAsNyArNTgsNyBAQCB2b2lkIE5ldHdvcmtSVENTb2NrZXQ6OnNlbmRU
byhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGNvbnN0IFJUQ05ldHdvcms6OgogICAg
ICAgICBvcHRpb25zLnBhY2tldF90aW1lX3BhcmFtcy5zcnRwX2F1dGhfdGFnX2xlbiA9IC0xOwog
ICAgIAogICAgIG1fcnRjUHJvdmlkZXIuY2FsbFNvY2tldChtX2lkZW50aWZpZXIsIFtidWZmZXIg
PSBXVEZNb3ZlKGJ1ZmZlciksIHNvY2tldEFkZHJlc3MsIG9wdGlvbnNdKExpYldlYlJUQ1NvY2tl
dENsaWVudCYgY2xpZW50KSB7Ci0gICAgICAgIGNsaWVudC5zZW5kVG8oYnVmZmVyLmdldCgpLCBz
b2NrZXRBZGRyZXNzLCBvcHRpb25zKTsKKyAgICAgICAgY2xpZW50LnNlbmRUbyhidWZmZXIuZ2V0
KCksIHNvY2tldEFkZHJlc3MudmFsdWUsIG9wdGlvbnMpOwogICAgIH0pOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tl
dC5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2Nr
ZXQuaAppbmRleCA0NDBmNzBmNGVhOGEwNTY3MjE4NjZhMTQ1YTQxNzEyNGUzNDYxNGY3Li5lYTk5
NTQwZTY5NzczMzQyMWU1NWJkNTkxZGE4YTk3NzczOWMzZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmgKQEAg
LTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgIE5ldHdvcmtSVENTb2NrZXQodWludDY0X3QsIE5l
dHdvcmtSVENQcm92aWRlciYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiBwcml2YXRlOgotICAgIHZvaWQgc2VuZFRvKGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFJUQ05ldHdvcms6OklQQWRkcmVzcyYsIHVpbnQx
Nl90IHBvcnQsIGludCBwYWNrZXRJRCwgaW50IHJ0cFNlbmR0aW1lRXh0ZW5zaW9uSUQsIFN0cmlu
ZyBzcnRwQXV0aCwgaW50NjRfdCBzcnRwUGFja2V0SW5kZXgsIGludCBkc2NwKTsKKyAgICB2b2lk
IHNlbmRUbyhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBSVENOZXR3b3JrOjpTb2Nr
ZXRBZGRyZXNzJiwgaW50IHBhY2tldElELCBpbnQgcnRwU2VuZHRpbWVFeHRlbnNpb25JRCwgU3Ry
aW5nIHNydHBBdXRoLCBpbnQ2NF90IHNydHBQYWNrZXRJbmRleCwgaW50IGRzY3ApOwogICAgIHZv
aWQgY2xvc2UoKTsKICAgICB2b2lkIHNldE9wdGlvbihpbnQgb3B0aW9uLCBpbnQgdmFsdWUpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29y
a1JUQ1NvY2tldC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDU29ja2V0Lm1lc3NhZ2VzLmluCmluZGV4IGEyZWEzZTFiZTc2N2RjYjQx
ZTQ3MmI4NWNhNzdjZTRmNTczZWI0ZGEuLjcxM2Q0MjNlODQ2MmRlZjczNWJhMGUwOGM1NmQ0YjM5
ODhkY2QyOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9OZXR3b3JrUlRDU29ja2V0Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0Lm1lc3NhZ2VzLmluCkBAIC0yMyw3ICsy
Myw3IEBACiAjaWYgVVNFKExJQldFQlJUQykKIAogbWVzc2FnZXMgLT4gTmV0d29ya1JUQ1NvY2tl
dCB7Ci0gICAgdm9pZCBTZW5kVG8oSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEsIFdlYktpdDo6UlRD
TmV0d29yazo6SVBBZGRyZXNzIGFkZHJlc3MsIHVpbnQxNl90IHBvcnQsIGludCBwYWNrZXRJRCwg
aW50IHJ0cFNlbmR0aW1lRXh0ZW5zaW9uSUQsIFN0cmluZyBzcnRwQXV0aCwgaW50NjRfdCBzcnRw
UGFja2V0SW5kZXgsIGludCBkc2NwKQorICAgIHZvaWQgU2VuZFRvKElQQzo6RGF0YVJlZmVyZW5j
ZSBkYXRhLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgYWRkcmVzcywgaW50IHBh
Y2tldElELCBpbnQgcnRwU2VuZHRpbWVFeHRlbnNpb25JRCwgU3RyaW5nIHNydHBBdXRoLCBpbnQ2
NF90IHNydHBQYWNrZXRJbmRleCwgaW50IGRzY3ApCiAgICAgdm9pZCBDbG9zZSgpCiAgICAgdm9p
ZCBTZXRPcHRpb24oaW50IG9wdGlvbiwgaW50IHZhbHVlKQogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1JUQ05ldHdvcmsuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1JU
Q05ldHdvcmsuY3BwCmluZGV4IGIxM2ViYzljMDdiZGEwNmQ5Y2I1OGNjOWE3ZDEwZDhiMzZmNTAy
ZGQuLjZjYmNhY2JmYTVkNzM4MGRmYWJiMWYwOTBiZDEwMDY1OGQ4ZWEwY2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9SVENOZXR3b3JrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvUlRDTmV0d29yay5jcHAKQEAgLTkyLDYgKzkyLDYzIEBAIHZvaWQgUlRDTmV0d29y
azo6SVBBZGRyZXNzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVu
Y29kZXIgPDwgSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhf
dCo+KCZhZGRyZXNzKSwgc2l6ZW9mKGFkZHJlc3MpKTsKIH0KIAorcnRjOjpTb2NrZXRBZGRyZXNz
IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHZhbHVl
KQoreworICAgIHJ0Yzo6U29ja2V0QWRkcmVzcyBjb3B5OworICAgIGNvcHkuU2V0UG9ydCh2YWx1
ZS5wb3J0KCkpOworICAgIGNvcHkuU2V0U2NvcGVJRCh2YWx1ZS5zY29wZV9pZCgpKTsKKyAgICBj
b3B5LlNldElQKHN0ZDo6c3RyaW5nKHZhbHVlLmhvc3RuYW1lKCkuZGF0YSgpLCB2YWx1ZS5ob3N0
bmFtZSgpLnNpemUoKSkpOworICAgIGlmICghdmFsdWUuSXNVbnJlc29sdmVkSVAoKSkKKyAgICAg
ICAgY29weS5TZXRSZXNvbHZlZElQKHZhbHVlLmlwYWRkcigpKTsKKyAgICByZXR1cm4gcnRjOjpT
b2NrZXRBZGRyZXNzKGNvcHkpOworfQorCitib29sIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3M6
OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFNvY2tldEFkZHJlc3MmIHJlc3VsdCkKK3sK
KyAgICB1aW50MTZfdCBwb3J0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9ydCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpbnQgc2NvcGVJZDsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHNjb3BlSWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmVzdWx0LnZhbHVlLlNl
dFBvcnQocG9ydCk7CisgICAgcmVzdWx0LnZhbHVlLlNldFNjb3BlSUQoc2NvcGVJZCk7CisKKyAg
ICBJUEM6OkRhdGFSZWZlcmVuY2UgaG9zdG5hbWU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSho
b3N0bmFtZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXN1bHQudmFsdWUuU2V0SVAo
c3RkOjpzdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oaG9zdG5hbWUuZGF0YSgp
KSwgaG9zdG5hbWUuc2l6ZSgpKSk7CisKKyAgICBib29sIGlzVW5yZXNvbHZlZDsKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGlzVW5yZXNvbHZlZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBpZiAoaXNVbnJlc29sdmVkKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIFJUQ05ldHdv
cms6OklQQWRkcmVzcyBpcEFkZHJlc3M7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpcEFkZHJl
c3MpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmVzdWx0LnZhbHVlLlNldFJlc29sdmVk
SVAoaXBBZGRyZXNzLnZhbHVlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBSVENOZXR3
b3JrOjpTb2NrZXRBZGRyZXNzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
eworICAgIGVuY29kZXIgPDwgdmFsdWUucG9ydCgpOworICAgIGVuY29kZXIgPDwgdmFsdWUuc2Nv
cGVfaWQoKTsKKworICAgIGF1dG8gaG9zdG5hbWUgPSB2YWx1ZS5ob3N0bmFtZSgpOworICAgIGVu
Y29kZXIgPDwgSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhf
dCo+KGhvc3RuYW1lLmRhdGEoKSksIGhvc3RuYW1lLmxlbmd0aCgpKTsKKworICAgIGVuY29kZXIg
PDwgdmFsdWUuSXNVbnJlc29sdmVkSVAoKTsKKyAgICBpZiAodmFsdWUuSXNVbnJlc29sdmVkSVAo
KSkgeworICAgICAgICBlbmNvZGVyIDw8IHRydWU7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgZW5jb2RlciA8PCBmYWxzZTsKKyAgICBlbmNvZGVyIDw8IFJUQ05ldHdvcms6OklQQWRkcmVz
cyh2YWx1ZS5pcGFkZHIoKSk7Cit9CisKIGJvb2wgUlRDTmV0d29yazo6ZGVjb2RlKElQQzo6RGVj
b2RlciYgZGVjb2RlciwgUlRDTmV0d29yayYgcmVzdWx0KQogewogICAgIElQQzo6RGF0YVJlZmVy
ZW5jZSBuYW1lLCBkZXNjcmlwdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9SVENOZXR3b3JrLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUlRDTmV0d29yay5oCmluZGV4
IDkxMGZiZmMxOTM4MmI5ODU3NzAxYTZkNDNkZTQ2NzFlMjMzZjExMzIuLmEwMzBhMWFlYjU2OGRj
ZDlkZDIxNmRmN2NlYmUzMzM0MDU4OTg4YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9SVENOZXR3b3JrLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1JUQ05ldHdvcmsu
aApAQCAtNTcsNiArNTcsMTggQEAgc3RydWN0IFJUQ05ldHdvcmsgewogICAgICAgICBydGM6OklQ
QWRkcmVzcyB2YWx1ZTsKICAgICB9OwogCisgICAgc3RhdGljIHJ0Yzo6U29ja2V0QWRkcmVzcyBp
c29sYXRlZENvcHkoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJik7CisKKyAgICBzdHJ1Y3QgU29j
a2V0QWRkcmVzcyB7CisgICAgICAgIFNvY2tldEFkZHJlc3MoKSA9IGRlZmF1bHQ7CisgICAgICAg
IGV4cGxpY2l0IFNvY2tldEFkZHJlc3MoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNz
KTogdmFsdWUoYWRkcmVzcykgeyB9CisKKyAgICAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVy
JikgY29uc3Q7CisgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBTb2Nr
ZXRBZGRyZXNzJik7CisKKyAgICAgICAgcnRjOjpTb2NrZXRBZGRyZXNzIHZhbHVlOworICAgIH07
CisKICAgICBzdGQ6OnN0cmluZyBuYW1lOwogICAgIHN0ZDo6c3RyaW5nIGRlc2NyaXB0aW9uOwog
ICAgIElQQWRkcmVzcyBwcmVmaXg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKaW5kZXggM2QyODIx
ZDdkYWY0ODFkNmI1NDI4OGUyMjcwOGM0YTM1MDg4ZjIwOC4uMjAyNzdkNTc3OTEzN2RjNmQzNTQ3
MzRmYTI5MGFjZWZkZjhkNmNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcApAQCAtNzEsOSAr
NzEsOSBAQCBydGM6OlNvY2tldEFkZHJlc3MgTGliV2ViUlRDU29ja2V0OjpHZXRSZW1vdGVBZGRy
ZXNzKCkgY29uc3QKICAgICByZXR1cm4gbV9yZW1vdGVBZGRyZXNzOwogfQogCi12b2lkIExpYldl
YlJUQ1NvY2tldDo6c2lnbmFsQWRkcmVzc1JlYWR5KGNvbnN0IFN0cmluZyYgYWRkcmVzcykKK3Zv
aWQgTGliV2ViUlRDU29ja2V0OjpzaWduYWxBZGRyZXNzUmVhZHkoY29uc3QgcnRjOjpTb2NrZXRB
ZGRyZXNzJiBhZGRyZXNzKQogewotICAgIG1fbG9jYWxBZGRyZXNzLkZyb21TdHJpbmcoYWRkcmVz
cy51dGY4KCkuZGF0YSgpKTsKKyAgICBtX2xvY2FsQWRkcmVzcyA9IGFkZHJlc3M7CiAgICAgbV9z
dGF0ZSA9IChtX3R5cGUgPT0gVHlwZTo6Q2xpZW50VENQKSA/IFNUQVRFX0NPTk5FQ1RFRCA6IFNU
QVRFX0JPVU5EOwogICAgIFNpZ25hbEFkZHJlc3NSZWFkeSh0aGlzLCBtX2xvY2FsQWRkcmVzcyk7
CiB9CkBAIC0xMzYsNyArMTM2LDcgQEAgaW50IExpYldlYlJUQ1NvY2tldDo6U2VuZFRvKGNvbnN0
IHZvaWQgKnZhbHVlLCBzaXplX3Qgc2l6ZSwgY29uc3QgcnRjOjpTb2NrZXRBZGQKICAgICBzZW5k
T25NYWluVGhyZWFkKFtpZGVudGlmaWVyLCBidWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlciksIGFkZHJl
c3MsIG9wdGlvbnNdKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikgewogICAgICAgICBJUEM6
OkRhdGFSZWZlcmVuY2UgZGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihidWZm
ZXItPmRhdGEoKSksIGJ1ZmZlci0+c2l6ZSgpKTsKICAgICAgICAgU3RyaW5nIHNydHBBdXRoS2V5
ID0gYXV0aEtleShvcHRpb25zKTsKLSAgICAgICAgTWVzc2FnZXM6Ok5ldHdvcmtSVENTb2NrZXQ6
OlNlbmRUbyBtZXNzYWdlKGRhdGEsIFJUQ05ldHdvcms6OklQQWRkcmVzcyhhZGRyZXNzLmlwYWRk
cigpKSwgYWRkcmVzcy5wb3J0KCksIG9wdGlvbnMucGFja2V0X2lkLCBvcHRpb25zLnBhY2tldF90
aW1lX3BhcmFtcy5ydHBfc2VuZHRpbWVfZXh0ZW5zaW9uX2lkLCBzcnRwQXV0aEtleSwgb3B0aW9u
cy5wYWNrZXRfdGltZV9wYXJhbXMuc3J0cF9wYWNrZXRfaW5kZXgsIG9wdGlvbnMuZHNjcCk7Cisg
ICAgICAgIE1lc3NhZ2VzOjpOZXR3b3JrUlRDU29ja2V0OjpTZW5kVG8gbWVzc2FnZShkYXRhLCBS
VENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3MpLCBvcHRpb25zLnBhY2tldF9pZCwgb3B0
aW9ucy5wYWNrZXRfdGltZV9wYXJhbXMucnRwX3NlbmR0aW1lX2V4dGVuc2lvbl9pZCwgc3J0cEF1
dGhLZXksIG9wdGlvbnMucGFja2V0X3RpbWVfcGFyYW1zLnNydHBfcGFja2V0X2luZGV4LCBvcHRp
b25zLmRzY3ApOwogICAgICAgICBjb25uZWN0aW9uLnNlbmQoV1RGTW92ZShtZXNzYWdlKSwgaWRl
bnRpZmllcik7CiAgICAgfSk7CiAgICAgcmV0dXJuIHNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuaApp
bmRleCA3MTU3NDhiNGVkOTA2M2Y1ZTg4NDE0MmU2NGFiZjJiZTQxYmU2N2JmLi45NTc0MzdmOGRh
MjdiMGQ4NzgzMjBlNjM0ODljYjA2NGZkZmZlZDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmgKQEAg
LTY2LDcgKzY2LDcgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgV2ViUlRDU29ja2V0Owog
ICAgIHZvaWQgc2lnbmFsUmVhZFBhY2tldChjb25zdCBXZWJDb3JlOjpTaGFyZWRCdWZmZXImLCBy
dGM6OlNvY2tldEFkZHJlc3MmJiwgaW50NjRfdCk7CiAgICAgdm9pZCBzaWduYWxTZW50UGFja2V0
KGludCwgaW50NjRfdCk7Ci0gICAgdm9pZCBzaWduYWxBZGRyZXNzUmVhZHkoY29uc3QgU3RyaW5n
Jik7CisgICAgdm9pZCBzaWduYWxBZGRyZXNzUmVhZHkoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNz
Jik7CiAgICAgdm9pZCBzaWduYWxDb25uZWN0KCk7CiAgICAgdm9pZCBzaWduYWxDbG9zZShpbnQp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcAppbmRleCAwMWI1NGI2OTU1
MTYzZmFiNWQ1MTA2YmJjNTMxM2ZlNmIwNzNmYmQ0Li5jY2Q4ZDYwZDE1Zjg4MTQxZjliNzg2ZjZj
YzA2ZjgxMzY4YTk0NjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAK
QEAgLTQwLDE2ICs0MCwxMyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVpbnQ2NF90IExpYldlYlJU
Q1NvY2tldEZhY3Rvcnk6OnNfdW5pcXVlU29ja2V0SWRlbnRpZmllciA9IDA7CiB1aW50NjRfdCBM
aWJXZWJSVENTb2NrZXRGYWN0b3J5OjpzX3VuaXF1ZVJlc29sdmVySWRlbnRpZmllciA9IDA7CiAK
LXJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVNl
cnZlclRjcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHNvY2tldEFkZHJlc3MsIHVp
bnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKQorcnRjOjpBc3lu
Y1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlU2VydmVyVGNwU29j
a2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwg
dWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCiB7Ci0gICAgYXV0byBzb2NrZXQgPSBzdGQ6
Om1ha2VfdW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsICsrc191bmlxdWVTb2NrZXRJZGVu
dGlmaWVyLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6OlNlcnZlclRDUCwgc29ja2V0QWRkcmVzcywg
cnRjOjpTb2NrZXRBZGRyZXNzKCkpOworICAgIGF1dG8gc29ja2V0ID0gc3RkOjptYWtlX3VuaXF1
ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCArK3NfdW5pcXVlU29ja2V0SWRlbnRpZmllciwgTGli
V2ViUlRDU29ja2V0OjpUeXBlOjpTZXJ2ZXJUQ1AsIGFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVz
cygpKTsKICAgICBtX3NvY2tldHMuc2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBzb2NrZXQuZ2V0
KCkpOwogCi0gICAgYXV0byBpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCk7Ci0gICAg
YXV0byBhZGRyZXNzID0gc29ja2V0LT5sb2NhbEFkZHJlc3MoKS5Ub1N0cmluZygpOwotICAgIGNh
bGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIsIGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQsIG9w
dGlvbnNdKCkgewotICAgICAgICBTdHJpbmcgYWRkcmVzc1N0cmluZyA9IFN0cmluZyhhZGRyZXNz
LmRhdGEoKSwgYWRkcmVzcy5sZW5ndGgoKSk7Ci0gICAgICAgIGlmICghV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6
TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQoaWRlbnRpZmllciwgYWRk
cmVzc1N0cmluZywgbWluUG9ydCwgbWF4UG9ydCwgb3B0aW9ucyksIDApKSB7CisgICAgY2FsbE9u
TWFpblRocmVhZChbaWRlbnRpZmllciA9IHNvY2tldC0+aWRlbnRpZmllcigpLCBhZGRyZXNzID0g
UlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KGFkZHJlc3MpLCBtaW5Qb3J0LCBtYXhQb3J0LCBvcHRp
b25zXSgpIHsKKyAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29u
bmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6
OkNyZWF0ZVNlcnZlclRDUFNvY2tldChpZGVudGlmaWVyLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRy
ZXNzKGFkZHJlc3MpLCBtaW5Qb3J0LCBtYXhQb3J0LCBvcHRpb25zKSwgMCkpIHsKICAgICAgICAg
ICAgIC8vIEZJWE1FOiBTZXQgZXJyb3IgYmFjayB0byBzb2NrZXQKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQpAQCAtNTksMTYgKzU2LDEzIEBAIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQq
IExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6
CiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKLXJ0Yzo6QXN5bmNQYWNrZXRTb2Nr
ZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVVkcFNvY2tldChjb25zdCBydGM6OlNv
Y2tldEFkZHJlc3MmIHNvY2tldEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1h
eFBvcnQpCitydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpD
cmVhdGVVZHBTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZf
dCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQogewotICAgIGF1dG8gc29ja2V0ID0gc3RkOjpt
YWtlX3VuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCArK3NfdW5pcXVlU29ja2V0SWRlbnRp
ZmllciwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpVRFAsIHNvY2tldEFkZHJlc3MsIHJ0Yzo6U29j
a2V0QWRkcmVzcygpKTsKKyAgICBhdXRvIHNvY2tldCA9IHN0ZDo6bWFrZV91bmlxdWU8TGliV2Vi
UlRDU29ja2V0PigqdGhpcywgKytzX3VuaXF1ZVNvY2tldElkZW50aWZpZXIsIExpYldlYlJUQ1Nv
Y2tldDo6VHlwZTo6VURQLCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJlc3MoKSk7CiAgICAgbV9z
b2NrZXRzLnNldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgc29ja2V0LmdldCgpKTsKIAotICAgIGF1
dG8gaWRlbnRpZmllciA9IHNvY2tldC0+aWRlbnRpZmllcigpOwotICAgIGF1dG8gYWRkcmVzcyA9
IHNvY2tldC0+bG9jYWxBZGRyZXNzKCkuVG9TdHJpbmcoKTsKLSAgICBjYWxsT25NYWluVGhyZWFk
KFtpZGVudGlmaWVyLCBhZGRyZXNzLCBtaW5Qb3J0LCBtYXhQb3J0XSgpIHsKLSAgICAgICAgU3Ry
aW5nIGFkZHJlc3NTdHJpbmcgPSBTdHJpbmcoYWRkcmVzcy5kYXRhKCksIGFkZHJlc3MubGVuZ3Ro
KCkpOwotICAgICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0
aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3Jl
YXRlVURQU29ja2V0KGlkZW50aWZpZXIsIGFkZHJlc3NTdHJpbmcsIG1pblBvcnQsIG1heFBvcnQp
LCAwKSkgeworICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50
aWZpZXIoKSwgYWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShhZGRyZXNzKSwgbWlu
UG9ydCwgbWF4UG9ydF0oKSB7CisgICAgICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
bmV0d29ya0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1JU
Q1Byb3ZpZGVyOjpDcmVhdGVVRFBTb2NrZXQoaWRlbnRpZmllciwgUlRDTmV0d29yazo6U29ja2V0
QWRkcmVzcyhhZGRyZXNzKSwgbWluUG9ydCwgbWF4UG9ydCksIDApKSB7CiAgICAgICAgICAgICAv
LyBGSVhNRTogU2V0IGVycm9yIGJhY2sgdG8gc29ja2V0CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KQEAgLTc2LDE5ICs3MCwxNCBAQCBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJX
ZWJSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVVZHBTb2NrZXQoY29uc3QgcnRjOjpTb2NrZQogICAg
IHJldHVybiBzb2NrZXQucmVsZWFzZSgpOwogfQogCi1ydGM6OkFzeW5jUGFja2V0U29ja2V0KiBM
aWJXZWJSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRjOjpT
b2NrZXRBZGRyZXNzJiBsb2NhbFNvY2tldEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVz
cyYgcmVtb3RlU29ja2V0QWRkcmVzcywgY29uc3QgcnRjOjpQcm94eUluZm8mLCBjb25zdCBzdGQ6
OnN0cmluZyYsIGludCBvcHRpb25zKQorcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRD
U29ja2V0RmFjdG9yeTo6Q3JlYXRlQ2xpZW50VGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRk
cmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJl
c3MsIGNvbnN0IHJ0Yzo6UHJveHlJbmZvJiwgY29uc3Qgc3RkOjpzdHJpbmcmLCBpbnQgb3B0aW9u
cykKIHsKLSAgICBhdXRvIHNvY2tldCA9IHN0ZDo6bWFrZV91bmlxdWU8TGliV2ViUlRDU29ja2V0
PigqdGhpcywgKytzX3VuaXF1ZVNvY2tldElkZW50aWZpZXIsIExpYldlYlJUQ1NvY2tldDo6VHlw
ZTo6Q2xpZW50VENQLCBsb2NhbFNvY2tldEFkZHJlc3MsIHJlbW90ZVNvY2tldEFkZHJlc3MpOwor
ICAgIGF1dG8gc29ja2V0ID0gc3RkOjptYWtlX3VuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlz
LCArK3NfdW5pcXVlU29ja2V0SWRlbnRpZmllciwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpDbGll
bnRUQ1AsIGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcyk7CiAgICAgc29ja2V0LT5zZXRTdGF0
ZShMaWJXZWJSVENTb2NrZXQ6OlNUQVRFX0NPTk5FQ1RJTkcpOwogICAgIG1fc29ja2V0cy5zZXQo
c29ja2V0LT5pZGVudGlmaWVyKCksIHNvY2tldC5nZXQoKSk7CiAKLSAgICBhdXRvIGlkZW50aWZp
ZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKTsKLSAgICBhdXRvIGxvY2FsQWRkcmVzcyA9IHNvY2tl
dC0+bG9jYWxBZGRyZXNzKCkuVG9TdHJpbmcoKTsKLSAgICBhdXRvIHJlbW90ZUFkZHJlc3MgPSBz
b2NrZXQtPnJlbW90ZUFkZHJlc3MoKS5Ub1N0cmluZygpOwotICAgIGNhbGxPbk1haW5UaHJlYWQo
W2lkZW50aWZpZXIsIGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcywgb3B0aW9uc10oKSB7Ci0g
ICAgICAgIFN0cmluZyBsb2NhbEFkZHJlc3NTdHJpbmcgPSBTdHJpbmcobG9jYWxBZGRyZXNzLmRh
dGEoKSwgbG9jYWxBZGRyZXNzLmxlbmd0aCgpKTsKLSAgICAgICAgU3RyaW5nIHJlbW90ZUFkZHJl
c3NTdHJpbmcgPSBTdHJpbmcocmVtb3RlQWRkcmVzcy5kYXRhKCksIHJlbW90ZUFkZHJlc3MubGVu
Z3RoKCkpOwotICAgICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25u
ZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6
Q3JlYXRlQ2xpZW50VENQU29ja2V0KGlkZW50aWZpZXIsIGxvY2FsQWRkcmVzc1N0cmluZywgcmVt
b3RlQWRkcmVzc1N0cmluZywgb3B0aW9ucyksIDApKSB7CisgICAgY2FsbE9uTWFpblRocmVhZChb
aWRlbnRpZmllciA9IHNvY2tldC0+aWRlbnRpZmllcigpLCBsb2NhbEFkZHJlc3MgPSBSVENOZXR3
b3JrOjppc29sYXRlZENvcHkobG9jYWxBZGRyZXNzKSwgcmVtb3RlQWRkcmVzcyA9IFJUQ05ldHdv
cms6Omlzb2xhdGVkQ29weShyZW1vdGVBZGRyZXNzKSwgb3B0aW9uc10oKSB7CisgICAgICAgIGlm
ICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVDbGllbnRUQ1BTb2Nr
ZXQoaWRlbnRpZmllciwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhsb2NhbEFkZHJlc3MpLCBS
VENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MpLCBvcHRpb25zKSwgMCkpIHsK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBTZXQgZXJyb3IgYmFjayB0byBzb2NrZXQKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuY3BwCmluZGV4IDY0YTU1Y2ZiMTI3
M2U5MDFiZGYxYTA5MDYwOTJkNjYwYjBjZGExZGQuLmQ2ZGNlNDhhYTFiZjY1NGUwYjUyYWYyZTdl
NTk2M2ZhNWE2M2VhODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5jcHAKQEAgLTU0LDEwICs1NCwxMCBAQCBX
ZWJSVENTb2NrZXQ6OldlYlJUQ1NvY2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBmYWN0b3J5
LCB1aW50NjRfdCBpZGVudGlmaWVyKQogewogfQogCi12b2lkIFdlYlJUQ1NvY2tldDo6c2lnbmFs
QWRkcmVzc1JlYWR5KGNvbnN0IFN0cmluZyYgYWRkcmVzcykKK3ZvaWQgV2ViUlRDU29ja2V0Ojpz
aWduYWxBZGRyZXNzUmVhZHkoY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgYWRkcmVz
cykKIHsKICAgICBzaWduYWxPbk5ldHdvcmtUaHJlYWQobV9mYWN0b3J5LCBtX2lkZW50aWZpZXIs
IFthZGRyZXNzXShMaWJXZWJSVENTb2NrZXQmIHNvY2tldCkgewotICAgICAgICBzb2NrZXQuc2ln
bmFsQWRkcmVzc1JlYWR5KGFkZHJlc3MpOworICAgICAgICBzb2NrZXQuc2lnbmFsQWRkcmVzc1Jl
YWR5KGFkZHJlc3MudmFsdWUpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuaAppbmRleCA5YmM3
Y2EzNWYyZWRjMDlhOWM1Mzk3M2VmNzdiYjkyYjIwMTk4NDc3Li5kMjZkNjBmMjQ0YzI5NzM4ZTg0
OThjNWI1ZTU3ODE1ZWEyNmY0NjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmgKQEAgLTUyLDcgKzUyLDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIHNpZ25hbFJlYWRQYWNrZXQoY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJiwgY29uc3QgUlRDTmV0d29yazo6SVBBZGRyZXNzJiwgdWludDE2X3QgcG9y
dCwgaW50NjRfdCk7CiAgICAgdm9pZCBzaWduYWxTZW50UGFja2V0KGludCwgaW50NjRfdCk7Ci0g
ICAgdm9pZCBzaWduYWxBZGRyZXNzUmVhZHkoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBzaWdu
YWxBZGRyZXNzUmVhZHkoY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYpOwogICAgIHZv
aWQgc2lnbmFsQ29ubmVjdCgpOwogICAgIHZvaWQgc2lnbmFsQ2xvc2UoaW50KTsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRD
U29ja2V0Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMuaW4KaW5kZXggOTkzMTc4MTYyNTQwOWNkYTU4MDkw
ZDVkYTIwMWQwMzRmMDUzMjM5YS4uNDI2ZDZkMTkyOTNlNTE1MzQ3NzQyYWNlYmUzNDc0OWRhNGRh
ZmZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMuaW4KQEAgLTI1LDcgKzI1LDcg
QEAKIG1lc3NhZ2VzIC0+IFdlYlJUQ1NvY2tldCB7CiAgICAgU2lnbmFsUmVhZFBhY2tldChJUEM6
OkRhdGFSZWZlcmVuY2UgZGF0YSwgV2ViS2l0OjpSVENOZXR3b3JrOjpJUEFkZHJlc3MgYWRkcmVz
cywgdWludDE2X3QgcG9ydCwgaW50NjRfdCB0aW1lc3RhbXApCiAgICAgU2lnbmFsU2VudFBhY2tl
dChpbnQgcGFja2V0U2l6ZSwgaW50NjRfdCB0aW1lc3RhbXApCi0gICAgU2lnbmFsQWRkcmVzc1Jl
YWR5KFN0cmluZyBhZGRyZXNzKQorICAgIFNpZ25hbEFkZHJlc3NSZWFkeShXZWJLaXQ6OlJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MgYWRkcmVzcykKICAgICBTaWduYWxDb25uZWN0KCkKICAgICBT
aWduYWxDbG9zZShpbnQgZXJyb3IpCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301866</attachid>
            <date>2017-02-16 17:45:45 -0800</date>
            <delta_ts>2017-02-16 18:54:11 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-168474-20170216174307.patch</filename>
            <type>text/plain</type>
            <size>28156</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyNDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmUyOTEwNjVlNDg1NGQ2
ZDMzOTY3ZGMxY2FiN2U4YWQ1ZDcyMjA1MC4uNGNhNTBkNTIzODdkZWM1MTYwNzM1MDc5ZjcyZjll
NjZkZDFiYWQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE3LTAyLTE2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViUlRDXSBsaWJ3ZWJy
dGMgc29ja2V0IGFkZHJlc3NlcyBzaG91bGQgbm90IGJlIHBhc3NlZCBhcyBzdHJpbmdzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg0NzQKKworICAg
ICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFJlbW92aW5nIGFs
bCBzZXJhbGl6YXRpb24gb2Ygc29ja2V0IGFkZHJlc3NlcyBhcyBzdHJpbmdzLgorICAgICAgICBJ
bnN0ZWFkLCBhIGRlZGljYXRlZCBzZXJpYWxpemF0aW9uIGlzIHByb3ZpZGVkLgorICAgICAgICBU
aGlzIGFsbG93cyBwcm9wZXIgaGFuZGxpbmcgb2YgdmFyaW91cyBjYXNlcyBsaWtlIGFkZHJlc3Nl
cyB3aXRoIGJvdGggaG9zdG5hbWVzIGFuZCByZXNvbHZlZCBJUHMuCisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TGliV2ViUlRDU29ja2V0Q2xpZW50OjpzaWduYWxSZWFkUGFja2V0KToKKyAgICAgICAg
KFdlYktpdDo6TGliV2ViUlRDU29ja2V0Q2xpZW50OjpzaWduYWxTZW50UGFja2V0KToKKyAgICAg
ICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0Q2xpZW50OjpzaWduYWxBZGRyZXNzUmVhZHkpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVVEUFNvY2tldCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlU2VydmVyVENQU29ja2V0
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BT
b2NrZXQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlk
ZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVy
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRD
U29ja2V0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1NvY2tldDo6c2VuZFRvKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0Lm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIFNoYXJlZC9SVENOZXR3b3JrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UlRD
TmV0d29yazo6U29ja2V0QWRkcmVzczo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6UlRDTmV0
d29yazo6U29ja2V0QWRkcmVzczo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvUlRDTmV0d29y
ay5oOgorICAgICAgICAoV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzOjpTb2NrZXRB
ZGRyZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Nv
Y2tldC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldDo6c2lnbmFsQWRkcmVz
c1JlYWR5KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0OjpTZW5kVG8pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0Lmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlU2VydmVy
VGNwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Q3Jl
YXRlVWRwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6
Q3JlYXRlQ2xpZW50VGNwU29ja2V0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL1dlYlJUQ1NvY2tldC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1NvY2tldDo6c2ln
bmFsQWRkcmVzc1JlYWR5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dl
YlJUQ1NvY2tldC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRD
U29ja2V0Lm1lc3NhZ2VzLmluOgorCiAyMDE3LTAyLTE2ICBBYWthc2ggSmFpbiAgPGFha2FzaF9q
YWluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIG1ldGhvZCBXS0J1bmRsZVBh
Z2VDb3B5Q29udGV4dE1lbnVJdGVtVGl0bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5jcHAKaW5k
ZXggNWY3ZDcyMzk0NjU4MGI5YTE1ZThiYjY5ODI3ODMyOTEwZmY0YzBkOS4uMzNjNmJlNTA1MzM1
NzAxMGI3MGVhNDk5YTJhZTQ2MjIzMWY5ZGJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5j
cHAKQEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBMaWJXZWJSVENTb2NrZXRDbGllbnQ6OnNldE9wdGlv
bihpbnQgb3B0aW9uLCBpbnQgdmFsdWUpCiB2b2lkIExpYldlYlJUQ1NvY2tldENsaWVudDo6c2ln
bmFsUmVhZFBhY2tldChydGM6OkFzeW5jUGFja2V0U29ja2V0KiwgY29uc3QgY2hhciogdmFsdWUs
IHNpemVfdCBsZW5ndGgsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgY29uc3Qg
cnRjOjpQYWNrZXRUaW1lJiBwYWNrZXRUaW1lKQogewogICAgIGF1dG8gYnVmZmVyID0gV2ViQ29y
ZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUodmFsdWUsIGxlbmd0aCk7Ci0gICAgbV9ydGNQcm92aWRl
ci5zZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBtX2lkZW50aWZpZXIsIGJ1ZmZlciA9
IFdURk1vdmUoYnVmZmVyKSwgYWRkcmVzcywgcGFja2V0VGltZV0oSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uKSB7CisgICAgbV9ydGNQcm92aWRlci5zZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50
aWZpZXIgPSBtX2lkZW50aWZpZXIsIGJ1ZmZlciA9IFdURk1vdmUoYnVmZmVyKSwgYWRkcmVzcyA9
IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShhZGRyZXNzKSwgcGFja2V0VGltZV0oSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uKSB7CiAgICAgICAgIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGJ1ZmZlci0+ZGF0YSgpKSwgYnVmZmVyLT5z
aXplKCkpOwogICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6OldlYlJUQ1NvY2tldDo6
U2lnbmFsUmVhZFBhY2tldChkYXRhLCBSVENOZXR3b3JrOjpJUEFkZHJlc3MoYWRkcmVzcy5pcGFk
ZHIoKSksIGFkZHJlc3MucG9ydCgpLCBwYWNrZXRUaW1lLnRpbWVzdGFtcCksIGlkZW50aWZpZXIp
OwogICAgIH0pOwpAQCAtOTcsOSArOTcsOCBAQCB2b2lkIExpYldlYlJUQ1NvY2tldENsaWVudDo6
c2lnbmFsU2VudFBhY2tldChydGM6OkFzeW5jUGFja2V0U29ja2V0KiwgY29uc3QgcnRjOgogCiB2
b2lkIExpYldlYlJUQ1NvY2tldENsaWVudDo6c2lnbmFsQWRkcmVzc1JlYWR5KHJ0Yzo6QXN5bmNQ
YWNrZXRTb2NrZXQqLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MpCiB7Ci0gICAg
bV9ydGNQcm92aWRlci5zZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBtX2lkZW50aWZp
ZXIsIGFkZHJlc3NdKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikgewotICAgICAgICBhdXRv
IGFkZHJlc3NTdHJpbmcgPSBhZGRyZXNzLlRvU3RyaW5nKCk7Ci0gICAgICAgIGNvbm5lY3Rpb24u
c2VuZChNZXNzYWdlczo6V2ViUlRDU29ja2V0OjpTaWduYWxBZGRyZXNzUmVhZHkoU3RyaW5nKGFk
ZHJlc3NTdHJpbmcuZGF0YSgpLCBhZGRyZXNzU3RyaW5nLmxlbmd0aCgpKSksIGlkZW50aWZpZXIp
OworICAgIG1fcnRjUHJvdmlkZXIuc2VuZEZyb21NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gbV9p
ZGVudGlmaWVyLCBhZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KGFkZHJlc3MpXShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pIHsKKyAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1l
c3NhZ2VzOjpXZWJSVENTb2NrZXQ6OlNpZ25hbEFkZHJlc3NSZWFkeShSVENOZXR3b3JrOjpTb2Nr
ZXRBZGRyZXNzKGFkZHJlc3MpKSwgaWRlbnRpZmllcik7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlk
ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQ
cm92aWRlci5jcHAKaW5kZXggN2MyYThiODhiMDdkMjJlNzAzZDBmMjg5ZjYwZTkyZjljYTAyZDg2
NS4uYTY0ZjBmMmNkYjdlMzhlNGZhM2U2M2M3NWRjNzBjNThmNjk3NjkxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQ
cm92aWRlci5jcHAKQEAgLTY3LDM4ICs2NywyNiBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6
Y2xvc2UoKQogICAgIH0pOwogfQogCi12b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlVURQ
U29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgYWRkcmVzcywgdWludDE2
X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkKK3ZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpj
cmVhdGVVRFBTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29j
a2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkK
IHsKLSAgICBydGM6OlNvY2tldEFkZHJlc3Mgc29ja2V0QWRkcmVzczsKLSAgICBzb2NrZXRBZGRy
ZXNzLkZyb21TdHJpbmcoYWRkcmVzcy51dGY4KCkuZGF0YSgpKTsKLQotICAgIGNhbGxPblJUQ05l
dHdvcmtUaHJlYWQoW3RoaXMsIGlkZW50aWZpZXIsIHNvY2tldEFkZHJlc3MsIG1pblBvcnQsIG1h
eFBvcnRdKCkgewotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tl
dD4gc29ja2V0KG1fcGFja2V0U29ja2V0RmFjdG9yeS0+Q3JlYXRlVWRwU29ja2V0KHNvY2tldEFk
ZHJlc3MsIG1pblBvcnQsIG1heFBvcnQpKTsKKyAgICBjYWxsT25SVENOZXR3b3JrVGhyZWFkKFt0
aGlzLCBpZGVudGlmaWVyLCBhZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KGFkZHJl
c3MudmFsdWUpLCBtaW5Qb3J0LCBtYXhQb3J0XSgpIHsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRy
PHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+IHNvY2tldChtX3BhY2tldFNvY2tldEZhY3RvcnktPkNy
ZWF0ZVVkcFNvY2tldChhZGRyZXNzLCBtaW5Qb3J0LCBtYXhQb3J0KSk7CiAgICAgICAgIGFkZFNv
Y2tldChpZGVudGlmaWVyLCBzdGQ6Om1ha2VfdW5pcXVlPExpYldlYlJUQ1NvY2tldENsaWVudD4o
aWRlbnRpZmllciwgKnRoaXMsIFdURk1vdmUoc29ja2V0KSwgTGliV2ViUlRDU29ja2V0Q2xpZW50
OjpUeXBlOjpVRFApKTsKICAgICB9KTsKIH0KIAotdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNy
ZWF0ZVNlcnZlclRDUFNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGFk
ZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKQor
dm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNlcnZlclRDUFNvY2tldCh1aW50NjRfdCBp
ZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50
MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKIHsKLSAgICBydGM6
OlNvY2tldEFkZHJlc3Mgc29ja2V0QWRkcmVzczsKLSAgICBzb2NrZXRBZGRyZXNzLkZyb21TdHJp
bmcoYWRkcmVzcy51dGY4KCkuZGF0YSgpKTsKLQotICAgIGNhbGxPblJUQ05ldHdvcmtUaHJlYWQo
W3RoaXMsIGlkZW50aWZpZXIsIHNvY2tldEFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQsIG9wdGlv
bnNdKCkgewotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4g
c29ja2V0KG1fcGFja2V0U29ja2V0RmFjdG9yeS0+Q3JlYXRlU2VydmVyVGNwU29ja2V0KHNvY2tl
dEFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQsIG9wdGlvbnMpKTsKKyAgICBjYWxsT25SVENOZXR3
b3JrVGhyZWFkKFt0aGlzLCBpZGVudGlmaWVyLCBhZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0
ZWRDb3B5KGFkZHJlc3MudmFsdWUpLCBtaW5Qb3J0LCBtYXhQb3J0LCBvcHRpb25zXSgpIHsKKyAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+IHNvY2tldChtX3Bh
Y2tldFNvY2tldEZhY3RvcnktPkNyZWF0ZVNlcnZlclRjcFNvY2tldChhZGRyZXNzLCBtaW5Qb3J0
LCBtYXhQb3J0LCBvcHRpb25zKSk7CiAgICAgICAgIGFkZFNvY2tldChpZGVudGlmaWVyLCBzdGQ6
Om1ha2VfdW5pcXVlPExpYldlYlJUQ1NvY2tldENsaWVudD4oaWRlbnRpZmllciwgKnRoaXMsIFdU
Rk1vdmUoc29ja2V0KSwgTGliV2ViUlRDU29ja2V0Q2xpZW50OjpUeXBlOjpTZXJ2ZXJUQ1ApKTsK
ICAgICB9KTsKIH0KIAotdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNv
Y2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGxvY2FsQWRkcmVzcywgY29u
c3QgU3RyaW5nJiByZW1vdGVBZGRyZXNzLCBpbnQgb3B0aW9ucykKK3ZvaWQgTmV0d29ya1JUQ1By
b3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgY29uc3Qg
UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBSVENOZXR3b3Jr
OjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBpbnQgb3B0aW9ucykKIHsKLSAgICBydGM6
OlNvY2tldEFkZHJlc3Mgc29ja2V0TG9jYWxBZGRyZXNzOwotICAgIHNvY2tldExvY2FsQWRkcmVz
cy5Gcm9tU3RyaW5nKGxvY2FsQWRkcmVzcy51dGY4KCkuZGF0YSgpKTsKLQotICAgIHJ0Yzo6U29j
a2V0QWRkcmVzcyBzb2NrZXRSZW1vdGVBZGRyZXNzOwotICAgIHNvY2tldFJlbW90ZUFkZHJlc3Mu
RnJvbVN0cmluZyhyZW1vdGVBZGRyZXNzLnV0ZjgoKS5kYXRhKCkpOwotCi0gICAgY2FsbE9uUlRD
TmV0d29ya1RocmVhZChbdGhpcywgaWRlbnRpZmllciwgc29ja2V0TG9jYWxBZGRyZXNzLCBzb2Nr
ZXRSZW1vdGVBZGRyZXNzLCBvcHRpb25zXSgpIHsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0
Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+IHNvY2tldChtX3BhY2tldFNvY2tldEZhY3RvcnktPkNyZWF0
ZUNsaWVudFRjcFNvY2tldChzb2NrZXRMb2NhbEFkZHJlc3MsIHNvY2tldFJlbW90ZUFkZHJlc3Ms
IHsgfSwgeyB9LCBvcHRpb25zKSk7CisgICAgY2FsbE9uUlRDTmV0d29ya1RocmVhZChbdGhpcywg
aWRlbnRpZmllciwgbG9jYWxBZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KGxvY2Fs
QWRkcmVzcy52YWx1ZSksIHJlbW90ZUFkZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRlZENvcHko
cmVtb3RlQWRkcmVzcy52YWx1ZSksIG9wdGlvbnNdKCkgeworICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4gc29ja2V0KG1fcGFja2V0U29ja2V0RmFjdG9yeS0+
Q3JlYXRlQ2xpZW50VGNwU29ja2V0KGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcywgeyB9LCB7
IH0sIG9wdGlvbnMpKTsKICAgICAgICAgYWRkU29ja2V0KGlkZW50aWZpZXIsIHN0ZDo6bWFrZV91
bmlxdWU8TGliV2ViUlRDU29ja2V0Q2xpZW50PihpZGVudGlmaWVyLCAqdGhpcywgV1RGTW92ZShz
b2NrZXQpLCBMaWJXZWJSVENTb2NrZXRDbGllbnQ6OlR5cGU6OkNsaWVudFRDUCkpOwogICAgIH0p
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05l
dHdvcmtSVENQcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtSVENQcm92aWRlci5oCmluZGV4IDcwMGMzOGZiNDc3NjQ4OWFmOGM1YTc0YjhmNDdh
MzdiNTgwMWM2ZDguLjZhNzIxODJiZTJhOTcyOWEyODNjMGYxYmEwZTY5OTVlYTk5ZDBkNjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRD
UHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya1JUQ1Byb3ZpZGVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkxpYldlYlJU
Q1NvY2tldENsaWVudC5oIgogI2luY2x1ZGUgIk5ldHdvcmtSVENNb25pdG9yLmgiCisjaW5jbHVk
ZSAiUlRDTmV0d29yay5oIgogI2luY2x1ZGUgPENGTmV0d29yay9DRkhvc3QuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0xpYldlYlJUQ01hY3Jvcy5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9iYXNlL3NpZ3Ns
b3QuaD4KQEAgLTY4LDkgKzY5LDkgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBO
ZXR3b3JrUlRDUHJvdmlkZXIoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKIAotICAg
IHZvaWQgY3JlYXRlVURQU29ja2V0KHVpbnQ2NF90LCBjb25zdCBTdHJpbmcmLCB1aW50MTZfdCwg
dWludDE2X3QpOwotICAgIHZvaWQgY3JlYXRlQ2xpZW50VENQU29ja2V0KHVpbnQ2NF90LCBjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBpbnQpOwotICAgIHZvaWQgY3JlYXRlU2VydmVyVENQ
U29ja2V0KHVpbnQ2NF90LCBjb25zdCBTdHJpbmcmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZf
dCBtYXhQb3J0LCBpbnQpOworICAgIHZvaWQgY3JlYXRlVURQU29ja2V0KHVpbnQ2NF90LCBjb25z
dCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QsIHVpbnQxNl90KTsKKyAgICB2
b2lkIGNyZWF0ZUNsaWVudFRDUFNvY2tldCh1aW50NjRfdCwgY29uc3QgUlRDTmV0d29yazo6U29j
a2V0QWRkcmVzcyYsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBpbnQpOworICAg
IHZvaWQgY3JlYXRlU2VydmVyVENQU29ja2V0KHVpbnQ2NF90LCBjb25zdCBSVENOZXR3b3JrOjpT
b2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50KTsK
ICAgICB2b2lkIGNyZWF0ZVJlc29sdmVyKHVpbnQ2NF90LCBjb25zdCBTdHJpbmcmKTsKICAgICB2
b2lkIHN0b3BSZXNvbHZlcih1aW50NjRfdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1l
c3NhZ2VzLmluCmluZGV4IDBmNjZjYTk4OGM2YWUxZDJiYzJkMjJlMDMzMjM4YTZmMjM3OWUxZWQu
Ljk0MDk1MjE0NGUwMjg3M2JjOTI0YmE2YTM5YmJmYzkyYzhkNmY0ZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENQcm92aWRlci5tZXNzYWdlcy5pbgpAQCAtMjMsOSArMjMsOSBAQAogI2lmIFVTRShMSUJX
RUJSVEMpCiAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtSVENQcm92aWRlciB7Ci0gICAgQ3JlYXRlVURQ
U29ja2V0KGludCBpZGVudGlmaWVyLCBTdHJpbmcgbG9jYWxBZGRyZXNzLCB1aW50MTZfdCBtaW5Q
b3J0LCB1aW50MTZfdCBtYXhQb3J0KQotICAgIENyZWF0ZVNlcnZlclRDUFNvY2tldChpbnQgaWRl
bnRpZmllciwgU3RyaW5nIGxvY2FsQWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3Qg
bWF4UG9ydCwgaW50IG9wdGlvbnMpCi0gICAgQ3JlYXRlQ2xpZW50VENQU29ja2V0KGludCBpZGVu
dGlmaWVyLCBTdHJpbmcgbG9jYWxBZGRyZXNzLCBTdHJpbmcgcmVtb3RlQWRkcmVzcywgaW50IG9w
dGlvbnMpCisgICAgQ3JlYXRlVURQU29ja2V0KGludCBpZGVudGlmaWVyLCBXZWJLaXQ6OlJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50
MTZfdCBtYXhQb3J0KQorICAgIENyZWF0ZVNlcnZlclRDUFNvY2tldChpbnQgaWRlbnRpZmllciwg
V2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3Qg
bWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCisgICAgQ3JlYXRlQ2xpZW50
VENQU29ja2V0KGludCBpZGVudGlmaWVyLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJl
c3MgbG9jYWxBZGRyZXNzLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgcmVtb3Rl
QWRkcmVzcywgaW50IG9wdGlvbnMpCiAgICAgQ3JlYXRlUmVzb2x2ZXIodWludDY0X3QgaWRlbnRp
ZmllciwgU3RyaW5nIGFkZHJlc3MpCiAgICAgU3RvcFJlc29sdmVyKHVpbnQ2NF90IGlkZW50aWZp
ZXIpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMv
TmV0d29ya1JUQ1NvY2tldC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTmV0d29ya1JUQ1NvY2tldC5jcHAKaW5kZXggZWMwOWUzMGJjM2QyNmQ0ODI4YjFlYTg4YTFi
ZDI4NGUwMzM5MmM4Ni4uZmNkMTI0OThmNjdhZjQ2OWQ3NTkyMDgyNzNlZWI4N2QxYzgzNWY2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtS
VENTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9O
ZXR3b3JrUlRDU29ja2V0LmNwcApAQCAtNDIsMTIgKzQyLDEwIEBAIE5ldHdvcmtSVENTb2NrZXQ6
Ok5ldHdvcmtSVENTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVy
JiBydGNQCiB7CiB9CiAKLXZvaWQgTmV0d29ya1JUQ1NvY2tldDo6c2VuZFRvKGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYgZGF0YSwgY29uc3QgUlRDTmV0d29yazo6SVBBZGRyZXNzJiBhZGRyZXNz
LCB1aW50MTZfdCBwb3J0LCBpbnQgcGFja2V0SUQsIGludCBydHBTZW5kdGltZUV4dGVuc2lvbklE
LCBTdHJpbmcgc3J0cEF1dGgsIGludDY0X3Qgc3J0cFBhY2tldEluZGV4LCBpbnQgZHNjcCkKK3Zv
aWQgTmV0d29ya1JUQ1NvY2tldDo6c2VuZFRvKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0
YSwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgc29ja2V0QWRkcmVzcywgaW50IHBh
Y2tldElELCBpbnQgcnRwU2VuZHRpbWVFeHRlbnNpb25JRCwgU3RyaW5nIHNydHBBdXRoLCBpbnQ2
NF90IHNydHBQYWNrZXRJbmRleCwgaW50IGRzY3ApCiB7CiAgICAgYXV0byBidWZmZXIgPSBXZWJD
b3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpOwogCi0g
ICAgcnRjOjpTb2NrZXRBZGRyZXNzIHNvY2tldEFkZHJlc3MoYWRkcmVzcy52YWx1ZSwgcG9ydCk7
Ci0KICAgICBydGM6OlBhY2tldE9wdGlvbnMgb3B0aW9uczsKICAgICBvcHRpb25zLnBhY2tldF9p
ZCA9IHBhY2tldElEOwogICAgIG9wdGlvbnMucGFja2V0X3RpbWVfcGFyYW1zLnJ0cF9zZW5kdGlt
ZV9leHRlbnNpb25faWQgPSBydHBTZW5kdGltZUV4dGVuc2lvbklEOwpAQCAtNjAsNyArNTgsNyBA
QCB2b2lkIE5ldHdvcmtSVENTb2NrZXQ6OnNlbmRUbyhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
IGRhdGEsIGNvbnN0IFJUQ05ldHdvcms6OgogICAgICAgICBvcHRpb25zLnBhY2tldF90aW1lX3Bh
cmFtcy5zcnRwX2F1dGhfdGFnX2xlbiA9IC0xOwogICAgIAogICAgIG1fcnRjUHJvdmlkZXIuY2Fs
bFNvY2tldChtX2lkZW50aWZpZXIsIFtidWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlciksIHNvY2tldEFk
ZHJlc3MsIG9wdGlvbnNdKExpYldlYlJUQ1NvY2tldENsaWVudCYgY2xpZW50KSB7Ci0gICAgICAg
IGNsaWVudC5zZW5kVG8oYnVmZmVyLmdldCgpLCBzb2NrZXRBZGRyZXNzLCBvcHRpb25zKTsKKyAg
ICAgICAgY2xpZW50LnNlbmRUbyhidWZmZXIuZ2V0KCksIHNvY2tldEFkZHJlc3MudmFsdWUsIG9w
dGlvbnMpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5oIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuaAppbmRleCA0NDBmNzBmNGVhOGEwNTY3
MjE4NjZhMTQ1YTQxNzEyNGUzNDYxNGY3Li5lYTk5NTQwZTY5NzczMzQyMWU1NWJkNTkxZGE4YTk3
NzczOWMzZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTmV0d29ya1JUQ1NvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAg
IE5ldHdvcmtSVENTb2NrZXQodWludDY0X3QsIE5ldHdvcmtSVENQcm92aWRlciYpOwogICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiBw
cml2YXRlOgotICAgIHZvaWQgc2VuZFRvKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0
IFJUQ05ldHdvcms6OklQQWRkcmVzcyYsIHVpbnQxNl90IHBvcnQsIGludCBwYWNrZXRJRCwgaW50
IHJ0cFNlbmR0aW1lRXh0ZW5zaW9uSUQsIFN0cmluZyBzcnRwQXV0aCwgaW50NjRfdCBzcnRwUGFj
a2V0SW5kZXgsIGludCBkc2NwKTsKKyAgICB2b2lkIHNlbmRUbyhjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgaW50IHBhY2tldElELCBp
bnQgcnRwU2VuZHRpbWVFeHRlbnNpb25JRCwgU3RyaW5nIHNydHBBdXRoLCBpbnQ2NF90IHNydHBQ
YWNrZXRJbmRleCwgaW50IGRzY3ApOwogICAgIHZvaWQgY2xvc2UoKTsKICAgICB2b2lkIHNldE9w
dGlvbihpbnQgb3B0aW9uLCBpbnQgdmFsdWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0Lm1lc3Nh
Z2VzLmluCmluZGV4IGEyZWEzZTFiZTc2N2RjYjQxZTQ3MmI4NWNhNzdjZTRmNTczZWI0ZGEuLjcx
M2Q0MjNlODQ2MmRlZjczNWJhMGUwOGM1NmQ0YjM5ODhkY2QyOGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0Lm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRD
U29ja2V0Lm1lc3NhZ2VzLmluCkBAIC0yMyw3ICsyMyw3IEBACiAjaWYgVVNFKExJQldFQlJUQykK
IAogbWVzc2FnZXMgLT4gTmV0d29ya1JUQ1NvY2tldCB7Ci0gICAgdm9pZCBTZW5kVG8oSVBDOjpE
YXRhUmVmZXJlbmNlIGRhdGEsIFdlYktpdDo6UlRDTmV0d29yazo6SVBBZGRyZXNzIGFkZHJlc3Ms
IHVpbnQxNl90IHBvcnQsIGludCBwYWNrZXRJRCwgaW50IHJ0cFNlbmR0aW1lRXh0ZW5zaW9uSUQs
IFN0cmluZyBzcnRwQXV0aCwgaW50NjRfdCBzcnRwUGFja2V0SW5kZXgsIGludCBkc2NwKQorICAg
IHZvaWQgU2VuZFRvKElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhLCBXZWJLaXQ6OlJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MgYWRkcmVzcywgaW50IHBhY2tldElELCBpbnQgcnRwU2VuZHRpbWVFeHRl
bnNpb25JRCwgU3RyaW5nIHNydHBBdXRoLCBpbnQ2NF90IHNydHBQYWNrZXRJbmRleCwgaW50IGRz
Y3ApCiAgICAgdm9pZCBDbG9zZSgpCiAgICAgdm9pZCBTZXRPcHRpb24oaW50IG9wdGlvbiwgaW50
IHZhbHVlKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1JUQ05ldHdvcmsu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1JUQ05ldHdvcmsuY3BwCmluZGV4IGIxM2ViYzlj
MDdiZGEwNmQ5Y2I1OGNjOWE3ZDEwZDhiMzZmNTAyZGQuLjZjYmNhY2JmYTVkNzM4MGRmYWJiMWYw
OTBiZDEwMDY1OGQ4ZWEwY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9SVENO
ZXR3b3JrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUlRDTmV0d29yay5jcHAKQEAg
LTkyLDYgKzkyLDYzIEBAIHZvaWQgUlRDTmV0d29yazo6SVBBZGRyZXNzOjplbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgSVBDOjpEYXRhUmVmZXJlbmNl
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KCZhZGRyZXNzKSwgc2l6ZW9mKGFkZHJl
c3MpKTsKIH0KIAorcnRjOjpTb2NrZXRBZGRyZXNzIFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShj
b25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHZhbHVlKQoreworICAgIHJ0Yzo6U29ja2V0QWRkcmVz
cyBjb3B5OworICAgIGNvcHkuU2V0UG9ydCh2YWx1ZS5wb3J0KCkpOworICAgIGNvcHkuU2V0U2Nv
cGVJRCh2YWx1ZS5zY29wZV9pZCgpKTsKKyAgICBjb3B5LlNldElQKHN0ZDo6c3RyaW5nKHZhbHVl
Lmhvc3RuYW1lKCkuZGF0YSgpLCB2YWx1ZS5ob3N0bmFtZSgpLnNpemUoKSkpOworICAgIGlmICgh
dmFsdWUuSXNVbnJlc29sdmVkSVAoKSkKKyAgICAgICAgY29weS5TZXRSZXNvbHZlZElQKHZhbHVl
LmlwYWRkcigpKTsKKyAgICByZXR1cm4gcnRjOjpTb2NrZXRBZGRyZXNzKGNvcHkpOworfQorCiti
b29sIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3M6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29k
ZXIsIFNvY2tldEFkZHJlc3MmIHJlc3VsdCkKK3sKKyAgICB1aW50MTZfdCBwb3J0OworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocG9ydCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpbnQg
c2NvcGVJZDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNjb3BlSWQpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgcmVzdWx0LnZhbHVlLlNldFBvcnQocG9ydCk7CisgICAgcmVzdWx0LnZh
bHVlLlNldFNjb3BlSUQoc2NvcGVJZCk7CisKKyAgICBJUEM6OkRhdGFSZWZlcmVuY2UgaG9zdG5h
bWU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShob3N0bmFtZSkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICByZXN1bHQudmFsdWUuU2V0SVAoc3RkOjpzdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oaG9zdG5hbWUuZGF0YSgpKSwgaG9zdG5hbWUuc2l6ZSgpKSk7CisKKyAg
ICBib29sIGlzVW5yZXNvbHZlZDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGlzVW5yZXNvbHZl
ZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoaXNVbnJlc29sdmVkKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgIFJUQ05ldHdvcms6OklQQWRkcmVzcyBpcEFkZHJlc3M7Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShpcEFkZHJlc3MpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcmVzdWx0LnZhbHVlLlNldFJlc29sdmVkSVAoaXBBZGRyZXNzLnZhbHVlKTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzOjplbmNvZGUo
SVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdmFsdWUucG9y
dCgpOworICAgIGVuY29kZXIgPDwgdmFsdWUuc2NvcGVfaWQoKTsKKworICAgIGF1dG8gaG9zdG5h
bWUgPSB2YWx1ZS5ob3N0bmFtZSgpOworICAgIGVuY29kZXIgPDwgSVBDOjpEYXRhUmVmZXJlbmNl
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGhvc3RuYW1lLmRhdGEoKSksIGhvc3Ru
YW1lLmxlbmd0aCgpKTsKKworICAgIGVuY29kZXIgPDwgdmFsdWUuSXNVbnJlc29sdmVkSVAoKTsK
KyAgICBpZiAodmFsdWUuSXNVbnJlc29sdmVkSVAoKSkgeworICAgICAgICBlbmNvZGVyIDw8IHRy
dWU7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZW5jb2RlciA8PCBmYWxzZTsKKyAgICBl
bmNvZGVyIDw8IFJUQ05ldHdvcms6OklQQWRkcmVzcyh2YWx1ZS5pcGFkZHIoKSk7Cit9CisKIGJv
b2wgUlRDTmV0d29yazo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUlRDTmV0d29yayYg
cmVzdWx0KQogewogICAgIElQQzo6RGF0YVJlZmVyZW5jZSBuYW1lLCBkZXNjcmlwdGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9SVENOZXR3b3JrLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvUlRDTmV0d29yay5oCmluZGV4IDkxMGZiZmMxOTM4MmI5ODU3NzAxYTZkNDNk
ZTQ2NzFlMjMzZjExMzIuLmEwMzBhMWFlYjU2OGRjZDlkZDIxNmRmN2NlYmUzMzM0MDU4OTg4YjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9SVENOZXR3b3JrLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1JUQ05ldHdvcmsuaApAQCAtNTcsNiArNTcsMTggQEAgc3RydWN0
IFJUQ05ldHdvcmsgewogICAgICAgICBydGM6OklQQWRkcmVzcyB2YWx1ZTsKICAgICB9OwogCisg
ICAgc3RhdGljIHJ0Yzo6U29ja2V0QWRkcmVzcyBpc29sYXRlZENvcHkoY29uc3QgcnRjOjpTb2Nr
ZXRBZGRyZXNzJik7CisKKyAgICBzdHJ1Y3QgU29ja2V0QWRkcmVzcyB7CisgICAgICAgIFNvY2tl
dEFkZHJlc3MoKSA9IGRlZmF1bHQ7CisgICAgICAgIGV4cGxpY2l0IFNvY2tldEFkZHJlc3MoY29u
c3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzKTogdmFsdWUoYWRkcmVzcykgeyB9CisKKyAg
ICAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CisgICAgICAgIHN0YXRpYyBi
b29sIGRlY29kZShJUEM6OkRlY29kZXImLCBTb2NrZXRBZGRyZXNzJik7CisKKyAgICAgICAgcnRj
OjpTb2NrZXRBZGRyZXNzIHZhbHVlOworICAgIH07CisKICAgICBzdGQ6OnN0cmluZyBuYW1lOwog
ICAgIHN0ZDo6c3RyaW5nIGRlc2NyaXB0aW9uOwogICAgIElQQWRkcmVzcyBwcmVmaXg7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q1NvY2tldC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ1NvY2tldC5jcHAKaW5kZXggM2QyODIxZDdkYWY0ODFkNmI1NDI4OGUyMjcwOGM0YTM1
MDg4ZjIwOC4uMjAyNzdkNTc3OTEzN2RjNmQzNTQ3MzRmYTI5MGFjZWZkZjhkNmNlZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENT
b2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
TGliV2ViUlRDU29ja2V0LmNwcApAQCAtNzEsOSArNzEsOSBAQCBydGM6OlNvY2tldEFkZHJlc3Mg
TGliV2ViUlRDU29ja2V0OjpHZXRSZW1vdGVBZGRyZXNzKCkgY29uc3QKICAgICByZXR1cm4gbV9y
ZW1vdGVBZGRyZXNzOwogfQogCi12b2lkIExpYldlYlJUQ1NvY2tldDo6c2lnbmFsQWRkcmVzc1Jl
YWR5KGNvbnN0IFN0cmluZyYgYWRkcmVzcykKK3ZvaWQgTGliV2ViUlRDU29ja2V0OjpzaWduYWxB
ZGRyZXNzUmVhZHkoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzKQogewotICAgIG1f
bG9jYWxBZGRyZXNzLkZyb21TdHJpbmcoYWRkcmVzcy51dGY4KCkuZGF0YSgpKTsKKyAgICBtX2xv
Y2FsQWRkcmVzcyA9IGFkZHJlc3M7CiAgICAgbV9zdGF0ZSA9IChtX3R5cGUgPT0gVHlwZTo6Q2xp
ZW50VENQKSA/IFNUQVRFX0NPTk5FQ1RFRCA6IFNUQVRFX0JPVU5EOwogICAgIFNpZ25hbEFkZHJl
c3NSZWFkeSh0aGlzLCBtX2xvY2FsQWRkcmVzcyk7CiB9CkBAIC0xMzYsNyArMTM2LDcgQEAgaW50
IExpYldlYlJUQ1NvY2tldDo6U2VuZFRvKGNvbnN0IHZvaWQgKnZhbHVlLCBzaXplX3Qgc2l6ZSwg
Y29uc3QgcnRjOjpTb2NrZXRBZGQKICAgICBzZW5kT25NYWluVGhyZWFkKFtpZGVudGlmaWVyLCBi
dWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlciksIGFkZHJlc3MsIG9wdGlvbnNdKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbikgewogICAgICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YShyZWludGVy
cHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihidWZmZXItPmRhdGEoKSksIGJ1ZmZlci0+c2l6ZSgp
KTsKICAgICAgICAgU3RyaW5nIHNydHBBdXRoS2V5ID0gYXV0aEtleShvcHRpb25zKTsKLSAgICAg
ICAgTWVzc2FnZXM6Ok5ldHdvcmtSVENTb2NrZXQ6OlNlbmRUbyBtZXNzYWdlKGRhdGEsIFJUQ05l
dHdvcms6OklQQWRkcmVzcyhhZGRyZXNzLmlwYWRkcigpKSwgYWRkcmVzcy5wb3J0KCksIG9wdGlv
bnMucGFja2V0X2lkLCBvcHRpb25zLnBhY2tldF90aW1lX3BhcmFtcy5ydHBfc2VuZHRpbWVfZXh0
ZW5zaW9uX2lkLCBzcnRwQXV0aEtleSwgb3B0aW9ucy5wYWNrZXRfdGltZV9wYXJhbXMuc3J0cF9w
YWNrZXRfaW5kZXgsIG9wdGlvbnMuZHNjcCk7CisgICAgICAgIE1lc3NhZ2VzOjpOZXR3b3JrUlRD
U29ja2V0OjpTZW5kVG8gbWVzc2FnZShkYXRhLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFk
ZHJlc3MpLCBvcHRpb25zLnBhY2tldF9pZCwgb3B0aW9ucy5wYWNrZXRfdGltZV9wYXJhbXMucnRw
X3NlbmR0aW1lX2V4dGVuc2lvbl9pZCwgc3J0cEF1dGhLZXksIG9wdGlvbnMucGFja2V0X3RpbWVf
cGFyYW1zLnNydHBfcGFja2V0X2luZGV4LCBvcHRpb25zLmRzY3ApOwogICAgICAgICBjb25uZWN0
aW9uLnNlbmQoV1RGTW92ZShtZXNzYWdlKSwgaWRlbnRpZmllcik7CiAgICAgfSk7CiAgICAgcmV0
dXJuIHNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1NvY2tldC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuaAppbmRleCA3MTU3NDhiNGVkOTA2M2Y1ZTg4NDE0
MmU2NGFiZjJiZTQxYmU2N2JmLi45NTc0MzdmOGRhMjdiMGQ4NzgzMjBlNjM0ODljYjA2NGZkZmZl
ZDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ1NvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmgKQEAgLTY2LDcgKzY2LDcgQEAgcHJpdmF0ZToKICAg
ICBmcmllbmQgY2xhc3MgV2ViUlRDU29ja2V0OwogICAgIHZvaWQgc2lnbmFsUmVhZFBhY2tldChj
b25zdCBXZWJDb3JlOjpTaGFyZWRCdWZmZXImLCBydGM6OlNvY2tldEFkZHJlc3MmJiwgaW50NjRf
dCk7CiAgICAgdm9pZCBzaWduYWxTZW50UGFja2V0KGludCwgaW50NjRfdCk7Ci0gICAgdm9pZCBz
aWduYWxBZGRyZXNzUmVhZHkoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBzaWduYWxBZGRyZXNz
UmVhZHkoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJik7CiAgICAgdm9pZCBzaWduYWxDb25uZWN0
KCk7CiAgICAgdm9pZCBzaWduYWxDbG9zZShpbnQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5LmNwcAppbmRleCAwMWI1NGI2OTU1MTYzZmFiNWQ1MTA2YmJjNTMxM2ZlNmIwNzNm
YmQ0Li5jY2Q4ZDYwZDE1Zjg4MTQxZjliNzg2ZjZjYzA2ZjgxMzY4YTk0NjA5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tl
dEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKQEAgLTQwLDE2ICs0MCwxMyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIHVpbnQ2NF90IExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OnNfdW5pcXVlU29j
a2V0SWRlbnRpZmllciA9IDA7CiB1aW50NjRfdCBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpzX3Vu
aXF1ZVJlc29sdmVySWRlbnRpZmllciA9IDA7CiAKLXJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExp
YldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6OlNv
Y2tldEFkZHJlc3MmIHNvY2tldEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1h
eFBvcnQsIGludCBvcHRpb25zKQorcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29j
a2V0RmFjdG9yeTo6Q3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVz
cyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlv
bnMpCiB7Ci0gICAgYXV0byBzb2NrZXQgPSBzdGQ6Om1ha2VfdW5pcXVlPExpYldlYlJUQ1NvY2tl
dD4oKnRoaXMsICsrc191bmlxdWVTb2NrZXRJZGVudGlmaWVyLCBMaWJXZWJSVENTb2NrZXQ6OlR5
cGU6OlNlcnZlclRDUCwgc29ja2V0QWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNzKCkpOworICAg
IGF1dG8gc29ja2V0ID0gc3RkOjptYWtlX3VuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCAr
K3NfdW5pcXVlU29ja2V0SWRlbnRpZmllciwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpTZXJ2ZXJU
Q1AsIGFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsKICAgICBtX3NvY2tldHMuc2V0KHNv
Y2tldC0+aWRlbnRpZmllcigpLCBzb2NrZXQuZ2V0KCkpOwogCi0gICAgYXV0byBpZGVudGlmaWVy
ID0gc29ja2V0LT5pZGVudGlmaWVyKCk7Ci0gICAgYXV0byBhZGRyZXNzID0gc29ja2V0LT5sb2Nh
bEFkZHJlc3MoKS5Ub1N0cmluZygpOwotICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIs
IGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQsIG9wdGlvbnNdKCkgewotICAgICAgICBTdHJpbmcg
YWRkcmVzc1N0cmluZyA9IFN0cmluZyhhZGRyZXNzLmRhdGEoKSwgYWRkcmVzcy5sZW5ndGgoKSk7
Ci0gICAgICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24o
KS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVT
ZXJ2ZXJUQ1BTb2NrZXQoaWRlbnRpZmllciwgYWRkcmVzc1N0cmluZywgbWluUG9ydCwgbWF4UG9y
dCwgb3B0aW9ucyksIDApKSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbaWRlbnRpZmllciA9IHNv
Y2tldC0+aWRlbnRpZmllcigpLCBhZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KGFk
ZHJlc3MpLCBtaW5Qb3J0LCBtYXhQb3J0LCBvcHRpb25zXSgpIHsKKyAgICAgICAgaWYgKCFXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZVNlcnZlclRDUFNvY2tldChpZGVu
dGlmaWVyLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3MpLCBtaW5Qb3J0LCBtYXhQ
b3J0LCBvcHRpb25zKSwgMCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBTZXQgZXJyb3IgYmFj
ayB0byBzb2NrZXQKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtNTksMTYgKzU2
LDEzIEBAIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNy
ZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6CiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNl
KCk7CiB9CiAKLXJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6
OkNyZWF0ZVVkcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHNvY2tldEFkZHJlc3Ms
IHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpCitydGM6OkFzeW5jUGFja2V0U29j
a2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVVZHBTb2NrZXQoY29uc3QgcnRjOjpT
b2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0
KQogewotICAgIGF1dG8gc29ja2V0ID0gc3RkOjptYWtlX3VuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+
KCp0aGlzLCArK3NfdW5pcXVlU29ja2V0SWRlbnRpZmllciwgTGliV2ViUlRDU29ja2V0OjpUeXBl
OjpVRFAsIHNvY2tldEFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsKKyAgICBhdXRvIHNv
Y2tldCA9IHN0ZDo6bWFrZV91bmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgKytzX3VuaXF1
ZVNvY2tldElkZW50aWZpZXIsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6VURQLCBhZGRyZXNzLCBy
dGM6OlNvY2tldEFkZHJlc3MoKSk7CiAgICAgbV9zb2NrZXRzLnNldChzb2NrZXQtPmlkZW50aWZp
ZXIoKSwgc29ja2V0LmdldCgpKTsKIAotICAgIGF1dG8gaWRlbnRpZmllciA9IHNvY2tldC0+aWRl
bnRpZmllcigpOwotICAgIGF1dG8gYWRkcmVzcyA9IHNvY2tldC0+bG9jYWxBZGRyZXNzKCkuVG9T
dHJpbmcoKTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyLCBhZGRyZXNzLCBtaW5Q
b3J0LCBtYXhQb3J0XSgpIHsKLSAgICAgICAgU3RyaW5nIGFkZHJlc3NTdHJpbmcgPSBTdHJpbmco
YWRkcmVzcy5kYXRhKCksIGFkZHJlc3MubGVuZ3RoKCkpOwotICAgICAgICBpZiAoIVdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlVURQU29ja2V0KGlkZW50aWZpZXIsIGFk
ZHJlc3NTdHJpbmcsIG1pblBvcnQsIG1heFBvcnQpLCAwKSkgeworICAgIGNhbGxPbk1haW5UaHJl
YWQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgYWRkcmVzcyA9IFJUQ05ldHdv
cms6Omlzb2xhdGVkQ29weShhZGRyZXNzKSwgbWluUG9ydCwgbWF4UG9ydF0oKSB7CisgICAgICAg
IGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS5jb25uZWN0
aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVVRFBTb2NrZXQo
aWRlbnRpZmllciwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhhZGRyZXNzKSwgbWluUG9ydCwg
bWF4UG9ydCksIDApKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogU2V0IGVycm9yIGJhY2sgdG8g
c29ja2V0CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTc2LDE5ICs3MCwxNCBA
QCBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVV
ZHBTb2NrZXQoY29uc3QgcnRjOjpTb2NrZQogICAgIHJldHVybiBzb2NrZXQucmVsZWFzZSgpOwog
fQogCi1ydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpDcmVh
dGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbFNvY2tldEFk
ZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlU29ja2V0QWRkcmVzcywgY29u
c3QgcnRjOjpQcm94eUluZm8mLCBjb25zdCBzdGQ6OnN0cmluZyYsIGludCBvcHRpb25zKQorcnRj
OjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlQ2xpZW50
VGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIGNvbnN0IHJ0Yzo6UHJveHlJbmZvJiwg
Y29uc3Qgc3RkOjpzdHJpbmcmLCBpbnQgb3B0aW9ucykKIHsKLSAgICBhdXRvIHNvY2tldCA9IHN0
ZDo6bWFrZV91bmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgKytzX3VuaXF1ZVNvY2tldElk
ZW50aWZpZXIsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6Q2xpZW50VENQLCBsb2NhbFNvY2tldEFk
ZHJlc3MsIHJlbW90ZVNvY2tldEFkZHJlc3MpOworICAgIGF1dG8gc29ja2V0ID0gc3RkOjptYWtl
X3VuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCArK3NfdW5pcXVlU29ja2V0SWRlbnRpZmll
ciwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpDbGllbnRUQ1AsIGxvY2FsQWRkcmVzcywgcmVtb3Rl
QWRkcmVzcyk7CiAgICAgc29ja2V0LT5zZXRTdGF0ZShMaWJXZWJSVENTb2NrZXQ6OlNUQVRFX0NP
Tk5FQ1RJTkcpOwogICAgIG1fc29ja2V0cy5zZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIHNvY2tl
dC5nZXQoKSk7CiAKLSAgICBhdXRvIGlkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKTsK
LSAgICBhdXRvIGxvY2FsQWRkcmVzcyA9IHNvY2tldC0+bG9jYWxBZGRyZXNzKCkuVG9TdHJpbmco
KTsKLSAgICBhdXRvIHJlbW90ZUFkZHJlc3MgPSBzb2NrZXQtPnJlbW90ZUFkZHJlc3MoKS5Ub1N0
cmluZygpOwotICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIsIGxvY2FsQWRkcmVzcywg
cmVtb3RlQWRkcmVzcywgb3B0aW9uc10oKSB7Ci0gICAgICAgIFN0cmluZyBsb2NhbEFkZHJlc3NT
dHJpbmcgPSBTdHJpbmcobG9jYWxBZGRyZXNzLmRhdGEoKSwgbG9jYWxBZGRyZXNzLmxlbmd0aCgp
KTsKLSAgICAgICAgU3RyaW5nIHJlbW90ZUFkZHJlc3NTdHJpbmcgPSBTdHJpbmcocmVtb3RlQWRk
cmVzcy5kYXRhKCksIHJlbW90ZUFkZHJlc3MubGVuZ3RoKCkpOwotICAgICAgICBpZiAoIVdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlQ2xpZW50VENQU29ja2V0KGlkZW50
aWZpZXIsIGxvY2FsQWRkcmVzc1N0cmluZywgcmVtb3RlQWRkcmVzc1N0cmluZywgb3B0aW9ucyks
IDApKSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbaWRlbnRpZmllciA9IHNvY2tldC0+aWRlbnRp
ZmllcigpLCBsb2NhbEFkZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRlZENvcHkobG9jYWxBZGRy
ZXNzKSwgcmVtb3RlQWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShyZW1vdGVBZGRy
ZXNzKSwgb3B0aW9uc10oKSB7CisgICAgICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
bmV0d29ya0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1JU
Q1Byb3ZpZGVyOjpDcmVhdGVDbGllbnRUQ1BTb2NrZXQoaWRlbnRpZmllciwgUlRDTmV0d29yazo6
U29ja2V0QWRkcmVzcyhsb2NhbEFkZHJlc3MpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHJl
bW90ZUFkZHJlc3MpLCBvcHRpb25zKSwgMCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBTZXQg
ZXJyb3IgYmFjayB0byBzb2NrZXQKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENT
b2NrZXQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJS
VENTb2NrZXQuY3BwCmluZGV4IDY0YTU1Y2ZiMTI3M2U5MDFiZGYxYTA5MDYwOTJkNjYwYjBjZGEx
ZGQuLmQ2ZGNlNDhhYTFiZjY1NGUwYjUyYWYyZTdlNTk2M2ZhNWE2M2VhODQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Nv
Y2tldC5jcHAKQEAgLTU0LDEwICs1NCwxMCBAQCBXZWJSVENTb2NrZXQ6OldlYlJUQ1NvY2tldChM
aWJXZWJSVENTb2NrZXRGYWN0b3J5JiBmYWN0b3J5LCB1aW50NjRfdCBpZGVudGlmaWVyKQogewog
fQogCi12b2lkIFdlYlJUQ1NvY2tldDo6c2lnbmFsQWRkcmVzc1JlYWR5KGNvbnN0IFN0cmluZyYg
YWRkcmVzcykKK3ZvaWQgV2ViUlRDU29ja2V0OjpzaWduYWxBZGRyZXNzUmVhZHkoY29uc3QgUlRD
TmV0d29yazo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcykKIHsKICAgICBzaWduYWxPbk5ldHdvcmtU
aHJlYWQobV9mYWN0b3J5LCBtX2lkZW50aWZpZXIsIFthZGRyZXNzXShMaWJXZWJSVENTb2NrZXQm
IHNvY2tldCkgewotICAgICAgICBzb2NrZXQuc2lnbmFsQWRkcmVzc1JlYWR5KGFkZHJlc3MpOwor
ICAgICAgICBzb2NrZXQuc2lnbmFsQWRkcmVzc1JlYWR5KGFkZHJlc3MudmFsdWUpOwogICAgIH0p
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL1dlYlJUQ1NvY2tldC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9XZWJSVENTb2NrZXQuaAppbmRleCA5YmM3Y2EzNWYyZWRjMDlhOWM1Mzk3M2VmNzdiYjky
YjIwMTk4NDc3Li5kMjZkNjBmMjQ0YzI5NzM4ZTg0OThjNWI1ZTU3ODE1ZWEyNmY0NjM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Nv
Y2tldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2Vi
UlRDU29ja2V0LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lk
IHNpZ25hbFJlYWRQYWNrZXQoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgUlRDTmV0
d29yazo6SVBBZGRyZXNzJiwgdWludDE2X3QgcG9ydCwgaW50NjRfdCk7CiAgICAgdm9pZCBzaWdu
YWxTZW50UGFja2V0KGludCwgaW50NjRfdCk7Ci0gICAgdm9pZCBzaWduYWxBZGRyZXNzUmVhZHko
Y29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBzaWduYWxBZGRyZXNzUmVhZHkoY29uc3QgUlRDTmV0
d29yazo6U29ja2V0QWRkcmVzcyYpOwogICAgIHZvaWQgc2lnbmFsQ29ubmVjdCgpOwogICAgIHZv
aWQgc2lnbmFsQ2xvc2UoaW50KTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMu
aW4KaW5kZXggOTkzMTc4MTYyNTQwOWNkYTU4MDkwZDVkYTIwMWQwMzRmMDUzMjM5YS4uNDI2ZDZk
MTkyOTNlNTE1MzQ3NzQyYWNlYmUzNDc0OWRhNGRhZmZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2Nr
ZXQubWVzc2FnZXMuaW4KQEAgLTI1LDcgKzI1LDcgQEAKIG1lc3NhZ2VzIC0+IFdlYlJUQ1NvY2tl
dCB7CiAgICAgU2lnbmFsUmVhZFBhY2tldChJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSwgV2ViS2l0
OjpSVENOZXR3b3JrOjpJUEFkZHJlc3MgYWRkcmVzcywgdWludDE2X3QgcG9ydCwgaW50NjRfdCB0
aW1lc3RhbXApCiAgICAgU2lnbmFsU2VudFBhY2tldChpbnQgcGFja2V0U2l6ZSwgaW50NjRfdCB0
aW1lc3RhbXApCi0gICAgU2lnbmFsQWRkcmVzc1JlYWR5KFN0cmluZyBhZGRyZXNzKQorICAgIFNp
Z25hbEFkZHJlc3NSZWFkeShXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgYWRkcmVz
cykKICAgICBTaWduYWxDb25uZWN0KCkKICAgICBTaWduYWxDbG9zZShpbnQgZXJyb3IpCiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>