<?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>72555</bug_id>
          
          <creation_ts>2011-11-16 14:59:56 -0800</creation_ts>
          <short_desc>Make TextTrackCue more mutable</short_desc>
          <delta_ts>2012-01-09 04:34:30 -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>Media</component>
          <version>528+ (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>43668</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Anna Cavender">annacc</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jknotten</cc>
    
    <cc>ojan</cc>
    
    <cc>vcarbune</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>504299</commentid>
    <comment_count>0</comment_count>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-11-16 14:59:56 -0800</bug_when>
    <thetext>Several attributes of TextTrackCue should not be readonly, they should be settable.  Also, upon setting, some attributes should throw errors for improper values.

http://www.whatwg.org/specs/web-apps/current-work/#texttrackcue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505113</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2011-11-17 12:40:08 -0800</bug_when>
    <thetext>&lt;rdar://problem/10464483&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505864</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-11-18 09:42:27 -0800</bug_when>
    <thetext>Link to TextTrackCue in the multi-page spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#texttrackcue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505865</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-11-18 09:43:05 -0800</bug_when>
    <thetext>Also, getCueAsSource() has been replaced with a mutable &apos;text&apos; attribute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530568</commentid>
    <comment_count>4</comment_count>
      <attachid>121317</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-01-05 13:03:28 -0800</bug_when>
    <thetext>Created attachment 121317
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530572</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-01-05 13:07:34 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Also, getCueAsSource() has been replaced with a mutable &apos;text&apos; attribute.

The patch was big enough that I wrote up https://bugs.webkit.org/show_bug.cgi?id=75646 for these changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530574</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-05 13:11:45 -0800</bug_when>
    <thetext>Attachment 121317 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/medi...&quot; exit_code: 1

Source/WebCore/html/TextTrackCue.h:72:  The parameter name &quot;b&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/html/TextTrackCue.h:78:  The parameter name &quot;b&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/html/TextTrackCue.cpp:274:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 3 in 11 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>530584</commentid>
    <comment_count>7</comment_count>
      <attachid>121320</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-01-05 13:21:47 -0800</bug_when>
    <thetext>Created attachment 121320
Pedantic update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530586</commentid>
    <comment_count>8</comment_count>
      <attachid>121321</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-01-05 13:23:09 -0800</bug_when>
    <thetext>Created attachment 121321
Updated patch - hopefully pedantic AND correct this time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531277</commentid>
    <comment_count>9</comment_count>
      <attachid>121321</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-01-06 12:32:53 -0800</bug_when>
    <thetext>Comment on attachment 121321
Updated patch - hopefully pedantic AND correct this time.

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

&gt; Source/WebCore/html/TextTrackCue.cpp:197
&gt; +    if (direction != m_writingDirection) {

I&apos;d make this an early return instead.

&gt; Source/WebCore/html/TextTrackCue.cpp:304
&gt; +    if (alignment != m_cueAlignment) {

Early return.

&gt; Source/WebCore/html/TextTrackCue.h:63
&gt; +    void setId(String);

This should take a const String&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531323</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-01-06 13:13:30 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/104327</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532093</commentid>
    <comment_count>11</comment_count>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2012-01-09 04:34:30 -0800</bug_when>
    <thetext>This patch seems to have broken test media/track/track-cues-seeking.html on chromium platform. This was diff in outputs:

@@ -13,19 +13,19 @@
 EVENT(seeked)
 
 EXPECTED (video.currentTime == &apos;1&apos;) OK
-EXPECTED (activeCues.length == &apos;1&apos;) OK
+EXPECTED (activeCues.length == &apos;1&apos;), OBSERVED &apos;0&apos; FAIL
 RUN(video.currentTime = 1.5)
 
 EVENT(seeked)
 
 EXPECTED (video.currentTime == &apos;1.5&apos;) OK
-EXPECTED (activeCues.length == &apos;2&apos;) OK
+EXPECTED (activeCues.length == &apos;2&apos;), OBSERVED &apos;0&apos; FAIL
 RUN(video.currentTime = 2)
 
 EVENT(seeked)
 
 EXPECTED (video.currentTime == &apos;2&apos;) OK
-EXPECTED (activeCues.length == &apos;3&apos;) OK
+EXPECTED (activeCues.length == &apos;3&apos;), OBSERVED &apos;0&apos; FAIL
 RUN(video.currentTime = 2.5)
 

So it seems that perhaps the activeCues haven&apos;t been loaded by the time the seeking takes place. Is this a fault with this patch, or does the test need to be updated in some way?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121317</attachid>
            <date>2012-01-05 13:03:28 -0800</date>
            <delta_ts>2012-01-05 13:21:47 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch_mutable_cue_3.txt</filename>
            <type>text/plain</type>
            <size>30840</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDE4OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYxIEBACisyMDEyLTAxLTA1ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgVGV4dFRyYWNr
Q3VlIG1vcmUgbXV0YWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzI1NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBtZWRpYS90cmFjay90cmFjay1jdWUtbXV0YWJsZS5odG1sCisKKyAgICAg
ICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6dXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3Vlcyk6IERvIG5vdGhpbmcgaWYgdGhl
ICJpZ25vcmUgY3VlIHVwZGF0ZXMiCisgICAgICAgICAgICBmbGFnIGlzIHNldAorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrQWRkQ3Vlcyk6IEJsb2NrIGN1ZSB1
cGRhdGVzIHVudGlsIGFsbCBvZiB0aGUgbmV3IGN1ZXMgaGF2ZQorICAgICAgICAgICAgYmVlbiBh
ZGRlZCwgdGhlbiBjYWxsIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMgc28gdXBkYXRlIHRoZSBk
aXNwbGF5IGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OnRleHRUcmFja1JlbW92ZUN1ZXMpOiBCbG9jayBjdWUgdXBkYXRlcyB1bnRpbCBhbGwgb2YgdGhl
IG5ldyBjdWVzIGhhdmUKKyAgICAgICAgICAgIGJlZW4gcmVtb3ZlZCwgdGhlbiBjYWxsIHVwZGF0
ZUFjdGl2ZVRleHRUcmFja0N1ZXMgc28gdXBkYXRlIHRoZSBkaXNwbGF5IGlmIG5lY2Vzc2FyeS4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZSk6IENh
bGwgdXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3VlcyBzbyB1cGRhdGUgdGhlIGRpc3BsYXkgaWYgbmVj
ZXNzYXJ5LgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVt
b3ZlQ3VlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjppZ25vcmVUcmFja0Rpc3BsYXlVcGRhdGVS
ZXF1ZXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpiZWdpbklnbm9y
aW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6ZW5kSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cyk6CisKKyAg
ICAgICAgKiBodG1sL1RleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6
OmN1ZVdpbGxDaGFuZ2UpOiBOZXcsIHJlbW92ZSB0aGUgY3VlIGZyb20gdGhlIG1lZGlhIGVsZW1l
bnQgYmVjYXVzZSBpdHMKKyAgICAgICAgICAgIHBvc2l0aW9uIGluIHRoZSBpbnRlcnZhbCB0cmVl
IGlzIGJhc2VkIG9uIHN0YXJ0IGFuZCBlbmQgdGltZXMuCisgICAgICAgIChXZWJDb3JlOjpUZXh0
VHJhY2s6OmN1ZURpZENoYW5nZSk6IEFkZCB0aGUgY3VlIHRvIHRoZSBtZWRpYSBlbGVtZW50Lgor
ICAgICAgICAqIGh0bWwvVGV4dFRyYWNrLmg6CisKKyAgICAgICAgKiBodG1sL1RleHRUcmFja0N1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdGFydEtleXdvcmQpOiBOZXcsIHVzZSBhIHN0YXRp
YyBTdHJpbmcgZm9yIHRoZSBjb25zdGFudC4KKyAgICAgICAgKFdlYkNvcmU6Om1pZGRsZUtleXdv
cmQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmVuZEtleXdvcmQpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6Omhvcml6b250YWxLZXl3b3JkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
Ojp2ZXJ0aWNhbEtleXdvcmQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OnZlcnRpY2FsbHJL
ZXl3b3JkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmN1ZVdpbGxD
aGFuZ2UpOiBOZXcsIHRlbGwgdGhlIHRyYWNrIHRoZSBjdWUgaXMgYWJvdXQgdG8gY2hhbmdlLgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpjdWVEaWRDaGFuZ2UpOiBOZXcsIHRlbGwg
dGhlIHRyYWNrIHRoZSBjdWUgaGFzIGNoYW5nZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJh
Y2tDdWU6OnNldElkKTogTmV3LCBhdHRyaWJ1dGUgaXMgbXV0YWJsZS4KKyAgICAgICAgKFdlYkNv
cmU6OlRleHRUcmFja0N1ZTo6c2V0U3RhcnRUaW1lKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tDdWU6OnNldEVuZFRpbWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRUcmFja0N1ZTo6c2V0UGF1c2VPbkV4aXQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRUcmFja0N1ZTo6ZGlyZWN0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJh
Y2tDdWU6OnNldERpcmVjdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNr
Q3VlOjpzZXRTbmFwVG9MaW5lcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNr
Q3VlOjpzZXRMaW5lUG9zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFj
a0N1ZTo6c2V0VGV4dFBvc2l0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJh
Y2tDdWU6OnNldFNpemUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6
YWxpZ25tZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OnNldEFs
aWdubWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpwYXJzZVNl
dHRpbmdzKTogVXNlIHRoZSBzdGF0aWMgc3RyaW5ncy4KKyAgICAgICAgKiBodG1sL1RleHRUcmFj
a0N1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjppZCk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2tDdWU6OnN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
VHJhY2tDdWU6OmVuZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpwYXVz
ZU9uRXhpdCk6CisgICAgICAgICogaHRtbC9UZXh0VHJhY2tDdWUuaWRsOgorCiAyMDEyLTAxLTA1
ICBLZW4gQnVjaGFuYW4gPGtlbnJiQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDcmFzaCBkdWUg
dG8gcmVwYXJlbnRpbmcgb2YgcmVscG9zaXRpb25lZCBvYmplY3QgdW5kZXIgYW5vbnltb3VzIGJs
b2NrCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJldmlz
aW9uIDEwNDE2MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTk0NSw2ICs5NDUsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OmxvYWRSZXNvdXJjZShjb25zCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojp1cGRhdGVBY3RpdmVUZXh0VHJhY2tDdWVzKGZsb2F0IG1vdmllVGltZSkKIHsK
KyAgICBpZiAoaWdub3JlVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIAogICAgIEN1ZUxpc3QgcHJldmlvdXNseUFjdGl2ZUN1ZXMgPSBtX2N1cnJlbnRs
eUFjdGl2ZUN1ZXM7CiAgICAgYm9vbCBhY3RpdmVTZXRDaGFuZ2VkID0gZmFsc2U7CiAKQEAgLTEw
MjcsMjQgKzEwMzAsMzIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tLaW5kQ2hh
bgogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrKiwg
Y29uc3QgVGV4dFRyYWNrQ3VlTGlzdCogY3VlcykgCiB7CisgICAgYmVnaW5JZ25vcmluZ1RyYWNr
RGlzcGxheVVwZGF0ZVJlcXVlc3RzKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjdWVz
LT5sZW5ndGgoKTsgKytpKQogICAgICAgICB0ZXh0VHJhY2tBZGRDdWUoY3Vlcy0+aXRlbShpKS0+
dHJhY2soKSwgY3Vlcy0+aXRlbShpKSk7CisgICAgZW5kSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRh
dGVSZXF1ZXN0cygpOworICAgIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMoY3VycmVudFRpbWUo
KSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0
VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KiBjdWVzKSAKIHsKKyAgICBiZWdpbklnbm9y
aW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGN1ZXMtPmxlbmd0aCgpOyArK2kpCiAgICAgICAgIHRleHRUcmFja1JlbW92ZUN1ZShjdWVz
LT5pdGVtKGkpLT50cmFjaygpLCBjdWVzLT5pdGVtKGkpKTsKKyAgICBlbmRJZ25vcmluZ1RyYWNr
RGlzcGxheVVwZGF0ZVJlcXVlc3RzKCk7CisgICAgdXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3Vlcyhj
dXJyZW50VGltZSgpKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRD
dWUoVGV4dFRyYWNrKiwgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+IGN1ZSkKIHsKICAgICBtX2N1
ZVRyZWUuYWRkKG1fY3VlVHJlZS5jcmVhdGVJbnRlcnZhbChjdWUtPnN0YXJ0VGltZSgpLCBjdWUt
PmVuZFRpbWUoKSwgY3VlLmdldCgpKSk7CisgICAgdXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3Vlcyhj
dXJyZW50VGltZSgpKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tSZW1v
dmVDdWUoVGV4dFRyYWNrKiwgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+IGN1ZSkKIHsKICAgICBt
X2N1ZVRyZWUucmVtb3ZlKG1fY3VlVHJlZS5jcmVhdGVJbnRlcnZhbChjdWUtPnN0YXJ0VGltZSgp
LCBjdWUtPmVuZFRpbWUoKSwgY3VlLmdldCgpKSk7CisgICAgdXBkYXRlQWN0aXZlVGV4dFRyYWNr
Q3VlcyhjdXJyZW50VGltZSgpKTsKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaAkocmV2aXNpb24gMTA0MTYxKQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwMCw2ICs0MDAsMTAg
QEAgcHJpdmF0ZToKICAgICBib29sIHVzZXJJc0ludGVyZXN0ZWRJblRoaXNMYW5ndWFnZShjb25z
dCBTdHJpbmcmKSBjb25zdDsKICAgICBib29sIHVzZXJJc0ludGVyZXN0ZWRJblRoaXNUcmFjayhI
VE1MVHJhY2tFbGVtZW50KikgY29uc3Q7CiAgICAgSFRNTFRyYWNrRWxlbWVudCogc2hvd2luZ1Ry
YWNrV2l0aFNhbWVLaW5kKEhUTUxUcmFja0VsZW1lbnQqKSBjb25zdDsKKworICAgIGJvb2wgaWdu
b3JlVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKSBjb25zdCB7IHJldHVybiBtX2lnbm9yZVRy
YWNrRGlzcGxheVVwZGF0ZSA+IDA7IH0KKyAgICB2b2lkIGJlZ2luSWdub3JpbmdUcmFja0Rpc3Bs
YXlVcGRhdGVSZXF1ZXN0cygpIHsgKyttX2lnbm9yZVRyYWNrRGlzcGxheVVwZGF0ZTsgfQorICAg
IHZvaWQgZW5kSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpIHsgQVNTRVJUKG1f
aWdub3JlVHJhY2tEaXNwbGF5VXBkYXRlKTsgLS1tX2lnbm9yZVRyYWNrRGlzcGxheVVwZGF0ZTsg
fQogI2VuZGlmCiAKICAgICAvLyBUaGVzZSAiaW50ZXJuYWwiIGZ1bmN0aW9ucyBkbyBub3QgY2hl
Y2sgdXNlciBnZXN0dXJlIHJlc3RyaWN0aW9ucy4KQEAgLTU2MCw2ICs1NjQsNyBAQCBwcml2YXRl
OgogICAgIFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNrPiA+IG1fdGV4dFRyYWNrc1doZW5SZXNvdXJj
ZVNlbGVjdGlvbkJlZ2FuOwogICAgIEN1ZUludGVydmFsVHJlZSBtX2N1ZVRyZWU7CiAgICAgQ3Vl
TGlzdCBtX2N1cnJlbnRseUFjdGl2ZUN1ZXM7CisgICAgaW50IG1faWdub3JlVHJhY2tEaXNwbGF5
VXBkYXRlOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9UZXh0VHJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvVGV4dFRyYWNrLmNwcAkocmV2aXNpb24gMTA0MTYxKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9UZXh0VHJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTEsNiArMjUxLDI1IEBAIHZvaWQg
VGV4dFRyYWNrOjpmaXJlQ3VlQ2hhbmdlRXZlbnQoKQogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwogICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY3VlY2hhbmdl
RXZlbnQsIGZhbHNlLCBmYWxzZSksIGVjKTsKIH0KKyAgICAKK3ZvaWQgVGV4dFRyYWNrOjpjdWVX
aWxsQ2hhbmdlKFRleHRUcmFja0N1ZSogY3VlKQoreworICAgIGlmICghbV9jbGllbnQpCisgICAg
ICAgIHJldHVybjsKKworICAgIC8vIFRoZSBjdWUgbWF5IG5lZWQgdG8gYmUgcmVwb3NpdGlvbmVk
IGluIHRoZSBtZWRpYSBlbGVtZW50J3MgaW50ZXJ2YWwgdHJlZSwgbWF5IG5lZWQgdG8KKyAgICAv
LyBiZSByZS1yZW5kZXJlZCwgZXRjLCBzbyByZW1vdmUgaXQgYmVmb3JlIHRoZSBtb2RpZmljYXRp
b24uLi4KKyAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlKHRoaXMsIGN1ZSk7Cit9CisK
K3ZvaWQgVGV4dFRyYWNrOjpjdWVEaWRDaGFuZ2UoVGV4dFRyYWNrQ3VlKiBjdWUpCit7CisgICAg
aWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gLi4uIGFuZCBhZGQgaXQg
YmFjayBhZ2Fpbi4KKyAgICBtX2NsaWVudC0+dGV4dFRyYWNrQWRkQ3VlKHRoaXMsIGN1ZSk7Cit9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9U
ZXh0VHJhY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5o
CShyZXZpc2lvbiAxMDQxNjEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5oCSh3
b3JraW5nIGNvcHkpCkBAIC05OCw2ICs5OCw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRkQ3Vl
KFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgcmVt
b3ZlQ3VlKFRleHRUcmFja0N1ZSosIEV4Y2VwdGlvbkNvZGUmKTsKKworICAgIHZvaWQgY3VlV2ls
bENoYW5nZShUZXh0VHJhY2tDdWUqKTsKKyAgICB2b2lkIGN1ZURpZENoYW5nZShUZXh0VHJhY2tD
dWUqKTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgZmlyZUN1ZUNoYW5nZUV2ZW50KCk7CiAgICAg
REVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihjdWVjaGFuZ2UpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9UZXh0VHJhY2tDdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvVGV4dFRyYWNrQ3VlLmNwcAkocmV2aXNpb24gMTA0MTYxKQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9UZXh0VHJhY2tDdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw0
MSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcm
IHN0YXJ0S2V5d29yZCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIHN0YXJ0LCAoInN0YXJ0IikpOworICAgIHJldHVybiBzdGFydDsKK30KKworc3RhdGlj
IGNvbnN0IEF0b21pY1N0cmluZyYgbWlkZGxlS2V5d29yZCgpCit7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG1pZGRsZSwgKCJtaWRkbGUiKSk7CisgICAgcmV0
dXJuIG1pZGRsZTsKK30KKworc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgZW5kS2V5d29yZCgp
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGVuZCwgKCJl
bmQiKSk7CisgICAgcmV0dXJuIGVuZDsKK30KKworc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYg
aG9yaXpvbnRhbEtleXdvcmQoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCBob3Jpem9udGFsLCAoImhvcml6b250YWwiKSk7CisgICAgcmV0dXJuIGhvcml6
b250YWw7Cit9CisKK3N0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHZlcnRpY2FsS2V5d29yZCgp
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHZlcnRpY2Fs
LCAoInZlcnRpY2FsIikpOworICAgIHJldHVybiB2ZXJ0aWNhbDsKK30KK3N0YXRpYyBjb25zdCBB
dG9taWNTdHJpbmcmIHZlcnRpY2FsbHJLZXl3b3JkKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgdmVydGljYWxsciwgKCJ2ZXJ0aWNhbC1sciIpKTsKKyAg
ICByZXR1cm4gdmVydGljYWxscjsKK30KKyAgICAKIFRleHRUcmFja0N1ZTo6VGV4dFRyYWNrQ3Vl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgaWQsIGRvdWJs
ZSBzdGFydCwgZG91YmxlIGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50LCBjb25zdCBTdHJpbmcm
IHNldHRpbmdzLCBib29sIHBhdXNlT25FeGl0KQogICAgIDogbV9pZChpZCkKICAgICAsIG1fc3Rh
cnRUaW1lKHN0YXJ0KQpAQCAtNjQsNiArOTksMTggQEAgVGV4dFRyYWNrQ3VlOjp+VGV4dFRyYWNr
Q3VlKCkKIHsKIH0KIAordm9pZCBUZXh0VHJhY2tDdWU6OmN1ZVdpbGxDaGFuZ2UoKQoreworICAg
IGlmIChtX3RyYWNrKQorICAgICAgICBtX3RyYWNrLT5jdWVXaWxsQ2hhbmdlKHRoaXMpOworfQor
Cit2b2lkIFRleHRUcmFja0N1ZTo6Y3VlRGlkQ2hhbmdlKCkKK3sKKyAgICBpZiAobV90cmFjaykK
KyAgICAgICAgbV90cmFjay0+Y3VlRGlkQ2hhbmdlKHRoaXMpOworfQorCiBUZXh0VHJhY2sqIFRl
eHRUcmFja0N1ZTo6dHJhY2soKSBjb25zdAogewogICAgIHJldHVybiBtX3RyYWNrLmdldCgpOwpA
QCAtNzQsNTQgKzEyMSwxOTMgQEAgdm9pZCBUZXh0VHJhY2tDdWU6OnNldFRyYWNrKFBhc3NSZWZQ
dHI8VAogICAgIG1fdHJhY2sgPSB0cmFjazsKIH0KIAotU3RyaW5nIFRleHRUcmFja0N1ZTo6aWQo
KSBjb25zdAordm9pZCBUZXh0VHJhY2tDdWU6OnNldElkKFN0cmluZyBpZCkKIHsKLSAgICByZXR1
cm4gbV9pZDsKKyAgICBpZiAobV9pZCA9PSBpZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY3Vl
V2lsbENoYW5nZSgpOworICAgIG1faWQgPSBpZDsKKyAgICBjdWVEaWRDaGFuZ2UoKTsKIH0KIAot
ZG91YmxlIFRleHRUcmFja0N1ZTo6c3RhcnRUaW1lKCkgY29uc3QKK3ZvaWQgVGV4dFRyYWNrQ3Vl
OjpzZXRTdGFydFRpbWUoZG91YmxlIHZhbHVlKQogewotICAgIHJldHVybiBtX3N0YXJ0VGltZTsK
KyAgICBpZiAobV9zdGFydFRpbWUgPT0gdmFsdWUpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAg
ICBjdWVXaWxsQ2hhbmdlKCk7CisgICAgbV9zdGFydFRpbWUgPSB2YWx1ZTsKKyAgICBjdWVEaWRD
aGFuZ2UoKTsKIH0KLQotZG91YmxlIFRleHRUcmFja0N1ZTo6ZW5kVGltZSgpIGNvbnN0CisgICAg
Cit2b2lkIFRleHRUcmFja0N1ZTo6c2V0RW5kVGltZShkb3VibGUgdmFsdWUpCiB7Ci0gICAgcmV0
dXJuIG1fZW5kVGltZTsKKyAgICBpZiAobV9lbmRUaW1lID09IHZhbHVlKQorICAgICAgICByZXR1
cm47CisgICAgCisgICAgY3VlV2lsbENoYW5nZSgpOworICAgIG1fZW5kVGltZSA9IHZhbHVlOwor
ICAgIGN1ZURpZENoYW5nZSgpOwogfQotCi1ib29sIFRleHRUcmFja0N1ZTo6cGF1c2VPbkV4aXQo
KSBjb25zdAorICAgIAordm9pZCBUZXh0VHJhY2tDdWU6OnNldFBhdXNlT25FeGl0KGJvb2wgdmFs
dWUpCiB7Ci0gICAgcmV0dXJuIG1fcGF1c2VPbkV4aXQ7CisgICAgaWYgKG1fcGF1c2VPbkV4aXQg
PT0gdmFsdWUpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBjdWVXaWxsQ2hhbmdlKCk7Cisg
ICAgbV9wYXVzZU9uRXhpdCA9IHZhbHVlOworICAgIGN1ZURpZENoYW5nZSgpOwogfQogCiBTdHJp
bmcgVGV4dFRyYWNrQ3VlOjpkaXJlY3Rpb24oKSBjb25zdAogewogICAgIHN3aXRjaCAobV93cml0
aW5nRGlyZWN0aW9uKSB7CiAgICAgY2FzZSBIb3Jpem9udGFsOiAKLSAgICAgICAgcmV0dXJuICJo
b3Jpem9udGFsIjsKKyAgICAgICAgcmV0dXJuIGhvcml6b250YWxLZXl3b3JkKCk7CiAgICAgY2Fz
ZSBWZXJ0aWNhbEdyb3dpbmdMZWZ0OgotICAgICAgICByZXR1cm4gInZlcnRpY2FsIjsKKyAgICAg
ICAgcmV0dXJuIHZlcnRpY2FsS2V5d29yZCgpOwogICAgIGNhc2UgVmVydGljYWxHcm93aW5nUmln
aHQ6Ci0gICAgICAgIHJldHVybiAidmVydGljYWwtbHIiOworICAgICAgICByZXR1cm4gdmVydGlj
YWxscktleXdvcmQoKTsKICAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuICIiOwogICAgIH0KIH0KIAordm9pZCBUZXh0VHJhY2tDdWU6OnNl
dERpcmVjdGlvbihjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211
bHRpcGFnZS90aGUtdmlkZW8tZWxlbWVudC5odG1sI2RvbS10ZXh0dHJhY2tjdWUtZGlyZWN0aW9u
CisgICAgLy8gT24gc2V0dGluZywgdGhlIHRleHQgdHJhY2sgY3VlIHdyaXRpbmcgZGlyZWN0aW9u
IG11c3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSBnaXZlbiAKKyAgICAvLyBpbiB0aGUgZmlyc3QgY2Vs
bCBvZiB0aGUgcm93IGluIHRoZSB0YWJsZSBhYm92ZSB3aG9zZSBzZWNvbmQgY2VsbCBpcyBhIAor
ICAgIC8vIGNhc2Utc2Vuc2l0aXZlIG1hdGNoIGZvciB0aGUgbmV3IHZhbHVlLCBpZiBhbnkuIElm
IG5vbmUgb2YgdGhlIHZhbHVlcyBtYXRjaCwgdGhlbgorICAgIC8vIHRoZSB1c2VyIGFnZW50IG11
c3QgaW5zdGVhZCB0aHJvdyBhIFN5bnRheEVycm9yIGV4Y2VwdGlvbi4KKyAgICAKKyAgICBEaXJl
Y3Rpb24gZGlyZWN0aW9uID0gbV93cml0aW5nRGlyZWN0aW9uOworICAgIGlmICh2YWx1ZSA9PSBo
b3Jpem9udGFsS2V5d29yZCgpKQorICAgICAgICBkaXJlY3Rpb24gPSBIb3Jpem9udGFsOworICAg
IGVsc2UgaWYgKHZhbHVlID09IHZlcnRpY2FsS2V5d29yZCgpKQorICAgICAgICBkaXJlY3Rpb24g
PSBWZXJ0aWNhbEdyb3dpbmdMZWZ0OworICAgIGVsc2UgaWYgKHZhbHVlID09IHZlcnRpY2FsbHJL
ZXl3b3JkKCkpCisgICAgICAgIGRpcmVjdGlvbiA9IFZlcnRpY2FsR3Jvd2luZ1JpZ2h0OworICAg
IGVsc2UKKyAgICAgICAgZWMgPSBTWU5UQVhfRVJSOworICAgIAorICAgIGlmIChkaXJlY3Rpb24g
IT0gbV93cml0aW5nRGlyZWN0aW9uKSB7CisgICAgICAgIGN1ZVdpbGxDaGFuZ2UoKTsKKyAgICAg
ICAgbV93cml0aW5nRGlyZWN0aW9uID0gZGlyZWN0aW9uOworICAgICAgICBjdWVEaWRDaGFuZ2Uo
KTsKKyAgICB9Cit9CisKK3ZvaWQgVGV4dFRyYWNrQ3VlOjpzZXRTbmFwVG9MaW5lcyhib29sIHZh
bHVlKQoreworICAgIGlmIChtX3NuYXBUb0xpbmVzID09IHZhbHVlKQorICAgICAgICByZXR1cm47
CisgICAgCisgICAgY3VlV2lsbENoYW5nZSgpOworICAgIG1fc25hcFRvTGluZXMgPSB2YWx1ZTsK
KyAgICBjdWVEaWRDaGFuZ2UoKTsKK30KKwordm9pZCBUZXh0VHJhY2tDdWU6OnNldExpbmVQb3Np
dGlvbihpbnQgcG9zaXRpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIC8vIGh0dHA6Ly93
d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3RoZS12
aWRlby1lbGVtZW50Lmh0bWwjZG9tLXRleHR0cmFja2N1ZS1saW5lcG9zaXRpb24KKyAgICAvLyBP
biBzZXR0aW5nLCBpZiB0aGUgdGV4dCB0cmFjayBjdWUgc25hcC10by1saW5lcyBmbGFnIGlzIG5v
dCBzZXQsIGFuZCB0aGUgbmV3CisgICAgLy8gdmFsdWUgaXMgbmVnYXRpdmUgb3IgZ3JlYXRlciB0
aGFuIDEwMCwgdGhlbiB0aHJvdyBhbiBJbmRleFNpemVFcnJvciBleGNlcHRpb24uCisgICAgaWYg
KCFtX3NuYXBUb0xpbmVzICYmIChwb3NpdGlvbiA8IDAgfHwgcG9zaXRpb24gPiAxMDApKSB7Cisg
ICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
CisgICAgLy8gT3RoZXJ3aXNlLCBzZXQgdGhlIHRleHQgdHJhY2sgY3VlIGxpbmUgcG9zaXRpb24g
dG8gdGhlIG5ldyB2YWx1ZS4KKyAgICBpZiAobV9saW5lUG9zaXRpb24gPT0gcG9zaXRpb24pCisg
ICAgICAgIHJldHVybjsKKyAgICAKKyAgICBjdWVXaWxsQ2hhbmdlKCk7CisgICAgbV9saW5lUG9z
aXRpb24gPSBwb3NpdGlvbjsgCisgICAgY3VlRGlkQ2hhbmdlKCk7Cit9CisKK3ZvaWQgVGV4dFRy
YWNrQ3VlOjpzZXRUZXh0UG9zaXRpb24oaW50IHBvc2l0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13
b3JrL211bHRpcGFnZS90aGUtdmlkZW8tZWxlbWVudC5odG1sI2RvbS10ZXh0dHJhY2tjdWUtbGlu
ZXBvc2l0aW9uCisgICAgLy8gT24gc2V0dGluZywgaWYgdGhlIG5ldyB2YWx1ZSBpcyBuZWdhdGl2
ZSBvciBncmVhdGVyIHRoYW4gMTAwLCB0aGVuIHRocm93IGFuIEluZGV4U2l6ZUVycm9yIGV4Y2Vw
dGlvbi4KKyAgICAvLyBPdGhlcndpc2UsIHNldCB0aGUgdGV4dCB0cmFjayBjdWUgdGV4dCBwb3Np
dGlvbiB0byB0aGUgbmV3IHZhbHVlLgorICAgIGlmIChwb3NpdGlvbiA8IDAgfHwgcG9zaXRpb24g
PiAxMDApIHsKKyAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICAKKyAgICAvLyBPdGhlcndpc2UsIHNldCB0aGUgdGV4dCB0cmFjayBjdWUgbGlu
ZSBwb3NpdGlvbiB0byB0aGUgbmV3IHZhbHVlLgorICAgIGlmIChtX3RleHRQb3NpdGlvbiA9PSBw
b3NpdGlvbikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGN1ZVdpbGxDaGFuZ2UoKTsKKyAg
ICBtX3RleHRQb3NpdGlvbiA9IHBvc2l0aW9uOyAKKyAgICBjdWVEaWRDaGFuZ2UoKTsKK30KKwor
dm9pZCBUZXh0VHJhY2tDdWU6OnNldFNpemUoaW50IHNpemUsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdv
cmsvbXVsdGlwYWdlL3RoZS12aWRlby1lbGVtZW50Lmh0bWwjZG9tLXRleHR0cmFja2N1ZS1zaXpl
CisgICAgLy8gT24gc2V0dGluZywgaWYgdGhlIG5ldyB2YWx1ZSBpcyBuZWdhdGl2ZSBvciBncmVh
dGVyIHRoYW4gMTAwLCB0aGVuIHRocm93IGFuIEluZGV4U2l6ZUVycm9yCisgICAgLy8gZXhjZXB0
aW9uLiBPdGhlcndpc2UsIHNldCB0aGUgdGV4dCB0cmFjayBjdWUgc2l6ZSB0byB0aGUgbmV3IHZh
bHVlLgorICAgIGlmIChzaXplIDwgMCB8fCBzaXplID4gMTAwKSB7CisgICAgICAgIGVjID0gSU5E
RVhfU0laRV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgLy8gT3RoZXJ3
aXNlLCBzZXQgdGhlIHRleHQgdHJhY2sgY3VlIGxpbmUgcG9zaXRpb24gdG8gdGhlIG5ldyB2YWx1
ZS4KKyAgICBpZiAobV9jdWVTaXplID09IHNpemUpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAg
ICBjdWVXaWxsQ2hhbmdlKCk7CisgICAgbV9jdWVTaXplID0gc2l6ZTsKKyAgICBjdWVEaWRDaGFu
Z2UoKTsKK30KKwogU3RyaW5nIFRleHRUcmFja0N1ZTo6YWxpZ25tZW50KCkgY29uc3QKIHsKICAg
ICBzd2l0Y2ggKG1fY3VlQWxpZ25tZW50KSB7Ci0gICAgY2FzZSBTdGFydDogCi0gICAgICAgIHJl
dHVybiAic3RhcnQiOwotICAgIGNhc2UgTWlkZGxlOgotICAgICAgICByZXR1cm4gIm1pZGRsZSI7
Ci0gICAgY2FzZSBFbmQ6Ci0gICAgICAgIHJldHVybiAiZW5kIjsKLSAgICBkZWZhdWx0OgotICAg
ICAgICByZXR1cm4gIiI7CisgICAgICAgIGNhc2UgU3RhcnQ6IAorICAgICAgICAgICAgcmV0dXJu
IHN0YXJ0S2V5d29yZCgpOworICAgICAgICBjYXNlIE1pZGRsZToKKyAgICAgICAgICAgIHJldHVy
biBtaWRkbGVLZXl3b3JkKCk7CisgICAgICAgIGNhc2UgRW5kOgorICAgICAgICAgICAgcmV0dXJu
IGVuZEtleXdvcmQoKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuICIiOwogICAgIH0KIH0KIAordm9pZCBUZXh0
VHJhY2tDdWU6OnNldEFsaWdubWVudChjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2Rl
JiBlYykKK3sKKyAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3Vy
cmVudC13b3JrL211bHRpcGFnZS90aGUtdmlkZW8tZWxlbWVudC5odG1sI2RvbS10ZXh0dHJhY2tj
dWUtYWxpZ25tZW50CisgICAgLy8gT24gc2V0dGluZywgdGhlIHRleHQgdHJhY2sgY3VlIGFsaWdu
bWVudCBtdXN0IGJlIHNldCB0byB0aGUgdmFsdWUgZ2l2ZW4gaW4gdGhlIAorICAgIC8vIGZpcnN0
IGNlbGwgb2YgdGhlIHJvdyBpbiB0aGUgdGFibGUgYWJvdmUgd2hvc2Ugc2Vjb25kIGNlbGwgaXMg
YSBjYXNlLXNlbnNpdGl2ZQorICAgIC8vIG1hdGNoIGZvciB0aGUgbmV3IHZhbHVlLCBpZiBhbnku
IElmIG5vbmUgb2YgdGhlIHZhbHVlcyBtYXRjaCwgdGhlbiB0aGUgdXNlcgorICAgIC8vIGFnZW50
IG11c3QgaW5zdGVhZCB0aHJvdyBhIFN5bnRheEVycm9yIGV4Y2VwdGlvbi4KKyAgICAKKyAgICBB
bGlnbm1lbnQgYWxpZ25tZW50ID0gbV9jdWVBbGlnbm1lbnQ7CisgICAgaWYgKHZhbHVlID09IHN0
YXJ0S2V5d29yZCgpKQorICAgICAgICBhbGlnbm1lbnQgPSBTdGFydDsKKyAgICBlbHNlIGlmICh2
YWx1ZSA9PSBtaWRkbGVLZXl3b3JkKCkpCisgICAgICAgIGFsaWdubWVudCA9IE1pZGRsZTsKKyAg
ICBlbHNlIGlmICh2YWx1ZSA9PSBlbmRLZXl3b3JkKCkpCisgICAgICAgIGFsaWdubWVudCA9IEVu
ZDsKKyAgICBlbHNlCisgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKKyAgICAKKyAgICBpZiAoYWxp
Z25tZW50ICE9IG1fY3VlQWxpZ25tZW50KSB7CisgICAgICAgIGN1ZVdpbGxDaGFuZ2UoKTsKKyAg
ICAgICAgbV9jdWVBbGlnbm1lbnQgPSBhbGlnbm1lbnQ7CisgICAgICAgIGN1ZURpZENoYW5nZSgp
OworICAgIH0KK30KKyAgICAKIFN0cmluZyBUZXh0VHJhY2tDdWU6OmdldEN1ZUFzU291cmNlKCkK
IHsKICAgICByZXR1cm4gbV9jb250ZW50OwpAQCAtMTg3LDkgKzM3Myw5IEBAIHZvaWQgVGV4dFRy
YWNrQ3VlOjpwYXJzZVNldHRpbmdzKGNvbnN0IFMKICAgICAgICAgICAgIHsKICAgICAgICAgICAg
IC8vIDEtMyAtIENvbGxlY3QgdGhlIG5leHQgd29yZCBhbmQgc2V0IHRoZSB3cml0aW5nIGRpcmVj
dGlvbiBhY2NvcmRpbmdseS4KICAgICAgICAgICAgIFN0cmluZyB3cml0aW5nRGlyZWN0aW9uID0g
V2ViVlRUUGFyc2VyOjpjb2xsZWN0V29yZChpbnB1dCwgJnBvc2l0aW9uKTsKLSAgICAgICAgICAg
IGlmICh3cml0aW5nRGlyZWN0aW9uID09ICJ2ZXJ0aWNhbCIpCisgICAgICAgICAgICBpZiAod3Jp
dGluZ0RpcmVjdGlvbiA9PSB2ZXJ0aWNhbEtleXdvcmQoKSkKICAgICAgICAgICAgICAgICBtX3dy
aXRpbmdEaXJlY3Rpb24gPSBWZXJ0aWNhbEdyb3dpbmdMZWZ0OwotICAgICAgICAgICAgZWxzZSBp
ZiAod3JpdGluZ0RpcmVjdGlvbiA9PSAidmVydGljYWwtbHIiKQorICAgICAgICAgICAgZWxzZSBp
ZiAod3JpdGluZ0RpcmVjdGlvbiA9PSB2ZXJ0aWNhbGxyS2V5d29yZCgpKQogICAgICAgICAgICAg
ICAgIG1fd3JpdGluZ0RpcmVjdGlvbiA9IFZlcnRpY2FsR3Jvd2luZ1JpZ2h0OwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC0yOTcsMTEgKzQ4MywxMSBAQCB2b2lkIFRleHRU
cmFja0N1ZTo6cGFyc2VTZXR0aW5ncyhjb25zdCBTCiAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAvLyAxLTQgLSBDb2xsZWN0IHRoZSBuZXh0IHdvcmQgYW5kIHNldCB0aGUgY3VlIGFsaWdubWVu
dCBhY2NvcmRpbmdseS4KICAgICAgICAgICAgIFN0cmluZyBjdWVBbGlnbm1lbnQgPSBXZWJWVFRQ
YXJzZXI6OmNvbGxlY3RXb3JkKGlucHV0LCAmcG9zaXRpb24pOwotICAgICAgICAgICAgaWYgKGN1
ZUFsaWdubWVudCA9PSAic3RhcnQiKQorICAgICAgICAgICAgaWYgKGN1ZUFsaWdubWVudCA9PSBz
dGFydEtleXdvcmQoKSkKICAgICAgICAgICAgICAgICBtX2N1ZUFsaWdubWVudCA9IFN0YXJ0Owot
ICAgICAgICAgICAgZWxzZSBpZiAoY3VlQWxpZ25tZW50ID09ICJtaWRkbGUiKQorICAgICAgICAg
ICAgZWxzZSBpZiAoY3VlQWxpZ25tZW50ID09IG1pZGRsZUtleXdvcmQoKSkKICAgICAgICAgICAg
ICAgICBtX2N1ZUFsaWdubWVudCA9IE1pZGRsZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKGN1ZUFs
aWdubWVudCA9PSAiZW5kIikKKyAgICAgICAgICAgIGVsc2UgaWYgKGN1ZUFsaWdubWVudCA9PSBl
bmRLZXl3b3JkKCkpCiAgICAgICAgICAgICAgICAgbV9jdWVBbGlnbm1lbnQgPSBFbmQ7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dFRyYWNrQ3VlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJh
Y2tDdWUuaAkocmV2aXNpb24gMTA0MTYxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJh
Y2tDdWUuaAkod29ya2luZyBjb3B5KQpAQCAtNTksMTkgKzU5LDM4IEBAIHB1YmxpYzoKICAgICBU
ZXh0VHJhY2sqIHRyYWNrKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRUcmFjayhQYXNzUmVmUHRyPFRl
eHRUcmFjaz4pOwogCi0gICAgU3RyaW5nIGlkKCkgY29uc3Q7Ci0gICAgZG91YmxlIHN0YXJ0VGlt
ZSgpIGNvbnN0OwotICAgIGRvdWJsZSBlbmRUaW1lKCkgY29uc3Q7Ci0gICAgYm9vbCBwYXVzZU9u
RXhpdCgpIGNvbnN0OwotICAgIAorICAgIFN0cmluZyBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7
IH0KKyAgICB2b2lkIHNldElkKFN0cmluZyk7CisKKyAgICBkb3VibGUgc3RhcnRUaW1lKCkgY29u
c3QgeyByZXR1cm4gbV9zdGFydFRpbWU7IH0KKyAgICB2b2lkIHNldFN0YXJ0VGltZShkb3VibGUp
OworCisgICAgZG91YmxlIGVuZFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2VuZFRpbWU7IH0KKyAg
ICB2b2lkIHNldEVuZFRpbWUoZG91YmxlKTsKKworICAgIGJvb2wgcGF1c2VPbkV4aXQoKSBjb25z
dCB7IHJldHVybiBtX3BhdXNlT25FeGl0OyB9CisgICAgdm9pZCBzZXRQYXVzZU9uRXhpdChib29s
IGIpOworCiAgICAgU3RyaW5nIGRpcmVjdGlvbigpIGNvbnN0OworICAgIHZvaWQgc2V0RGlyZWN0
aW9uKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIGJvb2wgc25hcFRvTGlu
ZXMoKSBjb25zdCB7IHJldHVybiBtX3NuYXBUb0xpbmVzOyB9CisgICAgdm9pZCBzZXRTbmFwVG9M
aW5lcyhib29sIGIpOworCiAgICAgaW50IGxpbmVQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
bGluZVBvc2l0aW9uOyB9CisgICAgdm9pZCBzZXRMaW5lUG9zaXRpb24oaW50LCBFeGNlcHRpb25D
b2RlJik7CisKICAgICBpbnQgdGV4dFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0UG9z
aXRpb247IH0KKyAgICB2b2lkIHNldFRleHRQb3NpdGlvbihpbnQsIEV4Y2VwdGlvbkNvZGUmKTsK
KwogICAgIGludCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9jdWVTaXplOyB9CisgICAgdm9pZCBz
ZXRTaXplKGludCwgRXhjZXB0aW9uQ29kZSYpOworCiAgICAgU3RyaW5nIGFsaWdubWVudCgpIGNv
bnN0OworICAgIHZvaWQgc2V0QWxpZ25tZW50KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUm
KTsKIAogICAgIFN0cmluZyBnZXRDdWVBc1NvdXJjZSgpOworCiAgICAgUGFzc1JlZlB0cjxEb2N1
bWVudEZyYWdtZW50PiBnZXRDdWVBc0hUTUwoKTsKICAgICB2b2lkIHNldEN1ZUhUTUwoUGFzc1Jl
ZlB0cjxEb2N1bWVudEZyYWdtZW50Pik7CiAKQEAgLTk2LDYgKzExNSw4IEBAIHByaXZhdGU6CiAg
ICAgVGV4dFRyYWNrQ3VlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGlk
LCBkb3VibGUgc3RhcnQsIGRvdWJsZSBlbmQsIGNvbnN0IFN0cmluZyYgY29udGVudCwgY29uc3Qg
U3RyaW5nJiBzZXR0aW5ncywgYm9vbCBwYXVzZU9uRXhpdCk7CiAKICAgICB2b2lkIHBhcnNlU2V0
dGluZ3MoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBjdWVXaWxsQ2hhbmdlKCk7CisgICAgdm9p
ZCBjdWVEaWRDaGFuZ2UoKTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQo
KSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSB7IGRlcmVm
KCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrQ3VlLmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFja0N1ZS5pZGwJKHJldmlzaW9uIDEw
NDE2MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrQ3VlLmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMzYsMTggKzM2LDIzIEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgQ3VzdG9tSXNS
ZWFjaGFibGUKICAgICBdIFRleHRUcmFja0N1ZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBUZXh0VHJhY2sgdHJhY2s7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
aWQ7CiAKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBzdGFydFRpbWU7Ci0gICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgZW5kVGltZTsKLSAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGJvb2xlYW4gcGF1c2VPbkV4aXQ7CisgICAgICAgIGF0dHJpYnV0ZSBET01TdHJp
bmcgaWQ7CisgICAgICAgIGF0dHJpYnV0ZSBkb3VibGUgc3RhcnRUaW1lOworICAgICAgICBhdHRy
aWJ1dGUgZG91YmxlIGVuZFRpbWU7CisgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIHBhdXNlT25F
eGl0OwogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZGlyZWN0aW9uOwot
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBzbmFwVG9MaW5lczsKLSAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgbGluZVBvc2l0aW9uOwotICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgbG9uZyB0ZXh0UG9zaXRpb247Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBs
b25nIHNpemU7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYWxpZ25tZW50
OworICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRpcmVjdGlvbgorICAgICAgICAgICAgc2V0
dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gc25h
cFRvTGluZXM7CisgICAgICAgIGF0dHJpYnV0ZSBsb25nIGxpbmVQb3NpdGlvbgorICAgICAgICAg
ICAgc2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgYXR0cmlidXRlIGxvbmcg
dGV4dFBvc2l0aW9uCisgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIChET01FeGNlcHRpb24pOwor
ICAgICAgICBhdHRyaWJ1dGUgbG9uZyBzaXplCisgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIChE
T01FeGNlcHRpb24pOworICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFsaWdubWVudAorICAg
ICAgICAgICAgc2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICBET01TdHJp
bmcgZ2V0Q3VlQXNTb3VyY2UoKTsKICAgICAgICAgRG9jdW1lbnRGcmFnbWVudCBnZXRDdWVBc0hU
TUwoKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDE4OCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTA1ICBFcmljIENhcmxz
b24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgVGV4dFRyYWNrQ3Vl
IG1vcmUgbXV0YWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzI1NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1tdXRhYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogbWVkaWEvdHJhY2svdHJhY2stY3VlLW11dGFibGUuaHRtbDogQWRkZWQuCisK
IDIwMTItMDEtMDUgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHNraXAgZmlsZS1yZWFkZXItZXZlbnQtbGlzdGVuZXIuaHRtbCBvbiBxdCBhbmQg
ZWZsLgpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLW11dGFibGUtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1
ZS1tdXRhYmxlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL21lZGlh
L3RyYWNrL3RyYWNrLWN1ZS1tdXRhYmxlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw3MCBAQAorVGVzdHMgbW9kaWZ5aW5nIGF0dHJpYnV0ZXMgb2YgYSBUZXh0VHJhY2tDdWUK
KworKiogVGVzdCBpbml0aWFsIHZhbHVlcy4KK1JVTih0ZXh0Q3VlID0gY3Vlcy5nZXRDdWVCeUlk
KCcxJykpCitFWFBFQ1RFRCAodGV4dEN1ZS5zdGFydFRpbWUgPT0gJzAnKSBPSworRVhQRUNURUQg
KHRleHRDdWUuZW5kVGltZSA9PSAnMScpIE9LCitFWFBFQ1RFRCAodGV4dEN1ZS5wYXVzZU9uRXhp
dCA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHRleHRDdWUuZGlyZWN0aW9uID09ICdob3Jpem9u
dGFsJykgT0sKK0VYUEVDVEVEICh0ZXh0Q3VlLnNuYXBUb0xpbmVzID09ICd0cnVlJykgT0sKK0VY
UEVDVEVEICh0ZXh0Q3VlLmxpbmVQb3NpdGlvbiA9PSAnLTEnKSBPSworRVhQRUNURUQgKHRleHRD
dWUudGV4dFBvc2l0aW9uID09ICc1MCcpIE9LCitFWFBFQ1RFRCAodGV4dEN1ZS5zaXplID09ICcx
MDAnKSBPSworRVhQRUNURUQgKHRleHRDdWUuYWxpZ25tZW50ID09ICdtaWRkbGUnKSBPSworCisq
KiBNb2RpZnkgY3VlIHZhbHVlcy4KK1JVTih0ZXh0Q3VlLnN0YXJ0VGltZSA9IDEuMSkKK0VYUEVD
VEVEICh0ZXh0Q3VlLnN0YXJ0VGltZSA9PSAnMS4xJykgT0sKKworUlVOKHRleHRDdWUuZW5kVGlt
ZSA9IDMuOSkKK0VYUEVDVEVEICh0ZXh0Q3VlLmVuZFRpbWUgPT0gJzMuOScpIE9LCisKK1JVTih0
ZXh0Q3VlLnBhdXNlT25FeGl0ID0gdHJ1ZSkKK0VYUEVDVEVEICh0ZXh0Q3VlLnBhdXNlT25FeGl0
ID09ICd0cnVlJykgT0sKKworT24gc2V0dGluZywgdGhlIHRleHQgdHJhY2sgY3VlIHdyaXRpbmcg
ZGlyZWN0aW9uIG11c3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSAuLi4gaXMgYSBjYXNlLXNlbnNpdGl2
ZSBtYXRjaCBmb3IgdGhlIG5ldyB2YWx1ZSwgaWYgYW55LiBJZiBub25lIG9mIHRoZSB2YWx1ZXMg
bWF0Y2gsIHRoZW4gdGhlIHVzZXIgYWdlbnQgbXVzdCBpbnN0ZWFkIHRocm93IGEgU3ludGF4RXJy
b3IgZXhjZXB0aW9uLgoraHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJl
bnQtd29yay9tdWx0aXBhZ2UvdGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNkb20tdGV4dHRyYWNrY3Vl
LWRpcmVjdGlvbgorVEVTVCh0ZXh0Q3VlLmRpcmVjdGlvbiA9ICdWRVJUSUNBTCcpIFRIUk9XUyhE
T01FeGNlcHRpb24uU1lOVEFYX0VSUikgT0sKK0VYUEVDVEVEICh0ZXh0Q3VlLmRpcmVjdGlvbiA9
PSAnaG9yaXpvbnRhbCcpIE9LCitSVU4odGV4dEN1ZS5kaXJlY3Rpb24gPSAndmVydGljYWwnKQor
RVhQRUNURUQgKHRleHRDdWUuZGlyZWN0aW9uID09ICd2ZXJ0aWNhbCcpIE9LCisKK1JVTih0ZXh0
Q3VlLnNuYXBUb0xpbmVzID0gZmFsc2UpCitFWFBFQ1RFRCAodGV4dEN1ZS5zbmFwVG9MaW5lcyA9
PSAnZmFsc2UnKSBPSworCitPbiBzZXR0aW5nLCBpZiB0aGUgdGV4dCB0cmFjayBjdWUgc25hcC10
by1saW5lcyBmbGFnIGlzIG5vdCBzZXQsIGFuZCB0aGUgbmV3IHZhbHVlIGlzIG5lZ2F0aXZlIG9y
IGdyZWF0ZXIgdGhhbiAxMDAsIHRoZW4gdGhyb3cgYW4gSW5kZXhTaXplRXJyb3IgZXhjZXB0aW9u
LgoraHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0
aXBhZ2UvdGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNkb20tdGV4dHRyYWNrY3VlLWxpbmVwb3NpdGlv
bgorVEVTVCh0ZXh0Q3VlLmxpbmVQb3NpdGlvbiA9IC0yKSBUSFJPV1MoRE9NRXhjZXB0aW9uLklO
REVYX1NJWkVfRVJSKSBPSworVEVTVCh0ZXh0Q3VlLmxpbmVQb3NpdGlvbiA9IDEwMikgVEhST1dT
KERPTUV4Y2VwdGlvbi5JTkRFWF9TSVpFX0VSUikgT0sKK0VYUEVDVEVEICh0ZXh0Q3VlLmxpbmVQ
b3NpdGlvbiA9PSAnLTEnKSBPSworUlVOKHRleHRDdWUubGluZVBvc2l0aW9uID0gNDIpCitFWFBF
Q1RFRCAodGV4dEN1ZS5saW5lUG9zaXRpb24gPT0gJzQyJykgT0sKK1JVTih0ZXh0Q3VlLnNuYXBU
b0xpbmVzID0gdHJ1ZSkKK1JVTih0ZXh0Q3VlLmxpbmVQb3NpdGlvbiA9IC0yKQorRVhQRUNURUQg
KHRleHRDdWUubGluZVBvc2l0aW9uID09ICctMicpIE9LCitSVU4odGV4dEN1ZS5saW5lUG9zaXRp
b24gPSAxMDIpCitFWFBFQ1RFRCAodGV4dEN1ZS5saW5lUG9zaXRpb24gPT0gJzEwMicpIE9LCisK
K09uIHNldHRpbmcsIGlmIHRoZSBuZXcgdmFsdWUgaXMgbmVnYXRpdmUgb3IgZ3JlYXRlciB0aGFu
IDEwMCwgdGhlbiB0aHJvdyBhbiBJbmRleFNpemVFcnJvciBleGNlcHRpb24uIE90aGVyd2lzZSwg
c2V0IHRoZSB0ZXh0IHRyYWNrIGN1ZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBuZXcgdmFsdWUuCito
dHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFn
ZS90aGUtdmlkZW8tZWxlbWVudC5odG1sI2RvbS10ZXh0dHJhY2tjdWUtbGluZXBvc2l0aW9uCitU
RVNUKHRleHRDdWUudGV4dFBvc2l0aW9uID0gLTIwMCkgVEhST1dTKERPTUV4Y2VwdGlvbi5JTkRF
WF9TSVpFX0VSUikgT0sKK1RFU1QodGV4dEN1ZS50ZXh0UG9zaXRpb24gPSAxMTApIFRIUk9XUyhE
T01FeGNlcHRpb24uSU5ERVhfU0laRV9FUlIpIE9LCitSVU4odGV4dEN1ZS50ZXh0UG9zaXRpb24g
PSAxMSkKK0VYUEVDVEVEICh0ZXh0Q3VlLnRleHRQb3NpdGlvbiA9PSAnMTEnKSBPSworCitPbiBz
ZXR0aW5nLCBpZiB0aGUgbmV3IHZhbHVlIGlzIG5lZ2F0aXZlIG9yIGdyZWF0ZXIgdGhhbiAxMDAs
IHRoZW4gdGhyb3cgYW4gSW5kZXhTaXplRXJyb3IgZXhjZXB0aW9uLiBPdGhlcndpc2UsIHNldCB0
aGUgdGV4dCB0cmFjayBjdWUgc2l6ZSB0byB0aGUgbmV3IHZhbHVlLgoraHR0cDovL3d3dy53aGF0
d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGhlLXZpZGVvLWVs
ZW1lbnQuaHRtbCNkb20tdGV4dHRyYWNrY3VlLXNpemUKK1RFU1QodGV4dEN1ZS5zaXplID0gLTIw
MCkgVEhST1dTKERPTUV4Y2VwdGlvbi5JTkRFWF9TSVpFX0VSUikgT0sKK1RFU1QodGV4dEN1ZS5z
aXplID0gMTEwKSBUSFJPV1MoRE9NRXhjZXB0aW9uLklOREVYX1NJWkVfRVJSKSBPSworUlVOKHRl
eHRDdWUuc2l6ZSA9IDU3KQorRVhQRUNURUQgKHRleHRDdWUuc2l6ZSA9PSAnNTcnKSBPSworCitP
biBzZXR0aW5nLCB0aGUgdGV4dCB0cmFjayBjdWUgYWxpZ25tZW50IG11c3QgYmUgc2V0IHRvIHRo
ZSB2YWx1ZSAuLi4gaXMgYSBjYXNlLXNlbnNpdGl2ZSBtYXRjaCBmb3IgdGhlIG5ldyB2YWx1ZSwg
aWYgYW55LiBJZiBub25lIG9mIHRoZSB2YWx1ZXMgbWF0Y2gsIHRoZW4gdGhlIHVzZXIgYWdlbnQg
bXVzdCBpbnN0ZWFkIHRocm93IGEgU3ludGF4RXJyb3IgZXhjZXB0aW9uLgoraHR0cDovL3d3dy53
aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGhlLXZpZGVv
LWVsZW1lbnQuaHRtbCNkb20tdGV4dHRyYWNrY3VlLWFsaWdubWVudAorVEVTVCh0ZXh0Q3VlLmFs
aWdubWVudCA9ICdFbmQnKSBUSFJPV1MoRE9NRXhjZXB0aW9uLlNZTlRBWF9FUlIpIE9LCitFWFBF
Q1RFRCAodGV4dEN1ZS5hbGlnbm1lbnQgPT0gJ21pZGRsZScpIE9LCitSVU4odGV4dEN1ZS5hbGln
bm1lbnQgPSAnZW5kJykKK0VYUEVDVEVEICh0ZXh0Q3VlLmFsaWdubWVudCA9PSAnZW5kJykgT0sK
KworRU5EIE9GIFRFU1QKKwpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3Vl
LW11dGFibGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFj
ay1jdWUtbXV0YWJsZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svdHJhY2stY3VlLW11dGFibGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDYgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGh0dHAt
ZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAv
PgorCisgICAgICAgIDxzY3JpcHQgc3JjPS4uL21lZGlhLWZpbGUuanM+PC9zY3JpcHQ+CisgICAg
ICAgIDxzY3JpcHQgc3JjPS4uL3ZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3Jp
cHQ+ICAgICAgICAgICAKKworICAgICAgICAgICAgdmFyIGN1ZXM7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIGZ1bmN0aW9uIGxvZ1NwZWNVUkwodXJsLCBkZXNjcmlwdGlvbikKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj48aT4iICsgZGVzY3JpcHRp
b24gKyAiPC9pPiIpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGEgaHJlZj0iICsg
dXJsICsgIj4iICsgdXJsICsgIjwiICsgIi9hPiIpOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBmdW5jdGlvbiB0cmFja0xvYWRlZCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgdHJhY2sgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdGlvbnMnKTsKKyAgICAgICAg
ICAgICAgICBjdWVzID0gdHJhY2sudHJhY2suY3VlczsKKworICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgiKiogVGVzdCBpbml0aWFsIHZhbHVlcy4iKTsKKyAgICAgICAgICAgICAgICBydW4o
InRleHRDdWUgPSBjdWVzLmdldEN1ZUJ5SWQoJzEnKSIpOworCisgICAgICAgICAgICAgICAgdGVz
dEV4cGVjdGVkKCJ0ZXh0Q3VlLnN0YXJ0VGltZSIsIDApOworICAgICAgICAgICAgICAgIHRlc3RF
eHBlY3RlZCgidGV4dEN1ZS5lbmRUaW1lIiwgMS4wKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoInRleHRDdWUucGF1c2VPbkV4aXQiLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgdGVz
dEV4cGVjdGVkKCJ0ZXh0Q3VlLmRpcmVjdGlvbiIsICJob3Jpem9udGFsIik7CisgICAgICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCJ0ZXh0Q3VlLnNuYXBUb0xpbmVzIiwgdHJ1ZSk7CisgICAgICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCJ0ZXh0Q3VlLmxpbmVQb3NpdGlvbiIsIC0xKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInRleHRDdWUudGV4dFBvc2l0aW9uIiwgNTApOworICAg
ICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidGV4dEN1ZS5zaXplIiwgMTAwKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoInRleHRDdWUuYWxpZ25tZW50IiwgIm1pZGRsZSIpOworCisg
ICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogTW9kaWZ5IGN1ZSB2YWx1ZXMuIik7
CisKKyAgICAgICAgICAgICAgICBydW4oInRleHRDdWUuc3RhcnRUaW1lID0gMS4xIik7CisgICAg
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ0ZXh0Q3VlLnN0YXJ0VGltZSIsIDEuMSk7CisKKyAg
ICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgIHJ1bigidGV4
dEN1ZS5lbmRUaW1lID0gMy45Iik7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ0ZXh0
Q3VlLmVuZFRpbWUiLCAzLjkpOworCisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsK
KyAgICAgICAgICAgICAgICBydW4oInRleHRDdWUucGF1c2VPbkV4aXQgPSB0cnVlIik7CisgICAg
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ0ZXh0Q3VlLnBhdXNlT25FeGl0IiwgdHJ1ZSk7CisK
KyAgICAgICAgICAgICAgICBsb2dTcGVjVVJMKCJodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mv
d2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS90aGUtdmlkZW8tZWxlbWVudC5odG1sI2Rv
bS10ZXh0dHJhY2tjdWUtZGlyZWN0aW9uIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAi
T24gc2V0dGluZywgdGhlIHRleHQgdHJhY2sgY3VlIHdyaXRpbmcgZGlyZWN0aW9uIG11c3QgYmUg
c2V0IHRvIHRoZSB2YWx1ZSAuLi4gaXMgYSBjYXNlLXNlbnNpdGl2ZSBtYXRjaCBmb3IgdGhlIG5l
dyB2YWx1ZSwgaWYgYW55LiBJZiBub25lIG9mIHRoZSB2YWx1ZXMgbWF0Y2gsIHRoZW4gdGhlIHVz
ZXIgYWdlbnQgbXVzdCBpbnN0ZWFkIHRocm93IGEgU3ludGF4RXJyb3IgZXhjZXB0aW9uLiIpOwor
ICAgICAgICAgICAgICAgIHRlc3RFeGNlcHRpb24oInRleHRDdWUuZGlyZWN0aW9uID0gJ1ZFUlRJ
Q0FMJyIsICJET01FeGNlcHRpb24uU1lOVEFYX0VSUiIpOworICAgICAgICAgICAgICAgIHRlc3RF
eHBlY3RlZCgidGV4dEN1ZS5kaXJlY3Rpb24iLCAiaG9yaXpvbnRhbCIpOworICAgICAgICAgICAg
ICAgIHJ1bigidGV4dEN1ZS5kaXJlY3Rpb24gPSAndmVydGljYWwnIik7CisgICAgICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkKCJ0ZXh0Q3VlLmRpcmVjdGlvbiIsICJ2ZXJ0aWNhbCIpOworCisgICAg
ICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICBydW4oInRleHRD
dWUuc25hcFRvTGluZXMgPSBmYWxzZSIpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgi
dGV4dEN1ZS5zbmFwVG9MaW5lcyIsIGZhbHNlKTsKKworICAgICAgICAgICAgICAgIGxvZ1NwZWNV
UkwoImh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVs
dGlwYWdlL3RoZS12aWRlby1lbGVtZW50Lmh0bWwjZG9tLXRleHR0cmFja2N1ZS1saW5lcG9zaXRp
b24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPbiBzZXR0aW5nLCBpZiB0aGUgdGV4
dCB0cmFjayBjdWUgc25hcC10by1saW5lcyBmbGFnIGlzIG5vdCBzZXQsIGFuZCB0aGUgbmV3IHZh
bHVlIGlzIG5lZ2F0aXZlIG9yIGdyZWF0ZXIgdGhhbiAxMDAsIHRoZW4gdGhyb3cgYW4gSW5kZXhT
aXplRXJyb3IgZXhjZXB0aW9uLiIpOworICAgICAgICAgICAgICAgIHRlc3RFeGNlcHRpb24oInRl
eHRDdWUubGluZVBvc2l0aW9uID0gLTIiLCAiRE9NRXhjZXB0aW9uLklOREVYX1NJWkVfRVJSIik7
CisgICAgICAgICAgICAgICAgdGVzdEV4Y2VwdGlvbigidGV4dEN1ZS5saW5lUG9zaXRpb24gPSAx
MDIiLCAiRE9NRXhjZXB0aW9uLklOREVYX1NJWkVfRVJSIik7CisgICAgICAgICAgICAgICAgdGVz
dEV4cGVjdGVkKCJ0ZXh0Q3VlLmxpbmVQb3NpdGlvbiIsIC0xKTsKKyAgICAgICAgICAgICAgICBy
dW4oInRleHRDdWUubGluZVBvc2l0aW9uID0gNDIiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoInRleHRDdWUubGluZVBvc2l0aW9uIiwgNDIpOworICAgICAgICAgICAgICAgIHJ1bigi
dGV4dEN1ZS5zbmFwVG9MaW5lcyA9IHRydWUiKTsKKyAgICAgICAgICAgICAgICBydW4oInRleHRD
dWUubGluZVBvc2l0aW9uID0gLTIiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInRl
eHRDdWUubGluZVBvc2l0aW9uIiwgLTIpOworICAgICAgICAgICAgICAgIHJ1bigidGV4dEN1ZS5s
aW5lUG9zaXRpb24gPSAxMDIiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInRleHRD
dWUubGluZVBvc2l0aW9uIiwgMTAyKTsKKworICAgICAgICAgICAgICAgIGxvZ1NwZWNVUkwoImh0
dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdl
L3RoZS12aWRlby1lbGVtZW50Lmh0bWwjZG9tLXRleHR0cmFja2N1ZS1saW5lcG9zaXRpb24iLCAK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICJPbiBzZXR0aW5nLCBpZiB0aGUgbmV3IHZhbHVl
IGlzIG5lZ2F0aXZlIG9yIGdyZWF0ZXIgdGhhbiAxMDAsIHRoZW4gdGhyb3cgYW4gSW5kZXhTaXpl
RXJyb3IgZXhjZXB0aW9uLiBPdGhlcndpc2UsIHNldCB0aGUgdGV4dCB0cmFjayBjdWUgdGV4dCBw
b3NpdGlvbiB0byB0aGUgbmV3IHZhbHVlLiIpOworICAgICAgICAgICAgICAgIHRlc3RFeGNlcHRp
b24oInRleHRDdWUudGV4dFBvc2l0aW9uID0gLTIwMCIsICJET01FeGNlcHRpb24uSU5ERVhfU0la
RV9FUlIiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhjZXB0aW9uKCJ0ZXh0Q3VlLnRleHRQb3Np
dGlvbiA9IDExMCIsICJET01FeGNlcHRpb24uSU5ERVhfU0laRV9FUlIiKTsKKyAgICAgICAgICAg
ICAgICBydW4oInRleHRDdWUudGV4dFBvc2l0aW9uID0gMTEiKTsKKyAgICAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoInRleHRDdWUudGV4dFBvc2l0aW9uIiwgMTEpOworCisgICAgICAgICAgICAg
ICAgbG9nU3BlY1VSTCgiaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJl
bnQtd29yay9tdWx0aXBhZ2UvdGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNkb20tdGV4dHRyYWNrY3Vl
LXNpemUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9uIHNldHRpbmcsIGlmIHRoZSBu
ZXcgdmFsdWUgaXMgbmVnYXRpdmUgb3IgZ3JlYXRlciB0aGFuIDEwMCwgdGhlbiB0aHJvdyBhbiBJ
bmRleFNpemVFcnJvciBleGNlcHRpb24uIE90aGVyd2lzZSwgc2V0IHRoZSB0ZXh0IHRyYWNrIGN1
ZSBzaXplIHRvIHRoZSBuZXcgdmFsdWUuIik7CisgICAgICAgICAgICAgICAgdGVzdEV4Y2VwdGlv
bigidGV4dEN1ZS5zaXplID0gLTIwMCIsICJET01FeGNlcHRpb24uSU5ERVhfU0laRV9FUlIiKTsK
KyAgICAgICAgICAgICAgICB0ZXN0RXhjZXB0aW9uKCJ0ZXh0Q3VlLnNpemUgPSAxMTAiLCAiRE9N
RXhjZXB0aW9uLklOREVYX1NJWkVfRVJSIik7CisgICAgICAgICAgICAgICAgcnVuKCJ0ZXh0Q3Vl
LnNpemUgPSA1NyIpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidGV4dEN1ZS5zaXpl
IiwgNTcpOworCisgICAgICAgICAgICAgICAgbG9nU3BlY1VSTCgiaHR0cDovL3d3dy53aGF0d2cu
b3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGhlLXZpZGVvLWVsZW1l
bnQuaHRtbCNkb20tdGV4dHRyYWNrY3VlLWFsaWdubWVudCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiT24gc2V0dGluZywgdGhlIHRleHQgdHJhY2sgY3VlIGFsaWdubWVudCBtdXN0IGJl
IHNldCB0byB0aGUgdmFsdWUgLi4uIGlzIGEgY2FzZS1zZW5zaXRpdmUgbWF0Y2ggZm9yIHRoZSBu
ZXcgdmFsdWUsIGlmIGFueS4gSWYgbm9uZSBvZiB0aGUgdmFsdWVzIG1hdGNoLCB0aGVuIHRoZSB1
c2VyIGFnZW50IG11c3QgaW5zdGVhZCB0aHJvdyBhIFN5bnRheEVycm9yIGV4Y2VwdGlvbi4iKTsK
KyAgICAgICAgICAgICAgICB0ZXN0RXhjZXB0aW9uKCJ0ZXh0Q3VlLmFsaWdubWVudCA9ICdFbmQn
IiwgIkRPTUV4Y2VwdGlvbi5TWU5UQVhfRVJSIik7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVj
dGVkKCJ0ZXh0Q3VlLmFsaWdubWVudCIsICJtaWRkbGUiKTsKKyAgICAgICAgICAgICAgICBydW4o
InRleHRDdWUuYWxpZ25tZW50ID0gJ2VuZCciKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoInRleHRDdWUuYWxpZ25tZW50IiwgImVuZCIpOworCisgICAgICAgICAgICAgICAgY29uc29s
ZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD5U
ZXN0cyBtb2RpZnlpbmcgYXR0cmlidXRlcyBvZiBhIFRleHRUcmFja0N1ZTwvcD4KKyAgICAgICAg
PHZpZGVvIGNvbnRyb2xzPgorICAgICAgICAgICAgPHRyYWNrIGlkPSJjYXB0aW9ucyIgc3JjPSJj
YXB0aW9ucy13ZWJ2dHQvY2FwdGlvbnMudnR0IiBraW5kPSJjYXB0aW9ucyIgb25sb2FkPSJ0cmFj
a0xvYWRlZCgpIiBkZWZhdWx0PgorICAgICAgICA8L3ZpZGVvPgorICAgIDwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121320</attachid>
            <date>2012-01-05 13:21:47 -0800</date>
            <delta_ts>2012-01-05 13:23:09 -0800</delta_ts>
            <desc>Pedantic update.</desc>
            <filename>patch_mutable_cue_4.txt</filename>
            <type>text/plain</type>
            <size>31215</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDE4OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYxIEBACisyMDEyLTAxLTA1ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgVGV4dFRyYWNr
Q3VlIG1vcmUgbXV0YWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzI1NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBtZWRpYS90cmFjay90cmFjay1jdWUtbXV0YWJsZS5odG1sCisKKyAgICAg
ICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6dXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3Vlcyk6IERvIG5vdGhpbmcgaWYgdGhl
ICJpZ25vcmUgY3VlIHVwZGF0ZXMiCisgICAgICAgICAgICBmbGFnIGlzIHNldAorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrQWRkQ3Vlcyk6IEJsb2NrIGN1ZSB1
cGRhdGVzIHVudGlsIGFsbCBvZiB0aGUgbmV3IGN1ZXMgaGF2ZQorICAgICAgICAgICAgYmVlbiBh
ZGRlZCwgdGhlbiBjYWxsIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMgc28gdXBkYXRlIHRoZSBk
aXNwbGF5IGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OnRleHRUcmFja1JlbW92ZUN1ZXMpOiBCbG9jayBjdWUgdXBkYXRlcyB1bnRpbCBhbGwgb2YgdGhl
IG5ldyBjdWVzIGhhdmUKKyAgICAgICAgICAgIGJlZW4gcmVtb3ZlZCwgdGhlbiBjYWxsIHVwZGF0
ZUFjdGl2ZVRleHRUcmFja0N1ZXMgc28gdXBkYXRlIHRoZSBkaXNwbGF5IGlmIG5lY2Vzc2FyeS4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZSk6IENh
bGwgdXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3VlcyBzbyB1cGRhdGUgdGhlIGRpc3BsYXkgaWYgbmVj
ZXNzYXJ5LgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVt
b3ZlQ3VlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjppZ25vcmVUcmFja0Rpc3BsYXlVcGRhdGVS
ZXF1ZXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpiZWdpbklnbm9y
aW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6ZW5kSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cyk6CisKKyAg
ICAgICAgKiBodG1sL1RleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6
OmN1ZVdpbGxDaGFuZ2UpOiBOZXcsIHJlbW92ZSB0aGUgY3VlIGZyb20gdGhlIG1lZGlhIGVsZW1l
bnQgYmVjYXVzZSBpdHMKKyAgICAgICAgICAgIHBvc2l0aW9uIGluIHRoZSBpbnRlcnZhbCB0cmVl
IGlzIGJhc2VkIG9uIHN0YXJ0IGFuZCBlbmQgdGltZXMuCisgICAgICAgIChXZWJDb3JlOjpUZXh0
VHJhY2s6OmN1ZURpZENoYW5nZSk6IEFkZCB0aGUgY3VlIHRvIHRoZSBtZWRpYSBlbGVtZW50Lgor
ICAgICAgICAqIGh0bWwvVGV4dFRyYWNrLmg6CisKKyAgICAgICAgKiBodG1sL1RleHRUcmFja0N1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdGFydEtleXdvcmQpOiBOZXcsIHVzZSBhIHN0YXRp
YyBTdHJpbmcgZm9yIHRoZSBjb25zdGFudC4KKyAgICAgICAgKFdlYkNvcmU6Om1pZGRsZUtleXdv
cmQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmVuZEtleXdvcmQpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6Omhvcml6b250YWxLZXl3b3JkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
Ojp2ZXJ0aWNhbEtleXdvcmQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OnZlcnRpY2FsbHJL
ZXl3b3JkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmN1ZVdpbGxD
aGFuZ2UpOiBOZXcsIHRlbGwgdGhlIHRyYWNrIHRoZSBjdWUgaXMgYWJvdXQgdG8gY2hhbmdlLgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpjdWVEaWRDaGFuZ2UpOiBOZXcsIHRlbGwg
dGhlIHRyYWNrIHRoZSBjdWUgaGFzIGNoYW5nZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJh
Y2tDdWU6OnNldElkKTogTmV3LCBhdHRyaWJ1dGUgaXMgbXV0YWJsZS4KKyAgICAgICAgKFdlYkNv
cmU6OlRleHRUcmFja0N1ZTo6c2V0U3RhcnRUaW1lKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tDdWU6OnNldEVuZFRpbWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRUcmFja0N1ZTo6c2V0UGF1c2VPbkV4aXQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRUcmFja0N1ZTo6ZGlyZWN0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJh
Y2tDdWU6OnNldERpcmVjdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNr
Q3VlOjpzZXRTbmFwVG9MaW5lcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNr
Q3VlOjpzZXRMaW5lUG9zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFj
a0N1ZTo6c2V0VGV4dFBvc2l0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJh
Y2tDdWU6OnNldFNpemUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6
YWxpZ25tZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OnNldEFs
aWdubWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpwYXJzZVNl
dHRpbmdzKTogVXNlIHRoZSBzdGF0aWMgc3RyaW5ncy4KKyAgICAgICAgKiBodG1sL1RleHRUcmFj
a0N1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjppZCk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2tDdWU6OnN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
VHJhY2tDdWU6OmVuZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpwYXVz
ZU9uRXhpdCk6CisgICAgICAgICogaHRtbC9UZXh0VHJhY2tDdWUuaWRsOgorCiAyMDEyLTAxLTA1
ICBLZW4gQnVjaGFuYW4gPGtlbnJiQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDcmFzaCBkdWUg
dG8gcmVwYXJlbnRpbmcgb2YgcmVscG9zaXRpb25lZCBvYmplY3QgdW5kZXIgYW5vbnltb3VzIGJs
b2NrCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJldmlz
aW9uIDEwNDE2MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTk0NSw2ICs5NDUsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OmxvYWRSZXNvdXJjZShjb25zCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojp1cGRhdGVBY3RpdmVUZXh0VHJhY2tDdWVzKGZsb2F0IG1vdmllVGltZSkKIHsK
KyAgICBpZiAoaWdub3JlVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIAogICAgIEN1ZUxpc3QgcHJldmlvdXNseUFjdGl2ZUN1ZXMgPSBtX2N1cnJlbnRs
eUFjdGl2ZUN1ZXM7CiAgICAgYm9vbCBhY3RpdmVTZXRDaGFuZ2VkID0gZmFsc2U7CiAKQEAgLTEw
MjcsMjQgKzEwMzAsMzIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tLaW5kQ2hh
bgogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrKiwg
Y29uc3QgVGV4dFRyYWNrQ3VlTGlzdCogY3VlcykgCiB7CisgICAgYmVnaW5JZ25vcmluZ1RyYWNr
RGlzcGxheVVwZGF0ZVJlcXVlc3RzKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjdWVz
LT5sZW5ndGgoKTsgKytpKQogICAgICAgICB0ZXh0VHJhY2tBZGRDdWUoY3Vlcy0+aXRlbShpKS0+
dHJhY2soKSwgY3Vlcy0+aXRlbShpKSk7CisgICAgZW5kSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRh
dGVSZXF1ZXN0cygpOworICAgIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMoY3VycmVudFRpbWUo
KSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0
VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KiBjdWVzKSAKIHsKKyAgICBiZWdpbklnbm9y
aW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGN1ZXMtPmxlbmd0aCgpOyArK2kpCiAgICAgICAgIHRleHRUcmFja1JlbW92ZUN1ZShjdWVz
LT5pdGVtKGkpLT50cmFjaygpLCBjdWVzLT5pdGVtKGkpKTsKKyAgICBlbmRJZ25vcmluZ1RyYWNr
RGlzcGxheVVwZGF0ZVJlcXVlc3RzKCk7CisgICAgdXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3Vlcyhj
dXJyZW50VGltZSgpKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRD
dWUoVGV4dFRyYWNrKiwgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+IGN1ZSkKIHsKICAgICBtX2N1
ZVRyZWUuYWRkKG1fY3VlVHJlZS5jcmVhdGVJbnRlcnZhbChjdWUtPnN0YXJ0VGltZSgpLCBjdWUt
PmVuZFRpbWUoKSwgY3VlLmdldCgpKSk7CisgICAgdXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3Vlcyhj
dXJyZW50VGltZSgpKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tSZW1v
dmVDdWUoVGV4dFRyYWNrKiwgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+IGN1ZSkKIHsKICAgICBt
X2N1ZVRyZWUucmVtb3ZlKG1fY3VlVHJlZS5jcmVhdGVJbnRlcnZhbChjdWUtPnN0YXJ0VGltZSgp
LCBjdWUtPmVuZFRpbWUoKSwgY3VlLmdldCgpKSk7CisgICAgdXBkYXRlQWN0aXZlVGV4dFRyYWNr
Q3VlcyhjdXJyZW50VGltZSgpKTsKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaAkocmV2aXNpb24gMTA0MTYxKQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwMCw2ICs0MDAsMTAg
QEAgcHJpdmF0ZToKICAgICBib29sIHVzZXJJc0ludGVyZXN0ZWRJblRoaXNMYW5ndWFnZShjb25z
dCBTdHJpbmcmKSBjb25zdDsKICAgICBib29sIHVzZXJJc0ludGVyZXN0ZWRJblRoaXNUcmFjayhI
VE1MVHJhY2tFbGVtZW50KikgY29uc3Q7CiAgICAgSFRNTFRyYWNrRWxlbWVudCogc2hvd2luZ1Ry
YWNrV2l0aFNhbWVLaW5kKEhUTUxUcmFja0VsZW1lbnQqKSBjb25zdDsKKworICAgIGJvb2wgaWdu
b3JlVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKSBjb25zdCB7IHJldHVybiBtX2lnbm9yZVRy
YWNrRGlzcGxheVVwZGF0ZSA+IDA7IH0KKyAgICB2b2lkIGJlZ2luSWdub3JpbmdUcmFja0Rpc3Bs
YXlVcGRhdGVSZXF1ZXN0cygpIHsgKyttX2lnbm9yZVRyYWNrRGlzcGxheVVwZGF0ZTsgfQorICAg
IHZvaWQgZW5kSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpIHsgQVNTRVJUKG1f
aWdub3JlVHJhY2tEaXNwbGF5VXBkYXRlKTsgLS1tX2lnbm9yZVRyYWNrRGlzcGxheVVwZGF0ZTsg
fQogI2VuZGlmCiAKICAgICAvLyBUaGVzZSAiaW50ZXJuYWwiIGZ1bmN0aW9ucyBkbyBub3QgY2hl
Y2sgdXNlciBnZXN0dXJlIHJlc3RyaWN0aW9ucy4KQEAgLTU2MCw2ICs1NjQsNyBAQCBwcml2YXRl
OgogICAgIFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNrPiA+IG1fdGV4dFRyYWNrc1doZW5SZXNvdXJj
ZVNlbGVjdGlvbkJlZ2FuOwogICAgIEN1ZUludGVydmFsVHJlZSBtX2N1ZVRyZWU7CiAgICAgQ3Vl
TGlzdCBtX2N1cnJlbnRseUFjdGl2ZUN1ZXM7CisgICAgaW50IG1faWdub3JlVHJhY2tEaXNwbGF5
VXBkYXRlOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9UZXh0VHJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvVGV4dFRyYWNrLmNwcAkocmV2aXNpb24gMTA0MTYxKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9UZXh0VHJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTEsNiArMjUxLDI1IEBAIHZvaWQg
VGV4dFRyYWNrOjpmaXJlQ3VlQ2hhbmdlRXZlbnQoKQogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwogICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY3VlY2hhbmdl
RXZlbnQsIGZhbHNlLCBmYWxzZSksIGVjKTsKIH0KKyAgICAKK3ZvaWQgVGV4dFRyYWNrOjpjdWVX
aWxsQ2hhbmdlKFRleHRUcmFja0N1ZSogY3VlKQoreworICAgIGlmICghbV9jbGllbnQpCisgICAg
ICAgIHJldHVybjsKKworICAgIC8vIFRoZSBjdWUgbWF5IG5lZWQgdG8gYmUgcmVwb3NpdGlvbmVk
IGluIHRoZSBtZWRpYSBlbGVtZW50J3MgaW50ZXJ2YWwgdHJlZSwgbWF5IG5lZWQgdG8KKyAgICAv
LyBiZSByZS1yZW5kZXJlZCwgZXRjLCBzbyByZW1vdmUgaXQgYmVmb3JlIHRoZSBtb2RpZmljYXRp
b24uLi4KKyAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlKHRoaXMsIGN1ZSk7Cit9CisK
K3ZvaWQgVGV4dFRyYWNrOjpjdWVEaWRDaGFuZ2UoVGV4dFRyYWNrQ3VlKiBjdWUpCit7CisgICAg
aWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gLi4uIGFuZCBhZGQgaXQg
YmFjayBhZ2Fpbi4KKyAgICBtX2NsaWVudC0+dGV4dFRyYWNrQWRkQ3VlKHRoaXMsIGN1ZSk7Cit9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9U
ZXh0VHJhY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5o
CShyZXZpc2lvbiAxMDQxNjEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5oCSh3
b3JraW5nIGNvcHkpCkBAIC05OCw2ICs5OCw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRkQ3Vl
KFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgcmVt
b3ZlQ3VlKFRleHRUcmFja0N1ZSosIEV4Y2VwdGlvbkNvZGUmKTsKKworICAgIHZvaWQgY3VlV2ls
bENoYW5nZShUZXh0VHJhY2tDdWUqKTsKKyAgICB2b2lkIGN1ZURpZENoYW5nZShUZXh0VHJhY2tD
dWUqKTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgZmlyZUN1ZUNoYW5nZUV2ZW50KCk7CiAgICAg
REVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihjdWVjaGFuZ2UpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9UZXh0VHJhY2tDdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvVGV4dFRyYWNrQ3VlLmNwcAkocmV2aXNpb24gMTA0MTYxKQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9UZXh0VHJhY2tDdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw0
MSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcm
IHN0YXJ0S2V5d29yZCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIHN0YXJ0LCAoInN0YXJ0IikpOworICAgIHJldHVybiBzdGFydDsKK30KKworc3RhdGlj
IGNvbnN0IEF0b21pY1N0cmluZyYgbWlkZGxlS2V5d29yZCgpCit7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG1pZGRsZSwgKCJtaWRkbGUiKSk7CisgICAgcmV0
dXJuIG1pZGRsZTsKK30KKworc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgZW5kS2V5d29yZCgp
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGVuZCwgKCJl
bmQiKSk7CisgICAgcmV0dXJuIGVuZDsKK30KKworc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYg
aG9yaXpvbnRhbEtleXdvcmQoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCBob3Jpem9udGFsLCAoImhvcml6b250YWwiKSk7CisgICAgcmV0dXJuIGhvcml6
b250YWw7Cit9CisKK3N0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHZlcnRpY2FsS2V5d29yZCgp
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHZlcnRpY2Fs
LCAoInZlcnRpY2FsIikpOworICAgIHJldHVybiB2ZXJ0aWNhbDsKK30KK3N0YXRpYyBjb25zdCBB
dG9taWNTdHJpbmcmIHZlcnRpY2FsbHJLZXl3b3JkKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgdmVydGljYWxsciwgKCJ2ZXJ0aWNhbC1sciIpKTsKKyAg
ICByZXR1cm4gdmVydGljYWxscjsKK30KKyAgICAKIFRleHRUcmFja0N1ZTo6VGV4dFRyYWNrQ3Vl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgaWQsIGRvdWJs
ZSBzdGFydCwgZG91YmxlIGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50LCBjb25zdCBTdHJpbmcm
IHNldHRpbmdzLCBib29sIHBhdXNlT25FeGl0KQogICAgIDogbV9pZChpZCkKICAgICAsIG1fc3Rh
cnRUaW1lKHN0YXJ0KQpAQCAtNjQsNiArOTksMTggQEAgVGV4dFRyYWNrQ3VlOjp+VGV4dFRyYWNr
Q3VlKCkKIHsKIH0KIAordm9pZCBUZXh0VHJhY2tDdWU6OmN1ZVdpbGxDaGFuZ2UoKQoreworICAg
IGlmIChtX3RyYWNrKQorICAgICAgICBtX3RyYWNrLT5jdWVXaWxsQ2hhbmdlKHRoaXMpOworfQor
Cit2b2lkIFRleHRUcmFja0N1ZTo6Y3VlRGlkQ2hhbmdlKCkKK3sKKyAgICBpZiAobV90cmFjaykK
KyAgICAgICAgbV90cmFjay0+Y3VlRGlkQ2hhbmdlKHRoaXMpOworfQorCiBUZXh0VHJhY2sqIFRl
eHRUcmFja0N1ZTo6dHJhY2soKSBjb25zdAogewogICAgIHJldHVybiBtX3RyYWNrLmdldCgpOwpA
QCAtNzQsNTQgKzEyMSwxOTMgQEAgdm9pZCBUZXh0VHJhY2tDdWU6OnNldFRyYWNrKFBhc3NSZWZQ
dHI8VAogICAgIG1fdHJhY2sgPSB0cmFjazsKIH0KIAotU3RyaW5nIFRleHRUcmFja0N1ZTo6aWQo
KSBjb25zdAordm9pZCBUZXh0VHJhY2tDdWU6OnNldElkKFN0cmluZyBpZCkKIHsKLSAgICByZXR1
cm4gbV9pZDsKKyAgICBpZiAobV9pZCA9PSBpZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY3Vl
V2lsbENoYW5nZSgpOworICAgIG1faWQgPSBpZDsKKyAgICBjdWVEaWRDaGFuZ2UoKTsKIH0KIAot
ZG91YmxlIFRleHRUcmFja0N1ZTo6c3RhcnRUaW1lKCkgY29uc3QKK3ZvaWQgVGV4dFRyYWNrQ3Vl
OjpzZXRTdGFydFRpbWUoZG91YmxlIHZhbHVlKQogewotICAgIHJldHVybiBtX3N0YXJ0VGltZTsK
KyAgICBpZiAobV9zdGFydFRpbWUgPT0gdmFsdWUpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAg
ICBjdWVXaWxsQ2hhbmdlKCk7CisgICAgbV9zdGFydFRpbWUgPSB2YWx1ZTsKKyAgICBjdWVEaWRD
aGFuZ2UoKTsKIH0KLQotZG91YmxlIFRleHRUcmFja0N1ZTo6ZW5kVGltZSgpIGNvbnN0CisgICAg
Cit2b2lkIFRleHRUcmFja0N1ZTo6c2V0RW5kVGltZShkb3VibGUgdmFsdWUpCiB7Ci0gICAgcmV0
dXJuIG1fZW5kVGltZTsKKyAgICBpZiAobV9lbmRUaW1lID09IHZhbHVlKQorICAgICAgICByZXR1
cm47CisgICAgCisgICAgY3VlV2lsbENoYW5nZSgpOworICAgIG1fZW5kVGltZSA9IHZhbHVlOwor
ICAgIGN1ZURpZENoYW5nZSgpOwogfQotCi1ib29sIFRleHRUcmFja0N1ZTo6cGF1c2VPbkV4aXQo
KSBjb25zdAorICAgIAordm9pZCBUZXh0VHJhY2tDdWU6OnNldFBhdXNlT25FeGl0KGJvb2wgdmFs
dWUpCiB7Ci0gICAgcmV0dXJuIG1fcGF1c2VPbkV4aXQ7CisgICAgaWYgKG1fcGF1c2VPbkV4aXQg
PT0gdmFsdWUpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBjdWVXaWxsQ2hhbmdlKCk7Cisg
ICAgbV9wYXVzZU9uRXhpdCA9IHZhbHVlOworICAgIGN1ZURpZENoYW5nZSgpOwogfQogCiBTdHJp
bmcgVGV4dFRyYWNrQ3VlOjpkaXJlY3Rpb24oKSBjb25zdAogewogICAgIHN3aXRjaCAobV93cml0
aW5nRGlyZWN0aW9uKSB7CiAgICAgY2FzZSBIb3Jpem9udGFsOiAKLSAgICAgICAgcmV0dXJuICJo
b3Jpem9udGFsIjsKKyAgICAgICAgcmV0dXJuIGhvcml6b250YWxLZXl3b3JkKCk7CiAgICAgY2Fz
ZSBWZXJ0aWNhbEdyb3dpbmdMZWZ0OgotICAgICAgICByZXR1cm4gInZlcnRpY2FsIjsKKyAgICAg
ICAgcmV0dXJuIHZlcnRpY2FsS2V5d29yZCgpOwogICAgIGNhc2UgVmVydGljYWxHcm93aW5nUmln
aHQ6Ci0gICAgICAgIHJldHVybiAidmVydGljYWwtbHIiOworICAgICAgICByZXR1cm4gdmVydGlj
YWxscktleXdvcmQoKTsKICAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuICIiOwogICAgIH0KIH0KIAordm9pZCBUZXh0VHJhY2tDdWU6OnNl
dERpcmVjdGlvbihjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211
bHRpcGFnZS90aGUtdmlkZW8tZWxlbWVudC5odG1sI2RvbS10ZXh0dHJhY2tjdWUtZGlyZWN0aW9u
CisgICAgLy8gT24gc2V0dGluZywgdGhlIHRleHQgdHJhY2sgY3VlIHdyaXRpbmcgZGlyZWN0aW9u
IG11c3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSBnaXZlbiAKKyAgICAvLyBpbiB0aGUgZmlyc3QgY2Vs
bCBvZiB0aGUgcm93IGluIHRoZSB0YWJsZSBhYm92ZSB3aG9zZSBzZWNvbmQgY2VsbCBpcyBhIAor
ICAgIC8vIGNhc2Utc2Vuc2l0aXZlIG1hdGNoIGZvciB0aGUgbmV3IHZhbHVlLCBpZiBhbnkuIElm
IG5vbmUgb2YgdGhlIHZhbHVlcyBtYXRjaCwgdGhlbgorICAgIC8vIHRoZSB1c2VyIGFnZW50IG11
c3QgaW5zdGVhZCB0aHJvdyBhIFN5bnRheEVycm9yIGV4Y2VwdGlvbi4KKyAgICAKKyAgICBEaXJl
Y3Rpb24gZGlyZWN0aW9uID0gbV93cml0aW5nRGlyZWN0aW9uOworICAgIGlmICh2YWx1ZSA9PSBo
b3Jpem9udGFsS2V5d29yZCgpKQorICAgICAgICBkaXJlY3Rpb24gPSBIb3Jpem9udGFsOworICAg
IGVsc2UgaWYgKHZhbHVlID09IHZlcnRpY2FsS2V5d29yZCgpKQorICAgICAgICBkaXJlY3Rpb24g
PSBWZXJ0aWNhbEdyb3dpbmdMZWZ0OworICAgIGVsc2UgaWYgKHZhbHVlID09IHZlcnRpY2FsbHJL
ZXl3b3JkKCkpCisgICAgICAgIGRpcmVjdGlvbiA9IFZlcnRpY2FsR3Jvd2luZ1JpZ2h0OworICAg
IGVsc2UKKyAgICAgICAgZWMgPSBTWU5UQVhfRVJSOworICAgIAorICAgIGlmIChkaXJlY3Rpb24g
IT0gbV93cml0aW5nRGlyZWN0aW9uKSB7CisgICAgICAgIGN1ZVdpbGxDaGFuZ2UoKTsKKyAgICAg
ICAgbV93cml0aW5nRGlyZWN0aW9uID0gZGlyZWN0aW9uOworICAgICAgICBjdWVEaWRDaGFuZ2Uo
KTsKKyAgICB9Cit9CisKK3ZvaWQgVGV4dFRyYWNrQ3VlOjpzZXRTbmFwVG9MaW5lcyhib29sIHZh
bHVlKQoreworICAgIGlmIChtX3NuYXBUb0xpbmVzID09IHZhbHVlKQorICAgICAgICByZXR1cm47
CisgICAgCisgICAgY3VlV2lsbENoYW5nZSgpOworICAgIG1fc25hcFRvTGluZXMgPSB2YWx1ZTsK
KyAgICBjdWVEaWRDaGFuZ2UoKTsKK30KKwordm9pZCBUZXh0VHJhY2tDdWU6OnNldExpbmVQb3Np
dGlvbihpbnQgcG9zaXRpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIC8vIGh0dHA6Ly93
d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3RoZS12
aWRlby1lbGVtZW50Lmh0bWwjZG9tLXRleHR0cmFja2N1ZS1saW5lcG9zaXRpb24KKyAgICAvLyBP
biBzZXR0aW5nLCBpZiB0aGUgdGV4dCB0cmFjayBjdWUgc25hcC10by1saW5lcyBmbGFnIGlzIG5v
dCBzZXQsIGFuZCB0aGUgbmV3CisgICAgLy8gdmFsdWUgaXMgbmVnYXRpdmUgb3IgZ3JlYXRlciB0
aGFuIDEwMCwgdGhlbiB0aHJvdyBhbiBJbmRleFNpemVFcnJvciBleGNlcHRpb24uCisgICAgaWYg
KCFtX3NuYXBUb0xpbmVzICYmIChwb3NpdGlvbiA8IDAgfHwgcG9zaXRpb24gPiAxMDApKSB7Cisg
ICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
CisgICAgLy8gT3RoZXJ3aXNlLCBzZXQgdGhlIHRleHQgdHJhY2sgY3VlIGxpbmUgcG9zaXRpb24g
dG8gdGhlIG5ldyB2YWx1ZS4KKyAgICBpZiAobV9saW5lUG9zaXRpb24gPT0gcG9zaXRpb24pCisg
ICAgICAgIHJldHVybjsKKyAgICAKKyAgICBjdWVXaWxsQ2hhbmdlKCk7CisgICAgbV9saW5lUG9z
aXRpb24gPSBwb3NpdGlvbjsgCisgICAgY3VlRGlkQ2hhbmdlKCk7Cit9CisKK3ZvaWQgVGV4dFRy
YWNrQ3VlOjpzZXRUZXh0UG9zaXRpb24oaW50IHBvc2l0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13
b3JrL211bHRpcGFnZS90aGUtdmlkZW8tZWxlbWVudC5odG1sI2RvbS10ZXh0dHJhY2tjdWUtbGlu
ZXBvc2l0aW9uCisgICAgLy8gT24gc2V0dGluZywgaWYgdGhlIG5ldyB2YWx1ZSBpcyBuZWdhdGl2
ZSBvciBncmVhdGVyIHRoYW4gMTAwLCB0aGVuIHRocm93IGFuIEluZGV4U2l6ZUVycm9yIGV4Y2Vw
dGlvbi4KKyAgICAvLyBPdGhlcndpc2UsIHNldCB0aGUgdGV4dCB0cmFjayBjdWUgdGV4dCBwb3Np
dGlvbiB0byB0aGUgbmV3IHZhbHVlLgorICAgIGlmIChwb3NpdGlvbiA8IDAgfHwgcG9zaXRpb24g
PiAxMDApIHsKKyAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICAKKyAgICAvLyBPdGhlcndpc2UsIHNldCB0aGUgdGV4dCB0cmFjayBjdWUgbGlu
ZSBwb3NpdGlvbiB0byB0aGUgbmV3IHZhbHVlLgorICAgIGlmIChtX3RleHRQb3NpdGlvbiA9PSBw
b3NpdGlvbikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGN1ZVdpbGxDaGFuZ2UoKTsKKyAg
ICBtX3RleHRQb3NpdGlvbiA9IHBvc2l0aW9uOyAKKyAgICBjdWVEaWRDaGFuZ2UoKTsKK30KKwor
dm9pZCBUZXh0VHJhY2tDdWU6OnNldFNpemUoaW50IHNpemUsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdv
cmsvbXVsdGlwYWdlL3RoZS12aWRlby1lbGVtZW50Lmh0bWwjZG9tLXRleHR0cmFja2N1ZS1zaXpl
CisgICAgLy8gT24gc2V0dGluZywgaWYgdGhlIG5ldyB2YWx1ZSBpcyBuZWdhdGl2ZSBvciBncmVh
dGVyIHRoYW4gMTAwLCB0aGVuIHRocm93IGFuIEluZGV4U2l6ZUVycm9yCisgICAgLy8gZXhjZXB0
aW9uLiBPdGhlcndpc2UsIHNldCB0aGUgdGV4dCB0cmFjayBjdWUgc2l6ZSB0byB0aGUgbmV3IHZh
bHVlLgorICAgIGlmIChzaXplIDwgMCB8fCBzaXplID4gMTAwKSB7CisgICAgICAgIGVjID0gSU5E
RVhfU0laRV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgLy8gT3RoZXJ3
aXNlLCBzZXQgdGhlIHRleHQgdHJhY2sgY3VlIGxpbmUgcG9zaXRpb24gdG8gdGhlIG5ldyB2YWx1
ZS4KKyAgICBpZiAobV9jdWVTaXplID09IHNpemUpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAg
ICBjdWVXaWxsQ2hhbmdlKCk7CisgICAgbV9jdWVTaXplID0gc2l6ZTsKKyAgICBjdWVEaWRDaGFu
Z2UoKTsKK30KKwogU3RyaW5nIFRleHRUcmFja0N1ZTo6YWxpZ25tZW50KCkgY29uc3QKIHsKICAg
ICBzd2l0Y2ggKG1fY3VlQWxpZ25tZW50KSB7Ci0gICAgY2FzZSBTdGFydDogCi0gICAgICAgIHJl
dHVybiAic3RhcnQiOworICAgIGNhc2UgU3RhcnQ6CisgICAgICAgIHJldHVybiBzdGFydEtleXdv
cmQoKTsKICAgICBjYXNlIE1pZGRsZToKLSAgICAgICAgcmV0dXJuICJtaWRkbGUiOworICAgICAg
ICByZXR1cm4gbWlkZGxlS2V5d29yZCgpOwogICAgIGNhc2UgRW5kOgotICAgICAgICByZXR1cm4g
ImVuZCI7CisgICAgICAgIHJldHVybiBlbmRLZXl3b3JkKCk7CiAgICAgZGVmYXVsdDoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAiIjsKICAgICB9CiB9CiAK
K3ZvaWQgVGV4dFRyYWNrQ3VlOjpzZXRBbGlnbm1lbnQoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCit7CisgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dl
Yi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNkb20t
dGV4dHRyYWNrY3VlLWFsaWdubWVudAorICAgIC8vIE9uIHNldHRpbmcsIHRoZSB0ZXh0IHRyYWNr
IGN1ZSBhbGlnbm1lbnQgbXVzdCBiZSBzZXQgdG8gdGhlIHZhbHVlIGdpdmVuIGluIHRoZSAKKyAg
ICAvLyBmaXJzdCBjZWxsIG9mIHRoZSByb3cgaW4gdGhlIHRhYmxlIGFib3ZlIHdob3NlIHNlY29u
ZCBjZWxsIGlzIGEgY2FzZS1zZW5zaXRpdmUKKyAgICAvLyBtYXRjaCBmb3IgdGhlIG5ldyB2YWx1
ZSwgaWYgYW55LiBJZiBub25lIG9mIHRoZSB2YWx1ZXMgbWF0Y2gsIHRoZW4gdGhlIHVzZXIKKyAg
ICAvLyBhZ2VudCBtdXN0IGluc3RlYWQgdGhyb3cgYSBTeW50YXhFcnJvciBleGNlcHRpb24uCisg
ICAgCisgICAgQWxpZ25tZW50IGFsaWdubWVudCA9IG1fY3VlQWxpZ25tZW50OworICAgIGlmICh2
YWx1ZSA9PSBzdGFydEtleXdvcmQoKSkKKyAgICAgICAgYWxpZ25tZW50ID0gU3RhcnQ7CisgICAg
ZWxzZSBpZiAodmFsdWUgPT0gbWlkZGxlS2V5d29yZCgpKQorICAgICAgICBhbGlnbm1lbnQgPSBN
aWRkbGU7CisgICAgZWxzZSBpZiAodmFsdWUgPT0gZW5kS2V5d29yZCgpKQorICAgICAgICBhbGln
bm1lbnQgPSBFbmQ7CisgICAgZWxzZQorICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CisgICAgCisg
ICAgaWYgKGFsaWdubWVudCAhPSBtX2N1ZUFsaWdubWVudCkgeworICAgICAgICBjdWVXaWxsQ2hh
bmdlKCk7CisgICAgICAgIG1fY3VlQWxpZ25tZW50ID0gYWxpZ25tZW50OworICAgICAgICBjdWVE
aWRDaGFuZ2UoKTsKKyAgICB9Cit9CisgICAgCiBTdHJpbmcgVGV4dFRyYWNrQ3VlOjpnZXRDdWVB
c1NvdXJjZSgpCiB7CiAgICAgcmV0dXJuIG1fY29udGVudDsKQEAgLTE4Nyw5ICszNzMsOSBAQCB2
b2lkIFRleHRUcmFja0N1ZTo6cGFyc2VTZXR0aW5ncyhjb25zdCBTCiAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAvLyAxLTMgLSBDb2xsZWN0IHRoZSBuZXh0IHdvcmQgYW5kIHNldCB0aGUgd3Jp
dGluZyBkaXJlY3Rpb24gYWNjb3JkaW5nbHkuCiAgICAgICAgICAgICBTdHJpbmcgd3JpdGluZ0Rp
cmVjdGlvbiA9IFdlYlZUVFBhcnNlcjo6Y29sbGVjdFdvcmQoaW5wdXQsICZwb3NpdGlvbik7Ci0g
ICAgICAgICAgICBpZiAod3JpdGluZ0RpcmVjdGlvbiA9PSAidmVydGljYWwiKQorICAgICAgICAg
ICAgaWYgKHdyaXRpbmdEaXJlY3Rpb24gPT0gdmVydGljYWxLZXl3b3JkKCkpCiAgICAgICAgICAg
ICAgICAgbV93cml0aW5nRGlyZWN0aW9uID0gVmVydGljYWxHcm93aW5nTGVmdDsKLSAgICAgICAg
ICAgIGVsc2UgaWYgKHdyaXRpbmdEaXJlY3Rpb24gPT0gInZlcnRpY2FsLWxyIikKKyAgICAgICAg
ICAgIGVsc2UgaWYgKHdyaXRpbmdEaXJlY3Rpb24gPT0gdmVydGljYWxscktleXdvcmQoKSkKICAg
ICAgICAgICAgICAgICBtX3dyaXRpbmdEaXJlY3Rpb24gPSBWZXJ0aWNhbEdyb3dpbmdSaWdodDsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjk3LDExICs0ODMsMTEgQEAg
dm9pZCBUZXh0VHJhY2tDdWU6OnBhcnNlU2V0dGluZ3MoY29uc3QgUwogICAgICAgICAgICAgewog
ICAgICAgICAgICAgLy8gMS00IC0gQ29sbGVjdCB0aGUgbmV4dCB3b3JkIGFuZCBzZXQgdGhlIGN1
ZSBhbGlnbm1lbnQgYWNjb3JkaW5nbHkuCiAgICAgICAgICAgICBTdHJpbmcgY3VlQWxpZ25tZW50
ID0gV2ViVlRUUGFyc2VyOjpjb2xsZWN0V29yZChpbnB1dCwgJnBvc2l0aW9uKTsKLSAgICAgICAg
ICAgIGlmIChjdWVBbGlnbm1lbnQgPT0gInN0YXJ0IikKKyAgICAgICAgICAgIGlmIChjdWVBbGln
bm1lbnQgPT0gc3RhcnRLZXl3b3JkKCkpCiAgICAgICAgICAgICAgICAgbV9jdWVBbGlnbm1lbnQg
PSBTdGFydDsKLSAgICAgICAgICAgIGVsc2UgaWYgKGN1ZUFsaWdubWVudCA9PSAibWlkZGxlIikK
KyAgICAgICAgICAgIGVsc2UgaWYgKGN1ZUFsaWdubWVudCA9PSBtaWRkbGVLZXl3b3JkKCkpCiAg
ICAgICAgICAgICAgICAgbV9jdWVBbGlnbm1lbnQgPSBNaWRkbGU7Ci0gICAgICAgICAgICBlbHNl
IGlmIChjdWVBbGlnbm1lbnQgPT0gImVuZCIpCisgICAgICAgICAgICBlbHNlIGlmIChjdWVBbGln
bm1lbnQgPT0gZW5kS2V5d29yZCgpKQogICAgICAgICAgICAgICAgIG1fY3VlQWxpZ25tZW50ID0g
RW5kOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL1RleHRUcmFja0N1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvVGV4dFRyYWNrQ3VlLmgJKHJldmlzaW9uIDEwNDE2MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvVGV4dFRyYWNrQ3VlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDE5ICs1OSwzOCBAQCBwdWJs
aWM6CiAgICAgVGV4dFRyYWNrKiB0cmFjaygpIGNvbnN0OwogICAgIHZvaWQgc2V0VHJhY2soUGFz
c1JlZlB0cjxUZXh0VHJhY2s+KTsKIAotICAgIFN0cmluZyBpZCgpIGNvbnN0OwotICAgIGRvdWJs
ZSBzdGFydFRpbWUoKSBjb25zdDsKLSAgICBkb3VibGUgZW5kVGltZSgpIGNvbnN0OwotICAgIGJv
b2wgcGF1c2VPbkV4aXQoKSBjb25zdDsKLSAgICAKKyAgICBTdHJpbmcgaWQoKSBjb25zdCB7IHJl
dHVybiBtX2lkOyB9CisgICAgdm9pZCBzZXRJZChTdHJpbmcpOworCisgICAgZG91YmxlIHN0YXJ0
VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRUaW1lOyB9CisgICAgdm9pZCBzZXRTdGFydFRp
bWUoZG91YmxlKTsKKworICAgIGRvdWJsZSBlbmRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9lbmRU
aW1lOyB9CisgICAgdm9pZCBzZXRFbmRUaW1lKGRvdWJsZSk7CisKKyAgICBib29sIHBhdXNlT25F
eGl0KCkgY29uc3QgeyByZXR1cm4gbV9wYXVzZU9uRXhpdDsgfQorICAgIHZvaWQgc2V0UGF1c2VP
bkV4aXQoYm9vbCk7CisKICAgICBTdHJpbmcgZGlyZWN0aW9uKCkgY29uc3Q7CisgICAgdm9pZCBz
ZXREaXJlY3Rpb24oY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworCiAgICAgYm9vbCBz
bmFwVG9MaW5lcygpIGNvbnN0IHsgcmV0dXJuIG1fc25hcFRvTGluZXM7IH0KKyAgICB2b2lkIHNl
dFNuYXBUb0xpbmVzKGJvb2wpOworCiAgICAgaW50IGxpbmVQb3NpdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fbGluZVBvc2l0aW9uOyB9CisgICAgdm9pZCBzZXRMaW5lUG9zaXRpb24oaW50LCBFeGNl
cHRpb25Db2RlJik7CisKICAgICBpbnQgdGV4dFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90
ZXh0UG9zaXRpb247IH0KKyAgICB2b2lkIHNldFRleHRQb3NpdGlvbihpbnQsIEV4Y2VwdGlvbkNv
ZGUmKTsKKwogICAgIGludCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9jdWVTaXplOyB9CisgICAg
dm9pZCBzZXRTaXplKGludCwgRXhjZXB0aW9uQ29kZSYpOworCiAgICAgU3RyaW5nIGFsaWdubWVu
dCgpIGNvbnN0OworICAgIHZvaWQgc2V0QWxpZ25tZW50KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlv
bkNvZGUmKTsKIAogICAgIFN0cmluZyBnZXRDdWVBc1NvdXJjZSgpOworCiAgICAgUGFzc1JlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBnZXRDdWVBc0hUTUwoKTsKICAgICB2b2lkIHNldEN1ZUhUTUwo
UGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50Pik7CiAKQEAgLTk2LDYgKzExNSw4IEBAIHByaXZh
dGU6CiAgICAgVGV4dFRyYWNrQ3VlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJp
bmcmIGlkLCBkb3VibGUgc3RhcnQsIGRvdWJsZSBlbmQsIGNvbnN0IFN0cmluZyYgY29udGVudCwg
Y29uc3QgU3RyaW5nJiBzZXR0aW5ncywgYm9vbCBwYXVzZU9uRXhpdCk7CiAKICAgICB2b2lkIHBh
cnNlU2V0dGluZ3MoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBjdWVXaWxsQ2hhbmdlKCk7Cisg
ICAgdm9pZCBjdWVEaWRDaGFuZ2UoKTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRU
YXJnZXQoKSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSB7
IGRlcmVmKCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrQ3VlLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFja0N1ZS5pZGwJKHJldmlz
aW9uIDEwNDE2MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrQ3VlLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMzYsMTggKzM2LDIzIEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgQ3Vz
dG9tSXNSZWFjaGFibGUKICAgICBdIFRleHRUcmFja0N1ZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBUZXh0VHJhY2sgdHJhY2s7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgaWQ7CiAKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBzdGFydFRpbWU7
Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgZW5kVGltZTsKLSAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gcGF1c2VPbkV4aXQ7CisgICAgICAgIGF0dHJpYnV0ZSBE
T01TdHJpbmcgaWQ7CisgICAgICAgIGF0dHJpYnV0ZSBkb3VibGUgc3RhcnRUaW1lOworICAgICAg
ICBhdHRyaWJ1dGUgZG91YmxlIGVuZFRpbWU7CisgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIHBh
dXNlT25FeGl0OwogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZGlyZWN0
aW9uOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBzbmFwVG9MaW5lczsKLSAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgbGluZVBvc2l0aW9uOwotICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgbG9uZyB0ZXh0UG9zaXRpb247Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBsb25nIHNpemU7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYWxp
Z25tZW50OworICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRpcmVjdGlvbgorICAgICAgICAg
ICAgc2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgYXR0cmlidXRlIGJvb2xl
YW4gc25hcFRvTGluZXM7CisgICAgICAgIGF0dHJpYnV0ZSBsb25nIGxpbmVQb3NpdGlvbgorICAg
ICAgICAgICAgc2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgYXR0cmlidXRl
IGxvbmcgdGV4dFBvc2l0aW9uCisgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIChET01FeGNlcHRp
b24pOworICAgICAgICBhdHRyaWJ1dGUgbG9uZyBzaXplCisgICAgICAgICAgICBzZXR0ZXIgcmFp
c2VzIChET01FeGNlcHRpb24pOworICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFsaWdubWVu
dAorICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICBE
T01TdHJpbmcgZ2V0Q3VlQXNTb3VyY2UoKTsKICAgICAgICAgRG9jdW1lbnRGcmFnbWVudCBnZXRD
dWVBc0hUTUwoKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDE4OCkKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTA1ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgVGV4dFRy
YWNrQ3VlIG1vcmUgbXV0YWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzI1NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1tdXRhYmxlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogbWVkaWEvdHJhY2svdHJhY2stY3VlLW11dGFibGUuaHRtbDogQWRk
ZWQuCisKIDIwMTItMDEtMDUgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHNraXAgZmlsZS1yZWFkZXItZXZlbnQtbGlzdGVuZXIuaHRtbCBvbiBx
dCBhbmQgZWZsLgpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLW11dGFi
bGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL3RyYWNrL3Ry
YWNrLWN1ZS1tdXRhYmxlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1tdXRhYmxlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw3MCBAQAorVGVzdHMgbW9kaWZ5aW5nIGF0dHJpYnV0ZXMgb2YgYSBUZXh0VHJh
Y2tDdWUKKworKiogVGVzdCBpbml0aWFsIHZhbHVlcy4KK1JVTih0ZXh0Q3VlID0gY3Vlcy5nZXRD
dWVCeUlkKCcxJykpCitFWFBFQ1RFRCAodGV4dEN1ZS5zdGFydFRpbWUgPT0gJzAnKSBPSworRVhQ
RUNURUQgKHRleHRDdWUuZW5kVGltZSA9PSAnMScpIE9LCitFWFBFQ1RFRCAodGV4dEN1ZS5wYXVz
ZU9uRXhpdCA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHRleHRDdWUuZGlyZWN0aW9uID09ICdo
b3Jpem9udGFsJykgT0sKK0VYUEVDVEVEICh0ZXh0Q3VlLnNuYXBUb0xpbmVzID09ICd0cnVlJykg
T0sKK0VYUEVDVEVEICh0ZXh0Q3VlLmxpbmVQb3NpdGlvbiA9PSAnLTEnKSBPSworRVhQRUNURUQg
KHRleHRDdWUudGV4dFBvc2l0aW9uID09ICc1MCcpIE9LCitFWFBFQ1RFRCAodGV4dEN1ZS5zaXpl
ID09ICcxMDAnKSBPSworRVhQRUNURUQgKHRleHRDdWUuYWxpZ25tZW50ID09ICdtaWRkbGUnKSBP
SworCisqKiBNb2RpZnkgY3VlIHZhbHVlcy4KK1JVTih0ZXh0Q3VlLnN0YXJ0VGltZSA9IDEuMSkK
K0VYUEVDVEVEICh0ZXh0Q3VlLnN0YXJ0VGltZSA9PSAnMS4xJykgT0sKKworUlVOKHRleHRDdWUu
ZW5kVGltZSA9IDMuOSkKK0VYUEVDVEVEICh0ZXh0Q3VlLmVuZFRpbWUgPT0gJzMuOScpIE9LCisK
K1JVTih0ZXh0Q3VlLnBhdXNlT25FeGl0ID0gdHJ1ZSkKK0VYUEVDVEVEICh0ZXh0Q3VlLnBhdXNl
T25FeGl0ID09ICd0cnVlJykgT0sKKworT24gc2V0dGluZywgdGhlIHRleHQgdHJhY2sgY3VlIHdy
aXRpbmcgZGlyZWN0aW9uIG11c3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSAuLi4gaXMgYSBjYXNlLXNl
bnNpdGl2ZSBtYXRjaCBmb3IgdGhlIG5ldyB2YWx1ZSwgaWYgYW55LiBJZiBub25lIG9mIHRoZSB2
YWx1ZXMgbWF0Y2gsIHRoZW4gdGhlIHVzZXIgYWdlbnQgbXVzdCBpbnN0ZWFkIHRocm93IGEgU3lu
dGF4RXJyb3IgZXhjZXB0aW9uLgoraHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBz
L2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNkb20tdGV4dHRy
YWNrY3VlLWRpcmVjdGlvbgorVEVTVCh0ZXh0Q3VlLmRpcmVjdGlvbiA9ICdWRVJUSUNBTCcpIFRI
Uk9XUyhET01FeGNlcHRpb24uU1lOVEFYX0VSUikgT0sKK0VYUEVDVEVEICh0ZXh0Q3VlLmRpcmVj
dGlvbiA9PSAnaG9yaXpvbnRhbCcpIE9LCitSVU4odGV4dEN1ZS5kaXJlY3Rpb24gPSAndmVydGlj
YWwnKQorRVhQRUNURUQgKHRleHRDdWUuZGlyZWN0aW9uID09ICd2ZXJ0aWNhbCcpIE9LCisKK1JV
Tih0ZXh0Q3VlLnNuYXBUb0xpbmVzID0gZmFsc2UpCitFWFBFQ1RFRCAodGV4dEN1ZS5zbmFwVG9M
aW5lcyA9PSAnZmFsc2UnKSBPSworCitPbiBzZXR0aW5nLCBpZiB0aGUgdGV4dCB0cmFjayBjdWUg
c25hcC10by1saW5lcyBmbGFnIGlzIG5vdCBzZXQsIGFuZCB0aGUgbmV3IHZhbHVlIGlzIG5lZ2F0
aXZlIG9yIGdyZWF0ZXIgdGhhbiAxMDAsIHRoZW4gdGhyb3cgYW4gSW5kZXhTaXplRXJyb3IgZXhj
ZXB0aW9uLgoraHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29y
ay9tdWx0aXBhZ2UvdGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNkb20tdGV4dHRyYWNrY3VlLWxpbmVw
b3NpdGlvbgorVEVTVCh0ZXh0Q3VlLmxpbmVQb3NpdGlvbiA9IC0yKSBUSFJPV1MoRE9NRXhjZXB0
aW9uLklOREVYX1NJWkVfRVJSKSBPSworVEVTVCh0ZXh0Q3VlLmxpbmVQb3NpdGlvbiA9IDEwMikg
VEhST1dTKERPTUV4Y2VwdGlvbi5JTkRFWF9TSVpFX0VSUikgT0sKK0VYUEVDVEVEICh0ZXh0Q3Vl
LmxpbmVQb3NpdGlvbiA9PSAnLTEnKSBPSworUlVOKHRleHRDdWUubGluZVBvc2l0aW9uID0gNDIp
CitFWFBFQ1RFRCAodGV4dEN1ZS5saW5lUG9zaXRpb24gPT0gJzQyJykgT0sKK1JVTih0ZXh0Q3Vl
LnNuYXBUb0xpbmVzID0gdHJ1ZSkKK1JVTih0ZXh0Q3VlLmxpbmVQb3NpdGlvbiA9IC0yKQorRVhQ
RUNURUQgKHRleHRDdWUubGluZVBvc2l0aW9uID09ICctMicpIE9LCitSVU4odGV4dEN1ZS5saW5l
UG9zaXRpb24gPSAxMDIpCitFWFBFQ1RFRCAodGV4dEN1ZS5saW5lUG9zaXRpb24gPT0gJzEwMicp
IE9LCisKK09uIHNldHRpbmcsIGlmIHRoZSBuZXcgdmFsdWUgaXMgbmVnYXRpdmUgb3IgZ3JlYXRl
ciB0aGFuIDEwMCwgdGhlbiB0aHJvdyBhbiBJbmRleFNpemVFcnJvciBleGNlcHRpb24uIE90aGVy
d2lzZSwgc2V0IHRoZSB0ZXh0IHRyYWNrIGN1ZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBuZXcgdmFs
dWUuCitodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211
bHRpcGFnZS90aGUtdmlkZW8tZWxlbWVudC5odG1sI2RvbS10ZXh0dHJhY2tjdWUtbGluZXBvc2l0
aW9uCitURVNUKHRleHRDdWUudGV4dFBvc2l0aW9uID0gLTIwMCkgVEhST1dTKERPTUV4Y2VwdGlv
bi5JTkRFWF9TSVpFX0VSUikgT0sKK1RFU1QodGV4dEN1ZS50ZXh0UG9zaXRpb24gPSAxMTApIFRI
Uk9XUyhET01FeGNlcHRpb24uSU5ERVhfU0laRV9FUlIpIE9LCitSVU4odGV4dEN1ZS50ZXh0UG9z
aXRpb24gPSAxMSkKK0VYUEVDVEVEICh0ZXh0Q3VlLnRleHRQb3NpdGlvbiA9PSAnMTEnKSBPSwor
CitPbiBzZXR0aW5nLCBpZiB0aGUgbmV3IHZhbHVlIGlzIG5lZ2F0aXZlIG9yIGdyZWF0ZXIgdGhh
biAxMDAsIHRoZW4gdGhyb3cgYW4gSW5kZXhTaXplRXJyb3IgZXhjZXB0aW9uLiBPdGhlcndpc2Us
IHNldCB0aGUgdGV4dCB0cmFjayBjdWUgc2l6ZSB0byB0aGUgbmV3IHZhbHVlLgoraHR0cDovL3d3
dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGhlLXZp
ZGVvLWVsZW1lbnQuaHRtbCNkb20tdGV4dHRyYWNrY3VlLXNpemUKK1RFU1QodGV4dEN1ZS5zaXpl
ID0gLTIwMCkgVEhST1dTKERPTUV4Y2VwdGlvbi5JTkRFWF9TSVpFX0VSUikgT0sKK1RFU1QodGV4
dEN1ZS5zaXplID0gMTEwKSBUSFJPV1MoRE9NRXhjZXB0aW9uLklOREVYX1NJWkVfRVJSKSBPSwor
UlVOKHRleHRDdWUuc2l6ZSA9IDU3KQorRVhQRUNURUQgKHRleHRDdWUuc2l6ZSA9PSAnNTcnKSBP
SworCitPbiBzZXR0aW5nLCB0aGUgdGV4dCB0cmFjayBjdWUgYWxpZ25tZW50IG11c3QgYmUgc2V0
IHRvIHRoZSB2YWx1ZSAuLi4gaXMgYSBjYXNlLXNlbnNpdGl2ZSBtYXRjaCBmb3IgdGhlIG5ldyB2
YWx1ZSwgaWYgYW55LiBJZiBub25lIG9mIHRoZSB2YWx1ZXMgbWF0Y2gsIHRoZW4gdGhlIHVzZXIg
YWdlbnQgbXVzdCBpbnN0ZWFkIHRocm93IGEgU3ludGF4RXJyb3IgZXhjZXB0aW9uLgoraHR0cDov
L3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGhl
LXZpZGVvLWVsZW1lbnQuaHRtbCNkb20tdGV4dHRyYWNrY3VlLWFsaWdubWVudAorVEVTVCh0ZXh0
Q3VlLmFsaWdubWVudCA9ICdFbmQnKSBUSFJPV1MoRE9NRXhjZXB0aW9uLlNZTlRBWF9FUlIpIE9L
CitFWFBFQ1RFRCAodGV4dEN1ZS5hbGlnbm1lbnQgPT0gJ21pZGRsZScpIE9LCitSVU4odGV4dEN1
ZS5hbGlnbm1lbnQgPSAnZW5kJykKK0VYUEVDVEVEICh0ZXh0Q3VlLmFsaWdubWVudCA9PSAnZW5k
JykgT0sKKworRU5EIE9GIFRFU1QKKwpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJh
Y2stY3VlLW11dGFibGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS90cmFj
ay90cmFjay1jdWUtbXV0YWJsZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvbWVk
aWEvdHJhY2svdHJhY2stY3VlLW11dGFibGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
MDYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRh
IGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0
Zi04IiAvPgorCisgICAgICAgIDxzY3JpcHQgc3JjPS4uL21lZGlhLWZpbGUuanM+PC9zY3JpcHQ+
CisgICAgICAgIDxzY3JpcHQgc3JjPS4uL3ZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisgICAgICAg
IDxzY3JpcHQ+ICAgICAgICAgICAKKworICAgICAgICAgICAgdmFyIGN1ZXM7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIGZ1bmN0aW9uIGxvZ1NwZWNVUkwodXJsLCBkZXNjcmlwdGlvbikKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj48aT4iICsgZGVz
Y3JpcHRpb24gKyAiPC9pPiIpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGEgaHJl
Zj0iICsgdXJsICsgIj4iICsgdXJsICsgIjwiICsgIi9hPiIpOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBmdW5jdGlvbiB0cmFja0xvYWRlZCgpCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgdHJhY2sgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdGlvbnMnKTsKKyAg
ICAgICAgICAgICAgICBjdWVzID0gdHJhY2sudHJhY2suY3VlczsKKworICAgICAgICAgICAgICAg
IGNvbnNvbGVXcml0ZSgiKiogVGVzdCBpbml0aWFsIHZhbHVlcy4iKTsKKyAgICAgICAgICAgICAg
ICBydW4oInRleHRDdWUgPSBjdWVzLmdldEN1ZUJ5SWQoJzEnKSIpOworCisgICAgICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkKCJ0ZXh0Q3VlLnN0YXJ0VGltZSIsIDApOworICAgICAgICAgICAgICAg
IHRlc3RFeHBlY3RlZCgidGV4dEN1ZS5lbmRUaW1lIiwgMS4wKTsKKyAgICAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoInRleHRDdWUucGF1c2VPbkV4aXQiLCBmYWxzZSk7CisgICAgICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkKCJ0ZXh0Q3VlLmRpcmVjdGlvbiIsICJob3Jpem9udGFsIik7CisgICAg
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ0ZXh0Q3VlLnNuYXBUb0xpbmVzIiwgdHJ1ZSk7Cisg
ICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ0ZXh0Q3VlLmxpbmVQb3NpdGlvbiIsIC0xKTsK
KyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInRleHRDdWUudGV4dFBvc2l0aW9uIiwgNTAp
OworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidGV4dEN1ZS5zaXplIiwgMTAwKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInRleHRDdWUuYWxpZ25tZW50IiwgIm1pZGRsZSIp
OworCisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogTW9kaWZ5IGN1ZSB2YWx1
ZXMuIik7CisKKyAgICAgICAgICAgICAgICBydW4oInRleHRDdWUuc3RhcnRUaW1lID0gMS4xIik7
CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ0ZXh0Q3VlLnN0YXJ0VGltZSIsIDEuMSk7
CisKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgIHJ1
bigidGV4dEN1ZS5lbmRUaW1lID0gMy45Iik7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCJ0ZXh0Q3VlLmVuZFRpbWUiLCAzLjkpOworCisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRl
KCIiKTsKKyAgICAgICAgICAgICAgICBydW4oInRleHRDdWUucGF1c2VPbkV4aXQgPSB0cnVlIik7
CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ0ZXh0Q3VlLnBhdXNlT25FeGl0IiwgdHJ1
ZSk7CisKKyAgICAgICAgICAgICAgICBsb2dTcGVjVVJMKCJodHRwOi8vd3d3LndoYXR3Zy5vcmcv
c3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS90aGUtdmlkZW8tZWxlbWVudC5o
dG1sI2RvbS10ZXh0dHJhY2tjdWUtZGlyZWN0aW9uIiwgCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiT24gc2V0dGluZywgdGhlIHRleHQgdHJhY2sgY3VlIHdyaXRpbmcgZGlyZWN0aW9uIG11
c3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSAuLi4gaXMgYSBjYXNlLXNlbnNpdGl2ZSBtYXRjaCBmb3Ig
dGhlIG5ldyB2YWx1ZSwgaWYgYW55LiBJZiBub25lIG9mIHRoZSB2YWx1ZXMgbWF0Y2gsIHRoZW4g
dGhlIHVzZXIgYWdlbnQgbXVzdCBpbnN0ZWFkIHRocm93IGEgU3ludGF4RXJyb3IgZXhjZXB0aW9u
LiIpOworICAgICAgICAgICAgICAgIHRlc3RFeGNlcHRpb24oInRleHRDdWUuZGlyZWN0aW9uID0g
J1ZFUlRJQ0FMJyIsICJET01FeGNlcHRpb24uU1lOVEFYX0VSUiIpOworICAgICAgICAgICAgICAg
IHRlc3RFeHBlY3RlZCgidGV4dEN1ZS5kaXJlY3Rpb24iLCAiaG9yaXpvbnRhbCIpOworICAgICAg
ICAgICAgICAgIHJ1bigidGV4dEN1ZS5kaXJlY3Rpb24gPSAndmVydGljYWwnIik7CisgICAgICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCJ0ZXh0Q3VlLmRpcmVjdGlvbiIsICJ2ZXJ0aWNhbCIpOwor
CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICBydW4o
InRleHRDdWUuc25hcFRvTGluZXMgPSBmYWxzZSIpOworICAgICAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgidGV4dEN1ZS5zbmFwVG9MaW5lcyIsIGZhbHNlKTsKKworICAgICAgICAgICAgICAgIGxv
Z1NwZWNVUkwoImh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdv
cmsvbXVsdGlwYWdlL3RoZS12aWRlby1lbGVtZW50Lmh0bWwjZG9tLXRleHR0cmFja2N1ZS1saW5l
cG9zaXRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPbiBzZXR0aW5nLCBpZiB0
aGUgdGV4dCB0cmFjayBjdWUgc25hcC10by1saW5lcyBmbGFnIGlzIG5vdCBzZXQsIGFuZCB0aGUg
bmV3IHZhbHVlIGlzIG5lZ2F0aXZlIG9yIGdyZWF0ZXIgdGhhbiAxMDAsIHRoZW4gdGhyb3cgYW4g
SW5kZXhTaXplRXJyb3IgZXhjZXB0aW9uLiIpOworICAgICAgICAgICAgICAgIHRlc3RFeGNlcHRp
b24oInRleHRDdWUubGluZVBvc2l0aW9uID0gLTIiLCAiRE9NRXhjZXB0aW9uLklOREVYX1NJWkVf
RVJSIik7CisgICAgICAgICAgICAgICAgdGVzdEV4Y2VwdGlvbigidGV4dEN1ZS5saW5lUG9zaXRp
b24gPSAxMDIiLCAiRE9NRXhjZXB0aW9uLklOREVYX1NJWkVfRVJSIik7CisgICAgICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkKCJ0ZXh0Q3VlLmxpbmVQb3NpdGlvbiIsIC0xKTsKKyAgICAgICAgICAg
ICAgICBydW4oInRleHRDdWUubGluZVBvc2l0aW9uID0gNDIiKTsKKyAgICAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoInRleHRDdWUubGluZVBvc2l0aW9uIiwgNDIpOworICAgICAgICAgICAgICAg
IHJ1bigidGV4dEN1ZS5zbmFwVG9MaW5lcyA9IHRydWUiKTsKKyAgICAgICAgICAgICAgICBydW4o
InRleHRDdWUubGluZVBvc2l0aW9uID0gLTIiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoInRleHRDdWUubGluZVBvc2l0aW9uIiwgLTIpOworICAgICAgICAgICAgICAgIHJ1bigidGV4
dEN1ZS5saW5lUG9zaXRpb24gPSAxMDIiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
InRleHRDdWUubGluZVBvc2l0aW9uIiwgMTAyKTsKKworICAgICAgICAgICAgICAgIGxvZ1NwZWNV
UkwoImh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVs
dGlwYWdlL3RoZS12aWRlby1lbGVtZW50Lmh0bWwjZG9tLXRleHR0cmFja2N1ZS1saW5lcG9zaXRp
b24iLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJPbiBzZXR0aW5nLCBpZiB0aGUgbmV3
IHZhbHVlIGlzIG5lZ2F0aXZlIG9yIGdyZWF0ZXIgdGhhbiAxMDAsIHRoZW4gdGhyb3cgYW4gSW5k
ZXhTaXplRXJyb3IgZXhjZXB0aW9uLiBPdGhlcndpc2UsIHNldCB0aGUgdGV4dCB0cmFjayBjdWUg
dGV4dCBwb3NpdGlvbiB0byB0aGUgbmV3IHZhbHVlLiIpOworICAgICAgICAgICAgICAgIHRlc3RF
eGNlcHRpb24oInRleHRDdWUudGV4dFBvc2l0aW9uID0gLTIwMCIsICJET01FeGNlcHRpb24uSU5E
RVhfU0laRV9FUlIiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhjZXB0aW9uKCJ0ZXh0Q3VlLnRl
eHRQb3NpdGlvbiA9IDExMCIsICJET01FeGNlcHRpb24uSU5ERVhfU0laRV9FUlIiKTsKKyAgICAg
ICAgICAgICAgICBydW4oInRleHRDdWUudGV4dFBvc2l0aW9uID0gMTEiKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0RXhwZWN0ZWQoInRleHRDdWUudGV4dFBvc2l0aW9uIiwgMTEpOworCisgICAgICAg
ICAgICAgICAgbG9nU3BlY1VSTCgiaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBz
L2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNkb20tdGV4dHRy
YWNrY3VlLXNpemUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9uIHNldHRpbmcsIGlm
IHRoZSBuZXcgdmFsdWUgaXMgbmVnYXRpdmUgb3IgZ3JlYXRlciB0aGFuIDEwMCwgdGhlbiB0aHJv
dyBhbiBJbmRleFNpemVFcnJvciBleGNlcHRpb24uIE90aGVyd2lzZSwgc2V0IHRoZSB0ZXh0IHRy
YWNrIGN1ZSBzaXplIHRvIHRoZSBuZXcgdmFsdWUuIik7CisgICAgICAgICAgICAgICAgdGVzdEV4
Y2VwdGlvbigidGV4dEN1ZS5zaXplID0gLTIwMCIsICJET01FeGNlcHRpb24uSU5ERVhfU0laRV9F
UlIiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhjZXB0aW9uKCJ0ZXh0Q3VlLnNpemUgPSAxMTAi
LCAiRE9NRXhjZXB0aW9uLklOREVYX1NJWkVfRVJSIik7CisgICAgICAgICAgICAgICAgcnVuKCJ0
ZXh0Q3VlLnNpemUgPSA1NyIpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidGV4dEN1
ZS5zaXplIiwgNTcpOworCisgICAgICAgICAgICAgICAgbG9nU3BlY1VSTCgiaHR0cDovL3d3dy53
aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGhlLXZpZGVv
LWVsZW1lbnQuaHRtbCNkb20tdGV4dHRyYWNrY3VlLWFsaWdubWVudCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiT24gc2V0dGluZywgdGhlIHRleHQgdHJhY2sgY3VlIGFsaWdubWVudCBt
dXN0IGJlIHNldCB0byB0aGUgdmFsdWUgLi4uIGlzIGEgY2FzZS1zZW5zaXRpdmUgbWF0Y2ggZm9y
IHRoZSBuZXcgdmFsdWUsIGlmIGFueS4gSWYgbm9uZSBvZiB0aGUgdmFsdWVzIG1hdGNoLCB0aGVu
IHRoZSB1c2VyIGFnZW50IG11c3QgaW5zdGVhZCB0aHJvdyBhIFN5bnRheEVycm9yIGV4Y2VwdGlv
bi4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhjZXB0aW9uKCJ0ZXh0Q3VlLmFsaWdubWVudCA9
ICdFbmQnIiwgIkRPTUV4Y2VwdGlvbi5TWU5UQVhfRVJSIik7CisgICAgICAgICAgICAgICAgdGVz
dEV4cGVjdGVkKCJ0ZXh0Q3VlLmFsaWdubWVudCIsICJtaWRkbGUiKTsKKyAgICAgICAgICAgICAg
ICBydW4oInRleHRDdWUuYWxpZ25tZW50ID0gJ2VuZCciKTsKKyAgICAgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoInRleHRDdWUuYWxpZ25tZW50IiwgImVuZCIpOworCisgICAgICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAg
ICA8cD5UZXN0cyBtb2RpZnlpbmcgYXR0cmlidXRlcyBvZiBhIFRleHRUcmFja0N1ZTwvcD4KKyAg
ICAgICAgPHZpZGVvIGNvbnRyb2xzPgorICAgICAgICAgICAgPHRyYWNrIGlkPSJjYXB0aW9ucyIg
c3JjPSJjYXB0aW9ucy13ZWJ2dHQvY2FwdGlvbnMudnR0IiBraW5kPSJjYXB0aW9ucyIgb25sb2Fk
PSJ0cmFja0xvYWRlZCgpIiBkZWZhdWx0PgorICAgICAgICA8L3ZpZGVvPgorICAgIDwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCShyZXZpc2lvbiAxMDQxNjEp
CisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAt
NDMzLDcgKzQzMyw3IEBAIGZhc3QvZG9tL01pY3JvRGF0YQogCiAjIFRoZSBtYWMgcG9ydCBoYXMg
bm8gc3VwcG9ydCBmb3IgPHRyYWNrPgogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDM2NjgKLW1lZGlhL3RyYWNrCisjIyNtZWRpYS90cmFjawogZmFzdC9ldmVudHMv
Y29uc3RydWN0b3JzL3RyYWNrLWV2ZW50LWNvbnN0cnVjdG9yLmh0bWwKIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvdGV4dC10cmFjay1jcm9zc29yaWdpbi5odG1sCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121321</attachid>
            <date>2012-01-05 13:23:09 -0800</date>
            <delta_ts>2012-01-06 12:32:53 -0800</delta_ts>
            <desc>Updated patch - hopefully pedantic AND correct this time.</desc>
            <filename>patch_mutable_cue_4.txt</filename>
            <type>text/plain</type>
            <size>30732</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDE4OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYxIEBACisyMDEyLTAxLTA1ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgVGV4dFRyYWNr
Q3VlIG1vcmUgbXV0YWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzI1NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBtZWRpYS90cmFjay90cmFjay1jdWUtbXV0YWJsZS5odG1sCisKKyAgICAg
ICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6dXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3Vlcyk6IERvIG5vdGhpbmcgaWYgdGhl
ICJpZ25vcmUgY3VlIHVwZGF0ZXMiCisgICAgICAgICAgICBmbGFnIGlzIHNldAorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrQWRkQ3Vlcyk6IEJsb2NrIGN1ZSB1
cGRhdGVzIHVudGlsIGFsbCBvZiB0aGUgbmV3IGN1ZXMgaGF2ZQorICAgICAgICAgICAgYmVlbiBh
ZGRlZCwgdGhlbiBjYWxsIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMgc28gdXBkYXRlIHRoZSBk
aXNwbGF5IGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OnRleHRUcmFja1JlbW92ZUN1ZXMpOiBCbG9jayBjdWUgdXBkYXRlcyB1bnRpbCBhbGwgb2YgdGhl
IG5ldyBjdWVzIGhhdmUKKyAgICAgICAgICAgIGJlZW4gcmVtb3ZlZCwgdGhlbiBjYWxsIHVwZGF0
ZUFjdGl2ZVRleHRUcmFja0N1ZXMgc28gdXBkYXRlIHRoZSBkaXNwbGF5IGlmIG5lY2Vzc2FyeS4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZSk6IENh
bGwgdXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3VlcyBzbyB1cGRhdGUgdGhlIGRpc3BsYXkgaWYgbmVj
ZXNzYXJ5LgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVt
b3ZlQ3VlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjppZ25vcmVUcmFja0Rpc3BsYXlVcGRhdGVS
ZXF1ZXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpiZWdpbklnbm9y
aW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6ZW5kSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cyk6CisKKyAg
ICAgICAgKiBodG1sL1RleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6
OmN1ZVdpbGxDaGFuZ2UpOiBOZXcsIHJlbW92ZSB0aGUgY3VlIGZyb20gdGhlIG1lZGlhIGVsZW1l
bnQgYmVjYXVzZSBpdHMKKyAgICAgICAgICAgIHBvc2l0aW9uIGluIHRoZSBpbnRlcnZhbCB0cmVl
IGlzIGJhc2VkIG9uIHN0YXJ0IGFuZCBlbmQgdGltZXMuCisgICAgICAgIChXZWJDb3JlOjpUZXh0
VHJhY2s6OmN1ZURpZENoYW5nZSk6IEFkZCB0aGUgY3VlIHRvIHRoZSBtZWRpYSBlbGVtZW50Lgor
ICAgICAgICAqIGh0bWwvVGV4dFRyYWNrLmg6CisKKyAgICAgICAgKiBodG1sL1RleHRUcmFja0N1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdGFydEtleXdvcmQpOiBOZXcsIHVzZSBhIHN0YXRp
YyBTdHJpbmcgZm9yIHRoZSBjb25zdGFudC4KKyAgICAgICAgKFdlYkNvcmU6Om1pZGRsZUtleXdv
cmQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmVuZEtleXdvcmQpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6Omhvcml6b250YWxLZXl3b3JkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
Ojp2ZXJ0aWNhbEtleXdvcmQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OnZlcnRpY2FsbHJL
ZXl3b3JkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmN1ZVdpbGxD
aGFuZ2UpOiBOZXcsIHRlbGwgdGhlIHRyYWNrIHRoZSBjdWUgaXMgYWJvdXQgdG8gY2hhbmdlLgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpjdWVEaWRDaGFuZ2UpOiBOZXcsIHRlbGwg
dGhlIHRyYWNrIHRoZSBjdWUgaGFzIGNoYW5nZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJh
Y2tDdWU6OnNldElkKTogTmV3LCBhdHRyaWJ1dGUgaXMgbXV0YWJsZS4KKyAgICAgICAgKFdlYkNv
cmU6OlRleHRUcmFja0N1ZTo6c2V0U3RhcnRUaW1lKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tDdWU6OnNldEVuZFRpbWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRUcmFja0N1ZTo6c2V0UGF1c2VPbkV4aXQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRUcmFja0N1ZTo6ZGlyZWN0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJh
Y2tDdWU6OnNldERpcmVjdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNr
Q3VlOjpzZXRTbmFwVG9MaW5lcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNr
Q3VlOjpzZXRMaW5lUG9zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFj
a0N1ZTo6c2V0VGV4dFBvc2l0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJh
Y2tDdWU6OnNldFNpemUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6
YWxpZ25tZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OnNldEFs
aWdubWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpwYXJzZVNl
dHRpbmdzKTogVXNlIHRoZSBzdGF0aWMgc3RyaW5ncy4KKyAgICAgICAgKiBodG1sL1RleHRUcmFj
a0N1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjppZCk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2tDdWU6OnN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
VHJhY2tDdWU6OmVuZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpwYXVz
ZU9uRXhpdCk6CisgICAgICAgICogaHRtbC9UZXh0VHJhY2tDdWUuaWRsOgorCiAyMDEyLTAxLTA1
ICBLZW4gQnVjaGFuYW4gPGtlbnJiQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDcmFzaCBkdWUg
dG8gcmVwYXJlbnRpbmcgb2YgcmVscG9zaXRpb25lZCBvYmplY3QgdW5kZXIgYW5vbnltb3VzIGJs
b2NrCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJldmlz
aW9uIDEwNDE2MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTk0NSw2ICs5NDUsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OmxvYWRSZXNvdXJjZShjb25zCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojp1cGRhdGVBY3RpdmVUZXh0VHJhY2tDdWVzKGZsb2F0IG1vdmllVGltZSkKIHsK
KyAgICBpZiAoaWdub3JlVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIAogICAgIEN1ZUxpc3QgcHJldmlvdXNseUFjdGl2ZUN1ZXMgPSBtX2N1cnJlbnRs
eUFjdGl2ZUN1ZXM7CiAgICAgYm9vbCBhY3RpdmVTZXRDaGFuZ2VkID0gZmFsc2U7CiAKQEAgLTEw
MjcsMjQgKzEwMzAsMzIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tLaW5kQ2hh
bgogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrKiwg
Y29uc3QgVGV4dFRyYWNrQ3VlTGlzdCogY3VlcykgCiB7CisgICAgYmVnaW5JZ25vcmluZ1RyYWNr
RGlzcGxheVVwZGF0ZVJlcXVlc3RzKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjdWVz
LT5sZW5ndGgoKTsgKytpKQogICAgICAgICB0ZXh0VHJhY2tBZGRDdWUoY3Vlcy0+aXRlbShpKS0+
dHJhY2soKSwgY3Vlcy0+aXRlbShpKSk7CisgICAgZW5kSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRh
dGVSZXF1ZXN0cygpOworICAgIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMoY3VycmVudFRpbWUo
KSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0
VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KiBjdWVzKSAKIHsKKyAgICBiZWdpbklnbm9y
aW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGN1ZXMtPmxlbmd0aCgpOyArK2kpCiAgICAgICAgIHRleHRUcmFja1JlbW92ZUN1ZShjdWVz
LT5pdGVtKGkpLT50cmFjaygpLCBjdWVzLT5pdGVtKGkpKTsKKyAgICBlbmRJZ25vcmluZ1RyYWNr
RGlzcGxheVVwZGF0ZVJlcXVlc3RzKCk7CisgICAgdXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3Vlcyhj
dXJyZW50VGltZSgpKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRD
dWUoVGV4dFRyYWNrKiwgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+IGN1ZSkKIHsKICAgICBtX2N1
ZVRyZWUuYWRkKG1fY3VlVHJlZS5jcmVhdGVJbnRlcnZhbChjdWUtPnN0YXJ0VGltZSgpLCBjdWUt
PmVuZFRpbWUoKSwgY3VlLmdldCgpKSk7CisgICAgdXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3Vlcyhj
dXJyZW50VGltZSgpKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tSZW1v
dmVDdWUoVGV4dFRyYWNrKiwgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+IGN1ZSkKIHsKICAgICBt
X2N1ZVRyZWUucmVtb3ZlKG1fY3VlVHJlZS5jcmVhdGVJbnRlcnZhbChjdWUtPnN0YXJ0VGltZSgp
LCBjdWUtPmVuZFRpbWUoKSwgY3VlLmdldCgpKSk7CisgICAgdXBkYXRlQWN0aXZlVGV4dFRyYWNr
Q3VlcyhjdXJyZW50VGltZSgpKTsKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaAkocmV2aXNpb24gMTA0MTYxKQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwMCw2ICs0MDAsMTAg
QEAgcHJpdmF0ZToKICAgICBib29sIHVzZXJJc0ludGVyZXN0ZWRJblRoaXNMYW5ndWFnZShjb25z
dCBTdHJpbmcmKSBjb25zdDsKICAgICBib29sIHVzZXJJc0ludGVyZXN0ZWRJblRoaXNUcmFjayhI
VE1MVHJhY2tFbGVtZW50KikgY29uc3Q7CiAgICAgSFRNTFRyYWNrRWxlbWVudCogc2hvd2luZ1Ry
YWNrV2l0aFNhbWVLaW5kKEhUTUxUcmFja0VsZW1lbnQqKSBjb25zdDsKKworICAgIGJvb2wgaWdu
b3JlVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKSBjb25zdCB7IHJldHVybiBtX2lnbm9yZVRy
YWNrRGlzcGxheVVwZGF0ZSA+IDA7IH0KKyAgICB2b2lkIGJlZ2luSWdub3JpbmdUcmFja0Rpc3Bs
YXlVcGRhdGVSZXF1ZXN0cygpIHsgKyttX2lnbm9yZVRyYWNrRGlzcGxheVVwZGF0ZTsgfQorICAg
IHZvaWQgZW5kSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpIHsgQVNTRVJUKG1f
aWdub3JlVHJhY2tEaXNwbGF5VXBkYXRlKTsgLS1tX2lnbm9yZVRyYWNrRGlzcGxheVVwZGF0ZTsg
fQogI2VuZGlmCiAKICAgICAvLyBUaGVzZSAiaW50ZXJuYWwiIGZ1bmN0aW9ucyBkbyBub3QgY2hl
Y2sgdXNlciBnZXN0dXJlIHJlc3RyaWN0aW9ucy4KQEAgLTU2MCw2ICs1NjQsNyBAQCBwcml2YXRl
OgogICAgIFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNrPiA+IG1fdGV4dFRyYWNrc1doZW5SZXNvdXJj
ZVNlbGVjdGlvbkJlZ2FuOwogICAgIEN1ZUludGVydmFsVHJlZSBtX2N1ZVRyZWU7CiAgICAgQ3Vl
TGlzdCBtX2N1cnJlbnRseUFjdGl2ZUN1ZXM7CisgICAgaW50IG1faWdub3JlVHJhY2tEaXNwbGF5
VXBkYXRlOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9UZXh0VHJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvVGV4dFRyYWNrLmNwcAkocmV2aXNpb24gMTA0MTYxKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9UZXh0VHJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTEsNiArMjUxLDI1IEBAIHZvaWQg
VGV4dFRyYWNrOjpmaXJlQ3VlQ2hhbmdlRXZlbnQoKQogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwogICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY3VlY2hhbmdl
RXZlbnQsIGZhbHNlLCBmYWxzZSksIGVjKTsKIH0KKyAgICAKK3ZvaWQgVGV4dFRyYWNrOjpjdWVX
aWxsQ2hhbmdlKFRleHRUcmFja0N1ZSogY3VlKQoreworICAgIGlmICghbV9jbGllbnQpCisgICAg
ICAgIHJldHVybjsKKworICAgIC8vIFRoZSBjdWUgbWF5IG5lZWQgdG8gYmUgcmVwb3NpdGlvbmVk
IGluIHRoZSBtZWRpYSBlbGVtZW50J3MgaW50ZXJ2YWwgdHJlZSwgbWF5IG5lZWQgdG8KKyAgICAv
LyBiZSByZS1yZW5kZXJlZCwgZXRjLCBzbyByZW1vdmUgaXQgYmVmb3JlIHRoZSBtb2RpZmljYXRp
b24uLi4KKyAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlKHRoaXMsIGN1ZSk7Cit9CisK
K3ZvaWQgVGV4dFRyYWNrOjpjdWVEaWRDaGFuZ2UoVGV4dFRyYWNrQ3VlKiBjdWUpCit7CisgICAg
aWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gLi4uIGFuZCBhZGQgaXQg
YmFjayBhZ2Fpbi4KKyAgICBtX2NsaWVudC0+dGV4dFRyYWNrQWRkQ3VlKHRoaXMsIGN1ZSk7Cit9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9U
ZXh0VHJhY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5o
CShyZXZpc2lvbiAxMDQxNjEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5oCSh3
b3JraW5nIGNvcHkpCkBAIC05OCw2ICs5OCw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRkQ3Vl
KFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgcmVt
b3ZlQ3VlKFRleHRUcmFja0N1ZSosIEV4Y2VwdGlvbkNvZGUmKTsKKworICAgIHZvaWQgY3VlV2ls
bENoYW5nZShUZXh0VHJhY2tDdWUqKTsKKyAgICB2b2lkIGN1ZURpZENoYW5nZShUZXh0VHJhY2tD
dWUqKTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgZmlyZUN1ZUNoYW5nZUV2ZW50KCk7CiAgICAg
REVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihjdWVjaGFuZ2UpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9UZXh0VHJhY2tDdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvVGV4dFRyYWNrQ3VlLmNwcAkocmV2aXNpb24gMTA0MTYxKQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9UZXh0VHJhY2tDdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw0
MSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcm
IHN0YXJ0S2V5d29yZCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIHN0YXJ0LCAoInN0YXJ0IikpOworICAgIHJldHVybiBzdGFydDsKK30KKworc3RhdGlj
IGNvbnN0IEF0b21pY1N0cmluZyYgbWlkZGxlS2V5d29yZCgpCit7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG1pZGRsZSwgKCJtaWRkbGUiKSk7CisgICAgcmV0
dXJuIG1pZGRsZTsKK30KKworc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgZW5kS2V5d29yZCgp
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGVuZCwgKCJl
bmQiKSk7CisgICAgcmV0dXJuIGVuZDsKK30KKworc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYg
aG9yaXpvbnRhbEtleXdvcmQoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCBob3Jpem9udGFsLCAoImhvcml6b250YWwiKSk7CisgICAgcmV0dXJuIGhvcml6
b250YWw7Cit9CisKK3N0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHZlcnRpY2FsS2V5d29yZCgp
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHZlcnRpY2Fs
LCAoInZlcnRpY2FsIikpOworICAgIHJldHVybiB2ZXJ0aWNhbDsKK30KK3N0YXRpYyBjb25zdCBB
dG9taWNTdHJpbmcmIHZlcnRpY2FsbHJLZXl3b3JkKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgdmVydGljYWxsciwgKCJ2ZXJ0aWNhbC1sciIpKTsKKyAg
ICByZXR1cm4gdmVydGljYWxscjsKK30KKyAgICAKIFRleHRUcmFja0N1ZTo6VGV4dFRyYWNrQ3Vl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgaWQsIGRvdWJs
ZSBzdGFydCwgZG91YmxlIGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50LCBjb25zdCBTdHJpbmcm
IHNldHRpbmdzLCBib29sIHBhdXNlT25FeGl0KQogICAgIDogbV9pZChpZCkKICAgICAsIG1fc3Rh
cnRUaW1lKHN0YXJ0KQpAQCAtNjQsNiArOTksMTggQEAgVGV4dFRyYWNrQ3VlOjp+VGV4dFRyYWNr
Q3VlKCkKIHsKIH0KIAordm9pZCBUZXh0VHJhY2tDdWU6OmN1ZVdpbGxDaGFuZ2UoKQoreworICAg
IGlmIChtX3RyYWNrKQorICAgICAgICBtX3RyYWNrLT5jdWVXaWxsQ2hhbmdlKHRoaXMpOworfQor
Cit2b2lkIFRleHRUcmFja0N1ZTo6Y3VlRGlkQ2hhbmdlKCkKK3sKKyAgICBpZiAobV90cmFjaykK
KyAgICAgICAgbV90cmFjay0+Y3VlRGlkQ2hhbmdlKHRoaXMpOworfQorCiBUZXh0VHJhY2sqIFRl
eHRUcmFja0N1ZTo6dHJhY2soKSBjb25zdAogewogICAgIHJldHVybiBtX3RyYWNrLmdldCgpOwpA
QCAtNzQsNTQgKzEyMSwxOTMgQEAgdm9pZCBUZXh0VHJhY2tDdWU6OnNldFRyYWNrKFBhc3NSZWZQ
dHI8VAogICAgIG1fdHJhY2sgPSB0cmFjazsKIH0KIAotU3RyaW5nIFRleHRUcmFja0N1ZTo6aWQo
KSBjb25zdAordm9pZCBUZXh0VHJhY2tDdWU6OnNldElkKFN0cmluZyBpZCkKIHsKLSAgICByZXR1
cm4gbV9pZDsKKyAgICBpZiAobV9pZCA9PSBpZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY3Vl
V2lsbENoYW5nZSgpOworICAgIG1faWQgPSBpZDsKKyAgICBjdWVEaWRDaGFuZ2UoKTsKIH0KIAot
ZG91YmxlIFRleHRUcmFja0N1ZTo6c3RhcnRUaW1lKCkgY29uc3QKK3ZvaWQgVGV4dFRyYWNrQ3Vl
OjpzZXRTdGFydFRpbWUoZG91YmxlIHZhbHVlKQogewotICAgIHJldHVybiBtX3N0YXJ0VGltZTsK
KyAgICBpZiAobV9zdGFydFRpbWUgPT0gdmFsdWUpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAg
ICBjdWVXaWxsQ2hhbmdlKCk7CisgICAgbV9zdGFydFRpbWUgPSB2YWx1ZTsKKyAgICBjdWVEaWRD
aGFuZ2UoKTsKIH0KLQotZG91YmxlIFRleHRUcmFja0N1ZTo6ZW5kVGltZSgpIGNvbnN0CisgICAg
Cit2b2lkIFRleHRUcmFja0N1ZTo6c2V0RW5kVGltZShkb3VibGUgdmFsdWUpCiB7Ci0gICAgcmV0
dXJuIG1fZW5kVGltZTsKKyAgICBpZiAobV9lbmRUaW1lID09IHZhbHVlKQorICAgICAgICByZXR1
cm47CisgICAgCisgICAgY3VlV2lsbENoYW5nZSgpOworICAgIG1fZW5kVGltZSA9IHZhbHVlOwor
ICAgIGN1ZURpZENoYW5nZSgpOwogfQotCi1ib29sIFRleHRUcmFja0N1ZTo6cGF1c2VPbkV4aXQo
KSBjb25zdAorICAgIAordm9pZCBUZXh0VHJhY2tDdWU6OnNldFBhdXNlT25FeGl0KGJvb2wgdmFs
dWUpCiB7Ci0gICAgcmV0dXJuIG1fcGF1c2VPbkV4aXQ7CisgICAgaWYgKG1fcGF1c2VPbkV4aXQg
PT0gdmFsdWUpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBjdWVXaWxsQ2hhbmdlKCk7Cisg
ICAgbV9wYXVzZU9uRXhpdCA9IHZhbHVlOworICAgIGN1ZURpZENoYW5nZSgpOwogfQogCiBTdHJp
bmcgVGV4dFRyYWNrQ3VlOjpkaXJlY3Rpb24oKSBjb25zdAogewogICAgIHN3aXRjaCAobV93cml0
aW5nRGlyZWN0aW9uKSB7CiAgICAgY2FzZSBIb3Jpem9udGFsOiAKLSAgICAgICAgcmV0dXJuICJo
b3Jpem9udGFsIjsKKyAgICAgICAgcmV0dXJuIGhvcml6b250YWxLZXl3b3JkKCk7CiAgICAgY2Fz
ZSBWZXJ0aWNhbEdyb3dpbmdMZWZ0OgotICAgICAgICByZXR1cm4gInZlcnRpY2FsIjsKKyAgICAg
ICAgcmV0dXJuIHZlcnRpY2FsS2V5d29yZCgpOwogICAgIGNhc2UgVmVydGljYWxHcm93aW5nUmln
aHQ6Ci0gICAgICAgIHJldHVybiAidmVydGljYWwtbHIiOworICAgICAgICByZXR1cm4gdmVydGlj
YWxscktleXdvcmQoKTsKICAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuICIiOwogICAgIH0KIH0KIAordm9pZCBUZXh0VHJhY2tDdWU6OnNl
dERpcmVjdGlvbihjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211
bHRpcGFnZS90aGUtdmlkZW8tZWxlbWVudC5odG1sI2RvbS10ZXh0dHJhY2tjdWUtZGlyZWN0aW9u
CisgICAgLy8gT24gc2V0dGluZywgdGhlIHRleHQgdHJhY2sgY3VlIHdyaXRpbmcgZGlyZWN0aW9u
IG11c3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSBnaXZlbiAKKyAgICAvLyBpbiB0aGUgZmlyc3QgY2Vs
bCBvZiB0aGUgcm93IGluIHRoZSB0YWJsZSBhYm92ZSB3aG9zZSBzZWNvbmQgY2VsbCBpcyBhIAor
ICAgIC8vIGNhc2Utc2Vuc2l0aXZlIG1hdGNoIGZvciB0aGUgbmV3IHZhbHVlLCBpZiBhbnkuIElm
IG5vbmUgb2YgdGhlIHZhbHVlcyBtYXRjaCwgdGhlbgorICAgIC8vIHRoZSB1c2VyIGFnZW50IG11
c3QgaW5zdGVhZCB0aHJvdyBhIFN5bnRheEVycm9yIGV4Y2VwdGlvbi4KKyAgICAKKyAgICBEaXJl
Y3Rpb24gZGlyZWN0aW9uID0gbV93cml0aW5nRGlyZWN0aW9uOworICAgIGlmICh2YWx1ZSA9PSBo
b3Jpem9udGFsS2V5d29yZCgpKQorICAgICAgICBkaXJlY3Rpb24gPSBIb3Jpem9udGFsOworICAg
IGVsc2UgaWYgKHZhbHVlID09IHZlcnRpY2FsS2V5d29yZCgpKQorICAgICAgICBkaXJlY3Rpb24g
PSBWZXJ0aWNhbEdyb3dpbmdMZWZ0OworICAgIGVsc2UgaWYgKHZhbHVlID09IHZlcnRpY2FsbHJL
ZXl3b3JkKCkpCisgICAgICAgIGRpcmVjdGlvbiA9IFZlcnRpY2FsR3Jvd2luZ1JpZ2h0OworICAg
IGVsc2UKKyAgICAgICAgZWMgPSBTWU5UQVhfRVJSOworICAgIAorICAgIGlmIChkaXJlY3Rpb24g
IT0gbV93cml0aW5nRGlyZWN0aW9uKSB7CisgICAgICAgIGN1ZVdpbGxDaGFuZ2UoKTsKKyAgICAg
ICAgbV93cml0aW5nRGlyZWN0aW9uID0gZGlyZWN0aW9uOworICAgICAgICBjdWVEaWRDaGFuZ2Uo
KTsKKyAgICB9Cit9CisKK3ZvaWQgVGV4dFRyYWNrQ3VlOjpzZXRTbmFwVG9MaW5lcyhib29sIHZh
bHVlKQoreworICAgIGlmIChtX3NuYXBUb0xpbmVzID09IHZhbHVlKQorICAgICAgICByZXR1cm47
CisgICAgCisgICAgY3VlV2lsbENoYW5nZSgpOworICAgIG1fc25hcFRvTGluZXMgPSB2YWx1ZTsK
KyAgICBjdWVEaWRDaGFuZ2UoKTsKK30KKwordm9pZCBUZXh0VHJhY2tDdWU6OnNldExpbmVQb3Np
dGlvbihpbnQgcG9zaXRpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIC8vIGh0dHA6Ly93
d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3RoZS12
aWRlby1lbGVtZW50Lmh0bWwjZG9tLXRleHR0cmFja2N1ZS1saW5lcG9zaXRpb24KKyAgICAvLyBP
biBzZXR0aW5nLCBpZiB0aGUgdGV4dCB0cmFjayBjdWUgc25hcC10by1saW5lcyBmbGFnIGlzIG5v
dCBzZXQsIGFuZCB0aGUgbmV3CisgICAgLy8gdmFsdWUgaXMgbmVnYXRpdmUgb3IgZ3JlYXRlciB0
aGFuIDEwMCwgdGhlbiB0aHJvdyBhbiBJbmRleFNpemVFcnJvciBleGNlcHRpb24uCisgICAgaWYg
KCFtX3NuYXBUb0xpbmVzICYmIChwb3NpdGlvbiA8IDAgfHwgcG9zaXRpb24gPiAxMDApKSB7Cisg
ICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
CisgICAgLy8gT3RoZXJ3aXNlLCBzZXQgdGhlIHRleHQgdHJhY2sgY3VlIGxpbmUgcG9zaXRpb24g
dG8gdGhlIG5ldyB2YWx1ZS4KKyAgICBpZiAobV9saW5lUG9zaXRpb24gPT0gcG9zaXRpb24pCisg
ICAgICAgIHJldHVybjsKKyAgICAKKyAgICBjdWVXaWxsQ2hhbmdlKCk7CisgICAgbV9saW5lUG9z
aXRpb24gPSBwb3NpdGlvbjsgCisgICAgY3VlRGlkQ2hhbmdlKCk7Cit9CisKK3ZvaWQgVGV4dFRy
YWNrQ3VlOjpzZXRUZXh0UG9zaXRpb24oaW50IHBvc2l0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13
b3JrL211bHRpcGFnZS90aGUtdmlkZW8tZWxlbWVudC5odG1sI2RvbS10ZXh0dHJhY2tjdWUtbGlu
ZXBvc2l0aW9uCisgICAgLy8gT24gc2V0dGluZywgaWYgdGhlIG5ldyB2YWx1ZSBpcyBuZWdhdGl2
ZSBvciBncmVhdGVyIHRoYW4gMTAwLCB0aGVuIHRocm93IGFuIEluZGV4U2l6ZUVycm9yIGV4Y2Vw
dGlvbi4KKyAgICAvLyBPdGhlcndpc2UsIHNldCB0aGUgdGV4dCB0cmFjayBjdWUgdGV4dCBwb3Np
dGlvbiB0byB0aGUgbmV3IHZhbHVlLgorICAgIGlmIChwb3NpdGlvbiA8IDAgfHwgcG9zaXRpb24g
PiAxMDApIHsKKyAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICAKKyAgICAvLyBPdGhlcndpc2UsIHNldCB0aGUgdGV4dCB0cmFjayBjdWUgbGlu
ZSBwb3NpdGlvbiB0byB0aGUgbmV3IHZhbHVlLgorICAgIGlmIChtX3RleHRQb3NpdGlvbiA9PSBw
b3NpdGlvbikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGN1ZVdpbGxDaGFuZ2UoKTsKKyAg
ICBtX3RleHRQb3NpdGlvbiA9IHBvc2l0aW9uOyAKKyAgICBjdWVEaWRDaGFuZ2UoKTsKK30KKwor
dm9pZCBUZXh0VHJhY2tDdWU6OnNldFNpemUoaW50IHNpemUsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdv
cmsvbXVsdGlwYWdlL3RoZS12aWRlby1lbGVtZW50Lmh0bWwjZG9tLXRleHR0cmFja2N1ZS1zaXpl
CisgICAgLy8gT24gc2V0dGluZywgaWYgdGhlIG5ldyB2YWx1ZSBpcyBuZWdhdGl2ZSBvciBncmVh
dGVyIHRoYW4gMTAwLCB0aGVuIHRocm93IGFuIEluZGV4U2l6ZUVycm9yCisgICAgLy8gZXhjZXB0
aW9uLiBPdGhlcndpc2UsIHNldCB0aGUgdGV4dCB0cmFjayBjdWUgc2l6ZSB0byB0aGUgbmV3IHZh
bHVlLgorICAgIGlmIChzaXplIDwgMCB8fCBzaXplID4gMTAwKSB7CisgICAgICAgIGVjID0gSU5E
RVhfU0laRV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgLy8gT3RoZXJ3
aXNlLCBzZXQgdGhlIHRleHQgdHJhY2sgY3VlIGxpbmUgcG9zaXRpb24gdG8gdGhlIG5ldyB2YWx1
ZS4KKyAgICBpZiAobV9jdWVTaXplID09IHNpemUpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAg
ICBjdWVXaWxsQ2hhbmdlKCk7CisgICAgbV9jdWVTaXplID0gc2l6ZTsKKyAgICBjdWVEaWRDaGFu
Z2UoKTsKK30KKwogU3RyaW5nIFRleHRUcmFja0N1ZTo6YWxpZ25tZW50KCkgY29uc3QKIHsKICAg
ICBzd2l0Y2ggKG1fY3VlQWxpZ25tZW50KSB7Ci0gICAgY2FzZSBTdGFydDogCi0gICAgICAgIHJl
dHVybiAic3RhcnQiOworICAgIGNhc2UgU3RhcnQ6CisgICAgICAgIHJldHVybiBzdGFydEtleXdv
cmQoKTsKICAgICBjYXNlIE1pZGRsZToKLSAgICAgICAgcmV0dXJuICJtaWRkbGUiOworICAgICAg
ICByZXR1cm4gbWlkZGxlS2V5d29yZCgpOwogICAgIGNhc2UgRW5kOgotICAgICAgICByZXR1cm4g
ImVuZCI7CisgICAgICAgIHJldHVybiBlbmRLZXl3b3JkKCk7CiAgICAgZGVmYXVsdDoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAiIjsKICAgICB9CiB9CiAK
K3ZvaWQgVGV4dFRyYWNrQ3VlOjpzZXRBbGlnbm1lbnQoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCit7CisgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dl
Yi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNkb20t
dGV4dHRyYWNrY3VlLWFsaWdubWVudAorICAgIC8vIE9uIHNldHRpbmcsIHRoZSB0ZXh0IHRyYWNr
IGN1ZSBhbGlnbm1lbnQgbXVzdCBiZSBzZXQgdG8gdGhlIHZhbHVlIGdpdmVuIGluIHRoZSAKKyAg
ICAvLyBmaXJzdCBjZWxsIG9mIHRoZSByb3cgaW4gdGhlIHRhYmxlIGFib3ZlIHdob3NlIHNlY29u
ZCBjZWxsIGlzIGEgY2FzZS1zZW5zaXRpdmUKKyAgICAvLyBtYXRjaCBmb3IgdGhlIG5ldyB2YWx1
ZSwgaWYgYW55LiBJZiBub25lIG9mIHRoZSB2YWx1ZXMgbWF0Y2gsIHRoZW4gdGhlIHVzZXIKKyAg
ICAvLyBhZ2VudCBtdXN0IGluc3RlYWQgdGhyb3cgYSBTeW50YXhFcnJvciBleGNlcHRpb24uCisg
ICAgCisgICAgQWxpZ25tZW50IGFsaWdubWVudCA9IG1fY3VlQWxpZ25tZW50OworICAgIGlmICh2
YWx1ZSA9PSBzdGFydEtleXdvcmQoKSkKKyAgICAgICAgYWxpZ25tZW50ID0gU3RhcnQ7CisgICAg
ZWxzZSBpZiAodmFsdWUgPT0gbWlkZGxlS2V5d29yZCgpKQorICAgICAgICBhbGlnbm1lbnQgPSBN
aWRkbGU7CisgICAgZWxzZSBpZiAodmFsdWUgPT0gZW5kS2V5d29yZCgpKQorICAgICAgICBhbGln
bm1lbnQgPSBFbmQ7CisgICAgZWxzZQorICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CisgICAgCisg
ICAgaWYgKGFsaWdubWVudCAhPSBtX2N1ZUFsaWdubWVudCkgeworICAgICAgICBjdWVXaWxsQ2hh
bmdlKCk7CisgICAgICAgIG1fY3VlQWxpZ25tZW50ID0gYWxpZ25tZW50OworICAgICAgICBjdWVE
aWRDaGFuZ2UoKTsKKyAgICB9Cit9CisgICAgCiBTdHJpbmcgVGV4dFRyYWNrQ3VlOjpnZXRDdWVB
c1NvdXJjZSgpCiB7CiAgICAgcmV0dXJuIG1fY29udGVudDsKQEAgLTE4Nyw5ICszNzMsOSBAQCB2
b2lkIFRleHRUcmFja0N1ZTo6cGFyc2VTZXR0aW5ncyhjb25zdCBTCiAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAvLyAxLTMgLSBDb2xsZWN0IHRoZSBuZXh0IHdvcmQgYW5kIHNldCB0aGUgd3Jp
dGluZyBkaXJlY3Rpb24gYWNjb3JkaW5nbHkuCiAgICAgICAgICAgICBTdHJpbmcgd3JpdGluZ0Rp
cmVjdGlvbiA9IFdlYlZUVFBhcnNlcjo6Y29sbGVjdFdvcmQoaW5wdXQsICZwb3NpdGlvbik7Ci0g
ICAgICAgICAgICBpZiAod3JpdGluZ0RpcmVjdGlvbiA9PSAidmVydGljYWwiKQorICAgICAgICAg
ICAgaWYgKHdyaXRpbmdEaXJlY3Rpb24gPT0gdmVydGljYWxLZXl3b3JkKCkpCiAgICAgICAgICAg
ICAgICAgbV93cml0aW5nRGlyZWN0aW9uID0gVmVydGljYWxHcm93aW5nTGVmdDsKLSAgICAgICAg
ICAgIGVsc2UgaWYgKHdyaXRpbmdEaXJlY3Rpb24gPT0gInZlcnRpY2FsLWxyIikKKyAgICAgICAg
ICAgIGVsc2UgaWYgKHdyaXRpbmdEaXJlY3Rpb24gPT0gdmVydGljYWxscktleXdvcmQoKSkKICAg
ICAgICAgICAgICAgICBtX3dyaXRpbmdEaXJlY3Rpb24gPSBWZXJ0aWNhbEdyb3dpbmdSaWdodDsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjk3LDExICs0ODMsMTEgQEAg
dm9pZCBUZXh0VHJhY2tDdWU6OnBhcnNlU2V0dGluZ3MoY29uc3QgUwogICAgICAgICAgICAgewog
ICAgICAgICAgICAgLy8gMS00IC0gQ29sbGVjdCB0aGUgbmV4dCB3b3JkIGFuZCBzZXQgdGhlIGN1
ZSBhbGlnbm1lbnQgYWNjb3JkaW5nbHkuCiAgICAgICAgICAgICBTdHJpbmcgY3VlQWxpZ25tZW50
ID0gV2ViVlRUUGFyc2VyOjpjb2xsZWN0V29yZChpbnB1dCwgJnBvc2l0aW9uKTsKLSAgICAgICAg
ICAgIGlmIChjdWVBbGlnbm1lbnQgPT0gInN0YXJ0IikKKyAgICAgICAgICAgIGlmIChjdWVBbGln
bm1lbnQgPT0gc3RhcnRLZXl3b3JkKCkpCiAgICAgICAgICAgICAgICAgbV9jdWVBbGlnbm1lbnQg
PSBTdGFydDsKLSAgICAgICAgICAgIGVsc2UgaWYgKGN1ZUFsaWdubWVudCA9PSAibWlkZGxlIikK
KyAgICAgICAgICAgIGVsc2UgaWYgKGN1ZUFsaWdubWVudCA9PSBtaWRkbGVLZXl3b3JkKCkpCiAg
ICAgICAgICAgICAgICAgbV9jdWVBbGlnbm1lbnQgPSBNaWRkbGU7Ci0gICAgICAgICAgICBlbHNl
IGlmIChjdWVBbGlnbm1lbnQgPT0gImVuZCIpCisgICAgICAgICAgICBlbHNlIGlmIChjdWVBbGln
bm1lbnQgPT0gZW5kS2V5d29yZCgpKQogICAgICAgICAgICAgICAgIG1fY3VlQWxpZ25tZW50ID0g
RW5kOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL1RleHRUcmFja0N1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvVGV4dFRyYWNrQ3VlLmgJKHJldmlzaW9uIDEwNDE2MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvVGV4dFRyYWNrQ3VlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDE5ICs1OSwzOCBAQCBwdWJs
aWM6CiAgICAgVGV4dFRyYWNrKiB0cmFjaygpIGNvbnN0OwogICAgIHZvaWQgc2V0VHJhY2soUGFz
c1JlZlB0cjxUZXh0VHJhY2s+KTsKIAotICAgIFN0cmluZyBpZCgpIGNvbnN0OwotICAgIGRvdWJs
ZSBzdGFydFRpbWUoKSBjb25zdDsKLSAgICBkb3VibGUgZW5kVGltZSgpIGNvbnN0OwotICAgIGJv
b2wgcGF1c2VPbkV4aXQoKSBjb25zdDsKLSAgICAKKyAgICBTdHJpbmcgaWQoKSBjb25zdCB7IHJl
dHVybiBtX2lkOyB9CisgICAgdm9pZCBzZXRJZChTdHJpbmcpOworCisgICAgZG91YmxlIHN0YXJ0
VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRUaW1lOyB9CisgICAgdm9pZCBzZXRTdGFydFRp
bWUoZG91YmxlKTsKKworICAgIGRvdWJsZSBlbmRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9lbmRU
aW1lOyB9CisgICAgdm9pZCBzZXRFbmRUaW1lKGRvdWJsZSk7CisKKyAgICBib29sIHBhdXNlT25F
eGl0KCkgY29uc3QgeyByZXR1cm4gbV9wYXVzZU9uRXhpdDsgfQorICAgIHZvaWQgc2V0UGF1c2VP
bkV4aXQoYm9vbCk7CisKICAgICBTdHJpbmcgZGlyZWN0aW9uKCkgY29uc3Q7CisgICAgdm9pZCBz
ZXREaXJlY3Rpb24oY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworCiAgICAgYm9vbCBz
bmFwVG9MaW5lcygpIGNvbnN0IHsgcmV0dXJuIG1fc25hcFRvTGluZXM7IH0KKyAgICB2b2lkIHNl
dFNuYXBUb0xpbmVzKGJvb2wpOworCiAgICAgaW50IGxpbmVQb3NpdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fbGluZVBvc2l0aW9uOyB9CisgICAgdm9pZCBzZXRMaW5lUG9zaXRpb24oaW50LCBFeGNl
cHRpb25Db2RlJik7CisKICAgICBpbnQgdGV4dFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90
ZXh0UG9zaXRpb247IH0KKyAgICB2b2lkIHNldFRleHRQb3NpdGlvbihpbnQsIEV4Y2VwdGlvbkNv
ZGUmKTsKKwogICAgIGludCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9jdWVTaXplOyB9CisgICAg
dm9pZCBzZXRTaXplKGludCwgRXhjZXB0aW9uQ29kZSYpOworCiAgICAgU3RyaW5nIGFsaWdubWVu
dCgpIGNvbnN0OworICAgIHZvaWQgc2V0QWxpZ25tZW50KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlv
bkNvZGUmKTsKIAogICAgIFN0cmluZyBnZXRDdWVBc1NvdXJjZSgpOworCiAgICAgUGFzc1JlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBnZXRDdWVBc0hUTUwoKTsKICAgICB2b2lkIHNldEN1ZUhUTUwo
UGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50Pik7CiAKQEAgLTk2LDYgKzExNSw4IEBAIHByaXZh
dGU6CiAgICAgVGV4dFRyYWNrQ3VlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJp
bmcmIGlkLCBkb3VibGUgc3RhcnQsIGRvdWJsZSBlbmQsIGNvbnN0IFN0cmluZyYgY29udGVudCwg
Y29uc3QgU3RyaW5nJiBzZXR0aW5ncywgYm9vbCBwYXVzZU9uRXhpdCk7CiAKICAgICB2b2lkIHBh
cnNlU2V0dGluZ3MoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBjdWVXaWxsQ2hhbmdlKCk7Cisg
ICAgdm9pZCBjdWVEaWRDaGFuZ2UoKTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRU
YXJnZXQoKSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSB7
IGRlcmVmKCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrQ3VlLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFja0N1ZS5pZGwJKHJldmlz
aW9uIDEwNDE2MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrQ3VlLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMzYsMTggKzM2LDIzIEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgQ3Vz
dG9tSXNSZWFjaGFibGUKICAgICBdIFRleHRUcmFja0N1ZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBUZXh0VHJhY2sgdHJhY2s7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgaWQ7CiAKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBzdGFydFRpbWU7
Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgZW5kVGltZTsKLSAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gcGF1c2VPbkV4aXQ7CisgICAgICAgIGF0dHJpYnV0ZSBE
T01TdHJpbmcgaWQ7CisgICAgICAgIGF0dHJpYnV0ZSBkb3VibGUgc3RhcnRUaW1lOworICAgICAg
ICBhdHRyaWJ1dGUgZG91YmxlIGVuZFRpbWU7CisgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIHBh
dXNlT25FeGl0OwogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZGlyZWN0
aW9uOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBzbmFwVG9MaW5lczsKLSAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgbGluZVBvc2l0aW9uOwotICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgbG9uZyB0ZXh0UG9zaXRpb247Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBsb25nIHNpemU7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYWxp
Z25tZW50OworICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRpcmVjdGlvbgorICAgICAgICAg
ICAgc2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgYXR0cmlidXRlIGJvb2xl
YW4gc25hcFRvTGluZXM7CisgICAgICAgIGF0dHJpYnV0ZSBsb25nIGxpbmVQb3NpdGlvbgorICAg
ICAgICAgICAgc2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgYXR0cmlidXRl
IGxvbmcgdGV4dFBvc2l0aW9uCisgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIChET01FeGNlcHRp
b24pOworICAgICAgICBhdHRyaWJ1dGUgbG9uZyBzaXplCisgICAgICAgICAgICBzZXR0ZXIgcmFp
c2VzIChET01FeGNlcHRpb24pOworICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFsaWdubWVu
dAorICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICBE
T01TdHJpbmcgZ2V0Q3VlQXNTb3VyY2UoKTsKICAgICAgICAgRG9jdW1lbnRGcmFnbWVudCBnZXRD
dWVBc0hUTUwoKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDE4OCkKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTA1ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgVGV4dFRy
YWNrQ3VlIG1vcmUgbXV0YWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzI1NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1tdXRhYmxlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogbWVkaWEvdHJhY2svdHJhY2stY3VlLW11dGFibGUuaHRtbDogQWRk
ZWQuCisKIDIwMTItMDEtMDUgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHNraXAgZmlsZS1yZWFkZXItZXZlbnQtbGlzdGVuZXIuaHRtbCBvbiBx
dCBhbmQgZWZsLgpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLW11dGFi
bGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL3RyYWNrL3Ry
YWNrLWN1ZS1tdXRhYmxlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1tdXRhYmxlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw3MCBAQAorVGVzdHMgbW9kaWZ5aW5nIGF0dHJpYnV0ZXMgb2YgYSBUZXh0VHJh
Y2tDdWUKKworKiogVGVzdCBpbml0aWFsIHZhbHVlcy4KK1JVTih0ZXh0Q3VlID0gY3Vlcy5nZXRD
dWVCeUlkKCcxJykpCitFWFBFQ1RFRCAodGV4dEN1ZS5zdGFydFRpbWUgPT0gJzAnKSBPSworRVhQ
RUNURUQgKHRleHRDdWUuZW5kVGltZSA9PSAnMScpIE9LCitFWFBFQ1RFRCAodGV4dEN1ZS5wYXVz
ZU9uRXhpdCA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHRleHRDdWUuZGlyZWN0aW9uID09ICdo
b3Jpem9udGFsJykgT0sKK0VYUEVDVEVEICh0ZXh0Q3VlLnNuYXBUb0xpbmVzID09ICd0cnVlJykg
T0sKK0VYUEVDVEVEICh0ZXh0Q3VlLmxpbmVQb3NpdGlvbiA9PSAnLTEnKSBPSworRVhQRUNURUQg
KHRleHRDdWUudGV4dFBvc2l0aW9uID09ICc1MCcpIE9LCitFWFBFQ1RFRCAodGV4dEN1ZS5zaXpl
ID09ICcxMDAnKSBPSworRVhQRUNURUQgKHRleHRDdWUuYWxpZ25tZW50ID09ICdtaWRkbGUnKSBP
SworCisqKiBNb2RpZnkgY3VlIHZhbHVlcy4KK1JVTih0ZXh0Q3VlLnN0YXJ0VGltZSA9IDEuMSkK
K0VYUEVDVEVEICh0ZXh0Q3VlLnN0YXJ0VGltZSA9PSAnMS4xJykgT0sKKworUlVOKHRleHRDdWUu
ZW5kVGltZSA9IDMuOSkKK0VYUEVDVEVEICh0ZXh0Q3VlLmVuZFRpbWUgPT0gJzMuOScpIE9LCisK
K1JVTih0ZXh0Q3VlLnBhdXNlT25FeGl0ID0gdHJ1ZSkKK0VYUEVDVEVEICh0ZXh0Q3VlLnBhdXNl
T25FeGl0ID09ICd0cnVlJykgT0sKKworT24gc2V0dGluZywgdGhlIHRleHQgdHJhY2sgY3VlIHdy
aXRpbmcgZGlyZWN0aW9uIG11c3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSAuLi4gaXMgYSBjYXNlLXNl
bnNpdGl2ZSBtYXRjaCBmb3IgdGhlIG5ldyB2YWx1ZSwgaWYgYW55LiBJZiBub25lIG9mIHRoZSB2
YWx1ZXMgbWF0Y2gsIHRoZW4gdGhlIHVzZXIgYWdlbnQgbXVzdCBpbnN0ZWFkIHRocm93IGEgU3lu
dGF4RXJyb3IgZXhjZXB0aW9uLgoraHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBz
L2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNkb20tdGV4dHRy
YWNrY3VlLWRpcmVjdGlvbgorVEVTVCh0ZXh0Q3VlLmRpcmVjdGlvbiA9ICdWRVJUSUNBTCcpIFRI
Uk9XUyhET01FeGNlcHRpb24uU1lOVEFYX0VSUikgT0sKK0VYUEVDVEVEICh0ZXh0Q3VlLmRpcmVj
dGlvbiA9PSAnaG9yaXpvbnRhbCcpIE9LCitSVU4odGV4dEN1ZS5kaXJlY3Rpb24gPSAndmVydGlj
YWwnKQorRVhQRUNURUQgKHRleHRDdWUuZGlyZWN0aW9uID09ICd2ZXJ0aWNhbCcpIE9LCisKK1JV
Tih0ZXh0Q3VlLnNuYXBUb0xpbmVzID0gZmFsc2UpCitFWFBFQ1RFRCAodGV4dEN1ZS5zbmFwVG9M
aW5lcyA9PSAnZmFsc2UnKSBPSworCitPbiBzZXR0aW5nLCBpZiB0aGUgdGV4dCB0cmFjayBjdWUg
c25hcC10by1saW5lcyBmbGFnIGlzIG5vdCBzZXQsIGFuZCB0aGUgbmV3IHZhbHVlIGlzIG5lZ2F0
aXZlIG9yIGdyZWF0ZXIgdGhhbiAxMDAsIHRoZW4gdGhyb3cgYW4gSW5kZXhTaXplRXJyb3IgZXhj
ZXB0aW9uLgoraHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29y
ay9tdWx0aXBhZ2UvdGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNkb20tdGV4dHRyYWNrY3VlLWxpbmVw
b3NpdGlvbgorVEVTVCh0ZXh0Q3VlLmxpbmVQb3NpdGlvbiA9IC0yKSBUSFJPV1MoRE9NRXhjZXB0
aW9uLklOREVYX1NJWkVfRVJSKSBPSworVEVTVCh0ZXh0Q3VlLmxpbmVQb3NpdGlvbiA9IDEwMikg
VEhST1dTKERPTUV4Y2VwdGlvbi5JTkRFWF9TSVpFX0VSUikgT0sKK0VYUEVDVEVEICh0ZXh0Q3Vl
LmxpbmVQb3NpdGlvbiA9PSAnLTEnKSBPSworUlVOKHRleHRDdWUubGluZVBvc2l0aW9uID0gNDIp
CitFWFBFQ1RFRCAodGV4dEN1ZS5saW5lUG9zaXRpb24gPT0gJzQyJykgT0sKK1JVTih0ZXh0Q3Vl
LnNuYXBUb0xpbmVzID0gdHJ1ZSkKK1JVTih0ZXh0Q3VlLmxpbmVQb3NpdGlvbiA9IC0yKQorRVhQ
RUNURUQgKHRleHRDdWUubGluZVBvc2l0aW9uID09ICctMicpIE9LCitSVU4odGV4dEN1ZS5saW5l
UG9zaXRpb24gPSAxMDIpCitFWFBFQ1RFRCAodGV4dEN1ZS5saW5lUG9zaXRpb24gPT0gJzEwMicp
IE9LCisKK09uIHNldHRpbmcsIGlmIHRoZSBuZXcgdmFsdWUgaXMgbmVnYXRpdmUgb3IgZ3JlYXRl
ciB0aGFuIDEwMCwgdGhlbiB0aHJvdyBhbiBJbmRleFNpemVFcnJvciBleGNlcHRpb24uIE90aGVy
d2lzZSwgc2V0IHRoZSB0ZXh0IHRyYWNrIGN1ZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBuZXcgdmFs
dWUuCitodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211
bHRpcGFnZS90aGUtdmlkZW8tZWxlbWVudC5odG1sI2RvbS10ZXh0dHJhY2tjdWUtbGluZXBvc2l0
aW9uCitURVNUKHRleHRDdWUudGV4dFBvc2l0aW9uID0gLTIwMCkgVEhST1dTKERPTUV4Y2VwdGlv
bi5JTkRFWF9TSVpFX0VSUikgT0sKK1RFU1QodGV4dEN1ZS50ZXh0UG9zaXRpb24gPSAxMTApIFRI
Uk9XUyhET01FeGNlcHRpb24uSU5ERVhfU0laRV9FUlIpIE9LCitSVU4odGV4dEN1ZS50ZXh0UG9z
aXRpb24gPSAxMSkKK0VYUEVDVEVEICh0ZXh0Q3VlLnRleHRQb3NpdGlvbiA9PSAnMTEnKSBPSwor
CitPbiBzZXR0aW5nLCBpZiB0aGUgbmV3IHZhbHVlIGlzIG5lZ2F0aXZlIG9yIGdyZWF0ZXIgdGhh
biAxMDAsIHRoZW4gdGhyb3cgYW4gSW5kZXhTaXplRXJyb3IgZXhjZXB0aW9uLiBPdGhlcndpc2Us
IHNldCB0aGUgdGV4dCB0cmFjayBjdWUgc2l6ZSB0byB0aGUgbmV3IHZhbHVlLgoraHR0cDovL3d3
dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGhlLXZp
ZGVvLWVsZW1lbnQuaHRtbCNkb20tdGV4dHRyYWNrY3VlLXNpemUKK1RFU1QodGV4dEN1ZS5zaXpl
ID0gLTIwMCkgVEhST1dTKERPTUV4Y2VwdGlvbi5JTkRFWF9TSVpFX0VSUikgT0sKK1RFU1QodGV4
dEN1ZS5zaXplID0gMTEwKSBUSFJPV1MoRE9NRXhjZXB0aW9uLklOREVYX1NJWkVfRVJSKSBPSwor
UlVOKHRleHRDdWUuc2l6ZSA9IDU3KQorRVhQRUNURUQgKHRleHRDdWUuc2l6ZSA9PSAnNTcnKSBP
SworCitPbiBzZXR0aW5nLCB0aGUgdGV4dCB0cmFjayBjdWUgYWxpZ25tZW50IG11c3QgYmUgc2V0
IHRvIHRoZSB2YWx1ZSAuLi4gaXMgYSBjYXNlLXNlbnNpdGl2ZSBtYXRjaCBmb3IgdGhlIG5ldyB2
YWx1ZSwgaWYgYW55LiBJZiBub25lIG9mIHRoZSB2YWx1ZXMgbWF0Y2gsIHRoZW4gdGhlIHVzZXIg
YWdlbnQgbXVzdCBpbnN0ZWFkIHRocm93IGEgU3ludGF4RXJyb3IgZXhjZXB0aW9uLgoraHR0cDov
L3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGhl
LXZpZGVvLWVsZW1lbnQuaHRtbCNkb20tdGV4dHRyYWNrY3VlLWFsaWdubWVudAorVEVTVCh0ZXh0
Q3VlLmFsaWdubWVudCA9ICdFbmQnKSBUSFJPV1MoRE9NRXhjZXB0aW9uLlNZTlRBWF9FUlIpIE9L
CitFWFBFQ1RFRCAodGV4dEN1ZS5hbGlnbm1lbnQgPT0gJ21pZGRsZScpIE9LCitSVU4odGV4dEN1
ZS5hbGlnbm1lbnQgPSAnZW5kJykKK0VYUEVDVEVEICh0ZXh0Q3VlLmFsaWdubWVudCA9PSAnZW5k
JykgT0sKKworRU5EIE9GIFRFU1QKKwpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJh
Y2stY3VlLW11dGFibGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS90cmFj
ay90cmFjay1jdWUtbXV0YWJsZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvbWVk
aWEvdHJhY2svdHJhY2stY3VlLW11dGFibGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
MDYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRh
IGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0
Zi04IiAvPgorCisgICAgICAgIDxzY3JpcHQgc3JjPS4uL21lZGlhLWZpbGUuanM+PC9zY3JpcHQ+
CisgICAgICAgIDxzY3JpcHQgc3JjPS4uL3ZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisgICAgICAg
IDxzY3JpcHQ+ICAgICAgICAgICAKKworICAgICAgICAgICAgdmFyIGN1ZXM7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIGZ1bmN0aW9uIGxvZ1NwZWNVUkwodXJsLCBkZXNjcmlwdGlvbikKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj48aT4iICsgZGVz
Y3JpcHRpb24gKyAiPC9pPiIpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGEgaHJl
Zj0iICsgdXJsICsgIj4iICsgdXJsICsgIjwiICsgIi9hPiIpOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBmdW5jdGlvbiB0cmFja0xvYWRlZCgpCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgdHJhY2sgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdGlvbnMnKTsKKyAg
ICAgICAgICAgICAgICBjdWVzID0gdHJhY2sudHJhY2suY3VlczsKKworICAgICAgICAgICAgICAg
IGNvbnNvbGVXcml0ZSgiKiogVGVzdCBpbml0aWFsIHZhbHVlcy4iKTsKKyAgICAgICAgICAgICAg
ICBydW4oInRleHRDdWUgPSBjdWVzLmdldEN1ZUJ5SWQoJzEnKSIpOworCisgICAgICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkKCJ0ZXh0Q3VlLnN0YXJ0VGltZSIsIDApOworICAgICAgICAgICAgICAg
IHRlc3RFeHBlY3RlZCgidGV4dEN1ZS5lbmRUaW1lIiwgMS4wKTsKKyAgICAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoInRleHRDdWUucGF1c2VPbkV4aXQiLCBmYWxzZSk7CisgICAgICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkKCJ0ZXh0Q3VlLmRpcmVjdGlvbiIsICJob3Jpem9udGFsIik7CisgICAg
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ0ZXh0Q3VlLnNuYXBUb0xpbmVzIiwgdHJ1ZSk7Cisg
ICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ0ZXh0Q3VlLmxpbmVQb3NpdGlvbiIsIC0xKTsK
KyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInRleHRDdWUudGV4dFBvc2l0aW9uIiwgNTAp
OworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidGV4dEN1ZS5zaXplIiwgMTAwKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInRleHRDdWUuYWxpZ25tZW50IiwgIm1pZGRsZSIp
OworCisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogTW9kaWZ5IGN1ZSB2YWx1
ZXMuIik7CisKKyAgICAgICAgICAgICAgICBydW4oInRleHRDdWUuc3RhcnRUaW1lID0gMS4xIik7
CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ0ZXh0Q3VlLnN0YXJ0VGltZSIsIDEuMSk7
CisKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgIHJ1
bigidGV4dEN1ZS5lbmRUaW1lID0gMy45Iik7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCJ0ZXh0Q3VlLmVuZFRpbWUiLCAzLjkpOworCisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRl
KCIiKTsKKyAgICAgICAgICAgICAgICBydW4oInRleHRDdWUucGF1c2VPbkV4aXQgPSB0cnVlIik7
CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ0ZXh0Q3VlLnBhdXNlT25FeGl0IiwgdHJ1
ZSk7CisKKyAgICAgICAgICAgICAgICBsb2dTcGVjVVJMKCJodHRwOi8vd3d3LndoYXR3Zy5vcmcv
c3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS90aGUtdmlkZW8tZWxlbWVudC5o
dG1sI2RvbS10ZXh0dHJhY2tjdWUtZGlyZWN0aW9uIiwgCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiT24gc2V0dGluZywgdGhlIHRleHQgdHJhY2sgY3VlIHdyaXRpbmcgZGlyZWN0aW9uIG11
c3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSAuLi4gaXMgYSBjYXNlLXNlbnNpdGl2ZSBtYXRjaCBmb3Ig
dGhlIG5ldyB2YWx1ZSwgaWYgYW55LiBJZiBub25lIG9mIHRoZSB2YWx1ZXMgbWF0Y2gsIHRoZW4g
dGhlIHVzZXIgYWdlbnQgbXVzdCBpbnN0ZWFkIHRocm93IGEgU3ludGF4RXJyb3IgZXhjZXB0aW9u
LiIpOworICAgICAgICAgICAgICAgIHRlc3RFeGNlcHRpb24oInRleHRDdWUuZGlyZWN0aW9uID0g
J1ZFUlRJQ0FMJyIsICJET01FeGNlcHRpb24uU1lOVEFYX0VSUiIpOworICAgICAgICAgICAgICAg
IHRlc3RFeHBlY3RlZCgidGV4dEN1ZS5kaXJlY3Rpb24iLCAiaG9yaXpvbnRhbCIpOworICAgICAg
ICAgICAgICAgIHJ1bigidGV4dEN1ZS5kaXJlY3Rpb24gPSAndmVydGljYWwnIik7CisgICAgICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCJ0ZXh0Q3VlLmRpcmVjdGlvbiIsICJ2ZXJ0aWNhbCIpOwor
CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICBydW4o
InRleHRDdWUuc25hcFRvTGluZXMgPSBmYWxzZSIpOworICAgICAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgidGV4dEN1ZS5zbmFwVG9MaW5lcyIsIGZhbHNlKTsKKworICAgICAgICAgICAgICAgIGxv
Z1NwZWNVUkwoImh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdv
cmsvbXVsdGlwYWdlL3RoZS12aWRlby1lbGVtZW50Lmh0bWwjZG9tLXRleHR0cmFja2N1ZS1saW5l
cG9zaXRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPbiBzZXR0aW5nLCBpZiB0
aGUgdGV4dCB0cmFjayBjdWUgc25hcC10by1saW5lcyBmbGFnIGlzIG5vdCBzZXQsIGFuZCB0aGUg
bmV3IHZhbHVlIGlzIG5lZ2F0aXZlIG9yIGdyZWF0ZXIgdGhhbiAxMDAsIHRoZW4gdGhyb3cgYW4g
SW5kZXhTaXplRXJyb3IgZXhjZXB0aW9uLiIpOworICAgICAgICAgICAgICAgIHRlc3RFeGNlcHRp
b24oInRleHRDdWUubGluZVBvc2l0aW9uID0gLTIiLCAiRE9NRXhjZXB0aW9uLklOREVYX1NJWkVf
RVJSIik7CisgICAgICAgICAgICAgICAgdGVzdEV4Y2VwdGlvbigidGV4dEN1ZS5saW5lUG9zaXRp
b24gPSAxMDIiLCAiRE9NRXhjZXB0aW9uLklOREVYX1NJWkVfRVJSIik7CisgICAgICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkKCJ0ZXh0Q3VlLmxpbmVQb3NpdGlvbiIsIC0xKTsKKyAgICAgICAgICAg
ICAgICBydW4oInRleHRDdWUubGluZVBvc2l0aW9uID0gNDIiKTsKKyAgICAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoInRleHRDdWUubGluZVBvc2l0aW9uIiwgNDIpOworICAgICAgICAgICAgICAg
IHJ1bigidGV4dEN1ZS5zbmFwVG9MaW5lcyA9IHRydWUiKTsKKyAgICAgICAgICAgICAgICBydW4o
InRleHRDdWUubGluZVBvc2l0aW9uID0gLTIiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoInRleHRDdWUubGluZVBvc2l0aW9uIiwgLTIpOworICAgICAgICAgICAgICAgIHJ1bigidGV4
dEN1ZS5saW5lUG9zaXRpb24gPSAxMDIiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
InRleHRDdWUubGluZVBvc2l0aW9uIiwgMTAyKTsKKworICAgICAgICAgICAgICAgIGxvZ1NwZWNV
UkwoImh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVs
dGlwYWdlL3RoZS12aWRlby1lbGVtZW50Lmh0bWwjZG9tLXRleHR0cmFja2N1ZS1saW5lcG9zaXRp
b24iLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJPbiBzZXR0aW5nLCBpZiB0aGUgbmV3
IHZhbHVlIGlzIG5lZ2F0aXZlIG9yIGdyZWF0ZXIgdGhhbiAxMDAsIHRoZW4gdGhyb3cgYW4gSW5k
ZXhTaXplRXJyb3IgZXhjZXB0aW9uLiBPdGhlcndpc2UsIHNldCB0aGUgdGV4dCB0cmFjayBjdWUg
dGV4dCBwb3NpdGlvbiB0byB0aGUgbmV3IHZhbHVlLiIpOworICAgICAgICAgICAgICAgIHRlc3RF
eGNlcHRpb24oInRleHRDdWUudGV4dFBvc2l0aW9uID0gLTIwMCIsICJET01FeGNlcHRpb24uSU5E
RVhfU0laRV9FUlIiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhjZXB0aW9uKCJ0ZXh0Q3VlLnRl
eHRQb3NpdGlvbiA9IDExMCIsICJET01FeGNlcHRpb24uSU5ERVhfU0laRV9FUlIiKTsKKyAgICAg
ICAgICAgICAgICBydW4oInRleHRDdWUudGV4dFBvc2l0aW9uID0gMTEiKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0RXhwZWN0ZWQoInRleHRDdWUudGV4dFBvc2l0aW9uIiwgMTEpOworCisgICAgICAg
ICAgICAgICAgbG9nU3BlY1VSTCgiaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBz
L2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNkb20tdGV4dHRy
YWNrY3VlLXNpemUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9uIHNldHRpbmcsIGlm
IHRoZSBuZXcgdmFsdWUgaXMgbmVnYXRpdmUgb3IgZ3JlYXRlciB0aGFuIDEwMCwgdGhlbiB0aHJv
dyBhbiBJbmRleFNpemVFcnJvciBleGNlcHRpb24uIE90aGVyd2lzZSwgc2V0IHRoZSB0ZXh0IHRy
YWNrIGN1ZSBzaXplIHRvIHRoZSBuZXcgdmFsdWUuIik7CisgICAgICAgICAgICAgICAgdGVzdEV4
Y2VwdGlvbigidGV4dEN1ZS5zaXplID0gLTIwMCIsICJET01FeGNlcHRpb24uSU5ERVhfU0laRV9F
UlIiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhjZXB0aW9uKCJ0ZXh0Q3VlLnNpemUgPSAxMTAi
LCAiRE9NRXhjZXB0aW9uLklOREVYX1NJWkVfRVJSIik7CisgICAgICAgICAgICAgICAgcnVuKCJ0
ZXh0Q3VlLnNpemUgPSA1NyIpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidGV4dEN1
ZS5zaXplIiwgNTcpOworCisgICAgICAgICAgICAgICAgbG9nU3BlY1VSTCgiaHR0cDovL3d3dy53
aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGhlLXZpZGVv
LWVsZW1lbnQuaHRtbCNkb20tdGV4dHRyYWNrY3VlLWFsaWdubWVudCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiT24gc2V0dGluZywgdGhlIHRleHQgdHJhY2sgY3VlIGFsaWdubWVudCBt
dXN0IGJlIHNldCB0byB0aGUgdmFsdWUgLi4uIGlzIGEgY2FzZS1zZW5zaXRpdmUgbWF0Y2ggZm9y
IHRoZSBuZXcgdmFsdWUsIGlmIGFueS4gSWYgbm9uZSBvZiB0aGUgdmFsdWVzIG1hdGNoLCB0aGVu
IHRoZSB1c2VyIGFnZW50IG11c3QgaW5zdGVhZCB0aHJvdyBhIFN5bnRheEVycm9yIGV4Y2VwdGlv
bi4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhjZXB0aW9uKCJ0ZXh0Q3VlLmFsaWdubWVudCA9
ICdFbmQnIiwgIkRPTUV4Y2VwdGlvbi5TWU5UQVhfRVJSIik7CisgICAgICAgICAgICAgICAgdGVz
dEV4cGVjdGVkKCJ0ZXh0Q3VlLmFsaWdubWVudCIsICJtaWRkbGUiKTsKKyAgICAgICAgICAgICAg
ICBydW4oInRleHRDdWUuYWxpZ25tZW50ID0gJ2VuZCciKTsKKyAgICAgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoInRleHRDdWUuYWxpZ25tZW50IiwgImVuZCIpOworCisgICAgICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAg
ICA8cD5UZXN0cyBtb2RpZnlpbmcgYXR0cmlidXRlcyBvZiBhIFRleHRUcmFja0N1ZTwvcD4KKyAg
ICAgICAgPHZpZGVvIGNvbnRyb2xzPgorICAgICAgICAgICAgPHRyYWNrIGlkPSJjYXB0aW9ucyIg
c3JjPSJjYXB0aW9ucy13ZWJ2dHQvY2FwdGlvbnMudnR0IiBraW5kPSJjYXB0aW9ucyIgb25sb2Fk
PSJ0cmFja0xvYWRlZCgpIiBkZWZhdWx0PgorICAgICAgICA8L3ZpZGVvPgorICAgIDwvYm9keT4K
KzwvaHRtbD4K
</data>
<flag name="review"
          id="121784"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>