<?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>122384</bug_id>
          
          <creation_ts>2013-10-05 10:39:31 -0700</creation_ts>
          <short_desc>Add AtomicString::number and use it</short_desc>
          <delta_ts>2013-10-05 11:21:16 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>936604</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-10-05 10:39:31 -0700</bug_when>
    <thetext>Add AtomicString::number and use it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936611</commentid>
    <comment_count>1</comment_count>
      <attachid>213461</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-10-05 10:48:48 -0700</bug_when>
    <thetext>Created attachment 213461
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936616</commentid>
    <comment_count>2</comment_count>
      <attachid>213461</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-05 11:21:14 -0700</bug_when>
    <thetext>Comment on attachment 213461
Patch

Clearing flags on attachment: 213461

Committed r156965: &lt;http://trac.webkit.org/changeset/156965&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936617</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-05 11:21:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213461</attachid>
            <date>2013-10-05 10:48:48 -0700</date>
            <delta_ts>2013-10-05 11:21:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122384-20131005104848.patch</filename>
            <type>text/plain</type>
            <size>28050</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2OTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY2NDQ2OWZkMGIyZDllZTlmMjBmMThm
ZTQ5YzFjYmE2M2EzNTVlMTMuLjUwNjQxY2ZhYjQ5MzQ1ZDQzNzZhNTYxOGQ1ZDQ2MDViMTVjOWUw
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTMtMTAtMDUgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBBdG9taWNTdHJpbmc6Om51bWJlciBhbmQgdXNlIGl0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjIzODQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90
ZXh0L0F0b21pY1N0cmluZy5jcHA6CisgICAgICAgIChXVEY6OkF0b21pY1N0cmluZzo6bnVtYmVy
KTogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQXRvbWljU3RyaW5nLmg6IERpdHRvLgorCisg
ICAgICAgICogd3RmL3RleHQvSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOiBTaW1wbGlmeSBp
bmNsdWRlcywgcmVuYW1lZCBDb252ZXJzaW9uVHJhaXQgdG8KKyAgICAgICAgSW50ZWdlclRvU3Ry
aW5nQ29udmVyc2lvblRyYWl0LiBDaGFuZ2VkIFN0cmluZyB2ZXJzaW9uIHRvIHVzZSBTdHJpbmcg
c2luY2Ugd2Ugbm8gbG9uZ2VyCisgICAgICAgIG5lZWQgdG8gdXNlIFBhc3NSZWZQdHIgdG8gZWZm
aWNpZW50bHkgaGFuZGxlIHJldHVybiB2YWx1ZXMuIFJlcGxhY2VkIFVuc2lnbmVkSW50ZWdlclRy
YWl0CisgICAgICAgIHdpdGggc3RkOjptYWtlX3Vuc2lnbmVkLiBBZGRlZCBBdG9taWNTdHJpbmcg
c3VwcG9ydC4gVXNlIG51bGxwdHIgaW5zdGVhZCBvZiAwLgorCiAyMDEzLTEwLTA0ICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJj
YXNlIGlzIG5vdCBsYW5nLWRlcGVuZGVudCAoVHVya2lzaCBsYW5ndWFnZXMgOiB0cixheikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCA5MWMyOWI0OWMzZTJlNzY4NGQ4Yjk3MzNlNDU2NWNhOGIxNzUwZTk3Li4xMTVl
NGRlYzIzZTk0NDk1OTc1MDNiOTEzNDFmMmFkNGMyZjkzZmNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNjMgQEAKKzIwMTMtMTAtMDUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisg
ICAgICAgIEFkZCBBdG9taWNTdHJpbmc6Om51bWJlciBhbmQgdXNlIGl0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjIzODQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzcy9DU1NHcmFtbWFyLnkuaW46
IFVzZSBBdG9taWNTdHJpbmc6Om51bWJlciBpbnN0ZWFkIG9mIFN0cmluZzo6bnVtYmVyIHNpbmNl
CisgICAgICAgIHdlIGFyZSBjcmVhdGluZyBhbiBBdG9taWNTdHJpbmcuIFRoaXMgY2FuIHNhdmUg
YSBtZW1vcnkgYWxsb2NhdGlvbiBpZiB0aGUgc3RyaW5nCisgICAgICAgIGhhcHBlbnMgdG8gYWxy
ZWFkeSBiZSBpbiB0aGUgYXRvbWljIHN0cmluZyB0YWJsZS4KKyAgICAgICAgKiBkb20vRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRJbnRlZ3JhbEF0dHJpYnV0ZSk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0VW5zaWduZWRJbnRlZ3JhbEF0
dHJpYnV0ZSk6IERpdHRvLgorICAgICAgICAqIGVkaXRpbmcvQnJlYWtCbG9ja3F1b3RlQ29tbWFu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCcmVha0Jsb2NrcXVvdGVDb21tYW5kOjpkb0FwcGx5
KTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEJvZHlFbGVtZW50OjppbnNlcnRlZEludG8pOiBVc2Ugc2V0SW50ZWdyYWxB
dHRyaWJ1dGUgaW5zdGVhZCBvZgorICAgICAgICBhIGxvY2FsIGhvbWVncm93biBlcXVpdmFsZW50
LgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldEhlaWdodCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldFdpZHRoKTogRGl0dG8uCisgICAgICAgICogaHRtbC9I
VE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6c2V0VGFiSW5k
ZXgpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6c2V0SGVpZ2h0KTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpzZXRXaWR0aCk6IERpdHRvLgorICAgICAgICAq
IGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRF
bGVtZW50OjpzZXRNYXhMZW5ndGgpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1
dEVsZW1lbnQ6OnNldFNpemUpOiBTYW1lLCBidXQgc2V0VW5zaWduZWRJbnRlZ3JhbEF0dHJpYnV0
ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldEhlaWdodCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0V2lkdGgpOiBEaXR0by4K
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJTZXRTaXplKTogRGl0dG8uCisgICAgICAgICog
aHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRlckVs
ZW1lbnQ6OnNldE1pbik6IE1vcmUgb2YgdGhlIHNhbWUuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWV0ZXJFbGVtZW50OjpzZXRNYXgpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRl
ckVsZW1lbnQ6OnNldFZhbHVlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0ZXJF
bGVtZW50OjpzZXRMb3cpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRlckVsZW1l
bnQ6OnNldEhpZ2gpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRlckVsZW1lbnQ6
OnNldE9wdGltdW0pOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxPTGlzdEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9MaXN0RWxlbWVudDo6c2V0U3RhcnQpOiBEaXR0by4K
KyAgICAgICAgKiBodG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFByb2dyZXNzRWxlbWVudDo6c2V0VmFsdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OnNldE1heCk6IERpdHRvLgorICAgICAgICAqIGh0bWwv
SFRNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0
RWxlbWVudDo6c2V0U2l6ZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OnNldENv
bFNwYW4pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUNlbGxFbGVtZW50Ojpz
ZXRSb3dTcGFuKTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUNvbEVsZW1lbnQ6OnNldFNwYW4pOiBEaXR0
by4KKyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6c2V0TWF4TGVuZ3RoKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpzZXRDb2xzKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpzZXRSb3dzKTogRGl0dG8uCisgICAgICAg
ICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpzZXREdXJhdGlvbik6IERpdHRvLgorCiAy
MDEzLTEwLTA1ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgQWRkICpDU1MqIHByZWZpeCB0byBGb250VmFsdWUgdG8gZ2VuZXJhdGUgdG9DU1NGb250
VmFsdWUoKSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nLmNwcAppbmRleCA1MTU5YjRjYTdl
M2VkZDI3ODBkYjZiYjhkMDJlNWI1OWRjOGRkN2ZjLi43ZjZhZTBhOGJjMWRkMTk1YTk1ZjEwNTMz
MzQ3MDQ4ODVhZTE5NzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21pY1N0
cmluZy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuY3BwCkBAIC0y
MSwxOSArMjEsMTkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0KICNpbmNsdWRlICJB
dG9taWNTdHJpbmcuaCIKIAogI2luY2x1ZGUgIkF0b21pY1N0cmluZ1RhYmxlLmgiCisjaW5jbHVk
ZSAiSGFzaFNldC5oIgorI2luY2x1ZGUgIkludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCIKICNp
bmNsdWRlICJTdHJpbmdIYXNoLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRl
IDx3dGYvVGhyZWFkaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL1dURlRocmVhZERhdGEuaD4KKyNpbmNs
dWRlICJUaHJlYWRpbmcuaCIKKyNpbmNsdWRlICJXVEZUaHJlYWREYXRhLmgiCisjaW5jbHVkZSAi
ZHRvYS5oIgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VURjguaD4KIAogI2lmIFVTRShXRUJfVEhS
RUFEKQotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0jaW5jbHVkZSA8d3RmL1RDU3Bpbkxv
Y2suaD4KKyNpbmNsdWRlICJUQ1NwaW5Mb2NrLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdURiB7
CkBAIC00Myw2ICs0Myw3IEBAIHVzaW5nIG5hbWVzcGFjZSBVbmljb2RlOwogc3RhdGljX2Fzc2Vy
dChzaXplb2YoQXRvbWljU3RyaW5nKSA9PSBzaXplb2YoU3RyaW5nKSwgIkF0b21pY1N0cmluZyBh
bmQgU3RyaW5nIG11c3QgYmUgc2FtZSBzaXplISIpOwogCiAjaWYgVVNFKFdFQl9USFJFQUQpCisK
IGNsYXNzIEF0b21pY1N0cmluZ1RhYmxlTG9ja2VyIDogcHVibGljIFNwaW5Mb2NrSG9sZGVyIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdG9taWNTdHJpbmdUYWJsZUxvY2tlcik7CiAKQEAg
LTU1LDE0ICs1NiwxNSBAQCBwdWJsaWM6CiB9OwogCiBTcGluTG9jayBBdG9taWNTdHJpbmdUYWJs
ZUxvY2tlcjo6c19zdHJpbmdUYWJsZUxvY2sgPSBTUElOTE9DS19JTklUSUFMSVpFUjsKKwogI2Vs
c2UKIAogY2xhc3MgQXRvbWljU3RyaW5nVGFibGVMb2NrZXIgewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKEF0b21pY1N0cmluZ1RhYmxlTG9ja2VyKTsKIHB1YmxpYzoKICAgICBBdG9taWNTdHJp
bmdUYWJsZUxvY2tlcigpIHsgfQotICAgIH5BdG9taWNTdHJpbmdUYWJsZUxvY2tlcigpIHsgfQog
fTsKKwogI2VuZGlmIC8vIFVTRShXRUJfVEhSRUFEKQogCiBzdGF0aWMgQUxXQVlTX0lOTElORSBI
YXNoU2V0PFN0cmluZ0ltcGwqPiYgc3RyaW5nVGFibGUoKQpAQCAtNDYxLDYgKzQ2MywyMiBAQCBB
dG9taWNTdHJpbmcgQXRvbWljU3RyaW5nOjpmcm9tVVRGOEludGVybmFsKGNvbnN0IGNoYXIqIGNo
YXJhY3RlcnNTdGFydCwgY29uc3QgYwogICAgIHJldHVybiBhdG9taWNTdHJpbmc7CiB9CiAKK0F0
b21pY1N0cmluZyBBdG9taWNTdHJpbmc6Om51bWJlcihpbnQgbnVtYmVyKQoreworICAgIHJldHVy
biBudW1iZXJUb1N0cmluZ1NpZ25lZDxBdG9taWNTdHJpbmc+KG51bWJlcik7Cit9CisKK0F0b21p
Y1N0cmluZyBBdG9taWNTdHJpbmc6Om51bWJlcih1bnNpZ25lZCBudW1iZXIpCit7CisgICAgcmV0
dXJuIG51bWJlclRvU3RyaW5nVW5zaWduZWQ8QXRvbWljU3RyaW5nPihudW1iZXIpOworfQorCitB
dG9taWNTdHJpbmcgQXRvbWljU3RyaW5nOjpudW1iZXIoZG91YmxlIG51bWJlcikKK3sKKyAgICBO
dW1iZXJUb1N0cmluZ0J1ZmZlciBidWZmZXI7CisgICAgcmV0dXJuIFN0cmluZyhudW1iZXJUb0Zp
eGVkUHJlY2lzaW9uU3RyaW5nKG51bWJlciwgNiwgYnVmZmVyLCB0cnVlKSk7Cit9CisKICNpZiAh
QVNTRVJUX0RJU0FCTEVECiBib29sIEF0b21pY1N0cmluZzo6aXNJbkF0b21pY1N0cmluZ1RhYmxl
KFN0cmluZ0ltcGwqIHN0cmluZykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
QXRvbWljU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21pY1N0cmluZy5oCmluZGV4
IDJhNzgxMTAxM2EwYzZjYjIwNDJkMjYwNzQ0YTRkN2Y1ZDI2YmQwOGMuLmU0ZjU3ODA2MmUzOWE2
MzYxZDM1NWE5OTY0Y2E0MjQyODU4OTU4YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQXRvbWljU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcu
aApAQCAtMTAxLDcgKzEwMSwxMiBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29u
c3QgeyByZXR1cm4gbV9zdHJpbmcubGVuZ3RoKCk7IH0KICAgICAKICAgICBVQ2hhciBvcGVyYXRv
cltdKHVuc2lnbmVkIGludCBpKSBjb25zdCB7IHJldHVybiBtX3N0cmluZ1tpXTsgfQotICAgIAor
CisgICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJIHN0YXRpYyBBdG9taWNTdHJpbmcgbnVtYmVyKGlu
dCk7CisgICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJIHN0YXRpYyBBdG9taWNTdHJpbmcgbnVtYmVy
KHVuc2lnbmVkKTsKKyAgICBXVEZfRVhQT1JUX1NUUklOR19BUEkgc3RhdGljIEF0b21pY1N0cmlu
ZyBudW1iZXIoZG91YmxlKTsKKyAgICAvLyBJZiB3ZSBuZWVkIG1vcmUgb3ZlcmxvYWRzIG9mIHRo
ZSBudW1iZXIgZnVuY3Rpb24sIHdlIGNhbiBhZGQgYWxsIHRoZSBvdGhlcnMgdGhhdCBTdHJpbmcg
aGFzLCBidXQgdGhlc2Ugc2VlbSB0byBkbyBmb3Igbm93LgorCiAgICAgYm9vbCBjb250YWlucyhV
Q2hhciBjKSBjb25zdCB7IHJldHVybiBtX3N0cmluZy5jb250YWlucyhjKTsgfQogICAgIGJvb2wg
Y29udGFpbnMoY29uc3QgTENoYXIqIHMsIGJvb2wgY2FzZVNlbnNpdGl2ZSA9IHRydWUpIGNvbnN0
CiAgICAgICAgIHsgcmV0dXJuIG1fc3RyaW5nLmNvbnRhaW5zKHMsIGNhc2VTZW5zaXRpdmUpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0ludGVnZXJUb1N0cmluZ0NvbnZlcnNp
b24uaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oCmlu
ZGV4IGUxZjUyMThhYzVmOWE2ZjJiNjA5NDkzNjg3OWJlZWU0YzdkY2I5OWYuLjY0OWZiMDVlZjgw
ODY0ZGJmNTczOWVlNmFjNDI1NzQ4MTU4MDExMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oCkBAIC0yMiw4ICsyMiw3IEBACiAjaWZuZGVm
IEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb25faAogI2RlZmluZSBJbnRlZ2VyVG9TdHJpbmdDb252
ZXJzaW9uX2gKIAotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KLSNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CisjaW5jbHVkZSAiU3RyaW5nQnVpbGRlci5oIgogCiBu
YW1lc3BhY2UgV1RGIHsKIApAQCAtMzIsMzMgKzMxLDI2IEBAIGVudW0gUG9zaXRpdmVPck5lZ2F0
aXZlTnVtYmVyIHsKICAgICBOZWdhdGl2ZU51bWJlcgogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUg
VD4gc3RydWN0IENvbnZlcnNpb25UcmFpdDsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBJ
bnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uVHJhaXQ7CiAKLXRlbXBsYXRlPD4gc3RydWN0IENvbnZl
cnNpb25UcmFpdDxTdHJpbmc+IHsKLSAgICB0eXBlZGVmIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4g
UmV0dXJuVHlwZTsKK3RlbXBsYXRlPD4gc3RydWN0IEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb25U
cmFpdDxBdG9taWNTdHJpbmc+IHsKKyAgICB0eXBlZGVmIEF0b21pY1N0cmluZyBSZXR1cm5UeXBl
OwogICAgIHR5cGVkZWYgdm9pZCBBZGRpdGlvbmFsQXJndW1lbnRUeXBlOwotICAgIHN0YXRpYyBp
bmxpbmUgUmV0dXJuVHlwZSBmbHVzaChMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3Ro
LCB2b2lkKikgeyByZXR1cm4gU3RyaW5nSW1wbDo6Y3JlYXRlKGNoYXJhY3RlcnMsIGxlbmd0aCk7
IH0KKyAgICBzdGF0aWMgUmV0dXJuVHlwZSBmbHVzaChMQ2hhciogY2hhcmFjdGVycywgdW5zaWdu
ZWQgbGVuZ3RoLCB2b2lkKikgeyByZXR1cm4gQXRvbWljU3RyaW5nKGNoYXJhY3RlcnMsIGxlbmd0
aCk7IH0KIH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBDb252ZXJzaW9uVHJhaXQ8U3RyaW5nQnVpbGRl
cj4gewordGVtcGxhdGU8PiBzdHJ1Y3QgSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvblRyYWl0PFN0
cmluZz4geworICAgIHR5cGVkZWYgU3RyaW5nIFJldHVyblR5cGU7CisgICAgdHlwZWRlZiB2b2lk
IEFkZGl0aW9uYWxBcmd1bWVudFR5cGU7CisgICAgc3RhdGljIFJldHVyblR5cGUgZmx1c2goTENo
YXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgdm9pZCopIHsgcmV0dXJuIFN0cmluZyhj
aGFyYWN0ZXJzLCBsZW5ndGgpOyB9Cit9OwordGVtcGxhdGU8PiBzdHJ1Y3QgSW50ZWdlclRvU3Ry
aW5nQ29udmVyc2lvblRyYWl0PFN0cmluZ0J1aWxkZXI+IHsKICAgICB0eXBlZGVmIHZvaWQgUmV0
dXJuVHlwZTsKICAgICB0eXBlZGVmIFN0cmluZ0J1aWxkZXIgQWRkaXRpb25hbEFyZ3VtZW50VHlw
ZTsKLSAgICBzdGF0aWMgaW5saW5lIFJldHVyblR5cGUgZmx1c2goTENoYXIqIGNoYXJhY3RlcnMs
IHVuc2lnbmVkIGxlbmd0aCwgU3RyaW5nQnVpbGRlciogc3RyaW5nQnVpbGRlcikgeyBzdHJpbmdC
dWlsZGVyLT5hcHBlbmQoY2hhcmFjdGVycywgbGVuZ3RoKTsgfQotfTsKLQotdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gc3RydWN0IFVuc2lnbmVkSW50ZWdlclRyYWl0OwotCi10ZW1wbGF0ZTw+IHN0cnVj
dCBVbnNpZ25lZEludGVnZXJUcmFpdDxpbnQ+IHsKLSAgICB0eXBlZGVmIHVuc2lnbmVkIGludCBU
eXBlOwotfTsKLXRlbXBsYXRlPD4gc3RydWN0IFVuc2lnbmVkSW50ZWdlclRyYWl0PGxvbmc+IHsK
LSAgICB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgVHlwZTsKLX07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBV
bnNpZ25lZEludGVnZXJUcmFpdDxsb25nIGxvbmc+IHsKLSAgICB0eXBlZGVmIHVuc2lnbmVkIGxv
bmcgbG9uZyBUeXBlOworICAgIHN0YXRpYyBSZXR1cm5UeXBlIGZsdXNoKExDaGFyKiBjaGFyYWN0
ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIFN0cmluZ0J1aWxkZXIqIHN0cmluZ0J1aWxkZXIpIHsgc3Ry
aW5nQnVpbGRlci0+YXBwZW5kKGNoYXJhY3RlcnMsIGxlbmd0aCk7IH0KIH07CiAKLXRlbXBsYXRl
PHR5cGVuYW1lIFQsIHR5cGVuYW1lIFVuc2lnbmVkSW50ZWdlclR5cGUsIFBvc2l0aXZlT3JOZWdh
dGl2ZU51bWJlciBOdW1iZXJUeXBlPgotc3RhdGljIHR5cGVuYW1lIENvbnZlcnNpb25UcmFpdDxU
Pjo6UmV0dXJuVHlwZSBudW1iZXJUb1N0cmluZ0ltcGwoVW5zaWduZWRJbnRlZ2VyVHlwZSBudW1i
ZXIsIHR5cGVuYW1lIENvbnZlcnNpb25UcmFpdDxUPjo6QWRkaXRpb25hbEFyZ3VtZW50VHlwZSog
YWRkaXRpb25hbEFyZ3VtZW50KQordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVW5zaWdu
ZWRJbnRlZ2VyVHlwZSwgUG9zaXRpdmVPck5lZ2F0aXZlTnVtYmVyIE51bWJlclR5cGUsIHR5cGVu
YW1lIEFkZGl0aW9uYWxBcmd1bWVudFR5cGU+CitzdGF0aWMgdHlwZW5hbWUgSW50ZWdlclRvU3Ry
aW5nQ29udmVyc2lvblRyYWl0PFQ+OjpSZXR1cm5UeXBlIG51bWJlclRvU3RyaW5nSW1wbChVbnNp
Z25lZEludGVnZXJUeXBlIG51bWJlciwgQWRkaXRpb25hbEFyZ3VtZW50VHlwZSBhZGRpdGlvbmFs
QXJndW1lbnQpCiB7CiAgICAgTENoYXIgYnVmW3NpemVvZihVbnNpZ25lZEludGVnZXJUeXBlKSAq
IDMgKyAxXTsKICAgICBMQ2hhciogZW5kID0gYnVmICsgV1RGX0FSUkFZX0xFTkdUSChidWYpOwpA
QCAtNzIsMTkgKzY0LDE5IEBAIHN0YXRpYyB0eXBlbmFtZSBDb252ZXJzaW9uVHJhaXQ8VD46OlJl
dHVyblR5cGUgbnVtYmVyVG9TdHJpbmdJbXBsKFVuc2lnbmVkSW50ZWdlCiAgICAgaWYgKE51bWJl
clR5cGUgPT0gTmVnYXRpdmVOdW1iZXIpCiAgICAgICAgICotLXAgPSAnLSc7CiAKLSAgICByZXR1
cm4gQ29udmVyc2lvblRyYWl0PFQ+OjpmbHVzaChwLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZW5k
IC0gcCksIGFkZGl0aW9uYWxBcmd1bWVudCk7CisgICAgcmV0dXJuIEludGVnZXJUb1N0cmluZ0Nv
bnZlcnNpb25UcmFpdDxUPjo6Zmx1c2gocCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGVuZCAtIHAp
LCBhZGRpdGlvbmFsQXJndW1lbnQpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBTaWduZWRJbnRlZ2VyVHlwZT4KLWlubGluZSB0eXBlbmFtZSBDb252ZXJzaW9uVHJhaXQ8VD46
OlJldHVyblR5cGUgbnVtYmVyVG9TdHJpbmdTaWduZWQoU2lnbmVkSW50ZWdlclR5cGUgbnVtYmVy
LCB0eXBlbmFtZSBDb252ZXJzaW9uVHJhaXQ8VD46OkFkZGl0aW9uYWxBcmd1bWVudFR5cGUqIGFk
ZGl0aW9uYWxBcmd1bWVudCA9IDApCitpbmxpbmUgdHlwZW5hbWUgSW50ZWdlclRvU3RyaW5nQ29u
dmVyc2lvblRyYWl0PFQ+OjpSZXR1cm5UeXBlIG51bWJlclRvU3RyaW5nU2lnbmVkKFNpZ25lZElu
dGVnZXJUeXBlIG51bWJlciwgdHlwZW5hbWUgSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvblRyYWl0
PFQ+OjpBZGRpdGlvbmFsQXJndW1lbnRUeXBlKiBhZGRpdGlvbmFsQXJndW1lbnQgPSBudWxscHRy
KQogewogICAgIGlmIChudW1iZXIgPCAwKQotICAgICAgICByZXR1cm4gbnVtYmVyVG9TdHJpbmdJ
bXBsPFQsIHR5cGVuYW1lIFVuc2lnbmVkSW50ZWdlclRyYWl0PFNpZ25lZEludGVnZXJUeXBlPjo6
VHlwZSwgTmVnYXRpdmVOdW1iZXI+KC1udW1iZXIsIGFkZGl0aW9uYWxBcmd1bWVudCk7Ci0gICAg
cmV0dXJuIG51bWJlclRvU3RyaW5nSW1wbDxULCB0eXBlbmFtZSBVbnNpZ25lZEludGVnZXJUcmFp
dDxTaWduZWRJbnRlZ2VyVHlwZT46OlR5cGUsIFBvc2l0aXZlTnVtYmVyPihudW1iZXIsIGFkZGl0
aW9uYWxBcmd1bWVudCk7CisgICAgICAgIHJldHVybiBudW1iZXJUb1N0cmluZ0ltcGw8VCwgdHlw
ZW5hbWUgc3RkOjptYWtlX3Vuc2lnbmVkPFNpZ25lZEludGVnZXJUeXBlPjo6dHlwZSwgTmVnYXRp
dmVOdW1iZXI+KC1udW1iZXIsIGFkZGl0aW9uYWxBcmd1bWVudCk7CisgICAgcmV0dXJuIG51bWJl
clRvU3RyaW5nSW1wbDxULCB0eXBlbmFtZSBzdGQ6Om1ha2VfdW5zaWduZWQ8U2lnbmVkSW50ZWdl
clR5cGU+Ojp0eXBlLCBQb3NpdGl2ZU51bWJlcj4obnVtYmVyLCBhZGRpdGlvbmFsQXJndW1lbnQp
OwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVbnNpZ25lZEludGVnZXJUeXBl
PgotaW5saW5lIHR5cGVuYW1lIENvbnZlcnNpb25UcmFpdDxUPjo6UmV0dXJuVHlwZSBudW1iZXJU
b1N0cmluZ1Vuc2lnbmVkKFVuc2lnbmVkSW50ZWdlclR5cGUgbnVtYmVyLCB0eXBlbmFtZSBDb252
ZXJzaW9uVHJhaXQ8VD46OkFkZGl0aW9uYWxBcmd1bWVudFR5cGUqIGFkZGl0aW9uYWxBcmd1bWVu
dCA9IDApCitpbmxpbmUgdHlwZW5hbWUgSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvblRyYWl0PFQ+
OjpSZXR1cm5UeXBlIG51bWJlclRvU3RyaW5nVW5zaWduZWQoVW5zaWduZWRJbnRlZ2VyVHlwZSBu
dW1iZXIsIHR5cGVuYW1lIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb25UcmFpdDxUPjo6QWRkaXRp
b25hbEFyZ3VtZW50VHlwZSogYWRkaXRpb25hbEFyZ3VtZW50ID0gbnVsbHB0cikKIHsKICAgICBy
ZXR1cm4gbnVtYmVyVG9TdHJpbmdJbXBsPFQsIFVuc2lnbmVkSW50ZWdlclR5cGUsIFBvc2l0aXZl
TnVtYmVyPihudW1iZXIsIGFkZGl0aW9uYWxBcmd1bWVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dy
YW1tYXIueS5pbgppbmRleCA5ZGM5MWU0M2VjZDZjYjM4ZGE2MTllYTJlZDUyZmE1NWJjMzJhNDM0
Li4wMzIwNGJmZTU4NzExODU4MDNlM2UwZDFkYzJjY2FlMjgxNjlkMjEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NHcmFtbWFyLnkuaW4KQEAgLTEzMDksNyArMTMwOSw3IEBAIHBzZXVkbzoKICAgICAgICAg
JCQgPSBudWxscHRyOwogICAgICAgICBhdXRvIHNlbGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxD
U1NQYXJzZXJTZWxlY3Rvcj4oKTsKICAgICAgICAgc2VsZWN0b3ItPnNldE1hdGNoKENTU1NlbGVj
dG9yOjpQc2V1ZG9DbGFzcyk7Ci0gICAgICAgIHNlbGVjdG9yLT5zZXRBcmd1bWVudChTdHJpbmc6
Om51bWJlcigkNCAqICQ1KSk7CisgICAgICAgIHNlbGVjdG9yLT5zZXRBcmd1bWVudChBdG9taWNT
dHJpbmc6Om51bWJlcigkNCAqICQ1KSk7CiAgICAgICAgIHNlbGVjdG9yLT5zZXRWYWx1ZSgkMik7
CiAgICAgICAgIGlmIChzZWxlY3Rvci0+cHNldWRvVHlwZSgpICE9IENTU1NlbGVjdG9yOjpQc2V1
ZG9Vbmtub3duKQogICAgICAgICAgICAgJCQgPSBzZWxlY3Rvci5yZWxlYXNlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKaW5kZXggMDgzZjM2ZDIxOTNhODZiZjI0ODZkNzU0N2RmOWEyNDViN2Q3ZmEx
Yi4uYjJlNTI4YjcxMjdlODE2N2VkNDYzNjk0YmQ3YmI3Njc1NDk3NDVlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcApAQCAtMjU1Nyw4ICsyNTU3LDcgQEAgaW50IEVsZW1lbnQ6OmdldEludGVncmFs
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpIGNvbnN0CiAKIHZv
aWQgRWxlbWVudDo6c2V0SW50ZWdyYWxBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSwgaW50IHZhbHVlKQogewotICAgIC8vIEZJWE1FOiBOZWVkIGFuIEF0b21pY1N0
cmluZyB2ZXJzaW9uIG9mIFN0cmluZzo6bnVtYmVyLgotICAgIHNldEF0dHJpYnV0ZShhdHRyaWJ1
dGVOYW1lLCBTdHJpbmc6Om51bWJlcih2YWx1ZSkpOworICAgIHNldEF0dHJpYnV0ZShhdHRyaWJ1
dGVOYW1lLCBBdG9taWNTdHJpbmc6Om51bWJlcih2YWx1ZSkpOwogfQogCiB1bnNpZ25lZCBFbGVt
ZW50OjpnZXRVbnNpZ25lZEludGVncmFsQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJpYnV0ZU5hbWUpIGNvbnN0CkBAIC0yNTY4LDggKzI1NjcsNyBAQCB1bnNpZ25lZCBFbGVtZW50
OjpnZXRVbnNpZ25lZEludGVncmFsQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJp
YnV0ZU5hbQogCiB2b2lkIEVsZW1lbnQ6OnNldFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgdW5zaWduZWQgdmFsdWUpCiB7Ci0gICAg
Ly8gRklYTUU6IE5lZWQgYW4gQXRvbWljU3RyaW5nIHZlcnNpb24gb2YgU3RyaW5nOjpudW1iZXIu
Ci0gICAgc2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUsIFN0cmluZzo6bnVtYmVyKHZhbHVlKSk7
CisgICAgc2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUsIEF0b21pY1N0cmluZzo6bnVtYmVyKHZh
bHVlKSk7CiB9CiAKICNpZiBFTkFCTEUoSU5ESUVfVUkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0JyZWFrQmxvY2txdW90ZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9CcmVha0Jsb2NrcXVvdGVDb21tYW5kLmNwcAppbmRleCAzZDM0YjQ2MmNmY2NkMTg2
ZWZhOWNlOTZlNjNkZTI0MzAxMWVhMjY5Li43YjhhNmM2MGY0YjhmY2RkYjNlMTk1NGQ2MzBkMzZl
NTZhMzcyMjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0JyZWFrQmxvY2tx
dW90ZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQnJlYWtCbG9ja3F1
b3RlQ29tbWFuZC5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCB2b2lkIEJyZWFrQmxvY2txdW90ZUNv
bW1hbmQ6OmRvQXBwbHkoKQogICAgICAgICAgICAgd2hpbGUgKGxpc3RDaGlsZE5vZGUgJiYgIWxp
c3RDaGlsZE5vZGUtPmhhc1RhZ05hbWUobGlUYWcpKQogICAgICAgICAgICAgICAgIGxpc3RDaGls
ZE5vZGUgPSBsaXN0Q2hpbGROb2RlLT5uZXh0U2libGluZygpOwogICAgICAgICAgICAgaWYgKGxp
c3RDaGlsZE5vZGUgJiYgbGlzdENoaWxkTm9kZS0+cmVuZGVyZXIoKSAmJiBsaXN0Q2hpbGROb2Rl
LT5yZW5kZXJlcigpLT5pc0xpc3RJdGVtKCkpCi0gICAgICAgICAgICAgICAgc2V0Tm9kZUF0dHJp
YnV0ZShjbG9uZWRDaGlsZCwgc3RhcnRBdHRyLCBTdHJpbmc6Om51bWJlcih0b1JlbmRlckxpc3RJ
dGVtKGxpc3RDaGlsZE5vZGUtPnJlbmRlcmVyKCkpLT52YWx1ZSgpKSk7CisgICAgICAgICAgICAg
ICAgc2V0Tm9kZUF0dHJpYnV0ZShjbG9uZWRDaGlsZCwgc3RhcnRBdHRyLCBBdG9taWNTdHJpbmc6
Om51bWJlcih0b1JlbmRlckxpc3RJdGVtKGxpc3RDaGlsZE5vZGUtPnJlbmRlcmVyKCkpLT52YWx1
ZSgpKSk7CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBhcHBlbmROb2RlKGNsb25l
ZENoaWxkLmdldCgpLCBjbG9uZWRBbmNlc3Rvci5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCb2R5RWxlbWVudC5jcHAKaW5kZXggZGI3NmU3MmQ4YjViODYwMWRlNjMwMzk3ZDgxYzI2NDU0
NjVkYzc0MS4uMTJiYTE5NTYyMWY2MjkyNjBlZDkwNWFmNDg0Y2QwZGM3MTIyNGU5YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcApAQCAtMTY5LDEwICsxNjksMTAgQEAg
Tm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBIVE1MQm9keUVsZW1lbnQ6Omluc2Vy
dGVkSW50byhDb250YWluZXJOb2RlJgogICAgICAgICBIVE1MRnJhbWVFbGVtZW50QmFzZSogb3du
ZXJGcmFtZUVsZW1lbnQgPSB0b0hUTUxGcmFtZUVsZW1lbnRCYXNlKG93bmVyRWxlbWVudCk7CiAg
ICAgICAgIGludCBtYXJnaW5XaWR0aCA9IG93bmVyRnJhbWVFbGVtZW50LT5tYXJnaW5XaWR0aCgp
OwogICAgICAgICBpZiAobWFyZ2luV2lkdGggIT0gLTEpCi0gICAgICAgICAgICBzZXRBdHRyaWJ1
dGUobWFyZ2lud2lkdGhBdHRyLCBTdHJpbmc6Om51bWJlcihtYXJnaW5XaWR0aCkpOworICAgICAg
ICAgICAgc2V0SW50ZWdyYWxBdHRyaWJ1dGUobWFyZ2lud2lkdGhBdHRyLCBtYXJnaW5XaWR0aCk7
CiAgICAgICAgIGludCBtYXJnaW5IZWlnaHQgPSBvd25lckZyYW1lRWxlbWVudC0+bWFyZ2luSGVp
Z2h0KCk7CiAgICAgICAgIGlmIChtYXJnaW5IZWlnaHQgIT0gLTEpCi0gICAgICAgICAgICBzZXRB
dHRyaWJ1dGUobWFyZ2luaGVpZ2h0QXR0ciwgU3RyaW5nOjpudW1iZXIobWFyZ2luSGVpZ2h0KSk7
CisgICAgICAgICAgICBzZXRJbnRlZ3JhbEF0dHJpYnV0ZShtYXJnaW5oZWlnaHRBdHRyLCBtYXJn
aW5IZWlnaHQpOwogICAgIH0KIAogICAgIHJldHVybiBJbnNlcnRpb25Eb25lOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCAxYzg4NTdjNzA2YzcwZTc4Zjkz
OTg2Y2I5NTAzNjkwNTJhNzk0ZTc1Li5iNzNkNjgyOTc2MWJmYjBkMjNkY2FiNjY3YWMxOWEwMDA3
ZDlkN2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAt
MTUzLDEyICsxNTMsMTIgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cmVtb3ZlT2JzZXJ2ZXIo
Q2FudmFzT2JzZXJ2ZXIqIG9ic2VydmVyKQogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRI
ZWlnaHQoaW50IHZhbHVlKQogewotICAgIHNldEF0dHJpYnV0ZShoZWlnaHRBdHRyLCBTdHJpbmc6
Om51bWJlcih2YWx1ZSkpOworICAgIHNldEludGVncmFsQXR0cmlidXRlKGhlaWdodEF0dHIsIHZh
bHVlKTsKIH0KIAogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6c2V0V2lkdGgoaW50IHZhbHVlKQog
ewotICAgIHNldEF0dHJpYnV0ZSh3aWR0aEF0dHIsIFN0cmluZzo6bnVtYmVyKHZhbHVlKSk7Cisg
ICAgc2V0SW50ZWdyYWxBdHRyaWJ1dGUod2lkdGhBdHRyLCB2YWx1ZSk7CiB9CiAKICNpZiBFTkFC
TEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IDIwODYxNGNlYjhj
YTJhY2E1OWY2NTZjYWJlZTNmODJiYzM3NTk3YzYuLjg4N2ViZTQ5MjQ0YWFkZTFiNjEzNDJjMWY3
NDgxYTNhMWM5MGM2MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC03Mjks
NyArNzI5LDcgQEAgc2hvcnQgSFRNTEVsZW1lbnQ6OnRhYkluZGV4KCkgY29uc3QKIAogdm9pZCBI
VE1MRWxlbWVudDo6c2V0VGFiSW5kZXgoaW50IHZhbHVlKQogewotICAgIHNldEF0dHJpYnV0ZSh0
YWJpbmRleEF0dHIsIFN0cmluZzo6bnVtYmVyKHZhbHVlKSk7CisgICAgc2V0SW50ZWdyYWxBdHRy
aWJ1dGUodGFiaW5kZXhBdHRyLCB2YWx1ZSk7CiB9CiAKIFRyYW5zbGF0ZUF0dHJpYnV0ZU1vZGUg
SFRNTEVsZW1lbnQ6OnRyYW5zbGF0ZUF0dHJpYnV0ZU1vZGUoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggYmQyMGQ2M2UyMGI0ZDBlMTE0OTk5ODQ4
YmEyNTE4ZWMwN2RkNTgwNy4uNzYxMWQ4NGQ0NmFhNGJlMzhhMThjZjRjMzhjNTk5ZDkxZTI4OWRk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCkBAIC0zMzQsNyAr
MzM0LDcgQEAgYm9vbCBIVE1MSW1hZ2VFbGVtZW50OjpkcmFnZ2FibGUoKSBjb25zdAogCiB2b2lk
IEhUTUxJbWFnZUVsZW1lbnQ6OnNldEhlaWdodChpbnQgdmFsdWUpCiB7Ci0gICAgc2V0QXR0cmli
dXRlKGhlaWdodEF0dHIsIFN0cmluZzo6bnVtYmVyKHZhbHVlKSk7CisgICAgc2V0SW50ZWdyYWxB
dHRyaWJ1dGUoaGVpZ2h0QXR0ciwgdmFsdWUpOwogfQogCiBVUkwgSFRNTEltYWdlRWxlbWVudDo6
c3JjKCkgY29uc3QKQEAgLTM0OSw3ICszNDksNyBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnNl
dFNyYyhjb25zdCBTdHJpbmcmIHZhbHVlKQogCiB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnNldFdp
ZHRoKGludCB2YWx1ZSkKIHsKLSAgICBzZXRBdHRyaWJ1dGUod2lkdGhBdHRyLCBTdHJpbmc6Om51
bWJlcih2YWx1ZSkpOworICAgIHNldEludGVncmFsQXR0cmlidXRlKHdpZHRoQXR0ciwgdmFsdWUp
OwogfQogCiBpbnQgSFRNTEltYWdlRWxlbWVudDo6eCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCA4YmIyNWYyODBmY2I2MjE5NmVlNWExZTk5NDRl
NDYxYTg0YjRkNDBjLi40NzAxYWEwOWVjMDE0Y2U4NjdjMDdjYjNiMzk4M2UyODFlNzJlZDE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTEzMTIsNyArMTMx
Miw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0TWF4TGVuZ3RoKGludCBtYXhMZW5ndGgs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIGlmIChtYXhMZW5ndGggPCAwKQogICAgICAgICBlYyA9
IElOREVYX1NJWkVfRVJSOwogICAgIGVsc2UKLSAgICAgICAgc2V0QXR0cmlidXRlKG1heGxlbmd0
aEF0dHIsIFN0cmluZzo6bnVtYmVyKG1heExlbmd0aCkpOworICAgICAgICBzZXRJbnRlZ3JhbEF0
dHJpYnV0ZShtYXhsZW5ndGhBdHRyLCBtYXhMZW5ndGgpOwogfQogCiBib29sIEhUTUxJbnB1dEVs
ZW1lbnQ6Om11bHRpcGxlKCkgY29uc3QKQEAgLTEzMjIsNyArMTMyMiw3IEBAIGJvb2wgSFRNTElu
cHV0RWxlbWVudDo6bXVsdGlwbGUoKSBjb25zdAogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNl
dFNpemUodW5zaWduZWQgc2l6ZSkKIHsKLSAgICBzZXRBdHRyaWJ1dGUoc2l6ZUF0dHIsIFN0cmlu
Zzo6bnVtYmVyKHNpemUpKTsKKyAgICBzZXRVbnNpZ25lZEludGVncmFsQXR0cmlidXRlKHNpemVB
dHRyLCBzaXplKTsKIH0KIAogdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRTaXplKHVuc2lnbmVk
IHNpemUsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMTg4MCwxMiArMTg4MCwxMiBAQCB1bnNpZ25l
ZCBIVE1MSW5wdXRFbGVtZW50Ojp3aWR0aCgpIGNvbnN0CiAKIHZvaWQgSFRNTElucHV0RWxlbWVu
dDo6c2V0SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCkKIHsKLSAgICBzZXRBdHRyaWJ1dGUoaGVpZ2h0
QXR0ciwgU3RyaW5nOjpudW1iZXIoaGVpZ2h0KSk7CisgICAgc2V0VW5zaWduZWRJbnRlZ3JhbEF0
dHJpYnV0ZShoZWlnaHRBdHRyLCBoZWlnaHQpOwogfQogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6
OnNldFdpZHRoKHVuc2lnbmVkIHdpZHRoKQogewotICAgIHNldEF0dHJpYnV0ZSh3aWR0aEF0dHIs
IFN0cmluZzo6bnVtYmVyKHdpZHRoKSk7CisgICAgc2V0VW5zaWduZWRJbnRlZ3JhbEF0dHJpYnV0
ZSh3aWR0aEF0dHIsIHdpZHRoKTsKIH0KIAogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggNGI5ZjBhNjE3NmU4
NjFhYzkyMjEwNzllMzU1NTYwZmYxNDJiZDg1Yy4uOTJlYzVkY2NjZjA3ZjJhOWRiYWViNDI0ZDNk
NWU5MjA0NTg4YWIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CkBAIC01MTEzLDggKzUxMTMsOCBAQCBMYXlvdXRSZWN0IEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlh
UGxheWVyQ29udGVudEJveFJlY3QoKSBjb25zdAogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhUGxheWVyU2V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogewotICAgIHNldEF0dHJpYnV0
ZSh3aWR0aEF0dHIsIFN0cmluZzo6bnVtYmVyKHNpemUud2lkdGgoKSkpOwotICAgIHNldEF0dHJp
YnV0ZShoZWlnaHRBdHRyLCBTdHJpbmc6Om51bWJlcihzaXplLmhlaWdodCgpKSk7CisgICAgc2V0
SW50ZWdyYWxBdHRyaWJ1dGUod2lkdGhBdHRyLCBzaXplLndpZHRoKCkpOworICAgIHNldEludGVn
cmFsQXR0cmlidXRlKGhlaWdodEF0dHIsIHNpemUuaGVpZ2h0KCkpOwogfQogCiB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyUGF1c2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
dGVyRWxlbWVudC5jcHAKaW5kZXggMGU4YWIyNzRlMDM5OTUwNGY1OTY3YTA3ODMwNzM4MjU0ZDhh
ZjI1Ny4uN2E0Nzc4MzI4YTZjMDFiMWUzODQyZjlkODk2YjVkMGU0NmQ0ZjYzMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQg
SFRNTE1ldGVyRWxlbWVudDo6c2V0TWluKGRvdWJsZSBtaW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQot
ICAgIHNldEF0dHJpYnV0ZShtaW5BdHRyLCBTdHJpbmc6Om51bWJlcihtaW4pKTsKKyAgICBzZXRB
dHRyaWJ1dGUobWluQXR0ciwgQXRvbWljU3RyaW5nOjpudW1iZXIobWluKSk7CiB9CiAKIGRvdWJs
ZSBIVE1MTWV0ZXJFbGVtZW50OjptYXgoKSBjb25zdApAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQg
SFRNTE1ldGVyRWxlbWVudDo6c2V0TWF4KGRvdWJsZSBtYXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQot
ICAgIHNldEF0dHJpYnV0ZShtYXhBdHRyLCBTdHJpbmc6Om51bWJlcihtYXgpKTsKKyAgICBzZXRB
dHRyaWJ1dGUobWF4QXR0ciwgQXRvbWljU3RyaW5nOjpudW1iZXIobWF4KSk7CiB9CiAKIGRvdWJs
ZSBIVE1MTWV0ZXJFbGVtZW50Ojp2YWx1ZSgpIGNvbnN0CkBAIC0xMTgsNyArMTE4LDcgQEAgdm9p
ZCBIVE1MTWV0ZXJFbGVtZW50OjpzZXRWYWx1ZShkb3VibGUgdmFsdWUsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwogICAgICAgICByZXR1cm47CiAg
ICAgfQotICAgIHNldEF0dHJpYnV0ZSh2YWx1ZUF0dHIsIFN0cmluZzo6bnVtYmVyKHZhbHVlKSk7
CisgICAgc2V0QXR0cmlidXRlKHZhbHVlQXR0ciwgQXRvbWljU3RyaW5nOjpudW1iZXIodmFsdWUp
KTsKIH0KIAogZG91YmxlIEhUTUxNZXRlckVsZW1lbnQ6OmxvdygpIGNvbnN0CkBAIC0xMzMsNyAr
MTMzLDcgQEAgdm9pZCBIVE1MTWV0ZXJFbGVtZW50OjpzZXRMb3coZG91YmxlIGxvdywgRXhjZXB0
aW9uQ29kZSYgZWMpCiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgc2V0QXR0cmlidXRlKGxvd0F0dHIsIFN0cmluZzo6bnVtYmVyKGxv
dykpOworICAgIHNldEF0dHJpYnV0ZShsb3dBdHRyLCBBdG9taWNTdHJpbmc6Om51bWJlcihsb3cp
KTsKIH0KIAogZG91YmxlIEhUTUxNZXRlckVsZW1lbnQ6OmhpZ2goKSBjb25zdApAQCAtMTQ4LDcg
KzE0OCw3IEBAIHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6c2V0SGlnaChkb3VibGUgaGlnaCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0gICAgc2V0QXR0cmlidXRlKGhpZ2hBdHRyLCBTdHJpbmc6Om51bWJl
cihoaWdoKSk7CisgICAgc2V0QXR0cmlidXRlKGhpZ2hBdHRyLCBBdG9taWNTdHJpbmc6Om51bWJl
cihoaWdoKSk7CiB9CiAKIGRvdWJsZSBIVE1MTWV0ZXJFbGVtZW50OjpvcHRpbXVtKCkgY29uc3QK
QEAgLTE2Myw3ICsxNjMsNyBAQCB2b2lkIEhUTUxNZXRlckVsZW1lbnQ6OnNldE9wdGltdW0oZG91
YmxlIG9wdGltdW0sIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBlYyA9IE5PVF9TVVBQT1JU
RURfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIHNldEF0dHJpYnV0ZShvcHRpbXVt
QXR0ciwgU3RyaW5nOjpudW1iZXIob3B0aW11bSkpOworICAgIHNldEF0dHJpYnV0ZShvcHRpbXVt
QXR0ciwgQXRvbWljU3RyaW5nOjpudW1iZXIob3B0aW11bSkpOwogfQogCiBIVE1MTWV0ZXJFbGVt
ZW50OjpHYXVnZVJlZ2lvbiBIVE1MTWV0ZXJFbGVtZW50OjpnYXVnZVJlZ2lvbigpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmNwcAppbmRleCA3ZWI3MGRmYjc0OTll
NGRiMTI2ZGQwOTJhMDY5NjQxNjJmZjlmOGY5Li4wOGM2ZTIwOTc1MWQ2ZDFiZTBmZjYyOTM4ZWM2
ZWNmYjU4MTUwMjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5jcHAK
QEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIEhUTUxPTGlzdEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cgogCiB2b2lkIEhUTUxP
TGlzdEVsZW1lbnQ6OnNldFN0YXJ0KGludCBzdGFydCkKIHsKLSAgICBzZXRBdHRyaWJ1dGUoc3Rh
cnRBdHRyLCBTdHJpbmc6Om51bWJlcihzdGFydCkpOworICAgIHNldEludGVncmFsQXR0cmlidXRl
KHN0YXJ0QXR0ciwgc3RhcnQpOwogfQogCiB2b2lkIEhUTUxPTGlzdEVsZW1lbnQ6OnVwZGF0ZUl0
ZW1WYWx1ZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAK
aW5kZXggYTYxNzFmMWEzNjcyZTM4OTUwMzA2YWEzOWIwNmQ2NTAxOGMxNGM0OC4uOTNlMGIzOGJk
ZGYxZTYwZTIzN2IzMWE5ZDBjMGY3ZTczMWMwZGYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBIVE1MUHJv
Z3Jlc3NFbGVtZW50OjpzZXRWYWx1ZShkb3VibGUgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQot
ICAgIHNldEF0dHJpYnV0ZSh2YWx1ZUF0dHIsIFN0cmluZzo6bnVtYmVyKHZhbHVlID49IDAgPyB2
YWx1ZSA6IDApKTsKKyAgICBzZXRBdHRyaWJ1dGUodmFsdWVBdHRyLCBBdG9taWNTdHJpbmc6Om51
bWJlcih2YWx1ZSA+PSAwID8gdmFsdWUgOiAwKSk7CiB9CiAKIGRvdWJsZSBIVE1MUHJvZ3Jlc3NF
bGVtZW50OjptYXgoKSBjb25zdApAQCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgSFRNTFByb2dyZXNz
RWxlbWVudDo6c2V0TWF4KGRvdWJsZSBtYXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBl
YyA9IE5PVF9TVVBQT1JURURfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIHNldEF0
dHJpYnV0ZShtYXhBdHRyLCBTdHJpbmc6Om51bWJlcihtYXggPiAwID8gbWF4IDogMSkpOworICAg
IHNldEF0dHJpYnV0ZShtYXhBdHRyLCBBdG9taWNTdHJpbmc6Om51bWJlcihtYXggPiAwID8gbWF4
IDogMSkpOwogfQogCiBkb3VibGUgSFRNTFByb2dyZXNzRWxlbWVudDo6cG9zaXRpb24oKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCA2ZDc1NDMw
MzlhZTcyNTA0MTk3YmZhMWUyNTllY2MxMjFkOTg5NTcxLi5kMWQ3YzI2MDc3YWNhN2U4YTU3ODk2
YWIxZDFhMzhjNWEzNjRmMzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmNwcApAQCAtMjk4LDcgKzI5OCw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0CiAgICAg
ICAgIC8vIFNldCB0aGUgYXR0cmlidXRlIHZhbHVlIHRvIGEgbnVtYmVyLgogICAgICAgICAvLyBU
aGlzIGlzIGltcG9ydGFudCBzaW5jZSB0aGUgc3R5bGUgcnVsZXMgZm9yIHRoaXMgYXR0cmlidXRl
IGNhbiBkZXRlcm1pbmUgdGhlIGFwcGVhcmFuY2UgcHJvcGVydHkuCiAgICAgICAgIGludCBzaXpl
ID0gdmFsdWUudG9JbnQoKTsKLSAgICAgICAgU3RyaW5nIGF0dHJTaXplID0gU3RyaW5nOjpudW1i
ZXIoc2l6ZSk7CisgICAgICAgIEF0b21pY1N0cmluZyBhdHRyU2l6ZSA9IEF0b21pY1N0cmluZzo6
bnVtYmVyKHNpemUpOwogICAgICAgICBpZiAoYXR0clNpemUgIT0gdmFsdWUpIHsKICAgICAgICAg
ICAgIC8vIEZJWE1FOiBUaGlzIGlzIGhvcnJpYmx5IGZhY3RvcmVkLgogICAgICAgICAgICAgaWYg
KEF0dHJpYnV0ZSogc2l6ZUF0dHJpYnV0ZSA9IGVuc3VyZVVuaXF1ZUVsZW1lbnREYXRhKCkuZmlu
ZEF0dHJpYnV0ZUJ5TmFtZShzaXplQXR0cikpCkBAIC00MTYsNyArNDE2LDcgQEAgdm9pZCBIVE1M
U2VsZWN0RWxlbWVudDo6c2V0TXVsdGlwbGUoYm9vbCBtdWx0aXBsZSkKIAogdm9pZCBIVE1MU2Vs
ZWN0RWxlbWVudDo6c2V0U2l6ZShpbnQgc2l6ZSkKIHsKLSAgICBzZXRBdHRyaWJ1dGUoc2l6ZUF0
dHIsIFN0cmluZzo6bnVtYmVyKHNpemUpKTsKKyAgICBzZXRJbnRlZ3JhbEF0dHJpYnV0ZShzaXpl
QXR0ciwgc2l6ZSk7CiB9CiAKIE5vZGUqIEhUTUxTZWxlY3RFbGVtZW50OjpuYW1lZEl0ZW0oY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVDZWxsRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNl
bGxFbGVtZW50LmNwcAppbmRleCBkZDAyMjQ5YzkxM2EzNDBlOWEzOTQzYzY3NTI2M2QyNzA5Nzkw
NzE1Li45NWM4NDM4ZTZiMGQyZWRiMWMwZWQ4ZGNiM2I3ODBjYmJkMzFjNmYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcApAQCAtMTQxLDcgKzE0MSw3
IEBAIFN0cmluZyBIVE1MVGFibGVDZWxsRWxlbWVudDo6YXhpcygpIGNvbnN0CiAKIHZvaWQgSFRN
TFRhYmxlQ2VsbEVsZW1lbnQ6OnNldENvbFNwYW4oaW50IG4pCiB7Ci0gICAgc2V0QXR0cmlidXRl
KGNvbHNwYW5BdHRyLCBTdHJpbmc6Om51bWJlcihuKSk7CisgICAgc2V0SW50ZWdyYWxBdHRyaWJ1
dGUoY29sc3BhbkF0dHIsIG4pOwogfQogCiBTdHJpbmcgSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6Omhl
YWRlcnMoKSBjb25zdApAQCAtMTUxLDcgKzE1MSw3IEBAIFN0cmluZyBIVE1MVGFibGVDZWxsRWxl
bWVudDo6aGVhZGVycygpIGNvbnN0CiAKIHZvaWQgSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OnNldFJv
d1NwYW4oaW50IG4pCiB7Ci0gICAgc2V0QXR0cmlidXRlKHJvd3NwYW5BdHRyLCBTdHJpbmc6Om51
bWJlcihuKSk7CisgICAgc2V0SW50ZWdyYWxBdHRyaWJ1dGUocm93c3BhbkF0dHIsIG4pOwogfQog
CiBTdHJpbmcgSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OnNjb3BlKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuY3BwCmluZGV4IGY5ZWViODcyYWEyYWM4ZWU2
YmJkMzBjYTkwN2NlMDUwOTEzMGZlN2YuLmQ4YjQwM2ViMmQ5ZTE2MDQwNmI1YjAyNGMwNmQ4ZTM3
ZjA4MjBjNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmNw
cApAQCAtOTIsNyArOTIsNyBAQCBjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBIVE1MVGFibGVDb2xF
bGVtZW50OjphZGRpdGlvbmFsUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bAogCiB2b2lkIEhUTUxU
YWJsZUNvbEVsZW1lbnQ6OnNldFNwYW4oaW50IG4pCiB7Ci0gICAgc2V0QXR0cmlidXRlKHNwYW5B
dHRyLCBTdHJpbmc6Om51bWJlcihuKSk7CisgICAgc2V0SW50ZWdyYWxBdHRyaWJ1dGUoc3BhbkF0
dHIsIG4pOwogfQogCiBTdHJpbmcgSFRNTFRhYmxlQ29sRWxlbWVudDo6d2lkdGgoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggMGZkMDcz
OWE5YWExNjY5NTUyMzJmOTQ1Njk4NDU5MDg2ZjdkNmU2Ny4uZGQwMzNkOTdmYTNjNmM5MWIxMmJk
YzY5MDE1ODYwZmY1ZDUxM2M2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJl
YUVsZW1lbnQuY3BwCkBAIC00NDAsNyArNDQwLDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50
OjpzZXRNYXhMZW5ndGgoaW50IG5ld1ZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBpZiAo
bmV3VmFsdWUgPCAwKQogICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwogICAgIGVsc2UKLSAg
ICAgICAgc2V0QXR0cmlidXRlKG1heGxlbmd0aEF0dHIsIFN0cmluZzo6bnVtYmVyKG5ld1ZhbHVl
KSk7CisgICAgICAgIHNldEludGVncmFsQXR0cmlidXRlKG1heGxlbmd0aEF0dHIsIG5ld1ZhbHVl
KTsKIH0KIAogU3RyaW5nIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnZhbGlkYXRpb25NZXNzYWdlKCkg
Y29uc3QKQEAgLTQ5OCwxMiArNDk4LDEyIEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6YWNj
ZXNzS2V5QWN0aW9uKGJvb2wpCiAKIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6c2V0Q29scyhp
bnQgY29scykKIHsKLSAgICBzZXRBdHRyaWJ1dGUoY29sc0F0dHIsIFN0cmluZzo6bnVtYmVyKGNv
bHMpKTsKKyAgICBzZXRJbnRlZ3JhbEF0dHJpYnV0ZShjb2xzQXR0ciwgY29scyk7CiB9CiAKIHZv
aWQgSFRNTFRleHRBcmVhRWxlbWVudDo6c2V0Um93cyhpbnQgcm93cykKIHsKLSAgICBzZXRBdHRy
aWJ1dGUocm93c0F0dHIsIFN0cmluZzo6bnVtYmVyKHJvd3MpKTsKKyAgICBzZXRJbnRlZ3JhbEF0
dHJpYnV0ZShyb3dzQXR0ciwgcm93cyk7CiB9CiAKIGJvb2wgSFRNTFRleHRBcmVhRWxlbWVudDo6
c2hvdWxkVXNlSW5wdXRNZXRob2QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IGRhZWY3MjExZDRkNDk5NmMyYjUxYzY0
Y2MxYTgxMzJmZDBhNmFmMDUuLjZiYTI4NzJjYzhmZmMyMmI1NGQxZjBkZGVkMGYzMWU3M2I4Y2M1
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVs
ZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xF
bGVtZW50cy5jcHAKQEAgLTk3Nyw3ICs5NzcsNyBAQCB2b2lkIE1lZGlhQ29udHJvbFRpbWVsaW5l
RWxlbWVudDo6c2V0UG9zaXRpb24oZG91YmxlIGN1cnJlbnRUaW1lKQogCiB2b2lkIE1lZGlhQ29u
dHJvbFRpbWVsaW5lRWxlbWVudDo6c2V0RHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKQogewotICAg
IHNldEF0dHJpYnV0ZShtYXhBdHRyLCBTdHJpbmc6Om51bWJlcihzdGQ6OmlzZmluaXRlKGR1cmF0
aW9uKSA/IGR1cmF0aW9uIDogMCkpOworICAgIHNldEF0dHJpYnV0ZShtYXhBdHRyLCBBdG9taWNT
dHJpbmc6Om51bWJlcihzdGQ6OmlzZmluaXRlKGR1cmF0aW9uKSA/IGR1cmF0aW9uIDogMCkpOwog
fQogCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>