<?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>154699</bug_id>
          
          <creation_ts>2016-02-25 15:54:10 -0800</creation_ts>
          <short_desc>RefCounter value changed callback should be called on all changes (not just zero edge).</short_desc>
          <delta_ts>2016-02-26 10:20:12 -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>Web Template Framework</component>
          <version>Other</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="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1168274</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-02-25 15:54:10 -0800</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168275</commentid>
    <comment_count>1</comment_count>
      <attachid>272255</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-02-25 15:54:51 -0800</bug_when>
    <thetext>Created attachment 272255
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168289</commentid>
    <comment_count>2</comment_count>
      <attachid>272261</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-02-25 16:25:53 -0800</bug_when>
    <thetext>Created attachment 272261
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168290</commentid>
    <comment_count>3</comment_count>
      <attachid>272261</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-02-25 16:31:36 -0800</bug_when>
    <thetext>Comment on attachment 272261
Fix

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

&gt; Source/WTF/wtf/RefCounter.h:60
&gt; +    enum Event { Decrement, Increment };

I would use enum class here.

&gt; Source/WTF/wtf/RefCounter.h:61
&gt; +    using ValueChangeFunction = std::function&lt;void(Event)&gt;;

Space after the return type.

&gt; Source/WTF/wtf/RefCounter.h:63
&gt; +    RefCounter(ValueChangeFunction = [](bool) { });

Maybe use nullptr here (and check m_valueChangeFunction)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168338</commentid>
    <comment_count>4</comment_count>
      <attachid>272273</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-02-25 17:58:07 -0800</bug_when>
    <thetext>Created attachment 272273
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168339</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-25 17:59:16 -0800</bug_when>
    <thetext>Attachment 272273 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/WebProcessPool.cpp:162:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/UIProcess/ProcessThrottler.cpp:39:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/RefCounter.h:61:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/VNodeTracker.cpp:43:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/platform/VNodeTracker.cpp:42:  More than one command on the same line in if  [whitespace/parens] [4]
Total errors found: 5 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168444</commentid>
    <comment_count>6</comment_count>
      <attachid>272273</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-02-26 00:15:25 -0800</bug_when>
    <thetext>Comment on attachment 272273
Fix

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168558</commentid>
    <comment_count>7</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-02-26 10:20:12 -0800</bug_when>
    <thetext>Transmitting file data ..............
Committed revision 197178.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272255</attachid>
            <date>2016-02-25 15:54:51 -0800</date>
            <delta_ts>2016-02-25 16:25:53 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>154699.1.patch</filename>
            <type>text/plain</type>
            <size>9818</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V1RGL3d0Zi9SZWZDb3VudGVyLmgJKHJldmlzaW9uIDE5NzEzNykKKysrIFNvdXJjZS9XVEYvd3Rm
L1JlZkNvdW50ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzksOCArMzksOCBAQCBjbGFzcyBSZWZD
b3VudGVyIHsKICAgICBjbGFzcyBDb3VudCB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KENvdW50KTsKICAgICBwdWJsaWM6Ci0gICAgICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHJl
ZigpOwotICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZXJlZigpOworICAgICAgICB2
b2lkIHJlZigpOworICAgICAgICB2b2lkIGRlcmVmKCk7CiAKICAgICBwcml2YXRlOgogICAgICAg
ICBmcmllbmQgY2xhc3MgUmVmQ291bnRlcjsKQEAgLTUyLDYxICs1Miw2MCBAQCBjbGFzcyBSZWZD
b3VudGVyIHsKICAgICAgICAgfQogCiAgICAgICAgIFJlZkNvdW50ZXIqIG1fcmVmQ291bnRlcjsK
LSAgICAgICAgdW5zaWduZWQgbV92YWx1ZTsKKyAgICAgICAgc2l6ZV90IG1fdmFsdWU7CiAgICAg
fTsKIAogcHVibGljOgogICAgIHVzaW5nIFRva2VuID0gUmVmUHRyPENvdW50PjsKKyAgICB1c2lu
ZyBWYWx1ZUNoYW5nZUZ1bmN0aW9uID0gc3RkOjpmdW5jdGlvbjx2b2lkKHNpemVfdCBwcmV2aW91
c1ZhbHVlKT47CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgUmVmQ291bnRlcihzdGQ6OmZ1bmN0
aW9uPHZvaWQoYm9vbCk+ID0gW10oYm9vbCkgeyB9KTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
flJlZkNvdW50ZXIoKTsKKyAgICBSZWZDb3VudGVyKFZhbHVlQ2hhbmdlRnVuY3Rpb24gPSBbXShi
b29sKSB7IH0pOworICAgIH5SZWZDb3VudGVyKCk7CiAKICAgICBUb2tlbiBjb3VudCgpIGNvbnN0
CiAgICAgewogICAgICAgICByZXR1cm4gbV9jb3VudDsKICAgICB9CiAKLSAgICB1bnNpZ25lZCB2
YWx1ZSgpIGNvbnN0CisgICAgc2l6ZV90IHZhbHVlKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJl
dHVybiBtX2NvdW50LT5tX3ZhbHVlOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBzdGQ6OmZ1bmN0
aW9uPHZvaWQoYm9vbCk+IG1fdmFsdWVEaWRDaGFuZ2U7CisgICAgVmFsdWVDaGFuZ2VGdW5jdGlv
biBtX3ZhbHVlRGlkQ2hhbmdlOwogICAgIENvdW50KiBtX2NvdW50OwogfTsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgVD4KIGlubGluZSB2b2lkIFJlZkNvdW50ZXI8VD46OkNvdW50OjpyZWYoKQogewot
ICAgIGJvb2wgdmFsdWVXYXNaZXJvID0gIW1fdmFsdWU7CisgICAgc2l6ZV90IHByZXZpb3VzVmFs
dWUgPSBtX3ZhbHVlOwogICAgICsrbV92YWx1ZTsKICAgICAKLSAgICBpZiAodmFsdWVXYXNaZXJv
ICYmIG1fcmVmQ291bnRlcikKLSAgICAgICAgbV9yZWZDb3VudGVyLT5tX3ZhbHVlRGlkQ2hhbmdl
KHRydWUpOworICAgIGlmIChtX3JlZkNvdW50ZXIpCisgICAgICAgIG1fcmVmQ291bnRlci0+bV92
YWx1ZURpZENoYW5nZShwcmV2aW91c1ZhbHVlKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4K
IGlubGluZSB2b2lkIFJlZkNvdW50ZXI8VD46OkNvdW50OjpkZXJlZigpCiB7CiAgICAgQVNTRVJU
KG1fdmFsdWUpOworICAgIHNpemVfdCBwcmV2aW91c1ZhbHVlID0gbV92YWx1ZTsKICAgICAtLW1f
dmFsdWU7CiAKLSAgICBpZiAobV92YWx1ZSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgLy8gVGhl
IENvdW50IG9iamVjdCBpcyBrZXB0IGFsaXZlIHNvIGxvbmcgYXMgZWl0aGVyIHRoZSBSZWZDb3Vu
dGVyIHRoYXQgY3JlYXRlZCBpdCByZW1haW5zCiAgICAgLy8gYWxsb2NhdGVkLCBvciBzbyBsb25n
IGFzIGl0cyByZWZlcmVuY2UgY291bnQgaXMgbm9uLXplcm8uCiAgICAgLy8gSWYgdGhlIFJlZkNv
dW50ZXIgaGFzIGFscmVhZHkgYmVlbiBkZWFsbG9jdGVkIHRoZW4gZGVsZXRlIHRoZSBDb3VudCB3
aGVuIGl0cyByZWZlcmVuY2UKICAgICAvLyBjb3VudCByZWFjaGVzIHplcm8uCiAgICAgaWYgKG1f
cmVmQ291bnRlcikKLSAgICAgICAgbV9yZWZDb3VudGVyLT5tX3ZhbHVlRGlkQ2hhbmdlKGZhbHNl
KTsKLSAgICBlbHNlCisgICAgICAgIG1fcmVmQ291bnRlci0+bV92YWx1ZURpZENoYW5nZShwcmV2
aW91c1ZhbHVlKTsKKyAgICBlbHNlIGlmICghbV92YWx1ZSkKICAgICAgICAgZGVsZXRlIHRoaXM7
CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1pbmxpbmUgUmVmQ291bnRlcjxUPjo6UmVmQ291
bnRlcihzdGQ6OmZ1bmN0aW9uPHZvaWQoYm9vbCk+IHZhbHVlRGlkQ2hhbmdlKQoraW5saW5lIFJl
ZkNvdW50ZXI8VD46OlJlZkNvdW50ZXIoVmFsdWVDaGFuZ2VGdW5jdGlvbiB2YWx1ZURpZENoYW5n
ZSkKICAgICA6IG1fdmFsdWVEaWRDaGFuZ2UodmFsdWVEaWRDaGFuZ2UpCiAgICAgLCBtX2NvdW50
KG5ldyBDb3VudCgqdGhpcykpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VUaHJv
dHRsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVRocm90dGxl
ci5jcHAJKHJldmlzaW9uIDE5NzEzMikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVRocm90
dGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDggKzM0LDggQEAgUGFnZVRocm90dGxlcjo6
UGFnZVRocm90dGxlcihQYWdlJiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX3Vz
ZXJJbnB1dEh5c3RlcmVzaXMoW3RoaXNdKEh5c3RlcmVzaXNTdGF0ZSBzdGF0ZSkgeyBzZXRBY3Rp
dml0eUZsYWcoUGFnZUFjdGl2aXR5U3RhdGU6OlVzZXJJbnB1dEFjdGl2aXR5LCBzdGF0ZSA9PSBI
eXN0ZXJlc2lzU3RhdGU6OlN0YXJ0ZWQpOyB9KQogICAgICwgbV9hdWRpYmxlUGx1Z2luSHlzdGVy
ZXNpcyhbdGhpc10oSHlzdGVyZXNpc1N0YXRlIHN0YXRlKSB7IHNldEFjdGl2aXR5RmxhZyhQYWdl
QWN0aXZpdHlTdGF0ZTo6QXVkaWJsZVBsdWdpbiwgc3RhdGUgPT0gSHlzdGVyZXNpc1N0YXRlOjpT
dGFydGVkKTsgfSkKLSAgICAsIG1fbWVkaWFBY3Rpdml0eUNvdW50ZXIoW3RoaXNdKGJvb2wgdmFs
dWUpIHsgc2V0QWN0aXZpdHlGbGFnKFBhZ2VBY3Rpdml0eVN0YXRlOjpNZWRpYUFjdGl2aXR5LCB2
YWx1ZSk7IH0pCi0gICAgLCBtX3BhZ2VMb2FkQWN0aXZpdHlDb3VudGVyKFt0aGlzXShib29sIHZh
bHVlKSB7IHNldEFjdGl2aXR5RmxhZyhQYWdlQWN0aXZpdHlTdGF0ZTo6UGFnZUxvYWRBY3Rpdml0
eSwgdmFsdWUpOyB9KQorICAgICwgbV9tZWRpYUFjdGl2aXR5Q291bnRlcihbdGhpc10oc2l6ZV90
KSB7IHNldEFjdGl2aXR5RmxhZyhQYWdlQWN0aXZpdHlTdGF0ZTo6TWVkaWFBY3Rpdml0eSwgbV9t
ZWRpYUFjdGl2aXR5Q291bnRlci52YWx1ZSgpKTsgfSkKKyAgICAsIG1fcGFnZUxvYWRBY3Rpdml0
eUNvdW50ZXIoW3RoaXNdKHNpemVfdCkgeyBzZXRBY3Rpdml0eUZsYWcoUGFnZUFjdGl2aXR5U3Rh
dGU6OlBhZ2VMb2FkQWN0aXZpdHksIG1fcGFnZUxvYWRBY3Rpdml0eUNvdW50ZXIudmFsdWUoKSk7
IH0pCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZOb2RlVHJhY2tlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVk5vZGVUcmFja2VyLmNw
cAkocmV2aXNpb24gMTk3MTMxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVk5vZGVUcmFj
a2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksOCBAQCBWTm9kZVRyYWNrZXImIFZO
b2RlVHJhY2tlcjo6c2luZ2xldG9uKCkKIH0KIAogVk5vZGVUcmFja2VyOjpWTm9kZVRyYWNrZXIo
KQotICAgIDogbV9wcmVzc3VyZVdhcm5pbmdUaW1lcigqdGhpcywgJlZOb2RlVHJhY2tlcjo6cHJl
c3N1cmVXYXJuaW5nVGltZXJGaXJlZCkKKyAgICA6IG1fdm5vZGVDb3VudGVyKFt0aGlzXShzaXpl
X3QgcHJldmlvdXNWYWx1ZSkgeyBpZiAobV92bm9kZUNvdW50ZXIudmFsdWUoKSA+IHByZXZpb3Vz
VmFsdWUpIGNoZWNrUHJlc3N1cmVTdGF0ZSgpOyB9KQorICAgICwgbV9wcmVzc3VyZVdhcm5pbmdU
aW1lcigqdGhpcywgJlZOb2RlVHJhY2tlcjo6cHJlc3N1cmVXYXJuaW5nVGltZXJGaXJlZCkKICAg
ICAsIG1fbGFzdFdhcm5pbmdUaW1lKHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpKQog
ewogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpAQCAtNjcsNyArNjgsNyBAQCB2b2lkIFZOb2Rl
VHJhY2tlcjo6cHJlc3N1cmVXYXJuaW5nVGltZXJGCiAgICAgdW5zaWduZWQgdm5vZGVDb3VudCA9
IG1fdm5vZGVDb3VudGVyLnZhbHVlKCk7CiAgICAgYXV0byBjcml0aWNhbCA9IHZub2RlQ291bnQg
PiBtX2hhcmRWTm9kZUxpbWl0ID8gQ3JpdGljYWw6OlllcyA6IENyaXRpY2FsOjpObzsKICAgICBt
X3ByZXNzdXJlSGFuZGxlcihjcml0aWNhbCk7Ci0gICAgTE9HKE1lbW9yeVByZXNzdXJlLCAidm5v
ZGUgcHJlc3N1cmUgaGFuZGxlciBmcmVlZCAlZCB2bm9kZXMgb3V0IG9mICV1IChjcml0aWNhbCBw
cmVzc3VyZTogJXMpIiwgdm5vZGVDb3VudCAtIG1fdm5vZGVDb3VudGVyLnZhbHVlKCksIHZub2Rl
Q291bnQsIGNyaXRpY2FsID09IENyaXRpY2FsOjpZZXMgPyAiWWVzIiA6ICJObyIpOworICAgIExP
RyhNZW1vcnlQcmVzc3VyZSwgInZub2RlIHByZXNzdXJlIGhhbmRsZXIgZnJlZWQgJWx1IHZub2Rl
cyBvdXQgb2YgJXUgKGNyaXRpY2FsIHByZXNzdXJlOiAlcykiLCB2bm9kZUNvdW50IC0gbV92bm9k
ZUNvdW50ZXIudmFsdWUoKSwgdm5vZGVDb3VudCwgY3JpdGljYWwgPT0gQ3JpdGljYWw6OlllcyA/
ICJZZXMiIDogIk5vIik7CiB9CiAKIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgVk5vZGVUcmFj
a2VyOjpuZXh0UHJlc3N1cmVXYXJuaW5nSW50ZXJ2YWwoKSBjb25zdApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVk5vZGVUcmFja2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVk5vZGVUcmFja2VyLmgJKHJldmlzaW9uIDE5NzEzMikKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1ZOb2RlVHJhY2tlci5oCSh3b3JraW5nIGNvcHkpCkBAIC03MiwxMiAr
NzIsNyBAQCBpbmxpbmUgdm9pZCBWTm9kZVRyYWNrZXI6OnNldFByZXNzdXJlSGFuCiAKIGlubGlu
ZSBhdXRvIFZOb2RlVHJhY2tlcjo6dG9rZW4oKSAtPiBUb2tlbgogewotICAgIGlmICghbV9wcmVz
c3VyZUhhbmRsZXIpCi0gICAgICAgIHJldHVybiBUb2tlbigpOwotCi0gICAgVG9rZW4gdG9rZW4o
bV92bm9kZUNvdW50ZXIuY291bnQoKSk7Ci0gICAgY2hlY2tQcmVzc3VyZVN0YXRlKCk7Ci0gICAg
cmV0dXJuIHRva2VuOworICAgIHJldHVybiBtX3ByZXNzdXJlSGFuZGxlciA/IG1fdm5vZGVDb3Vu
dGVyLmNvdW50KCkgOiBUb2tlbigpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCShyZXZp
c2lvbiAxOTcxMzEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDggKzM1LDggQEAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIHByb2Nlc3NTdXNwZW5zaW9uVAogUHJvY2Vzc1Rocm90dGxlcjo6UHJvY2Vzc1Rocm90dGxl
cihQcm9jZXNzVGhyb3R0bGVyQ2xpZW50JiBwcm9jZXNzKQogICAgIDogbV9wcm9jZXNzKHByb2Nl
c3MpCiAgICAgLCBtX3N1c3BlbmRUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZQcm9jZXNz
VGhyb3R0bGVyOjpzdXNwZW5kVGltZXJGaXJlZCkKLSAgICAsIG1fZm9yZWdyb3VuZENvdW50ZXIo
W3RoaXNdKGJvb2wpIHsgdXBkYXRlQXNzZXJ0aW9uKCk7IH0pCi0gICAgLCBtX2JhY2tncm91bmRD
b3VudGVyKFt0aGlzXShib29sKSB7IHVwZGF0ZUFzc2VydGlvbigpOyB9KQorICAgICwgbV9mb3Jl
Z3JvdW5kQ291bnRlcihbdGhpc10oc2l6ZV90KSB7IHVwZGF0ZUFzc2VydGlvbigpOyB9KQorICAg
ICwgbV9iYWNrZ3JvdW5kQ291bnRlcihbdGhpc10oc2l6ZV90KSB7IHVwZGF0ZUFzc2VydGlvbigp
OyB9KQogICAgICwgbV9zdXNwZW5kTWVzc2FnZUNvdW50KDApCiB7CiB9CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAJKHJldmlzaW9uIDE5NzEzMSkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE1OCw4ICsxNTgsOCBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2wo
QVBJOjpQcm9jCiAgICAgLCBtX2NhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uKHRy
dWUpCiAgICAgLCBtX2RpZE5ldHdvcmtQcm9jZXNzQ3Jhc2goZmFsc2UpCiAgICAgLCBtX21lbW9y
eUNhY2hlRGlzYWJsZWQoZmFsc2UpCi0gICAgLCBtX3VzZXJPYnNlcnZhYmxlUGFnZUNvdW50ZXIo
W3RoaXNdKGJvb2wpIHsgdXBkYXRlUHJvY2Vzc1N1cHByZXNzaW9uU3RhdGUoKTsgfSkKLSAgICAs
IG1fcHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRGb3JQYWdlQ291bnRlcihbdGhpc10oYm9vbCkg
eyB1cGRhdGVQcm9jZXNzU3VwcHJlc3Npb25TdGF0ZSgpOyB9KQorICAgICwgbV91c2VyT2JzZXJ2
YWJsZVBhZ2VDb3VudGVyKFt0aGlzXShzaXplX3QpIHsgdXBkYXRlUHJvY2Vzc1N1cHByZXNzaW9u
U3RhdGUoKTsgfSkKKyAgICAsIG1fcHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRGb3JQYWdlQ291
bnRlcihbdGhpc10oc2l6ZV90KSB7IHVwZGF0ZVByb2Nlc3NTdXBwcmVzc2lvblN0YXRlKCk7IH0p
CiB7CiAgICAgZm9yIChhdXRvJiBzY2hlbWUgOiBtX2NvbmZpZ3VyYXRpb24tPmFsd2F5c1JldmFs
aWRhdGVkVVJMU2NoZW1lcygpKQogICAgICAgICBtX3NjaGVtZXNUb1JlZ2lzdGVyQXNBbHdheXNS
ZXZhbGlkYXRlZC5hZGQoc2NoZW1lKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAJKHJldmlzaW9u
IDE5NzEzMSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NNYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQCBQbHVnaW5Qcm9j
ZXNzTWFuYWdlciYgUGx1Z2luUHJvY2Vzc01hbmFnCiAKIFBsdWdpblByb2Nlc3NNYW5hZ2VyOjpQ
bHVnaW5Qcm9jZXNzTWFuYWdlcigpCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgOiBtX3Byb2Nl
c3NTdXBwcmVzc2lvbkRpc2FibGVkRm9yUGFnZUNvdW50ZXIoW3RoaXNdKGJvb2wgdmFsdWUpIHsg
dXBkYXRlUHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWQodmFsdWUpOyB9KQorICAgIDogbV9wcm9j
ZXNzU3VwcHJlc3Npb25EaXNhYmxlZEZvclBhZ2VDb3VudGVyKFt0aGlzXShzaXplX3QgcHJldmlv
dXNWYWx1ZSkgeyB1cGRhdGVQcm9jZXNzU3VwcHJlc3Npb25EaXNhYmxlZChwcmV2aW91c1ZhbHVl
KTsgfSkKICNlbmRpZgogewogfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5oCShyZXZpc2lvbiAxOTcxMzIp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9S
TShDT0NPQSkKICAgICBpbmxpbmUgUHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRUb2tlbiBwcm9j
ZXNzU3VwcHJlc3Npb25EaXNhYmxlZFRva2VuKCk7CiAgICAgaW5saW5lIGJvb2wgcHJvY2Vzc1N1
cHByZXNzaW9uRGlzYWJsZWQoKSBjb25zdDsKLSAgICB2b2lkIHVwZGF0ZVByb2Nlc3NTdXBwcmVz
c2lvbkRpc2FibGVkKGJvb2wpOworICAgIHZvaWQgdXBkYXRlUHJvY2Vzc1N1cHByZXNzaW9uRGlz
YWJsZWQoc2l6ZV90IHByZXZpb3VzU3VwcmVzc2lvbkNvdW50ZXJWYWx1ZSk7CiAjZW5kaWYKIAog
cHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVn
aW5Qcm9jZXNzTWFuYWdlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc01hbmFnZXJNYWMubW0JKHJldmlzaW9uIDE5
NzEzMSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9j
ZXNzTWFuYWdlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzIsOSArMzIsMTkgQEAKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgUGx1Z2luUHJvY2Vzc01hbmFnZXI6OnVwZGF0ZVByb2Nl
c3NTdXBwcmVzc2lvbkRpc2FibGVkKGJvb2wgZGlzYWJsZWQpCit2b2lkIFBsdWdpblByb2Nlc3NN
YW5hZ2VyOjp1cGRhdGVQcm9jZXNzU3VwcHJlc3Npb25EaXNhYmxlZChzaXplX3QgcHJldmlvdXNT
dXByZXNzaW9uQ291bnRlclZhbHVlKQogewotICAgIGJvb2wgZW5hYmxlZCA9ICFkaXNhYmxlZDsK
KyAgICBib29sIGVuYWJsZWQ7CisgICAgaWYgKCFwcmV2aW91c1N1cHJlc3Npb25Db3VudGVyVmFs
dWUpIHsKKyAgICAgICAgLy8gIERpc2FibGVkIGNvdW50IGp1c3QgcmFpc2VkIGZyb20gemVybyB0
byBub24temVybywgc28gc3VwcHJlc3Npb24gaXMgbm93IGRpc2FibGVkLgorICAgICAgICBBU1NF
UlQobV9wcm9jZXNzU3VwcHJlc3Npb25EaXNhYmxlZEZvclBhZ2VDb3VudGVyLnZhbHVlKCkpOwor
ICAgICAgICBlbmFibGVkID0gZmFsc2U7CisgICAgfSBlbHNlIGlmICghbV9wcm9jZXNzU3VwcHJl
c3Npb25EaXNhYmxlZEZvclBhZ2VDb3VudGVyLnZhbHVlKCkpIHsKKyAgICAgICAgLy8gRGlzYWJs
ZSBjb3VudCBqdXN0IGRyb3BwZWQgZnJvbSBub24temVybyB0byB6ZXJvLCBzbyBzdXBwcmVzc2lv
biBpcyBub3cgZW5hYmxlZC4KKyAgICAgICAgQVNTRVJUKHByZXZpb3VzU3VwcmVzc2lvbkNvdW50
ZXJWYWx1ZSA9PSAxKTsKKyAgICAgICAgZW5hYmxlZCA9IHRydWU7CisgICAgfSBlbHNlCisgICAg
ICAgIHJldHVybjsKIAogICAgIGZvciAoYXV0byYgcGx1Z2luUHJvY2VzcyA6IG1fcGx1Z2luUHJv
Y2Vzc2VzKQogICAgICAgICBwbHVnaW5Qcm9jZXNzLT5zZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFi
bGVkKGVuYWJsZWQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272261</attachid>
            <date>2016-02-25 16:25:53 -0800</date>
            <delta_ts>2016-02-25 17:58:07 -0800</delta_ts>
            <desc>Fix</desc>
            <filename>154699.2.patch</filename>
            <type>text/plain</type>
            <size>14098</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxOTcxMzcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE2LTAyLTI1ICBHYXZpbiBCYXJyYWNsb3VnaCAg
PGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZDb3VudGVyIHZhbHVlIGNoYW5n
ZWQgY2FsbGJhY2sgc2hvdWxkIGJlIGNhbGxlZCBvbiBhbGwgY2hhbmdlcyAobm90IGp1c3QgemVy
byBlZGdlKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1NDY5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlZkNvdW50ZXIgY3VycmVudGx5IG9ubHkgdHJpZ2dlcnMgYSBjYWxsYmFjayB3aGVuIHRoZSBj
b3VudCBnb2VzIGZyb20gemVybworICAgICAgICB0byBub24temVybyBhbmQgdmljZS12ZXJzYS4g
Q2hhbmdlIHRoYXQsIHRvIGJlIHVzZWZ1bCB0byBtb3JlIGNsaWVudHMuCisKKyAgICAgICAgKiB3
dGYvUmVmQ291bnRlci5oOgorICAgICAgICAoV1RGOjpSZWZDb3VudGVyOjpDb3VudDo6Q291bnQp
OgorICAgICAgICAoV1RGOjpSZWZDb3VudGVyOjpSZWZDb3VudGVyKToKKyAgICAgICAgICAgIC0g
UmVtb3ZlZCBzdXBlcmZsdW91cyBXVEZfRVhQT1JUX1BSSVZBVEUuCisgICAgICAgIChXVEY6OlJl
ZkNvdW50ZXI6OnZhbHVlKToKKyAgICAgICAgICAgIC0gQ2hhbmdlZCB2YWx1ZSgpIHRvIGEgc2l6
ZV90LgorICAgICAgICAoV1RGOjpSZWZDb3VudGVyPFQ+OjpDb3VudDo6cmVmKToKKyAgICAgICAg
KFdURjo6UmVmQ291bnRlcjxUPjo6Q291bnQ6OmRlcmVmKToKKyAgICAgICAgICAgIC0gVHJpZ2dl
ciB0aGUgY2FsbGJhY2sgb24gYWxsIGluY3JlbWVudHMvZGVjcmVtZW50cy4KKyAgICAgICAgKFdU
Rjo6UmVmQ291bnRlcjxUPjo6UmVmQ291bnRlcik6CisgICAgICAgICAgICAtIENoYW5nZWQgc2ln
YW50dXJlIG9mIGNhbGxiYWNrLgorCiAyMDE2LTAyLTI1ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJh
cnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNlIFJlZkNvdW50ZXI6OlRva2Vu
IGltcGxlbWVudGF0aW9uIHdpdGggUmVmUHRyCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9SZWZDb3Vu
dGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUmVmQ291bnRlci5oCShyZXZpc2lv
biAxOTcxMzcpCisrKyBTb3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM5LDggKzM5LDggQEAgY2xhc3MgUmVmQ291bnRlciB7CiAgICAgY2xhc3MgQ291bnQgewog
ICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb3VudCk7CiAgICAgcHVibGljOgotICAgICAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCByZWYoKTsKLSAgICAgICAgV1RGX0VYUE9SVF9QUklW
QVRFIHZvaWQgZGVyZWYoKTsKKyAgICAgICAgdm9pZCByZWYoKTsKKyAgICAgICAgdm9pZCBkZXJl
ZigpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5kIGNsYXNzIFJlZkNvdW50ZXI7CkBA
IC01MiwzOCArNTIsMzggQEAgY2xhc3MgUmVmQ291bnRlciB7CiAgICAgICAgIH0KIAogICAgICAg
ICBSZWZDb3VudGVyKiBtX3JlZkNvdW50ZXI7Ci0gICAgICAgIHVuc2lnbmVkIG1fdmFsdWU7Cisg
ICAgICAgIHNpemVfdCBtX3ZhbHVlOwogICAgIH07CiAKIHB1YmxpYzoKICAgICB1c2luZyBUb2tl
biA9IFJlZlB0cjxDb3VudD47CisgICAgZW51bSBFdmVudCB7IERlY3JlbWVudCwgSW5jcmVtZW50
IH07CisgICAgdXNpbmcgVmFsdWVDaGFuZ2VGdW5jdGlvbiA9IHN0ZDo6ZnVuY3Rpb248dm9pZChF
dmVudCk+OwogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIFJlZkNvdW50ZXIoc3RkOjpmdW5jdGlv
bjx2b2lkKGJvb2wpPiA9IFtdKGJvb2wpIHsgfSk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIH5S
ZWZDb3VudGVyKCk7CisgICAgUmVmQ291bnRlcihWYWx1ZUNoYW5nZUZ1bmN0aW9uID0gW10oYm9v
bCkgeyB9KTsKKyAgICB+UmVmQ291bnRlcigpOwogCiAgICAgVG9rZW4gY291bnQoKSBjb25zdAog
ICAgIHsKICAgICAgICAgcmV0dXJuIG1fY291bnQ7CiAgICAgfQogCi0gICAgdW5zaWduZWQgdmFs
dWUoKSBjb25zdAorICAgIHNpemVfdCB2YWx1ZSgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1
cm4gbV9jb3VudC0+bV92YWx1ZTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgc3RkOjpmdW5jdGlv
bjx2b2lkKGJvb2wpPiBtX3ZhbHVlRGlkQ2hhbmdlOworICAgIFZhbHVlQ2hhbmdlRnVuY3Rpb24g
bV92YWx1ZURpZENoYW5nZTsKICAgICBDb3VudCogbV9jb3VudDsKIH07CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+CiBpbmxpbmUgdm9pZCBSZWZDb3VudGVyPFQ+OjpDb3VudDo6cmVmKCkKIHsKLSAg
ICBib29sIHZhbHVlV2FzWmVybyA9ICFtX3ZhbHVlOwogICAgICsrbV92YWx1ZTsKLSAgICAKLSAg
ICBpZiAodmFsdWVXYXNaZXJvICYmIG1fcmVmQ291bnRlcikKLSAgICAgICAgbV9yZWZDb3VudGVy
LT5tX3ZhbHVlRGlkQ2hhbmdlKHRydWUpOworICAgIGlmIChtX3JlZkNvdW50ZXIpCisgICAgICAg
IG1fcmVmQ291bnRlci0+bV92YWx1ZURpZENoYW5nZShJbmNyZW1lbnQpOwogfQogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgpAQCAtOTIsMjEgKzkyLDE4IEBAIGlubGluZSB2b2lkIFJlZkNvdW50ZXI8
VD46OkNvdW50OjpkZXJlZigKICAgICBBU1NFUlQobV92YWx1ZSk7CiAgICAgLS1tX3ZhbHVlOwog
Ci0gICAgaWYgKG1fdmFsdWUpCi0gICAgICAgIHJldHVybjsKLQogICAgIC8vIFRoZSBDb3VudCBv
YmplY3QgaXMga2VwdCBhbGl2ZSBzbyBsb25nIGFzIGVpdGhlciB0aGUgUmVmQ291bnRlciB0aGF0
IGNyZWF0ZWQgaXQgcmVtYWlucwogICAgIC8vIGFsbG9jYXRlZCwgb3Igc28gbG9uZyBhcyBpdHMg
cmVmZXJlbmNlIGNvdW50IGlzIG5vbi16ZXJvLgogICAgIC8vIElmIHRoZSBSZWZDb3VudGVyIGhh
cyBhbHJlYWR5IGJlZW4gZGVhbGxvY3RlZCB0aGVuIGRlbGV0ZSB0aGUgQ291bnQgd2hlbiBpdHMg
cmVmZXJlbmNlCiAgICAgLy8gY291bnQgcmVhY2hlcyB6ZXJvLgogICAgIGlmIChtX3JlZkNvdW50
ZXIpCi0gICAgICAgIG1fcmVmQ291bnRlci0+bV92YWx1ZURpZENoYW5nZShmYWxzZSk7Ci0gICAg
ZWxzZQorICAgICAgICBtX3JlZkNvdW50ZXItPm1fdmFsdWVEaWRDaGFuZ2UoRGVjcmVtZW50KTsK
KyAgICBlbHNlIGlmICghbV92YWx1ZSkKICAgICAgICAgZGVsZXRlIHRoaXM7CiB9CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+Ci1pbmxpbmUgUmVmQ291bnRlcjxUPjo6UmVmQ291bnRlcihzdGQ6OmZ1
bmN0aW9uPHZvaWQoYm9vbCk+IHZhbHVlRGlkQ2hhbmdlKQoraW5saW5lIFJlZkNvdW50ZXI8VD46
OlJlZkNvdW50ZXIoVmFsdWVDaGFuZ2VGdW5jdGlvbiB2YWx1ZURpZENoYW5nZSkKICAgICA6IG1f
dmFsdWVEaWRDaGFuZ2UodmFsdWVEaWRDaGFuZ2UpCiAgICAgLCBtX2NvdW50KG5ldyBDb3VudCgq
dGhpcykpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTcxMzIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNCBAQAorMjAxNi0wMi0y
NSAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CisKKyAgICAgICAg
UmVmQ291bnRlciB2YWx1ZSBjaGFuZ2VkIGNhbGxiYWNrIHNob3VsZCBiZSBjYWxsZWQgb24gYWxs
IGNoYW5nZXMgKG5vdCBqdXN0IHplcm8gZWRnZSkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ2OTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZWZDb3VudGVyIGN1cnJlbnRseSBvbmx5IHRyaWdnZXJz
IGEgY2FsbGJhY2sgd2hlbiB0aGUgY291bnQgZ29lcyBmcm9tIHplcm8KKyAgICAgICAgdG8gbm9u
LXplcm8gYW5kIHZpY2UtdmVyc2EuIENoYW5nZSB0aGF0LCB0byBiZSB1c2VmdWwgdG8gbW9yZSBj
bGllbnRzLgorCisgICAgICAgICogcGFnZS9QYWdlVGhyb3R0bGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2VUaHJvdHRsZXI6OlBhZ2VUaHJvdHRsZXIpOgorICAgICAgICAgICAgLSBVcGRh
dGVkIGZvciBjaGFuZ2UgaW4gUmVmQ291bnRlciBjYWxsYmFjayBzaWdhbnR1cmUuCisgICAgICAg
ICogcGxhdGZvcm0vVk5vZGVUcmFja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZOb2RlVHJh
Y2tlcjo6Vk5vZGVUcmFja2VyKToKKyAgICAgICAgICAgIC0gQ2FuIG5vdyB1c2UgUmVmQ291bnRl
ciBjYWxsYmFjayB0byB0cmlnZ2VyIGNoZWNrUHJlc3N1cmVTdGF0ZSgpLgorICAgICAgICAoV2Vi
Q29yZTo6Vk5vZGVUcmFja2VyOjpwcmVzc3VyZVdhcm5pbmdUaW1lckZpcmVkKToKKyAgICAgICAg
ICAgIC0gUmVmQ291bnRlciBjb3VudCBpcyBub3cgYSBzaXplX3QgKCVkIC0+ICV1bCkuCisgICAg
ICAgICogcGxhdGZvcm0vVk5vZGVUcmFja2VyLmg6CisgICAgICAgICAgICAtIHNpbXBsaWZpZWQg
Vk5vZGVUcmFja2VyOjp0b2tlbigpIFtubyBsb25nZXIgbmVlZHMgdG8gY2FsbCBjaGVja1ByZXNz
dXJlU3RhdGUoKV0uCisKIDIwMTYtMDItMjUgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91
Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFNob3VsZCB0ZW1wbGF0ZSBSZWZDb3VudGVyIGluc3Rl
YWQgb2YgUmVmQ291bnRlcjo6VG9rZW4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVRo
cm90dGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVGhyb3R0
bGVyLmNwcAkocmV2aXNpb24gMTk3MTMyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVGhy
b3R0bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsOCArMzQsOCBAQCBQYWdlVGhyb3R0bGVy
OjpQYWdlVGhyb3R0bGVyKFBhZ2UmIHBhZ2UpCiAgICAgOiBtX3BhZ2UocGFnZSkKICAgICAsIG1f
dXNlcklucHV0SHlzdGVyZXNpcyhbdGhpc10oSHlzdGVyZXNpc1N0YXRlIHN0YXRlKSB7IHNldEFj
dGl2aXR5RmxhZyhQYWdlQWN0aXZpdHlTdGF0ZTo6VXNlcklucHV0QWN0aXZpdHksIHN0YXRlID09
IEh5c3RlcmVzaXNTdGF0ZTo6U3RhcnRlZCk7IH0pCiAgICAgLCBtX2F1ZGlibGVQbHVnaW5IeXN0
ZXJlc2lzKFt0aGlzXShIeXN0ZXJlc2lzU3RhdGUgc3RhdGUpIHsgc2V0QWN0aXZpdHlGbGFnKFBh
Z2VBY3Rpdml0eVN0YXRlOjpBdWRpYmxlUGx1Z2luLCBzdGF0ZSA9PSBIeXN0ZXJlc2lzU3RhdGU6
OlN0YXJ0ZWQpOyB9KQotICAgICwgbV9tZWRpYUFjdGl2aXR5Q291bnRlcihbdGhpc10oYm9vbCB2
YWx1ZSkgeyBzZXRBY3Rpdml0eUZsYWcoUGFnZUFjdGl2aXR5U3RhdGU6Ok1lZGlhQWN0aXZpdHks
IHZhbHVlKTsgfSkKLSAgICAsIG1fcGFnZUxvYWRBY3Rpdml0eUNvdW50ZXIoW3RoaXNdKGJvb2wg
dmFsdWUpIHsgc2V0QWN0aXZpdHlGbGFnKFBhZ2VBY3Rpdml0eVN0YXRlOjpQYWdlTG9hZEFjdGl2
aXR5LCB2YWx1ZSk7IH0pCisgICAgLCBtX21lZGlhQWN0aXZpdHlDb3VudGVyKFt0aGlzXShQYWdl
QWN0aXZpdHlDb3VudGVyOjpFdmVudCkgeyBzZXRBY3Rpdml0eUZsYWcoUGFnZUFjdGl2aXR5U3Rh
dGU6Ok1lZGlhQWN0aXZpdHksIG1fbWVkaWFBY3Rpdml0eUNvdW50ZXIudmFsdWUoKSk7IH0pCisg
ICAgLCBtX3BhZ2VMb2FkQWN0aXZpdHlDb3VudGVyKFt0aGlzXShQYWdlQWN0aXZpdHlDb3VudGVy
OjpFdmVudCkgeyBzZXRBY3Rpdml0eUZsYWcoUGFnZUFjdGl2aXR5U3RhdGU6OlBhZ2VMb2FkQWN0
aXZpdHksIG1fcGFnZUxvYWRBY3Rpdml0eUNvdW50ZXIudmFsdWUoKSk7IH0pCiB7CiB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZOb2RlVHJhY2tlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVk5vZGVUcmFja2VyLmNwcAkocmV2aXNpb24gMTk3
MTMxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVk5vZGVUcmFja2VyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzksNyArMzksOCBAQCBWTm9kZVRyYWNrZXImIFZOb2RlVHJhY2tlcjo6c2lu
Z2xldG9uKCkKIH0KIAogVk5vZGVUcmFja2VyOjpWTm9kZVRyYWNrZXIoKQotICAgIDogbV9wcmVz
c3VyZVdhcm5pbmdUaW1lcigqdGhpcywgJlZOb2RlVHJhY2tlcjo6cHJlc3N1cmVXYXJuaW5nVGlt
ZXJGaXJlZCkKKyAgICA6IG1fdm5vZGVDb3VudGVyKFt0aGlzXShWTm9kZUNvdW50ZXI6OkV2ZW50
IGV2ZW50KSB7IGlmIChldmVudCA9PSBWTm9kZUNvdW50ZXI6OkluY3JlbWVudCkgY2hlY2tQcmVz
c3VyZVN0YXRlKCk7IH0pCisgICAgLCBtX3ByZXNzdXJlV2FybmluZ1RpbWVyKCp0aGlzLCAmVk5v
ZGVUcmFja2VyOjpwcmVzc3VyZVdhcm5pbmdUaW1lckZpcmVkKQogICAgICwgbV9sYXN0V2Fybmlu
Z1RpbWUoc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkpCiB7CiAgICAgcGxhdGZvcm1J
bml0aWFsaXplKCk7CkBAIC02Nyw3ICs2OCw3IEBAIHZvaWQgVk5vZGVUcmFja2VyOjpwcmVzc3Vy
ZVdhcm5pbmdUaW1lckYKICAgICB1bnNpZ25lZCB2bm9kZUNvdW50ID0gbV92bm9kZUNvdW50ZXIu
dmFsdWUoKTsKICAgICBhdXRvIGNyaXRpY2FsID0gdm5vZGVDb3VudCA+IG1faGFyZFZOb2RlTGlt
aXQgPyBDcml0aWNhbDo6WWVzIDogQ3JpdGljYWw6Ok5vOwogICAgIG1fcHJlc3N1cmVIYW5kbGVy
KGNyaXRpY2FsKTsKLSAgICBMT0coTWVtb3J5UHJlc3N1cmUsICJ2bm9kZSBwcmVzc3VyZSBoYW5k
bGVyIGZyZWVkICVkIHZub2RlcyBvdXQgb2YgJXUgKGNyaXRpY2FsIHByZXNzdXJlOiAlcykiLCB2
bm9kZUNvdW50IC0gbV92bm9kZUNvdW50ZXIudmFsdWUoKSwgdm5vZGVDb3VudCwgY3JpdGljYWwg
PT0gQ3JpdGljYWw6OlllcyA/ICJZZXMiIDogIk5vIik7CisgICAgTE9HKE1lbW9yeVByZXNzdXJl
LCAidm5vZGUgcHJlc3N1cmUgaGFuZGxlciBmcmVlZCAlbHUgdm5vZGVzIG91dCBvZiAldSAoY3Jp
dGljYWwgcHJlc3N1cmU6ICVzKSIsIHZub2RlQ291bnQgLSBtX3Zub2RlQ291bnRlci52YWx1ZSgp
LCB2bm9kZUNvdW50LCBjcml0aWNhbCA9PSBDcml0aWNhbDo6WWVzID8gIlllcyIgOiAiTm8iKTsK
IH0KIAogc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBWTm9kZVRyYWNrZXI6Om5leHRQcmVzc3Vy
ZVdhcm5pbmdJbnRlcnZhbCgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9W
Tm9kZVRyYWNrZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WTm9k
ZVRyYWNrZXIuaAkocmV2aXNpb24gMTk3MTMyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Vk5vZGVUcmFja2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDEyICs3Miw3IEBAIGlubGluZSB2
b2lkIFZOb2RlVHJhY2tlcjo6c2V0UHJlc3N1cmVIYW4KIAogaW5saW5lIGF1dG8gVk5vZGVUcmFj
a2VyOjp0b2tlbigpIC0+IFRva2VuCiB7Ci0gICAgaWYgKCFtX3ByZXNzdXJlSGFuZGxlcikKLSAg
ICAgICAgcmV0dXJuIFRva2VuKCk7Ci0KLSAgICBUb2tlbiB0b2tlbihtX3Zub2RlQ291bnRlci5j
b3VudCgpKTsKLSAgICBjaGVja1ByZXNzdXJlU3RhdGUoKTsKLSAgICByZXR1cm4gdG9rZW47Cisg
ICAgcmV0dXJuIG1fcHJlc3N1cmVIYW5kbGVyID8gbV92bm9kZUNvdW50ZXIuY291bnQoKSA6IFRv
a2VuKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlz
aW9uIDE5NzE0MykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDI4IEBACisyMDE2LTAyLTI1ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xv
dWdoQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZDb3VudGVyIHZhbHVlIGNoYW5nZWQgY2FsbGJh
Y2sgc2hvdWxkIGJlIGNhbGxlZCBvbiBhbGwgY2hhbmdlcyAobm90IGp1c3QgemVybyBlZGdlKS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDY5OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZkNvdW50
ZXIgY3VycmVudGx5IG9ubHkgdHJpZ2dlcnMgYSBjYWxsYmFjayB3aGVuIHRoZSBjb3VudCBnb2Vz
IGZyb20gemVybworICAgICAgICB0byBub24temVybyBhbmQgdmljZS12ZXJzYS4gQ2hhbmdlIHRo
YXQsIHRvIGJlIHVzZWZ1bCB0byBtb3JlIGNsaWVudHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdp
blByb2Nlc3NNYW5hZ2VyOjpQbHVnaW5Qcm9jZXNzTWFuYWdlcik6CisgICAgICAgICAgICAtIFVw
ZGF0ZWQgZm9yIGNoYW5nZSBpbiBSZWZDb3VudGVyIGNhbGxiYWNrIHNpZ2FudHVyZS4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5oOgorICAgICAgICAg
ICAgLSBVcGRhdGVkIGZvciBjaGFuZ2UgaW4gUmVmQ291bnRlciBjYWxsYmFjayBzaWdhbnR1cmUu
CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NNYW5hZ2VyTWFj
Lm1tOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6dXBkYXRlUHJvY2Vz
c1N1cHByZXNzaW9uRGlzYWJsZWQpOgorICAgICAgICAgICAgLSB1cGRhdGVkIGxvZ2ljIGZvciBl
bmFibGluZyBwcm9jZXNzIHN1cHJlc3Npb24uCisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NU
aHJvdHRsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpQcm9jZXNz
VGhyb3R0bGVyKToKKyAgICAgICAgICAgIC0gVXBkYXRlZCBmb3IgY2hhbmdlIGluIFJlZkNvdW50
ZXIgY2FsbGJhY2sgc2lnYW50dXJlLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpXZWJQcm9jZXNzUG9vbCk6
CisgICAgICAgICAgICAtIFVwZGF0ZWQgZm9yIGNoYW5nZSBpbiBSZWZDb3VudGVyIGNhbGxiYWNr
IHNpZ2FudHVyZS4KKwogMjAxNi0wMi0yNSAgQWRhIENoYW4gIDxhZGFjaGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBIb29rIHVwIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpIGluIFdLUGFn
ZVVJQ2xpZW50CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NUaHJv
dHRsZXIuY3BwCShyZXZpc2lvbiAxOTcxMzEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UHJvY2Vzc1Rocm90dGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDggKzM1LDggQEAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIHByb2Nlc3NTdXNwZW5zaW9uVAogUHJvY2Vzc1Rocm90dGxlcjo6
UHJvY2Vzc1Rocm90dGxlcihQcm9jZXNzVGhyb3R0bGVyQ2xpZW50JiBwcm9jZXNzKQogICAgIDog
bV9wcm9jZXNzKHByb2Nlc3MpCiAgICAgLCBtX3N1c3BlbmRUaW1lcihSdW5Mb29wOjptYWluKCks
IHRoaXMsICZQcm9jZXNzVGhyb3R0bGVyOjpzdXNwZW5kVGltZXJGaXJlZCkKLSAgICAsIG1fZm9y
ZWdyb3VuZENvdW50ZXIoW3RoaXNdKGJvb2wpIHsgdXBkYXRlQXNzZXJ0aW9uKCk7IH0pCi0gICAg
LCBtX2JhY2tncm91bmRDb3VudGVyKFt0aGlzXShib29sKSB7IHVwZGF0ZUFzc2VydGlvbigpOyB9
KQorICAgICwgbV9mb3JlZ3JvdW5kQ291bnRlcihbdGhpc10oRm9yZWdyb3VuZEFjdGl2aXR5Q291
bnRlcjo6RXZlbnQpIHsgdXBkYXRlQXNzZXJ0aW9uKCk7IH0pCisgICAgLCBtX2JhY2tncm91bmRD
b3VudGVyKFt0aGlzXShCYWNrZ3JvdW5kQWN0aXZpdHlDb3VudGVyOjpFdmVudCkgeyB1cGRhdGVB
c3NlcnRpb24oKTsgfSkKICAgICAsIG1fc3VzcGVuZE1lc3NhZ2VDb3VudCgwKQogewogfQpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCShyZXZpc2lv
biAxOTcxMzEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsOCArMTU4LDggQEAgV2ViUHJvY2Vzc1Bvb2w6OldlYlBy
b2Nlc3NQb29sKEFQSTo6UHJvYwogICAgICwgbV9jYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZh
bHVhdGlvbih0cnVlKQogICAgICwgbV9kaWROZXR3b3JrUHJvY2Vzc0NyYXNoKGZhbHNlKQogICAg
ICwgbV9tZW1vcnlDYWNoZURpc2FibGVkKGZhbHNlKQotICAgICwgbV91c2VyT2JzZXJ2YWJsZVBh
Z2VDb3VudGVyKFt0aGlzXShib29sKSB7IHVwZGF0ZVByb2Nlc3NTdXBwcmVzc2lvblN0YXRlKCk7
IH0pCi0gICAgLCBtX3Byb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkRm9yUGFnZUNvdW50ZXIoW3Ro
aXNdKGJvb2wpIHsgdXBkYXRlUHJvY2Vzc1N1cHByZXNzaW9uU3RhdGUoKTsgfSkKKyAgICAsIG1f
dXNlck9ic2VydmFibGVQYWdlQ291bnRlcihbdGhpc10oVXNlck9ic2VydmFibGVQYWdlQ291bnRl
cjo6RXZlbnQpIHsgdXBkYXRlUHJvY2Vzc1N1cHByZXNzaW9uU3RhdGUoKTsgfSkKKyAgICAsIG1f
cHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRGb3JQYWdlQ291bnRlcihbdGhpc10oUHJvY2Vzc1N1
cHByZXNzaW9uRGlzYWJsZWRDb3VudGVyOjpFdmVudCkgeyB1cGRhdGVQcm9jZXNzU3VwcHJlc3Np
b25TdGF0ZSgpOyB9KQogewogICAgIGZvciAoYXV0byYgc2NoZW1lIDogbV9jb25maWd1cmF0aW9u
LT5hbHdheXNSZXZhbGlkYXRlZFVSTFNjaGVtZXMoKSkKICAgICAgICAgbV9zY2hlbWVzVG9SZWdp
c3RlckFzQWx3YXlzUmV2YWxpZGF0ZWQuYWRkKHNjaGVtZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIu
Y3BwCShyZXZpc2lvbiAxOTcxMzEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcg
QEAgUGx1Z2luUHJvY2Vzc01hbmFnZXImIFBsdWdpblByb2Nlc3NNYW5hZwogCiBQbHVnaW5Qcm9j
ZXNzTWFuYWdlcjo6UGx1Z2luUHJvY2Vzc01hbmFnZXIoKQogI2lmIFBMQVRGT1JNKENPQ09BKQot
ICAgIDogbV9wcm9jZXNzU3VwcHJlc3Npb25EaXNhYmxlZEZvclBhZ2VDb3VudGVyKFt0aGlzXShi
b29sIHZhbHVlKSB7IHVwZGF0ZVByb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkKHZhbHVlKTsgfSkK
KyAgICA6IG1fcHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRGb3JQYWdlQ291bnRlcihbdGhpc10o
UHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRDb3VudGVyOjpFdmVudCBldmVudCkgeyB1cGRhdGVQ
cm9jZXNzU3VwcHJlc3Npb25EaXNhYmxlZChldmVudCk7IH0pCiAjZW5kaWYKIHsKIH0KSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc01hbmFnZXIuaAkocmV2aXNpb24gMTk3MTMyKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjgs
NyArNjgsNyBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaW5saW5lIFByb2Nl
c3NTdXBwcmVzc2lvbkRpc2FibGVkVG9rZW4gcHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRUb2tl
bigpOwogICAgIGlubGluZSBib29sIHByb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkKCkgY29uc3Q7
Ci0gICAgdm9pZCB1cGRhdGVQcm9jZXNzU3VwcHJlc3Npb25EaXNhYmxlZChib29sKTsKKyAgICB2
b2lkIHVwZGF0ZVByb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkKFByb2Nlc3NTdXBwcmVzc2lvbkRp
c2FibGVkQ291bnRlcjo6RXZlbnQpOwogI2VuZGlmCiAKIHByaXZhdGU6CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc01hbmFnZXJNYWMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdp
blByb2Nlc3NNYW5hZ2VyTWFjLm1tCShyZXZpc2lvbiAxOTcxMzEpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc01hbmFnZXJNYWMubW0JKHdvcmtp
bmcgY29weSkKQEAgLTMyLDEwICszMiwxNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9p
ZCBQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6dXBkYXRlUHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWQo
Ym9vbCBkaXNhYmxlZCkKK3ZvaWQgUGx1Z2luUHJvY2Vzc01hbmFnZXI6OnVwZGF0ZVByb2Nlc3NT
dXBwcmVzc2lvbkRpc2FibGVkKFByb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkQ291bnRlcjo6RXZl
bnQgZXZlbnQpCiB7Ci0gICAgYm9vbCBlbmFibGVkID0gIWRpc2FibGVkOworICAgIHNpemVfdCBk
aXNhYmxlQ291bnQgPSBtX3Byb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkRm9yUGFnZUNvdW50ZXIu
dmFsdWUoKTsKIAorICAgIC8vIFdlIG9ubHkgY2FyZSBhYm91dCB6ZXJvL25vbi16ZXJvIGVkZ2Ug
Y2hhbmdlczsgaWdub3JlIGNhc2VzIHdoZXJlIHRoZSBjb3VudCB3YXMgcHJldmlvdXNseSBub24t
emVybywgYW5kIHN0aWxsIGlzLgorICAgIGlmIChkaXNhYmxlQ291bnQgPj0gMiB8fCAoZGlzYWJs
ZUNvdW50ID09IDEgJiYgZXZlbnQgPT0gUHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRDb3VudGVy
OjpEZWNyZW1lbnQpKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKChldmVudCA9PSBQcm9j
ZXNzU3VwcHJlc3Npb25EaXNhYmxlZENvdW50ZXI6OkluY3JlbWVudCAmJiBkaXNhYmxlQ291bnQg
PT0gMSkKKyAgICAgICAgfHwgKGV2ZW50ID09IFByb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkQ291
bnRlcjo6RGVjcmVtZW50ICYmICFkaXNhYmxlQ291bnQpKTsKKworICAgIGJvb2wgZW5hYmxlZCA9
ICFkaXNhYmxlQ291bnQ7CiAgICAgZm9yIChhdXRvJiBwbHVnaW5Qcm9jZXNzIDogbV9wbHVnaW5Q
cm9jZXNzZXMpCiAgICAgICAgIHBsdWdpblByb2Nlc3MtPnNldFByb2Nlc3NTdXBwcmVzc2lvbkVu
YWJsZWQoZW5hYmxlZCk7CiB9Cg==
</data>
<flag name="review"
          id="297033"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272273</attachid>
            <date>2016-02-25 17:58:07 -0800</date>
            <delta_ts>2016-02-26 00:15:25 -0800</delta_ts>
            <desc>Fix</desc>
            <filename>154699.2.patch</filename>
            <type>text/plain</type>
            <size>18688</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxOTcxNDcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE2LTAyLTI1ICBHYXZpbiBCYXJyYWNsb3VnaCAg
PGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZDb3VudGVyIHZhbHVlIGNoYW5n
ZWQgY2FsbGJhY2sgc2hvdWxkIGJlIGNhbGxlZCBvbiBhbGwgY2hhbmdlcyAobm90IGp1c3QgemVy
byBlZGdlKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1NDY5OQorCisgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KKworICAgICAg
ICBSZWZDb3VudGVyIGN1cnJlbnRseSBvbmx5IHRyaWdnZXJzIGEgY2FsbGJhY2sgd2hlbiB0aGUg
Y291bnQgZ29lcyBmcm9tIHplcm8KKyAgICAgICAgdG8gbm9uLXplcm8gYW5kIHZpY2UtdmVyc2Eu
IENoYW5nZSB0aGF0LCB0byBiZSB1c2VmdWwgdG8gbW9yZSBjbGllbnRzLgorCisgICAgICAgICog
d3RmL1JlZkNvdW50ZXIuaDoKKyAgICAgICAgKFdURjo6UmVmQ291bnRlcjo6Q291bnQ6OkNvdW50
KToKKyAgICAgICAgKFdURjo6UmVmQ291bnRlcjo6UmVmQ291bnRlcik6CisgICAgICAgICAgICAt
IFJlbW92ZWQgc3VwZXJmbHVvdXMgV1RGX0VYUE9SVF9QUklWQVRFLgorICAgICAgICAoV1RGOjpS
ZWZDb3VudGVyOjp2YWx1ZSk6CisgICAgICAgICAgICAtIENoYW5nZWQgdmFsdWUoKSB0byBhIHNp
emVfdC4KKyAgICAgICAgKFdURjo6UmVmQ291bnRlcjxUPjo6Q291bnQ6OnJlZik6CisgICAgICAg
IChXVEY6OlJlZkNvdW50ZXI8VD46OkNvdW50OjpkZXJlZik6CisgICAgICAgICAgICAtIFRyaWdn
ZXIgdGhlIGNhbGxiYWNrIG9uIGFsbCBpbmNyZW1lbnRzL2RlY3JlbWVudHMuCisgICAgICAgIChX
VEY6OlJlZkNvdW50ZXI8VD46OlJlZkNvdW50ZXIpOgorICAgICAgICAgICAgLSBDaGFuZ2VkIHNp
Z2FudHVyZSBvZiBjYWxsYmFjay4KKwogMjAxNi0wMi0yNSAgR2F2aW4gQmFycmFjbG91Z2ggIDxi
YXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVwbGFjZSBSZWZDb3VudGVyOjpUb2tl
biBpbXBsZW1lbnRhdGlvbiB3aXRoIFJlZlB0cgpJbmRleDogU291cmNlL1dURi93dGYvUmVmQ291
bnRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZXIuaAkocmV2aXNp
b24gMTk3MTQ3KQorKysgU291cmNlL1dURi93dGYvUmVmQ291bnRlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC01MiwxMyArNTIsMTUgQEAgY2xhc3MgUmVmQ291bnRlciB7CiAgICAgICAgIH0KIAogICAg
ICAgICBSZWZDb3VudGVyKiBtX3JlZkNvdW50ZXI7Ci0gICAgICAgIHVuc2lnbmVkIG1fdmFsdWU7
CisgICAgICAgIHNpemVfdCBtX3ZhbHVlOwogICAgIH07CiAKIHB1YmxpYzoKICAgICB1c2luZyBU
b2tlbiA9IFJlZlB0cjxDb3VudD47CisgICAgZW51bSBjbGFzcyBFdmVudCB7IERlY3JlbWVudCwg
SW5jcmVtZW50IH07CisgICAgdXNpbmcgVmFsdWVDaGFuZ2VGdW5jdGlvbiA9IHN0ZDo6ZnVuY3Rp
b248dm9pZCAoRXZlbnQpPjsKIAotICAgIFJlZkNvdW50ZXIoc3RkOjpmdW5jdGlvbjx2b2lkKGJv
b2wpPiA9IFtdKGJvb2wpIHsgfSk7CisgICAgUmVmQ291bnRlcihWYWx1ZUNoYW5nZUZ1bmN0aW9u
ID0gbnVsbHB0cik7CiAgICAgflJlZkNvdW50ZXIoKTsKIAogICAgIFRva2VuIGNvdW50KCkgY29u
c3QKQEAgLTY2LDQ3ICs2OCw0MyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2NvdW50Owog
ICAgIH0KIAotICAgIHVuc2lnbmVkIHZhbHVlKCkgY29uc3QKKyAgICBzaXplX3QgdmFsdWUoKSBj
b25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fY291bnQtPm1fdmFsdWU7CiAgICAgfQogCiBw
cml2YXRlOgotICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChib29sKT4gbV92YWx1ZURpZENoYW5nZTsK
KyAgICBWYWx1ZUNoYW5nZUZ1bmN0aW9uIG1fdmFsdWVEaWRDaGFuZ2U7CiAgICAgQ291bnQqIG1f
Y291bnQ7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogaW5saW5lIHZvaWQgUmVmQ291bnRl
cjxUPjo6Q291bnQ6OnJlZigpCiB7Ci0gICAgYm9vbCB2YWx1ZVdhc1plcm8gPSAhbV92YWx1ZTsK
ICAgICArK21fdmFsdWU7Ci0gICAgCi0gICAgaWYgKHZhbHVlV2FzWmVybyAmJiBtX3JlZkNvdW50
ZXIpCi0gICAgICAgIG1fcmVmQ291bnRlci0+bV92YWx1ZURpZENoYW5nZSh0cnVlKTsKKyAgICBp
ZiAobV9yZWZDb3VudGVyICYmIG1fcmVmQ291bnRlci0+bV92YWx1ZURpZENoYW5nZSkKKyAgICAg
ICAgbV9yZWZDb3VudGVyLT5tX3ZhbHVlRGlkQ2hhbmdlKEV2ZW50OjpJbmNyZW1lbnQpOwogfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogaW5saW5lIHZvaWQgUmVmQ291bnRlcjxUPjo6Q291bnQ6
OmRlcmVmKCkKIHsKICAgICBBU1NFUlQobV92YWx1ZSk7Ci0gICAgLS1tX3ZhbHVlOwogCi0gICAg
aWYgKG1fdmFsdWUpCi0gICAgICAgIHJldHVybjsKKyAgICAtLW1fdmFsdWU7CisgICAgaWYgKG1f
cmVmQ291bnRlciAmJiBtX3JlZkNvdW50ZXItPm1fdmFsdWVEaWRDaGFuZ2UpCisgICAgICAgIG1f
cmVmQ291bnRlci0+bV92YWx1ZURpZENoYW5nZShFdmVudDo6RGVjcmVtZW50KTsKIAogICAgIC8v
IFRoZSBDb3VudCBvYmplY3QgaXMga2VwdCBhbGl2ZSBzbyBsb25nIGFzIGVpdGhlciB0aGUgUmVm
Q291bnRlciB0aGF0IGNyZWF0ZWQgaXQgcmVtYWlucwogICAgIC8vIGFsbG9jYXRlZCwgb3Igc28g
bG9uZyBhcyBpdHMgcmVmZXJlbmNlIGNvdW50IGlzIG5vbi16ZXJvLgogICAgIC8vIElmIHRoZSBS
ZWZDb3VudGVyIGhhcyBhbHJlYWR5IGJlZW4gZGVhbGxvY3RlZCB0aGVuIGRlbGV0ZSB0aGUgQ291
bnQgd2hlbiBpdHMgcmVmZXJlbmNlCiAgICAgLy8gY291bnQgcmVhY2hlcyB6ZXJvLgotICAgIGlm
IChtX3JlZkNvdW50ZXIpCi0gICAgICAgIG1fcmVmQ291bnRlci0+bV92YWx1ZURpZENoYW5nZShm
YWxzZSk7Ci0gICAgZWxzZQorICAgIGlmICghbV9yZWZDb3VudGVyICYmICFtX3ZhbHVlKQogICAg
ICAgICBkZWxldGUgdGhpczsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KLWlubGluZSBSZWZD
b3VudGVyPFQ+OjpSZWZDb3VudGVyKHN0ZDo6ZnVuY3Rpb248dm9pZChib29sKT4gdmFsdWVEaWRD
aGFuZ2UpCitpbmxpbmUgUmVmQ291bnRlcjxUPjo6UmVmQ291bnRlcihWYWx1ZUNoYW5nZUZ1bmN0
aW9uIHZhbHVlRGlkQ2hhbmdlKQogICAgIDogbV92YWx1ZURpZENoYW5nZSh2YWx1ZURpZENoYW5n
ZSkKICAgICAsIG1fY291bnQobmV3IENvdW50KCp0aGlzKSkKIHsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE5NzE0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDI0IEBACisyMDE2LTAyLTI1ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJh
Y2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZDb3VudGVyIHZhbHVlIGNoYW5nZWQgY2Fs
bGJhY2sgc2hvdWxkIGJlIGNhbGxlZCBvbiBhbGwgY2hhbmdlcyAobm90IGp1c3QgemVybyBlZGdl
KS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDY5
OQorCisgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KKworICAgICAgICBSZWZD
b3VudGVyIGN1cnJlbnRseSBvbmx5IHRyaWdnZXJzIGEgY2FsbGJhY2sgd2hlbiB0aGUgY291bnQg
Z29lcyBmcm9tIHplcm8KKyAgICAgICAgdG8gbm9uLXplcm8gYW5kIHZpY2UtdmVyc2EuIENoYW5n
ZSB0aGF0LCB0byBiZSB1c2VmdWwgdG8gbW9yZSBjbGllbnRzLgorCisgICAgICAgICogcGFnZS9Q
YWdlVGhyb3R0bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VUaHJvdHRsZXI6OlBhZ2VU
aHJvdHRsZXIpOgorICAgICAgICAgICAgLSBVcGRhdGVkIGZvciBjaGFuZ2UgaW4gUmVmQ291bnRl
ciBjYWxsYmFjayBzaWdhbnR1cmUuCisgICAgICAgICogcGxhdGZvcm0vVk5vZGVUcmFja2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlZOb2RlVHJhY2tlcjo6Vk5vZGVUcmFja2VyKToKKyAgICAg
ICAgICAgIC0gQ2FuIG5vdyB1c2UgUmVmQ291bnRlciBjYWxsYmFjayB0byB0cmlnZ2VyIGNoZWNr
UHJlc3N1cmVTdGF0ZSgpLgorICAgICAgICAoV2ViQ29yZTo6Vk5vZGVUcmFja2VyOjpwcmVzc3Vy
ZVdhcm5pbmdUaW1lckZpcmVkKToKKyAgICAgICAgICAgIC0gUmVmQ291bnRlciBjb3VudCBpcyBu
b3cgYSBzaXplX3QgKCVkIC0+ICV1bCkuCisgICAgICAgICogcGxhdGZvcm0vVk5vZGVUcmFja2Vy
Lmg6CisgICAgICAgICAgICAtIHNpbXBsaWZpZWQgVk5vZGVUcmFja2VyOjp0b2tlbigpIFtubyBs
b25nZXIgbmVlZHMgdG8gY2FsbCBjaGVja1ByZXNzdXJlU3RhdGUoKV0uCisKIDIwMTYtMDItMjUg
IERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIENTUDogUmVtb3Zl
IFNlY3VyaXR5UG9saWN5IHNjcmlwdCBpbnRlcmZhY2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZVRocm90dGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlVGhyb3R0bGVyLmNwcAkocmV2aXNpb24gMTk3MTQ3KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlVGhyb3R0bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsOCArMzQsOCBAQCBQYWdl
VGhyb3R0bGVyOjpQYWdlVGhyb3R0bGVyKFBhZ2UmIHBhZ2UpCiAgICAgOiBtX3BhZ2UocGFnZSkK
ICAgICAsIG1fdXNlcklucHV0SHlzdGVyZXNpcyhbdGhpc10oSHlzdGVyZXNpc1N0YXRlIHN0YXRl
KSB7IHNldEFjdGl2aXR5RmxhZyhQYWdlQWN0aXZpdHlTdGF0ZTo6VXNlcklucHV0QWN0aXZpdHks
IHN0YXRlID09IEh5c3RlcmVzaXNTdGF0ZTo6U3RhcnRlZCk7IH0pCiAgICAgLCBtX2F1ZGlibGVQ
bHVnaW5IeXN0ZXJlc2lzKFt0aGlzXShIeXN0ZXJlc2lzU3RhdGUgc3RhdGUpIHsgc2V0QWN0aXZp
dHlGbGFnKFBhZ2VBY3Rpdml0eVN0YXRlOjpBdWRpYmxlUGx1Z2luLCBzdGF0ZSA9PSBIeXN0ZXJl
c2lzU3RhdGU6OlN0YXJ0ZWQpOyB9KQotICAgICwgbV9tZWRpYUFjdGl2aXR5Q291bnRlcihbdGhp
c10oYm9vbCB2YWx1ZSkgeyBzZXRBY3Rpdml0eUZsYWcoUGFnZUFjdGl2aXR5U3RhdGU6Ok1lZGlh
QWN0aXZpdHksIHZhbHVlKTsgfSkKLSAgICAsIG1fcGFnZUxvYWRBY3Rpdml0eUNvdW50ZXIoW3Ro
aXNdKGJvb2wgdmFsdWUpIHsgc2V0QWN0aXZpdHlGbGFnKFBhZ2VBY3Rpdml0eVN0YXRlOjpQYWdl
TG9hZEFjdGl2aXR5LCB2YWx1ZSk7IH0pCisgICAgLCBtX21lZGlhQWN0aXZpdHlDb3VudGVyKFt0
aGlzXShQYWdlQWN0aXZpdHlDb3VudGVyOjpFdmVudCkgeyBzZXRBY3Rpdml0eUZsYWcoUGFnZUFj
dGl2aXR5U3RhdGU6Ok1lZGlhQWN0aXZpdHksIG1fbWVkaWFBY3Rpdml0eUNvdW50ZXIudmFsdWUo
KSk7IH0pCisgICAgLCBtX3BhZ2VMb2FkQWN0aXZpdHlDb3VudGVyKFt0aGlzXShQYWdlQWN0aXZp
dHlDb3VudGVyOjpFdmVudCkgeyBzZXRBY3Rpdml0eUZsYWcoUGFnZUFjdGl2aXR5U3RhdGU6OlBh
Z2VMb2FkQWN0aXZpdHksIG1fcGFnZUxvYWRBY3Rpdml0eUNvdW50ZXIudmFsdWUoKSk7IH0pCiB7
CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZOb2RlVHJhY2tlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVk5vZGVUcmFja2VyLmNwcAkocmV2
aXNpb24gMTk3MTQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVk5vZGVUcmFja2VyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksOCBAQCBWTm9kZVRyYWNrZXImIFZOb2RlVHJh
Y2tlcjo6c2luZ2xldG9uKCkKIH0KIAogVk5vZGVUcmFja2VyOjpWTm9kZVRyYWNrZXIoKQotICAg
IDogbV9wcmVzc3VyZVdhcm5pbmdUaW1lcigqdGhpcywgJlZOb2RlVHJhY2tlcjo6cHJlc3N1cmVX
YXJuaW5nVGltZXJGaXJlZCkKKyAgICA6IG1fdm5vZGVDb3VudGVyKFt0aGlzXShWTm9kZUNvdW50
ZXI6OkV2ZW50IGV2ZW50KSB7IGlmIChldmVudCA9PSBWTm9kZUNvdW50ZXI6OkV2ZW50OjpJbmNy
ZW1lbnQpIGNoZWNrUHJlc3N1cmVTdGF0ZSgpOyB9KQorICAgICwgbV9wcmVzc3VyZVdhcm5pbmdU
aW1lcigqdGhpcywgJlZOb2RlVHJhY2tlcjo6cHJlc3N1cmVXYXJuaW5nVGltZXJGaXJlZCkKICAg
ICAsIG1fbGFzdFdhcm5pbmdUaW1lKHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpKQog
ewogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpAQCAtNjcsNyArNjgsNyBAQCB2b2lkIFZOb2Rl
VHJhY2tlcjo6cHJlc3N1cmVXYXJuaW5nVGltZXJGCiAgICAgdW5zaWduZWQgdm5vZGVDb3VudCA9
IG1fdm5vZGVDb3VudGVyLnZhbHVlKCk7CiAgICAgYXV0byBjcml0aWNhbCA9IHZub2RlQ291bnQg
PiBtX2hhcmRWTm9kZUxpbWl0ID8gQ3JpdGljYWw6OlllcyA6IENyaXRpY2FsOjpObzsKICAgICBt
X3ByZXNzdXJlSGFuZGxlcihjcml0aWNhbCk7Ci0gICAgTE9HKE1lbW9yeVByZXNzdXJlLCAidm5v
ZGUgcHJlc3N1cmUgaGFuZGxlciBmcmVlZCAlZCB2bm9kZXMgb3V0IG9mICV1IChjcml0aWNhbCBw
cmVzc3VyZTogJXMpIiwgdm5vZGVDb3VudCAtIG1fdm5vZGVDb3VudGVyLnZhbHVlKCksIHZub2Rl
Q291bnQsIGNyaXRpY2FsID09IENyaXRpY2FsOjpZZXMgPyAiWWVzIiA6ICJObyIpOworICAgIExP
RyhNZW1vcnlQcmVzc3VyZSwgInZub2RlIHByZXNzdXJlIGhhbmRsZXIgZnJlZWQgJWx1IHZub2Rl
cyBvdXQgb2YgJXUgKGNyaXRpY2FsIHByZXNzdXJlOiAlcykiLCB2bm9kZUNvdW50IC0gbV92bm9k
ZUNvdW50ZXIudmFsdWUoKSwgdm5vZGVDb3VudCwgY3JpdGljYWwgPT0gQ3JpdGljYWw6OlllcyA/
ICJZZXMiIDogIk5vIik7CiB9CiAKIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgVk5vZGVUcmFj
a2VyOjpuZXh0UHJlc3N1cmVXYXJuaW5nSW50ZXJ2YWwoKSBjb25zdApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVk5vZGVUcmFja2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVk5vZGVUcmFja2VyLmgJKHJldmlzaW9uIDE5NzE0NykKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1ZOb2RlVHJhY2tlci5oCSh3b3JraW5nIGNvcHkpCkBAIC03MiwxMiAr
NzIsNyBAQCBpbmxpbmUgdm9pZCBWTm9kZVRyYWNrZXI6OnNldFByZXNzdXJlSGFuCiAKIGlubGlu
ZSBhdXRvIFZOb2RlVHJhY2tlcjo6dG9rZW4oKSAtPiBUb2tlbgogewotICAgIGlmICghbV9wcmVz
c3VyZUhhbmRsZXIpCi0gICAgICAgIHJldHVybiBUb2tlbigpOwotCi0gICAgVG9rZW4gdG9rZW4o
bV92bm9kZUNvdW50ZXIuY291bnQoKSk7Ci0gICAgY2hlY2tQcmVzc3VyZVN0YXRlKCk7Ci0gICAg
cmV0dXJuIHRva2VuOworICAgIHJldHVybiBtX3ByZXNzdXJlSGFuZGxlciA/IG1fdm5vZGVDb3Vu
dGVyLmNvdW50KCkgOiBUb2tlbigpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCShyZXZpc2lvbiAxOTcxNDcpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyOCBAQAorMjAxNi0wMi0yNSAgR2F2aW4gQmFycmFj
bG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVmQ291bnRlciB2YWx1
ZSBjaGFuZ2VkIGNhbGxiYWNrIHNob3VsZCBiZSBjYWxsZWQgb24gYWxsIGNoYW5nZXMgKG5vdCBq
dXN0IHplcm8gZWRnZSkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTQ2OTkKKworICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCisK
KyAgICAgICAgUmVmQ291bnRlciBjdXJyZW50bHkgb25seSB0cmlnZ2VycyBhIGNhbGxiYWNrIHdo
ZW4gdGhlIGNvdW50IGdvZXMgZnJvbSB6ZXJvCisgICAgICAgIHRvIG5vbi16ZXJvIGFuZCB2aWNl
LXZlcnNhLiBDaGFuZ2UgdGhhdCwgdG8gYmUgdXNlZnVsIHRvIG1vcmUgY2xpZW50cy4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc01hbmFnZXI6OlBsdWdpblByb2Nlc3NNYW5hZ2VyKToK
KyAgICAgICAgICAgIC0gVXBkYXRlZCBmb3IgY2hhbmdlIGluIFJlZkNvdW50ZXIgY2FsbGJhY2sg
c2lnYW50dXJlLgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5h
Z2VyLmg6CisgICAgICAgICAgICAtIFVwZGF0ZWQgZm9yIGNoYW5nZSBpbiBSZWZDb3VudGVyIGNh
bGxiYWNrIHNpZ2FudHVyZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2lu
UHJvY2Vzc01hbmFnZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NNYW5h
Z2VyOjp1cGRhdGVQcm9jZXNzU3VwcHJlc3Npb25EaXNhYmxlZCk6CisgICAgICAgICAgICAtIHVw
ZGF0ZWQgbG9naWMgZm9yIGVuYWJsaW5nIHByb2Nlc3Mgc3VwcmVzc2lvbi4KKyAgICAgICAgKiBV
SVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NU
aHJvdHRsZXI6OlByb2Nlc3NUaHJvdHRsZXIpOgorICAgICAgICAgICAgLSBVcGRhdGVkIGZvciBj
aGFuZ2UgaW4gUmVmQ291bnRlciBjYWxsYmFjayBzaWdhbnR1cmUuCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OldlYlByb2Nlc3NQb29sKToKKyAgICAgICAgICAgIC0gVXBkYXRlZCBmb3IgY2hhbmdlIGluIFJl
ZkNvdW50ZXIgY2FsbGJhY2sgc2lnYW50dXJlLgorCiAyMDE2LTAyLTI1ICBBZGEgQ2hhbiAgPGFk
YWNoYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEhvb2sgdXAgZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lKCkgaW4gV0tQYWdlVUlDbGllbnQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAJKHJldmlzaW9uIDE5NzE0NykKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzUsOCArMzUsOCBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgcHJvY2Vzc1N1c3BlbnNpb25UCiBQ
cm9jZXNzVGhyb3R0bGVyOjpQcm9jZXNzVGhyb3R0bGVyKFByb2Nlc3NUaHJvdHRsZXJDbGllbnQm
IHByb2Nlc3MpCiAgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKICAgICAsIG1fc3VzcGVuZFRpbWVy
KFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlByb2Nlc3NUaHJvdHRsZXI6OnN1c3BlbmRUaW1lckZp
cmVkKQotICAgICwgbV9mb3JlZ3JvdW5kQ291bnRlcihbdGhpc10oYm9vbCkgeyB1cGRhdGVBc3Nl
cnRpb24oKTsgfSkKLSAgICAsIG1fYmFja2dyb3VuZENvdW50ZXIoW3RoaXNdKGJvb2wpIHsgdXBk
YXRlQXNzZXJ0aW9uKCk7IH0pCisgICAgLCBtX2ZvcmVncm91bmRDb3VudGVyKFt0aGlzXShGb3Jl
Z3JvdW5kQWN0aXZpdHlDb3VudGVyOjpFdmVudCkgeyB1cGRhdGVBc3NlcnRpb24oKTsgfSkKKyAg
ICAsIG1fYmFja2dyb3VuZENvdW50ZXIoW3RoaXNdKEJhY2tncm91bmRBY3Rpdml0eUNvdW50ZXI6
OkV2ZW50KSB7IHVwZGF0ZUFzc2VydGlvbigpOyB9KQogICAgICwgbV9zdXNwZW5kTWVzc2FnZUNv
dW50KDApCiB7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAJKHJldmlzaW9uIDE5NzE0NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OCw4ICsxNTgsOCBAQCBXZWJQ
cm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2woQVBJOjpQcm9jCiAgICAgLCBtX2NhbkhhbmRsZUhU
VFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uKHRydWUpCiAgICAgLCBtX2RpZE5ldHdvcmtQcm9jZXNz
Q3Jhc2goZmFsc2UpCiAgICAgLCBtX21lbW9yeUNhY2hlRGlzYWJsZWQoZmFsc2UpCi0gICAgLCBt
X3VzZXJPYnNlcnZhYmxlUGFnZUNvdW50ZXIoW3RoaXNdKGJvb2wpIHsgdXBkYXRlUHJvY2Vzc1N1
cHByZXNzaW9uU3RhdGUoKTsgfSkKLSAgICAsIG1fcHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRG
b3JQYWdlQ291bnRlcihbdGhpc10oYm9vbCkgeyB1cGRhdGVQcm9jZXNzU3VwcHJlc3Npb25TdGF0
ZSgpOyB9KQorICAgICwgbV91c2VyT2JzZXJ2YWJsZVBhZ2VDb3VudGVyKFt0aGlzXShVc2VyT2Jz
ZXJ2YWJsZVBhZ2VDb3VudGVyOjpFdmVudCkgeyB1cGRhdGVQcm9jZXNzU3VwcHJlc3Npb25TdGF0
ZSgpOyB9KQorICAgICwgbV9wcm9jZXNzU3VwcHJlc3Npb25EaXNhYmxlZEZvclBhZ2VDb3VudGVy
KFt0aGlzXShQcm9jZXNzU3VwcHJlc3Npb25EaXNhYmxlZENvdW50ZXI6OkV2ZW50KSB7IHVwZGF0
ZVByb2Nlc3NTdXBwcmVzc2lvblN0YXRlKCk7IH0pCiB7CiAgICAgZm9yIChhdXRvJiBzY2hlbWUg
OiBtX2NvbmZpZ3VyYXRpb24tPmFsd2F5c1JldmFsaWRhdGVkVVJMU2NoZW1lcygpKQogICAgICAg
ICBtX3NjaGVtZXNUb1JlZ2lzdGVyQXNBbHdheXNSZXZhbGlkYXRlZC5hZGQoc2NoZW1lKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2Vy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzTWFuYWdlci5jcHAJKHJldmlzaW9uIDE5NzE0NykKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDMsNyArNDMsNyBAQCBQbHVnaW5Qcm9jZXNzTWFuYWdlciYgUGx1Z2luUHJvY2Vzc01h
bmFnCiAKIFBsdWdpblByb2Nlc3NNYW5hZ2VyOjpQbHVnaW5Qcm9jZXNzTWFuYWdlcigpCiAjaWYg
UExBVEZPUk0oQ09DT0EpCi0gICAgOiBtX3Byb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkRm9yUGFn
ZUNvdW50ZXIoW3RoaXNdKGJvb2wgdmFsdWUpIHsgdXBkYXRlUHJvY2Vzc1N1cHByZXNzaW9uRGlz
YWJsZWQodmFsdWUpOyB9KQorICAgIDogbV9wcm9jZXNzU3VwcHJlc3Npb25EaXNhYmxlZEZvclBh
Z2VDb3VudGVyKFt0aGlzXShQcm9jZXNzU3VwcHJlc3Npb25EaXNhYmxlZENvdW50ZXI6OkV2ZW50
IGV2ZW50KSB7IHVwZGF0ZVByb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkKGV2ZW50KTsgfSkKICNl
bmRpZgogewogfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc01hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5oCShyZXZpc2lvbiAxOTcxNDcpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICBpbmxpbmUgUHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRUb2tlbiBwcm9jZXNzU3VwcHJl
c3Npb25EaXNhYmxlZFRva2VuKCk7CiAgICAgaW5saW5lIGJvb2wgcHJvY2Vzc1N1cHByZXNzaW9u
RGlzYWJsZWQoKSBjb25zdDsKLSAgICB2b2lkIHVwZGF0ZVByb2Nlc3NTdXBwcmVzc2lvbkRpc2Fi
bGVkKGJvb2wpOworICAgIHZvaWQgdXBkYXRlUHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWQoUHJv
Y2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRDb3VudGVyOjpFdmVudCk7CiAjZW5kaWYKIAogcHJpdmF0
ZToKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9j
ZXNzTWFuYWdlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc01hbmFnZXJNYWMubW0JKHJldmlzaW9uIDE5NzE0NykK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzTWFu
YWdlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzIsMTAgKzMyLDE3IEBACiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi12b2lkIFBsdWdpblByb2Nlc3NNYW5hZ2VyOjp1cGRhdGVQcm9jZXNzU3Vw
cHJlc3Npb25EaXNhYmxlZChib29sIGRpc2FibGVkKQordm9pZCBQbHVnaW5Qcm9jZXNzTWFuYWdl
cjo6dXBkYXRlUHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWQoUHJvY2Vzc1N1cHByZXNzaW9uRGlz
YWJsZWRDb3VudGVyOjpFdmVudCBldmVudCkKIHsKLSAgICBib29sIGVuYWJsZWQgPSAhZGlzYWJs
ZWQ7CisgICAgc2l6ZV90IGRpc2FibGVDb3VudCA9IG1fcHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJs
ZWRGb3JQYWdlQ291bnRlci52YWx1ZSgpOwogCisgICAgLy8gV2Ugb25seSBjYXJlIGFib3V0IHpl
cm8vbm9uLXplcm8gZWRnZSBjaGFuZ2VzOyBpZ25vcmUgY2FzZXMgd2hlcmUgdGhlIGNvdW50IHdh
cyBwcmV2aW91c2x5IG5vbi16ZXJvLCBhbmQgc3RpbGwgaXMuCisgICAgaWYgKGRpc2FibGVDb3Vu
dCA+PSAyIHx8IChkaXNhYmxlQ291bnQgPT0gMSAmJiBldmVudCA9PSBQcm9jZXNzU3VwcHJlc3Np
b25EaXNhYmxlZENvdW50ZXI6OkV2ZW50OjpEZWNyZW1lbnQpKQorICAgICAgICByZXR1cm47Cisg
ICAgQVNTRVJUKChldmVudCA9PSBQcm9jZXNzU3VwcHJlc3Npb25EaXNhYmxlZENvdW50ZXI6OkV2
ZW50OjpJbmNyZW1lbnQgJiYgZGlzYWJsZUNvdW50ID09IDEpCisgICAgICAgIHx8IChldmVudCA9
PSBQcm9jZXNzU3VwcHJlc3Npb25EaXNhYmxlZENvdW50ZXI6OkV2ZW50OjpEZWNyZW1lbnQgJiYg
IWRpc2FibGVDb3VudCkpOworCisgICAgYm9vbCBlbmFibGVkID0gIWRpc2FibGVDb3VudDsKICAg
ICBmb3IgKGF1dG8mIHBsdWdpblByb2Nlc3MgOiBtX3BsdWdpblByb2Nlc3NlcykKICAgICAgICAg
cGx1Z2luUHJvY2Vzcy0+c2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChlbmFibGVkKTsKIH0K
SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE5NzE1MSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE3IEBACisyMDE2LTAyLTI1ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFw
cGxlLmNvbT4KKworICAgICAgICBSZWZDb3VudGVyIHZhbHVlIGNoYW5nZWQgY2FsbGJhY2sgc2hv
dWxkIGJlIGNhbGxlZCBvbiBhbGwgY2hhbmdlcyAobm90IGp1c3QgemVybyBlZGdlKS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDY5OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZkNvdW50ZXIgY3Vy
cmVudGx5IG9ubHkgdHJpZ2dlcnMgYSBjYWxsYmFjayB3aGVuIHRoZSBjb3VudCBnb2VzIGZyb20g
emVybworICAgICAgICB0byBub24temVybyBhbmQgdmljZS12ZXJzYS4gQ2hhbmdlIHRoYXQsIHRv
IGJlIHVzZWZ1bCB0byBtb3JlIGNsaWVudHMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9SZWZDb3VudGVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAgICAgLSBVcGRhdGVkIGZvciBjaGFuZ2UgaW4gUmVmQ291bnRlciBjYWxsYmFjayBz
aWdhbnR1cmUgJiBiZWhhdmlvdXIuCisKIDIwMTYtMDItMjUgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJlaXZld2VkIGJ1aWxkIGZpeCBmb3IgcjE5NzE1
MC4KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZkNvdW50ZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZkNvdW50ZXIuY3Bw
CShyZXZpc2lvbiAxOTcxNDcpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZD
b3VudGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsOCBAQAogCiBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSSB7CiAKLXN0YXRpYyBjb25zdCBpbnQgQ2FsbGJhY2tFeHBlY3RlZCA9IDB4
QzBGRkVFOworc3RhdGljIGNvbnN0IGludCBJbmNyZW1lbnRFeHBlY3RlZCA9IDB4QzBGRkVFMTsK
K3N0YXRpYyBjb25zdCBpbnQgRGVjcmVtZW50RXhwZWN0ZWQgPSAweEMwRkZFRTI7CiBzdGF0aWMg
Y29uc3QgaW50IENhbGxiYWNrTm90RXhwZWN0ZWQgPSAweERFQ0FGOwogCiBlbnVtIFRlc3RDb3Vu
dGVyVHlwZSB7IH07CkBAIC03OSw1NCArODAsNjQgQEAgVEVTVChXVEYsIFJlZkNvdW50ZXIpCiAg
ICAgewogICAgICAgICAvLyBUZXN0aW5nICgxYSkgLSBDb25zdHJ1Y3Rpb24gd2l0aCBhIGNhbGxi
YWNrLgogICAgICAgICBUZXN0Q291bnRlciogY291bnRlclB0ciA9IG51bGxwdHI7Ci0gICAgICAg
IFRlc3RDb3VudGVyIGNvdW50ZXIoWyZdKGJvb2wgdmFsdWUpIHsKKyAgICAgICAgVGVzdENvdW50
ZXIgY291bnRlcihbJl0oVGVzdENvdW50ZXI6OkV2ZW50IGV2ZW50KSB7CiAgICAgICAgICAgICAv
LyBDaGVjayB0aGF0IHRoZSBjYWxsYmFjayBpcyBjYWxsZWQgYXQgdGhlIGV4cGVjdGVkIHRpbWVz
LCBhbmQgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIHRpbWVzLgotICAgICAgICAgICAgRVhQRUNUX0VR
KGNhbGxiYWNrVmFsdWUsIENhbGxiYWNrRXhwZWN0ZWQpOwotICAgICAgICAgICAgLy8gVmFsdWUg
cHJvdmlkZWQgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBjb3VudGVyIHZhbHVlLgotICAgICAgICAg
ICAgRVhQRUNUX0VRKHZhbHVlLCBjb3VudGVyUHRyLT52YWx1ZSgpKTsKKyAgICAgICAgICAgIGlm
IChUZXN0Q291bnRlcjo6RXZlbnQ6OkluY3JlbWVudCA9PSBldmVudCkKKyAgICAgICAgICAgICAg
ICBFWFBFQ1RfRVEoY2FsbGJhY2tWYWx1ZSwgSW5jcmVtZW50RXhwZWN0ZWQpOworICAgICAgICAg
ICAgaWYgKFRlc3RDb3VudGVyOjpFdmVudDo6RGVjcmVtZW50ID09IGV2ZW50KQorICAgICAgICAg
ICAgICAgIEVYUEVDVF9FUShjYWxsYmFja1ZhbHVlLCBEZWNyZW1lbnRFeHBlY3RlZCk7CiAgICAg
ICAgICAgICAvLyByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBjb3VudGVyIGluIHRoZSBjYWxsYmFj
ay4KLSAgICAgICAgICAgIGNhbGxiYWNrVmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgICAgIGNhbGxi
YWNrVmFsdWUgPSBjb3VudGVyUHRyLT52YWx1ZSgpOwogICAgICAgICB9KTsKICAgICAgICAgY291
bnRlclB0ciA9ICZjb3VudGVyOwogICAgICAgICAvLyBUZXN0aW5nICg0YSkgLSBhZnRlciBjb25z
dHJ1Y3Rpb24gdmFsdWUoKSBpcyAwLgogICAgICAgICBFWFBFQ1RfRVEoMCwgc3RhdGljX2Nhc3Q8
aW50Pihjb3VudGVyLnZhbHVlKCkpKTsKIAogICAgICAgICAvLyBUZXN0aW5nICgzYSkgLSByZWYg
d2l0aCBjYWxsYmFjayBmcm9tIDAgLT4gMS4KLSAgICAgICAgY2FsbGJhY2tWYWx1ZSA9IENhbGxi
YWNrRXhwZWN0ZWQ7CisgICAgICAgIGNhbGxiYWNrVmFsdWUgPSBJbmNyZW1lbnRFeHBlY3RlZDsK
ICAgICAgICAgVG9rZW5UeXBlIGluY1RvMShjb3VudGVyLmNvdW50KCkpOwogICAgICAgICAvLyBU
ZXN0aW5nICg0YikgJiAoNGMpIC0gdmFsdWVzIHdpdGhpbiAmIGFmdGVyIGNhbGxiYWNrLgotICAg
ICAgICBFWFBFQ1RfRVEodHJ1ZSwgY2FsbGJhY2tWYWx1ZSk7CisgICAgICAgIEVYUEVDVF9FUSgx
LCBjYWxsYmFja1ZhbHVlKTsKICAgICAgICAgRVhQRUNUX0VRKDEsIHN0YXRpY19jYXN0PGludD4o
Y291bnRlci52YWx1ZSgpKSk7CiAKICAgICAgICAgLy8gVGVzdGluZyAoM2IpIC0gcmVmIHdpdGgg
Y2FsbGJhY2sgZnJvbSAxIC0+IDIuCisgICAgICAgIGNhbGxiYWNrVmFsdWUgPSBJbmNyZW1lbnRF
eHBlY3RlZDsKICAgICAgICAgVG9rZW5UeXBlIGluY1RvMihpbmNUbzEpOwogICAgICAgICAvLyBU
ZXN0aW5nICg0YikgJiAoNGMpIC0gdmFsdWVzIHdpdGhpbiAmIGFmdGVyIGNhbGxiYWNrLgorICAg
ICAgICBFWFBFQ1RfRVEoMiwgY2FsbGJhY2tWYWx1ZSk7CiAgICAgICAgIEVYUEVDVF9FUSgyLCBz
dGF0aWNfY2FzdDxpbnQ+KGNvdW50ZXIudmFsdWUoKSkpOwogCiAgICAgICAgIC8vIFRlc3Rpbmcg
KDNjKSAtIGRlcmVmIHdpdGggY2FsbGJhY2sgZnJvbSA+MSAtPiAxLgorICAgICAgICBjYWxsYmFj
a1ZhbHVlID0gRGVjcmVtZW50RXhwZWN0ZWQ7CiAgICAgICAgIGluY1RvMSA9IG51bGxwdHI7CiAg
ICAgICAgIC8vIFRlc3RpbmcgKDRiKSAmICg0YykgLSB2YWx1ZXMgd2l0aGluICYgYWZ0ZXIgY2Fs
bGJhY2suCisgICAgICAgIEVYUEVDVF9FUSgxLCBjYWxsYmFja1ZhbHVlKTsKICAgICAgICAgRVhQ
RUNUX0VRKDEsIHN0YXRpY19jYXN0PGludD4oY291bnRlci52YWx1ZSgpKSk7CiAKICAgICAgICAg
ewogICAgICAgICAgICAgLy8gVGVzdGluZyAoM2opIC0gcmVmIHVzaW5nIGEgUmVmIHJhdGhlciB0
aGFuIGEgUmVmUHRyLgorICAgICAgICAgICAgY2FsbGJhY2tWYWx1ZSA9IEluY3JlbWVudEV4cGVj
dGVkOwogICAgICAgICAgICAgVG9rZW5UeXBlIGluY1RvMkFnYWluKGNvdW50ZXIuY291bnQoKSk7
CiAgICAgICAgICAgICAvLyBUZXN0aW5nICg0YikgJiAoNGMpIC0gdmFsdWVzIHdpdGhpbiAmIGFm
dGVyIGNhbGxiYWNrLgorICAgICAgICAgICAgRVhQRUNUX0VRKDIsIGNhbGxiYWNrVmFsdWUpOwog
ICAgICAgICAgICAgRVhQRUNUX0VRKDIsIHN0YXRpY19jYXN0PGludD4oY291bnRlci52YWx1ZSgp
KSk7CiAgICAgICAgICAgICAvLyBUZXN0aW5nICgzaykgLSBkZXJlZiB1c2luZyBhIFJlZiByYXRo
ZXIgdGhhbiBhIFJlZlB0ci4KKworICAgICAgICAgICAgY2FsbGJhY2tWYWx1ZSA9IERlY3JlbWVu
dEV4cGVjdGVkOwogICAgICAgICB9CisgICAgICAgIEVYUEVDVF9FUSgxLCBjYWxsYmFja1ZhbHVl
KTsKICAgICAgICAgRVhQRUNUX0VRKDEsIHN0YXRpY19jYXN0PGludD4oY291bnRlci52YWx1ZSgp
KSk7CiAgICAgICAgIC8vIFRlc3RpbmcgKDRiKSAmICg0YykgLSB2YWx1ZXMgd2l0aGluICYgYWZ0
ZXIgY2FsbGJhY2suCiAKICAgICAgICAgLy8gVGVzdGluZyAoM2QpIC0gZGVyZWYgd2l0aCBjYWxs
YmFjayBmcm9tIDEgLT4gMC4KLSAgICAgICAgY2FsbGJhY2tWYWx1ZSA9IENhbGxiYWNrRXhwZWN0
ZWQ7CisgICAgICAgIGNhbGxiYWNrVmFsdWUgPSBEZWNyZW1lbnRFeHBlY3RlZDsKICAgICAgICAg
aW5jVG8yID0gbnVsbHB0cjsKICAgICAgICAgLy8gVGVzdGluZyAoNGIpICYgKDRjKSAtIHZhbHVl
cyB3aXRoaW4gJiBhZnRlciBjYWxsYmFjay4KICAgICAgICAgRVhQRUNUX0VRKDAsIGNhbGxiYWNr
VmFsdWUpOwogICAgICAgICBFWFBFQ1RfRVEoMCwgc3RhdGljX2Nhc3Q8aW50Pihjb3VudGVyLnZh
bHVlKCkpKTsKIAogICAgICAgICAvLyBUZXN0aW5nICgyYSkgLSBEZXN0cnVjdGlvbiB3aGVyZSB0
aGUgVGVzdENvdW50ZXI6OkNvdW50IGhhcyBhIG5vbi16ZXJvIHJlZmVyZW5jZSBjb3VudC4KLSAg
ICAgICAgY2FsbGJhY2tWYWx1ZSA9IENhbGxiYWNrRXhwZWN0ZWQ7CisgICAgICAgIGNhbGxiYWNr
VmFsdWUgPSBJbmNyZW1lbnRFeHBlY3RlZDsKICAgICAgICAgaW5jVG8xQWdhaW4gPSBjb3VudGVy
LmNvdW50KCk7CiAgICAgICAgIEVYUEVDVF9FUSgxLCBjYWxsYmFja1ZhbHVlKTsKICAgICAgICAg
RVhQRUNUX0VRKDEsIHN0YXRpY19jYXN0PGludD4oY291bnRlci52YWx1ZSgpKSk7Cg==
</data>
<flag name="review"
          id="297044"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>