<?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>209359</bug_id>
          
          <creation_ts>2020-03-20 13:24:08 -0700</creation_ts>
          <short_desc>Port window.postMessage to the HTML event loop</short_desc>
          <delta_ts>2020-03-24 23:20:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>202843</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1632241</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-20 13:24:08 -0700</bug_when>
    <thetext>Port window.postMessage to the HTML event loop instead of using a 0-timer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632242</commentid>
    <comment_count>1</comment_count>
      <attachid>394116</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-20 13:25:28 -0700</bug_when>
    <thetext>Created attachment 394116
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632280</commentid>
    <comment_count>2</comment_count>
      <attachid>394127</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-20 14:24:17 -0700</bug_when>
    <thetext>Created attachment 394127
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632355</commentid>
    <comment_count>3</comment_count>
      <attachid>394127</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-20 16:12:39 -0700</bug_when>
    <thetext>Comment on attachment 394127
Patch

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

&gt; Source/WebCore/inspector/agents/WebDebuggerAgent.cpp:115
&gt; +int WebDebuggerAgent::willPostMessage()

Why don&apos;t we make m_nextPostMessageIdentifier unsigned and make this unsigned?  I don&apos;t see any need for negative values anywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632356</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-20 16:14:12 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #3)
&gt; Comment on attachment 394127 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=394127&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/agents/WebDebuggerAgent.cpp:115
&gt; &gt; +int WebDebuggerAgent::willPostMessage()
&gt; 
&gt; Why don&apos;t we make m_nextPostMessageIdentifier unsigned and make this
&gt; unsigned?  I don&apos;t see any need for negative values anywhere.

I don&apos;t disagree with you but this is not new. WebInspector was already using int as identifier type for those. We likely can switch to uint64_t but it will be more refactoring as it is being passed to WebInspector internals.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632358</commentid>
    <comment_count>5</comment_count>
      <attachid>394127</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-20 16:15:09 -0700</bug_when>
    <thetext>Comment on attachment 394127
Patch

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

&gt; Source/WebCore/inspector/agents/WebDebuggerAgent.cpp:155
&gt; +    willDispatchAsyncCall(InspectorDebuggerAgent::AsyncCallType::PostMessage, postMessageIdentifier);

and here the int is being passed below.

&gt; Source/WebCore/inspector/agents/WebDebuggerAgent.h:70
&gt;      int m_nextPostMessageIdentifier { 1 };

See int here..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632363</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-20 16:19:05 -0700</bug_when>
    <thetext>Will look in a follow-up to see if I can easily switch that int into a uint64_t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632878</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-23 09:51:30 -0700</bug_when>
    <thetext>Committed r258850: &lt;https://trac.webkit.org/changeset/258850&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394127.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632881</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-23 09:52:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/60778822&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394116</attachid>
            <date>2020-03-20 13:25:28 -0700</date>
            <delta_ts>2020-03-20 14:24:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209359-20200320132527.patch</filename>
            <type>text/plain</type>
            <size>22425</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzg0N2IzODRmZWU3MzI4
ODlkNjU4NzdjOTE4YWQ0MGU0M2M1MTJkOS4uMzU3MTg1N2Y1MmY3NDk2MDlhOGUxMjNlZjUwODQy
YzcwYTM3MjAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIwLTAzLTIwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUG9ydCB3aW5kb3cucG9zdE1l
c3NhZ2UgdG8gdGhlIEhUTUwgZXZlbnQgbG9vcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUG9ydCB3aW5kb3cucG9zdE1lc3NhZ2UgdG8gdGhlIEhUTUwg
ZXZlbnQgbG9vcCBpbnN0ZWFkIG9mIHVzaW5nIGEgMC10aW1lci4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUG9zdE1lc3NhZ2VJbXBsKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUG9zdE1lc3NhZ2VJbXBsKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmFpbFBvc3RNZXNz
YWdlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxEaXNwYXRjaFBvc3RNZXNzYWdlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZERpc3BhdGNoUG9zdE1lc3NhZ2VJbXBsKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxQb3N0TWVzc2FnZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFBvc3RNZXNzYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmFpbFBvc3RNZXNzYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNo
UG9zdE1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWREaXNwYXRjaFBvc3RNZXNzYWdlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL1dl
YkRlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViRGVidWdnZXJBZ2VudDo6
d2lsbFBvc3RNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkRlYnVnZ2VyQWdlbnQ6OmRp
ZFBvc3RNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkRlYnVnZ2VyQWdlbnQ6OmRpZEZh
aWxQb3N0TWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJEZWJ1Z2dlckFnZW50Ojp3aWxs
RGlzcGF0Y2hQb3N0TWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJEZWJ1Z2dlckFnZW50
OjpkaWREaXNwYXRjaFBvc3RNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkRlYnVnZ2Vy
QWdlbnQ6OmRpZENsZWFyQXN5bmNTdGFja1RyYWNlRGF0YSk6CisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9XZWJEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpwb3N0TWVzc2FnZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQb3N0TWVzc2FnZVRpbWVyOjpQb3N0TWVzc2FnZVRpbWVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlBvc3RNZXNzYWdlVGltZXI6OmV2ZW50KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlBvc3RNZXNzYWdlVGltZXI6OnRhcmdldE9yaWdpbiBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpQb3N0TWVzc2FnZVRpbWVyOjpzdGFja1RyYWNlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cG9zdE1lc3NhZ2VUaW1l
ckZpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorCiAyMDIwLTAz
LTIwICBKYWNvYiBVcGhvZmYgIDxqYWNvYl91cGhvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJldmVydGluZyByMjU4NzQ4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCAzZGM3YjQ5NGQ2NjU2
YTkxYzdkZDljNjhlMWM5ZWFmNzg5NjY2ZDAxLi43YTM4NmE3MmVkYjk4NTg5ODc1OGMzNzAxYmZl
MTIwZGU5NDUyNTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtMzYxLDI4ICszNjEsMzUgQEAgYm9vbCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmlzRXZlbnRMaXN0ZW5lckRpc2FibGVkSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJgogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZFBvc3RNZXNzYWdlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBjb25zdCBUaW1lckJhc2UmIHRpbWVyLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0JiBzdGF0ZSkKK2ludCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxQb3N0TWVzc2Fn
ZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cykKIHsKICAgICBp
ZiAoYXV0byogd2ViRGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMud2ViRGVidWdn
ZXJBZ2VudCgpKQotICAgICAgICB3ZWJEZWJ1Z2dlckFnZW50LT5kaWRQb3N0TWVzc2FnZSh0aW1l
ciwgc3RhdGUpOworICAgICAgICByZXR1cm4gd2ViRGVidWdnZXJBZ2VudC0+d2lsbFBvc3RNZXNz
YWdlKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRQb3N0TWVzc2FnZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0Fn
ZW50cywgaW50IHBvc3RNZXNzYWdlSWRlbnRpZmllciwgSlNDOjpKU0dsb2JhbE9iamVjdCYgc3Rh
dGUpCit7CisgICAgaWYgKGF1dG8qIHdlYkRlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdl
bnRzLndlYkRlYnVnZ2VyQWdlbnQoKSkKKyAgICAgICAgd2ViRGVidWdnZXJBZ2VudC0+ZGlkUG9z
dE1lc3NhZ2UocG9zdE1lc3NhZ2VJZGVudGlmaWVyLCBzdGF0ZSk7CiB9CiAKLXZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGYWlsUG9zdE1lc3NhZ2VJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnN0IFRpbWVyQmFzZSYgdGltZXIpCit2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmFpbFBvc3RNZXNzYWdlSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQgcG9zdE1lc3NhZ2VJZGVudGlm
aWVyKQogewogICAgIGlmIChhdXRvKiB3ZWJEZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0Fn
ZW50cy53ZWJEZWJ1Z2dlckFnZW50KCkpCi0gICAgICAgIHdlYkRlYnVnZ2VyQWdlbnQtPmRpZEZh
aWxQb3N0TWVzc2FnZSh0aW1lcik7CisgICAgICAgIHdlYkRlYnVnZ2VyQWdlbnQtPmRpZEZhaWxQ
b3N0TWVzc2FnZShwb3N0TWVzc2FnZUlkZW50aWZpZXIpOwogfQogCi12b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNoUG9zdE1lc3NhZ2VJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnN0IFRpbWVyQmFzZSYgdGltZXIpCit2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNoUG9zdE1lc3NhZ2VJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIGludCBwb3N0TWVzc2FnZUlk
ZW50aWZpZXIpCiB7CiAgICAgaWYgKGF1dG8qIHdlYkRlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50
aW5nQWdlbnRzLndlYkRlYnVnZ2VyQWdlbnQoKSkKLSAgICAgICAgd2ViRGVidWdnZXJBZ2VudC0+
d2lsbERpc3BhdGNoUG9zdE1lc3NhZ2UodGltZXIpOworICAgICAgICB3ZWJEZWJ1Z2dlckFnZW50
LT53aWxsRGlzcGF0Y2hQb3N0TWVzc2FnZShwb3N0TWVzc2FnZUlkZW50aWZpZXIpOwogfQogCi12
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRGlzcGF0Y2hQb3N0TWVzc2FnZUltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc3QgVGltZXJCYXNl
JiB0aW1lcikKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaFBvc3RN
ZXNzYWdlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQg
cG9zdE1lc3NhZ2VJZGVudGlmaWVyKQogewogICAgIGlmIChhdXRvKiB3ZWJEZWJ1Z2dlckFnZW50
ID0gaW5zdHJ1bWVudGluZ0FnZW50cy53ZWJEZWJ1Z2dlckFnZW50KCkpCi0gICAgICAgIHdlYkRl
YnVnZ2VyQWdlbnQtPmRpZERpc3BhdGNoUG9zdE1lc3NhZ2UodGltZXIpOworICAgICAgICB3ZWJE
ZWJ1Z2dlckFnZW50LT5kaWREaXNwYXRjaFBvc3RNZXNzYWdlKHBvc3RNZXNzYWdlSWRlbnRpZmll
cik7CiB9CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsQ2FsbEZ1bmN0aW9u
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBTdHJp
bmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lLCBpbnQgc2NyaXB0Q29sdW1uLCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IGIyNDZlYWE1NTlhNzUyNjVjODkw
ZGZhNDdkMDFkMzExYzE4NmE0MDMuLjIxZjg4ZDEzZDc2ODRkODk3MGE4ZDdmOGI3YjFiYjMyMzdh
OWU3M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmgKQEAgLTE1NSwxMCArMTU1LDExIEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
dm9pZCBkaWRJbnN0YWxsVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGludCB0aW1lcklk
LCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCk7CiAgICAgc3RhdGljIHZvaWQgZGlk
UmVtb3ZlVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGludCB0aW1lcklkKTsKIAotICAg
IHN0YXRpYyB2b2lkIGRpZFBvc3RNZXNzYWdlKEZyYW1lJiwgVGltZXJCYXNlJiwgSlNDOjpKU0ds
b2JhbE9iamVjdCYpOwotICAgIHN0YXRpYyB2b2lkIGRpZEZhaWxQb3N0TWVzc2FnZShGcmFtZSYs
IFRpbWVyQmFzZSYpOwotICAgIHN0YXRpYyB2b2lkIHdpbGxEaXNwYXRjaFBvc3RNZXNzYWdlKEZy
YW1lJiwgVGltZXJCYXNlJik7Ci0gICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0Y2hQb3N0TWVzc2Fn
ZShGcmFtZSYsIFRpbWVyQmFzZSYpOworICAgIHN0YXRpYyBpbnQgd2lsbFBvc3RNZXNzYWdlKEZy
YW1lJik7CisgICAgc3RhdGljIHZvaWQgZGlkUG9zdE1lc3NhZ2UoRnJhbWUmLCBpbnQgcG9zdFRp
bWVySWRlbnRpZmllciwgSlNDOjpKU0dsb2JhbE9iamVjdCYpOworICAgIHN0YXRpYyB2b2lkIGRp
ZEZhaWxQb3N0TWVzc2FnZShGcmFtZSYsIGludCBwb3N0VGltZXJJZGVudGlmaWVyKTsKKyAgICBz
dGF0aWMgdm9pZCB3aWxsRGlzcGF0Y2hQb3N0TWVzc2FnZShGcmFtZSYsIGludCBwb3N0VGltZXJJ
ZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgdm9pZCBkaWREaXNwYXRjaFBvc3RNZXNzYWdlKEZyYW1l
JiwgaW50IHBvc3RUaW1lcklkZW50aWZpZXIpOwogCiAgICAgc3RhdGljIHZvaWQgd2lsbENhbGxG
dW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBzY3JpcHROYW1l
LCBpbnQgc2NyaXB0TGluZSwgaW50IHNjcmlwdENvbHVtbik7CiAgICAgc3RhdGljIHZvaWQgZGlk
Q2FsbEZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKQEAgLTM3MywxMCArMzc0LDEx
IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlkSW5zdGFsbFRpbWVySW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiwgaW50IHRpbWVySWQsIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVT
aG90LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVtb3Zl
VGltZXJJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBpbnQgdGltZXJJZCwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYpOwogCi0gICAgc3RhdGljIHZvaWQgZGlkUG9zdE1lc3NhZ2VJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmLCBjb25zdCBUaW1lckJhc2UmLCBKU0M6OkpTR2xvYmFsT2JqZWN0Jik7
Ci0gICAgc3RhdGljIHZvaWQgZGlkRmFpbFBvc3RNZXNzYWdlSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzJiwgY29uc3QgVGltZXJCYXNlJik7Ci0gICAgc3RhdGljIHZvaWQgd2lsbERpc3BhdGNoUG9z
dE1lc3NhZ2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBjb25zdCBUaW1lckJhc2UmKTsKLSAg
ICBzdGF0aWMgdm9pZCBkaWREaXNwYXRjaFBvc3RNZXNzYWdlSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzJiwgY29uc3QgVGltZXJCYXNlJik7CisgICAgc3RhdGljIGludCB3aWxsUG9zdE1lc3NhZ2VJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRQb3N0TWVzc2Fn
ZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGludCBwb3N0TWVzc2FnZUlkZW50aWZpZXIsIEpT
Qzo6SlNHbG9iYWxPYmplY3QmKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRGYWlsUG9zdE1lc3NhZ2VJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBpbnQgcG9zdE1lc3NhZ2VJZGVudGlmaWVyKTsKKyAg
ICBzdGF0aWMgdm9pZCB3aWxsRGlzcGF0Y2hQb3N0TWVzc2FnZUltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYsIGludCBwb3N0TWVzc2FnZUlkZW50aWZpZXIpOworICAgIHN0YXRpYyB2b2lkIGRpZERp
c3BhdGNoUG9zdE1lc3NhZ2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBpbnQgcG9zdE1lc3Nh
Z2VJZGVudGlmaWVyKTsKIAogICAgIHN0YXRpYyB2b2lkIHdpbGxDYWxsRnVuY3Rpb25JbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmLCBjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRM
aW5lLCBpbnQgc2NyaXB0Q29sdW1uLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAgICAgc3Rh
dGljIHZvaWQgZGlkQ2FsbEZ1bmN0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCopOwpAQCAtODA3LDMyICs4MDksNDAgQEAgaW5saW5lIGJvb2wgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc0V2ZW50TGlzdGVuZXJEaXNhYmxlZChFdmVudFRhcmdl
dCYgdGFyZ2UKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkUG9zdE1lc3NhZ2UoRnJhbWUmIGZyYW1lLCBUaW1lckJhc2UmIHRp
bWVyLCBKU0M6OkpTR2xvYmFsT2JqZWN0JiBzdGF0ZSkKK2lubGluZSBpbnQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsUG9zdE1lc3NhZ2UoRnJhbWUmIGZyYW1lKQoreworICAgIEZBU1Rf
UkVUVVJOX0lGX05PX0ZST05URU5EUygwKTsKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkp
CisgICAgICAgIHJldHVybiB3aWxsUG9zdE1lc3NhZ2VJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRz
KTsKKyAgICByZXR1cm4gMDsKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRQb3N0TWVzc2FnZShGcmFtZSYgZnJhbWUsIGludCBwb3N0TWVzc2FnZUlkZW50aWZp
ZXIsIEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlKQogewogICAgIEZBU1RfUkVUVVJOX0lGX05P
X0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKLSAgICAg
ICAgZGlkUG9zdE1lc3NhZ2VJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCB0aW1lciwgc3RhdGUp
OworICAgICAgICBkaWRQb3N0TWVzc2FnZUltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHBvc3RN
ZXNzYWdlSWRlbnRpZmllciwgc3RhdGUpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZEZhaWxQb3N0TWVzc2FnZShGcmFtZSYgZnJhbWUsIFRpbWVyQmFzZSYg
dGltZXIpCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZhaWxQb3N0
TWVzc2FnZShGcmFtZSYgZnJhbWUsIGludCBwb3N0TWVzc2FnZUlkZW50aWZpZXIpCiB7CiAgICAg
RkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CiAgICAgaWYgKEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJh
bWUoZnJhbWUpKQotICAgICAgICBkaWRGYWlsUG9zdE1lc3NhZ2VJbXBsKCppbnN0cnVtZW50aW5n
QWdlbnRzLCB0aW1lcik7CisgICAgICAgIGRpZEZhaWxQb3N0TWVzc2FnZUltcGwoKmluc3RydW1l
bnRpbmdBZ2VudHMsIHBvc3RNZXNzYWdlSWRlbnRpZmllcik7CiB9CiAKLWlubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNoUG9zdE1lc3NhZ2UoRnJhbWUmIGZy
YW1lLCBUaW1lckJhc2UmIHRpbWVyKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjp3aWxsRGlzcGF0Y2hQb3N0TWVzc2FnZShGcmFtZSYgZnJhbWUsIGludCBwb3N0TWVzc2Fn
ZUlkZW50aWZpZXIpCiB7CiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7
CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0
cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQotICAgICAgICB3aWxsRGlzcGF0Y2hQb3N0
TWVzc2FnZUltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHRpbWVyKTsKKyAgICAgICAgd2lsbERp
c3BhdGNoUG9zdE1lc3NhZ2VJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBwb3N0TWVzc2FnZUlk
ZW50aWZpZXIpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZERpc3BhdGNoUG9zdE1lc3NhZ2UoRnJhbWUmIGZyYW1lLCBUaW1lckJhc2UmIHRpbWVyKQoraW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaFBvc3RNZXNzYWdl
KEZyYW1lJiBmcmFtZSwgaW50IHBvc3RNZXNzYWdlSWRlbnRpZmllcikKIHsKICAgICBGQVNUX1JF
VFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50
cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFt
ZSkpCi0gICAgICAgIGRpZERpc3BhdGNoUG9zdE1lc3NhZ2VJbXBsKCppbnN0cnVtZW50aW5nQWdl
bnRzLCB0aW1lcik7CisgICAgICAgIGRpZERpc3BhdGNoUG9zdE1lc3NhZ2VJbXBsKCppbnN0cnVt
ZW50aW5nQWdlbnRzLCBwb3N0TWVzc2FnZUlkZW50aWZpZXIpOwogfQogCiBpbmxpbmUgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxDYWxsRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGlu
ZSwgaW50IHNjcmlwdENvbHVtbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL1dlYkRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDQ5ZDA5ZWY4Zjc2NDgyMzZmYTk0OWE3
YTBjNmY5NjQ3MDQ5NDE5NGUuLmRlY2FkNmNjYmE5MmY0MThjOGU1OWNhNjY5MjI1MDY4NzI3NGQw
YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViRGVidWdn
ZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJEZWJ1
Z2dlckFnZW50LmNwcApAQCAtMTEyLDU1ICsxMTIsNjcgQEAgdm9pZCBXZWJEZWJ1Z2dlckFnZW50
Ojp3aWxsSGFuZGxlRXZlbnQoY29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXImIGxpc3RlbmVy
KQogICAgIHdpbGxEaXNwYXRjaEFzeW5jQ2FsbChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpBc3lu
Y0NhbGxUeXBlOjpFdmVudExpc3RlbmVyLCBpdC0+dmFsdWUpOwogfQogCi12b2lkIFdlYkRlYnVn
Z2VyQWdlbnQ6OmRpZFBvc3RNZXNzYWdlKGNvbnN0IFRpbWVyQmFzZSYgdGltZXIsIEpTQzo6SlNH
bG9iYWxPYmplY3QmIHN0YXRlKQoraW50IFdlYkRlYnVnZ2VyQWdlbnQ6OndpbGxQb3N0TWVzc2Fn
ZSgpCiB7CiAgICAgaWYgKCFicmVha3BvaW50c0FjdGl2ZSgpKQotICAgICAgICByZXR1cm47Cisg
ICAgICAgIHJldHVybiAwOworCisgICAgYXV0byBwb3N0TWVzc2FnZUlkZW50aWZpZXIgPSBtX25l
eHRQb3N0TWVzc2FnZUlkZW50aWZpZXIrKzsKKyAgICBtX3Bvc3RNZXNzYWdlVGFza3MuYWRkKHBv
c3RNZXNzYWdlSWRlbnRpZmllcik7CisgICAgcmV0dXJuIHBvc3RNZXNzYWdlSWRlbnRpZmllcjsK
K30KIAotICAgIGlmIChtX3Bvc3RNZXNzYWdlVGltZXJzLmNvbnRhaW5zKCZ0aW1lcikpCit2b2lk
IFdlYkRlYnVnZ2VyQWdlbnQ6OmRpZFBvc3RNZXNzYWdlKGludCBwb3N0TWVzc2FnZUlkZW50aWZp
ZXIsIEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlKQoreworICAgIGlmICghYnJlYWtwb2ludHNB
Y3RpdmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW50IHBvc3RNZXNzYWdlSWRlbnRpZmll
ciA9IG1fbmV4dFBvc3RNZXNzYWdlSWRlbnRpZmllcisrOwotICAgIG1fcG9zdE1lc3NhZ2VUaW1l
cnMuc2V0KCZ0aW1lciwgcG9zdE1lc3NhZ2VJZGVudGlmaWVyKTsKKyAgICBpZiAoIXBvc3RNZXNz
YWdlSWRlbnRpZmllciB8fCAhbV9wb3N0TWVzc2FnZVRhc2tzLmNvbnRhaW5zKHBvc3RNZXNzYWdl
SWRlbnRpZmllcikpCisgICAgICAgIHJldHVybjsKIAogICAgIGRpZFNjaGVkdWxlQXN5bmNDYWxs
KCZzdGF0ZSwgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6QXN5bmNDYWxsVHlwZTo6UG9zdE1lc3Nh
Z2UsIHBvc3RNZXNzYWdlSWRlbnRpZmllciwgdHJ1ZSk7CiB9CiAKLXZvaWQgV2ViRGVidWdnZXJB
Z2VudDo6ZGlkRmFpbFBvc3RNZXNzYWdlKGNvbnN0IFRpbWVyQmFzZSYgdGltZXIpCit2b2lkIFdl
YkRlYnVnZ2VyQWdlbnQ6OmRpZEZhaWxQb3N0TWVzc2FnZShpbnQgcG9zdE1lc3NhZ2VJZGVudGlm
aWVyKQogewotICAgIGF1dG8gaXQgPSBtX3Bvc3RNZXNzYWdlVGltZXJzLmZpbmQoJnRpbWVyKTsK
LSAgICBpZiAoaXQgPT0gbV9wb3N0TWVzc2FnZVRpbWVycy5lbmQoKSkKKyAgICBpZiAoIXBvc3RN
ZXNzYWdlSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBpdCA9IG1fcG9z
dE1lc3NhZ2VUYXNrcy5maW5kKHBvc3RNZXNzYWdlSWRlbnRpZmllcik7CisgICAgaWYgKGl0ID09
IG1fcG9zdE1lc3NhZ2VUYXNrcy5lbmQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZGlkQ2Fu
Y2VsQXN5bmNDYWxsKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OkFzeW5jQ2FsbFR5cGU6OlBvc3RN
ZXNzYWdlLCBpdC0+dmFsdWUpOworICAgIGRpZENhbmNlbEFzeW5jQ2FsbChJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50OjpBc3luY0NhbGxUeXBlOjpQb3N0TWVzc2FnZSwgcG9zdE1lc3NhZ2VJZGVudGlm
aWVyKTsKIAotICAgIG1fcG9zdE1lc3NhZ2VUaW1lcnMucmVtb3ZlKGl0KTsKKyAgICBtX3Bvc3RN
ZXNzYWdlVGFza3MucmVtb3ZlKGl0KTsKIH0KIAotdm9pZCBXZWJEZWJ1Z2dlckFnZW50Ojp3aWxs
RGlzcGF0Y2hQb3N0TWVzc2FnZShjb25zdCBUaW1lckJhc2UmIHRpbWVyKQordm9pZCBXZWJEZWJ1
Z2dlckFnZW50Ojp3aWxsRGlzcGF0Y2hQb3N0TWVzc2FnZShpbnQgcG9zdE1lc3NhZ2VJZGVudGlm
aWVyKQogewotICAgIGF1dG8gaXQgPSBtX3Bvc3RNZXNzYWdlVGltZXJzLmZpbmQoJnRpbWVyKTsK
LSAgICBpZiAoaXQgPT0gbV9wb3N0TWVzc2FnZVRpbWVycy5lbmQoKSkKKyAgICBpZiAoIXBvc3RN
ZXNzYWdlSWRlbnRpZmllciB8fCAhbV9wb3N0TWVzc2FnZVRhc2tzLmNvbnRhaW5zKHBvc3RNZXNz
YWdlSWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdpbGxEaXNwYXRjaEFzeW5j
Q2FsbChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpBc3luY0NhbGxUeXBlOjpQb3N0TWVzc2FnZSwg
aXQtPnZhbHVlKTsKKyAgICB3aWxsRGlzcGF0Y2hBc3luY0NhbGwoSW5zcGVjdG9yRGVidWdnZXJB
Z2VudDo6QXN5bmNDYWxsVHlwZTo6UG9zdE1lc3NhZ2UsIHBvc3RNZXNzYWdlSWRlbnRpZmllcik7
CiB9CiAKLXZvaWQgV2ViRGVidWdnZXJBZ2VudDo6ZGlkRGlzcGF0Y2hQb3N0TWVzc2FnZShjb25z
dCBUaW1lckJhc2UmIHRpbWVyKQordm9pZCBXZWJEZWJ1Z2dlckFnZW50OjpkaWREaXNwYXRjaFBv
c3RNZXNzYWdlKGludCBwb3N0TWVzc2FnZUlkZW50aWZpZXIpCiB7Ci0gICAgYXV0byBpdCA9IG1f
cG9zdE1lc3NhZ2VUaW1lcnMuZmluZCgmdGltZXIpOwotICAgIGlmIChpdCA9PSBtX3Bvc3RNZXNz
YWdlVGltZXJzLmVuZCgpKQorICAgIGlmICghcG9zdE1lc3NhZ2VJZGVudGlmaWVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBhdXRvIGl0ID0gbV9wb3N0TWVzc2FnZVRhc2tzLmZpbmQocG9zdE1l
c3NhZ2VJZGVudGlmaWVyKTsKKyAgICBpZiAoaXQgPT0gbV9wb3N0TWVzc2FnZVRhc2tzLmVuZCgp
KQogICAgICAgICByZXR1cm47CiAKICAgICBkaWREaXNwYXRjaEFzeW5jQ2FsbCgpOwogCi0gICAg
bV9wb3N0TWVzc2FnZVRpbWVycy5yZW1vdmUoaXQpOworICAgIG1fcG9zdE1lc3NhZ2VUYXNrcy5y
ZW1vdmUoaXQpOwogfQogCiB2b2lkIFdlYkRlYnVnZ2VyQWdlbnQ6OmRpZENsZWFyQXN5bmNTdGFj
a1RyYWNlRGF0YSgpCiB7CiAgICAgbV9yZWdpc3RlcmVkRXZlbnRMaXN0ZW5lcnMuY2xlYXIoKTsK
LSAgICBtX3Bvc3RNZXNzYWdlVGltZXJzLmNsZWFyKCk7CisgICAgbV9wb3N0TWVzc2FnZVRhc2tz
LmNsZWFyKCk7CiAgICAgbV9uZXh0RXZlbnRMaXN0ZW5lcklkZW50aWZpZXIgPSAxOwogICAgIG1f
bmV4dFBvc3RNZXNzYWdlSWRlbnRpZmllciA9IDE7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5oCmluZGV4IGFiYzgzMjBhMjdlOTY0
ZjNkMDYzZjNmYWI1N2U4OTdiYjM2NjA3OTguLjEwYjk2NDg4ODFhYTAxNTY0ZmNiZTcyZTc0ZmZi
YWM3OTY4NDU3NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
V2ViRGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
V2ViRGVidWdnZXJBZ2VudC5oCkBAIC00OCwxMCArNDgsMTEgQEAgcHVibGljOgogICAgIHZvaWQg
ZGlkQWRkRXZlbnRMaXN0ZW5lcihFdmVudFRhcmdldCYsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50
VHlwZSwgRXZlbnRMaXN0ZW5lciYsIGJvb2wgY2FwdHVyZSk7CiAgICAgdm9pZCB3aWxsUmVtb3Zl
RXZlbnRMaXN0ZW5lcihFdmVudFRhcmdldCYsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwg
RXZlbnRMaXN0ZW5lciYsIGJvb2wgY2FwdHVyZSk7CiAgICAgdm9pZCB3aWxsSGFuZGxlRXZlbnQo
Y29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXImKTsKLSAgICB2b2lkIGRpZFBvc3RNZXNzYWdl
KGNvbnN0IFRpbWVyQmFzZSYsIEpTQzo6SlNHbG9iYWxPYmplY3QmKTsKLSAgICB2b2lkIGRpZEZh
aWxQb3N0TWVzc2FnZShjb25zdCBUaW1lckJhc2UmKTsKLSAgICB2b2lkIHdpbGxEaXNwYXRjaFBv
c3RNZXNzYWdlKGNvbnN0IFRpbWVyQmFzZSYpOwotICAgIHZvaWQgZGlkRGlzcGF0Y2hQb3N0TWVz
c2FnZShjb25zdCBUaW1lckJhc2UmKTsKKyAgICBpbnQgd2lsbFBvc3RNZXNzYWdlKCk7CisgICAg
dm9pZCBkaWRQb3N0TWVzc2FnZShpbnQgcG9zdE1lc3NhZ2VJZGVudGlmaWVyLCBKU0M6OkpTR2xv
YmFsT2JqZWN0Jik7CisgICAgdm9pZCBkaWRGYWlsUG9zdE1lc3NhZ2UoaW50IHBvc3RNZXNzYWdl
SWRlbnRpZmllcik7CisgICAgdm9pZCB3aWxsRGlzcGF0Y2hQb3N0TWVzc2FnZShpbnQgcG9zdE1l
c3NhZ2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZERpc3BhdGNoUG9zdE1lc3NhZ2UoaW50IHBv
c3RNZXNzYWdlSWRlbnRpZmllcik7CiAKIHByb3RlY3RlZDoKICAgICBXZWJEZWJ1Z2dlckFnZW50
KFdlYkFnZW50Q29udGV4dCYpOwpAQCAtNjQsNyArNjUsNyBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZh
dGU6CiAgICAgSGFzaE1hcDxjb25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciosIGludD4gbV9y
ZWdpc3RlcmVkRXZlbnRMaXN0ZW5lcnM7Ci0gICAgSGFzaE1hcDxjb25zdCBUaW1lckJhc2UqLCBp
bnQ+IG1fcG9zdE1lc3NhZ2VUaW1lcnM7CisgICAgSGFzaFNldDxpbnQ+IG1fcG9zdE1lc3NhZ2VU
YXNrczsKICAgICBpbnQgbV9uZXh0RXZlbnRMaXN0ZW5lcklkZW50aWZpZXIgeyAxIH07CiAgICAg
aW50IG1fbmV4dFBvc3RNZXNzYWdlSWRlbnRpZmllciB7IDEgfTsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKaW5kZXggYTFlMTdlMDgzNTNkZTEyMTQ2NTIyYzdhZWZlNDM5MzZmZWVhOGZl
Yy4uYTdiMjJhOTYyOTBiN2M3MmJjMzEwNGM4OTFmYWUxYTU3YjgyNmEwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcApAQCAtMTY0LDQ2ICsxNjQsNiBAQCBzdGF0aWMgU2Vjb25kcyB0cmFu
c2llbnRBY3RpdmF0aW9uRHVyYXRpb24oKQogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
RE9NV2luZG93KTsKIAotY2xhc3MgUG9zdE1lc3NhZ2VUaW1lciA6IHB1YmxpYyBUaW1lckJhc2Ug
ewotcHVibGljOgotICAgIFBvc3RNZXNzYWdlVGltZXIoRE9NV2luZG93JiB3aW5kb3csIE1lc3Nh
Z2VXaXRoTWVzc2FnZVBvcnRzJiYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4s
IFJlZlB0cjxXaW5kb3dQcm94eT4mJiBzb3VyY2UsIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJiB0
YXJnZXRPcmlnaW4sIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+JiYgc3RhY2tUcmFjZSkKLSAgICAg
ICAgOiBtX3dpbmRvdyh3aW5kb3cpCi0gICAgICAgICwgbV9tZXNzYWdlKFdURk1vdmUobWVzc2Fn
ZSkpCi0gICAgICAgICwgbV9vcmlnaW4oc291cmNlT3JpZ2luKQotICAgICAgICAsIG1fc291cmNl
KHNvdXJjZSkKLSAgICAgICAgLCBtX3RhcmdldE9yaWdpbihXVEZNb3ZlKHRhcmdldE9yaWdpbikp
Ci0gICAgICAgICwgbV9zdGFja1RyYWNlKHN0YWNrVHJhY2UpCi0gICAgICAgICwgbV91c2VyR2Vz
dHVyZVRvRm9yd2FyZChVc2VyR2VzdHVyZUluZGljYXRvcjo6Y3VycmVudFVzZXJHZXN0dXJlKCkp
Ci0gICAgewotICAgIH0KLQotICAgIFJlZjxNZXNzYWdlRXZlbnQ+IGV2ZW50KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQpCi0gICAgewotICAgICAgICByZXR1cm4gTWVzc2FnZUV2ZW50
OjpjcmVhdGUoTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMoY29udGV4dCwgV1RGTW92ZShtX21l
c3NhZ2UudHJhbnNmZXJyZWRQb3J0cykpLCBtX21lc3NhZ2UubWVzc2FnZS5yZWxlYXNlTm9uTnVs
bCgpLCBtX29yaWdpbiwgeyB9LCBtX3NvdXJjZSA/IG1ha2VPcHRpb25hbChNZXNzYWdlRXZlbnRT
b3VyY2UoV1RGTW92ZShtX3NvdXJjZSkpKSA6IFdURjo6bnVsbG9wdCk7Ci0gICAgfQotCi0gICAg
U2VjdXJpdHlPcmlnaW4qIHRhcmdldE9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0T3Jp
Z2luLmdldCgpOyB9Ci0gICAgU2NyaXB0Q2FsbFN0YWNrKiBzdGFja1RyYWNlKCkgY29uc3QgeyBy
ZXR1cm4gbV9zdGFja1RyYWNlLmdldCgpOyB9Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBmaXJlZCgp
IG92ZXJyaWRlCi0gICAgewotICAgICAgICAvLyBUaGlzIG9iamVjdCBnZXRzIGRlbGV0ZWQgd2hl
biBzdGQ6OnVuaXF1ZV9wdHIgZmFsbHMgb3V0IG9mIHNjb3BlLi4KLSAgICAgICAgc3RkOjp1bmlx
dWVfcHRyPFBvc3RNZXNzYWdlVGltZXI+IHRpbWVyKHRoaXMpOwotICAgICAgICAKLSAgICAgICAg
VXNlckdlc3R1cmVJbmRpY2F0b3IgdXNlckdlc3R1cmVJbmRpY2F0b3IobV91c2VyR2VzdHVyZVRv
Rm9yd2FyZCk7Ci0gICAgICAgIG1fd2luZG93LT5wb3N0TWVzc2FnZVRpbWVyRmlyZWQoKnRpbWVy
KTsKLSAgICB9Ci0KLSAgICBSZWY8RE9NV2luZG93PiBtX3dpbmRvdzsKLSAgICBNZXNzYWdlV2l0
aE1lc3NhZ2VQb3J0cyBtX21lc3NhZ2U7Ci0gICAgU3RyaW5nIG1fb3JpZ2luOwotICAgIFJlZlB0
cjxXaW5kb3dQcm94eT4gbV9zb3VyY2U7Ci0gICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX3Rh
cmdldE9yaWdpbjsKLSAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBtX3N0YWNrVHJhY2U7Ci0g
ICAgUmVmUHRyPFVzZXJHZXN0dXJlVG9rZW4+IG1fdXNlckdlc3R1cmVUb0ZvcndhcmQ7Ci19Owot
CiB0eXBlZGVmIEhhc2hDb3VudGVkU2V0PERPTVdpbmRvdyo+IERPTVdpbmRvd1NldDsKIAogc3Rh
dGljIERPTVdpbmRvd1NldCYgd2luZG93c1dpdGhVbmxvYWRFdmVudExpc3RlbmVycygpCkBAIC05
MzAsNDUgKzg5MCw0NyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBET01XaW5kb3c6OnBvc3RNZXNzYWdl
KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplYwogICAgIGlmIChJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVBZ2VudEVuYWJsZWQoc291cmNlRG9jdW1lbnQpKQog
ICAgICAgICBzdGFja1RyYWNlID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTRXhlY1N0YXRlOjpj
dXJyZW50U3RhdGUoKSk7CiAKKyAgICBhdXRvIHBvc3RNZXNzYWdlSWRlbnRpZmllciA9IEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBvc3RNZXNzYWdlKCpmcmFtZSgpKTsKKwogICAgIE1l
c3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UgeyBtZXNzYWdlRGF0YS5yZWxlYXNlUmV0dXJu
VmFsdWUoKSwgZGlzZW50YW5nbGVkUG9ydHMucmVsZWFzZVJldHVyblZhbHVlKCkgfTsKIAogICAg
IC8vIFNjaGVkdWxlIHRoZSBtZXNzYWdlLgogICAgIFJlZlB0cjxXaW5kb3dQcm94eT4gaW5jdW1i
ZW50V2luZG93UHJveHkgPSBpbmN1bWJlbnRXaW5kb3cuZnJhbWUoKSA/ICZpbmN1bWJlbnRXaW5k
b3cuZnJhbWUoKS0+d2luZG93UHJveHkoKSA6IG51bGxwdHI7Ci0gICAgYXV0byogdGltZXIgPSBu
ZXcgUG9zdE1lc3NhZ2VUaW1lcigqdGhpcywgV1RGTW92ZShtZXNzYWdlKSwgc291cmNlT3JpZ2lu
LCBXVEZNb3ZlKGluY3VtYmVudFdpbmRvd1Byb3h5KSwgV1RGTW92ZSh0YXJnZXQpLCBXVEZNb3Zl
KHN0YWNrVHJhY2UpKTsKLSAgICB0aW1lci0+c3RhcnRPbmVTaG90KDBfcyk7Ci0KLSAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFBvc3RNZXNzYWdlKCpmcmFtZSgpLCAqdGltZXIsIGxl
eGljYWxHbG9iYWxPYmplY3QpOwotCi0gICAgcmV0dXJuIHsgfTsKLX0KKyAgICBhdXRvIHVzZXJH
ZXN0dXJlVG9Gb3J3YXJkID0gVXNlckdlc3R1cmVJbmRpY2F0b3I6OmN1cnJlbnRVc2VyR2VzdHVy
ZSgpOwogCi12b2lkIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2VUaW1lckZpcmVkKFBvc3RNZXNzYWdl
VGltZXImIHRpbWVyKQotewotICAgIGlmICghZG9jdW1lbnQoKSB8fCAhaXNDdXJyZW50bHlEaXNw
bGF5ZWRJbkZyYW1lKCkpCi0gICAgICAgIHJldHVybjsKKyAgICBkb2N1bWVudCgpLT5ldmVudExv
b3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6UG9zdGVkTWVzc2FnZVF1ZXVlLCBbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKSwg
aW5jdW1iZW50V2luZG93UHJveHkgPSBXVEZNb3ZlKGluY3VtYmVudFdpbmRvd1Byb3h5KSwgc291
cmNlT3JpZ2luID0gV1RGTW92ZShzb3VyY2VPcmlnaW4pLCB1c2VyR2VzdHVyZVRvRm9yd2FyZCA9
IFdURk1vdmUodXNlckdlc3R1cmVUb0ZvcndhcmQpLCBwb3N0TWVzc2FnZUlkZW50aWZpZXIsIHN0
YWNrVHJhY2UgPSBXVEZNb3ZlKHN0YWNrVHJhY2UpLCB0YXJnZXRPcmlnaW4gPSBXVEZNb3ZlKHRh
cmdldCldKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZy
YW1lKCkpCisgICAgICAgICAgICByZXR1cm47CiAKLSAgICBSZWY8RnJhbWU+IGZyYW1lID0gKnRo
aXMtPmZyYW1lKCk7Ci0gICAgaWYgKGF1dG8qIGludGVuZGVkVGFyZ2V0T3JpZ2luID0gdGltZXIu
dGFyZ2V0T3JpZ2luKCkpIHsKLSAgICAgICAgLy8gQ2hlY2sgdGFyZ2V0IG9yaWdpbiBub3cgc2lu
Y2UgdGhlIHRhcmdldCBkb2N1bWVudCBtYXkgaGF2ZSBjaGFuZ2VkIHNpbmNlIHRoZSB0aW1lciB3
YXMgc2NoZWR1bGVkLgotICAgICAgICBpZiAoIWludGVuZGVkVGFyZ2V0T3JpZ2luLT5pc1NhbWVT
Y2hlbWVIb3N0UG9ydChkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSkgewotICAgICAgICAg
ICAgaWYgKGF1dG8qIHBhZ2VDb25zb2xlID0gY29uc29sZSgpKSB7Ci0gICAgICAgICAgICAgICAg
U3RyaW5nIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJVbmFibGUgdG8gcG9zdCBtZXNzYWdlIHRvICIs
IGludGVuZGVkVGFyZ2V0T3JpZ2luLT50b1N0cmluZygpLCAiLiBSZWNpcGllbnQgaGFzIG9yaWdp
biAiLCBkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLnRvU3RyaW5nKCksICIuXG4iKTsKLSAg
ICAgICAgICAgICAgICBpZiAodGltZXIuc3RhY2tUcmFjZSgpKQotICAgICAgICAgICAgICAgICAg
ICBwYWdlQ29uc29sZS0+YWRkTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2Fn
ZUxldmVsOjpFcnJvciwgbWVzc2FnZSwgKnRpbWVyLnN0YWNrVHJhY2UoKSk7Ci0gICAgICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBwYWdlQ29uc29sZS0+YWRkTWVzc2FnZShN
ZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWVzc2FnZSk7Cisg
ICAgICAgIFJlZjxGcmFtZT4gZnJhbWUgPSAqdGhpcy0+ZnJhbWUoKTsKKyAgICAgICAgaWYgKHRh
cmdldE9yaWdpbikgeworICAgICAgICAgICAgLy8gQ2hlY2sgdGFyZ2V0IG9yaWdpbiBub3cgc2lu
Y2UgdGhlIHRhcmdldCBkb2N1bWVudCBtYXkgaGF2ZSBjaGFuZ2VkIHNpbmNlIHRoZSB0aW1lciB3
YXMgc2NoZWR1bGVkLgorICAgICAgICAgICAgaWYgKCF0YXJnZXRPcmlnaW4tPmlzU2FtZVNjaGVt
ZUhvc3RQb3J0KGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpKSB7CisgICAgICAgICAgICAg
ICAgaWYgKGF1dG8qIHBhZ2VDb25zb2xlID0gY29uc29sZSgpKSB7CisgICAgICAgICAgICAgICAg
ICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZygiVW5hYmxlIHRvIHBvc3QgbWVzc2FnZSB0
byAiLCB0YXJnZXRPcmlnaW4tPnRvU3RyaW5nKCksICIuIFJlY2lwaWVudCBoYXMgb3JpZ2luICIs
IGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkudG9TdHJpbmcoKSwgIi5cbiIpOworICAgICAg
ICAgICAgICAgICAgICBpZiAoc3RhY2tUcmFjZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHBh
Z2VDb25zb2xlLT5hZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2
ZWw6OkVycm9yLCBtZXNzYWdlLCAqc3RhY2tUcmFjZSk7CisgICAgICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VDb25zb2xlLT5hZGRNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtZXNzYWdlKTsKKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZEZhaWxQb3N0TWVzc2FnZShmcmFtZSwgcG9zdE1lc3NhZ2VJZGVudGlmaWVyKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkRmFpbFBvc3RNZXNzYWdlKGZyYW1lLCB0aW1lcik7Ci0gICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICB9CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxEaXNwYXRjaFBvc3RNZXNzYWdlKGZyYW1lLCB0aW1lcik7CisgICAgICAg
IFVzZXJHZXN0dXJlSW5kaWNhdG9yIHVzZXJHZXN0dXJlSW5kaWNhdG9yKHVzZXJHZXN0dXJlVG9G
b3J3YXJkKTsKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hQ
b3N0TWVzc2FnZShmcmFtZSwgcG9zdE1lc3NhZ2VJZGVudGlmaWVyKTsKKworICAgICAgICBhdXRv
IGV2ZW50ID0gTWVzc2FnZUV2ZW50OjpjcmVhdGUoTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMo
KmRvY3VtZW50KCksIFdURk1vdmUobWVzc2FnZS50cmFuc2ZlcnJlZFBvcnRzKSksIG1lc3NhZ2Uu
bWVzc2FnZS5yZWxlYXNlTm9uTnVsbCgpLCBzb3VyY2VPcmlnaW4sIHsgfSwgaW5jdW1iZW50V2lu
ZG93UHJveHkgPyBtYWtlT3B0aW9uYWwoTWVzc2FnZUV2ZW50U291cmNlKFdURk1vdmUoaW5jdW1i
ZW50V2luZG93UHJveHkpKSkgOiBXVEY6Om51bGxvcHQpOworICAgICAgICBkaXNwYXRjaEV2ZW50
KGV2ZW50KTsKIAotICAgIGRpc3BhdGNoRXZlbnQodGltZXIuZXZlbnQoKmRvY3VtZW50KCkpKTsK
KyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaFBvc3RNZXNzYWdl
KGZyYW1lLCBwb3N0TWVzc2FnZUlkZW50aWZpZXIpOworICAgIH0pOwogCi0gICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaFBvc3RNZXNzYWdlKGZyYW1lLCB0aW1lcik7Cisg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQb3N0TWVzc2FnZSgqZnJhbWUoKSwgcG9z
dE1lc3NhZ2VJZGVudGlmaWVyLCBsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKworICAgIHJldHVybiB7
IH07CiB9CiAKIERPTVNlbGVjdGlvbiogRE9NV2luZG93OjpnZXRTZWxlY3Rpb24oKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmgKaW5kZXggMDY4MzlhMjE1YjdlYTgxNGNjZWY4MzhkNTUxYjA1M2I2MjUy
YjM4Mi4uN2FhZjg0Mzc2MDZlODFkNjFhZWM0MTlkZTc0ODBhYTNhZDdjZjRlYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5oCkBAIC03NSw3ICs3NSw2IEBAIGNsYXNzIE5vZGVMaXN0OwogY2xhc3Mg
UGFnZTsKIGNsYXNzIFBhZ2VDb25zb2xlQ2xpZW50OwogY2xhc3MgUGVyZm9ybWFuY2U7Ci1jbGFz
cyBQb3N0TWVzc2FnZVRpbWVyOwogY2xhc3MgUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2s7
CiBjbGFzcyBSZXF1ZXN0SWRsZUNhbGxiYWNrOwogY2xhc3MgU2NoZWR1bGVkQWN0aW9uOwpAQCAt
Mjc2LDggKzI3NSw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHBvc3RNZXNzYWdlKGdsb2Jh
bE9iamVjdCwgaW5jdW1iZW50V2luZG93LCBtZXNzYWdlLCBXaW5kb3dQb3N0TWVzc2FnZU9wdGlv
bnMgeyBXVEZNb3ZlKHRhcmdldE9yaWdpbiksIFdURk1vdmUodHJhbnNmZXIpIH0pOwogICAgIH0K
IAotICAgIHZvaWQgcG9zdE1lc3NhZ2VUaW1lckZpcmVkKFBvc3RNZXNzYWdlVGltZXImKTsKLQog
ICAgIHZvaWQgbGFuZ3VhZ2VzQ2hhbmdlZCgpOwogCiAgICAgdm9pZCBzY3JvbGxCeShjb25zdCBT
Y3JvbGxUb09wdGlvbnMmKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394127</attachid>
            <date>2020-03-20 14:24:17 -0700</date>
            <delta_ts>2020-03-23 09:51:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209359-20200320142416.patch</filename>
            <type>text/plain</type>
            <size>30692</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzg0N2IzODRmZWU3MzI4
ODlkNjU4NzdjOTE4YWQ0MGU0M2M1MTJkOS4uMzU3MTg1N2Y1MmY3NDk2MDlhOGUxMjNlZjUwODQy
YzcwYTM3MjAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIwLTAzLTIwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUG9ydCB3aW5kb3cucG9zdE1l
c3NhZ2UgdG8gdGhlIEhUTUwgZXZlbnQgbG9vcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUG9ydCB3aW5kb3cucG9zdE1lc3NhZ2UgdG8gdGhlIEhUTUwg
ZXZlbnQgbG9vcCBpbnN0ZWFkIG9mIHVzaW5nIGEgMC10aW1lci4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUG9zdE1lc3NhZ2VJbXBsKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUG9zdE1lc3NhZ2VJbXBsKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmFpbFBvc3RNZXNz
YWdlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxEaXNwYXRjaFBvc3RNZXNzYWdlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZERpc3BhdGNoUG9zdE1lc3NhZ2VJbXBsKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxQb3N0TWVzc2FnZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFBvc3RNZXNzYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmFpbFBvc3RNZXNzYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNo
UG9zdE1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWREaXNwYXRjaFBvc3RNZXNzYWdlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL1dl
YkRlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViRGVidWdnZXJBZ2VudDo6
d2lsbFBvc3RNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkRlYnVnZ2VyQWdlbnQ6OmRp
ZFBvc3RNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkRlYnVnZ2VyQWdlbnQ6OmRpZEZh
aWxQb3N0TWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJEZWJ1Z2dlckFnZW50Ojp3aWxs
RGlzcGF0Y2hQb3N0TWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJEZWJ1Z2dlckFnZW50
OjpkaWREaXNwYXRjaFBvc3RNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkRlYnVnZ2Vy
QWdlbnQ6OmRpZENsZWFyQXN5bmNTdGFja1RyYWNlRGF0YSk6CisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9XZWJEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpwb3N0TWVzc2FnZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQb3N0TWVzc2FnZVRpbWVyOjpQb3N0TWVzc2FnZVRpbWVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlBvc3RNZXNzYWdlVGltZXI6OmV2ZW50KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlBvc3RNZXNzYWdlVGltZXI6OnRhcmdldE9yaWdpbiBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpQb3N0TWVzc2FnZVRpbWVyOjpzdGFja1RyYWNlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cG9zdE1lc3NhZ2VUaW1l
ckZpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorCiAyMDIwLTAz
LTIwICBKYWNvYiBVcGhvZmYgIDxqYWNvYl91cGhvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJldmVydGluZyByMjU4NzQ4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCAzZGM3YjQ5NGQ2NjU2
YTkxYzdkZDljNjhlMWM5ZWFmNzg5NjY2ZDAxLi43YTM4NmE3MmVkYjk4NTg5ODc1OGMzNzAxYmZl
MTIwZGU5NDUyNTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtMzYxLDI4ICszNjEsMzUgQEAgYm9vbCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmlzRXZlbnRMaXN0ZW5lckRpc2FibGVkSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJgogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZFBvc3RNZXNzYWdlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBjb25zdCBUaW1lckJhc2UmIHRpbWVyLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0JiBzdGF0ZSkKK2ludCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxQb3N0TWVzc2Fn
ZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cykKIHsKICAgICBp
ZiAoYXV0byogd2ViRGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMud2ViRGVidWdn
ZXJBZ2VudCgpKQotICAgICAgICB3ZWJEZWJ1Z2dlckFnZW50LT5kaWRQb3N0TWVzc2FnZSh0aW1l
ciwgc3RhdGUpOworICAgICAgICByZXR1cm4gd2ViRGVidWdnZXJBZ2VudC0+d2lsbFBvc3RNZXNz
YWdlKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRQb3N0TWVzc2FnZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0Fn
ZW50cywgaW50IHBvc3RNZXNzYWdlSWRlbnRpZmllciwgSlNDOjpKU0dsb2JhbE9iamVjdCYgc3Rh
dGUpCit7CisgICAgaWYgKGF1dG8qIHdlYkRlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdl
bnRzLndlYkRlYnVnZ2VyQWdlbnQoKSkKKyAgICAgICAgd2ViRGVidWdnZXJBZ2VudC0+ZGlkUG9z
dE1lc3NhZ2UocG9zdE1lc3NhZ2VJZGVudGlmaWVyLCBzdGF0ZSk7CiB9CiAKLXZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGYWlsUG9zdE1lc3NhZ2VJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnN0IFRpbWVyQmFzZSYgdGltZXIpCit2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmFpbFBvc3RNZXNzYWdlSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQgcG9zdE1lc3NhZ2VJZGVudGlm
aWVyKQogewogICAgIGlmIChhdXRvKiB3ZWJEZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0Fn
ZW50cy53ZWJEZWJ1Z2dlckFnZW50KCkpCi0gICAgICAgIHdlYkRlYnVnZ2VyQWdlbnQtPmRpZEZh
aWxQb3N0TWVzc2FnZSh0aW1lcik7CisgICAgICAgIHdlYkRlYnVnZ2VyQWdlbnQtPmRpZEZhaWxQ
b3N0TWVzc2FnZShwb3N0TWVzc2FnZUlkZW50aWZpZXIpOwogfQogCi12b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNoUG9zdE1lc3NhZ2VJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnN0IFRpbWVyQmFzZSYgdGltZXIpCit2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNoUG9zdE1lc3NhZ2VJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIGludCBwb3N0TWVzc2FnZUlk
ZW50aWZpZXIpCiB7CiAgICAgaWYgKGF1dG8qIHdlYkRlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50
aW5nQWdlbnRzLndlYkRlYnVnZ2VyQWdlbnQoKSkKLSAgICAgICAgd2ViRGVidWdnZXJBZ2VudC0+
d2lsbERpc3BhdGNoUG9zdE1lc3NhZ2UodGltZXIpOworICAgICAgICB3ZWJEZWJ1Z2dlckFnZW50
LT53aWxsRGlzcGF0Y2hQb3N0TWVzc2FnZShwb3N0TWVzc2FnZUlkZW50aWZpZXIpOwogfQogCi12
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRGlzcGF0Y2hQb3N0TWVzc2FnZUltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc3QgVGltZXJCYXNl
JiB0aW1lcikKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaFBvc3RN
ZXNzYWdlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQg
cG9zdE1lc3NhZ2VJZGVudGlmaWVyKQogewogICAgIGlmIChhdXRvKiB3ZWJEZWJ1Z2dlckFnZW50
ID0gaW5zdHJ1bWVudGluZ0FnZW50cy53ZWJEZWJ1Z2dlckFnZW50KCkpCi0gICAgICAgIHdlYkRl
YnVnZ2VyQWdlbnQtPmRpZERpc3BhdGNoUG9zdE1lc3NhZ2UodGltZXIpOworICAgICAgICB3ZWJE
ZWJ1Z2dlckFnZW50LT5kaWREaXNwYXRjaFBvc3RNZXNzYWdlKHBvc3RNZXNzYWdlSWRlbnRpZmll
cik7CiB9CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsQ2FsbEZ1bmN0aW9u
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBTdHJp
bmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lLCBpbnQgc2NyaXB0Q29sdW1uLCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IGIyNDZlYWE1NTlhNzUyNjVjODkw
ZGZhNDdkMDFkMzExYzE4NmE0MDMuLjIxZjg4ZDEzZDc2ODRkODk3MGE4ZDdmOGI3YjFiYjMyMzdh
OWU3M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmgKQEAgLTE1NSwxMCArMTU1LDExIEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
dm9pZCBkaWRJbnN0YWxsVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGludCB0aW1lcklk
LCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCk7CiAgICAgc3RhdGljIHZvaWQgZGlk
UmVtb3ZlVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGludCB0aW1lcklkKTsKIAotICAg
IHN0YXRpYyB2b2lkIGRpZFBvc3RNZXNzYWdlKEZyYW1lJiwgVGltZXJCYXNlJiwgSlNDOjpKU0ds
b2JhbE9iamVjdCYpOwotICAgIHN0YXRpYyB2b2lkIGRpZEZhaWxQb3N0TWVzc2FnZShGcmFtZSYs
IFRpbWVyQmFzZSYpOwotICAgIHN0YXRpYyB2b2lkIHdpbGxEaXNwYXRjaFBvc3RNZXNzYWdlKEZy
YW1lJiwgVGltZXJCYXNlJik7Ci0gICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0Y2hQb3N0TWVzc2Fn
ZShGcmFtZSYsIFRpbWVyQmFzZSYpOworICAgIHN0YXRpYyBpbnQgd2lsbFBvc3RNZXNzYWdlKEZy
YW1lJik7CisgICAgc3RhdGljIHZvaWQgZGlkUG9zdE1lc3NhZ2UoRnJhbWUmLCBpbnQgcG9zdFRp
bWVySWRlbnRpZmllciwgSlNDOjpKU0dsb2JhbE9iamVjdCYpOworICAgIHN0YXRpYyB2b2lkIGRp
ZEZhaWxQb3N0TWVzc2FnZShGcmFtZSYsIGludCBwb3N0VGltZXJJZGVudGlmaWVyKTsKKyAgICBz
dGF0aWMgdm9pZCB3aWxsRGlzcGF0Y2hQb3N0TWVzc2FnZShGcmFtZSYsIGludCBwb3N0VGltZXJJ
ZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgdm9pZCBkaWREaXNwYXRjaFBvc3RNZXNzYWdlKEZyYW1l
JiwgaW50IHBvc3RUaW1lcklkZW50aWZpZXIpOwogCiAgICAgc3RhdGljIHZvaWQgd2lsbENhbGxG
dW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBzY3JpcHROYW1l
LCBpbnQgc2NyaXB0TGluZSwgaW50IHNjcmlwdENvbHVtbik7CiAgICAgc3RhdGljIHZvaWQgZGlk
Q2FsbEZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKQEAgLTM3MywxMCArMzc0LDEx
IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlkSW5zdGFsbFRpbWVySW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiwgaW50IHRpbWVySWQsIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVT
aG90LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVtb3Zl
VGltZXJJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBpbnQgdGltZXJJZCwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYpOwogCi0gICAgc3RhdGljIHZvaWQgZGlkUG9zdE1lc3NhZ2VJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmLCBjb25zdCBUaW1lckJhc2UmLCBKU0M6OkpTR2xvYmFsT2JqZWN0Jik7
Ci0gICAgc3RhdGljIHZvaWQgZGlkRmFpbFBvc3RNZXNzYWdlSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzJiwgY29uc3QgVGltZXJCYXNlJik7Ci0gICAgc3RhdGljIHZvaWQgd2lsbERpc3BhdGNoUG9z
dE1lc3NhZ2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBjb25zdCBUaW1lckJhc2UmKTsKLSAg
ICBzdGF0aWMgdm9pZCBkaWREaXNwYXRjaFBvc3RNZXNzYWdlSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzJiwgY29uc3QgVGltZXJCYXNlJik7CisgICAgc3RhdGljIGludCB3aWxsUG9zdE1lc3NhZ2VJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRQb3N0TWVzc2Fn
ZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGludCBwb3N0TWVzc2FnZUlkZW50aWZpZXIsIEpT
Qzo6SlNHbG9iYWxPYmplY3QmKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRGYWlsUG9zdE1lc3NhZ2VJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBpbnQgcG9zdE1lc3NhZ2VJZGVudGlmaWVyKTsKKyAg
ICBzdGF0aWMgdm9pZCB3aWxsRGlzcGF0Y2hQb3N0TWVzc2FnZUltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYsIGludCBwb3N0TWVzc2FnZUlkZW50aWZpZXIpOworICAgIHN0YXRpYyB2b2lkIGRpZERp
c3BhdGNoUG9zdE1lc3NhZ2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBpbnQgcG9zdE1lc3Nh
Z2VJZGVudGlmaWVyKTsKIAogICAgIHN0YXRpYyB2b2lkIHdpbGxDYWxsRnVuY3Rpb25JbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmLCBjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRM
aW5lLCBpbnQgc2NyaXB0Q29sdW1uLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAgICAgc3Rh
dGljIHZvaWQgZGlkQ2FsbEZ1bmN0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCopOwpAQCAtODA3LDMyICs4MDksNDAgQEAgaW5saW5lIGJvb2wgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc0V2ZW50TGlzdGVuZXJEaXNhYmxlZChFdmVudFRhcmdl
dCYgdGFyZ2UKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkUG9zdE1lc3NhZ2UoRnJhbWUmIGZyYW1lLCBUaW1lckJhc2UmIHRp
bWVyLCBKU0M6OkpTR2xvYmFsT2JqZWN0JiBzdGF0ZSkKK2lubGluZSBpbnQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsUG9zdE1lc3NhZ2UoRnJhbWUmIGZyYW1lKQoreworICAgIEZBU1Rf
UkVUVVJOX0lGX05PX0ZST05URU5EUygwKTsKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkp
CisgICAgICAgIHJldHVybiB3aWxsUG9zdE1lc3NhZ2VJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRz
KTsKKyAgICByZXR1cm4gMDsKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRQb3N0TWVzc2FnZShGcmFtZSYgZnJhbWUsIGludCBwb3N0TWVzc2FnZUlkZW50aWZp
ZXIsIEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlKQogewogICAgIEZBU1RfUkVUVVJOX0lGX05P
X0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKLSAgICAg
ICAgZGlkUG9zdE1lc3NhZ2VJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCB0aW1lciwgc3RhdGUp
OworICAgICAgICBkaWRQb3N0TWVzc2FnZUltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHBvc3RN
ZXNzYWdlSWRlbnRpZmllciwgc3RhdGUpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZEZhaWxQb3N0TWVzc2FnZShGcmFtZSYgZnJhbWUsIFRpbWVyQmFzZSYg
dGltZXIpCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZhaWxQb3N0
TWVzc2FnZShGcmFtZSYgZnJhbWUsIGludCBwb3N0TWVzc2FnZUlkZW50aWZpZXIpCiB7CiAgICAg
RkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CiAgICAgaWYgKEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJh
bWUoZnJhbWUpKQotICAgICAgICBkaWRGYWlsUG9zdE1lc3NhZ2VJbXBsKCppbnN0cnVtZW50aW5n
QWdlbnRzLCB0aW1lcik7CisgICAgICAgIGRpZEZhaWxQb3N0TWVzc2FnZUltcGwoKmluc3RydW1l
bnRpbmdBZ2VudHMsIHBvc3RNZXNzYWdlSWRlbnRpZmllcik7CiB9CiAKLWlubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNoUG9zdE1lc3NhZ2UoRnJhbWUmIGZy
YW1lLCBUaW1lckJhc2UmIHRpbWVyKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjp3aWxsRGlzcGF0Y2hQb3N0TWVzc2FnZShGcmFtZSYgZnJhbWUsIGludCBwb3N0TWVzc2Fn
ZUlkZW50aWZpZXIpCiB7CiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7
CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0
cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQotICAgICAgICB3aWxsRGlzcGF0Y2hQb3N0
TWVzc2FnZUltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHRpbWVyKTsKKyAgICAgICAgd2lsbERp
c3BhdGNoUG9zdE1lc3NhZ2VJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBwb3N0TWVzc2FnZUlk
ZW50aWZpZXIpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZERpc3BhdGNoUG9zdE1lc3NhZ2UoRnJhbWUmIGZyYW1lLCBUaW1lckJhc2UmIHRpbWVyKQoraW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaFBvc3RNZXNzYWdl
KEZyYW1lJiBmcmFtZSwgaW50IHBvc3RNZXNzYWdlSWRlbnRpZmllcikKIHsKICAgICBGQVNUX1JF
VFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50
cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFt
ZSkpCi0gICAgICAgIGRpZERpc3BhdGNoUG9zdE1lc3NhZ2VJbXBsKCppbnN0cnVtZW50aW5nQWdl
bnRzLCB0aW1lcik7CisgICAgICAgIGRpZERpc3BhdGNoUG9zdE1lc3NhZ2VJbXBsKCppbnN0cnVt
ZW50aW5nQWdlbnRzLCBwb3N0TWVzc2FnZUlkZW50aWZpZXIpOwogfQogCiBpbmxpbmUgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxDYWxsRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGlu
ZSwgaW50IHNjcmlwdENvbHVtbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL1dlYkRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDQ5ZDA5ZWY4Zjc2NDgyMzZmYTk0OWE3
YTBjNmY5NjQ3MDQ5NDE5NGUuLmRlY2FkNmNjYmE5MmY0MThjOGU1OWNhNjY5MjI1MDY4NzI3NGQw
YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViRGVidWdn
ZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJEZWJ1
Z2dlckFnZW50LmNwcApAQCAtMTEyLDU1ICsxMTIsNjcgQEAgdm9pZCBXZWJEZWJ1Z2dlckFnZW50
Ojp3aWxsSGFuZGxlRXZlbnQoY29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXImIGxpc3RlbmVy
KQogICAgIHdpbGxEaXNwYXRjaEFzeW5jQ2FsbChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpBc3lu
Y0NhbGxUeXBlOjpFdmVudExpc3RlbmVyLCBpdC0+dmFsdWUpOwogfQogCi12b2lkIFdlYkRlYnVn
Z2VyQWdlbnQ6OmRpZFBvc3RNZXNzYWdlKGNvbnN0IFRpbWVyQmFzZSYgdGltZXIsIEpTQzo6SlNH
bG9iYWxPYmplY3QmIHN0YXRlKQoraW50IFdlYkRlYnVnZ2VyQWdlbnQ6OndpbGxQb3N0TWVzc2Fn
ZSgpCiB7CiAgICAgaWYgKCFicmVha3BvaW50c0FjdGl2ZSgpKQotICAgICAgICByZXR1cm47Cisg
ICAgICAgIHJldHVybiAwOworCisgICAgYXV0byBwb3N0TWVzc2FnZUlkZW50aWZpZXIgPSBtX25l
eHRQb3N0TWVzc2FnZUlkZW50aWZpZXIrKzsKKyAgICBtX3Bvc3RNZXNzYWdlVGFza3MuYWRkKHBv
c3RNZXNzYWdlSWRlbnRpZmllcik7CisgICAgcmV0dXJuIHBvc3RNZXNzYWdlSWRlbnRpZmllcjsK
K30KIAotICAgIGlmIChtX3Bvc3RNZXNzYWdlVGltZXJzLmNvbnRhaW5zKCZ0aW1lcikpCit2b2lk
IFdlYkRlYnVnZ2VyQWdlbnQ6OmRpZFBvc3RNZXNzYWdlKGludCBwb3N0TWVzc2FnZUlkZW50aWZp
ZXIsIEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlKQoreworICAgIGlmICghYnJlYWtwb2ludHNB
Y3RpdmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW50IHBvc3RNZXNzYWdlSWRlbnRpZmll
ciA9IG1fbmV4dFBvc3RNZXNzYWdlSWRlbnRpZmllcisrOwotICAgIG1fcG9zdE1lc3NhZ2VUaW1l
cnMuc2V0KCZ0aW1lciwgcG9zdE1lc3NhZ2VJZGVudGlmaWVyKTsKKyAgICBpZiAoIXBvc3RNZXNz
YWdlSWRlbnRpZmllciB8fCAhbV9wb3N0TWVzc2FnZVRhc2tzLmNvbnRhaW5zKHBvc3RNZXNzYWdl
SWRlbnRpZmllcikpCisgICAgICAgIHJldHVybjsKIAogICAgIGRpZFNjaGVkdWxlQXN5bmNDYWxs
KCZzdGF0ZSwgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6QXN5bmNDYWxsVHlwZTo6UG9zdE1lc3Nh
Z2UsIHBvc3RNZXNzYWdlSWRlbnRpZmllciwgdHJ1ZSk7CiB9CiAKLXZvaWQgV2ViRGVidWdnZXJB
Z2VudDo6ZGlkRmFpbFBvc3RNZXNzYWdlKGNvbnN0IFRpbWVyQmFzZSYgdGltZXIpCit2b2lkIFdl
YkRlYnVnZ2VyQWdlbnQ6OmRpZEZhaWxQb3N0TWVzc2FnZShpbnQgcG9zdE1lc3NhZ2VJZGVudGlm
aWVyKQogewotICAgIGF1dG8gaXQgPSBtX3Bvc3RNZXNzYWdlVGltZXJzLmZpbmQoJnRpbWVyKTsK
LSAgICBpZiAoaXQgPT0gbV9wb3N0TWVzc2FnZVRpbWVycy5lbmQoKSkKKyAgICBpZiAoIXBvc3RN
ZXNzYWdlSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBpdCA9IG1fcG9z
dE1lc3NhZ2VUYXNrcy5maW5kKHBvc3RNZXNzYWdlSWRlbnRpZmllcik7CisgICAgaWYgKGl0ID09
IG1fcG9zdE1lc3NhZ2VUYXNrcy5lbmQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZGlkQ2Fu
Y2VsQXN5bmNDYWxsKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OkFzeW5jQ2FsbFR5cGU6OlBvc3RN
ZXNzYWdlLCBpdC0+dmFsdWUpOworICAgIGRpZENhbmNlbEFzeW5jQ2FsbChJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50OjpBc3luY0NhbGxUeXBlOjpQb3N0TWVzc2FnZSwgcG9zdE1lc3NhZ2VJZGVudGlm
aWVyKTsKIAotICAgIG1fcG9zdE1lc3NhZ2VUaW1lcnMucmVtb3ZlKGl0KTsKKyAgICBtX3Bvc3RN
ZXNzYWdlVGFza3MucmVtb3ZlKGl0KTsKIH0KIAotdm9pZCBXZWJEZWJ1Z2dlckFnZW50Ojp3aWxs
RGlzcGF0Y2hQb3N0TWVzc2FnZShjb25zdCBUaW1lckJhc2UmIHRpbWVyKQordm9pZCBXZWJEZWJ1
Z2dlckFnZW50Ojp3aWxsRGlzcGF0Y2hQb3N0TWVzc2FnZShpbnQgcG9zdE1lc3NhZ2VJZGVudGlm
aWVyKQogewotICAgIGF1dG8gaXQgPSBtX3Bvc3RNZXNzYWdlVGltZXJzLmZpbmQoJnRpbWVyKTsK
LSAgICBpZiAoaXQgPT0gbV9wb3N0TWVzc2FnZVRpbWVycy5lbmQoKSkKKyAgICBpZiAoIXBvc3RN
ZXNzYWdlSWRlbnRpZmllciB8fCAhbV9wb3N0TWVzc2FnZVRhc2tzLmNvbnRhaW5zKHBvc3RNZXNz
YWdlSWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdpbGxEaXNwYXRjaEFzeW5j
Q2FsbChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpBc3luY0NhbGxUeXBlOjpQb3N0TWVzc2FnZSwg
aXQtPnZhbHVlKTsKKyAgICB3aWxsRGlzcGF0Y2hBc3luY0NhbGwoSW5zcGVjdG9yRGVidWdnZXJB
Z2VudDo6QXN5bmNDYWxsVHlwZTo6UG9zdE1lc3NhZ2UsIHBvc3RNZXNzYWdlSWRlbnRpZmllcik7
CiB9CiAKLXZvaWQgV2ViRGVidWdnZXJBZ2VudDo6ZGlkRGlzcGF0Y2hQb3N0TWVzc2FnZShjb25z
dCBUaW1lckJhc2UmIHRpbWVyKQordm9pZCBXZWJEZWJ1Z2dlckFnZW50OjpkaWREaXNwYXRjaFBv
c3RNZXNzYWdlKGludCBwb3N0TWVzc2FnZUlkZW50aWZpZXIpCiB7Ci0gICAgYXV0byBpdCA9IG1f
cG9zdE1lc3NhZ2VUaW1lcnMuZmluZCgmdGltZXIpOwotICAgIGlmIChpdCA9PSBtX3Bvc3RNZXNz
YWdlVGltZXJzLmVuZCgpKQorICAgIGlmICghcG9zdE1lc3NhZ2VJZGVudGlmaWVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBhdXRvIGl0ID0gbV9wb3N0TWVzc2FnZVRhc2tzLmZpbmQocG9zdE1l
c3NhZ2VJZGVudGlmaWVyKTsKKyAgICBpZiAoaXQgPT0gbV9wb3N0TWVzc2FnZVRhc2tzLmVuZCgp
KQogICAgICAgICByZXR1cm47CiAKICAgICBkaWREaXNwYXRjaEFzeW5jQ2FsbCgpOwogCi0gICAg
bV9wb3N0TWVzc2FnZVRpbWVycy5yZW1vdmUoaXQpOworICAgIG1fcG9zdE1lc3NhZ2VUYXNrcy5y
ZW1vdmUoaXQpOwogfQogCiB2b2lkIFdlYkRlYnVnZ2VyQWdlbnQ6OmRpZENsZWFyQXN5bmNTdGFj
a1RyYWNlRGF0YSgpCiB7CiAgICAgbV9yZWdpc3RlcmVkRXZlbnRMaXN0ZW5lcnMuY2xlYXIoKTsK
LSAgICBtX3Bvc3RNZXNzYWdlVGltZXJzLmNsZWFyKCk7CisgICAgbV9wb3N0TWVzc2FnZVRhc2tz
LmNsZWFyKCk7CiAgICAgbV9uZXh0RXZlbnRMaXN0ZW5lcklkZW50aWZpZXIgPSAxOwogICAgIG1f
bmV4dFBvc3RNZXNzYWdlSWRlbnRpZmllciA9IDE7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5oCmluZGV4IGFiYzgzMjBhMjdlOTY0
ZjNkMDYzZjNmYWI1N2U4OTdiYjM2NjA3OTguLjEwYjk2NDg4ODFhYTAxNTY0ZmNiZTcyZTc0ZmZi
YWM3OTY4NDU3NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
V2ViRGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
V2ViRGVidWdnZXJBZ2VudC5oCkBAIC00OCwxMCArNDgsMTEgQEAgcHVibGljOgogICAgIHZvaWQg
ZGlkQWRkRXZlbnRMaXN0ZW5lcihFdmVudFRhcmdldCYsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50
VHlwZSwgRXZlbnRMaXN0ZW5lciYsIGJvb2wgY2FwdHVyZSk7CiAgICAgdm9pZCB3aWxsUmVtb3Zl
RXZlbnRMaXN0ZW5lcihFdmVudFRhcmdldCYsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwg
RXZlbnRMaXN0ZW5lciYsIGJvb2wgY2FwdHVyZSk7CiAgICAgdm9pZCB3aWxsSGFuZGxlRXZlbnQo
Y29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXImKTsKLSAgICB2b2lkIGRpZFBvc3RNZXNzYWdl
KGNvbnN0IFRpbWVyQmFzZSYsIEpTQzo6SlNHbG9iYWxPYmplY3QmKTsKLSAgICB2b2lkIGRpZEZh
aWxQb3N0TWVzc2FnZShjb25zdCBUaW1lckJhc2UmKTsKLSAgICB2b2lkIHdpbGxEaXNwYXRjaFBv
c3RNZXNzYWdlKGNvbnN0IFRpbWVyQmFzZSYpOwotICAgIHZvaWQgZGlkRGlzcGF0Y2hQb3N0TWVz
c2FnZShjb25zdCBUaW1lckJhc2UmKTsKKyAgICBpbnQgd2lsbFBvc3RNZXNzYWdlKCk7CisgICAg
dm9pZCBkaWRQb3N0TWVzc2FnZShpbnQgcG9zdE1lc3NhZ2VJZGVudGlmaWVyLCBKU0M6OkpTR2xv
YmFsT2JqZWN0Jik7CisgICAgdm9pZCBkaWRGYWlsUG9zdE1lc3NhZ2UoaW50IHBvc3RNZXNzYWdl
SWRlbnRpZmllcik7CisgICAgdm9pZCB3aWxsRGlzcGF0Y2hQb3N0TWVzc2FnZShpbnQgcG9zdE1l
c3NhZ2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZERpc3BhdGNoUG9zdE1lc3NhZ2UoaW50IHBv
c3RNZXNzYWdlSWRlbnRpZmllcik7CiAKIHByb3RlY3RlZDoKICAgICBXZWJEZWJ1Z2dlckFnZW50
KFdlYkFnZW50Q29udGV4dCYpOwpAQCAtNjQsNyArNjUsNyBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZh
dGU6CiAgICAgSGFzaE1hcDxjb25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciosIGludD4gbV9y
ZWdpc3RlcmVkRXZlbnRMaXN0ZW5lcnM7Ci0gICAgSGFzaE1hcDxjb25zdCBUaW1lckJhc2UqLCBp
bnQ+IG1fcG9zdE1lc3NhZ2VUaW1lcnM7CisgICAgSGFzaFNldDxpbnQ+IG1fcG9zdE1lc3NhZ2VU
YXNrczsKICAgICBpbnQgbV9uZXh0RXZlbnRMaXN0ZW5lcklkZW50aWZpZXIgeyAxIH07CiAgICAg
aW50IG1fbmV4dFBvc3RNZXNzYWdlSWRlbnRpZmllciB7IDEgfTsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKaW5kZXggYTFlMTdlMDgzNTNkZTEyMTQ2NTIyYzdhZWZlNDM5MzZmZWVhOGZl
Yy4uYTdiMjJhOTYyOTBiN2M3MmJjMzEwNGM4OTFmYWUxYTU3YjgyNmEwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcApAQCAtMTY0LDQ2ICsxNjQsNiBAQCBzdGF0aWMgU2Vjb25kcyB0cmFu
c2llbnRBY3RpdmF0aW9uRHVyYXRpb24oKQogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
RE9NV2luZG93KTsKIAotY2xhc3MgUG9zdE1lc3NhZ2VUaW1lciA6IHB1YmxpYyBUaW1lckJhc2Ug
ewotcHVibGljOgotICAgIFBvc3RNZXNzYWdlVGltZXIoRE9NV2luZG93JiB3aW5kb3csIE1lc3Nh
Z2VXaXRoTWVzc2FnZVBvcnRzJiYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4s
IFJlZlB0cjxXaW5kb3dQcm94eT4mJiBzb3VyY2UsIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJiB0
YXJnZXRPcmlnaW4sIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+JiYgc3RhY2tUcmFjZSkKLSAgICAg
ICAgOiBtX3dpbmRvdyh3aW5kb3cpCi0gICAgICAgICwgbV9tZXNzYWdlKFdURk1vdmUobWVzc2Fn
ZSkpCi0gICAgICAgICwgbV9vcmlnaW4oc291cmNlT3JpZ2luKQotICAgICAgICAsIG1fc291cmNl
KHNvdXJjZSkKLSAgICAgICAgLCBtX3RhcmdldE9yaWdpbihXVEZNb3ZlKHRhcmdldE9yaWdpbikp
Ci0gICAgICAgICwgbV9zdGFja1RyYWNlKHN0YWNrVHJhY2UpCi0gICAgICAgICwgbV91c2VyR2Vz
dHVyZVRvRm9yd2FyZChVc2VyR2VzdHVyZUluZGljYXRvcjo6Y3VycmVudFVzZXJHZXN0dXJlKCkp
Ci0gICAgewotICAgIH0KLQotICAgIFJlZjxNZXNzYWdlRXZlbnQ+IGV2ZW50KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQpCi0gICAgewotICAgICAgICByZXR1cm4gTWVzc2FnZUV2ZW50
OjpjcmVhdGUoTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMoY29udGV4dCwgV1RGTW92ZShtX21l
c3NhZ2UudHJhbnNmZXJyZWRQb3J0cykpLCBtX21lc3NhZ2UubWVzc2FnZS5yZWxlYXNlTm9uTnVs
bCgpLCBtX29yaWdpbiwgeyB9LCBtX3NvdXJjZSA/IG1ha2VPcHRpb25hbChNZXNzYWdlRXZlbnRT
b3VyY2UoV1RGTW92ZShtX3NvdXJjZSkpKSA6IFdURjo6bnVsbG9wdCk7Ci0gICAgfQotCi0gICAg
U2VjdXJpdHlPcmlnaW4qIHRhcmdldE9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0T3Jp
Z2luLmdldCgpOyB9Ci0gICAgU2NyaXB0Q2FsbFN0YWNrKiBzdGFja1RyYWNlKCkgY29uc3QgeyBy
ZXR1cm4gbV9zdGFja1RyYWNlLmdldCgpOyB9Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBmaXJlZCgp
IG92ZXJyaWRlCi0gICAgewotICAgICAgICAvLyBUaGlzIG9iamVjdCBnZXRzIGRlbGV0ZWQgd2hl
biBzdGQ6OnVuaXF1ZV9wdHIgZmFsbHMgb3V0IG9mIHNjb3BlLi4KLSAgICAgICAgc3RkOjp1bmlx
dWVfcHRyPFBvc3RNZXNzYWdlVGltZXI+IHRpbWVyKHRoaXMpOwotICAgICAgICAKLSAgICAgICAg
VXNlckdlc3R1cmVJbmRpY2F0b3IgdXNlckdlc3R1cmVJbmRpY2F0b3IobV91c2VyR2VzdHVyZVRv
Rm9yd2FyZCk7Ci0gICAgICAgIG1fd2luZG93LT5wb3N0TWVzc2FnZVRpbWVyRmlyZWQoKnRpbWVy
KTsKLSAgICB9Ci0KLSAgICBSZWY8RE9NV2luZG93PiBtX3dpbmRvdzsKLSAgICBNZXNzYWdlV2l0
aE1lc3NhZ2VQb3J0cyBtX21lc3NhZ2U7Ci0gICAgU3RyaW5nIG1fb3JpZ2luOwotICAgIFJlZlB0
cjxXaW5kb3dQcm94eT4gbV9zb3VyY2U7Ci0gICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX3Rh
cmdldE9yaWdpbjsKLSAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBtX3N0YWNrVHJhY2U7Ci0g
ICAgUmVmUHRyPFVzZXJHZXN0dXJlVG9rZW4+IG1fdXNlckdlc3R1cmVUb0ZvcndhcmQ7Ci19Owot
CiB0eXBlZGVmIEhhc2hDb3VudGVkU2V0PERPTVdpbmRvdyo+IERPTVdpbmRvd1NldDsKIAogc3Rh
dGljIERPTVdpbmRvd1NldCYgd2luZG93c1dpdGhVbmxvYWRFdmVudExpc3RlbmVycygpCkBAIC05
MzAsNDUgKzg5MCw0NyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBET01XaW5kb3c6OnBvc3RNZXNzYWdl
KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplYwogICAgIGlmIChJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVBZ2VudEVuYWJsZWQoc291cmNlRG9jdW1lbnQpKQog
ICAgICAgICBzdGFja1RyYWNlID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTRXhlY1N0YXRlOjpj
dXJyZW50U3RhdGUoKSk7CiAKKyAgICBhdXRvIHBvc3RNZXNzYWdlSWRlbnRpZmllciA9IEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBvc3RNZXNzYWdlKCpmcmFtZSgpKTsKKwogICAgIE1l
c3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UgeyBtZXNzYWdlRGF0YS5yZWxlYXNlUmV0dXJu
VmFsdWUoKSwgZGlzZW50YW5nbGVkUG9ydHMucmVsZWFzZVJldHVyblZhbHVlKCkgfTsKIAogICAg
IC8vIFNjaGVkdWxlIHRoZSBtZXNzYWdlLgogICAgIFJlZlB0cjxXaW5kb3dQcm94eT4gaW5jdW1i
ZW50V2luZG93UHJveHkgPSBpbmN1bWJlbnRXaW5kb3cuZnJhbWUoKSA/ICZpbmN1bWJlbnRXaW5k
b3cuZnJhbWUoKS0+d2luZG93UHJveHkoKSA6IG51bGxwdHI7Ci0gICAgYXV0byogdGltZXIgPSBu
ZXcgUG9zdE1lc3NhZ2VUaW1lcigqdGhpcywgV1RGTW92ZShtZXNzYWdlKSwgc291cmNlT3JpZ2lu
LCBXVEZNb3ZlKGluY3VtYmVudFdpbmRvd1Byb3h5KSwgV1RGTW92ZSh0YXJnZXQpLCBXVEZNb3Zl
KHN0YWNrVHJhY2UpKTsKLSAgICB0aW1lci0+c3RhcnRPbmVTaG90KDBfcyk7Ci0KLSAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFBvc3RNZXNzYWdlKCpmcmFtZSgpLCAqdGltZXIsIGxl
eGljYWxHbG9iYWxPYmplY3QpOwotCi0gICAgcmV0dXJuIHsgfTsKLX0KKyAgICBhdXRvIHVzZXJH
ZXN0dXJlVG9Gb3J3YXJkID0gVXNlckdlc3R1cmVJbmRpY2F0b3I6OmN1cnJlbnRVc2VyR2VzdHVy
ZSgpOwogCi12b2lkIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2VUaW1lckZpcmVkKFBvc3RNZXNzYWdl
VGltZXImIHRpbWVyKQotewotICAgIGlmICghZG9jdW1lbnQoKSB8fCAhaXNDdXJyZW50bHlEaXNw
bGF5ZWRJbkZyYW1lKCkpCi0gICAgICAgIHJldHVybjsKKyAgICBkb2N1bWVudCgpLT5ldmVudExv
b3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6UG9zdGVkTWVzc2FnZVF1ZXVlLCBbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKSwg
aW5jdW1iZW50V2luZG93UHJveHkgPSBXVEZNb3ZlKGluY3VtYmVudFdpbmRvd1Byb3h5KSwgc291
cmNlT3JpZ2luID0gV1RGTW92ZShzb3VyY2VPcmlnaW4pLCB1c2VyR2VzdHVyZVRvRm9yd2FyZCA9
IFdURk1vdmUodXNlckdlc3R1cmVUb0ZvcndhcmQpLCBwb3N0TWVzc2FnZUlkZW50aWZpZXIsIHN0
YWNrVHJhY2UgPSBXVEZNb3ZlKHN0YWNrVHJhY2UpLCB0YXJnZXRPcmlnaW4gPSBXVEZNb3ZlKHRh
cmdldCldKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZy
YW1lKCkpCisgICAgICAgICAgICByZXR1cm47CiAKLSAgICBSZWY8RnJhbWU+IGZyYW1lID0gKnRo
aXMtPmZyYW1lKCk7Ci0gICAgaWYgKGF1dG8qIGludGVuZGVkVGFyZ2V0T3JpZ2luID0gdGltZXIu
dGFyZ2V0T3JpZ2luKCkpIHsKLSAgICAgICAgLy8gQ2hlY2sgdGFyZ2V0IG9yaWdpbiBub3cgc2lu
Y2UgdGhlIHRhcmdldCBkb2N1bWVudCBtYXkgaGF2ZSBjaGFuZ2VkIHNpbmNlIHRoZSB0aW1lciB3
YXMgc2NoZWR1bGVkLgotICAgICAgICBpZiAoIWludGVuZGVkVGFyZ2V0T3JpZ2luLT5pc1NhbWVT
Y2hlbWVIb3N0UG9ydChkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSkgewotICAgICAgICAg
ICAgaWYgKGF1dG8qIHBhZ2VDb25zb2xlID0gY29uc29sZSgpKSB7Ci0gICAgICAgICAgICAgICAg
U3RyaW5nIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJVbmFibGUgdG8gcG9zdCBtZXNzYWdlIHRvICIs
IGludGVuZGVkVGFyZ2V0T3JpZ2luLT50b1N0cmluZygpLCAiLiBSZWNpcGllbnQgaGFzIG9yaWdp
biAiLCBkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLnRvU3RyaW5nKCksICIuXG4iKTsKLSAg
ICAgICAgICAgICAgICBpZiAodGltZXIuc3RhY2tUcmFjZSgpKQotICAgICAgICAgICAgICAgICAg
ICBwYWdlQ29uc29sZS0+YWRkTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2Fn
ZUxldmVsOjpFcnJvciwgbWVzc2FnZSwgKnRpbWVyLnN0YWNrVHJhY2UoKSk7Ci0gICAgICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBwYWdlQ29uc29sZS0+YWRkTWVzc2FnZShN
ZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWVzc2FnZSk7Cisg
ICAgICAgIFJlZjxGcmFtZT4gZnJhbWUgPSAqdGhpcy0+ZnJhbWUoKTsKKyAgICAgICAgaWYgKHRh
cmdldE9yaWdpbikgeworICAgICAgICAgICAgLy8gQ2hlY2sgdGFyZ2V0IG9yaWdpbiBub3cgc2lu
Y2UgdGhlIHRhcmdldCBkb2N1bWVudCBtYXkgaGF2ZSBjaGFuZ2VkIHNpbmNlIHRoZSB0aW1lciB3
YXMgc2NoZWR1bGVkLgorICAgICAgICAgICAgaWYgKCF0YXJnZXRPcmlnaW4tPmlzU2FtZVNjaGVt
ZUhvc3RQb3J0KGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpKSB7CisgICAgICAgICAgICAg
ICAgaWYgKGF1dG8qIHBhZ2VDb25zb2xlID0gY29uc29sZSgpKSB7CisgICAgICAgICAgICAgICAg
ICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZygiVW5hYmxlIHRvIHBvc3QgbWVzc2FnZSB0
byAiLCB0YXJnZXRPcmlnaW4tPnRvU3RyaW5nKCksICIuIFJlY2lwaWVudCBoYXMgb3JpZ2luICIs
IGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkudG9TdHJpbmcoKSwgIi5cbiIpOworICAgICAg
ICAgICAgICAgICAgICBpZiAoc3RhY2tUcmFjZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHBh
Z2VDb25zb2xlLT5hZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2
ZWw6OkVycm9yLCBtZXNzYWdlLCAqc3RhY2tUcmFjZSk7CisgICAgICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VDb25zb2xlLT5hZGRNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtZXNzYWdlKTsKKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZEZhaWxQb3N0TWVzc2FnZShmcmFtZSwgcG9zdE1lc3NhZ2VJZGVudGlmaWVyKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkRmFpbFBvc3RNZXNzYWdlKGZyYW1lLCB0aW1lcik7Ci0gICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICB9CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxEaXNwYXRjaFBvc3RNZXNzYWdlKGZyYW1lLCB0aW1lcik7CisgICAgICAg
IFVzZXJHZXN0dXJlSW5kaWNhdG9yIHVzZXJHZXN0dXJlSW5kaWNhdG9yKHVzZXJHZXN0dXJlVG9G
b3J3YXJkKTsKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hQ
b3N0TWVzc2FnZShmcmFtZSwgcG9zdE1lc3NhZ2VJZGVudGlmaWVyKTsKKworICAgICAgICBhdXRv
IGV2ZW50ID0gTWVzc2FnZUV2ZW50OjpjcmVhdGUoTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMo
KmRvY3VtZW50KCksIFdURk1vdmUobWVzc2FnZS50cmFuc2ZlcnJlZFBvcnRzKSksIG1lc3NhZ2Uu
bWVzc2FnZS5yZWxlYXNlTm9uTnVsbCgpLCBzb3VyY2VPcmlnaW4sIHsgfSwgaW5jdW1iZW50V2lu
ZG93UHJveHkgPyBtYWtlT3B0aW9uYWwoTWVzc2FnZUV2ZW50U291cmNlKFdURk1vdmUoaW5jdW1i
ZW50V2luZG93UHJveHkpKSkgOiBXVEY6Om51bGxvcHQpOworICAgICAgICBkaXNwYXRjaEV2ZW50
KGV2ZW50KTsKIAotICAgIGRpc3BhdGNoRXZlbnQodGltZXIuZXZlbnQoKmRvY3VtZW50KCkpKTsK
KyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaFBvc3RNZXNzYWdl
KGZyYW1lLCBwb3N0TWVzc2FnZUlkZW50aWZpZXIpOworICAgIH0pOwogCi0gICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaFBvc3RNZXNzYWdlKGZyYW1lLCB0aW1lcik7Cisg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQb3N0TWVzc2FnZSgqZnJhbWUoKSwgcG9z
dE1lc3NhZ2VJZGVudGlmaWVyLCBsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKworICAgIHJldHVybiB7
IH07CiB9CiAKIERPTVNlbGVjdGlvbiogRE9NV2luZG93OjpnZXRTZWxlY3Rpb24oKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmgKaW5kZXggMDY4MzlhMjE1YjdlYTgxNGNjZWY4MzhkNTUxYjA1M2I2MjUy
YjM4Mi4uN2FhZjg0Mzc2MDZlODFkNjFhZWM0MTlkZTc0ODBhYTNhZDdjZjRlYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5oCkBAIC03NSw3ICs3NSw2IEBAIGNsYXNzIE5vZGVMaXN0OwogY2xhc3Mg
UGFnZTsKIGNsYXNzIFBhZ2VDb25zb2xlQ2xpZW50OwogY2xhc3MgUGVyZm9ybWFuY2U7Ci1jbGFz
cyBQb3N0TWVzc2FnZVRpbWVyOwogY2xhc3MgUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2s7
CiBjbGFzcyBSZXF1ZXN0SWRsZUNhbGxiYWNrOwogY2xhc3MgU2NoZWR1bGVkQWN0aW9uOwpAQCAt
Mjc2LDggKzI3NSw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHBvc3RNZXNzYWdlKGdsb2Jh
bE9iamVjdCwgaW5jdW1iZW50V2luZG93LCBtZXNzYWdlLCBXaW5kb3dQb3N0TWVzc2FnZU9wdGlv
bnMgeyBXVEZNb3ZlKHRhcmdldE9yaWdpbiksIFdURk1vdmUodHJhbnNmZXIpIH0pOwogICAgIH0K
IAotICAgIHZvaWQgcG9zdE1lc3NhZ2VUaW1lckZpcmVkKFBvc3RNZXNzYWdlVGltZXImKTsKLQog
ICAgIHZvaWQgbGFuZ3VhZ2VzQ2hhbmdlZCgpOwogCiAgICAgdm9pZCBzY3JvbGxCeShjb25zdCBT
Y3JvbGxUb09wdGlvbnMmKSBjb25zdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNmY2NGYzNTExYzJiZmUzMWI3MWNlOWNk
M2M2M2Q3Mzc1NGJjNmYxLi40Yzc3MDBkOTIzZTcyNWI4MDFjMzc2YjU5YWRlNWFlZWQ2MTM5YzZl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDMtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBQb3J0IHdpbmRvdy5wb3N0TWVzc2FnZSB0byB0aGUgSFRN
TCBldmVudCBsb29wCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDkzNTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVcGRhdGUgdGVzdHMgc28gdGhhdCBpdCBkb2VzIG5vdCBydW4gcG9zdE1lc3NhZ2UgdGVz
dHMgaW4gcGFyYWxsZWwgb24gdGhlIDIgZGlmZmVyZW50LW9yaWdpbiBpZnJhbWVzLAorICAgICAg
ICBzaW5jZSB0aGUgb3JkZXJpbmcgd291bGQgbm90IGJlIGd1YXJhbnRlZWQgYW5kIGl0IHdvdWxk
IGNhdXNlIGZsYWtpbmVzcy4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcG9zdE1l
c3NhZ2UvcmVzb3VyY2VzL3JlY3YuanM6CisgICAgICAgIChyZWN2KToKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L3Bvc3RNZXNzYWdlL3RhcmdldC1vcmlnaW4tZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcG9zdE1lc3NhZ2UvdGFyZ2V0LW9yaWdpbi5o
dG1sOgorCiAyMDIwLTAzLTIwICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gTGF5b3V0IFRlc3QgbWVkaWEvdHJhY2svdHJhY2st
bGVnYWN5YXBpLXdpdGgtYXV0b21hdGljLW1vZGUuaHRtbCBpcyBmYWlsaW5nCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA5Y2I0YTA3MGRmYzc4ZTVmYTA0Mjk4YTc5ZWM5ZjU5NTBk
NTAwZjRjLi4wYjMzOTI1NWY3MTc0YTE5OWZlYTJlNDM2MzExNTYwMzE0ODlhMmVlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0wMy0yMCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFBvcnQgd2luZG93LnBvc3RN
ZXNzYWdlIHRvIHRoZSBIVE1MIGV2ZW50IGxvb3AKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTM1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUgdGVzdCBub3cgdGhhdCB0aGUgbG9nZ2lu
ZyBvcmRlcmluZyBpcyBzbGlnaHRseSBkaWZmZXJlbnQuCisKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9icm93c2Vycy9vcmlnaW4vY3Jvc3Mtb3JpZ2luLW9iamVjdHMvY3Jvc3Mt
b3JpZ2luLW9iamVjdHMtZXhwZWN0ZWQudHh0OgorCiAyMDIwLTAzLTE5ICBKYXZpZXIgRmVybmFu
ZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3MtZ3JpZF0gQ2hhbmdl
cyBpbiBncmlkIG9yIGVsZW1lbnRzIGluc2lkZSB0aGUgZ3JpZCBhZmZlY3RzIG1hcmdpbiBvbiBv
dGhlciBlbGVtZW50cyBpbiB0aGUgZ3JpZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9wb3N0TWVzc2FnZS9yZXNvdXJjZXMvcmVjdi5qcyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9zdE1lc3NhZ2UvcmVzb3VyY2VzL3JlY3YuanMKaW5kZXgg
NzljNGQ3ZWM2N2JlNmMwZDdjYzI2ZjNhYzM0NDllODAxNTA0N2ZkMi4uMzY5MTc4NDFmN2ExZmY3
MTc1MmJhNGQyNDcyYThmY2Y2YjRhYTMxYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9wb3N0TWVzc2FnZS9yZXNvdXJjZXMvcmVjdi5qcworKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Bvc3RNZXNzYWdlL3Jlc291cmNlcy9yZWN2LmpzCkBA
IC05LDYgKzksOSBAQCBmdW5jdGlvbiByZWN2KGUpIHsKIAogICAgIGxvZyhtc2cpOwogCisgICAg
aWYgKGUuZGF0YS5tYXRjaCgvZGF0YT0icnVuTmV4dFRlc3QiLykpCisgICAgICAgIHJ1bk5leHRU
ZXN0KCk7CisKICAgICBpZiAoZS5kYXRhLm1hdGNoKC9kYXRhPSJkb25lIi8pICYmIHdpbmRvdy50
ZXN0UnVubmVyKQogICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9zdE1lc3NhZ2UvdGFyZ2V0LW9y
aWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Bvc3RN
ZXNzYWdlL3RhcmdldC1vcmlnaW4tZXhwZWN0ZWQudHh0CmluZGV4IDIzYjgxOWQ1ZTFjOTdhNTQ2
M2MyZGRjMGIzZTc2ZTcxNDEwODNkYmQuLmUzMDUwNmU4NzY4ZDdhMGJmNDNhOTg5MGUwMWUwNTNi
NDQyNDQxNTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9z
dE1lc3NhZ2UvdGFyZ2V0LW9yaWdpbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9wb3N0TWVzc2FnZS90YXJnZXQtb3JpZ2luLWV4cGVjdGVkLnR4dApA
QCAtMTcsNyArMTcsNiBAQCBDT05TT0xFIE1FU1NBR0U6IFVuYWJsZSB0byBwb3N0IG1lc3NhZ2Ug
dG8gaHR0cDovLzEyNy4wLjAuMTo4MDAwLiBSZWNpcGllbnQgaGFzCiB3aW5kb3cubG9jYXRpb24u
aHJlZiA9IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9wb3N0TWVzc2FnZS90YXJnZXQt
b3JpZ2luLmh0bWwKIAogd2FpdGluZy4uLgotRXJyb3Igc2VuZGluZyBtZXNzYWdlIHRvIC8vLiBT
eW50YXhFcnJvcjogVGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJu
LgogUmVjZWl2ZWQgbWVzc2FnZTogZGF0YT0iUmVjZWl2ZWQgbWVzc2FnZTogZGF0YT0iVHJ5aW5n
IG9yaWdpbj1odHRwOi8vbG9jYWxob3N0OjgwMDAiIG9yaWdpbj0iaHR0cDovLzEyNy4wLjAuMTo4
MDAwIiIgb3JpZ2luPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiCiBSZWNlaXZlZCBtZXNzYWdlOiBk
YXRhPSJSZWNlaXZlZCBtZXNzYWdlOiBkYXRhPSJUcnlpbmcgb3JpZ2luPWh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC8iIG9yaWdpbj0iaHR0cDovLzEyNy4wLjAuMTo4MDAwIiIgb3JpZ2luPSJodHRwOi8v
bG9jYWxob3N0OjgwMDAiCiBSZWNlaXZlZCBtZXNzYWdlOiBkYXRhPSJSZWNlaXZlZCBtZXNzYWdl
OiBkYXRhPSJUcnlpbmcgb3JpZ2luPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9mb28iIG9yaWdpbj0i
aHR0cDovLzEyNy4wLjAuMTo4MDAwIiIgb3JpZ2luPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiCkBA
IC0yNSw1ICsyNCw3IEBAIFJlY2VpdmVkIG1lc3NhZ2U6IGRhdGE9IlJlY2VpdmVkIG1lc3NhZ2U6
IGRhdGE9IlRyeWluZyBvcmlnaW49aHR0cDovL2xvY2FsaG9zdDo4CiBSZWNlaXZlZCBtZXNzYWdl
OiBkYXRhPSJSZWNlaXZlZCBtZXNzYWdlOiBkYXRhPSJUcnlpbmcgb3JpZ2luPWh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9mb28/YmFyI2JheiIgb3JpZ2luPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIiBv
cmlnaW49Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKIFJlY2VpdmVkIG1lc3NhZ2U6IGRhdGE9IlJl
Y2VpdmVkIG1lc3NhZ2U6IGRhdGE9IlRyeWluZyBvcmlnaW49aHR0cDovL3VzZXI6cGFzc0Bsb2Nh
bGhvc3Q6ODAwMC9mb28/YmFyI2JheiIgb3JpZ2luPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIiBv
cmlnaW49Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKIFJlY2VpdmVkIG1lc3NhZ2U6IGRhdGE9IlJl
Y2VpdmVkIG1lc3NhZ2U6IGRhdGE9IlRyeWluZyBvcmlnaW49KiIgb3JpZ2luPSJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiIiBvcmlnaW49Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKK1JlY2VpdmVkIG1l
c3NhZ2U6IGRhdGE9IlJlY2VpdmVkIG1lc3NhZ2U6IGRhdGE9InJ1bk5leHRUZXN0IiBvcmlnaW49
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIiIG9yaWdpbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIgor
RXJyb3Igc2VuZGluZyBtZXNzYWdlIHRvIC8vLiBTeW50YXhFcnJvcjogVGhlIHN0cmluZyBkaWQg
bm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLgogUmVjZWl2ZWQgbWVzc2FnZTogZGF0YT0i
UmVjZWl2ZWQgbWVzc2FnZTogZGF0YT0iVHJ5aW5nIG9yaWdpbj0vIiBvcmlnaW49Imh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCIiIG9yaWdpbj0iaHR0cDovLzEyNy4wLjAuMTo4MDAwIgotUmVjZWl2ZWQg
bWVzc2FnZTogZGF0YT0iUmVjZWl2ZWQgbWVzc2FnZTogZGF0YT0iZG9uZSIgb3JpZ2luPSJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiIiBvcmlnaW49Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKK1JlY2Vp
dmVkIG1lc3NhZ2U6IGRhdGE9IlJlY2VpdmVkIG1lc3NhZ2U6IGRhdGE9ImRvbmUiIG9yaWdpbj0i
aHR0cDovLzEyNy4wLjAuMTo4MDAwIiIgb3JpZ2luPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAiCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Bvc3RNZXNzYWdlL3Rh
cmdldC1vcmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9zdE1l
c3NhZ2UvdGFyZ2V0LW9yaWdpbi5odG1sCmluZGV4IGYwMWRjYjE3MmYwZTUyNTIxMDMzMDFjODk1
Y2Q3OTFhYWI2ZmFhNTYuLmNhNmFkN2JmNTVmMGU2NDM5YjA2MDU3NmVlNjlkMDhlOTE5ZTY4YmEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9zdE1lc3NhZ2Uv
dGFyZ2V0LW9yaWdpbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
cG9zdE1lc3NhZ2UvdGFyZ2V0LW9yaWdpbi5odG1sCkBAIC0xOCw5ICsxOCwyMCBAQCBmdW5jdGlv
biB0cnlQb3N0TWVzc2FnZSh3aW4sIG9yaWdpbikgewogICAgIH0KIH0KIAorZnVuY3Rpb24gcnVu
TmV4dFRlc3QoKSB7CisgICAgdmFyIHdpbjEyNyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdp
ZnJhbWUtMTI3JykuY29udGVudFdpbmRvdzsKKworICAgIC8vIFNob3VsZCBzdWNjZWVkOgorICAg
IHRyeVBvc3RNZXNzYWdlKHdpbjEyNywgIi8iKTsKKworICAgIC8vIFNob3VsZCB0aHJvdyBzeW50
YXggZXJyb3I6CisgICAgdHJ5UG9zdE1lc3NhZ2Uod2luMTI3LCAiLy8iKTsKKworICAgIHdpbjEy
Ny5wb3N0TWVzc2FnZSgnZG9uZScsICcqJyk7Cit9CisKIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAg
dmFyIHdpbkxvY2FsaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUtbG9jYWxo
b3N0JykuY29udGVudFdpbmRvdzsKLSAgICB2YXIgd2luMTI3PSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnaWZyYW1lLTEyNycpLmNvbnRlbnRXaW5kb3c7CiAKICAgICAvLyBTaG91bGQgc3VjY2Vl
ZDoKICAgICB0cnlQb3N0TWVzc2FnZSh3aW5Mb2NhbGhvc3QsICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiKTsKQEAgLTMwLDcgKzQxLDYgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICB0cnlQb3N0TWVz
c2FnZSh3aW5Mb2NhbGhvc3QsICJodHRwOi8vbG9jYWxob3N0OjgwMDAvZm9vP2JhciNiYXoiKTsK
ICAgICB0cnlQb3N0TWVzc2FnZSh3aW5Mb2NhbGhvc3QsICJodHRwOi8vdXNlcjpwYXNzQGxvY2Fs
aG9zdDo4MDAwL2Zvbz9iYXIjYmF6Iik7CiAgICAgdHJ5UG9zdE1lc3NhZ2Uod2luTG9jYWxob3N0
LCAiKiIpOwotICAgIHRyeVBvc3RNZXNzYWdlKHdpbjEyNywgIi8iKTsKIAogICAgIC8vIFNob3Vs
ZCBmYWlsOgogICAgIHRyeVBvc3RNZXNzYWdlKHdpbkxvY2FsaG9zdCwgIi8iKTsKQEAgLTQzLDkg
KzUzLDggQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAvLyBTaG91bGQgdGhyb3cgc3ludGF4IGVy
cm9yOgogICAgIHRyeVBvc3RNZXNzYWdlKHdpbkxvY2FsaG9zdCwgbnVsbCk7CiAgICAgdHJ5UG9z
dE1lc3NhZ2Uod2luTG9jYWxob3N0LCB1bmRlZmluZWQpOwotICAgIHRyeVBvc3RNZXNzYWdlKHdp
bjEyNywgIi8vIik7Ci0KLSAgICB3aW5Mb2NhbGhvc3QucG9zdE1lc3NhZ2UoJ2RvbmUnLCAnKicp
OworICAgIAorICAgIHdpbkxvY2FsaG9zdC5wb3N0TWVzc2FnZSgncnVuTmV4dFRlc3QnLCAnKicp
OwogfQogPC9zY3JpcHQ+CiA8Ym9keSBvbmxvYWQ9InRlc3QoKSI+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvb3Jp
Z2luL2Nyb3NzLW9yaWdpbi1vYmplY3RzL2Nyb3NzLW9yaWdpbi1vYmplY3RzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93
c2Vycy9vcmlnaW4vY3Jvc3Mtb3JpZ2luLW9iamVjdHMvY3Jvc3Mtb3JpZ2luLW9iamVjdHMtZXhw
ZWN0ZWQudHh0CmluZGV4IGRhMTEzYzgyYTEzNjJmOWIyMTc1OWRlYzI4NGM1NTVjZmE4ODYyMjQu
LjQ5NWNiYzc2YzQ3ODE4NmQwZGQwYjc1MTI1MjRjNjA2NmJiNTY0ODIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9v
cmlnaW4vY3Jvc3Mtb3JpZ2luLW9iamVjdHMvY3Jvc3Mtb3JpZ2luLW9iamVjdHMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9icm93c2Vycy9vcmlnaW4vY3Jvc3Mtb3JpZ2luLW9iamVjdHMvY3Jvc3Mtb3JpZ2luLW9iamVj
dHMtZXhwZWN0ZWQudHh0CkBAIC03LDEyICs3LDEyIEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAz
MDI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4ODAwIiBm
CiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjg3OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODgwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovLzEyNy4wLjAuMTo4ODAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMg
bXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAzMDI6IEJsb2NrZWQgYSBmcmFtZSB3
aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4ODAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjg4MDAiLiBQcm90b2NvbHMsIGRvbWFpbnMs
IGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDMwMjogQmxvY2tl
ZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0Ojg4MDAiIGZyb20gYWNjZXNz
aW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODgwMCIuIFByb3RvY29s
cywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCitDT05TT0xFIE1FU1NBR0U6IFVuYWJs
ZSB0byBwb3N0IG1lc3NhZ2UgdG8gaHR0cDovL2RvZXMtbm90LmV4aXN0LiBSZWNpcGllbnQgaGFz
IG9yaWdpbiBodHRwOi8vbG9jYWxob3N0Ojg4MDAuCisKIENPTlNPTEUgTUVTU0FHRTogVW5hYmxl
IHRvIHBvc3QgbWVzc2FnZSB0byBodHRwOi8vZG9lcy1ub3QuZXhpc3QuIFJlY2lwaWVudCBoYXMg
b3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODgwMC4KIAogQ09OU09MRSBNRVNTQUdFOiBVbmFibGUg
dG8gcG9zdCBtZXNzYWdlIHRvIGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC4gUmVjaXBpZW50IGhhcyBv
cmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4ODAwLgogCi1DT05TT0xFIE1FU1NBR0U6IFVuYWJsZSB0
byBwb3N0IG1lc3NhZ2UgdG8gaHR0cDovL2RvZXMtbm90LmV4aXN0LiBSZWNpcGllbnQgaGFzIG9y
aWdpbiBodHRwOi8vbG9jYWxob3N0Ojg4MDAuCi0KIENPTlNPTEUgTUVTU0FHRTogVW5hYmxlIHRv
IHBvc3QgbWVzc2FnZSB0byBodHRwOi8vZG9lcy1ub3QuZXhpc3QuIFJlY2lwaWVudCBoYXMgb3Jp
Z2luIGh0dHA6Ly8xMjcuMC4wLjE6ODgwMC4KIAogQ09OU09MRSBNRVNTQUdFOiBVbmFibGUgdG8g
cG9zdCBtZXNzYWdlIHRvIGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC4gUmVjaXBpZW50IGhhcyBvcmln
aW4gaHR0cDovLzEyNy4wLjAuMTo4ODAwLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>