<?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>67448</bug_id>
          
          <creation_ts>2011-09-01 15:41:54 -0700</creation_ts>
          <short_desc>[chromium] Code cleanup FIXME in Chromium recognizer</short_desc>
          <delta_ts>2011-09-01 17:31:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Robert Kroeger">rjkroege</reporter>
          <assigned_to name="Robert Kroeger">rjkroege</assigned_to>
          <cc>abarth</cc>
    
    <cc>varunjain</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>460858</commentid>
    <comment_count>0</comment_count>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2011-09-01 15:41:54 -0700</bug_when>
    <thetext>Address one code-cleanup FIXME in the  Chromium gesture recognizer and fix a bug for incorrectly set global positions on synthetic PlatformGestureEvent::ScrollUpdateType instances as discovered during the review of abandoned https://bugs.webkit.org/show_bug.cgi?id=66492</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460881</commentid>
    <comment_count>1</comment_count>
      <attachid>106054</attachid>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2011-09-01 16:07:32 -0700</bug_when>
    <thetext>Created attachment 106054
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460887</commentid>
    <comment_count>2</comment_count>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2011-09-01 16:11:19 -0700</bug_when>
    <thetext>Adam: would you be willing to review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460925</commentid>
    <comment_count>3</comment_count>
      <attachid>106054</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-01 16:50:52 -0700</bug_when>
    <thetext>Comment on attachment 106054
Patch

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460950</commentid>
    <comment_count>4</comment_count>
      <attachid>106054</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-01 17:31:05 -0700</bug_when>
    <thetext>Comment on attachment 106054
Patch

Clearing flags on attachment: 106054

Committed r94373: &lt;http://trac.webkit.org/changeset/94373&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460951</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-01 17:31:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106054</attachid>
            <date>2011-09-01 16:07:32 -0700</date>
            <delta_ts>2011-09-01 17:31:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67448-20110901190812.patch</filename>
            <type>text/plain</type>
            <size>34076</size>
            <attacher name="Robert Kroeger">rjkroege</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQzNTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyNmJkZWIxMzZjYzM3NDlj
NmJkYWZlNDI1OGEzY2ViNzI0ZDJlMjJkLi5jOWQ0YTA3NDc5ZTc5MDYxMzQzN2QyNzhiZTI5OTY4
YmUyMjFjMDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTEtMDktMDEgIFJvYmVy
dCBLcm9lZ2VyICA8cmprcm9lZ2VAY2hyb21pdW0ub3JnPgorCisgICAgICAgW2Nocm9taXVtXSBD
b2RlIGNsZWFudXAgRklYTUUgaW4gQ2hyb21pdW0gcmVjb2duaXplcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc0NDgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUV2ZW50KToKKyAg
ICAgICAgRml4ZWQgYSBidWcgbm90aWNlZCBieSBhIGJlbmphbWlucCB3aGlsZSByZXZpZXdpbmcg
YSBkaWZmZXJlbnQKKyAgICAgICAgbmRvbm5lZCBwYXRjaCB3aGVyZSBnbG9iYWwgcG9zaXRpb25z
IHdlcmUgbm90IGJlaW5nIHNldCBjb3JyZWN0bHkKKyAgICAgICAgb24gZ2VzdHVyZS1kcml2ZW4g
bW91c2Ugd2hlZWwgZXZlbnRzLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0dlc3R1cmVS
ZWNvZ25pemVyQ2hyb21pdW0uY3BwOgorICAgICAgICBDaGFuZ2VkIHN0YXRpYyBwZXItZWRnZSBm
dW5jdGlvbnMgaW50byBtZXRob2RzIGFuZCBpbXByb3ZlcworICAgICAgICBlbmNhcHN1bGF0aW9u
LiBObyBuZXcgZnVuY3Rpb25hbGl0eSBpcyBwcmVzZW50LgorICAgICAgICAoV2ViQ29yZTo6R2Vz
dHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bSk6CisgICAg
ICAgIChXZWJDb3JlOjpHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpyZXNldCk6CisgICAgICAg
IChXZWJDb3JlOjpHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjp+R2VzdHVyZVJlY29nbml6ZXJD
aHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjph
ZGRFZGdlRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZVJlY29nbml6ZXJDaHJv
bWl1bTo6aXNJbkNsaWNrVGltZVdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJlUmVj
b2duaXplckNocm9taXVtOjppc0luc2lkZU1hbmhhdHRhblNxdWFyZSk6CisgICAgICAgIChXZWJD
b3JlOjpHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjphcHBlbmRDbGlja0dlc3R1cmVFdmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpwcm9jZXNzVG91
Y2hFdmVudEZvckdlc3R1cmVzKToKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1cmVSZWNvZ25pemVy
Q2hyb21pdW06OmFwcGVuZFNjcm9sbEdlc3R1cmVCZWdpbik6CisgICAgICAgIChXZWJDb3JlOjpH
ZXN0dXJlUmVjb2duaXplckNocm9taXVtOjphcHBlbmRTY3JvbGxHZXN0dXJlRW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6Okdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OmFwcGVuZFNjcm9sbEdlc3R1
cmVVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6
dXBkYXRlVmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1cmVSZWNvZ25pemVyQ2hyb21p
dW06OnNpZ25hdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJlUmVjb2duaXplckNocm9t
aXVtOjp0b3VjaERvd24pOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZVJlY29nbml6ZXJDaHJv
bWl1bTo6c2Nyb2xsRW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1cmVSZWNvZ25pemVyQ2hy
b21pdW06Om5vR2VzdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJlUmVjb2duaXplckNo
cm9taXVtOjpjbGljayk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJlUmVjb2duaXplckNocm9t
aXVtOjppc0NsaWNrT3JTY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZVJlY29nbml6
ZXJDaHJvbWl1bTo6aW5TY3JvbGwpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0dlc3R1
cmVSZWNvZ25pemVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1cmVSZWNvZ25p
emVyQ2hyb21pdW06OnNldFN0YXRlKToKKwogMjAxMS0wOS0wMSAgS2VudGFybyBIYXJhICA8aGFy
YWtlbkBnb29nbGUuY29tPgogCiAgICAgICAgIEdlbmVyYXRlIGFuIFhTTFRQcm9jZXNzb3IgY29u
c3RydWN0b3Igb2YgVjggdXNpbmcgdGhlIElETCAnQ29uc3RydWN0b3InIGV4dGVuZGVkIGF0dHJp
YnV0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IGExZjFjZmM4OWIwMGQ0
MzZmNGI4NjcwODUwMTM4MzdkNDc2NDFkYjIuLjIxZWNmMzIwNzFkOGFmZDQ5OTE1NDkzZTNmNmIz
OWQzNmZjNDVjNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTIyMjIs
OCArMjIyMiw5IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3Qg
UGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKICAgICBjYXNlIFBsYXRmb3JtR2Vz
dHVyZUV2ZW50OjpTY3JvbGxVcGRhdGVUeXBlOiB7CiAgICAgICAgIGNvbnN0IGZsb2F0IHRpY2tE
aXZpc29yID0gKGZsb2F0KVdoZWVsRXZlbnQ6OnRpY2tNdWx0aXBsaWVyOwogICAgICAgICAvLyBG
SVhNRTogUmVwbGFjZSB0aGlzIGludGVyaW0gaW1wbGVtZW50YXRpb24gb25jZSB0aGUgYWJvdmUg
Zml4bWUgaGFzIGJlZW4gYWRkcmVzc2VkLgotICAgICAgICBJbnRQb2ludCBwb2ludChnZXN0dXJl
RXZlbnQucG9zaXRpb24oKS54KCkgKyBnZXN0dXJlRXZlbnQuZGVsdGFYKCksIGdlc3R1cmVFdmVu
dC5wb3NpdGlvbigpLnkoKSArIGdlc3R1cmVFdmVudC5kZWx0YVkoKSk7Ci0gICAgICAgIFBsYXRm
b3JtV2hlZWxFdmVudCBzeW50aGV0aWNXaGVlbEV2ZW50KHBvaW50LCBwb2ludCwgZ2VzdHVyZUV2
ZW50LmRlbHRhWCgpLCBnZXN0dXJlRXZlbnQuZGVsdGFZKCksIGdlc3R1cmVFdmVudC5kZWx0YVgo
KSAvIHRpY2tEaXZpc29yLCBnZXN0dXJlRXZlbnQuZGVsdGFZKCkgLyB0aWNrRGl2aXNvciwgU2Ny
b2xsQnlQaXhlbFdoZWVsRXZlbnQsIC8qIGlzQWNjZXB0ZWQgKi8gZmFsc2UsIGdlc3R1cmVFdmVu
dC5zaGlmdEtleSgpLCBnZXN0dXJlRXZlbnQuY3RybEtleSgpLCBnZXN0dXJlRXZlbnQuYWx0S2V5
KCksIGdlc3R1cmVFdmVudC5tZXRhS2V5KCkpOworICAgICAgICBJbnRQb2ludCBwb2ludChnZXN0
dXJlRXZlbnQucG9zaXRpb24oKS54KCksIGdlc3R1cmVFdmVudC5wb3NpdGlvbigpLnkoKSk7Cisg
ICAgICAgIEludFBvaW50IGdsb2JhbFBvaW50KGdlc3R1cmVFdmVudC5nbG9iYWxQb3NpdGlvbigp
LngoKSwgZ2VzdHVyZUV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueSgpKTsKKyAgICAgICAgUGxhdGZv
cm1XaGVlbEV2ZW50IHN5bnRoZXRpY1doZWVsRXZlbnQocG9pbnQsIGdsb2JhbFBvaW50LCBnZXN0
dXJlRXZlbnQuZGVsdGFYKCksIGdlc3R1cmVFdmVudC5kZWx0YVkoKSwgZ2VzdHVyZUV2ZW50LmRl
bHRhWCgpIC8gdGlja0Rpdmlzb3IsIGdlc3R1cmVFdmVudC5kZWx0YVkoKSAvIHRpY2tEaXZpc29y
LCBTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCwgLyogaXNBY2NlcHRlZCAqLyBmYWxzZSwgZ2VzdHVy
ZUV2ZW50LnNoaWZ0S2V5KCksIGdlc3R1cmVFdmVudC5jdHJsS2V5KCksIGdlc3R1cmVFdmVudC5h
bHRLZXkoKSwgZ2VzdHVyZUV2ZW50Lm1ldGFLZXkoKSk7CiAgICAgICAgIGhhbmRsZVdoZWVsRXZl
bnQoc3ludGhldGljV2hlZWxFdmVudCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlc3R1cmVSZWNvZ25p
emVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vR2VzdHVy
ZVJlY29nbml6ZXJDaHJvbWl1bS5jcHAKaW5kZXggMTdkYjViNTYzZmM2NjhlZTQxMjYyN2YxN2Q4
ZmMxNjYxNmM4ZjhjYS4uNzU2MDJiMzg0YTEyNDQ3OTBiNDEzYjg4ZDMyNTBkNjU3ZmJmNTc2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vR2VzdHVyZVJlY29n
bml6ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bS5jcHAKQEAgLTMxLDI3ICszMSwxNiBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW0uaCIKIAot
I2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgotI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxF
dmVudC5oIgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIEZJWE1FOiBDb252ZXJ0IHRvIG1l
dGhvZHMuCi1zdGF0aWMgYm9vbCBjbGljayhJbm5lckdlc3R1cmVSZWNvZ25pemVyKiwgY29uc3Qg
UGxhdGZvcm1Ub3VjaFBvaW50JiwgSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6R2VzdHVyZXMpOwot
c3RhdGljIGJvb2wgaXNDbGlja09yU2Nyb2xsKElubmVyR2VzdHVyZVJlY29nbml6ZXIqLCBjb25z
dCBQbGF0Zm9ybVRvdWNoUG9pbnQmLCBJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpHZXN0dXJlcyk7
Ci1zdGF0aWMgYm9vbCBpblNjcm9sbChJbm5lckdlc3R1cmVSZWNvZ25pemVyKiwgY29uc3QgUGxh
dGZvcm1Ub3VjaFBvaW50JiwgSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6R2VzdHVyZXMpOwotc3Rh
dGljIGJvb2wgc2Nyb2xsRW5kKElubmVyR2VzdHVyZVJlY29nbml6ZXIqLCBjb25zdCBQbGF0Zm9y
bVRvdWNoUG9pbnQmLCBJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpHZXN0dXJlcyk7Ci1zdGF0aWMg
Ym9vbCBub0dlc3R1cmUoSW5uZXJHZXN0dXJlUmVjb2duaXplciosIGNvbnN0IFBsYXRmb3JtVG91
Y2hQb2ludCYsIElubmVyR2VzdHVyZVJlY29nbml6ZXI6Okdlc3R1cmVzKTsKLXN0YXRpYyBib29s
IHRvdWNoRG93bihJbm5lckdlc3R1cmVSZWNvZ25pemVyKiwgY29uc3QgUGxhdGZvcm1Ub3VjaFBv
aW50JiwgSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6R2VzdHVyZXMpOwotCiAvLyBGSVhNRTogTWFr
ZSB0aGVzZSBjb25maWd1cmFibGUgcHJvZ3JhbW1hdGljYWxseS4KIHN0YXRpYyBjb25zdCBkb3Vi
bGUgbWF4aW11bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2sgPSAwLjg7CiBzdGF0
aWMgY29uc3QgZG91YmxlIG1pbmltdW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNr
ID0gMC4wMTsKIHN0YXRpYyBjb25zdCBpbnQgbWF4aW11bVRvdWNoTW92ZUluUGl4ZWxzRm9yQ2xp
Y2sgPSAyMDsKIAotSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6SW5uZXJHZXN0dXJlUmVjb2duaXpl
cigpCitHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpHZXN0dXJlUmVjb2duaXplckNocm9taXVt
KCkKICAgICA6IG1fZmlyc3RUb3VjaFRpbWUoMC4wKQotICAgICwgbV9zdGF0ZShJbm5lckdlc3R1
cmVSZWNvZ25pemVyOjpOb0dlc3R1cmUpCisgICAgLCBtX3N0YXRlKEdlc3R1cmVSZWNvZ25pemVy
Q2hyb21pdW06Ok5vR2VzdHVyZSkKICAgICAsIG1fbGFzdFRvdWNoVGltZSgwLjApCiAgICAgLCBt
X2N0cmxLZXkoZmFsc2UpCiAgICAgLCBtX2FsdEtleShmYWxzZSkKQEAgLTY1LDUwICs1NCw1MCBA
QCBJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpJbm5lckdlc3R1cmVSZWNvZ25pemVyKCkKICAgICBj
b25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlN0YXRlIFN0YXRpb25hcnkgPSBQbGF0Zm9ybVRvdWNo
UG9pbnQ6OlRvdWNoU3RhdGlvbmFyeTsKICAgICBjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlN0
YXRlIENhbmNlbGxlZCA9IFBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hDYW5jZWxsZWQ7CiAKLSAg
ICBhZGRFZGdlRnVuY3Rpb24oTm9HZXN0dXJlLCBGaXJzdEZpbmdlciwgUHJlc3NlZCwgZmFsc2Us
IHRvdWNoRG93bik7Ci0gICAgYWRkRWRnZUZ1bmN0aW9uKFBlbmRpbmdTeW50aGV0aWNDbGljaywg
Rmlyc3RGaW5nZXIsIENhbmNlbGxlZCwgZmFsc2UsIG5vR2VzdHVyZSk7Ci0gICAgYWRkRWRnZUZ1
bmN0aW9uKFBlbmRpbmdTeW50aGV0aWNDbGljaywgRmlyc3RGaW5nZXIsIFJlbGVhc2VkLCBmYWxz
ZSwgY2xpY2spOwotICAgIGFkZEVkZ2VGdW5jdGlvbihQZW5kaW5nU3ludGhldGljQ2xpY2ssIEZp
cnN0RmluZ2VyLCBNb3ZlZCwgZmFsc2UsIGlzQ2xpY2tPclNjcm9sbCk7Ci0gICAgYWRkRWRnZUZ1
bmN0aW9uKFBlbmRpbmdTeW50aGV0aWNDbGljaywgRmlyc3RGaW5nZXIsIFN0YXRpb25hcnksIGZh
bHNlLCBpc0NsaWNrT3JTY3JvbGwpOwotICAgIGFkZEVkZ2VGdW5jdGlvbihTY3JvbGwsIEZpcnN0
RmluZ2VyLCBNb3ZlZCwgZmFsc2UsIGluU2Nyb2xsKTsKLSAgICBhZGRFZGdlRnVuY3Rpb24oU2Ny
b2xsLCBGaXJzdEZpbmdlciwgUmVsZWFzZWQsIGZhbHNlLCBzY3JvbGxFbmQpOwotICAgIGFkZEVk
Z2VGdW5jdGlvbihTY3JvbGwsIEZpcnN0RmluZ2VyLCBDYW5jZWxsZWQsIGZhbHNlLCBzY3JvbGxF
bmQpOworICAgIGFkZEVkZ2VGdW5jdGlvbihOb0dlc3R1cmUsIEZpcnN0RmluZ2VyLCBQcmVzc2Vk
LCBmYWxzZSwgJkdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OnRvdWNoRG93bik7CisgICAgYWRk
RWRnZUZ1bmN0aW9uKFBlbmRpbmdTeW50aGV0aWNDbGljaywgRmlyc3RGaW5nZXIsIENhbmNlbGxl
ZCwgZmFsc2UsICZHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpub0dlc3R1cmUpOworICAgIGFk
ZEVkZ2VGdW5jdGlvbihQZW5kaW5nU3ludGhldGljQ2xpY2ssIEZpcnN0RmluZ2VyLCBSZWxlYXNl
ZCwgZmFsc2UsICZHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpjbGljayk7CisgICAgYWRkRWRn
ZUZ1bmN0aW9uKFBlbmRpbmdTeW50aGV0aWNDbGljaywgRmlyc3RGaW5nZXIsIE1vdmVkLCBmYWxz
ZSwgJkdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OmlzQ2xpY2tPclNjcm9sbCk7CisgICAgYWRk
RWRnZUZ1bmN0aW9uKFBlbmRpbmdTeW50aGV0aWNDbGljaywgRmlyc3RGaW5nZXIsIFN0YXRpb25h
cnksIGZhbHNlLCAmR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6aXNDbGlja09yU2Nyb2xsKTsK
KyAgICBhZGRFZGdlRnVuY3Rpb24oU2Nyb2xsLCBGaXJzdEZpbmdlciwgTW92ZWQsIGZhbHNlLCAm
R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6aW5TY3JvbGwpOworICAgIGFkZEVkZ2VGdW5jdGlv
bihTY3JvbGwsIEZpcnN0RmluZ2VyLCBSZWxlYXNlZCwgZmFsc2UsICZHZXN0dXJlUmVjb2duaXpl
ckNocm9taXVtOjpzY3JvbGxFbmQpOworICAgIGFkZEVkZ2VGdW5jdGlvbihTY3JvbGwsIEZpcnN0
RmluZ2VyLCBDYW5jZWxsZWQsIGZhbHNlLCAmR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6c2Ny
b2xsRW5kKTsKIH0KIAotdm9pZCBJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpyZXNldCgpCit2b2lk
IEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OnJlc2V0KCkKIHsKICAgICBtX2ZpcnN0VG91Y2hU
aW1lID0gMC4wOwotICAgIG1fc3RhdGUgPSBJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpOb0dlc3R1
cmU7CisgICAgbV9zdGF0ZSA9IEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06Ok5vR2VzdHVyZTsK
ICAgICBtX2xhc3RUb3VjaFRpbWUgPSAwLjA7CiB9CiAKLUlubmVyR2VzdHVyZVJlY29nbml6ZXI6
On5Jbm5lckdlc3R1cmVSZWNvZ25pemVyKCkKK0dlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06On5H
ZXN0dXJlUmVjb2duaXplckNocm9taXVtKCkKIHsKIH0KIAotdm9pZCBJbm5lckdlc3R1cmVSZWNv
Z25pemVyOjphZGRFZGdlRnVuY3Rpb24oU3RhdGUgc3RhdGUsIHVuc2lnbmVkIGZpbmdlcklkLCBQ
bGF0Zm9ybVRvdWNoUG9pbnQ6OlN0YXRlIHRvdWNoVHlwZSwgYm9vbCB0b3VjaEhhbmRsZWRCeUph
dmFTY3JpcHQsIEdlc3R1cmVUcmFuc2l0aW9uRnVuY3Rpb24gdHJhbnNpdGlvbkZ1bmN0aW9uKQor
dm9pZCBHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjphZGRFZGdlRnVuY3Rpb24oU3RhdGUgc3Rh
dGUsIHVuc2lnbmVkIGZpbmdlcklkLCBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlN0YXRlIHRvdWNoVHlw
ZSwgYm9vbCB0b3VjaEhhbmRsZWRCeUphdmFTY3JpcHQsIEdlc3R1cmVUcmFuc2l0aW9uRnVuY3Rp
b24gdHJhbnNpdGlvbkZ1bmN0aW9uKQogewogICAgIG1fZWRnZUZ1bmN0aW9ucy5hZGQoc2lnbmF0
dXJlKHN0YXRlLCBmaW5nZXJJZCwgdG91Y2hUeXBlLCB0b3VjaEhhbmRsZWRCeUphdmFTY3JpcHQp
LCB0cmFuc2l0aW9uRnVuY3Rpb24pOwogfQogCi1ib29sIElubmVyR2VzdHVyZVJlY29nbml6ZXI6
OmlzSW5DbGlja1RpbWVXaW5kb3coKQorYm9vbCBHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpp
c0luQ2xpY2tUaW1lV2luZG93KCkKIHsKICAgICBkb3VibGUgZHVyYXRpb24obV9sYXN0VG91Y2hU
aW1lIC0gbV9maXJzdFRvdWNoVGltZSk7CiAgICAgcmV0dXJuIGR1cmF0aW9uID49IG1pbmltdW1U
b3VjaERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrICYmIGR1cmF0aW9uIDwgbWF4aW11bVRv
dWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2s7CiB9CiAKLWJvb2wgSW5uZXJHZXN0dXJl
UmVjb2duaXplcjo6aXNJbnNpZGVNYW5oYXR0YW5TcXVhcmUoY29uc3QgUGxhdGZvcm1Ub3VjaFBv
aW50JiBwb2ludCkKK2Jvb2wgR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6aXNJbnNpZGVNYW5o
YXR0YW5TcXVhcmUoY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiBwb2ludCkKIHsKICAgICBpbnQg
bWFuaGF0dGFuRGlzdGFuY2UgPSBhYnMocG9pbnQucG9zKCkueCgpIC0gbV9maXJzdFRvdWNoUG9z
aXRpb24ueCgpKSArIGFicyhwb2ludC5wb3MoKS55KCkgLSBtX2ZpcnN0VG91Y2hQb3NpdGlvbi55
KCkpOwogICAgIHJldHVybiBtYW5oYXR0YW5EaXN0YW5jZSA8IG1heGltdW1Ub3VjaE1vdmVJblBp
eGVsc0ZvckNsaWNrOwogfQogCi12b2lkIElubmVyR2VzdHVyZVJlY29nbml6ZXI6OmFwcGVuZENs
aWNrR2VzdHVyZUV2ZW50KGNvbnN0IFBsYXRmb3JtVG91Y2hQb2ludCYgdG91Y2hQb2ludCwgSW5u
ZXJHZXN0dXJlUmVjb2duaXplcjo6R2VzdHVyZXMgZ2VzdHVyZXMpCit2b2lkIEdlc3R1cmVSZWNv
Z25pemVyQ2hyb21pdW06OmFwcGVuZENsaWNrR2VzdHVyZUV2ZW50KGNvbnN0IFBsYXRmb3JtVG91
Y2hQb2ludCYgdG91Y2hQb2ludCwgR2VzdHVyZXMgZ2VzdHVyZXMpCiB7Ci0gICAgZ2VzdHVyZXMt
PmFwcGVuZChQbGF0Zm9ybUdlc3R1cmVFdmVudChQbGF0Zm9ybUdlc3R1cmVFdmVudDo6VGFwVHlw
ZSwgdG91Y2hQb2ludC5wb3MoKSwgdG91Y2hQb2ludC5zY3JlZW5Qb3MoKSwgbV9sYXN0VG91Y2hU
aW1lLCAwLjBmLCAwLjBmLCBtX3NoaWZ0S2V5LCBtX2N0cmxLZXksIG1fYWx0S2V5LCBtX21ldGFL
ZXkpKTsKKyAgICBnZXN0dXJlcy0+YXBwZW5kKFBsYXRmb3JtR2VzdHVyZUV2ZW50KFBsYXRmb3Jt
R2VzdHVyZUV2ZW50OjpUYXBUeXBlLCBtX2ZpcnN0VG91Y2hQb3NpdGlvbiwgbV9maXJzdFRvdWNo
U2NyZWVuUG9zaXRpb24sIG1fbGFzdFRvdWNoVGltZSwgMC5mLCAwLmYsIG1fc2hpZnRLZXksIG1f
Y3RybEtleSwgbV9hbHRLZXksIG1fbWV0YUtleSkpOwogfQogCi1QbGF0Zm9ybUdlc3R1cmVSZWNv
Z25pemVyOjpQYXNzR2VzdHVyZXMgSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6cHJvY2Vzc1RvdWNo
RXZlbnRGb3JHZXN0dXJlcyhjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmIGV2ZW50LCBib29sIGRl
ZmF1bHRQcmV2ZW50ZWQpCitQbGF0Zm9ybUdlc3R1cmVSZWNvZ25pemVyOjpQYXNzR2VzdHVyZXMg
R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6cHJvY2Vzc1RvdWNoRXZlbnRGb3JHZXN0dXJlcyhj
b25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmIGV2ZW50LCBib29sIGRlZmF1bHRQcmV2ZW50ZWQpCiB7
CiAgICAgbV9jdHJsS2V5ID0gZXZlbnQuY3RybEtleSgpOwogICAgIG1fYWx0S2V5ID0gZXZlbnQu
YWx0S2V5KCk7CkBAIC0xMjIsMzggKzExMSwzNyBAQCBQbGF0Zm9ybUdlc3R1cmVSZWNvZ25pemVy
OjpQYXNzR2VzdHVyZXMgSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6cHJvY2Vzc1RvdWNoRXZlbgog
ICAgICAgICB1cGRhdGVWYWx1ZXMoZXZlbnQudGltZXN0YW1wKCksIHApOwogCiAgICAgICAgIGlm
IChHZXN0dXJlVHJhbnNpdGlvbkZ1bmN0aW9uIGVmID0gbV9lZGdlRnVuY3Rpb25zLmdldChzaWdu
YXR1cmUobV9zdGF0ZSwgcC5pZCgpLCBwLnN0YXRlKCksIGRlZmF1bHRQcmV2ZW50ZWQpKSkKLSAg
ICAgICAgICAgICgqZWYpKHRoaXMsIHAsIGdlc3R1cmVzLmdldCgpKTsKKyAgICAgICAgICAgICgo
KnRoaXMpLiplZikocCwgZ2VzdHVyZXMuZ2V0KCkpOwogICAgIH0KICAgICByZXR1cm4gZ2VzdHVy
ZXMucmVsZWFzZSgpOwogfQogCi12b2lkIElubmVyR2VzdHVyZVJlY29nbml6ZXI6OmFwcGVuZFNj
cm9sbEdlc3R1cmVCZWdpbihjb25zdCBJbnRQb2ludCYgdG91Y2hQb2ludCwgR2VzdHVyZXMgZ2Vz
dHVyZXMpCit2b2lkIEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OmFwcGVuZFNjcm9sbEdlc3R1
cmVCZWdpbihjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmIHRvdWNoUG9pbnQsIEdlc3R1cmVzIGdl
c3R1cmVzKQogewotICAgIGdlc3R1cmVzLT5hcHBlbmQoUGxhdGZvcm1HZXN0dXJlRXZlbnQoUGxh
dGZvcm1HZXN0dXJlRXZlbnQ6OlNjcm9sbEJlZ2luVHlwZSwgdG91Y2hQb2ludCwgdG91Y2hQb2lu
dCwgbV9sYXN0VG91Y2hUaW1lLCAwLjBmLCAwLjBmLCBtX3NoaWZ0S2V5LCBtX2N0cmxLZXksIG1f
YWx0S2V5LCBtX21ldGFLZXkpKTsKLSAgICBtX2ZpcnN0VG91Y2hQb3NpdGlvbiA9IHRvdWNoUG9p
bnQ7Ci0gICAgbV9sYXN0VG91Y2hQb3NpdGlvbiA9IG1fZmlyc3RUb3VjaFBvc2l0aW9uOworICAg
IGdlc3R1cmVzLT5hcHBlbmQoUGxhdGZvcm1HZXN0dXJlRXZlbnQoUGxhdGZvcm1HZXN0dXJlRXZl
bnQ6OlNjcm9sbEJlZ2luVHlwZSwgdG91Y2hQb2ludC5wb3MoKSwgdG91Y2hQb2ludC5zY3JlZW5Q
b3MoKSwgbV9sYXN0VG91Y2hUaW1lLCAwLmYsIDAuZiwgbV9zaGlmdEtleSwgbV9jdHJsS2V5LCBt
X2FsdEtleSwgbV9tZXRhS2V5KSk7CiB9CiAKLXZvaWQgSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6
YXBwZW5kU2Nyb2xsR2VzdHVyZUVuZChjb25zdCBJbnRQb2ludCYgdG91Y2hQb2ludCwgR2VzdHVy
ZXMgZ2VzdHVyZXMpCit2b2lkIEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OmFwcGVuZFNjcm9s
bEdlc3R1cmVFbmQoY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiB0b3VjaFBvaW50LCBHZXN0dXJl
cyBnZXN0dXJlcykKIHsKLSAgICBnZXN0dXJlcy0+YXBwZW5kKFBsYXRmb3JtR2VzdHVyZUV2ZW50
KFBsYXRmb3JtR2VzdHVyZUV2ZW50OjpTY3JvbGxFbmRUeXBlLCBtX2ZpcnN0VG91Y2hQb3NpdGlv
biwgbV9maXJzdFRvdWNoUG9zaXRpb24sIG1fbGFzdFRvdWNoVGltZSwgMC4wZiwgMC4wZiwgbV9z
aGlmdEtleSwgbV9jdHJsS2V5LCBtX2FsdEtleSwgbV9tZXRhS2V5KSk7CisgICAgZ2VzdHVyZXMt
PmFwcGVuZChQbGF0Zm9ybUdlc3R1cmVFdmVudChQbGF0Zm9ybUdlc3R1cmVFdmVudDo6U2Nyb2xs
RW5kVHlwZSwgdG91Y2hQb2ludC5wb3MoKSwgdG91Y2hQb2ludC5zY3JlZW5Qb3MoKSwgbV9sYXN0
VG91Y2hUaW1lLCAwLmYsIDAuZiwgbV9zaGlmdEtleSwgbV9jdHJsS2V5LCBtX2FsdEtleSwgbV9t
ZXRhS2V5KSk7CiB9CiAKLXZvaWQgSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6YXBwZW5kU2Nyb2xs
R2VzdHVyZVVwZGF0ZShjb25zdCBJbnRQb2ludCYgdG91Y2hQb2ludCwgR2VzdHVyZXMgZ2VzdHVy
ZXMpCit2b2lkIEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OmFwcGVuZFNjcm9sbEdlc3R1cmVV
cGRhdGUoY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiB0b3VjaFBvaW50LCBHZXN0dXJlcyBnZXN0
dXJlcykKIHsKLSAgICBmbG9hdCBkZWx0YVgodG91Y2hQb2ludC54KCkgLSBtX2xhc3RUb3VjaFBv
c2l0aW9uLngoKSk7Ci0gICAgZmxvYXQgZGVsdGFZKHRvdWNoUG9pbnQueSgpIC0gbV9sYXN0VG91
Y2hQb3NpdGlvbi55KCkpOworICAgIGZsb2F0IGRlbHRhWCh0b3VjaFBvaW50LnBvcygpLngoKSAt
IG1fZmlyc3RUb3VjaFBvc2l0aW9uLngoKSk7CisgICAgZmxvYXQgZGVsdGFZKHRvdWNoUG9pbnQu
cG9zKCkueSgpIC0gbV9maXJzdFRvdWNoUG9zaXRpb24ueSgpKTsKIAotICAgIGdlc3R1cmVzLT5h
cHBlbmQoUGxhdGZvcm1HZXN0dXJlRXZlbnQoUGxhdGZvcm1HZXN0dXJlRXZlbnQ6OlNjcm9sbFVw
ZGF0ZVR5cGUsIG1fZmlyc3RUb3VjaFBvc2l0aW9uLCBtX2ZpcnN0VG91Y2hQb3NpdGlvbiwgbV9s
YXN0VG91Y2hUaW1lLCBkZWx0YVgsIGRlbHRhWSwgbV9zaGlmdEtleSwgbV9jdHJsS2V5LCBtX2Fs
dEtleSwgbV9tZXRhS2V5KSk7Ci0gICAgbV9sYXN0VG91Y2hQb3NpdGlvbiA9IHRvdWNoUG9pbnQ7
CisgICAgZ2VzdHVyZXMtPmFwcGVuZChQbGF0Zm9ybUdlc3R1cmVFdmVudChQbGF0Zm9ybUdlc3R1
cmVFdmVudDo6U2Nyb2xsVXBkYXRlVHlwZSwgdG91Y2hQb2ludC5wb3MoKSwgdG91Y2hQb2ludC5z
Y3JlZW5Qb3MoKSwgbV9sYXN0VG91Y2hUaW1lLCBkZWx0YVgsIGRlbHRhWSwgbV9zaGlmdEtleSwg
bV9jdHJsS2V5LCBtX2FsdEtleSwgbV9tZXRhS2V5KSk7CisgICAgbV9maXJzdFRvdWNoUG9zaXRp
b24gPSB0b3VjaFBvaW50LnBvcygpOwogfQogCi12b2lkIElubmVyR2VzdHVyZVJlY29nbml6ZXI6
OnVwZGF0ZVZhbHVlcyhjb25zdCBkb3VibGUgdG91Y2hUaW1lLCBjb25zdCBQbGF0Zm9ybVRvdWNo
UG9pbnQmIHRvdWNoUG9pbnQpCit2b2lkIEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OnVwZGF0
ZVZhbHVlcyhjb25zdCBkb3VibGUgdG91Y2hUaW1lLCBjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQm
IHRvdWNoUG9pbnQpCiB7CiAgICAgbV9sYXN0VG91Y2hUaW1lID0gdG91Y2hUaW1lOwogICAgIGlm
IChzdGF0ZSgpID09IE5vR2VzdHVyZSkgewogICAgICAgICBtX2ZpcnN0VG91Y2hUaW1lID0gdG91
Y2hUaW1lOwogICAgICAgICBtX2ZpcnN0VG91Y2hQb3NpdGlvbiA9IHRvdWNoUG9pbnQucG9zKCk7
CisgICAgICAgIG1fZmlyc3RUb3VjaFNjcmVlblBvc2l0aW9uID0gdG91Y2hQb2ludC5zY3JlZW5Q
b3MoKTsKICAgICB9CiB9CiAKQEAgLTE2Myw2MCArMTUxLDYyIEBAIHZvaWQgSW5uZXJHZXN0dXJl
UmVjb2duaXplcjo6dXBkYXRlVmFsdWVzKGNvbnN0IGRvdWJsZSB0b3VjaFRpbWUsIGNvbnN0IFBs
YXRmb3JtCiAvLyAxIGJpdCBmb3IgfGhhbmRsZWR8CiAvLyAxMiBiaXRzIGZvciB8aWR8CiAvLyAx
NSBiaXRzIGZvciB0aGUgfGdlc3R1cmVTdGF0ZXwuCi11bnNpZ25lZCBpbnQgSW5uZXJHZXN0dXJl
UmVjb2duaXplcjo6c2lnbmF0dXJlKFN0YXRlIGdlc3R1cmVTdGF0ZSwgdW5zaWduZWQgaWQsIFBs
YXRmb3JtVG91Y2hQb2ludDo6U3RhdGUgdG91Y2hUeXBlLCBib29sIGhhbmRsZWQpCit1bnNpZ25l
ZCBpbnQgR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6c2lnbmF0dXJlKFN0YXRlIGdlc3R1cmVT
dGF0ZSwgdW5zaWduZWQgaWQsIFBsYXRmb3JtVG91Y2hQb2ludDo6U3RhdGUgdG91Y2hUeXBlLCBi
b29sIGhhbmRsZWQpCiB7CiAgICAgQVNTRVJUKChpZCAmIDB4ZmZmKSA9PSBpZCk7CiAgICAgcmV0
dXJuIDEgKyAoKHRvdWNoVHlwZSAmIDB4NykgPDwgMSB8IChoYW5kbGVkID8gMSA8PCA0IDogMCkg
fCAoKGlkICYgMHhmZmYpIDw8IDUgKSB8IChnZXN0dXJlU3RhdGUgPDwgMTcpKTsKIH0KIAotc3Rh
dGljIGJvb2wgdG91Y2hEb3duKElubmVyR2VzdHVyZVJlY29nbml6ZXIqIGdlc3R1cmVSZWNvZ25p
emVyLCBjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmLCBJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpH
ZXN0dXJlcyBnZXN0dXJlcykKK2Jvb2wgR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6dG91Y2hE
b3duKGNvbnN0IFBsYXRmb3JtVG91Y2hQb2ludCYgdG91Y2hQb2ludCwgR2VzdHVyZXMgZ2VzdHVy
ZXMpCiB7Ci0gICAgZ2VzdHVyZVJlY29nbml6ZXItPnNldFN0YXRlKElubmVyR2VzdHVyZVJlY29n
bml6ZXI6OlBlbmRpbmdTeW50aGV0aWNDbGljayk7CisgICAgc2V0U3RhdGUoUGVuZGluZ1N5bnRo
ZXRpY0NsaWNrKTsKKyAgICAvLyBGSVhNRTogRGl2aWRlIFRhcFR5cGUgaW50byBkb3duIGFuZCB1
cCBldmVudHMuCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgYm9vbCBzY3JvbGxFbmQo
SW5uZXJHZXN0dXJlUmVjb2duaXplciogZ2VzdHVyZVJlY29nbml6ZXIsIGNvbnN0IFBsYXRmb3Jt
VG91Y2hQb2ludCYgcG9pbnQsIElubmVyR2VzdHVyZVJlY29nbml6ZXI6Okdlc3R1cmVzIGdlc3R1
cmVzKQorYm9vbCBHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpzY3JvbGxFbmQoY29uc3QgUGxh
dGZvcm1Ub3VjaFBvaW50JiBwb2ludCwgR2VzdHVyZXMgZ2VzdHVyZXMpCiB7Ci0gICAgZ2VzdHVy
ZVJlY29nbml6ZXItPmFwcGVuZFNjcm9sbEdlc3R1cmVFbmQocG9pbnQucG9zKCksIGdlc3R1cmVz
KTsKLSAgICBnZXN0dXJlUmVjb2duaXplci0+c2V0U3RhdGUoSW5uZXJHZXN0dXJlUmVjb2duaXpl
cjo6Tm9HZXN0dXJlKTsKKyAgICBhcHBlbmRTY3JvbGxHZXN0dXJlRW5kKHBvaW50LCBnZXN0dXJl
cyk7CisgICAgc2V0U3RhdGUoTm9HZXN0dXJlKTsKKyAgICByZXNldCgpOwogICAgIHJldHVybiBm
YWxzZTsKIH0KIAotc3RhdGljIGJvb2wgbm9HZXN0dXJlKElubmVyR2VzdHVyZVJlY29nbml6ZXIq
IGdlc3R1cmVSZWNvZ25pemVyLCBjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmLCBJbm5lckdlc3R1
cmVSZWNvZ25pemVyOjpHZXN0dXJlcyBnZXN0dXJlcykKK2Jvb2wgR2VzdHVyZVJlY29nbml6ZXJD
aHJvbWl1bTo6bm9HZXN0dXJlKGNvbnN0IFBsYXRmb3JtVG91Y2hQb2ludCYsIEdlc3R1cmVzKQog
ewotICAgIGdlc3R1cmVSZWNvZ25pemVyLT5yZXNldCgpOworICAgIHJlc2V0KCk7CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgYm9vbCBjbGljayhJbm5lckdlc3R1cmVSZWNvZ25pemVy
KiBnZXN0dXJlUmVjb2duaXplciwgY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiBwb2ludCwgSW5u
ZXJHZXN0dXJlUmVjb2duaXplcjo6R2VzdHVyZXMgZ2VzdHVyZXMpCitib29sIEdlc3R1cmVSZWNv
Z25pemVyQ2hyb21pdW06OmNsaWNrKGNvbnN0IFBsYXRmb3JtVG91Y2hQb2ludCYgcG9pbnQsIEdl
c3R1cmVzIGdlc3R1cmVzKQogewotICAgIGlmIChnZXN0dXJlUmVjb2duaXplci0+aXNJbkNsaWNr
VGltZVdpbmRvdygpICYmIGdlc3R1cmVSZWNvZ25pemVyLT5pc0luc2lkZU1hbmhhdHRhblNxdWFy
ZShwb2ludCkpIHsKLSAgICAgICAgZ2VzdHVyZVJlY29nbml6ZXItPnNldFN0YXRlKElubmVyR2Vz
dHVyZVJlY29nbml6ZXI6Ok5vR2VzdHVyZSk7Ci0gICAgICAgIGdlc3R1cmVSZWNvZ25pemVyLT5h
cHBlbmRDbGlja0dlc3R1cmVFdmVudChwb2ludCwgZ2VzdHVyZXMpOworICAgIGlmIChpc0luQ2xp
Y2tUaW1lV2luZG93KCkgJiYgaXNJbnNpZGVNYW5oYXR0YW5TcXVhcmUocG9pbnQpKSB7CisgICAg
ICAgIHNldFN0YXRlKE5vR2VzdHVyZSk7CisgICAgICAgIGFwcGVuZENsaWNrR2VzdHVyZUV2ZW50
KHBvaW50LCBnZXN0dXJlcyk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1
cm4gbm9HZXN0dXJlKGdlc3R1cmVSZWNvZ25pemVyLCBwb2ludCwgZ2VzdHVyZXMpOworICAgIHJl
dHVybiBub0dlc3R1cmUocG9pbnQsIGdlc3R1cmVzKTsKIH0KIAotc3RhdGljIGJvb2wgaXNDbGlj
a09yU2Nyb2xsKElubmVyR2VzdHVyZVJlY29nbml6ZXIqIGdlc3R1cmVSZWNvZ25pemVyLCBjb25z
dCBQbGF0Zm9ybVRvdWNoUG9pbnQmIHBvaW50LCBJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpHZXN0
dXJlcyBnZXN0dXJlcykKK2Jvb2wgR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6aXNDbGlja09y
U2Nyb2xsKGNvbnN0IFBsYXRmb3JtVG91Y2hQb2ludCYgcG9pbnQsIEdlc3R1cmVzIGdlc3R1cmVz
KQogewotICAgIGlmIChnZXN0dXJlUmVjb2duaXplci0+aXNJbkNsaWNrVGltZVdpbmRvdygpICYm
IGdlc3R1cmVSZWNvZ25pemVyLT5pc0luc2lkZU1hbmhhdHRhblNxdWFyZShwb2ludCkpIHsKLSAg
ICAgICAgZ2VzdHVyZVJlY29nbml6ZXItPnNldFN0YXRlKElubmVyR2VzdHVyZVJlY29nbml6ZXI6
OlBlbmRpbmdTeW50aGV0aWNDbGljayk7CisgICAgaWYgKGlzSW5DbGlja1RpbWVXaW5kb3coKSAm
JiBpc0luc2lkZU1hbmhhdHRhblNxdWFyZShwb2ludCkpIHsKKyAgICAgICAgc2V0U3RhdGUoR2Vz
dHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6UGVuZGluZ1N5bnRoZXRpY0NsaWNrKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGlmIChwb2ludC5zdGF0ZSgpID09IFBsYXRmb3Jt
VG91Y2hQb2ludDo6VG91Y2hNb3ZlZCAmJiAhZ2VzdHVyZVJlY29nbml6ZXItPmlzSW5zaWRlTWFu
aGF0dGFuU3F1YXJlKHBvaW50KSkgewotICAgICAgICBnZXN0dXJlUmVjb2duaXplci0+YXBwZW5k
U2Nyb2xsR2VzdHVyZUJlZ2luKGdlc3R1cmVSZWNvZ25pemVyLT5maXJzdFRvdWNoUG9zaXRpb24o
KSwgZ2VzdHVyZXMpOwotICAgICAgICBnZXN0dXJlUmVjb2duaXplci0+YXBwZW5kU2Nyb2xsR2Vz
dHVyZVVwZGF0ZShwb2ludC5wb3MoKSwgZ2VzdHVyZXMpOwotICAgICAgICBnZXN0dXJlUmVjb2du
aXplci0+c2V0U3RhdGUoSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6U2Nyb2xsKTsKKyAgICBpZiAo
cG9pbnQuc3RhdGUoKSA9PSBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoTW92ZWQgJiYgIWlzSW5z
aWRlTWFuaGF0dGFuU3F1YXJlKHBvaW50KSkgeworICAgICAgICBhcHBlbmRTY3JvbGxHZXN0dXJl
QmVnaW4ocG9pbnQsIGdlc3R1cmVzKTsKKyAgICAgICAgYXBwZW5kU2Nyb2xsR2VzdHVyZVVwZGF0
ZShwb2ludCwgZ2VzdHVyZXMpOworICAgICAgICBzZXRTdGF0ZShTY3JvbGwpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgYm9vbCBp
blNjcm9sbChJbm5lckdlc3R1cmVSZWNvZ25pemVyKiBnZXN0dXJlUmVjb2duaXplciwgY29uc3Qg
UGxhdGZvcm1Ub3VjaFBvaW50JiBwb2ludCwgSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6R2VzdHVy
ZXMgZ2VzdHVyZXMpCitib29sIEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OmluU2Nyb2xsKGNv
bnN0IFBsYXRmb3JtVG91Y2hQb2ludCYgcG9pbnQsIEdlc3R1cmVzIGdlc3R1cmVzKQogewotICAg
IGdlc3R1cmVSZWNvZ25pemVyLT5hcHBlbmRTY3JvbGxHZXN0dXJlVXBkYXRlKHBvaW50LnBvcygp
LCBnZXN0dXJlcyk7CisgICAgYXBwZW5kU2Nyb2xsR2VzdHVyZVVwZGF0ZShwb2ludCwgZ2VzdHVy
ZXMpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0yMzQsMjMgKzIyNCw0IEBAIFBsYXRmb3Jt
R2VzdHVyZVJlY29nbml6ZXI6On5QbGF0Zm9ybUdlc3R1cmVSZWNvZ25pemVyKCkKIHsKIH0KIAot
R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bSgpCi0g
ICAgOiBtX2lubmVyR2VzdHVyZVJlY29nbml6ZXIoKQotewotfQotCi1HZXN0dXJlUmVjb2duaXpl
ckNocm9taXVtOjp+R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bSgpCi17Ci19Ci0KLVBsYXRmb3Jt
R2VzdHVyZVJlY29nbml6ZXI6OlBhc3NHZXN0dXJlcyBHZXN0dXJlUmVjb2duaXplckNocm9taXVt
Ojpwcm9jZXNzVG91Y2hFdmVudEZvckdlc3R1cmVzKGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYg
dG91Y2hFdmVudCwgYm9vbCBkZWZhdWx0UHJldmVudGVkKQotewotICAgIHJldHVybiBtX2lubmVy
R2VzdHVyZVJlY29nbml6ZXIucHJvY2Vzc1RvdWNoRXZlbnRGb3JHZXN0dXJlcyh0b3VjaEV2ZW50
LCBkZWZhdWx0UHJldmVudGVkKTsKLX0KLQotdm9pZCBHZXN0dXJlUmVjb2duaXplckNocm9taXVt
OjpyZXNldCgpCi17Ci0gICAgbV9pbm5lckdlc3R1cmVSZWNvZ25pemVyLnJlc2V0KCk7Ci19Ci0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL0dlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL0dlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW0uaAppbmRleCBmZDQ2
ZmU3OTBjNmYzMDcwNTg0N2RhNmUxNDk0NWIzMGE2Y2EyZWU2Li42ZDU2Y2Q1YzI5MGM3NGM2ZmNl
MjZjODIyZjhjNWZlZjM5NjA0N2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9HZXN0dXJlUmVjb2duaXplckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bS5oCkBAIC0zNCwx
NCArMzQsMTYgQEAKICNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1cmVSZWNvZ25pemVyLmgiCiAKICNp
bmNsdWRlICJQbGF0Zm9ybVRvdWNoRXZlbnQuaCIKLSNpbmNsdWRlICJUb3VjaEV2ZW50LmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1Ub3VjaFBvaW50LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
IAorY2xhc3MgSW5zcGVjdGFibGVHZXN0dXJlUmVjb2duaXplckNocm9taXVtOworCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFBsYXRmb3JtR2VzdHVyZUV2ZW50OwogCi1jbGFzcyBJbm5l
ckdlc3R1cmVSZWNvZ25pemVyIHsKK2NsYXNzIEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW0gOiBw
dWJsaWMgUGxhdGZvcm1HZXN0dXJlUmVjb2duaXplciAgewogcHVibGljOgogICAgIGVudW0gU3Rh
dGUgewogICAgICAgICBOb0dlc3R1cmUsCkBAIC01MCwzMiArNTIsMzkgQEAgcHVibGljOgogICAg
IH07CiAKICAgICB0eXBlZGVmIFZlY3RvcjxQbGF0Zm9ybUdlc3R1cmVFdmVudD4qIEdlc3R1cmVz
OwotICAgIHR5cGVkZWYgYm9vbCAoKkdlc3R1cmVUcmFuc2l0aW9uRnVuY3Rpb24pKElubmVyR2Vz
dHVyZVJlY29nbml6ZXIqLCBjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmLCBHZXN0dXJlcyk7Cisg
ICAgdHlwZWRlZiBib29sIChHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjoqR2VzdHVyZVRyYW5z
aXRpb25GdW5jdGlvbikoY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiwgR2VzdHVyZXMpOwogCi0g
ICAgfklubmVyR2VzdHVyZVJlY29nbml6ZXIoKTsKKyAgICBHZXN0dXJlUmVjb2duaXplckNocm9t
aXVtKCk7CisgICAgfkdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW0oKTsKIAotICAgIHZvaWQgYXBw
ZW5kQ2xpY2tHZXN0dXJlRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiwgR2VzdHVyZXMp
OwogICAgIHZpcnR1YWwgdm9pZCByZXNldCgpOwotICAgIGJvb2wgaXNJbkNsaWNrVGltZVdpbmRv
dygpOwotICAgIGJvb2wgaXNJbnNpZGVNYW5oYXR0YW5TcXVhcmUoY29uc3QgUGxhdGZvcm1Ub3Vj
aFBvaW50Jik7CiAgICAgdmlydHVhbCBQbGF0Zm9ybUdlc3R1cmVSZWNvZ25pemVyOjpQYXNzR2Vz
dHVyZXMgIHByb2Nlc3NUb3VjaEV2ZW50Rm9yR2VzdHVyZXMoY29uc3QgUGxhdGZvcm1Ub3VjaEV2
ZW50JiwgYm9vbCBkZWZhdWx0UHJldmVudGVkKTsKLSAgICB2b2lkIGFwcGVuZFNjcm9sbEdlc3R1
cmVCZWdpbihjb25zdCBJbnRQb2ludCYsIEdlc3R1cmVzKTsKLSAgICB2b2lkIGFwcGVuZFNjcm9s
bEdlc3R1cmVFbmQoY29uc3QgSW50UG9pbnQmLCBHZXN0dXJlcyk7Ci0gICAgdm9pZCBhcHBlbmRT
Y3JvbGxHZXN0dXJlVXBkYXRlKGNvbnN0IEludFBvaW50JiwgR2VzdHVyZXMpOwotICAgIHZvaWQg
c2V0U3RhdGUoU3RhdGUgdmFsdWUpIHsgbV9zdGF0ZSA9IHZhbHVlOyB9CiAgICAgU3RhdGUgc3Rh
dGUoKSB7IHJldHVybiBtX3N0YXRlOyB9CiAKLSAgICBJbnRQb2ludCBmaXJzdFRvdWNoUG9zaXRp
b24oKSB7IHJldHVybiBtX2ZpcnN0VG91Y2hQb3NpdGlvbjsgfQotcHJvdGVjdGVkOgotICAgIElu
bmVyR2VzdHVyZVJlY29nbml6ZXIoKTsKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIDo6SW5z
cGVjdGFibGVHZXN0dXJlUmVjb2duaXplckNocm9taXVtOworCisgICAgc3RhdGljIHVuc2lnbmVk
IGludCBzaWduYXR1cmUoU3RhdGUsIHVuc2lnbmVkLCBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlN0YXRl
LCBib29sKTsKICAgICB2b2lkIGFkZEVkZ2VGdW5jdGlvbihTdGF0ZSwgdW5zaWduZWQgZmluZ2Vy
LCBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlN0YXRlLCBib29sIHRvdWNoSGFuZGxlZEJ5SmF2YVNjcmlw
dCwgR2VzdHVyZVRyYW5zaXRpb25GdW5jdGlvbik7CisgICAgdm9pZCBhcHBlbmRDbGlja0dlc3R1
cmVFdmVudChjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmLCBHZXN0dXJlcyk7CisgICAgdm9pZCBh
cHBlbmRTY3JvbGxHZXN0dXJlQmVnaW4oY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiwgR2VzdHVy
ZXMpOworICAgIHZvaWQgYXBwZW5kU2Nyb2xsR2VzdHVyZUVuZChjb25zdCBQbGF0Zm9ybVRvdWNo
UG9pbnQmLCBHZXN0dXJlcyk7CisgICAgdm9pZCBhcHBlbmRTY3JvbGxHZXN0dXJlVXBkYXRlKGNv
bnN0IFBsYXRmb3JtVG91Y2hQb2ludCYsIEdlc3R1cmVzKTsKKyAgICBib29sIGlzSW5DbGlja1Rp
bWVXaW5kb3coKTsKKyAgICBib29sIGlzSW5zaWRlTWFuaGF0dGFuU3F1YXJlKGNvbnN0IFBsYXRm
b3JtVG91Y2hQb2ludCYpOworICAgIHZvaWQgc2V0U3RhdGUoU3RhdGUgdmFsdWUpIHsgbV9zdGF0
ZSA9IHZhbHVlOyB9CiAgICAgdm9pZCB1cGRhdGVWYWx1ZXMoZG91YmxlIHRvdWNoVGltZSwgY29u
c3QgUGxhdGZvcm1Ub3VjaFBvaW50Jik7Ci0gICAgc3RhdGljIHVuc2lnbmVkIGludCBzaWduYXR1
cmUoU3RhdGUsIHVuc2lnbmVkLCBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlN0YXRlLCBib29sKTsKIAot
ICAgIGZyaWVuZCBjbGFzcyBHZXN0dXJlUmVjb2duaXplckNocm9taXVtOworICAgIGJvb2wgY2xp
Y2soY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiwgR2VzdHVyZXMpOworICAgIGJvb2wgaXNDbGlj
a09yU2Nyb2xsKGNvbnN0IFBsYXRmb3JtVG91Y2hQb2ludCYsIEdlc3R1cmVzKTsKKyAgICBib29s
IGluU2Nyb2xsKGNvbnN0IFBsYXRmb3JtVG91Y2hQb2ludCYsIEdlc3R1cmVzKTsKKyAgICBib29s
IG5vR2VzdHVyZShjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmLCBHZXN0dXJlcyk7CisgICAgYm9v
bCB0b3VjaERvd24oY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiwgR2VzdHVyZXMpOworICAgIGJv
b2wgc2Nyb2xsRW5kKGNvbnN0IFBsYXRmb3JtVG91Y2hQb2ludCYsIEdlc3R1cmVzKTsKIAogICAg
IFdURjo6SGFzaE1hcDxpbnQsIEdlc3R1cmVUcmFuc2l0aW9uRnVuY3Rpb24+IG1fZWRnZUZ1bmN0
aW9uczsKICAgICBJbnRQb2ludCBtX2ZpcnN0VG91Y2hQb3NpdGlvbjsKKyAgICBJbnRQb2ludCBt
X2ZpcnN0VG91Y2hTY3JlZW5Qb3NpdGlvbjsKICAgICBkb3VibGUgbV9maXJzdFRvdWNoVGltZTsK
ICAgICBTdGF0ZSBtX3N0YXRlOwogICAgIEludFBvaW50IG1fbGFzdFRvdWNoUG9zaXRpb247CkBA
IC04NywxOSArOTYsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX21ldGFLZXk7CiB9OwogCi1j
bGFzcyBHZXN0dXJlUmVjb2duaXplckNocm9taXVtIDogcHVibGljIFBsYXRmb3JtR2VzdHVyZVJl
Y29nbml6ZXIgIHsKLXB1YmxpYzoKLQotICAgIEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW0oKTsK
LSAgICB2aXJ0dWFsIH5HZXN0dXJlUmVjb2duaXplckNocm9taXVtKCk7Ci0KLSAgICB2aXJ0dWFs
IHZvaWQgcmVzZXQoKTsKLSAKLSAgICB2aXJ0dWFsIFBsYXRmb3JtR2VzdHVyZVJlY29nbml6ZXI6
OlBhc3NHZXN0dXJlcyAgcHJvY2Vzc1RvdWNoRXZlbnRGb3JHZXN0dXJlcyhjb25zdCBQbGF0Zm9y
bVRvdWNoRXZlbnQmLCBib29sIGRlZmF1bHRQcmV2ZW50ZWQpOwotcHJpdmF0ZToKLSAgICBJbm5l
ckdlc3R1cmVSZWNvZ25pemVyIG1faW5uZXJHZXN0dXJlUmVjb2duaXplcjsKLX07Ci0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW1f
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA3NWI1MDQ2MWRkZDcyZmVmYTFhNDA5NjE0
ZmI5OTA1YjYzMjRkNmJlLi5jODI0NGRlMjdjYzQ3M2M2MjhmZTlhOTkxNGYwMDhkZjE0ZDlhMjFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDExLTA5LTAx
ICBSb2JlcnQgS3JvZWdlciAgPHJqa3JvZWdlQGNocm9taXVtLm9yZz4KKworIAorICAgICAgICBb
Y2hyb21pdW1dIENvZGUgY2xlYW51cCBGSVhNRSBpbiBDaHJvbWl1bSByZWNvZ25pemVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzQ0OAorCisgICAg
ICAgIFVwZGF0ZWQgR2VzdHVyZVJlY29nbml6ZXIgdW5pdCB0ZXN0cyBmb3IgbW9yZSBlbmNhcHN1
bGF0ZWQKKyAgICAgICAgZ2VzdHVyZSByZWNvZ25pemVyIGltcGxlbWVudGF0aW9uLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMvSW5uZXJH
ZXN0dXJlUmVjb2duaXplclRlc3QuY3BwOgorICAgICAgICAoSW5zcGVjdGFibGVHZXN0dXJlUmVj
b2duaXplckNocm9taXVtOjpJbnNwZWN0YWJsZUdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW0pOgor
ICAgICAgICAoSW5zcGVjdGFibGVHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpzaWduYXR1cmUp
OgorICAgICAgICAoSW5zcGVjdGFibGVHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjplZGdlRnVu
Y3Rpb24pOgorICAgICAgICAoSW5zcGVjdGFibGVHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjp1
cGRhdGVWYWx1ZXMpOgorICAgICAgICAoSW5zcGVjdGFibGVHZXN0dXJlUmVjb2duaXplckNocm9t
aXVtOjphZGRFZGdlRnVuY3Rpb24pOgorICAgICAgICAoSW5zcGVjdGFibGVHZXN0dXJlUmVjb2du
aXplckNocm9taXVtOjpzZXRTdGF0ZVRlc3QpOgorICAgICAgICAoSW5zcGVjdGFibGVHZXN0dXJl
UmVjb2duaXplckNocm9taXVtOjppc0luc2lkZU1hbmhhdHRhblNxdWFyZSk6CisgICAgICAgIChJ
bnNwZWN0YWJsZUdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OmlzSW5DbGlja1RpbWVXaW5kb3cp
OgorICAgICAgICAoSW5zcGVjdGFibGVHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpzdHViRWRn
ZUZ1bmN0aW9uKToKKyAgICAgICAgKEdlc3R1cmVSZWNvZ25pemVyVGVzdDo6R2VzdHVyZVJlY29n
bml6ZXJUZXN0KToKKyAgICAgICAgKFRFU1RfRik6CisKIDIwMTEtMDktMDEgIERvbWluaWMgTWF6
em9uaSAgPGRtYXp6b25pQGdvb2dsZS5jb20+CiAKICAgICAgICAgQWRkIEFQSSBmdW5jdGlvbnMg
dG8gZW5hYmxlIHN0YXJ0aW5nIGFuZCBzdG9wcGluZyBzcGVlY2ggaW5wdXQsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lubmVyR2VzdHVyZVJlY29nbml6ZXJUZXN0
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSW5uZXJHZXN0dXJlUmVjb2duaXpl
clRlc3QuY3BwCmluZGV4IDdkZjMxZTI3NzYxZjQyZGY0ZmM2MDkyNzE4MWQ2ZjIxM2U5YWE0YjIu
LjJmOTVjODRiNDVhZTdhOTE3MWZiMmQ3ZDdkMjg0YjM0ZGYzMjg3MzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSW5uZXJHZXN0dXJlUmVjb2duaXplclRlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSW5uZXJHZXN0dXJlUmVjb2duaXpl
clRlc3QuY3BwCkBAIC0zNiwxOCArMzYsMTcgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKLW5hbWVzcGFjZSB7CiAKLWNsYXNzIEluc3BlY3RhYmxlSW5uZXJHZXN0dXJlUmVjb2duaXpl
ciA6IHB1YmxpYyBJbm5lckdlc3R1cmVSZWNvZ25pemVyIHsKK2NsYXNzIEluc3BlY3RhYmxlR2Vz
dHVyZVJlY29nbml6ZXJDaHJvbWl1bSA6IHB1YmxpYyBXZWJDb3JlOjpHZXN0dXJlUmVjb2duaXpl
ckNocm9taXVtIHsKIHB1YmxpYzoKLSAgICBJbnNwZWN0YWJsZUlubmVyR2VzdHVyZVJlY29nbml6
ZXIoKQotICAgICAgICA6IFdlYkNvcmU6OklubmVyR2VzdHVyZVJlY29nbml6ZXIoKQorICAgIElu
c3BlY3RhYmxlR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bSgpCisgICAgICAgIDogV2ViQ29yZTo6
R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bSgpCiAgICAgewogICAgIH0KIAogICAgIGludCBzaWdu
YXR1cmUoU3RhdGUgZ2VzdHVyZVN0YXRlLCB1bnNpZ25lZCBpZCwgUGxhdGZvcm1Ub3VjaFBvaW50
OjpTdGF0ZSB0b3VjaFR5cGUsIGJvb2wgaGFuZGxlZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBJ
bm5lckdlc3R1cmVSZWNvZ25pemVyOjpzaWduYXR1cmUoZ2VzdHVyZVN0YXRlLCBpZCwgdG91Y2hU
eXBlLCBoYW5kbGVkKTsKKyAgICAgICAgcmV0dXJuIEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06
OnNpZ25hdHVyZShnZXN0dXJlU3RhdGUsIGlkLCB0b3VjaFR5cGUsIGhhbmRsZWQpOwogICAgIH07
CiAKICAgICBJbnRQb2ludCBmaXJzdFRvdWNoUG9zaXRpb24oKSB7IHJldHVybiBtX2ZpcnN0VG91
Y2hQb3NpdGlvbjsgfTsKQEAgLTU4LDIwICs1Nyw0MyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRM
YXN0VG91Y2hUaW1lKGRvdWJsZSB0KSB7IG1fbGFzdFRvdWNoVGltZSA9IHQ7IH07CiAgICAgZG91
YmxlIGxhc3RUb3VjaFRpbWUoKSB7IHJldHVybiBtX2xhc3RUb3VjaFRpbWU7IH07CiAKLSAgICBJ
bm5lckdlc3R1cmVSZWNvZ25pemVyOjpHZXN0dXJlVHJhbnNpdGlvbkZ1bmN0aW9uIGVkZ2VGdW5j
dGlvbihpbnQgaGFzaCkKKyAgICBHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpHZXN0dXJlVHJh
bnNpdGlvbkZ1bmN0aW9uIGVkZ2VGdW5jdGlvbihpbnQgaGFzaCkKICAgICB7CiAgICAgICAgIHJl
dHVybiBtX2VkZ2VGdW5jdGlvbnMuZ2V0KGhhc2gpOwogICAgIH07CiAKICAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlVmFsdWVzKGRvdWJsZSBkLCBjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQgJnApCiAg
ICAgewotICAgICAgICBJbm5lckdlc3R1cmVSZWNvZ25pemVyOjp1cGRhdGVWYWx1ZXMoZCwgcCk7
CisgICAgICAgIEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OnVwZGF0ZVZhbHVlcyhkLCBwKTsK
ICAgICB9OwogCiAgICAgdm9pZCBhZGRFZGdlRnVuY3Rpb24oU3RhdGUgc3RhdGUsIHVuc2lnbmVk
IGZpbmdlciwgUGxhdGZvcm1Ub3VjaFBvaW50OjpTdGF0ZSB0b3VjaFN0YXRlLCBib29sIHRvdWNo
SGFuZGxlZEJ5SmF2YVNjcmlwdCwgR2VzdHVyZVRyYW5zaXRpb25GdW5jdGlvbiBmdW5jdGlvbikK
ICAgICB7Ci0gICAgICAgIElubmVyR2VzdHVyZVJlY29nbml6ZXI6OmFkZEVkZ2VGdW5jdGlvbihz
dGF0ZSwgZmluZ2VyLCB0b3VjaFN0YXRlLCB0b3VjaEhhbmRsZWRCeUphdmFTY3JpcHQsIGZ1bmN0
aW9uKTsKKyAgICAgICAgR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6YWRkRWRnZUZ1bmN0aW9u
KHN0YXRlLCBmaW5nZXIsIHRvdWNoU3RhdGUsIHRvdWNoSGFuZGxlZEJ5SmF2YVNjcmlwdCwgZnVu
Y3Rpb24pOwogICAgIH07CisKKyAgICBib29sIHN0dWJFZGdlRnVuY3Rpb24oY29uc3QgUGxhdGZv
cm1Ub3VjaFBvaW50JiwgR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6R2VzdHVyZXMqKTsKKwor
ICAgIHZvaWQgc2V0U3RhdGVUZXN0KFN0YXRlIHZhbHVlKQorICAgIHsKKyAgICAgICAgR2VzdHVy
ZVJlY29nbml6ZXJDaHJvbWl1bTo6c2V0U3RhdGUodmFsdWUpOworICAgIH07CisKKyAgICBib29s
IGlzSW5zaWRlTWFuaGF0dGFuU3F1YXJlKGNvbnN0IFBsYXRmb3JtVG91Y2hQb2ludCYgdG91Y2hQ
b2ludCkKKyAgICB7CisgICAgICAgIHJldHVybiBHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpp
c0luc2lkZU1hbmhhdHRhblNxdWFyZSh0b3VjaFBvaW50KTsKKyAgICB9OworCisgICAgYm9vbCBp
c0luQ2xpY2tUaW1lV2luZG93KCkKKyAgICB7CisgICAgICAgIHJldHVybiBHZXN0dXJlUmVjb2du
aXplckNocm9taXVtOjppc0luQ2xpY2tUaW1lV2luZG93KCk7CisgICAgfTsKKworfTsKKworYm9v
bCBJbnNwZWN0YWJsZUdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OnN0dWJFZGdlRnVuY3Rpb24o
Y29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiwgR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6R2Vz
dHVyZXMqKQoreworICAgIHJldHVybiBmYWxzZTsKIH07CiAKIGNsYXNzIEJ1aWxkYWJsZVBsYXRm
b3JtVG91Y2hQb2ludCA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybVRvdWNoUG9pbnQgewpAQCAt
MTI2LDQ2ICsxNDgsNDYgQEAgcHVibGljOgogICAgIH0KIH07CiAKLWNsYXNzIFRlc3RHZXN0dXJl
UmVjb2duaXplciA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKK2NsYXNzIEdlc3R1cmVSZWNvZ25p
emVyVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1YmxpYzoKLSAgICBUZXN0R2VzdHVy
ZVJlY29nbml6ZXIoKSB7IH0KKyAgICBHZXN0dXJlUmVjb2duaXplclRlc3QoKSB7IH0KIAogcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBU
ZWFyRG93bigpIHsgfQogfTsKIAotVEVTVF9GKFRlc3RHZXN0dXJlUmVjb2duaXplciwgaGFzaCkK
K1RFU1RfRihHZXN0dXJlUmVjb2duaXplclRlc3QsIGhhc2gpCiB7Ci0gICAgSW5zcGVjdGFibGVJ
bm5lckdlc3R1cmVSZWNvZ25pemVyIHRlc3RHbTsKKyAgICBJbnNwZWN0YWJsZUdlc3R1cmVSZWNv
Z25pemVyQ2hyb21pdW0gdGVzdEdtOwogICAgIGNvbnN0IHVuc2lnbmVkIEZpcnN0RmluZ2VyID0g
MDsKICAgICBjb25zdCB1bnNpZ25lZCBTZWNvbmRGaW5nZXIgPSAxOwogCi0gICAgQVNTRVJUX0VR
KDEgKyAwLCB0ZXN0R20uc2lnbmF0dXJlKElubmVyR2VzdHVyZVJlY29nbml6ZXI6Ok5vR2VzdHVy
ZSwgRmlyc3RGaW5nZXIsIFBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hSZWxlYXNlZCwgZmFsc2Up
KTsKKyAgICBBU1NFUlRfRVEoMSArIDAsIHRlc3RHbS5zaWduYXR1cmUoR2VzdHVyZVJlY29nbml6
ZXJDaHJvbWl1bTo6Tm9HZXN0dXJlLCBGaXJzdEZpbmdlciwgUGxhdGZvcm1Ub3VjaFBvaW50OjpU
b3VjaFJlbGVhc2VkLCBmYWxzZSkpOwogCi0gICAgQVNTRVJUX0VRKDEgKyAoKDggfCAxKSA8PCAx
KSwgdGVzdEdtLnNpZ25hdHVyZShJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpOb0dlc3R1cmUsIEZp
cnN0RmluZ2VyLCBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUHJlc3NlZCwgdHJ1ZSkpOworICAg
IEFTU0VSVF9FUSgxICsgKCg4IHwgMSkgPDwgMSksIHRlc3RHbS5zaWduYXR1cmUoR2VzdHVyZVJl
Y29nbml6ZXJDaHJvbWl1bTo6Tm9HZXN0dXJlLCBGaXJzdEZpbmdlciwgUGxhdGZvcm1Ub3VjaFBv
aW50OjpUb3VjaFByZXNzZWQsIHRydWUpKTsKIAotICAgIEFTU0VSVF9FUSgxICsgKCgweDEwMDAw
IHwgMikgPDwgMSksIHRlc3RHbS5zaWduYXR1cmUoSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6UGVu
ZGluZ1N5bnRoZXRpY0NsaWNrLCBGaXJzdEZpbmdlciwgUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3Vj
aE1vdmVkLCBmYWxzZSkpOworICAgIEFTU0VSVF9FUSgxICsgKCgweDEwMDAwIHwgMikgPDwgMSks
IHRlc3RHbS5zaWduYXR1cmUoR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6UGVuZGluZ1N5bnRo
ZXRpY0NsaWNrLCBGaXJzdEZpbmdlciwgUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaE1vdmVkLCBm
YWxzZSkpOwogCi0gICAgQVNTRVJUX0VRKDEgKyAoMHgyMDAwMCA8PCAxKSwgdGVzdEdtLnNpZ25h
dHVyZShJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpTY3JvbGwsIEZpcnN0RmluZ2VyLCBQbGF0Zm9y
bVRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQsIGZhbHNlKSk7CisgICAgQVNTRVJUX0VRKDEgKyAo
MHgyMDAwMCA8PCAxKSwgdGVzdEdtLnNpZ25hdHVyZShHZXN0dXJlUmVjb2duaXplckNocm9taXVt
OjpTY3JvbGwsIEZpcnN0RmluZ2VyLCBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQs
IGZhbHNlKSk7CiAKLSAgICBBU1NFUlRfRVEoMSArICgoMHgyMDAwMCB8IDEpIDw8IDEpLCB0ZXN0
R20uc2lnbmF0dXJlKElubmVyR2VzdHVyZVJlY29nbml6ZXI6OlNjcm9sbCwgRmlyc3RGaW5nZXIs
IFBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQcmVzc2VkLCBmYWxzZSkpOworICAgIEFTU0VSVF9F
USgxICsgKCgweDIwMDAwIHwgMSkgPDwgMSksIHRlc3RHbS5zaWduYXR1cmUoR2VzdHVyZVJlY29n
bml6ZXJDaHJvbWl1bTo6U2Nyb2xsLCBGaXJzdEZpbmdlciwgUGxhdGZvcm1Ub3VjaFBvaW50OjpU
b3VjaFByZXNzZWQsIGZhbHNlKSk7CiAKLSAgICBBU1NFUlRfRVEoMSArICgoMHgyMDAwMCB8IDB4
MTAgfCA4IHwgMSkgPDwgMSksIHRlc3RHbS5zaWduYXR1cmUoSW5uZXJHZXN0dXJlUmVjb2duaXpl
cjo6U2Nyb2xsLCBTZWNvbmRGaW5nZXIsIFBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQcmVzc2Vk
LCB0cnVlKSk7CisgICAgQVNTRVJUX0VRKDEgKyAoKDB4MjAwMDAgfCAweDEwIHwgOCB8IDEpIDw8
IDEpLCB0ZXN0R20uc2lnbmF0dXJlKEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OlNjcm9sbCwg
U2Vjb25kRmluZ2VyLCBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUHJlc3NlZCwgdHJ1ZSkpOwog
fQogCi1URVNUX0YoVGVzdEdlc3R1cmVSZWNvZ25pemVyLCBzdGF0ZSkKK1RFU1RfRihHZXN0dXJl
UmVjb2duaXplclRlc3QsIHN0YXRlKQogewotICAgIEluc3BlY3RhYmxlSW5uZXJHZXN0dXJlUmVj
b2duaXplciB0ZXN0R207CisgICAgSW5zcGVjdGFibGVHZXN0dXJlUmVjb2duaXplckNocm9taXVt
IHRlc3RHbTsKIAogICAgIEFTU0VSVF9FUSgwLCB0ZXN0R20uc3RhdGUoKSk7Ci0gICAgdGVzdEdt
LnNldFN0YXRlKElubmVyR2VzdHVyZVJlY29nbml6ZXI6OlBlbmRpbmdTeW50aGV0aWNDbGljayk7
Ci0gICAgQVNTRVJUX0VRKElubmVyR2VzdHVyZVJlY29nbml6ZXI6OlBlbmRpbmdTeW50aGV0aWND
bGljaywgdGVzdEdtLnN0YXRlKCkpOworICAgIHRlc3RHbS5zZXRTdGF0ZVRlc3QoR2VzdHVyZVJl
Y29nbml6ZXJDaHJvbWl1bTo6UGVuZGluZ1N5bnRoZXRpY0NsaWNrKTsKKyAgICBBU1NFUlRfRVEo
R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6UGVuZGluZ1N5bnRoZXRpY0NsaWNrLCB0ZXN0R20u
c3RhdGUoKSk7CiB9CiAKLVRFU1RfRihUZXN0R2VzdHVyZVJlY29nbml6ZXIsIGlzSW5zaWRlTWFu
aGF0dGFuU3F1YXJlKQorVEVTVF9GKEdlc3R1cmVSZWNvZ25pemVyVGVzdCwgaXNJbnNpZGVNYW5o
YXR0YW5TcXVhcmUpCiB7Ci0gICAgSW5zcGVjdGFibGVJbm5lckdlc3R1cmVSZWNvZ25pemVyIGdt
OworICAgIEluc3BlY3RhYmxlR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bSBnbTsKICAgICBCdWls
ZGFibGVQbGF0Zm9ybVRvdWNoUG9pbnQgcDsKIAogICAgIEFTU0VSVF9FUSgwLjAsIGdtLmZpcnN0
VG91Y2hQb3NpdGlvbigpLngoKSk7CkBAIC0xOTYsOSArMjE4LDkgQEAgVEVTVF9GKFRlc3RHZXN0
dXJlUmVjb2duaXplciwgaXNJbnNpZGVNYW5oYXR0YW5TcXVhcmUpCiAgICAgQVNTRVJUX0ZBTFNF
KGdtLmlzSW5zaWRlTWFuaGF0dGFuU3F1YXJlKHApKTsKIH0KIAotVEVTVF9GKFRlc3RHZXN0dXJl
UmVjb2duaXplciwgaXNJbkNsaWNrVGltZVdpbmRvdykKK1RFU1RfRihHZXN0dXJlUmVjb2duaXpl
clRlc3QsIGlzSW5DbGlja1RpbWVXaW5kb3cpCiB7Ci0gICAgSW5zcGVjdGFibGVJbm5lckdlc3R1
cmVSZWNvZ25pemVyIGdtOworICAgIEluc3BlY3RhYmxlR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1
bSBnbTsKIAogICAgIGdtLnNldEZpcnN0VG91Y2hUaW1lKDAuMCk7CiAgICAgZ20uc2V0TGFzdFRv
dWNoVGltZSgwLjApOwpAQCAtMjE3LDIxICsyMzksMjEgQEAgVEVTVF9GKFRlc3RHZXN0dXJlUmVj
b2duaXplciwgaXNJbkNsaWNrVGltZVdpbmRvdykKICAgICBBU1NFUlRfRkFMU0UoZ20uaXNJbkNs
aWNrVGltZVdpbmRvdygpKTsKIH0KIAotVEVTVF9GKFRlc3RHZXN0dXJlUmVjb2duaXplciwgYWRk
RWRnZUZ1bmN0aW9uKQorVEVTVF9GKEdlc3R1cmVSZWNvZ25pemVyVGVzdCwgYWRkRWRnZUZ1bmN0
aW9uKQogewotICAgIEluc3BlY3RhYmxlSW5uZXJHZXN0dXJlUmVjb2duaXplciBnbTsKLSAgICBn
bS5hZGRFZGdlRnVuY3Rpb24oSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6U2Nyb2xsLCAwLCBQbGF0
Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQsIHRydWUsIChJbm5lckdlc3R1cmVSZWNvZ25p
emVyOjpHZXN0dXJlVHJhbnNpdGlvbkZ1bmN0aW9uKTQwOTYpOworICAgIEluc3BlY3RhYmxlR2Vz
dHVyZVJlY29nbml6ZXJDaHJvbWl1bSBnbTsKKyAgICBnbS5hZGRFZGdlRnVuY3Rpb24oR2VzdHVy
ZVJlY29nbml6ZXJDaHJvbWl1bTo6U2Nyb2xsLCAwLCBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNo
UmVsZWFzZWQsIHRydWUsIChHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpHZXN0dXJlVHJhbnNp
dGlvbkZ1bmN0aW9uKSZJbnNwZWN0YWJsZUdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OnN0dWJF
ZGdlRnVuY3Rpb24pOwogCi0gICAgQVNTRVJUX0VRKChJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpH
ZXN0dXJlVHJhbnNpdGlvbkZ1bmN0aW9uKTQwOTYsIGdtLmVkZ2VGdW5jdGlvbihnbS5zaWduYXR1
cmUoSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6U2Nyb2xsLCAwLCBQbGF0Zm9ybVRvdWNoUG9pbnQ6
OlRvdWNoUmVsZWFzZWQsIHRydWUpKSk7CisgICAgQVNTRVJUX0VRKChHZXN0dXJlUmVjb2duaXpl
ckNocm9taXVtOjpHZXN0dXJlVHJhbnNpdGlvbkZ1bmN0aW9uKSZJbnNwZWN0YWJsZUdlc3R1cmVS
ZWNvZ25pemVyQ2hyb21pdW06OnN0dWJFZGdlRnVuY3Rpb24sIGdtLmVkZ2VGdW5jdGlvbihnbS5z
aWduYXR1cmUoR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6U2Nyb2xsLCAwLCBQbGF0Zm9ybVRv
dWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQsIHRydWUpKSk7CiB9CiAKLVRFU1RfRihUZXN0R2VzdHVy
ZVJlY29nbml6ZXIsIHVwZGF0ZVZhbHVlcykKK1RFU1RfRihHZXN0dXJlUmVjb2duaXplclRlc3Qs
IHVwZGF0ZVZhbHVlcykKIHsKLSAgICBJbnNwZWN0YWJsZUlubmVyR2VzdHVyZVJlY29nbml6ZXIg
Z207CisgICAgSW5zcGVjdGFibGVHZXN0dXJlUmVjb2duaXplckNocm9taXVtIGdtOwogCiAgICAg
QVNTRVJUX0VRKDAuMCwgZ20uZmlyc3RUb3VjaFRpbWUoKSk7CiAgICAgQVNTRVJUX0VRKDAuMCwg
Z20ubGFzdFRvdWNoVGltZSgpKTsKLSAgICBBU1NFUlRfRVEoSW5uZXJHZXN0dXJlUmVjb2duaXpl
cjo6Tm9HZXN0dXJlLCBnbS5zdGF0ZSgpKTsKKyAgICBBU1NFUlRfRVEoR2VzdHVyZVJlY29nbml6
ZXJDaHJvbWl1bTo6Tm9HZXN0dXJlLCBnbS5zdGF0ZSgpKTsKIAogICAgIEJ1aWxkYWJsZVBsYXRm
b3JtVG91Y2hQb2ludCBwMSgxMCwgMTEpOwogICAgIGdtLnVwZGF0ZVZhbHVlcygxLjEsIHAxKTsK
QEAgLTI0Miw3ICsyNjQsNyBAQCBURVNUX0YoVGVzdEdlc3R1cmVSZWNvZ25pemVyLCB1cGRhdGVW
YWx1ZXMpCiAgICAgQVNTRVJUX0VRKDAuMCwgZ20ubGFzdFRvdWNoVGltZSgpIC0gZ20uZmlyc3RU
b3VjaFRpbWUoKSk7CiAKICAgICBCdWlsZGFibGVQbGF0Zm9ybVRvdWNoUG9pbnQgcDIoMTMsIDE0
KTsKLSAgICBnbS5zZXRTdGF0ZShJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpQZW5kaW5nU3ludGhl
dGljQ2xpY2spOworICAgIGdtLnNldFN0YXRlVGVzdChHZXN0dXJlUmVjb2duaXplckNocm9taXVt
OjpQZW5kaW5nU3ludGhldGljQ2xpY2spOwogICAgIGdtLnVwZGF0ZVZhbHVlcygyLjAsIHAyKTsK
IAogICAgIEFTU0VSVF9FUSgxMCwgZ20uZmlyc3RUb3VjaFBvc2l0aW9uKCkueCgpKTsKQEAgLTI1
MSw3ICsyNzMsNyBAQCBURVNUX0YoVGVzdEdlc3R1cmVSZWNvZ25pemVyLCB1cGRhdGVWYWx1ZXMp
CiAgICAgQVNTRVJUX0VRKDIuMCAtIDEuMSwgZ20ubGFzdFRvdWNoVGltZSgpIC0gZ20uZmlyc3RU
b3VjaFRpbWUoKSk7CiAKICAgICBCdWlsZGFibGVQbGF0Zm9ybVRvdWNoUG9pbnQgcDMoMjMsIDM0
KTsKLSAgICBnbS5zZXRTdGF0ZShJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpOb0dlc3R1cmUpOwor
ICAgIGdtLnNldFN0YXRlVGVzdChHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpOb0dlc3R1cmUp
OwogICAgIGdtLnVwZGF0ZVZhbHVlcygzLjAsIHAzKTsKIAogICAgIEFTU0VSVF9FUSgyMywgZ20u
Zmlyc3RUb3VjaFBvc2l0aW9uKCkueCgpKTsKQEAgLTI2MCwxNyArMjgyLDE3IEBAIFRFU1RfRihU
ZXN0R2VzdHVyZVJlY29nbml6ZXIsIHVwZGF0ZVZhbHVlcykKICAgICBBU1NFUlRfRVEoMC4wLCBn
bS5sYXN0VG91Y2hUaW1lKCkgLSBnbS5maXJzdFRvdWNoVGltZSgpKTsKIH0KIAotVEVTVF9GKFRl
c3RHZXN0dXJlUmVjb2duaXplciwgZ2VzdHVyZVNjcm9sbEV2ZW50cykKK1RFU1RfRihHZXN0dXJl
UmVjb2duaXplclRlc3QsIGdlc3R1cmVTY3JvbGxFdmVudHMpCiB7Ci0gICAgSW5zcGVjdGFibGVJ
bm5lckdlc3R1cmVSZWNvZ25pemVyIGdtOworICAgIEluc3BlY3RhYmxlR2VzdHVyZVJlY29nbml6
ZXJDaHJvbWl1bSBnbTsKIAotICAgIEFTU0VSVF9FUShJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpO
b0dlc3R1cmUsIGdtLnN0YXRlKCkpOworICAgIEFTU0VSVF9FUShHZXN0dXJlUmVjb2duaXplckNo
cm9taXVtOjpOb0dlc3R1cmUsIGdtLnN0YXRlKCkpOwogCiAgICAgQnVpbGRhYmxlUGxhdGZvcm1U
b3VjaFBvaW50IHByZXNzKDEwLCAxNSwgUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFByZXNzZWQp
OwogICAgIEJ1aWxkYWJsZVBsYXRmb3JtVG91Y2hFdmVudCBwcmVzc0V2ZW50KFdlYkNvcmU6OlRv
dWNoU3RhcnQsIHByZXNzKTsKICAgICBnbS5wcm9jZXNzVG91Y2hFdmVudEZvckdlc3R1cmVzKHBy
ZXNzRXZlbnQsIGZhbHNlKTsKIAotICAgIEFTU0VSVF9FUShJbm5lckdlc3R1cmVSZWNvZ25pemVy
OjpQZW5kaW5nU3ludGhldGljQ2xpY2ssIGdtLnN0YXRlKCkpOworICAgIEFTU0VSVF9FUShHZXN0
dXJlUmVjb2duaXplckNocm9taXVtOjpQZW5kaW5nU3ludGhldGljQ2xpY2ssIGdtLnN0YXRlKCkp
OwogCiAgICAgQnVpbGRhYmxlUGxhdGZvcm1Ub3VjaFBvaW50IG1vdmUoMTAsIDUwLCBQbGF0Zm9y
bVRvdWNoUG9pbnQ6OlRvdWNoTW92ZWQpOwogICAgIEJ1aWxkYWJsZVBsYXRmb3JtVG91Y2hFdmVu
dCBtb3ZlRXZlbnQoV2ViQ29yZTo6VG91Y2hNb3ZlLCBtb3ZlKTsKQEAgLTI5MSw3ICszMTMsNyBA
QCBURVNUX0YoVGVzdEdlc3R1cmVSZWNvZ25pemVyLCBnZXN0dXJlU2Nyb2xsRXZlbnRzKQogCiAg
ICAgQVNTRVJUX1RSVUUoc2Nyb2xsU3RhcnRlZCk7CiAgICAgQVNTRVJUX1RSVUUoc2Nyb2xsVXBk
YXRlZCk7Ci0gICAgQVNTRVJUX0VRKElubmVyR2VzdHVyZVJlY29nbml6ZXI6OlNjcm9sbCwgZ20u
c3RhdGUoKSk7CisgICAgQVNTRVJUX0VRKEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OlNjcm9s
bCwgZ20uc3RhdGUoKSk7CiAKICAgICBCdWlsZGFibGVQbGF0Zm9ybVRvdWNoUG9pbnQgcmVsZWFz
ZSgxMCwgNTAsIFBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hSZWxlYXNlZCk7CiAgICAgQnVpbGRh
YmxlUGxhdGZvcm1Ub3VjaEV2ZW50IHJlbGVhc2VFdmVudChXZWJDb3JlOjpUb3VjaEVuZCwgcmVs
ZWFzZSk7CkBAIC0zMDcsNyArMzI5LDUgQEAgVEVTVF9GKFRlc3RHZXN0dXJlUmVjb2duaXplciwg
Z2VzdHVyZVNjcm9sbEV2ZW50cykKICAgICAgICAgfQogICAgIH0KICAgICBBU1NFUlRfVFJVRShz
Y3JvbGxFbmQpOwotICAgIEFTU0VSVF9FUShJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpOb0dlc3R1
cmUsIGdtLnN0YXRlKCkpOworICAgIEFTU0VSVF9FUShHZXN0dXJlUmVjb2duaXplckNocm9taXVt
OjpOb0dlc3R1cmUsIGdtLnN0YXRlKCkpOwogfQotCi19IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>