<?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>141972</bug_id>
          
          <creation_ts>2015-02-24 09:50:33 -0800</creation_ts>
          <short_desc>Switch BackgroundImageGeometry&apos;s m_phase from LayoutPoint to LayoutSize.</short_desc>
          <delta_ts>2015-02-24 12:43:01 -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>Layout and Rendering</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1071693</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2015-02-24 09:50:33 -0800</bug_when>
    <thetext>as it represents distance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071697</commentid>
    <comment_count>1</comment_count>
      <attachid>247238</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-02-24 09:59:53 -0800</bug_when>
    <thetext>Created attachment 247238
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071721</commentid>
    <comment_count>2</comment_count>
      <attachid>247245</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-02-24 10:54:22 -0800</bug_when>
    <thetext>Created attachment 247245
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071727</commentid>
    <comment_count>3</comment_count>
      <attachid>247247</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-02-24 11:13:25 -0800</bug_when>
    <thetext>Created attachment 247247
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071748</commentid>
    <comment_count>4</comment_count>
      <attachid>247247</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-24 12:42:58 -0800</bug_when>
    <thetext>Comment on attachment 247247
Patch

Clearing flags on attachment: 247247

Committed r180580: &lt;http://trac.webkit.org/changeset/180580&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071749</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-24 12:43:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247238</attachid>
            <date>2015-02-24 09:59:53 -0800</date>
            <delta_ts>2015-02-24 10:54:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141972-20150224095941.patch</filename>
            <type>text/plain</type>
            <size>16686</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwNTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDM4YTU0Yjg0MzdhMDIw
NWEwYWQwYzJjZjQ4YmYyNzI3MDBhYmE3OC4uNThmM2ViZmNjNjcxY2VkYzkxN2M5MTFlNjEzM2Mz
MTFmYjkxNjI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE1LTAyLTI0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3dpdGNoIEJhY2tncm91bmRJ
bWFnZUdlb21ldHJ5J3MgbV9waGFzZSBmcm9tIExheW91dFBvaW50IHRvIExheW91dFNpemUuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE5NzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBjaGFuZ2Ug
aW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIFdlYkNvcmUub3JkZXI6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllcjo6c2V0Q29udGVudHNUaWxlUGhhc2UpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllcjo6Y29udGVudHNUaWxlUGhhc2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dHVyZU1hcHBlckxheWVyOjpjb21wdXRlUGF0dGVyblRyYW5zZm9ybUlmTmVlZGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6c2V0Q29udGVudHNUaWxlUGhhc2UpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6c2V0Q29udGVudHNUaWxlUGhhc2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9i
amVjdDo6cGFpbnRGaWxsTGF5ZXJFeHRlbmRlZCk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrZ3Jv
dW5kSW1hZ2VHZW9tZXRyeTo6c2V0Tm9SZXBlYXRYKToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tn
cm91bmRJbWFnZUdlb21ldHJ5OjpzZXROb1JlcGVhdFkpOgorICAgICAgICAoV2ViQ29yZTo6QmFj
a2dyb3VuZEltYWdlR2VvbWV0cnk6OnVzZUZpeGVkQXR0YWNobWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeTo6cmVsYXRpdmVQaGFzZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGl4ZWxTbmFwQmFja2dyb3VuZEltYWdlR2Vv
bWV0cnlGb3JQYWludGluZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVj
dDo6Z2V0R2VvbWV0cnlGb3JCYWNrZ3JvdW5kSW1hZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEltYWdl
R2VvbWV0cnk6OnBoYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRJbWFnZUdlb21l
dHJ5OjpzZXRQaGFzZSk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRy
eTo6c2V0UGhhc2VYKToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRJbWFnZUdlb21ldHJ5
OjpzZXRQaGFzZVkpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpyZXNldENvbnRlbnRzUmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZURpcmVjdGx5
Q29tcG9zaXRlZEJhY2tncm91bmRJbWFnZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSZXNvdXJjZU1hc2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNv
dXJjZU1hc2tlcjo6ZHJhd01hc2tGb3JSZW5kZXJlcik6CisKIDIwMTUtMDItMjMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBMb2cgdXNpbmcgZGlhZ25vc3RpYyBs
b2dnaW5nIHdoaWNoIEFjdGl2ZURPTU9iamVjdHMgcHJldmVudCB1c2luZyB0aGUgUGFnZUNhY2hl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5vcmRlcgppbmRleCA1NTZiMzZjNDMxMzRiYmRlOTIwYTRjZDZiODQzYWY4ZGE0
MzZkN2QzLi42NTcyZTVkZjVmZWY0YmMyODlhYTg0NTZiNzNhYTM2NTlkMGJiOTlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUub3JkZXIKQEAgLTI4NjQsNyArMjg2NCw3IEBAIF9fWk5LN1dlYkNvcmUyMFJlbmRlckJv
eE1vZGVsT2JqZWN0MTBwYWRkaW5nVG9wRXYKIF9fWk5LN1dlYkNvcmUyMFJlbmRlckJveE1vZGVs
T2JqZWN0MTNwYWRkaW5nQm90dG9tRXYKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMTVz
ZXRDb250ZW50c1JlY3RFUktOU183SW50UmVjdEUKIF9fWk43V2ViQ29yZTEzR3JhcGhpY3NMYXll
cjE5c2V0Q29udGVudHNUaWxlU2l6ZUVSS05TXzdJbnRTaXplRQotX19aTjdXZWJDb3JlMTNHcmFw
aGljc0xheWVyMjBzZXRDb250ZW50c1RpbGVQaGFzZUVSS05TXzhJbnRQb2ludEUKK19fWk43V2Vi
Q29yZTEzR3JhcGhpY3NMYXllcjIwc2V0Q29udGVudHNUaWxlUGhhc2VFUktOU185RmxvYXRTaXpl
RQogX19aTjdXZWJDb3JlMThSZW5kZXJMYXllckJhY2tpbmcxOHVwZGF0ZURyYXdzQ29udGVudEVi
CiBfX1pOSzdXZWJDb3JlMThSZW5kZXJMYXllckJhY2tpbmcyMmNvbnRhaW5zUGFpbnRlZENvbnRl
bnRFdgogX19aTjdXZWJDb3JlMThSZW5kZXJMYXllckJhY2tpbmcyM3JlZ2lzdGVyU2Nyb2xsaW5n
TGF5ZXJzRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuaAppbmRleCBlNThiZjI0NWY3NjNhNmNiOTUyYmQ1YzE5ZDEwMGY1YTFmNmYxYmIxLi5j
ZmVhNWViMDg4YmE3ZWMwMmQ5ZWY2MjdmNmEwYWE0OTlkMmIwYWY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC0zNjEsOCArMzYx
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c05lZWRzRGlzcGxheSgp
IHsgfTsKIAogICAgIC8vIFRoZSB0aWxlIHBoYXNlIGlzIHJlbGF0aXZlIHRvIHRoZSBHcmFwaGlj
c0xheWVyIGJvdW5kcy4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUaWxlUGhhc2UoY29u
c3QgRmxvYXRQb2ludCYgcCkgeyBtX2NvbnRlbnRzVGlsZVBoYXNlID0gcDsgfQotICAgIEZsb2F0
UG9pbnQgY29udGVudHNUaWxlUGhhc2UoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRzVGlsZVBo
YXNlOyB9CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVGlsZVBoYXNlKGNvbnN0IEZsb2F0
U2l6ZSYgcCkgeyBtX2NvbnRlbnRzVGlsZVBoYXNlID0gcDsgfQorICAgIEZsb2F0U2l6ZSBjb250
ZW50c1RpbGVQaGFzZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudHNUaWxlUGhhc2U7IH0KIAog
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RpbGVTaXplKGNvbnN0IEZsb2F0U2l6ZSYgcykg
eyBtX2NvbnRlbnRzVGlsZVNpemUgPSBzOyB9CiAgICAgRmxvYXRTaXplIGNvbnRlbnRzVGlsZVNp
emUoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRzVGlsZVNpemU7IH0KQEAgLTU5OSw3ICs1OTks
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgRmxvYXRSZWN0IG1fY29udGVudHNSZWN0OwogICAgIEZsb2F0
Um91bmRlZFJlY3QgbV9jb250ZW50c0NsaXBwaW5nUmVjdDsKICAgICBGbG9hdFJvdW5kZWRSZWN0
IG1fbWFza3NUb0JvdW5kc1JlY3Q7Ci0gICAgRmxvYXRQb2ludCBtX2NvbnRlbnRzVGlsZVBoYXNl
OworICAgIEZsb2F0U2l6ZSBtX2NvbnRlbnRzVGlsZVBoYXNlOwogICAgIEZsb2F0U2l6ZSBtX2Nv
bnRlbnRzVGlsZVNpemU7CiAKICAgICBpbnQgbV9yZXBhaW50Q291bnQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyTGF5ZXIuY3BwCmluZGV4IDE1OTNmNmQ3ZWQwZGVmMWYzYjhjMjQ4ZTM0ZjMyYjBlMjg5ZDVm
YzIuLjYwNGY3YWY4YTE1Njg5NGU5ZGFmMWE4NmViNzZlMWRlMjk0MTcxZTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyTGF5ZXIuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVy
TGF5ZXI6OmNvbXB1dGVQYXR0ZXJuVHJhbnNmb3JtSWZOZWVkZWQoKQogICAgIG1fcGF0dGVyblRy
YW5zZm9ybURpcnR5ID0gZmFsc2U7CiAgICAgbV9wYXR0ZXJuVHJhbnNmb3JtID0KICAgICAgICAg
VHJhbnNmb3JtYXRpb25NYXRyaXg6OnJlY3RUb1JlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQ6Onpl
cm8oKSwgbV9zdGF0ZS5jb250ZW50c1RpbGVTaXplKSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQ6Onpl
cm8oKSwgbV9zdGF0ZS5jb250ZW50c1JlY3Quc2l6ZSgpKSkKLSAgICAgICAgLm11bHRpcGx5KFRy
YW5zZm9ybWF0aW9uTWF0cml4KCkudHJhbnNsYXRlKG1fc3RhdGUuY29udGVudHNUaWxlUGhhc2Uu
eCgpIC8gbV9zdGF0ZS5jb250ZW50c1JlY3Qud2lkdGgoKSwgbV9zdGF0ZS5jb250ZW50c1RpbGVQ
aGFzZS55KCkgLyBtX3N0YXRlLmNvbnRlbnRzUmVjdC5oZWlnaHQoKSkpOworICAgICAgICAubXVs
dGlwbHkoVHJhbnNmb3JtYXRpb25NYXRyaXgoKS50cmFuc2xhdGUobV9zdGF0ZS5jb250ZW50c1Rp
bGVQaGFzZS53aWR0aCgpIC8gbV9zdGF0ZS5jb250ZW50c1JlY3Qud2lkdGgoKSwgbV9zdGF0ZS5j
b250ZW50c1RpbGVQaGFzZS5oZWlnaHQoKSAvIG1fc3RhdGUuY29udGVudHNSZWN0LmhlaWdodCgp
KSk7CiB9CiAKIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpwYWludFNlbGYoY29uc3QgVGV4dHVy
ZU1hcHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucykKQEAgLTU1NCw3ICs1NTQsNyBAQCB2b2lkIFRl
eHR1cmVNYXBwZXJMYXllcjo6c2V0Q29udGVudHNUaWxlU2l6ZShjb25zdCBGbG9hdFNpemUmIHNp
emUpCiAgICAgbV9wYXR0ZXJuVHJhbnNmb3JtRGlydHkgPSB0cnVlOwogfQogCi12b2lkIFRleHR1
cmVNYXBwZXJMYXllcjo6c2V0Q29udGVudHNUaWxlUGhhc2UoY29uc3QgRmxvYXRQb2ludCYgcGhh
c2UpCit2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6c2V0Q29udGVudHNUaWxlUGhhc2UoY29uc3Qg
RmxvYXRTaXplJiBwaGFzZSkKIHsKICAgICBpZiAocGhhc2UgPT0gbV9zdGF0ZS5jb250ZW50c1Rp
bGVQaGFzZSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oCmluZGV4IDVi
Zjc4M2Q4NDc1ZTY3NzM1MjAzODIyYTIxYzVkZDNkYjVlMjg3ZmYuLjJlNzZkN2NkZDBlMTg5YWVk
ZmY2OGIxMTI5ZmQxYTc4MjNhOGJhNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgKQEAgLTEw
Miw3ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPcGFjaXR5KGZsb2F0KTsKICAgICB2
b2lkIHNldFNvbGlkQ29sb3IoY29uc3QgQ29sb3ImKTsKICAgICB2b2lkIHNldENvbnRlbnRzVGls
ZVNpemUoY29uc3QgRmxvYXRTaXplJik7Ci0gICAgdm9pZCBzZXRDb250ZW50c1RpbGVQaGFzZShj
b25zdCBGbG9hdFBvaW50Jik7CisgICAgdm9pZCBzZXRDb250ZW50c1RpbGVQaGFzZShjb25zdCBG
bG9hdFNpemUmKTsKICAgICB2b2lkIHNldEZpbHRlcnMoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYp
OwogCiAgICAgYm9vbCBoYXNGaWx0ZXJzKCkgY29uc3QKQEAgLTIwOSw3ICsyMDksNyBAQCBwcml2
YXRlOgogICAgICAgICBmbG9hdCBvcGFjaXR5OwogICAgICAgICBGbG9hdFJlY3QgY29udGVudHNS
ZWN0OwogICAgICAgICBGbG9hdFNpemUgY29udGVudHNUaWxlU2l6ZTsKLSAgICAgICAgRmxvYXRQ
b2ludCBjb250ZW50c1RpbGVQaGFzZTsKKyAgICAgICAgRmxvYXRTaXplIGNvbnRlbnRzVGlsZVBo
YXNlOwogICAgICAgICBUZXh0dXJlTWFwcGVyTGF5ZXIqIG1hc2tMYXllcjsKICAgICAgICAgVGV4
dHVyZU1hcHBlckxheWVyKiByZXBsaWNhTGF5ZXI7CiAgICAgICAgIENvbG9yIHNvbGlkQ29sb3I7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuY3BwCmluZGV4IDcyMGQyNWUxMThkNzQ1YjdhNWI4YmVkMzhhZjA2YjdiZGIxMDI1ZjguLmUx
NWQyZGFiMzY4ZTA2NjgwOTc0Yjg1M2FiN2E2ZWMxYTQwYThiMWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBAIC0zNTUs
NyArMzU1LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVGls
ZVNpemUoY29uc3QgRmxvYXRTaXplJiBzKQogICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKIH0K
IAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVGlsZVBoYXNlKGNv
bnN0IEZsb2F0UG9pbnQmIHApCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29u
dGVudHNUaWxlUGhhc2UoY29uc3QgRmxvYXRTaXplJiBwKQogewogICAgIGlmIChjb250ZW50c1Rp
bGVQaGFzZSgpID09IHApCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDhlZWZjMzI0MDAwMWRiMWZj
OGQ3NWM3ZGY0NWUzNDIyMGZjODEyNmUuLmJlOGJjNzMxMjEwN2NjM2Y4ODU0Y2U4NjJhM2U4MGZm
NDA5ODFiOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1v
ZGVsT2JqZWN0LmNwcApAQCAtODU5LDcgKzg1OSw3IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmpl
Y3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQoY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNv
CiAgICAgICAgICAgICAgICAgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGluZyA9IHNob3VsZFBhaW50
QXRMb3dRdWFsaXR5KGNvbnRleHQsIGltYWdlLmdldCgpLCBiZ0xheWVyLCBnZW9tZXRyeS50aWxl
U2l6ZSgpKTsKICAgICAgICAgICAgICAgICBpZiAoaW1hZ2UuZ2V0KCkpCiAgICAgICAgICAgICAg
ICAgICAgIGltYWdlLT5zZXRTcGFjZVNpemUoZ2VvbWV0cnkuc3BhY2VTaXplKCkpOwotICAgICAg
ICAgICAgICAgIGNvbnRleHQtPmRyYXdUaWxlZEltYWdlKGltYWdlLmdldCgpLCBzdHlsZSgpLmNv
bG9yU3BhY2UoKSwgZ2VvbWV0cnkuZGVzdFJlY3QoKSwgZ2VvbWV0cnkucmVsYXRpdmVQaGFzZSgp
LCBnZW9tZXRyeS50aWxlU2l6ZSgpLCBJbWFnZVBhaW50aW5nT3B0aW9ucyhjb21wb3NpdGVPcCwg
YmdMYXllci0+YmxlbmRNb2RlKCksIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpLCB1c2VM
b3dRdWFsaXR5U2NhbGluZykpOworICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdUaWxlZElt
YWdlKGltYWdlLmdldCgpLCBzdHlsZSgpLmNvbG9yU3BhY2UoKSwgZ2VvbWV0cnkuZGVzdFJlY3Qo
KSwgdG9MYXlvdXRQb2ludChnZW9tZXRyeS5yZWxhdGl2ZVBoYXNlKCkpLCBnZW9tZXRyeS50aWxl
U2l6ZSgpLCBJbWFnZVBhaW50aW5nT3B0aW9ucyhjb21wb3NpdGVPcCwgYmdMYXllci0+YmxlbmRN
b2RlKCksIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpLCB1c2VMb3dRdWFsaXR5U2NhbGlu
ZykpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMTAzNiwyMCArMTAzNiwy
MCBAQCBMYXlvdXRTaXplIFJlbmRlckJveE1vZGVsT2JqZWN0OjpjYWxjdWxhdGVGaWxsVGlsZVNp
emUoY29uc3QgRmlsbExheWVyKiBmaWxsTGF5ZQogdm9pZCBCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRy
eTo6c2V0Tm9SZXBlYXRYKExheW91dFVuaXQgeE9mZnNldCkKIHsKICAgICBtX2Rlc3RSZWN0Lm1v
dmUoc3RkOjptYXg8TGF5b3V0VW5pdD4oeE9mZnNldCwgMCksIDApOwotICAgIG1fcGhhc2Uuc2V0
WCgtc3RkOjptaW48TGF5b3V0VW5pdD4oeE9mZnNldCwgMCkpOworICAgIG1fcGhhc2Uuc2V0V2lk
dGgoLXN0ZDo6bWluPExheW91dFVuaXQ+KHhPZmZzZXQsIDApKTsKICAgICBtX2Rlc3RSZWN0LnNl
dFdpZHRoKG1fdGlsZVNpemUud2lkdGgoKSArIHN0ZDo6bWluPGZsb2F0Pih4T2Zmc2V0LCAwKSk7
CiB9CiB2b2lkIEJhY2tncm91bmRJbWFnZUdlb21ldHJ5OjpzZXROb1JlcGVhdFkoTGF5b3V0VW5p
dCB5T2Zmc2V0KQogewogICAgIG1fZGVzdFJlY3QubW92ZSgwLCBzdGQ6Om1heDxMYXlvdXRVbml0
Pih5T2Zmc2V0LCAwKSk7Ci0gICAgbV9waGFzZS5zZXRZKC1zdGQ6Om1pbjxMYXlvdXRVbml0Pih5
T2Zmc2V0LCAwKSk7CisgICAgbV9waGFzZS5zZXRIZWlnaHQoLXN0ZDo6bWluPExheW91dFVuaXQ+
KHlPZmZzZXQsIDApKTsKICAgICBtX2Rlc3RSZWN0LnNldEhlaWdodChtX3RpbGVTaXplLmhlaWdo
dCgpICsgc3RkOjptaW48ZmxvYXQ+KHlPZmZzZXQsIDApKTsKIH0KIAogdm9pZCBCYWNrZ3JvdW5k
SW1hZ2VHZW9tZXRyeTo6dXNlRml4ZWRBdHRhY2htZW50KGNvbnN0IExheW91dFBvaW50JiBhdHRh
Y2htZW50UG9pbnQpCiB7CiAgICAgRmxvYXRQb2ludCBhbGlnbmVkUG9pbnQgPSBhdHRhY2htZW50
UG9pbnQ7Ci0gICAgbV9waGFzZS5tb3ZlKHN0ZDo6bWF4PExheW91dFVuaXQ+KGFsaWduZWRQb2lu
dC54KCkgLSBtX2Rlc3RSZWN0LngoKSwgMCksIHN0ZDo6bWF4PExheW91dFVuaXQ+KGFsaWduZWRQ
b2ludC55KCkgLSBtX2Rlc3RSZWN0LnkoKSwgMCkpOworICAgIG1fcGhhc2UuZXhwYW5kKHN0ZDo6
bWF4PExheW91dFVuaXQ+KGFsaWduZWRQb2ludC54KCkgLSBtX2Rlc3RSZWN0LngoKSwgMCksIHN0
ZDo6bWF4PExheW91dFVuaXQ+KGFsaWduZWRQb2ludC55KCkgLSBtX2Rlc3RSZWN0LnkoKSwgMCkp
OwogfQogCiB2b2lkIEJhY2tncm91bmRJbWFnZUdlb21ldHJ5OjpjbGlwKGNvbnN0IExheW91dFJl
Y3QmIGNsaXBSZWN0KQpAQCAtMTA1Nyw5ICsxMDU3LDkgQEAgdm9pZCBCYWNrZ3JvdW5kSW1hZ2VH
ZW9tZXRyeTo6Y2xpcChjb25zdCBMYXlvdXRSZWN0JiBjbGlwUmVjdCkKICAgICBtX2Rlc3RSZWN0
LmludGVyc2VjdChjbGlwUmVjdCk7CiB9CiAKLUxheW91dFBvaW50IEJhY2tncm91bmRJbWFnZUdl
b21ldHJ5OjpyZWxhdGl2ZVBoYXNlKCkgY29uc3QKK0xheW91dFNpemUgQmFja2dyb3VuZEltYWdl
R2VvbWV0cnk6OnJlbGF0aXZlUGhhc2UoKSBjb25zdAogewotICAgIExheW91dFBvaW50IHBoYXNl
ID0gbV9waGFzZTsKKyAgICBMYXlvdXRTaXplIHBoYXNlID0gbV9waGFzZTsKICAgICBwaGFzZSAr
PSBtX2Rlc3RSZWN0LmxvY2F0aW9uKCkgLSBtX2Rlc3RPcmlnaW47CiAgICAgcmV0dXJuIHBoYXNl
OwogfQpAQCAtMTA5OCw3ICsxMDk4LDggQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGl4
ZWxTbmFwQmFja2dyb3VuZEltYWdlR2VvbWV0cnlGb3JQYWludGluZyhCYWNrZ3JvdW4KICAgICBn
ZW9tZXRyeS5zZXRTcGFjZVNpemUoTGF5b3V0U2l6ZShzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKExh
eW91dFJlY3QoTGF5b3V0UG9pbnQoKSwgZ2VvbWV0cnkuc3BhY2VTaXplKCkpLCBkZXZpY2VTY2Fs
ZUZhY3Rvcikuc2l6ZSgpKSk7CiAgICAgZ2VvbWV0cnkuc2V0RGVzdE9yaWdpbihMYXlvdXRQb2lu
dChyb3VuZFBvaW50VG9EZXZpY2VQaXhlbHMoZ2VvbWV0cnkuZGVzdE9yaWdpbigpLCBkZXZpY2VT
Y2FsZUZhY3RvcikpKTsKICAgICBnZW9tZXRyeS5zZXREZXN0UmVjdChMYXlvdXRSZWN0KHNuYXBS
ZWN0VG9EZXZpY2VQaXhlbHMoZ2VvbWV0cnkuZGVzdFJlY3QoKSwgZGV2aWNlU2NhbGVGYWN0b3Ip
KSk7Ci0gICAgZ2VvbWV0cnkuc2V0UGhhc2UoTGF5b3V0UG9pbnQocm91bmRQb2ludFRvRGV2aWNl
UGl4ZWxzKGdlb21ldHJ5LnBoYXNlKCksIGRldmljZVNjYWxlRmFjdG9yKSkpOworICAgIEZsb2F0
U2l6ZSBwaXhlbFNuYXBwZWRQaGFzZSA9IHRvRmxvYXRTaXplKHJvdW5kUG9pbnRUb0RldmljZVBp
eGVscyh0b0xheW91dFBvaW50KGdlb21ldHJ5LnBoYXNlKCkpLCBkZXZpY2VTY2FsZUZhY3Rvcikp
OworICAgIGdlb21ldHJ5LnNldFBoYXNlKExheW91dFNpemUocGl4ZWxTbmFwcGVkUGhhc2UpKTsK
IH0KIAogdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlQmFja2dyb3VuZEltYWdl
R2VvbWV0cnkoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcGFpbnRDb250YWluZXIsIGNv
bnN0IEZpbGxMYXllciogZmlsbExheWVyLCBjb25zdCBMYXlvdXRSZWN0JiBwYWludFJlY3QsCkBA
IC0xMjUwLDcgKzEyNTEsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpjYWxjdWxhdGVC
YWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeShjb25zdCBSZW5kZXJMYXllck1vZAogICAgIHBpeGVsU25h
cEJhY2tncm91bmRJbWFnZUdlb21ldHJ5Rm9yUGFpbnRpbmcoZ2VvbWV0cnkpOwogfQogCi12b2lk
IFJlbmRlckJveE1vZGVsT2JqZWN0OjpnZXRHZW9tZXRyeUZvckJhY2tncm91bmRJbWFnZShjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiBkZXN0
UmVjdCwgRmxvYXRQb2ludCYgcGhhc2UsIEZsb2F0U2l6ZSYgdGlsZVNpemUpIGNvbnN0Cit2b2lk
IFJlbmRlckJveE1vZGVsT2JqZWN0OjpnZXRHZW9tZXRyeUZvckJhY2tncm91bmRJbWFnZShjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiBkZXN0
UmVjdCwgRmxvYXRTaXplJiBwaGFzZSwgRmxvYXRTaXplJiB0aWxlU2l6ZSkgY29uc3QKIHsKICAg
ICBjb25zdCBGaWxsTGF5ZXIqIGJhY2tncm91bmRMYXllciA9IHN0eWxlKCkuYmFja2dyb3VuZExh
eWVycygpOwogICAgIEJhY2tncm91bmRJbWFnZUdlb21ldHJ5IGdlb21ldHJ5OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAppbmRleCAyNGMwODAy
YjEzMTE5NDhiY2E0ZDEwZTI0NjBkOGQxYWEyN2U3ZTgzLi44N2I4ODQ3ODlhMGFmMTdiMTAyODg5
ODEwMTM2ZThhYzgwMzEzZjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuaApAQCAtNzgsMjAgKzc4LDE5IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldERlc3RSZWN0KGNvbnN0IExheW91dFJlY3QmIGRlc3RSZWN0KSB7IG1fZGVzdFJlY3QgPSBk
ZXN0UmVjdDsgfQogICAgIAogICAgIC8vIFJldHVybnMgdGhlIHBoYXNlIHJlbGF0aXZlIHRvIHRo
ZSBkZXN0aW5hdGlvbiByZWN0YW5nbGUuCi0gICAgTGF5b3V0UG9pbnQgcmVsYXRpdmVQaGFzZSgp
IGNvbnN0OwotICAgIAotICAgIExheW91dFBvaW50IHBoYXNlKCkgY29uc3QgeyByZXR1cm4gbV9w
aGFzZTsgfQotICAgIHZvaWQgc2V0UGhhc2UoY29uc3QgTGF5b3V0UG9pbnQmIHBoYXNlKSB7IG1f
cGhhc2UgPSBwaGFzZTsgfQorICAgIExheW91dFNpemUgcmVsYXRpdmVQaGFzZSgpIGNvbnN0Owog
ICAgIAorICAgIExheW91dFNpemUgcGhhc2UoKSBjb25zdCB7IHJldHVybiBtX3BoYXNlOyB9Cisg
ICAgdm9pZCBzZXRQaGFzZShjb25zdCBMYXlvdXRTaXplJiBwaGFzZSkgeyBtX3BoYXNlID0gcGhh
c2U7IH0KKyAgICB2b2lkIHNldFBoYXNlWChMYXlvdXRVbml0IGRlbHRhWCkgeyBtX3BoYXNlLnNl
dFdpZHRoKGRlbHRhWCk7IH0KKyAgICB2b2lkIHNldFBoYXNlWShMYXlvdXRVbml0IGRlbHRhWSkg
eyBtX3BoYXNlLnNldEhlaWdodChkZWx0YVkpOyB9CisKICAgICBMYXlvdXRTaXplIHRpbGVTaXpl
KCkgY29uc3QgeyByZXR1cm4gbV90aWxlU2l6ZTsgfQogICAgIHZvaWQgc2V0VGlsZVNpemUoY29u
c3QgTGF5b3V0U2l6ZSYgdGlsZVNpemUpIHsgbV90aWxlU2l6ZSA9IHRpbGVTaXplOyB9CiAgICAg
CiAgICAgTGF5b3V0U2l6ZSBzcGFjZVNpemUoKSBjb25zdCB7IHJldHVybiBtX3NwYWNlOyB9CiAg
ICAgdm9pZCBzZXRTcGFjZVNpemUoY29uc3QgTGF5b3V0U2l6ZSYgc3BhY2UpIHsgbV9zcGFjZSA9
IHNwYWNlOyB9CiAgICAgCi0gICAgdm9pZCBzZXRQaGFzZVgoTGF5b3V0VW5pdCAgeCkgeyBtX3Bo
YXNlLnNldFgoeCk7IH0KLSAgICB2b2lkIHNldFBoYXNlWShMYXlvdXRVbml0IHkpIHsgbV9waGFz
ZS5zZXRZKHkpOyB9Ci0gICAgCiAgICAgdm9pZCBzZXROb1JlcGVhdFgoTGF5b3V0VW5pdCB4T2Zm
c2V0KTsKICAgICB2b2lkIHNldE5vUmVwZWF0WShMYXlvdXRVbml0IHlPZmZzZXQpOwogICAgIApA
QCAtMTA1LDcgKzEwNCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTGF5b3V0UmVjdCBtX2Rl
c3RSZWN0OwogICAgIExheW91dFBvaW50IG1fZGVzdE9yaWdpbjsKLSAgICBMYXlvdXRQb2ludCBt
X3BoYXNlOworICAgIExheW91dFNpemUgbV9waGFzZTsKICAgICBMYXlvdXRTaXplIG1fdGlsZVNp
emU7CiAgICAgTGF5b3V0U2l6ZSBtX3NwYWNlOwogICAgIGJvb2wgbV9oYXNOb25Mb2NhbEdlb21l
dHJ5OyAvLyBIYXMgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZC4gSW1wbGllcyB0aGF0IHdl
IGNhbid0IGFsd2F5cyBjaGVhcGx5IGNvbXB1dGUgZGVzdFJlY3QuCkBAIC0yMzYsNyArMjM1LDcg
QEAgcHVibGljOgogCiAgICAgYm9vbCBjYW5IYXZlQm94SW5mb0luUmVnaW9uKCkgY29uc3QgeyBy
ZXR1cm4gIWlzRmxvYXRpbmcoKSAmJiAhaXNSZXBsYWNlZCgpICYmICFpc0lubGluZSgpICYmICFp
c1RhYmxlQ2VsbCgpICYmIGlzUmVuZGVyQmxvY2soKSAmJiAhaXNSZW5kZXJTVkdCbG9jaygpOyB9
CiAKLSAgICB2b2lkIGdldEdlb21ldHJ5Rm9yQmFja2dyb3VuZEltYWdlKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBGbG9h
dFBvaW50JiBwaGFzZSwgRmxvYXRTaXplJiB0aWxlU2l6ZSkgY29uc3Q7CisgICAgdm9pZCBnZXRH
ZW9tZXRyeUZvckJhY2tncm91bmRJbWFnZShjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBw
YWludENvbnRhaW5lciwgRmxvYXRSZWN0JiBkZXN0UmVjdCwgRmxvYXRTaXplJiBwaGFzZSwgRmxv
YXRTaXplJiB0aWxlU2l6ZSkgY29uc3Q7CiAgICAgdm9pZCBjb250ZW50Q2hhbmdlZChDb250ZW50
Q2hhbmdlVHlwZSk7CiAgICAgYm9vbCBoYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29uc3Q7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAK
aW5kZXggODNmZWMyNjdhZGNiYWM4YzlkODA3ZWMxNzYzYzAxOGVhMmVlYzNmZS4uZWQ4MzE1MTc3
Yjk3NDg5YmU0OGNjMTA5MzY2MjVhZWM3NmVhMjcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTExMjIsNyArMTEyMiw3IEBAIHZv
aWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpyZXNldENvbnRlbnRzUmVjdCgpCiAgICAgfQogCiAgICAg
bV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c1RpbGVTaXplKEludFNpemUoKSk7Ci0gICAgbV9n
cmFwaGljc0xheWVyLT5zZXRDb250ZW50c1RpbGVQaGFzZShJbnRQb2ludCgpKTsKKyAgICBtX2dy
YXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVGlsZVBoYXNlKEludFNpemUoKSk7CiB9CiAKIHZvaWQg
UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVEcmF3c0NvbnRlbnQoKQpAQCAtMTY1Miw3ICsxNjUy
LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZURpcmVjdGx5Q29tcG9zaXRlZEJh
Y2tncm91bmRJbWFnZShib29sIGlzU2ltcGxlQ28KICAgICB9CiAKICAgICBGbG9hdFJlY3QgZGVz
dFJlY3QgPSBiYWNrZ3JvdW5kQm94Rm9yUGFpbnRpbmcoKTsKLSAgICBGbG9hdFBvaW50IHBoYXNl
OworICAgIEZsb2F0U2l6ZSBwaGFzZTsKICAgICBGbG9hdFNpemUgdGlsZVNpemU7CiAKICAgICBS
ZWZQdHI8SW1hZ2U+IGltYWdlID0gc3R5bGUuYmFja2dyb3VuZExheWVycygpLT5pbWFnZSgpLT5j
YWNoZWRJbWFnZSgpLT5pbWFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcAppbmRleCAwMTE4NzFiYzc5MzM4
NjQ1YWJkODUzZmY4OGY2YzY5NWRlZDcyYzM2Li5iZDg2ZTg1YmQ5YzM0YTcwNzA3MGQwZTE4ODU4
OTg5ZDA4MWQyMDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jlc291cmNlTWFza2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcApAQCAtMTQ3LDggKzE0Nyw4IEBAIHZvaWQg
UmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmRyYXdNYXNrRm9yUmVuZGVyZXIoUmVuZGVyRWxlbWVu
dCYgcmVuZGVyZXIsIGNvbnN0CiAKICAgICBGbG9hdFJlY3Qgb25lVGlsZVJlY3Q7CiAgICAgRmxv
YXRTaXplIGFjdHVhbFRpbGVTaXplKGdlb21ldHJ5LnRpbGVTaXplKCkud2lkdGgoKSArIGdlb21l
dHJ5LnNwYWNlU2l6ZSgpLndpZHRoKCksIGdlb21ldHJ5LnRpbGVTaXplKCkuaGVpZ2h0KCkgKyBn
ZW9tZXRyeS5zcGFjZVNpemUoKS5oZWlnaHQoKSk7Ci0gICAgb25lVGlsZVJlY3Quc2V0WChnZW9t
ZXRyeS5kZXN0UmVjdCgpLngoKSArIGZtb2RmKGZtb2RmKC1nZW9tZXRyeS5yZWxhdGl2ZVBoYXNl
KCkueCgpLCBhY3R1YWxUaWxlU2l6ZS53aWR0aCgpKSAtIGFjdHVhbFRpbGVTaXplLndpZHRoKCks
IGFjdHVhbFRpbGVTaXplLndpZHRoKCkpKTsKLSAgICBvbmVUaWxlUmVjdC5zZXRZKGdlb21ldHJ5
LmRlc3RSZWN0KCkueSgpICsgZm1vZGYoZm1vZGYoLWdlb21ldHJ5LnJlbGF0aXZlUGhhc2UoKS55
KCksIGFjdHVhbFRpbGVTaXplLmhlaWdodCgpKSAtIGFjdHVhbFRpbGVTaXplLmhlaWdodCgpLCBh
Y3R1YWxUaWxlU2l6ZS5oZWlnaHQoKSkpOworICAgIG9uZVRpbGVSZWN0LnNldFgoZ2VvbWV0cnku
ZGVzdFJlY3QoKS54KCkgKyBmbW9kZihmbW9kZigtZ2VvbWV0cnkucmVsYXRpdmVQaGFzZSgpLndp
ZHRoKCksIGFjdHVhbFRpbGVTaXplLndpZHRoKCkpIC0gYWN0dWFsVGlsZVNpemUud2lkdGgoKSwg
YWN0dWFsVGlsZVNpemUud2lkdGgoKSkpOworICAgIG9uZVRpbGVSZWN0LnNldFkoZ2VvbWV0cnku
ZGVzdFJlY3QoKS55KCkgKyBmbW9kZihmbW9kZigtZ2VvbWV0cnkucmVsYXRpdmVQaGFzZSgpLmhl
aWdodCgpLCBhY3R1YWxUaWxlU2l6ZS5oZWlnaHQoKSkgLSBhY3R1YWxUaWxlU2l6ZS5oZWlnaHQo
KSwgYWN0dWFsVGlsZVNpemUuaGVpZ2h0KCkpKTsKICAgICBvbmVUaWxlUmVjdC5zZXRTaXplKGdl
b21ldHJ5LnRpbGVTaXplKCkpOwogICAgIAogICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNUaWxlU2l6
ZSA9IG1hc2tlckRhdGEtPm1hc2tJbWFnZS0+bG9naWNhbFNpemUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247245</attachid>
            <date>2015-02-24 10:54:22 -0800</date>
            <delta_ts>2015-02-24 11:13:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141972-20150224105410.patch</filename>
            <type>text/plain</type>
            <size>17692</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwNTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDM4YTU0Yjg0MzdhMDIw
NWEwYWQwYzJjZjQ4YmYyNzI3MDBhYmE3OC4uYWJkMzQ0Mjc2YjlmNWU0NGExNzhjN2I2OWI2ZTQ0
OTg2NDJmZDk2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE1LTAyLTI0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3dpdGNoIEJhY2tncm91bmRJ
bWFnZUdlb21ldHJ5J3MgbV9waGFzZSBmcm9tIExheW91dFBvaW50IHRvIExheW91dFNpemUuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE5NzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbWFnZSBnZW9t
ZXRyeSdzIHBoYXNlIHJlcHJlc2VudHMgZGlzdGFuY2UuCisKKyAgICAgICAgTm8gY2hhbmdlIGlu
IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OnNldENvbnRlbnRzVGlsZVBoYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OmNvbnRlbnRzVGlsZVBoYXNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJMYXllcjo6Y29tcHV0ZVBhdHRlcm5UcmFuc2Zvcm1JZk5lZWRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldENvbnRlbnRzVGlsZVBoYXNlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OnNldENvbnRlbnRzVGlsZVBoYXNlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
Qm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmpl
Y3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQpOgorICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3Vu
ZEltYWdlR2VvbWV0cnk6OnNldE5vUmVwZWF0WCk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrZ3Jv
dW5kSW1hZ2VHZW9tZXRyeTo6c2V0Tm9SZXBlYXRZKToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tn
cm91bmRJbWFnZUdlb21ldHJ5Ojp1c2VGaXhlZEF0dGFjaG1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6QmFja2dyb3VuZEltYWdlR2VvbWV0cnk6OnJlbGF0aXZlUGhhc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBpeGVsU25hcEJhY2tncm91bmRJbWFnZUdlb21l
dHJ5Rm9yUGFpbnRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6
OmdldEdlb21ldHJ5Rm9yQmFja2dyb3VuZEltYWdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRJbWFnZUdl
b21ldHJ5OjpwaGFzZSk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRy
eTo6c2V0UGhhc2UpOgorICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEltYWdlR2VvbWV0cnk6
OnNldFBoYXNlWCk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeTo6
c2V0UGhhc2VZKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6cmVzZXRDb250ZW50c1JlY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVEaXJlY3RseUNv
bXBvc2l0ZWRCYWNrZ3JvdW5kSW1hZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUmVzb3VyY2VNYXNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3Vy
Y2VNYXNrZXI6OmRyYXdNYXNrRm9yUmVuZGVyZXIpOgorCiAyMDE1LTAyLTIzICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTG9nIHVzaW5nIGRpYWdub3N0aWMgbG9n
Z2luZyB3aGljaCBBY3RpdmVET01PYmplY3RzIHByZXZlbnQgdXNpbmcgdGhlIFBhZ2VDYWNoZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUub3JkZXIKaW5kZXggNTU2YjM2YzQzMTM0YmJkZTkyMGE0Y2Q2Yjg0M2FmOGRhNDM2
ZDdkMy4uNjU3MmU1ZGY1ZmVmNGJjMjg5YWE4NDU2YjczYWEzNjU5ZDBiYjk5YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLm9yZGVyCkBAIC0yODY0LDcgKzI4NjQsNyBAQCBfX1pOSzdXZWJDb3JlMjBSZW5kZXJCb3hN
b2RlbE9iamVjdDEwcGFkZGluZ1RvcEV2CiBfX1pOSzdXZWJDb3JlMjBSZW5kZXJCb3hNb2RlbE9i
amVjdDEzcGFkZGluZ0JvdHRvbUV2CiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE1c2V0
Q29udGVudHNSZWN0RVJLTlNfN0ludFJlY3RFCiBfX1pON1dlYkNvcmUxM0dyYXBoaWNzTGF5ZXIx
OXNldENvbnRlbnRzVGlsZVNpemVFUktOU183SW50U2l6ZUUKLV9fWk43V2ViQ29yZTEzR3JhcGhp
Y3NMYXllcjIwc2V0Q29udGVudHNUaWxlUGhhc2VFUktOU184SW50UG9pbnRFCitfX1pON1dlYkNv
cmUxM0dyYXBoaWNzTGF5ZXIyMHNldENvbnRlbnRzVGlsZVBoYXNlRVJLTlNfOUZsb2F0U2l6ZUUK
IF9fWk43V2ViQ29yZTE4UmVuZGVyTGF5ZXJCYWNraW5nMTh1cGRhdGVEcmF3c0NvbnRlbnRFYgog
X19aTks3V2ViQ29yZTE4UmVuZGVyTGF5ZXJCYWNraW5nMjJjb250YWluc1BhaW50ZWRDb250ZW50
RXYKIF9fWk43V2ViQ29yZTE4UmVuZGVyTGF5ZXJCYWNraW5nMjNyZWdpc3RlclNjcm9sbGluZ0xh
eWVyc0V2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyLmgKaW5kZXggZTU4YmYyNDVmNzYzYTZjYjk1MmJkNWMxOWQxMDBmNWExZjZmMWJiMS4uY2Zl
YTVlYjA4OGJhN2VjMDJkOWVmNjI3ZjZhMGFhNDk5ZDJiMGFmOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtMzYxLDggKzM2MSw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKSB7
IH07CiAKICAgICAvLyBUaGUgdGlsZSBwaGFzZSBpcyByZWxhdGl2ZSB0byB0aGUgR3JhcGhpY3NM
YXllciBib3VuZHMuCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVGlsZVBoYXNlKGNvbnN0
IEZsb2F0UG9pbnQmIHApIHsgbV9jb250ZW50c1RpbGVQaGFzZSA9IHA7IH0KLSAgICBGbG9hdFBv
aW50IGNvbnRlbnRzVGlsZVBoYXNlKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50c1RpbGVQaGFz
ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RpbGVQaGFzZShjb25zdCBGbG9hdFNp
emUmIHApIHsgbV9jb250ZW50c1RpbGVQaGFzZSA9IHA7IH0KKyAgICBGbG9hdFNpemUgY29udGVu
dHNUaWxlUGhhc2UoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRzVGlsZVBoYXNlOyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUaWxlU2l6ZShjb25zdCBGbG9hdFNpemUmIHMpIHsg
bV9jb250ZW50c1RpbGVTaXplID0gczsgfQogICAgIEZsb2F0U2l6ZSBjb250ZW50c1RpbGVTaXpl
KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50c1RpbGVTaXplOyB9CkBAIC01OTksNyArNTk5LDcg
QEAgcHJvdGVjdGVkOgogICAgIEZsb2F0UmVjdCBtX2NvbnRlbnRzUmVjdDsKICAgICBGbG9hdFJv
dW5kZWRSZWN0IG1fY29udGVudHNDbGlwcGluZ1JlY3Q7CiAgICAgRmxvYXRSb3VuZGVkUmVjdCBt
X21hc2tzVG9Cb3VuZHNSZWN0OwotICAgIEZsb2F0UG9pbnQgbV9jb250ZW50c1RpbGVQaGFzZTsK
KyAgICBGbG9hdFNpemUgbV9jb250ZW50c1RpbGVQaGFzZTsKICAgICBGbG9hdFNpemUgbV9jb250
ZW50c1RpbGVTaXplOwogCiAgICAgaW50IG1fcmVwYWludENvdW50OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckxheWVyLmNwcAppbmRleCAxNTkzZjZkN2VkMGRlZjFmM2I4YzI0OGUzNGYzMmIwZTI4OWQ1ZmMy
Li42MDRmN2FmOGExNTY4OTRlOWRhZjFhODZlYjc2ZTFkZTI5NDE3MWU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckxheWVyLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlckxh
eWVyOjpjb21wdXRlUGF0dGVyblRyYW5zZm9ybUlmTmVlZGVkKCkKICAgICBtX3BhdHRlcm5UcmFu
c2Zvcm1EaXJ0eSA9IGZhbHNlOwogICAgIG1fcGF0dGVyblRyYW5zZm9ybSA9CiAgICAgICAgIFRy
YW5zZm9ybWF0aW9uTWF0cml4OjpyZWN0VG9SZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50Ojp6ZXJv
KCksIG1fc3RhdGUuY29udGVudHNUaWxlU2l6ZSksIEZsb2F0UmVjdChGbG9hdFBvaW50Ojp6ZXJv
KCksIG1fc3RhdGUuY29udGVudHNSZWN0LnNpemUoKSkpCi0gICAgICAgIC5tdWx0aXBseShUcmFu
c2Zvcm1hdGlvbk1hdHJpeCgpLnRyYW5zbGF0ZShtX3N0YXRlLmNvbnRlbnRzVGlsZVBoYXNlLngo
KSAvIG1fc3RhdGUuY29udGVudHNSZWN0LndpZHRoKCksIG1fc3RhdGUuY29udGVudHNUaWxlUGhh
c2UueSgpIC8gbV9zdGF0ZS5jb250ZW50c1JlY3QuaGVpZ2h0KCkpKTsKKyAgICAgICAgLm11bHRp
cGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4KCkudHJhbnNsYXRlKG1fc3RhdGUuY29udGVudHNUaWxl
UGhhc2Uud2lkdGgoKSAvIG1fc3RhdGUuY29udGVudHNSZWN0LndpZHRoKCksIG1fc3RhdGUuY29u
dGVudHNUaWxlUGhhc2UuaGVpZ2h0KCkgLyBtX3N0YXRlLmNvbnRlbnRzUmVjdC5oZWlnaHQoKSkp
OwogfQogCiB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRTZWxmKGNvbnN0IFRleHR1cmVN
YXBwZXJQYWludE9wdGlvbnMmIG9wdGlvbnMpCkBAIC01NTQsNyArNTU0LDcgQEAgdm9pZCBUZXh0
dXJlTWFwcGVyTGF5ZXI6OnNldENvbnRlbnRzVGlsZVNpemUoY29uc3QgRmxvYXRTaXplJiBzaXpl
KQogICAgIG1fcGF0dGVyblRyYW5zZm9ybURpcnR5ID0gdHJ1ZTsKIH0KIAotdm9pZCBUZXh0dXJl
TWFwcGVyTGF5ZXI6OnNldENvbnRlbnRzVGlsZVBoYXNlKGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNl
KQordm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldENvbnRlbnRzVGlsZVBoYXNlKGNvbnN0IEZs
b2F0U2l6ZSYgcGhhc2UpCiB7CiAgICAgaWYgKHBoYXNlID09IG1fc3RhdGUuY29udGVudHNUaWxl
UGhhc2UpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaAppbmRleCA1YmY3
ODNkODQ3NWU2NzczNTIwMzgyMmEyMWM1ZGQzZGI1ZTI4N2ZmLi4yZTc2ZDdjZGQwZTE4OWFlZGZm
NjhiMTEyOWZkMWE3ODIzYThiYTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oCkBAIC0xMDIs
NyArMTAyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T3BhY2l0eShmbG9hdCk7CiAgICAgdm9p
ZCBzZXRTb2xpZENvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgdm9pZCBzZXRDb250ZW50c1RpbGVT
aXplKGNvbnN0IEZsb2F0U2l6ZSYpOwotICAgIHZvaWQgc2V0Q29udGVudHNUaWxlUGhhc2UoY29u
c3QgRmxvYXRQb2ludCYpOworICAgIHZvaWQgc2V0Q29udGVudHNUaWxlUGhhc2UoY29uc3QgRmxv
YXRTaXplJik7CiAgICAgdm9pZCBzZXRGaWx0ZXJzKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmKTsK
IAogICAgIGJvb2wgaGFzRmlsdGVycygpIGNvbnN0CkBAIC0yMDksNyArMjA5LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgZmxvYXQgb3BhY2l0eTsKICAgICAgICAgRmxvYXRSZWN0IGNvbnRlbnRzUmVj
dDsKICAgICAgICAgRmxvYXRTaXplIGNvbnRlbnRzVGlsZVNpemU7Ci0gICAgICAgIEZsb2F0UG9p
bnQgY29udGVudHNUaWxlUGhhc2U7CisgICAgICAgIEZsb2F0U2l6ZSBjb250ZW50c1RpbGVQaGFz
ZTsKICAgICAgICAgVGV4dHVyZU1hcHBlckxheWVyKiBtYXNrTGF5ZXI7CiAgICAgICAgIFRleHR1
cmVNYXBwZXJMYXllciogcmVwbGljYUxheWVyOwogICAgICAgICBDb2xvciBzb2xpZENvbG9yOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
LmNwcAppbmRleCA3MjBkMjVlMTE4ZDc0NWI3YTViOGJlZDM4YWYwNmI3YmRiMTAyNWY4Li5lMTVk
MmRhYjM2OGUwNjY4MDk3NGI4NTNhYjdhNmVjMWE0MGE4YjFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtMzU1LDcg
KzM1NSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RpbGVT
aXplKGNvbnN0IEZsb2F0U2l6ZSYgcykKICAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7CiB9CiAK
LXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RpbGVQaGFzZShjb25z
dCBGbG9hdFBvaW50JiBwKQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRl
bnRzVGlsZVBoYXNlKGNvbnN0IEZsb2F0U2l6ZSYgcCkKIHsKICAgICBpZiAoY29udGVudHNUaWxl
UGhhc2UoKSA9PSBwKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5kZXggNjc4MzJlOGNiODNlNmU5N2M5
MzYzNjRlZTdmNTk3ZjQ5ZWJkYTcxYy4uYTIxNmFkNWE5MzNhY2JiNTA1NmYyNDY2YTcwMjFjY2Iw
OTg1YTA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIuaApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldEJhY2tmYWNlVmlzaWJpbGl0eShib29sKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0T3BhY2l0eShmbG9hdCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRz
UmVjdChjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29u
dGVudHNUaWxlUGhhc2UoY29uc3QgRmxvYXRQb2ludCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzZXRDb250ZW50c1RpbGVQaGFzZShjb25zdCBGbG9hdFNpemUmKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUaWxlU2l6ZShjb25zdCBGbG9hdFNpemUmKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0ltYWdlKEltYWdlKikgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9Tb2xpZENvbG9yKGNvbnN0IENvbG9y
Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94TW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1v
ZGVsT2JqZWN0LmNwcAppbmRleCA4ZWVmYzMyNDAwMDFkYjFmYzhkNzVjN2RmNDVlMzQyMjBmYzgx
MjZlLi5iZThiYzczMTIxMDdjYzNmODg1NGNlODYyYTNlODBmZjQwOTgxYjhlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKQEAgLTg1
OSw3ICs4NTksNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4
dGVuZGVkKGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjbwogICAgICAgICAgICAgICAgIGJv
b2wgdXNlTG93UXVhbGl0eVNjYWxpbmcgPSBzaG91bGRQYWludEF0TG93UXVhbGl0eShjb250ZXh0
LCBpbWFnZS5nZXQoKSwgYmdMYXllciwgZ2VvbWV0cnkudGlsZVNpemUoKSk7CiAgICAgICAgICAg
ICAgICAgaWYgKGltYWdlLmdldCgpKQogICAgICAgICAgICAgICAgICAgICBpbWFnZS0+c2V0U3Bh
Y2VTaXplKGdlb21ldHJ5LnNwYWNlU2l6ZSgpKTsKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5k
cmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgc3R5bGUoKS5jb2xvclNwYWNlKCksIGdlb21ldHJ5
LmRlc3RSZWN0KCksIGdlb21ldHJ5LnJlbGF0aXZlUGhhc2UoKSwgZ2VvbWV0cnkudGlsZVNpemUo
KSwgSW1hZ2VQYWludGluZ09wdGlvbnMoY29tcG9zaXRlT3AsIGJnTGF5ZXItPmJsZW5kTW9kZSgp
LCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSwgdXNlTG93UXVhbGl0eVNjYWxpbmcpKTsK
KyAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgc3R5
bGUoKS5jb2xvclNwYWNlKCksIGdlb21ldHJ5LmRlc3RSZWN0KCksIHRvTGF5b3V0UG9pbnQoZ2Vv
bWV0cnkucmVsYXRpdmVQaGFzZSgpKSwgZ2VvbWV0cnkudGlsZVNpemUoKSwgSW1hZ2VQYWludGlu
Z09wdGlvbnMoY29tcG9zaXRlT3AsIGJnTGF5ZXItPmJsZW5kTW9kZSgpLCBJbWFnZU9yaWVudGF0
aW9uRGVzY3JpcHRpb24oKSwgdXNlTG93UXVhbGl0eVNjYWxpbmcpKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgIH0KQEAgLTEwMzYsMjAgKzEwMzYsMjAgQEAgTGF5b3V0U2l6ZSBSZW5k
ZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlRmlsbFRpbGVTaXplKGNvbnN0IEZpbGxMYXllciog
ZmlsbExheWUKIHZvaWQgQmFja2dyb3VuZEltYWdlR2VvbWV0cnk6OnNldE5vUmVwZWF0WChMYXlv
dXRVbml0IHhPZmZzZXQpCiB7CiAgICAgbV9kZXN0UmVjdC5tb3ZlKHN0ZDo6bWF4PExheW91dFVu
aXQ+KHhPZmZzZXQsIDApLCAwKTsKLSAgICBtX3BoYXNlLnNldFgoLXN0ZDo6bWluPExheW91dFVu
aXQ+KHhPZmZzZXQsIDApKTsKKyAgICBtX3BoYXNlLnNldFdpZHRoKC1zdGQ6Om1pbjxMYXlvdXRV
bml0Pih4T2Zmc2V0LCAwKSk7CiAgICAgbV9kZXN0UmVjdC5zZXRXaWR0aChtX3RpbGVTaXplLndp
ZHRoKCkgKyBzdGQ6Om1pbjxmbG9hdD4oeE9mZnNldCwgMCkpOwogfQogdm9pZCBCYWNrZ3JvdW5k
SW1hZ2VHZW9tZXRyeTo6c2V0Tm9SZXBlYXRZKExheW91dFVuaXQgeU9mZnNldCkKIHsKICAgICBt
X2Rlc3RSZWN0Lm1vdmUoMCwgc3RkOjptYXg8TGF5b3V0VW5pdD4oeU9mZnNldCwgMCkpOwotICAg
IG1fcGhhc2Uuc2V0WSgtc3RkOjptaW48TGF5b3V0VW5pdD4oeU9mZnNldCwgMCkpOworICAgIG1f
cGhhc2Uuc2V0SGVpZ2h0KC1zdGQ6Om1pbjxMYXlvdXRVbml0Pih5T2Zmc2V0LCAwKSk7CiAgICAg
bV9kZXN0UmVjdC5zZXRIZWlnaHQobV90aWxlU2l6ZS5oZWlnaHQoKSArIHN0ZDo6bWluPGZsb2F0
Pih5T2Zmc2V0LCAwKSk7CiB9CiAKIHZvaWQgQmFja2dyb3VuZEltYWdlR2VvbWV0cnk6OnVzZUZp
eGVkQXR0YWNobWVudChjb25zdCBMYXlvdXRQb2ludCYgYXR0YWNobWVudFBvaW50KQogewogICAg
IEZsb2F0UG9pbnQgYWxpZ25lZFBvaW50ID0gYXR0YWNobWVudFBvaW50OwotICAgIG1fcGhhc2Uu
bW92ZShzdGQ6Om1heDxMYXlvdXRVbml0PihhbGlnbmVkUG9pbnQueCgpIC0gbV9kZXN0UmVjdC54
KCksIDApLCBzdGQ6Om1heDxMYXlvdXRVbml0PihhbGlnbmVkUG9pbnQueSgpIC0gbV9kZXN0UmVj
dC55KCksIDApKTsKKyAgICBtX3BoYXNlLmV4cGFuZChzdGQ6Om1heDxMYXlvdXRVbml0PihhbGln
bmVkUG9pbnQueCgpIC0gbV9kZXN0UmVjdC54KCksIDApLCBzdGQ6Om1heDxMYXlvdXRVbml0Pihh
bGlnbmVkUG9pbnQueSgpIC0gbV9kZXN0UmVjdC55KCksIDApKTsKIH0KIAogdm9pZCBCYWNrZ3Jv
dW5kSW1hZ2VHZW9tZXRyeTo6Y2xpcChjb25zdCBMYXlvdXRSZWN0JiBjbGlwUmVjdCkKQEAgLTEw
NTcsOSArMTA1Nyw5IEBAIHZvaWQgQmFja2dyb3VuZEltYWdlR2VvbWV0cnk6OmNsaXAoY29uc3Qg
TGF5b3V0UmVjdCYgY2xpcFJlY3QpCiAgICAgbV9kZXN0UmVjdC5pbnRlcnNlY3QoY2xpcFJlY3Qp
OwogfQogCi1MYXlvdXRQb2ludCBCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeTo6cmVsYXRpdmVQaGFz
ZSgpIGNvbnN0CitMYXlvdXRTaXplIEJhY2tncm91bmRJbWFnZUdlb21ldHJ5OjpyZWxhdGl2ZVBo
YXNlKCkgY29uc3QKIHsKLSAgICBMYXlvdXRQb2ludCBwaGFzZSA9IG1fcGhhc2U7CisgICAgTGF5
b3V0U2l6ZSBwaGFzZSA9IG1fcGhhc2U7CiAgICAgcGhhc2UgKz0gbV9kZXN0UmVjdC5sb2NhdGlv
bigpIC0gbV9kZXN0T3JpZ2luOwogICAgIHJldHVybiBwaGFzZTsKIH0KQEAgLTEwOTgsNyArMTA5
OCw4IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBpeGVsU25hcEJhY2tncm91bmRJbWFn
ZUdlb21ldHJ5Rm9yUGFpbnRpbmcoQmFja2dyb3VuCiAgICAgZ2VvbWV0cnkuc2V0U3BhY2VTaXpl
KExheW91dFNpemUoc25hcFJlY3RUb0RldmljZVBpeGVscyhMYXlvdXRSZWN0KExheW91dFBvaW50
KCksIGdlb21ldHJ5LnNwYWNlU2l6ZSgpKSwgZGV2aWNlU2NhbGVGYWN0b3IpLnNpemUoKSkpOwog
ICAgIGdlb21ldHJ5LnNldERlc3RPcmlnaW4oTGF5b3V0UG9pbnQocm91bmRQb2ludFRvRGV2aWNl
UGl4ZWxzKGdlb21ldHJ5LmRlc3RPcmlnaW4oKSwgZGV2aWNlU2NhbGVGYWN0b3IpKSk7CiAgICAg
Z2VvbWV0cnkuc2V0RGVzdFJlY3QoTGF5b3V0UmVjdChzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKGdl
b21ldHJ5LmRlc3RSZWN0KCksIGRldmljZVNjYWxlRmFjdG9yKSkpOwotICAgIGdlb21ldHJ5LnNl
dFBoYXNlKExheW91dFBvaW50KHJvdW5kUG9pbnRUb0RldmljZVBpeGVscyhnZW9tZXRyeS5waGFz
ZSgpLCBkZXZpY2VTY2FsZUZhY3RvcikpKTsKKyAgICBGbG9hdFNpemUgcGl4ZWxTbmFwcGVkUGhh
c2UgPSB0b0Zsb2F0U2l6ZShyb3VuZFBvaW50VG9EZXZpY2VQaXhlbHModG9MYXlvdXRQb2ludChn
ZW9tZXRyeS5waGFzZSgpKSwgZGV2aWNlU2NhbGVGYWN0b3IpKTsKKyAgICBnZW9tZXRyeS5zZXRQ
aGFzZShMYXlvdXRTaXplKHBpeGVsU25hcHBlZFBoYXNlKSk7CiB9CiAKIHZvaWQgUmVuZGVyQm94
TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUJhY2tncm91bmRJbWFnZUdlb21ldHJ5KGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHBhaW50Q29udGFpbmVyLCBjb25zdCBGaWxsTGF5ZXIqIGZpbGxM
YXllciwgY29uc3QgTGF5b3V0UmVjdCYgcGFpbnRSZWN0LApAQCAtMTI1MCw3ICsxMjUxLDcgQEAg
dm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlQmFja2dyb3VuZEltYWdlR2VvbWV0
cnkoY29uc3QgUmVuZGVyTGF5ZXJNb2QKICAgICBwaXhlbFNuYXBCYWNrZ3JvdW5kSW1hZ2VHZW9t
ZXRyeUZvclBhaW50aW5nKGdlb21ldHJ5KTsKIH0KIAotdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVj
dDo6Z2V0R2VvbWV0cnlGb3JCYWNrZ3JvdW5kSW1hZ2UoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYgZGVzdFJlY3QsIEZsb2F0UG9pbnQmIHBo
YXNlLCBGbG9hdFNpemUmIHRpbGVTaXplKSBjb25zdAordm9pZCBSZW5kZXJCb3hNb2RlbE9iamVj
dDo6Z2V0R2VvbWV0cnlGb3JCYWNrZ3JvdW5kSW1hZ2UoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYgZGVzdFJlY3QsIEZsb2F0U2l6ZSYgcGhh
c2UsIEZsb2F0U2l6ZSYgdGlsZVNpemUpIGNvbnN0CiB7CiAgICAgY29uc3QgRmlsbExheWVyKiBi
YWNrZ3JvdW5kTGF5ZXIgPSBzdHlsZSgpLmJhY2tncm91bmRMYXllcnMoKTsKICAgICBCYWNrZ3Jv
dW5kSW1hZ2VHZW9tZXRyeSBnZW9tZXRyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveE1vZGVsT2JqZWN0LmgKaW5kZXggMjRjMDgwMmIxMzExOTQ4YmNhNGQxMGUyNDYw
ZDhkMWFhMjdlN2U4My4uODdiODg0Nzg5YTBhZjE3YjEwMjg4OTgxMDEzNmU4YWM4MDMxM2Y0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgK
QEAgLTc4LDIwICs3OCwxOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREZXN0UmVjdChjb25zdCBM
YXlvdXRSZWN0JiBkZXN0UmVjdCkgeyBtX2Rlc3RSZWN0ID0gZGVzdFJlY3Q7IH0KICAgICAKICAg
ICAvLyBSZXR1cm5zIHRoZSBwaGFzZSByZWxhdGl2ZSB0byB0aGUgZGVzdGluYXRpb24gcmVjdGFu
Z2xlLgotICAgIExheW91dFBvaW50IHJlbGF0aXZlUGhhc2UoKSBjb25zdDsKLSAgICAKLSAgICBM
YXlvdXRQb2ludCBwaGFzZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGhhc2U7IH0KLSAgICB2b2lkIHNl
dFBoYXNlKGNvbnN0IExheW91dFBvaW50JiBwaGFzZSkgeyBtX3BoYXNlID0gcGhhc2U7IH0KKyAg
ICBMYXlvdXRTaXplIHJlbGF0aXZlUGhhc2UoKSBjb25zdDsKICAgICAKKyAgICBMYXlvdXRTaXpl
IHBoYXNlKCkgY29uc3QgeyByZXR1cm4gbV9waGFzZTsgfQorICAgIHZvaWQgc2V0UGhhc2UoY29u
c3QgTGF5b3V0U2l6ZSYgcGhhc2UpIHsgbV9waGFzZSA9IHBoYXNlOyB9CisgICAgdm9pZCBzZXRQ
aGFzZVgoTGF5b3V0VW5pdCBkZWx0YVgpIHsgbV9waGFzZS5zZXRXaWR0aChkZWx0YVgpOyB9Cisg
ICAgdm9pZCBzZXRQaGFzZVkoTGF5b3V0VW5pdCBkZWx0YVkpIHsgbV9waGFzZS5zZXRIZWlnaHQo
ZGVsdGFZKTsgfQorCiAgICAgTGF5b3V0U2l6ZSB0aWxlU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dGlsZVNpemU7IH0KICAgICB2b2lkIHNldFRpbGVTaXplKGNvbnN0IExheW91dFNpemUmIHRpbGVT
aXplKSB7IG1fdGlsZVNpemUgPSB0aWxlU2l6ZTsgfQogICAgIAogICAgIExheW91dFNpemUgc3Bh
Y2VTaXplKCkgY29uc3QgeyByZXR1cm4gbV9zcGFjZTsgfQogICAgIHZvaWQgc2V0U3BhY2VTaXpl
KGNvbnN0IExheW91dFNpemUmIHNwYWNlKSB7IG1fc3BhY2UgPSBzcGFjZTsgfQogICAgIAotICAg
IHZvaWQgc2V0UGhhc2VYKExheW91dFVuaXQgIHgpIHsgbV9waGFzZS5zZXRYKHgpOyB9Ci0gICAg
dm9pZCBzZXRQaGFzZVkoTGF5b3V0VW5pdCB5KSB7IG1fcGhhc2Uuc2V0WSh5KTsgfQotICAgIAog
ICAgIHZvaWQgc2V0Tm9SZXBlYXRYKExheW91dFVuaXQgeE9mZnNldCk7CiAgICAgdm9pZCBzZXRO
b1JlcGVhdFkoTGF5b3V0VW5pdCB5T2Zmc2V0KTsKICAgICAKQEAgLTEwNSw3ICsxMDQsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIExheW91dFJlY3QgbV9kZXN0UmVjdDsKICAgICBMYXlvdXRQ
b2ludCBtX2Rlc3RPcmlnaW47Ci0gICAgTGF5b3V0UG9pbnQgbV9waGFzZTsKKyAgICBMYXlvdXRT
aXplIG1fcGhhc2U7CiAgICAgTGF5b3V0U2l6ZSBtX3RpbGVTaXplOwogICAgIExheW91dFNpemUg
bV9zcGFjZTsKICAgICBib29sIG1faGFzTm9uTG9jYWxHZW9tZXRyeTsgLy8gSGFzIGJhY2tncm91
bmQtYXR0YWNobWVudDogZml4ZWQuIEltcGxpZXMgdGhhdCB3ZSBjYW4ndCBhbHdheXMgY2hlYXBs
eSBjb21wdXRlIGRlc3RSZWN0LgpAQCAtMjM2LDcgKzIzNSw3IEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgY2FuSGF2ZUJveEluZm9JblJlZ2lvbigpIGNvbnN0IHsgcmV0dXJuICFpc0Zsb2F0aW5nKCkg
JiYgIWlzUmVwbGFjZWQoKSAmJiAhaXNJbmxpbmUoKSAmJiAhaXNUYWJsZUNlbGwoKSAmJiBpc1Jl
bmRlckJsb2NrKCkgJiYgIWlzUmVuZGVyU1ZHQmxvY2soKTsgfQogCi0gICAgdm9pZCBnZXRHZW9t
ZXRyeUZvckJhY2tncm91bmRJbWFnZShjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBwYWlu
dENvbnRhaW5lciwgRmxvYXRSZWN0JiBkZXN0UmVjdCwgRmxvYXRQb2ludCYgcGhhc2UsIEZsb2F0
U2l6ZSYgdGlsZVNpemUpIGNvbnN0OworICAgIHZvaWQgZ2V0R2VvbWV0cnlGb3JCYWNrZ3JvdW5k
SW1hZ2UoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcGFpbnRDb250YWluZXIsIEZsb2F0
UmVjdCYgZGVzdFJlY3QsIEZsb2F0U2l6ZSYgcGhhc2UsIEZsb2F0U2l6ZSYgdGlsZVNpemUpIGNv
bnN0OwogICAgIHZvaWQgY29udGVudENoYW5nZWQoQ29udGVudENoYW5nZVR5cGUpOwogICAgIGJv
b2wgaGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDgzZmVjMjY3YWRjYmFj
OGM5ZDgwN2VjMTc2M2MwMThlYTJlZWMzZmUuLmVkODMxNTE3N2I5NzQ4OWJlNDhjYzEwOTM2NjI1
YWVjNzZlYTI3MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwCkBAIC0xMTIyLDcgKzExMjIsNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2lu
Zzo6cmVzZXRDb250ZW50c1JlY3QoKQogICAgIH0KIAogICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0
Q29udGVudHNUaWxlU2l6ZShJbnRTaXplKCkpOwotICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29u
dGVudHNUaWxlUGhhc2UoSW50UG9pbnQoKSk7CisgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250
ZW50c1RpbGVQaGFzZShJbnRTaXplKCkpOwogfQogCiB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6
dXBkYXRlRHJhd3NDb250ZW50KCkKQEAgLTE2NTIsNyArMTY1Miw3IEBAIHZvaWQgUmVuZGVyTGF5
ZXJCYWNraW5nOjp1cGRhdGVEaXJlY3RseUNvbXBvc2l0ZWRCYWNrZ3JvdW5kSW1hZ2UoYm9vbCBp
c1NpbXBsZUNvCiAgICAgfQogCiAgICAgRmxvYXRSZWN0IGRlc3RSZWN0ID0gYmFja2dyb3VuZEJv
eEZvclBhaW50aW5nKCk7Ci0gICAgRmxvYXRQb2ludCBwaGFzZTsKKyAgICBGbG9hdFNpemUgcGhh
c2U7CiAgICAgRmxvYXRTaXplIHRpbGVTaXplOwogCiAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9
IHN0eWxlLmJhY2tncm91bmRMYXllcnMoKS0+aW1hZ2UoKS0+Y2FjaGVkSW1hZ2UoKS0+aW1hZ2Uo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVz
b3VyY2VNYXNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
ZXNvdXJjZU1hc2tlci5jcHAKaW5kZXggMDExODcxYmM3OTMzODY0NWFiZDg1M2ZmODhmNmM2OTVk
ZWQ3MmMzNi4uYmQ4NmU4NWJkOWMzNGE3MDcwNzBkMGUxODg1ODk4OWQwODFkMjA2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJj
ZU1hc2tlci5jcHAKQEAgLTE0Nyw4ICsxNDcsOCBAQCB2b2lkIFJlbmRlclNWR1Jlc291cmNlTWFz
a2VyOjpkcmF3TWFza0ZvclJlbmRlcmVyKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjb25zdAog
CiAgICAgRmxvYXRSZWN0IG9uZVRpbGVSZWN0OwogICAgIEZsb2F0U2l6ZSBhY3R1YWxUaWxlU2l6
ZShnZW9tZXRyeS50aWxlU2l6ZSgpLndpZHRoKCkgKyBnZW9tZXRyeS5zcGFjZVNpemUoKS53aWR0
aCgpLCBnZW9tZXRyeS50aWxlU2l6ZSgpLmhlaWdodCgpICsgZ2VvbWV0cnkuc3BhY2VTaXplKCku
aGVpZ2h0KCkpOwotICAgIG9uZVRpbGVSZWN0LnNldFgoZ2VvbWV0cnkuZGVzdFJlY3QoKS54KCkg
KyBmbW9kZihmbW9kZigtZ2VvbWV0cnkucmVsYXRpdmVQaGFzZSgpLngoKSwgYWN0dWFsVGlsZVNp
emUud2lkdGgoKSkgLSBhY3R1YWxUaWxlU2l6ZS53aWR0aCgpLCBhY3R1YWxUaWxlU2l6ZS53aWR0
aCgpKSk7Ci0gICAgb25lVGlsZVJlY3Quc2V0WShnZW9tZXRyeS5kZXN0UmVjdCgpLnkoKSArIGZt
b2RmKGZtb2RmKC1nZW9tZXRyeS5yZWxhdGl2ZVBoYXNlKCkueSgpLCBhY3R1YWxUaWxlU2l6ZS5o
ZWlnaHQoKSkgLSBhY3R1YWxUaWxlU2l6ZS5oZWlnaHQoKSwgYWN0dWFsVGlsZVNpemUuaGVpZ2h0
KCkpKTsKKyAgICBvbmVUaWxlUmVjdC5zZXRYKGdlb21ldHJ5LmRlc3RSZWN0KCkueCgpICsgZm1v
ZGYoZm1vZGYoLWdlb21ldHJ5LnJlbGF0aXZlUGhhc2UoKS53aWR0aCgpLCBhY3R1YWxUaWxlU2l6
ZS53aWR0aCgpKSAtIGFjdHVhbFRpbGVTaXplLndpZHRoKCksIGFjdHVhbFRpbGVTaXplLndpZHRo
KCkpKTsKKyAgICBvbmVUaWxlUmVjdC5zZXRZKGdlb21ldHJ5LmRlc3RSZWN0KCkueSgpICsgZm1v
ZGYoZm1vZGYoLWdlb21ldHJ5LnJlbGF0aXZlUGhhc2UoKS5oZWlnaHQoKSwgYWN0dWFsVGlsZVNp
emUuaGVpZ2h0KCkpIC0gYWN0dWFsVGlsZVNpemUuaGVpZ2h0KCksIGFjdHVhbFRpbGVTaXplLmhl
aWdodCgpKSk7CiAgICAgb25lVGlsZVJlY3Quc2V0U2l6ZShnZW9tZXRyeS50aWxlU2l6ZSgpKTsK
ICAgICAKICAgICBGbG9hdFNpemUgaW50cmluc2ljVGlsZVNpemUgPSBtYXNrZXJEYXRhLT5tYXNr
SW1hZ2UtPmxvZ2ljYWxTaXplKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247247</attachid>
            <date>2015-02-24 11:13:25 -0800</date>
            <delta_ts>2015-02-24 12:42:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141972-20150224111312.patch</filename>
            <type>text/plain</type>
            <size>18446</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwNTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDM4YTU0Yjg0MzdhMDIw
NWEwYWQwYzJjZjQ4YmYyNzI3MDBhYmE3OC4uYWJkMzQ0Mjc2YjlmNWU0NGExNzhjN2I2OWI2ZTQ0
OTg2NDJmZDk2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE1LTAyLTI0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3dpdGNoIEJhY2tncm91bmRJ
bWFnZUdlb21ldHJ5J3MgbV9waGFzZSBmcm9tIExheW91dFBvaW50IHRvIExheW91dFNpemUuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE5NzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbWFnZSBnZW9t
ZXRyeSdzIHBoYXNlIHJlcHJlc2VudHMgZGlzdGFuY2UuCisKKyAgICAgICAgTm8gY2hhbmdlIGlu
IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OnNldENvbnRlbnRzVGlsZVBoYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OmNvbnRlbnRzVGlsZVBoYXNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJMYXllcjo6Y29tcHV0ZVBhdHRlcm5UcmFuc2Zvcm1JZk5lZWRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldENvbnRlbnRzVGlsZVBoYXNlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OnNldENvbnRlbnRzVGlsZVBoYXNlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
Qm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmpl
Y3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQpOgorICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3Vu
ZEltYWdlR2VvbWV0cnk6OnNldE5vUmVwZWF0WCk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrZ3Jv
dW5kSW1hZ2VHZW9tZXRyeTo6c2V0Tm9SZXBlYXRZKToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tn
cm91bmRJbWFnZUdlb21ldHJ5Ojp1c2VGaXhlZEF0dGFjaG1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6QmFja2dyb3VuZEltYWdlR2VvbWV0cnk6OnJlbGF0aXZlUGhhc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBpeGVsU25hcEJhY2tncm91bmRJbWFnZUdlb21l
dHJ5Rm9yUGFpbnRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6
OmdldEdlb21ldHJ5Rm9yQmFja2dyb3VuZEltYWdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRJbWFnZUdl
b21ldHJ5OjpwaGFzZSk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRy
eTo6c2V0UGhhc2UpOgorICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEltYWdlR2VvbWV0cnk6
OnNldFBoYXNlWCk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeTo6
c2V0UGhhc2VZKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6cmVzZXRDb250ZW50c1JlY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVEaXJlY3RseUNv
bXBvc2l0ZWRCYWNrZ3JvdW5kSW1hZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUmVzb3VyY2VNYXNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3Vy
Y2VNYXNrZXI6OmRyYXdNYXNrRm9yUmVuZGVyZXIpOgorCiAyMDE1LTAyLTIzICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTG9nIHVzaW5nIGRpYWdub3N0aWMgbG9n
Z2luZyB3aGljaCBBY3RpdmVET01PYmplY3RzIHByZXZlbnQgdXNpbmcgdGhlIFBhZ2VDYWNoZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUub3JkZXIKaW5kZXggNTU2YjM2YzQzMTM0YmJkZTkyMGE0Y2Q2Yjg0M2FmOGRhNDM2
ZDdkMy4uNjU3MmU1ZGY1ZmVmNGJjMjg5YWE4NDU2YjczYWEzNjU5ZDBiYjk5YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLm9yZGVyCkBAIC0yODY0LDcgKzI4NjQsNyBAQCBfX1pOSzdXZWJDb3JlMjBSZW5kZXJCb3hN
b2RlbE9iamVjdDEwcGFkZGluZ1RvcEV2CiBfX1pOSzdXZWJDb3JlMjBSZW5kZXJCb3hNb2RlbE9i
amVjdDEzcGFkZGluZ0JvdHRvbUV2CiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE1c2V0
Q29udGVudHNSZWN0RVJLTlNfN0ludFJlY3RFCiBfX1pON1dlYkNvcmUxM0dyYXBoaWNzTGF5ZXIx
OXNldENvbnRlbnRzVGlsZVNpemVFUktOU183SW50U2l6ZUUKLV9fWk43V2ViQ29yZTEzR3JhcGhp
Y3NMYXllcjIwc2V0Q29udGVudHNUaWxlUGhhc2VFUktOU184SW50UG9pbnRFCitfX1pON1dlYkNv
cmUxM0dyYXBoaWNzTGF5ZXIyMHNldENvbnRlbnRzVGlsZVBoYXNlRVJLTlNfOUZsb2F0U2l6ZUUK
IF9fWk43V2ViQ29yZTE4UmVuZGVyTGF5ZXJCYWNraW5nMTh1cGRhdGVEcmF3c0NvbnRlbnRFYgog
X19aTks3V2ViQ29yZTE4UmVuZGVyTGF5ZXJCYWNraW5nMjJjb250YWluc1BhaW50ZWRDb250ZW50
RXYKIF9fWk43V2ViQ29yZTE4UmVuZGVyTGF5ZXJCYWNraW5nMjNyZWdpc3RlclNjcm9sbGluZ0xh
eWVyc0V2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyLmgKaW5kZXggZTU4YmYyNDVmNzYzYTZjYjk1MmJkNWMxOWQxMDBmNWExZjZmMWJiMS4uY2Zl
YTVlYjA4OGJhN2VjMDJkOWVmNjI3ZjZhMGFhNDk5ZDJiMGFmOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtMzYxLDggKzM2MSw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKSB7
IH07CiAKICAgICAvLyBUaGUgdGlsZSBwaGFzZSBpcyByZWxhdGl2ZSB0byB0aGUgR3JhcGhpY3NM
YXllciBib3VuZHMuCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVGlsZVBoYXNlKGNvbnN0
IEZsb2F0UG9pbnQmIHApIHsgbV9jb250ZW50c1RpbGVQaGFzZSA9IHA7IH0KLSAgICBGbG9hdFBv
aW50IGNvbnRlbnRzVGlsZVBoYXNlKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50c1RpbGVQaGFz
ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RpbGVQaGFzZShjb25zdCBGbG9hdFNp
emUmIHApIHsgbV9jb250ZW50c1RpbGVQaGFzZSA9IHA7IH0KKyAgICBGbG9hdFNpemUgY29udGVu
dHNUaWxlUGhhc2UoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRzVGlsZVBoYXNlOyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUaWxlU2l6ZShjb25zdCBGbG9hdFNpemUmIHMpIHsg
bV9jb250ZW50c1RpbGVTaXplID0gczsgfQogICAgIEZsb2F0U2l6ZSBjb250ZW50c1RpbGVTaXpl
KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50c1RpbGVTaXplOyB9CkBAIC01OTksNyArNTk5LDcg
QEAgcHJvdGVjdGVkOgogICAgIEZsb2F0UmVjdCBtX2NvbnRlbnRzUmVjdDsKICAgICBGbG9hdFJv
dW5kZWRSZWN0IG1fY29udGVudHNDbGlwcGluZ1JlY3Q7CiAgICAgRmxvYXRSb3VuZGVkUmVjdCBt
X21hc2tzVG9Cb3VuZHNSZWN0OwotICAgIEZsb2F0UG9pbnQgbV9jb250ZW50c1RpbGVQaGFzZTsK
KyAgICBGbG9hdFNpemUgbV9jb250ZW50c1RpbGVQaGFzZTsKICAgICBGbG9hdFNpemUgbV9jb250
ZW50c1RpbGVTaXplOwogCiAgICAgaW50IG1fcmVwYWludENvdW50OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckxheWVyLmNwcAppbmRleCAxNTkzZjZkN2VkMGRlZjFmM2I4YzI0OGUzNGYzMmIwZTI4OWQ1ZmMy
Li42MDRmN2FmOGExNTY4OTRlOWRhZjFhODZlYjc2ZTFkZTI5NDE3MWU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckxheWVyLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlckxh
eWVyOjpjb21wdXRlUGF0dGVyblRyYW5zZm9ybUlmTmVlZGVkKCkKICAgICBtX3BhdHRlcm5UcmFu
c2Zvcm1EaXJ0eSA9IGZhbHNlOwogICAgIG1fcGF0dGVyblRyYW5zZm9ybSA9CiAgICAgICAgIFRy
YW5zZm9ybWF0aW9uTWF0cml4OjpyZWN0VG9SZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50Ojp6ZXJv
KCksIG1fc3RhdGUuY29udGVudHNUaWxlU2l6ZSksIEZsb2F0UmVjdChGbG9hdFBvaW50Ojp6ZXJv
KCksIG1fc3RhdGUuY29udGVudHNSZWN0LnNpemUoKSkpCi0gICAgICAgIC5tdWx0aXBseShUcmFu
c2Zvcm1hdGlvbk1hdHJpeCgpLnRyYW5zbGF0ZShtX3N0YXRlLmNvbnRlbnRzVGlsZVBoYXNlLngo
KSAvIG1fc3RhdGUuY29udGVudHNSZWN0LndpZHRoKCksIG1fc3RhdGUuY29udGVudHNUaWxlUGhh
c2UueSgpIC8gbV9zdGF0ZS5jb250ZW50c1JlY3QuaGVpZ2h0KCkpKTsKKyAgICAgICAgLm11bHRp
cGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4KCkudHJhbnNsYXRlKG1fc3RhdGUuY29udGVudHNUaWxl
UGhhc2Uud2lkdGgoKSAvIG1fc3RhdGUuY29udGVudHNSZWN0LndpZHRoKCksIG1fc3RhdGUuY29u
dGVudHNUaWxlUGhhc2UuaGVpZ2h0KCkgLyBtX3N0YXRlLmNvbnRlbnRzUmVjdC5oZWlnaHQoKSkp
OwogfQogCiB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRTZWxmKGNvbnN0IFRleHR1cmVN
YXBwZXJQYWludE9wdGlvbnMmIG9wdGlvbnMpCkBAIC01NTQsNyArNTU0LDcgQEAgdm9pZCBUZXh0
dXJlTWFwcGVyTGF5ZXI6OnNldENvbnRlbnRzVGlsZVNpemUoY29uc3QgRmxvYXRTaXplJiBzaXpl
KQogICAgIG1fcGF0dGVyblRyYW5zZm9ybURpcnR5ID0gdHJ1ZTsKIH0KIAotdm9pZCBUZXh0dXJl
TWFwcGVyTGF5ZXI6OnNldENvbnRlbnRzVGlsZVBoYXNlKGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNl
KQordm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldENvbnRlbnRzVGlsZVBoYXNlKGNvbnN0IEZs
b2F0U2l6ZSYgcGhhc2UpCiB7CiAgICAgaWYgKHBoYXNlID09IG1fc3RhdGUuY29udGVudHNUaWxl
UGhhc2UpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaAppbmRleCA1YmY3
ODNkODQ3NWU2NzczNTIwMzgyMmEyMWM1ZGQzZGI1ZTI4N2ZmLi4yZTc2ZDdjZGQwZTE4OWFlZGZm
NjhiMTEyOWZkMWE3ODIzYThiYTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oCkBAIC0xMDIs
NyArMTAyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T3BhY2l0eShmbG9hdCk7CiAgICAgdm9p
ZCBzZXRTb2xpZENvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgdm9pZCBzZXRDb250ZW50c1RpbGVT
aXplKGNvbnN0IEZsb2F0U2l6ZSYpOwotICAgIHZvaWQgc2V0Q29udGVudHNUaWxlUGhhc2UoY29u
c3QgRmxvYXRQb2ludCYpOworICAgIHZvaWQgc2V0Q29udGVudHNUaWxlUGhhc2UoY29uc3QgRmxv
YXRTaXplJik7CiAgICAgdm9pZCBzZXRGaWx0ZXJzKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmKTsK
IAogICAgIGJvb2wgaGFzRmlsdGVycygpIGNvbnN0CkBAIC0yMDksNyArMjA5LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgZmxvYXQgb3BhY2l0eTsKICAgICAgICAgRmxvYXRSZWN0IGNvbnRlbnRzUmVj
dDsKICAgICAgICAgRmxvYXRTaXplIGNvbnRlbnRzVGlsZVNpemU7Ci0gICAgICAgIEZsb2F0UG9p
bnQgY29udGVudHNUaWxlUGhhc2U7CisgICAgICAgIEZsb2F0U2l6ZSBjb250ZW50c1RpbGVQaGFz
ZTsKICAgICAgICAgVGV4dHVyZU1hcHBlckxheWVyKiBtYXNrTGF5ZXI7CiAgICAgICAgIFRleHR1
cmVNYXBwZXJMYXllciogcmVwbGljYUxheWVyOwogICAgICAgICBDb2xvciBzb2xpZENvbG9yOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
LmNwcAppbmRleCA3MjBkMjVlMTE4ZDc0NWI3YTViOGJlZDM4YWYwNmI3YmRiMTAyNWY4Li5lMTVk
MmRhYjM2OGUwNjY4MDk3NGI4NTNhYjdhNmVjMWE0MGE4YjFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtMzU1LDcg
KzM1NSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RpbGVT
aXplKGNvbnN0IEZsb2F0U2l6ZSYgcykKICAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7CiB9CiAK
LXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RpbGVQaGFzZShjb25z
dCBGbG9hdFBvaW50JiBwKQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRl
bnRzVGlsZVBoYXNlKGNvbnN0IEZsb2F0U2l6ZSYgcCkKIHsKICAgICBpZiAoY29udGVudHNUaWxl
UGhhc2UoKSA9PSBwKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5kZXggNjc4MzJlOGNiODNlNmU5N2M5
MzYzNjRlZTdmNTk3ZjQ5ZWJkYTcxYy4uYTIxNmFkNWE5MzNhY2JiNTA1NmYyNDY2YTcwMjFjY2Iw
OTg1YTA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIuaApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldEJhY2tmYWNlVmlzaWJpbGl0eShib29sKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0T3BhY2l0eShmbG9hdCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRz
UmVjdChjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29u
dGVudHNUaWxlUGhhc2UoY29uc3QgRmxvYXRQb2ludCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzZXRDb250ZW50c1RpbGVQaGFzZShjb25zdCBGbG9hdFNpemUmKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUaWxlU2l6ZShjb25zdCBGbG9hdFNpemUmKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0ltYWdlKEltYWdlKikgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9Tb2xpZENvbG9yKGNvbnN0IENvbG9y
Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc1N0YXRlLmgKaW5kZXggNDRmZDQ4NmNmZmJmYTMxMzg2Y2Q0N2M1NGM5NGEzNDExNGUz
ZjlhYS4uMTRmMmI3NzUwNDY3OGYwOTc2Mjc4MTgwMjJkZmJlZmEyNzI0MmRmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU3RhdGUuaApAQCAt
MTM5LDcgKzEzOSw3IEBAIHN0cnVjdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSB7CiAg
ICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4IGNoaWxkcmVuVHJhbnNmb3JtOwogICAgIEZsb2F0UmVjdCBjb250ZW50c1JlY3Q7Ci0gICAg
RmxvYXRQb2ludCBjb250ZW50c1RpbGVQaGFzZTsKKyAgICBGbG9hdFNpemUgY29udGVudHNUaWxl
UGhhc2U7CiAgICAgRmxvYXRTaXplIGNvbnRlbnRzVGlsZVNpemU7CiAgICAgZmxvYXQgb3BhY2l0
eTsKICAgICBDb2xvciBzb2xpZENvbG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggOGVlZmMzMjQwMDAxZGIxZmM4ZDc1Yzdk
ZjQ1ZTM0MjIwZmM4MTI2ZS4uYmU4YmM3MzEyMTA3Y2MzZjg4NTRjZTg2MmEzZTgwZmY0MDk4MWI4
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuY3BwCkBAIC04NTksNyArODU5LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFp
bnRGaWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY28KICAgICAg
ICAgICAgICAgICBib29sIHVzZUxvd1F1YWxpdHlTY2FsaW5nID0gc2hvdWxkUGFpbnRBdExvd1F1
YWxpdHkoY29udGV4dCwgaW1hZ2UuZ2V0KCksIGJnTGF5ZXIsIGdlb21ldHJ5LnRpbGVTaXplKCkp
OwogICAgICAgICAgICAgICAgIGlmIChpbWFnZS5nZXQoKSkKICAgICAgICAgICAgICAgICAgICAg
aW1hZ2UtPnNldFNwYWNlU2l6ZShnZW9tZXRyeS5zcGFjZVNpemUoKSk7Ci0gICAgICAgICAgICAg
ICAgY29udGV4dC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIHN0eWxlKCkuY29sb3JTcGFj
ZSgpLCBnZW9tZXRyeS5kZXN0UmVjdCgpLCBnZW9tZXRyeS5yZWxhdGl2ZVBoYXNlKCksIGdlb21l
dHJ5LnRpbGVTaXplKCksIEltYWdlUGFpbnRpbmdPcHRpb25zKGNvbXBvc2l0ZU9wLCBiZ0xheWVy
LT5ibGVuZE1vZGUoKSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCksIHVzZUxvd1F1YWxp
dHlTY2FsaW5nKSk7CisgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd1RpbGVkSW1hZ2UoaW1h
Z2UuZ2V0KCksIHN0eWxlKCkuY29sb3JTcGFjZSgpLCBnZW9tZXRyeS5kZXN0UmVjdCgpLCB0b0xh
eW91dFBvaW50KGdlb21ldHJ5LnJlbGF0aXZlUGhhc2UoKSksIGdlb21ldHJ5LnRpbGVTaXplKCks
IEltYWdlUGFpbnRpbmdPcHRpb25zKGNvbXBvc2l0ZU9wLCBiZ0xheWVyLT5ibGVuZE1vZGUoKSwg
SW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCksIHVzZUxvd1F1YWxpdHlTY2FsaW5nKSk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0xMDM2LDIwICsxMDM2LDIwIEBAIExh
eW91dFNpemUgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUZpbGxUaWxlU2l6ZShjb25z
dCBGaWxsTGF5ZXIqIGZpbGxMYXllCiB2b2lkIEJhY2tncm91bmRJbWFnZUdlb21ldHJ5OjpzZXRO
b1JlcGVhdFgoTGF5b3V0VW5pdCB4T2Zmc2V0KQogewogICAgIG1fZGVzdFJlY3QubW92ZShzdGQ6
Om1heDxMYXlvdXRVbml0Pih4T2Zmc2V0LCAwKSwgMCk7Ci0gICAgbV9waGFzZS5zZXRYKC1zdGQ6
Om1pbjxMYXlvdXRVbml0Pih4T2Zmc2V0LCAwKSk7CisgICAgbV9waGFzZS5zZXRXaWR0aCgtc3Rk
OjptaW48TGF5b3V0VW5pdD4oeE9mZnNldCwgMCkpOwogICAgIG1fZGVzdFJlY3Quc2V0V2lkdGgo
bV90aWxlU2l6ZS53aWR0aCgpICsgc3RkOjptaW48ZmxvYXQ+KHhPZmZzZXQsIDApKTsKIH0KIHZv
aWQgQmFja2dyb3VuZEltYWdlR2VvbWV0cnk6OnNldE5vUmVwZWF0WShMYXlvdXRVbml0IHlPZmZz
ZXQpCiB7CiAgICAgbV9kZXN0UmVjdC5tb3ZlKDAsIHN0ZDo6bWF4PExheW91dFVuaXQ+KHlPZmZz
ZXQsIDApKTsKLSAgICBtX3BoYXNlLnNldFkoLXN0ZDo6bWluPExheW91dFVuaXQ+KHlPZmZzZXQs
IDApKTsKKyAgICBtX3BoYXNlLnNldEhlaWdodCgtc3RkOjptaW48TGF5b3V0VW5pdD4oeU9mZnNl
dCwgMCkpOwogICAgIG1fZGVzdFJlY3Quc2V0SGVpZ2h0KG1fdGlsZVNpemUuaGVpZ2h0KCkgKyBz
dGQ6Om1pbjxmbG9hdD4oeU9mZnNldCwgMCkpOwogfQogCiB2b2lkIEJhY2tncm91bmRJbWFnZUdl
b21ldHJ5Ojp1c2VGaXhlZEF0dGFjaG1lbnQoY29uc3QgTGF5b3V0UG9pbnQmIGF0dGFjaG1lbnRQ
b2ludCkKIHsKICAgICBGbG9hdFBvaW50IGFsaWduZWRQb2ludCA9IGF0dGFjaG1lbnRQb2ludDsK
LSAgICBtX3BoYXNlLm1vdmUoc3RkOjptYXg8TGF5b3V0VW5pdD4oYWxpZ25lZFBvaW50LngoKSAt
IG1fZGVzdFJlY3QueCgpLCAwKSwgc3RkOjptYXg8TGF5b3V0VW5pdD4oYWxpZ25lZFBvaW50Lnko
KSAtIG1fZGVzdFJlY3QueSgpLCAwKSk7CisgICAgbV9waGFzZS5leHBhbmQoc3RkOjptYXg8TGF5
b3V0VW5pdD4oYWxpZ25lZFBvaW50LngoKSAtIG1fZGVzdFJlY3QueCgpLCAwKSwgc3RkOjptYXg8
TGF5b3V0VW5pdD4oYWxpZ25lZFBvaW50LnkoKSAtIG1fZGVzdFJlY3QueSgpLCAwKSk7CiB9CiAK
IHZvaWQgQmFja2dyb3VuZEltYWdlR2VvbWV0cnk6OmNsaXAoY29uc3QgTGF5b3V0UmVjdCYgY2xp
cFJlY3QpCkBAIC0xMDU3LDkgKzEwNTcsOSBAQCB2b2lkIEJhY2tncm91bmRJbWFnZUdlb21ldHJ5
OjpjbGlwKGNvbnN0IExheW91dFJlY3QmIGNsaXBSZWN0KQogICAgIG1fZGVzdFJlY3QuaW50ZXJz
ZWN0KGNsaXBSZWN0KTsKIH0KIAotTGF5b3V0UG9pbnQgQmFja2dyb3VuZEltYWdlR2VvbWV0cnk6
OnJlbGF0aXZlUGhhc2UoKSBjb25zdAorTGF5b3V0U2l6ZSBCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRy
eTo6cmVsYXRpdmVQaGFzZSgpIGNvbnN0CiB7Ci0gICAgTGF5b3V0UG9pbnQgcGhhc2UgPSBtX3Bo
YXNlOworICAgIExheW91dFNpemUgcGhhc2UgPSBtX3BoYXNlOwogICAgIHBoYXNlICs9IG1fZGVz
dFJlY3QubG9jYXRpb24oKSAtIG1fZGVzdE9yaWdpbjsKICAgICByZXR1cm4gcGhhc2U7CiB9CkBA
IC0xMDk4LDcgKzEwOTgsOCBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwaXhlbFNuYXBC
YWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeUZvclBhaW50aW5nKEJhY2tncm91bgogICAgIGdlb21ldHJ5
LnNldFNwYWNlU2l6ZShMYXlvdXRTaXplKHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoTGF5b3V0UmVj
dChMYXlvdXRQb2ludCgpLCBnZW9tZXRyeS5zcGFjZVNpemUoKSksIGRldmljZVNjYWxlRmFjdG9y
KS5zaXplKCkpKTsKICAgICBnZW9tZXRyeS5zZXREZXN0T3JpZ2luKExheW91dFBvaW50KHJvdW5k
UG9pbnRUb0RldmljZVBpeGVscyhnZW9tZXRyeS5kZXN0T3JpZ2luKCksIGRldmljZVNjYWxlRmFj
dG9yKSkpOwogICAgIGdlb21ldHJ5LnNldERlc3RSZWN0KExheW91dFJlY3Qoc25hcFJlY3RUb0Rl
dmljZVBpeGVscyhnZW9tZXRyeS5kZXN0UmVjdCgpLCBkZXZpY2VTY2FsZUZhY3RvcikpKTsKLSAg
ICBnZW9tZXRyeS5zZXRQaGFzZShMYXlvdXRQb2ludChyb3VuZFBvaW50VG9EZXZpY2VQaXhlbHMo
Z2VvbWV0cnkucGhhc2UoKSwgZGV2aWNlU2NhbGVGYWN0b3IpKSk7CisgICAgRmxvYXRTaXplIHBp
eGVsU25hcHBlZFBoYXNlID0gdG9GbG9hdFNpemUocm91bmRQb2ludFRvRGV2aWNlUGl4ZWxzKHRv
TGF5b3V0UG9pbnQoZ2VvbWV0cnkucGhhc2UoKSksIGRldmljZVNjYWxlRmFjdG9yKSk7CisgICAg
Z2VvbWV0cnkuc2V0UGhhc2UoTGF5b3V0U2l6ZShwaXhlbFNuYXBwZWRQaGFzZSkpOwogfQogCiB2
b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpjYWxjdWxhdGVCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRy
eShjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBwYWludENvbnRhaW5lciwgY29uc3QgRmls
bExheWVyKiBmaWxsTGF5ZXIsIGNvbnN0IExheW91dFJlY3QmIHBhaW50UmVjdCwKQEAgLTEyNTAs
NyArMTI1MSw3IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUJhY2tncm91
bmRJbWFnZUdlb21ldHJ5KGNvbnN0IFJlbmRlckxheWVyTW9kCiAgICAgcGl4ZWxTbmFwQmFja2dy
b3VuZEltYWdlR2VvbWV0cnlGb3JQYWludGluZyhnZW9tZXRyeSk7CiB9CiAKLXZvaWQgUmVuZGVy
Qm94TW9kZWxPYmplY3Q6OmdldEdlb21ldHJ5Rm9yQmFja2dyb3VuZEltYWdlKGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBG
bG9hdFBvaW50JiBwaGFzZSwgRmxvYXRTaXplJiB0aWxlU2l6ZSkgY29uc3QKK3ZvaWQgUmVuZGVy
Qm94TW9kZWxPYmplY3Q6OmdldEdlb21ldHJ5Rm9yQmFja2dyb3VuZEltYWdlKGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBG
bG9hdFNpemUmIHBoYXNlLCBGbG9hdFNpemUmIHRpbGVTaXplKSBjb25zdAogewogICAgIGNvbnN0
IEZpbGxMYXllciogYmFja2dyb3VuZExheWVyID0gc3R5bGUoKS5iYWNrZ3JvdW5kTGF5ZXJzKCk7
CiAgICAgQmFja2dyb3VuZEltYWdlR2VvbWV0cnkgZ2VvbWV0cnk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCmluZGV4IDI0YzA4MDJiMTMxMTk0
OGJjYTRkMTBlMjQ2MGQ4ZDFhYTI3ZTdlODMuLjg3Yjg4NDc4OWEwYWYxN2IxMDI4ODk4MTAxMzZl
OGFjODAzMTNmNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5oCkBAIC03OCwyMCArNzgsMTkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RGVz
dFJlY3QoY29uc3QgTGF5b3V0UmVjdCYgZGVzdFJlY3QpIHsgbV9kZXN0UmVjdCA9IGRlc3RSZWN0
OyB9CiAgICAgCiAgICAgLy8gUmV0dXJucyB0aGUgcGhhc2UgcmVsYXRpdmUgdG8gdGhlIGRlc3Rp
bmF0aW9uIHJlY3RhbmdsZS4KLSAgICBMYXlvdXRQb2ludCByZWxhdGl2ZVBoYXNlKCkgY29uc3Q7
Ci0gICAgCi0gICAgTGF5b3V0UG9pbnQgcGhhc2UoKSBjb25zdCB7IHJldHVybiBtX3BoYXNlOyB9
Ci0gICAgdm9pZCBzZXRQaGFzZShjb25zdCBMYXlvdXRQb2ludCYgcGhhc2UpIHsgbV9waGFzZSA9
IHBoYXNlOyB9CisgICAgTGF5b3V0U2l6ZSByZWxhdGl2ZVBoYXNlKCkgY29uc3Q7CiAgICAgCisg
ICAgTGF5b3V0U2l6ZSBwaGFzZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGhhc2U7IH0KKyAgICB2b2lk
IHNldFBoYXNlKGNvbnN0IExheW91dFNpemUmIHBoYXNlKSB7IG1fcGhhc2UgPSBwaGFzZTsgfQor
ICAgIHZvaWQgc2V0UGhhc2VYKExheW91dFVuaXQgZGVsdGFYKSB7IG1fcGhhc2Uuc2V0V2lkdGgo
ZGVsdGFYKTsgfQorICAgIHZvaWQgc2V0UGhhc2VZKExheW91dFVuaXQgZGVsdGFZKSB7IG1fcGhh
c2Uuc2V0SGVpZ2h0KGRlbHRhWSk7IH0KKwogICAgIExheW91dFNpemUgdGlsZVNpemUoKSBjb25z
dCB7IHJldHVybiBtX3RpbGVTaXplOyB9CiAgICAgdm9pZCBzZXRUaWxlU2l6ZShjb25zdCBMYXlv
dXRTaXplJiB0aWxlU2l6ZSkgeyBtX3RpbGVTaXplID0gdGlsZVNpemU7IH0KICAgICAKICAgICBM
YXlvdXRTaXplIHNwYWNlU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3BhY2U7IH0KICAgICB2b2lk
IHNldFNwYWNlU2l6ZShjb25zdCBMYXlvdXRTaXplJiBzcGFjZSkgeyBtX3NwYWNlID0gc3BhY2U7
IH0KICAgICAKLSAgICB2b2lkIHNldFBoYXNlWChMYXlvdXRVbml0ICB4KSB7IG1fcGhhc2Uuc2V0
WCh4KTsgfQotICAgIHZvaWQgc2V0UGhhc2VZKExheW91dFVuaXQgeSkgeyBtX3BoYXNlLnNldFko
eSk7IH0KLSAgICAKICAgICB2b2lkIHNldE5vUmVwZWF0WChMYXlvdXRVbml0IHhPZmZzZXQpOwog
ICAgIHZvaWQgc2V0Tm9SZXBlYXRZKExheW91dFVuaXQgeU9mZnNldCk7CiAgICAgCkBAIC0xMDUs
NyArMTA0LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBMYXlvdXRSZWN0IG1fZGVzdFJlY3Q7
CiAgICAgTGF5b3V0UG9pbnQgbV9kZXN0T3JpZ2luOwotICAgIExheW91dFBvaW50IG1fcGhhc2U7
CisgICAgTGF5b3V0U2l6ZSBtX3BoYXNlOwogICAgIExheW91dFNpemUgbV90aWxlU2l6ZTsKICAg
ICBMYXlvdXRTaXplIG1fc3BhY2U7CiAgICAgYm9vbCBtX2hhc05vbkxvY2FsR2VvbWV0cnk7IC8v
IEhhcyBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkLiBJbXBsaWVzIHRoYXQgd2UgY2FuJ3Qg
YWx3YXlzIGNoZWFwbHkgY29tcHV0ZSBkZXN0UmVjdC4KQEAgLTIzNiw3ICsyMzUsNyBAQCBwdWJs
aWM6CiAKICAgICBib29sIGNhbkhhdmVCb3hJbmZvSW5SZWdpb24oKSBjb25zdCB7IHJldHVybiAh
aXNGbG9hdGluZygpICYmICFpc1JlcGxhY2VkKCkgJiYgIWlzSW5saW5lKCkgJiYgIWlzVGFibGVD
ZWxsKCkgJiYgaXNSZW5kZXJCbG9jaygpICYmICFpc1JlbmRlclNWR0Jsb2NrKCk7IH0KIAotICAg
IHZvaWQgZ2V0R2VvbWV0cnlGb3JCYWNrZ3JvdW5kSW1hZ2UoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYgZGVzdFJlY3QsIEZsb2F0UG9pbnQm
IHBoYXNlLCBGbG9hdFNpemUmIHRpbGVTaXplKSBjb25zdDsKKyAgICB2b2lkIGdldEdlb21ldHJ5
Rm9yQmFja2dyb3VuZEltYWdlKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHBhaW50Q29u
dGFpbmVyLCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBGbG9hdFNpemUmIHBoYXNlLCBGbG9hdFNpemUm
IHRpbGVTaXplKSBjb25zdDsKICAgICB2b2lkIGNvbnRlbnRDaGFuZ2VkKENvbnRlbnRDaGFuZ2VU
eXBlKTsKICAgICBib29sIGhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCA4
M2ZlYzI2N2FkY2JhYzhjOWQ4MDdlYzE3NjNjMDE4ZWEyZWVjM2ZlLi5lZDgzMTUxNzdiOTc0ODli
ZTQ4Y2MxMDkzNjYyNWFlYzc2ZWEyNzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMTEyMiw3ICsxMTIyLDcgQEAgdm9pZCBSZW5k
ZXJMYXllckJhY2tpbmc6OnJlc2V0Q29udGVudHNSZWN0KCkKICAgICB9CiAKICAgICBtX2dyYXBo
aWNzTGF5ZXItPnNldENvbnRlbnRzVGlsZVNpemUoSW50U2l6ZSgpKTsKLSAgICBtX2dyYXBoaWNz
TGF5ZXItPnNldENvbnRlbnRzVGlsZVBoYXNlKEludFBvaW50KCkpOworICAgIG1fZ3JhcGhpY3NM
YXllci0+c2V0Q29udGVudHNUaWxlUGhhc2UoSW50U2l6ZSgpKTsKIH0KIAogdm9pZCBSZW5kZXJM
YXllckJhY2tpbmc6OnVwZGF0ZURyYXdzQ29udGVudCgpCkBAIC0xNjUyLDcgKzE2NTIsNyBAQCB2
b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlRGlyZWN0bHlDb21wb3NpdGVkQmFja2dyb3Vu
ZEltYWdlKGJvb2wgaXNTaW1wbGVDbwogICAgIH0KIAogICAgIEZsb2F0UmVjdCBkZXN0UmVjdCA9
IGJhY2tncm91bmRCb3hGb3JQYWludGluZygpOwotICAgIEZsb2F0UG9pbnQgcGhhc2U7CisgICAg
RmxvYXRTaXplIHBoYXNlOwogICAgIEZsb2F0U2l6ZSB0aWxlU2l6ZTsKIAogICAgIFJlZlB0cjxJ
bWFnZT4gaW1hZ2UgPSBzdHlsZS5iYWNrZ3JvdW5kTGF5ZXJzKCktPmltYWdlKCktPmNhY2hlZElt
YWdlKCktPmltYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3BwCmluZGV4IDAxMTg3MWJjNzkzMzg2NDVhYmQ4
NTNmZjg4ZjZjNjk1ZGVkNzJjMzYuLmJkODZlODViZDljMzRhNzA3MDcwZDBlMTg4NTg5ODlkMDgx
ZDIwNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UmVzb3VyY2VNYXNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3BwCkBAIC0xNDcsOCArMTQ3LDggQEAgdm9pZCBSZW5kZXJT
VkdSZXNvdXJjZU1hc2tlcjo6ZHJhd01hc2tGb3JSZW5kZXJlcihSZW5kZXJFbGVtZW50JiByZW5k
ZXJlciwgY29uc3QKIAogICAgIEZsb2F0UmVjdCBvbmVUaWxlUmVjdDsKICAgICBGbG9hdFNpemUg
YWN0dWFsVGlsZVNpemUoZ2VvbWV0cnkudGlsZVNpemUoKS53aWR0aCgpICsgZ2VvbWV0cnkuc3Bh
Y2VTaXplKCkud2lkdGgoKSwgZ2VvbWV0cnkudGlsZVNpemUoKS5oZWlnaHQoKSArIGdlb21ldHJ5
LnNwYWNlU2l6ZSgpLmhlaWdodCgpKTsKLSAgICBvbmVUaWxlUmVjdC5zZXRYKGdlb21ldHJ5LmRl
c3RSZWN0KCkueCgpICsgZm1vZGYoZm1vZGYoLWdlb21ldHJ5LnJlbGF0aXZlUGhhc2UoKS54KCks
IGFjdHVhbFRpbGVTaXplLndpZHRoKCkpIC0gYWN0dWFsVGlsZVNpemUud2lkdGgoKSwgYWN0dWFs
VGlsZVNpemUud2lkdGgoKSkpOwotICAgIG9uZVRpbGVSZWN0LnNldFkoZ2VvbWV0cnkuZGVzdFJl
Y3QoKS55KCkgKyBmbW9kZihmbW9kZigtZ2VvbWV0cnkucmVsYXRpdmVQaGFzZSgpLnkoKSwgYWN0
dWFsVGlsZVNpemUuaGVpZ2h0KCkpIC0gYWN0dWFsVGlsZVNpemUuaGVpZ2h0KCksIGFjdHVhbFRp
bGVTaXplLmhlaWdodCgpKSk7CisgICAgb25lVGlsZVJlY3Quc2V0WChnZW9tZXRyeS5kZXN0UmVj
dCgpLngoKSArIGZtb2RmKGZtb2RmKC1nZW9tZXRyeS5yZWxhdGl2ZVBoYXNlKCkud2lkdGgoKSwg
YWN0dWFsVGlsZVNpemUud2lkdGgoKSkgLSBhY3R1YWxUaWxlU2l6ZS53aWR0aCgpLCBhY3R1YWxU
aWxlU2l6ZS53aWR0aCgpKSk7CisgICAgb25lVGlsZVJlY3Quc2V0WShnZW9tZXRyeS5kZXN0UmVj
dCgpLnkoKSArIGZtb2RmKGZtb2RmKC1nZW9tZXRyeS5yZWxhdGl2ZVBoYXNlKCkuaGVpZ2h0KCks
IGFjdHVhbFRpbGVTaXplLmhlaWdodCgpKSAtIGFjdHVhbFRpbGVTaXplLmhlaWdodCgpLCBhY3R1
YWxUaWxlU2l6ZS5oZWlnaHQoKSkpOwogICAgIG9uZVRpbGVSZWN0LnNldFNpemUoZ2VvbWV0cnku
dGlsZVNpemUoKSk7CiAgICAgCiAgICAgRmxvYXRTaXplIGludHJpbnNpY1RpbGVTaXplID0gbWFz
a2VyRGF0YS0+bWFza0ltYWdlLT5sb2dpY2FsU2l6ZSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>