<?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>50818</bug_id>
          
          <creation_ts>2010-12-10 08:10:10 -0800</creation_ts>
          <short_desc>Use enums instead of booleans in ImageSource/ImageDecoder constructors</short_desc>
          <delta_ts>2010-12-10 17:19:46 -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>Images</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Zhenyao Mo">zmo</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>320164</commentid>
    <comment_count>0</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-12-10 08:10:10 -0800</bug_when>
    <thetext>As Adam called it, it&apos;s my debt.  Paying it now...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320171</commentid>
    <comment_count>1</comment_count>
      <attachid>76203</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-12-10 08:23:01 -0800</bug_when>
    <thetext>Created attachment 76203
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320185</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-10 08:48:47 -0800</bug_when>
    <thetext>Attachment 76203 did not build on chromium:
Build output: http://queues.webkit.org/results/7000031</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320189</commentid>
    <comment_count>3</comment_count>
      <attachid>76208</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-12-10 08:56:24 -0800</bug_when>
    <thetext>Created attachment 76208
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320352</commentid>
    <comment_count>4</comment_count>
      <attachid>76208</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-10 13:15:37 -0800</bug_when>
    <thetext>Comment on attachment 76208
Patch

Thanks.  I appreciate it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320503</commentid>
    <comment_count>5</comment_count>
      <attachid>76208</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-10 17:07:53 -0800</bug_when>
    <thetext>Comment on attachment 76208
Patch

Rejecting attachment 76208 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=eseidel-cq-sl&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=both&apos;]&quot; exit_code: 2
Last 500 characters of output:
CompileC /Projects/CommitQueue/WebKitBuild/WebCore.build/Debug/WebCore.build/Objects-normal/x86_64/JSGeolocationCustom.o /Projects/CommitQueue/WebCore/bindings/js/JSGeolocationCustom.cpp normal x86_64 c++ com.apple.compilers.gcc.4_2
	CompileC /Projects/CommitQueue/WebKitBuild/WebCore.build/Debug/WebCore.build/Objects-normal/x86_64/JSHashChangeEvent.o /Projects/CommitQueue/WebKitBuild/Debug/DerivedSources/WebCore/JSHashChangeEvent.cpp normal x86_64 c++ com.apple.compilers.gcc.4_2
(215 failures)


Full output: http://queues.webkit.org/results/6909038</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320505</commentid>
    <comment_count>6</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-12-10 17:19:46 -0800</bug_when>
    <thetext>Committed r73819: &lt;http://trac.webkit.org/changeset/73819&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76203</attachid>
            <date>2010-12-10 08:23:01 -0800</date>
            <delta_ts>2010-12-10 08:56:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50818-20101210082259.patch</filename>
            <type>text/plain</type>
            <size>25199</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MzcyOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTIgQEAKKzIwMTAtMTItMTAgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgZW51
bXMgaW5zdGVhZCBvZiBib29sZWFucyBpbiBJbWFnZVNvdXJjZS9JbWFnZURlY29kZXIgY29uc3Ry
dWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
MDgxOAorCisgICAgICAgIFRoaXMgcGF0Y2ggYmFzaWNhbGx5IGRlZmluZXMgdHdvIGVudW0gdHlw
ZSBpbiBJbWFnZVNvdXJjZTogQWxwaGFPcHRpb24KKyAgICAgICAgYW5kIEdhbW1hQW5kQ29sb3JQ
cm9maWxlT3B0aW9uIGFuZCB1c2UgdGhlbSBhcyBJbWFnZVNvdXJjZSBhbmQgSW1hZ2VEZWNvZGVy
CisgICAgICAgIGNvbnN0cnVjdG9yIHBhcmFtZXRlcnMgaW5zdGVhZCBvZiBib29sZWFuIHR5cHMu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6SW1hZ2VTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VTb3VyY2U6OnNldERhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
U291cmNlLmg6IERlZmluZSB0aGUgdHdvIGVudW0gdHlwZXMuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNl
OjpJbWFnZVNvdXJjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VEZWNv
ZGVyUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyUXQ6OkltYWdlRGVjb2RlclF0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZURlY29kZXJRdC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEpOgorICAgICAgICAqIHBsYXRm
b3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bWFnZURlY29kZXI6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
SW1hZ2VEZWNvZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXI6OkltYWdlRGVj
b2Rlcik6CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVj
b2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCTVBJbWFnZURlY29kZXI6OkJNUEltYWdlRGVj
b2Rlcik6CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVj
b2Rlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9HSUZJbWFnZURl
Y29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0lGSW1hZ2VEZWNvZGVyOjpHSUZJbWFnZURl
Y29kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9HSUZJbWFnZURl
Y29kZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9pY28vSUNPSW1hZ2VE
ZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklDT0ltYWdlRGVjb2Rlcjo6SUNPSW1hZ2VE
ZWNvZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OklDT0ltYWdlRGVjb2Rlcjo6ZGVjb2RlQXRJbmRl
eCk6CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvaWNvL0lDT0ltYWdlRGVjb2Rl
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVj
b2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKUEVHSW1hZ2VEZWNvZGVyOjpKUEVHSW1hZ2VE
ZWNvZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFn
ZURlY29kZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1h
Z2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBOR0ltYWdlRGVjb2Rlcjo6UE5HSW1h
Z2VEZWNvZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1h
Z2VEZWNvZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9XRUJQ
SW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldFQlBJbWFnZURlY29kZXI6OldF
QlBJbWFnZURlY29kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3dlYnAv
V0VCUEltYWdlRGVjb2Rlci5oOgorCiAyMDEwLTEyLTEwICBBbmRyZWFzIEtsaW5nICA8a2xpbmdA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCShyZXZpc2lvbiA3MzQyMCkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MSwxMCArNDEsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdW5zaWduZWQgSW1h
Z2VTb3VyY2U6OnNfbWF4UGl4ZWxzUGVyRGVjb2RlZEltYWdlID0gMTAyNCAqIDEwMjQ7CiAjZW5k
aWYKIAotSW1hZ2VTb3VyY2U6OkltYWdlU291cmNlKGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9v
bCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkKK0ltYWdlU291cmNlOjpJbWFnZVNvdXJjZShJ
bWFnZVNvdXJjZTo6QWxwaGFPcHRpb24gYWxwaGFPcHRpb24sIEltYWdlU291cmNlOjpHYW1tYUFu
ZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbikKICAgICA6IG1f
ZGVjb2RlcigwKQotICAgICwgbV9wcmVtdWx0aXBseUFscGhhKHByZW11bHRpcGx5QWxwaGEpCi0g
ICAgLCBtX2lnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlKGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9m
aWxlKQorICAgICwgbV9hbHBoYU9wdGlvbihhbHBoYU9wdGlvbikKKyAgICAsIG1fZ2FtbWFBbmRD
b2xvclByb2ZpbGVPcHRpb24oZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCiB7CiB9CiAKQEAg
LTc5LDcgKzc5LDcgQEAgdm9pZCBJbWFnZVNvdXJjZTo6c2V0RGF0YShTaGFyZWRCdWZmZXIqIAog
ICAgIC8vIElmIGluc3VmZmljaWVudCBieXRlcyBhcmUgYXZhaWxhYmxlIHRvIGRldGVybWluZSB0
aGUgaW1hZ2UgdHlwZSwgbm8gZGVjb2RlciBwbHVnaW4gd2lsbCBiZQogICAgIC8vIG1hZGUuCiAg
ICAgaWYgKCFtX2RlY29kZXIpIHsKLSAgICAgICAgbV9kZWNvZGVyID0gc3RhdGljX2Nhc3Q8TmF0
aXZlSW1hZ2VTb3VyY2VQdHI+KEltYWdlRGVjb2Rlcjo6Y3JlYXRlKCpkYXRhLCBtX3ByZW11bHRp
cGx5QWxwaGEsIG1faWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpKTsKKyAgICAgICAgbV9kZWNv
ZGVyID0gc3RhdGljX2Nhc3Q8TmF0aXZlSW1hZ2VTb3VyY2VQdHI+KEltYWdlRGVjb2Rlcjo6Y3Jl
YXRlKCpkYXRhLCBtX2FscGhhT3B0aW9uLCBtX2dhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKSk7
CiAjaWYgRU5BQkxFKElNQUdFX0RFQ09ERVJfRE9XTl9TQU1QTElORykKICAgICAgICAgaWYgKG1f
ZGVjb2RlciAmJiBzX21heFBpeGVsc1BlckRlY29kZWRJbWFnZSkKICAgICAgICAgICAgIG1fZGVj
b2Rlci0+c2V0TWF4TnVtUGl4ZWxzKHNfbWF4UGl4ZWxzUGVyRGVjb2RlZEltYWdlKTsKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgJKHJldmlzaW9uIDczNDIwKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTksNyArMTE5LDE3IEBAIGNvbnN0IGludCBjQW5pbWF0aW9uTm9uZSA9IC0yOwogCiBj
bGFzcyBJbWFnZVNvdXJjZSA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6Ci0gICAgSW1h
Z2VTb3VyY2UoYm9vbCBwcmVtdWx0aXBseUFscGhhID0gdHJ1ZSwgYm9vbCBpZ25vcmVHYW1tYUFu
ZENvbG9yUHJvZmlsZSA9IGZhbHNlKTsKKyAgICBlbnVtIEFscGhhT3B0aW9uIHsKKyAgICAgICAg
QWxwaGFQcmVtdWx0aXBsaWVkLAorICAgICAgICBBbHBoYU5vdFByZW11bHRpcGxpZWQKKyAgICB9
OworCisgICAgZW51bSBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiB7CisgICAgICAgIEdhbW1h
QW5kQ29sb3JQcm9maWxlQXBwbGllZCwKKyAgICAgICAgR2FtbWFBbmRDb2xvclByb2ZpbGVJZ25v
cmVkCisgICAgfTsKKworICAgIEltYWdlU291cmNlKEFscGhhT3B0aW9uIGFscGhhT3B0aW9uID0g
QWxwaGFQcmVtdWx0aXBsaWVkLCBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENv
bG9yUHJvZmlsZU9wdGlvbiA9IEdhbW1hQW5kQ29sb3JQcm9maWxlQXBwbGllZCk7CiAgICAgfklt
YWdlU291cmNlKCk7CiAKICAgICAvLyBUZWxscyB0aGUgSW1hZ2VTb3VyY2UgdGhhdCB0aGUgSW1h
Z2Ugbm8gbG9uZ2VyIGNhcmVzIGFib3V0IGRlY29kZWQgZnJhbWUKQEAgLTE3Nyw4ICsxODcsOCBA
QCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgTmF0aXZlSW1hZ2VTb3VyY2VQdHIgbV9kZWNvZGVy
OwotICAgIGJvb2wgbV9wcmVtdWx0aXBseUFscGhhOwotICAgIGJvb2wgbV9pZ25vcmVHYW1tYUFu
ZENvbG9yUHJvZmlsZTsKKyAgICBBbHBoYU9wdGlvbiBtX2FscGhhT3B0aW9uOworICAgIEdhbW1h
QW5kQ29sb3JQcm9maWxlT3B0aW9uIG1fZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb247CiAjaWYg
RU5BQkxFKElNQUdFX0RFQ09ERVJfRE9XTl9TQU1QTElORykKICAgICBzdGF0aWMgdW5zaWduZWQg
c19tYXhQaXhlbHNQZXJEZWNvZGVkSW1hZ2U7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcAkocmV2aXNp
b24gNzM0MjApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4
dDNEQ0cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OSw3ICs5OSw4IEBAIGJvb2wgR3JhcGhpY3ND
b250ZXh0M0Q6OmdldEltYWdlRGF0YShJbWEKICAgICBDR0ltYWdlUmVmIGNnSW1hZ2U7CiAgICAg
UmV0YWluUHRyPENHSW1hZ2VSZWY+IGRlY29kZWRJbWFnZTsKICAgICBpZiAoaW1hZ2UtPmRhdGEo
KSkgewotICAgICAgICBJbWFnZVNvdXJjZSBkZWNvZGVyKGZhbHNlLCBpZ25vcmVHYW1tYUFuZENv
bG9yUHJvZmlsZSk7CisgICAgICAgIEltYWdlU291cmNlIGRlY29kZXIoSW1hZ2VTb3VyY2U6OkFs
cGhhTm90UHJlbXVsdGlwbGllZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVH
YW1tYUFuZENvbG9yUHJvZmlsZSA/IEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZUln
bm9yZWQgOiBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVBcHBsaWVkKTsKICAgICAg
ICAgZGVjb2Rlci5zZXREYXRhKGltYWdlLT5kYXRhKCksIHRydWUpOwogICAgICAgICBpZiAoIWRl
Y29kZXIuZnJhbWVDb3VudCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwCShyZXZpc2lv
biA3MzQyMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDExICs2MywxMSBAQCB2b2lkIHNoYXJlZEJ1ZmZlclJl
bGVhc2Uodm9pZCogaW5mbykKIH0KICNlbmRpZgogCi1JbWFnZVNvdXJjZTo6SW1hZ2VTb3VyY2Uo
Ym9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlKQor
SW1hZ2VTb3VyY2U6OkltYWdlU291cmNlKEltYWdlU291cmNlOjpBbHBoYU9wdGlvbiBhbHBoYU9w
dGlvbiwgSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uIGdhbW1hQW5kQ29s
b3JQcm9maWxlT3B0aW9uKQogICAgIDogbV9kZWNvZGVyKDApCiAgICAgLy8gRklYTUU6IG1fcHJl
bXVsdGlwbHlBbHBoYSBpcyBpZ25vcmVkIGluIGNnIGF0IHRoZSBtb21lbnQuCi0gICAgLCBtX3By
ZW11bHRpcGx5QWxwaGEocHJlbXVsdGlwbHlBbHBoYSkKLSAgICAsIG1faWdub3JlR2FtbWFBbmRD
b2xvclByb2ZpbGUoaWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpCisgICAgLCBtX2FscGhhT3B0
aW9uKGFscGhhT3B0aW9uKQorICAgICwgbV9nYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbihnYW1t
YUFuZENvbG9yUHJvZmlsZU9wdGlvbikKIHsKIH0KIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9JbWFnZURlY29kZXJRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9xdC9JbWFnZURlY29kZXJRdC5jcHAJKHJldmlzaW9uIDczNDIwKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZURlY29kZXJRdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM3LDE3ICszNywxNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUltYWdl
RGVjb2RlciogSW1hZ2VEZWNvZGVyOjpjcmVhdGUoY29uc3QgU2hhcmVkQnVmZmVyJiBkYXRhLCBi
b29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgaWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpCitJ
bWFnZURlY29kZXIqIEltYWdlRGVjb2Rlcjo6Y3JlYXRlKGNvbnN0IFNoYXJlZEJ1ZmZlciYgZGF0
YSwgSW1hZ2VTb3VyY2U6OkFscGhhT3B0aW9uIGFscGhhT3B0aW9uLCBJbWFnZVNvdXJjZTo6R2Ft
bWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCiB7CiAg
ICAgLy8gV2UgbmVlZCBhdCBsZWFzdCA0IGJ5dGVzIHRvIGZpZ3VyZSBvdXQgd2hhdCBraW5kIG9m
IGltYWdlIHdlJ3JlIGRlYWxpbmcgd2l0aC4KICAgICBpZiAoZGF0YS5zaXplKCkgPCA0KQogICAg
ICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBuZXcgSW1hZ2VEZWNvZGVyUXQocHJlbXVsdGlw
bHlBbHBoYSwgaWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpOworICAgIHJldHVybiBuZXcgSW1h
Z2VEZWNvZGVyUXQoYWxwaGFPcHRpb24sIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKTsKIH0K
IAotSW1hZ2VEZWNvZGVyUXQ6OkltYWdlRGVjb2RlclF0KGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwg
Ym9vbCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkKLSAgICA6IEltYWdlRGVjb2RlcihwcmVt
dWx0aXBseUFscGhhLCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkKK0ltYWdlRGVjb2RlclF0
OjpJbWFnZURlY29kZXJRdChJbWFnZVNvdXJjZTo6QWxwaGFPcHRpb24gYWxwaGFPcHRpb24sIElt
YWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9yUHJvZmls
ZU9wdGlvbikKKyAgICA6IEltYWdlRGVjb2RlcihhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xvclBy
b2ZpbGVPcHRpb24pCiAgICAgLCBtX3JlcGV0aXRpb25Db3VudChjQW5pbWF0aW9uTm9uZSkKIHsK
IH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VEZWNvZGVyUXQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlRGVjb2RlclF0
LmgJKHJldmlzaW9uIDczNDIwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFn
ZURlY29kZXJRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIEltYWdlRGVjb2RlclF0IDogcHVibGljIEltYWdlRGVjb2Rlcgogewog
cHVibGljOgotICAgIEltYWdlRGVjb2RlclF0KGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBp
Z25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSk7CisgICAgSW1hZ2VEZWNvZGVyUXQoSW1hZ2VTb3Vy
Y2U6OkFscGhhT3B0aW9uLCBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24p
OwogICAgIH5JbWFnZURlY29kZXJRdCgpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldERhdGEoU2hh
cmVkQnVmZmVyKiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCk7CkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0M0RTa2lh
LmNwcAkocmV2aXNpb24gNzM0MjApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
R3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsOCBA
QCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEoSW1hCiAgICAgTmF0aXZlSW1h
Z2VTa2lhKiBza2lhSW1hZ2UgPSAwOwogICAgIEFscGhhT3AgbmVlZGVkQWxwaGFPcCA9IEFscGhh
RG9Ob3RoaW5nOwogICAgIGlmIChpbWFnZS0+ZGF0YSgpKSB7Ci0gICAgICAgIEltYWdlU291cmNl
IGRlY29kZXIoZmFsc2UsIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlKTsKKyAgICAgICAgSW1h
Z2VTb3VyY2UgZGVjb2RlcihJbWFnZVNvdXJjZTo6QUxwaGFOb3RQcmVtdWx0aXBsaWVkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlID8gSW1h
Z2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlSWdub3JlZCA6IEltYWdlU291cmNlOjpHYW1t
YUFuZENvbG9yUHJvZmlsZUFwcGxpZWQpOwogICAgICAgICBkZWNvZGVyLnNldERhdGEoaW1hZ2Ut
PmRhdGEoKSwgdHJ1ZSk7CiAgICAgICAgIGlmICghZGVjb2Rlci5mcmFtZUNvdW50KCkgfHwgIWRl
Y29kZXIuZnJhbWVJc0NvbXBsZXRlQXRJbmRleCgwKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVj
b2Rlci5jcHAJKHJldmlzaW9uIDczNDIwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNv
ZGVycy9JbWFnZURlY29kZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw3IEBAIHN0
YXRpYyB1bnNpZ25lZCBjb3B5RnJvbVNoYXJlZEJ1ZmZlcihjaGEKICAgICByZXR1cm4gYnl0ZXNF
eHRyYWN0ZWQ7CiB9CiAKLUltYWdlRGVjb2RlciogSW1hZ2VEZWNvZGVyOjpjcmVhdGUoY29uc3Qg
U2hhcmVkQnVmZmVyJiBkYXRhLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgaWdub3JlR2Ft
bWFBbmRDb2xvclByb2ZpbGUpCitJbWFnZURlY29kZXIqIEltYWdlRGVjb2Rlcjo6Y3JlYXRlKGNv
bnN0IFNoYXJlZEJ1ZmZlciYgZGF0YSwgSW1hZ2VTb3VyY2U6OkFscGhhT3B0aW9uIGFscGhhT3B0
aW9uLCBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xv
clByb2ZpbGVPcHRpb24pCiB7CiAgICAgLy8gV2UgbmVlZCBhdCBsZWFzdCA0IGJ5dGVzIHRvIGZp
Z3VyZSBvdXQgd2hhdCBraW5kIG9mIGltYWdlIHdlJ3JlIGRlYWxpbmcKICAgICAvLyB3aXRoLgpA
QCAtNjUsMTUgKzY1LDE1IEBAIEltYWdlRGVjb2RlciogSW1hZ2VEZWNvZGVyOjpjcmVhdGUoY29u
c3QKIAogICAgIC8vIEdJRnMgYmVnaW4gd2l0aCBHSUY4KDcgb3IgOSkuCiAgICAgaWYgKHN0cm5j
bXAoY29udGVudHMsICJHSUY4IiwgNCkgPT0gMCkKLSAgICAgICAgcmV0dXJuIG5ldyBHSUZJbWFn
ZURlY29kZXIocHJlbXVsdGlwbHlBbHBoYSwgaWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpOwor
ICAgICAgICByZXR1cm4gbmV3IEdJRkltYWdlRGVjb2RlcihhbHBoYU9wdGlvbiwgZ2FtbWFBbmRD
b2xvclByb2ZpbGVPcHRpb24pOwogCiAgICAgLy8gVGVzdCBmb3IgUE5HLgogICAgIGlmICghbWVt
Y21wKGNvbnRlbnRzLCAiXHg4OVx4NTBceDRFXHg0NyIsIDQpKQotICAgICAgICByZXR1cm4gbmV3
IFBOR0ltYWdlRGVjb2RlcihwcmVtdWx0aXBseUFscGhhLCBpZ25vcmVHYW1tYUFuZENvbG9yUHJv
ZmlsZSk7CisgICAgICAgIHJldHVybiBuZXcgUE5HSW1hZ2VEZWNvZGVyKGFscGhhT3B0aW9uLCBn
YW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbik7CiAKICAgICAvLyBKUEVHCiAgICAgaWYgKCFtZW1j
bXAoY29udGVudHMsICJceEZGXHhEOFx4RkYiLCAzKSkKLSAgICAgICAgcmV0dXJuIG5ldyBKUEVH
SW1hZ2VEZWNvZGVyKHByZW11bHRpcGx5QWxwaGEsIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxl
KTsKKyAgICAgICAgcmV0dXJuIG5ldyBKUEVHSW1hZ2VEZWNvZGVyKGFscGhhT3B0aW9uLCBnYW1t
YUFuZENvbG9yUHJvZmlsZU9wdGlvbik7CiAKICNpZiBVU0UoV0VCUCkKICAgICBpZiAoIW1lbWNt
cChjb250ZW50cywgIlJJRkYiLCA0KSkgewpAQCAtODMsMTkgKzgzLDE5IEBAIEltYWdlRGVjb2Rl
ciogSW1hZ2VEZWNvZGVyOjpjcmVhdGUoY29uc3QKICAgICAgICAgdW5zaWduZWQgbGVuZ3RoID0g
Y29weUZyb21TaGFyZWRCdWZmZXIoaGVhZGVyLCB3ZWJwRXh0cmFNYXJrZXIsIGRhdGEsIHdlYnBF
eHRyYU1hcmtlcm9mZnNldCk7CiAgICAgICAgIGlmIChsZW5ndGggPj0gd2VicEV4dHJhTWFya2Vy
KSB7CiAgICAgICAgICAgICBpZiAoIW1lbWNtcChoZWFkZXIsICJXRUJQVlAiLCB3ZWJwRXh0cmFN
YXJrZXIpKQotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgV0VCUEltYWdlRGVjb2RlcihwcmVt
dWx0aXBseUFscGhhLCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIG5ldyBXRUJQSW1hZ2VEZWNvZGVyKGFscGhhT3B0aW9uLCBnYW1tYUFuZENvbG9y
UHJvZmlsZU9wdGlvbik7CiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKIAogICAgIC8vIEJNUAog
ICAgIGlmIChzdHJuY21wKGNvbnRlbnRzLCAiQk0iLCAyKSA9PSAwKQotICAgICAgICByZXR1cm4g
bmV3IEJNUEltYWdlRGVjb2RlcihwcmVtdWx0aXBseUFscGhhLCBpZ25vcmVHYW1tYUFuZENvbG9y
UHJvZmlsZSk7CisgICAgICAgIHJldHVybiBuZXcgQk1QSW1hZ2VEZWNvZGVyKGFscGhhT3B0aW9u
LCBnYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbik7CiAKICAgICAvLyBJQ09zIGFsd2F5cyBiZWdp
biB3aXRoIGEgMi1ieXRlIDAgZm9sbG93ZWQgYnkgYSAyLWJ5dGUgMS4KICAgICAvLyBDVVJzIGJl
Z2luIHdpdGggMi1ieXRlIDAgZm9sbG93ZWQgYnkgMi1ieXRlIDIuCiAgICAgaWYgKCFtZW1jbXAo
Y29udGVudHMsICJceDAwXHgwMFx4MDFceDAwIiwgNCkgfHwgIW1lbWNtcChjb250ZW50cywgIlx4
MDBceDAwXHgwMlx4MDAiLCA0KSkKLSAgICAgICAgcmV0dXJuIG5ldyBJQ09JbWFnZURlY29kZXIo
cHJlbXVsdGlwbHlBbHBoYSwgaWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpOworICAgICAgICBy
ZXR1cm4gbmV3IElDT0ltYWdlRGVjb2RlcihhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xvclByb2Zp
bGVPcHRpb24pOwogCiAgICAgLy8gR2l2ZSB1cC4gV2UgZG9uJ3Qga25vdyB3aGF0IHRoZSBoZWNr
IHRoaXMgaXMuCiAgICAgcmV0dXJuIDA7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRl
Y29kZXJzL0ltYWdlRGVjb2Rlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmgJKHJldmlzaW9uIDczNDIwKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MjIzLDEwICsyMjMsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIC8vIG1fbWF4TnVtUGl4
ZWxzLiAoTm90IHN1cHBvcnRlZCBieSBhbGwgaW1hZ2UgZGVjb2RlcnMgeWV0KQogICAgIGNsYXNz
IEltYWdlRGVjb2RlciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiAgICAgcHVibGljOgotICAgICAg
ICBJbWFnZURlY29kZXIoYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGlnbm9yZUdhbW1hQW5k
Q29sb3JQcm9maWxlKQorICAgICAgICBJbWFnZURlY29kZXIoSW1hZ2VTb3VyY2U6OkFscGhhT3B0
aW9uIGFscGhhT3B0aW9uLCBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24g
Z2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCiAgICAgICAgICAgICA6IG1fc2NhbGVkKGZhbHNl
KQotICAgICAgICAgICAgLCBtX3ByZW11bHRpcGx5QWxwaGEocHJlbXVsdGlwbHlBbHBoYSkKLSAg
ICAgICAgICAgICwgbV9pZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZShpZ25vcmVHYW1tYUFuZENv
bG9yUHJvZmlsZSkKKyAgICAgICAgICAgICwgbV9wcmVtdWx0aXBseUFscGhhKGFscGhhT3B0aW9u
ID09IEltYWdlU291cmNlOjpBbHBoYVByZW11bHRpcGxpZWQpCisgICAgICAgICAgICAsIG1faWdu
b3JlR2FtbWFBbmRDb2xvclByb2ZpbGUoZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gPT0gSW1h
Z2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlSWdub3JlZCkKICAgICAgICAgICAgICwgbV9z
aXplQXZhaWxhYmxlKGZhbHNlKQogICAgICAgICAgICAgLCBtX21heE51bVBpeGVscygtMSkKICAg
ICAgICAgICAgICwgbV9pc0FsbERhdGFSZWNlaXZlZChmYWxzZSkKQEAgLTIzOSw3ICsyMzksNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIEZhY3RvcnkgZnVuY3Rpb24gdG8gY3Jl
YXRlIGFuIEltYWdlRGVjb2Rlci4gIFBvcnRzIHRoYXQgc3ViY2xhc3MKICAgICAgICAgLy8gSW1h
Z2VEZWNvZGVyIGNhbiBwcm92aWRlIHRoZWlyIG93biBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIHRv
IGF2b2lkCiAgICAgICAgIC8vIG5lZWRpbmcgdG8gd3JpdGUgYSBkZWRpY2F0ZWQgc2V0RGF0YSgp
IGltcGxlbWVudGF0aW9uLgotICAgICAgICBzdGF0aWMgSW1hZ2VEZWNvZGVyKiBjcmVhdGUoY29u
c3QgU2hhcmVkQnVmZmVyJiBkYXRhLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgaWdub3Jl
R2FtbWFBbmRDb2xvclByb2ZpbGUpOworICAgICAgICBzdGF0aWMgSW1hZ2VEZWNvZGVyKiBjcmVh
dGUoY29uc3QgU2hhcmVkQnVmZmVyJiBkYXRhLCBJbWFnZVNvdXJjZTo6QWxwaGFPcHRpb24sIElt
YWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbik7CiAKICAgICAgICAgLy8gVGhl
IHRoZSBmaWxlbmFtZSBleHRlbnNpb24gdXN1YWxseSBhc3NvY2lhdGVkIHdpdGggYW4gdW5kZWNv
ZGVkIGltYWdlCiAgICAgICAgIC8vIG9mIHRoaXMgdHlwZS4KSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibXAvQk1QSW1hZ2VEZWNvZGVyLmNwcAko
cmV2aXNpb24gNzM0MjApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2JtcC9C
TVBJbWFnZURlY29kZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw4ICs0MCw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIC8vIGRvbid0IHBhY2spLgogc3RhdGljIGNvbnN0IHNpemVfdCBzaXpl
T2ZGaWxlSGVhZGVyID0gMTQ7CiAKLUJNUEltYWdlRGVjb2Rlcjo6Qk1QSW1hZ2VEZWNvZGVyKGJv
b2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkKLSAg
ICA6IEltYWdlRGVjb2RlcihwcmVtdWx0aXBseUFscGhhLCBpZ25vcmVHYW1tYUFuZENvbG9yUHJv
ZmlsZSkKK0JNUEltYWdlRGVjb2Rlcjo6Qk1QSW1hZ2VEZWNvZGVyKEltYWdlU291cmNlOjpBbHBo
YU9wdGlvbiBhbHBoYU9wdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElt
YWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9yUHJvZmls
ZU9wdGlvbikKKyAgICA6IEltYWdlRGVjb2RlcihhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xvclBy
b2ZpbGVPcHRpb24pCiAgICAgLCBtX2RlY29kZWRPZmZzZXQoMCkKIHsKIH0KSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rl
ci5oCShyZXZpc2lvbiA3MzQyMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
Ym1wL0JNUEltYWdlRGVjb2Rlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAvLyBUaGlzIGNsYXNzIGRlY29kZXMgdGhlIEJNUCBpbWFn
ZSBmb3JtYXQuCiAgICAgY2xhc3MgQk1QSW1hZ2VEZWNvZGVyIDogcHVibGljIEltYWdlRGVjb2Rl
ciB7CiAgICAgcHVibGljOgotICAgICAgICBCTVBJbWFnZURlY29kZXIoYm9vbCBwcmVtdWx0aXBs
eUFscGhhLCBib29sIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlKTsKKyAgICAgICAgQk1QSW1h
Z2VEZWNvZGVyKEltYWdlU291cmNlOjpBbHBoYU9wdGlvbiwgSW1hZ2VTb3VyY2U6OkdhbW1hQW5k
Q29sb3JQcm9maWxlT3B0aW9uKTsKIAogICAgICAgICAvLyBJbWFnZURlY29kZXIKICAgICAgICAg
dmlydHVhbCBTdHJpbmcgZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdCB7IHJldHVybiAiYm1wIjsg
fQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYvR0lGSW1hZ2VEZWNv
ZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dp
Zi9HSUZJbWFnZURlY29kZXIuY3BwCShyZXZpc2lvbiA3MzQyMCkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvZ2lmL0dJRkltYWdlRGVjb2Rlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDggKzI5LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1HSUZJbWFnZURlY29k
ZXI6OkdJRkltYWdlRGVjb2Rlcihib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgaWdub3JlR2Ft
bWFBbmRDb2xvclByb2ZpbGUpCi0gICAgOiBJbWFnZURlY29kZXIocHJlbXVsdGlwbHlBbHBoYSwg
aWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpCitHSUZJbWFnZURlY29kZXI6OkdJRkltYWdlRGVj
b2RlcihJbWFnZVNvdXJjZTo6QWxwaGFPcHRpb24gYWxwaGFPcHRpb24sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRp
b24gZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCisgICAgOiBJbWFnZURlY29kZXIoYWxwaGFP
cHRpb24sIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKQogICAgICwgbV9hbHJlYWR5U2Nhbm5l
ZFRoaXNEYXRhRm9yRnJhbWVDb3VudCh0cnVlKQogICAgICwgbV9yZXBldGl0aW9uQ291bnQoY0Fu
aW1hdGlvbkxvb3BPbmNlKQogICAgICwgbV9yZWFkT2Zmc2V0KDApCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9HSUZJbWFnZURlY29kZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9HSUZJbWFnZURlY29kZXIuaAko
cmV2aXNpb24gNzM0MjApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9H
SUZJbWFnZURlY29kZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgLy8gVGhpcyBjbGFzcyBkZWNvZGVzIHRoZSBHSUYgaW1hZ2UgZm9y
bWF0LgogICAgIGNsYXNzIEdJRkltYWdlRGVjb2RlciA6IHB1YmxpYyBJbWFnZURlY29kZXIgewog
ICAgIHB1YmxpYzoKLSAgICAgICAgR0lGSW1hZ2VEZWNvZGVyKGJvb2wgcHJlbXVsdGlwbHlBbHBo
YSwgYm9vbCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSk7CisgICAgICAgIEdJRkltYWdlRGVj
b2RlcihJbWFnZVNvdXJjZTo6QWxwaGFPcHRpb24sIEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9y
UHJvZmlsZU9wdGlvbik7CiAgICAgICAgIHZpcnR1YWwgfkdJRkltYWdlRGVjb2RlcigpOwogCiAg
ICAgICAgIGVudW0gR0lGUXVlcnkgeyBHSUZGdWxsUXVlcnksIEdJRlNpemVRdWVyeSwgR0lGRnJh
bWVDb3VudFF1ZXJ5IH07CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2lj
by9JQ09JbWFnZURlY29kZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMvaWNvL0lDT0ltYWdlRGVjb2Rlci5jcHAJKHJldmlzaW9uIDczNDIwKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9pY28vSUNPSW1hZ2VEZWNvZGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDQsOCArNDQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdGF0
aWMgY29uc3Qgc2l6ZV90IHNpemVPZkRpcmVjdG9yeSA9IDY7CiBzdGF0aWMgY29uc3Qgc2l6ZV90
IHNpemVPZkRpckVudHJ5ID0gMTY7CiAKLUlDT0ltYWdlRGVjb2Rlcjo6SUNPSW1hZ2VEZWNvZGVy
KGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkK
LSAgICA6IEltYWdlRGVjb2RlcihwcmVtdWx0aXBseUFscGhhLCBpZ25vcmVHYW1tYUFuZENvbG9y
UHJvZmlsZSkKK0lDT0ltYWdlRGVjb2Rlcjo6SUNPSW1hZ2VEZWNvZGVyKEltYWdlU291cmNlOjpB
bHBoYU9wdGlvbiBhbHBoYU9wdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9yUHJv
ZmlsZU9wdGlvbikKKyAgICA6IEltYWdlRGVjb2RlcihhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xv
clByb2ZpbGVPcHRpb24pCiAgICAgLCBtX2RlY29kZWRPZmZzZXQoMCkKIHsKIH0KQEAgLTIwMSw3
ICsyMDIsOSBAQCBib29sIElDT0ltYWdlRGVjb2Rlcjo6ZGVjb2RlQXRJbmRleChzaXplCiAgICAg
fQogCiAgICAgaWYgKCFtX3BuZ0RlY29kZXJzW2luZGV4XSkgewotICAgICAgICBtX3BuZ0RlY29k
ZXJzW2luZGV4XS5zZXQobmV3IFBOR0ltYWdlRGVjb2RlcihtX3ByZW11bHRpcGx5QWxwaGEsIG1f
aWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpKTsKKyAgICAgICAgbV9wbmdEZWNvZGVyc1tpbmRl
eF0uc2V0KAorICAgICAgICAgICAgbmV3IFBOR0ltYWdlRGVjb2RlcihtX3ByZW11bHRpcGx5QWxw
aGEgPyBJbWFnZVNvdXJjZTo6QWxwaGFQcmVtdWx0aXBsaWVkIDogSW1hZ2VTb3VyY2U6OkFscGhh
Tm90UHJlbXVsdGlwbGllZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9pZ25v
cmVHYW1tYUFuZENvbG9yUHJvZmlsZSA/IEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmls
ZUlnbm9yZWQgOiBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVBcHBsaWVkKSk7CiAg
ICAgICAgIHNldERhdGFGb3JQTkdEZWNvZGVyQXRJbmRleChpbmRleCk7CiAgICAgfQogICAgIC8v
IEZhaWwgaWYgdGhlIHNpemUgdGhlIFBOR0ltYWdlRGVjb2RlciBjYWxjdWxhdGVkIGRvZXMgbm90
IG1hdGNoIHRoZSBzaXplCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2lj
by9JQ09JbWFnZURlY29kZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2ltYWdl
LWRlY29kZXJzL2ljby9JQ09JbWFnZURlY29kZXIuaAkocmV2aXNpb24gNzM0MjApCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2ljby9JQ09JbWFnZURlY29kZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgLy8gVGhp
cyBjbGFzcyBkZWNvZGVzIHRoZSBJQ08gYW5kIENVUiBpbWFnZSBmb3JtYXRzLgogICAgIGNsYXNz
IElDT0ltYWdlRGVjb2RlciA6IHB1YmxpYyBJbWFnZURlY29kZXIgewogICAgIHB1YmxpYzoKLSAg
ICAgICAgSUNPSW1hZ2VEZWNvZGVyKGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBpZ25vcmVH
YW1tYUFuZENvbG9yUHJvZmlsZSk7CisgICAgICAgIElDT0ltYWdlRGVjb2RlcihJbWFnZVNvdXJj
ZTo6QWxwaGFPcHRpb24sIEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbik7
CiAgICAgICAgIHZpcnR1YWwgfklDT0ltYWdlRGVjb2RlcigpOwogCiAgICAgICAgIC8vIEltYWdl
RGVjb2RlcgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJ
bWFnZURlY29kZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcAkocmV2aXNpb24gNzM0MjApCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM5OCw4ICszOTgsOSBAQCB2b2lkIHRlcm1fc291cmNlKGpfZGVjb21w
cmVzc19wdHIgamQpCiAgICAgc3JjLT5kZWNvZGVyLT5kZWNvZGVyKCktPmpwZWdDb21wbGV0ZSgp
OwogfQogCi1KUEVHSW1hZ2VEZWNvZGVyOjpKUEVHSW1hZ2VEZWNvZGVyKGJvb2wgcHJlbXVsdGlw
bHlBbHBoYSwgYm9vbCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkKLSAgICA6IEltYWdlRGVj
b2RlcihwcmVtdWx0aXBseUFscGhhLCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkKK0pQRUdJ
bWFnZURlY29kZXI6OkpQRUdJbWFnZURlY29kZXIoSW1hZ2VTb3VyY2U6OkFscGhhT3B0aW9uIGFs
cGhhT3B0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbWFnZVNvdXJj
ZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24p
CisgICAgOiBJbWFnZURlY29kZXIoYWxwaGFPcHRpb24sIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0
aW9uKQogewogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcv
SlBFR0ltYWdlRGVjb2Rlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2Ut
ZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmgJKHJldmlzaW9uIDczNDIwKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgLy8g
VGhpcyBjbGFzcyBkZWNvZGVzIHRoZSBKUEVHIGltYWdlIGZvcm1hdC4KICAgICBjbGFzcyBKUEVH
SW1hZ2VEZWNvZGVyIDogcHVibGljIEltYWdlRGVjb2RlciB7CiAgICAgcHVibGljOgotICAgICAg
ICBKUEVHSW1hZ2VEZWNvZGVyKGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBpZ25vcmVHYW1t
YUFuZENvbG9yUHJvZmlsZSk7CisgICAgICAgIEpQRUdJbWFnZURlY29kZXIoSW1hZ2VTb3VyY2U6
OkFscGhhT3B0aW9uLCBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pOwog
ICAgICAgICB2aXJ0dWFsIH5KUEVHSW1hZ2VEZWNvZGVyKCk7CiAKICAgICAgICAgLy8gSW1hZ2VE
ZWNvZGVyCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFn
ZURlY29kZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2Rl
cnMvcG5nL1BOR0ltYWdlRGVjb2Rlci5jcHAJKHJldmlzaW9uIDczNDIwKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTY5LDggKzE2OSw5IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jdXJyZW50
QnVmZmVyU2l6ZTsKIH07CiAKLVBOR0ltYWdlRGVjb2Rlcjo6UE5HSW1hZ2VEZWNvZGVyKGJvb2wg
cHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkKLSAgICA6
IEltYWdlRGVjb2RlcihwcmVtdWx0aXBseUFscGhhLCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmls
ZSkKK1BOR0ltYWdlRGVjb2Rlcjo6UE5HSW1hZ2VEZWNvZGVyKEltYWdlU291cmNlOjpBbHBoYU9w
dGlvbiBhbHBoYU9wdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEltYWdl
U291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9yUHJvZmlsZU9w
dGlvbikKKyAgICA6IEltYWdlRGVjb2RlcihhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xvclByb2Zp
bGVPcHRpb24pCiAgICAgLCBtX2RvTm90aGluZ09uRmFpbHVyZShmYWxzZSkKIHsKIH0KSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdlRGVjb2Rlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdl
RGVjb2Rlci5oCShyZXZpc2lvbiA3MzQyMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvcG5nL1BOR0ltYWdlRGVjb2Rlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAvLyBUaGlzIGNsYXNzIGRlY29kZXMgdGhlIFBO
RyBpbWFnZSBmb3JtYXQuCiAgICAgY2xhc3MgUE5HSW1hZ2VEZWNvZGVyIDogcHVibGljIEltYWdl
RGVjb2RlciB7CiAgICAgcHVibGljOgotICAgICAgICBQTkdJbWFnZURlY29kZXIoYm9vbCBwcmVt
dWx0aXBseUFscGhhLCBib29sIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlKTsKKyAgICAgICAg
UE5HSW1hZ2VEZWNvZGVyKEltYWdlU291cmNlOjpBbHBoYU9wdGlvbiwgSW1hZ2VTb3VyY2U6Okdh
bW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKTsKICAgICAgICAgdmlydHVhbCB+UE5HSW1hZ2VEZWNv
ZGVyKCk7CiAKICAgICAgICAgLy8gSW1hZ2VEZWNvZGVyCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzL3dlYnAvV0VCUEltYWdlRGVjb2Rlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy93ZWJwL1dFQlBJbWFnZURlY29kZXIuY3Bw
CShyZXZpc2lvbiA3MzQyMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2Vi
cC9XRUJQSW1hZ2VEZWNvZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsOCArMzUsOSBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdFQlBJbWFnZURlY29kZXI6OldFQlBJbWFnZURlY29k
ZXIoYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxl
KQotICAgIDogSW1hZ2VEZWNvZGVyKHByZW11bHRpcGx5QWxwaGEsIGlnbm9yZUdhbW1hQW5kQ29s
b3JQcm9maWxlKQorV0VCUEltYWdlRGVjb2Rlcjo6V0VCUEltYWdlRGVjb2RlcihJbWFnZVNvdXJj
ZTo6QWxwaGFPcHRpb24gYWxwaGFPcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENv
bG9yUHJvZmlsZU9wdGlvbikKKyAgICA6IEltYWdlRGVjb2RlcihhbHBoYU9wdGlvbiwgZ2FtbWFB
bmRDb2xvclByb2ZpbGVPcHRpb24pCiB7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMvd2VicC9XRUJQSW1hZ2VEZWNvZGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy93ZWJwL1dFQlBJbWFnZURlY29kZXIuaAkocmV2aXNp
b24gNzM0MjApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3dlYnAvV0VCUElt
YWdlRGVjb2Rlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgV0VCUEltYWdlRGVjb2RlciA6IHB1YmxpYyBJbWFnZURlY29kZXIg
ewogcHVibGljOgotICAgIFdFQlBJbWFnZURlY29kZXIoYm9vbCBwcmVtdWx0aXBseUFscGhhLCBi
b29sIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlKTsKKyAgICBXRUJQSW1hZ2VEZWNvZGVyKElt
YWdlU291cmNlOjpBbHBoYU9wdGlvbiwgSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxl
T3B0aW9uKTsKICAgICB2aXJ0dWFsIH5XRUJQSW1hZ2VEZWNvZGVyKCk7CiAgICAgdmlydHVhbCBT
dHJpbmcgZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdCB7IHJldHVybiAidnA4IjsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc1NpemVBdmFpbGFibGUoKTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24g
NzM3MjkpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTAtMTItMTAgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgZW51bXMg
aW5zdGVhZCBvZiBib29sZWFucyBpbiBJbWFnZVNvdXJjZS9JbWFnZURlY29kZXIgY29uc3RydWN0
b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDgx
OAorCisgICAgICAgICogc3JjL1dlYkltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkltYWdlRGVjb2Rlcjo6aW5pdCk6IFVzZSBlbnVtcyBpbnN0ZWFkIG9mIGJvb2xlYW4gaW4g
SW1hZ2VEZWNvZGVyIGNvbnN0cnVjdG9yLgorCiAyMDEwLTEyLTEwICBKb2huIEtub3R0ZW5iZWx0
ICA8amtub3R0ZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEJs
b2NrLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbWFnZURlY29kZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW1hZ2VEZWNvZGVyLmNwcAkocmV2aXNp
b24gNzM0MjApCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkltYWdlRGVjb2Rlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTU2LDEwICs1NiwxMCBAQCB2b2lkIFdlYkltYWdlRGVjb2Rlcjo6aW5p
dChUeXBlIHR5cGUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBUeXBlQk1QOgot
ICAgICAgICBtX3ByaXZhdGUgPSBuZXcgQk1QSW1hZ2VEZWNvZGVyKHRydWUsIGZhbHNlKTsKKyAg
ICAgICAgbV9wcml2YXRlID0gbmV3IEJNUEltYWdlRGVjb2RlcihJbWFnZVNvdXJjZTo6QWxwaGFQ
cmVtdWx0aXBsaWVkLCBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVBcHBsaWVkKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUeXBlSUNPOgotICAgICAgICBtX3ByaXZhdGUgPSBu
ZXcgSUNPSW1hZ2VEZWNvZGVyKHRydWUsIGZhbHNlKTsKKyAgICAgICAgbV9wcml2YXRlID0gbmV3
IElDT0ltYWdlRGVjb2RlcihJbWFnZVNvdXJjZTo6QWxwaGFQcmVtdWx0aXBsaWVkLCBJbWFnZVNv
dXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVBcHBsaWVkKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76208</attachid>
            <date>2010-12-10 08:56:24 -0800</date>
            <delta_ts>2010-12-10 17:07:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50818-20101210085623.patch</filename>
            <type>text/plain</type>
            <size>25199</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MzcyOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTIgQEAKKzIwMTAtMTItMTAgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgZW51
bXMgaW5zdGVhZCBvZiBib29sZWFucyBpbiBJbWFnZVNvdXJjZS9JbWFnZURlY29kZXIgY29uc3Ry
dWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
MDgxOAorCisgICAgICAgIFRoaXMgcGF0Y2ggYmFzaWNhbGx5IGRlZmluZXMgdHdvIGVudW0gdHlw
ZSBpbiBJbWFnZVNvdXJjZTogQWxwaGFPcHRpb24KKyAgICAgICAgYW5kIEdhbW1hQW5kQ29sb3JQ
cm9maWxlT3B0aW9uIGFuZCB1c2UgdGhlbSBhcyBJbWFnZVNvdXJjZSBhbmQgSW1hZ2VEZWNvZGVy
CisgICAgICAgIGNvbnN0cnVjdG9yIHBhcmFtZXRlcnMgaW5zdGVhZCBvZiBib29sZWFuIHR5cHMu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6SW1hZ2VTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VTb3VyY2U6OnNldERhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
U291cmNlLmg6IERlZmluZSB0aGUgdHdvIGVudW0gdHlwZXMuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNl
OjpJbWFnZVNvdXJjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VEZWNv
ZGVyUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyUXQ6OkltYWdlRGVjb2RlclF0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZURlY29kZXJRdC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEpOgorICAgICAgICAqIHBsYXRm
b3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bWFnZURlY29kZXI6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
SW1hZ2VEZWNvZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXI6OkltYWdlRGVj
b2Rlcik6CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVj
b2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCTVBJbWFnZURlY29kZXI6OkJNUEltYWdlRGVj
b2Rlcik6CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVj
b2Rlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9HSUZJbWFnZURl
Y29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0lGSW1hZ2VEZWNvZGVyOjpHSUZJbWFnZURl
Y29kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9HSUZJbWFnZURl
Y29kZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9pY28vSUNPSW1hZ2VE
ZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklDT0ltYWdlRGVjb2Rlcjo6SUNPSW1hZ2VE
ZWNvZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OklDT0ltYWdlRGVjb2Rlcjo6ZGVjb2RlQXRJbmRl
eCk6CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvaWNvL0lDT0ltYWdlRGVjb2Rl
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVj
b2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKUEVHSW1hZ2VEZWNvZGVyOjpKUEVHSW1hZ2VE
ZWNvZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFn
ZURlY29kZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1h
Z2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBOR0ltYWdlRGVjb2Rlcjo6UE5HSW1h
Z2VEZWNvZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1h
Z2VEZWNvZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9XRUJQ
SW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldFQlBJbWFnZURlY29kZXI6OldF
QlBJbWFnZURlY29kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3dlYnAv
V0VCUEltYWdlRGVjb2Rlci5oOgorCiAyMDEwLTEyLTEwICBBbmRyZWFzIEtsaW5nICA8a2xpbmdA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCShyZXZpc2lvbiA3MzQyMCkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MSwxMCArNDEsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdW5zaWduZWQgSW1h
Z2VTb3VyY2U6OnNfbWF4UGl4ZWxzUGVyRGVjb2RlZEltYWdlID0gMTAyNCAqIDEwMjQ7CiAjZW5k
aWYKIAotSW1hZ2VTb3VyY2U6OkltYWdlU291cmNlKGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9v
bCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkKK0ltYWdlU291cmNlOjpJbWFnZVNvdXJjZShJ
bWFnZVNvdXJjZTo6QWxwaGFPcHRpb24gYWxwaGFPcHRpb24sIEltYWdlU291cmNlOjpHYW1tYUFu
ZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbikKICAgICA6IG1f
ZGVjb2RlcigwKQotICAgICwgbV9wcmVtdWx0aXBseUFscGhhKHByZW11bHRpcGx5QWxwaGEpCi0g
ICAgLCBtX2lnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlKGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9m
aWxlKQorICAgICwgbV9hbHBoYU9wdGlvbihhbHBoYU9wdGlvbikKKyAgICAsIG1fZ2FtbWFBbmRD
b2xvclByb2ZpbGVPcHRpb24oZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCiB7CiB9CiAKQEAg
LTc5LDcgKzc5LDcgQEAgdm9pZCBJbWFnZVNvdXJjZTo6c2V0RGF0YShTaGFyZWRCdWZmZXIqIAog
ICAgIC8vIElmIGluc3VmZmljaWVudCBieXRlcyBhcmUgYXZhaWxhYmxlIHRvIGRldGVybWluZSB0
aGUgaW1hZ2UgdHlwZSwgbm8gZGVjb2RlciBwbHVnaW4gd2lsbCBiZQogICAgIC8vIG1hZGUuCiAg
ICAgaWYgKCFtX2RlY29kZXIpIHsKLSAgICAgICAgbV9kZWNvZGVyID0gc3RhdGljX2Nhc3Q8TmF0
aXZlSW1hZ2VTb3VyY2VQdHI+KEltYWdlRGVjb2Rlcjo6Y3JlYXRlKCpkYXRhLCBtX3ByZW11bHRp
cGx5QWxwaGEsIG1faWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpKTsKKyAgICAgICAgbV9kZWNv
ZGVyID0gc3RhdGljX2Nhc3Q8TmF0aXZlSW1hZ2VTb3VyY2VQdHI+KEltYWdlRGVjb2Rlcjo6Y3Jl
YXRlKCpkYXRhLCBtX2FscGhhT3B0aW9uLCBtX2dhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKSk7
CiAjaWYgRU5BQkxFKElNQUdFX0RFQ09ERVJfRE9XTl9TQU1QTElORykKICAgICAgICAgaWYgKG1f
ZGVjb2RlciAmJiBzX21heFBpeGVsc1BlckRlY29kZWRJbWFnZSkKICAgICAgICAgICAgIG1fZGVj
b2Rlci0+c2V0TWF4TnVtUGl4ZWxzKHNfbWF4UGl4ZWxzUGVyRGVjb2RlZEltYWdlKTsKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgJKHJldmlzaW9uIDczNDIwKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTksNyArMTE5LDE3IEBAIGNvbnN0IGludCBjQW5pbWF0aW9uTm9uZSA9IC0yOwogCiBj
bGFzcyBJbWFnZVNvdXJjZSA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6Ci0gICAgSW1h
Z2VTb3VyY2UoYm9vbCBwcmVtdWx0aXBseUFscGhhID0gdHJ1ZSwgYm9vbCBpZ25vcmVHYW1tYUFu
ZENvbG9yUHJvZmlsZSA9IGZhbHNlKTsKKyAgICBlbnVtIEFscGhhT3B0aW9uIHsKKyAgICAgICAg
QWxwaGFQcmVtdWx0aXBsaWVkLAorICAgICAgICBBbHBoYU5vdFByZW11bHRpcGxpZWQKKyAgICB9
OworCisgICAgZW51bSBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiB7CisgICAgICAgIEdhbW1h
QW5kQ29sb3JQcm9maWxlQXBwbGllZCwKKyAgICAgICAgR2FtbWFBbmRDb2xvclByb2ZpbGVJZ25v
cmVkCisgICAgfTsKKworICAgIEltYWdlU291cmNlKEFscGhhT3B0aW9uIGFscGhhT3B0aW9uID0g
QWxwaGFQcmVtdWx0aXBsaWVkLCBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENv
bG9yUHJvZmlsZU9wdGlvbiA9IEdhbW1hQW5kQ29sb3JQcm9maWxlQXBwbGllZCk7CiAgICAgfklt
YWdlU291cmNlKCk7CiAKICAgICAvLyBUZWxscyB0aGUgSW1hZ2VTb3VyY2UgdGhhdCB0aGUgSW1h
Z2Ugbm8gbG9uZ2VyIGNhcmVzIGFib3V0IGRlY29kZWQgZnJhbWUKQEAgLTE3Nyw4ICsxODcsOCBA
QCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgTmF0aXZlSW1hZ2VTb3VyY2VQdHIgbV9kZWNvZGVy
OwotICAgIGJvb2wgbV9wcmVtdWx0aXBseUFscGhhOwotICAgIGJvb2wgbV9pZ25vcmVHYW1tYUFu
ZENvbG9yUHJvZmlsZTsKKyAgICBBbHBoYU9wdGlvbiBtX2FscGhhT3B0aW9uOworICAgIEdhbW1h
QW5kQ29sb3JQcm9maWxlT3B0aW9uIG1fZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb247CiAjaWYg
RU5BQkxFKElNQUdFX0RFQ09ERVJfRE9XTl9TQU1QTElORykKICAgICBzdGF0aWMgdW5zaWduZWQg
c19tYXhQaXhlbHNQZXJEZWNvZGVkSW1hZ2U7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcAkocmV2aXNp
b24gNzM0MjApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4
dDNEQ0cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OSw3ICs5OSw4IEBAIGJvb2wgR3JhcGhpY3ND
b250ZXh0M0Q6OmdldEltYWdlRGF0YShJbWEKICAgICBDR0ltYWdlUmVmIGNnSW1hZ2U7CiAgICAg
UmV0YWluUHRyPENHSW1hZ2VSZWY+IGRlY29kZWRJbWFnZTsKICAgICBpZiAoaW1hZ2UtPmRhdGEo
KSkgewotICAgICAgICBJbWFnZVNvdXJjZSBkZWNvZGVyKGZhbHNlLCBpZ25vcmVHYW1tYUFuZENv
bG9yUHJvZmlsZSk7CisgICAgICAgIEltYWdlU291cmNlIGRlY29kZXIoSW1hZ2VTb3VyY2U6OkFs
cGhhTm90UHJlbXVsdGlwbGllZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVH
YW1tYUFuZENvbG9yUHJvZmlsZSA/IEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZUln
bm9yZWQgOiBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVBcHBsaWVkKTsKICAgICAg
ICAgZGVjb2Rlci5zZXREYXRhKGltYWdlLT5kYXRhKCksIHRydWUpOwogICAgICAgICBpZiAoIWRl
Y29kZXIuZnJhbWVDb3VudCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwCShyZXZpc2lv
biA3MzQyMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDExICs2MywxMSBAQCB2b2lkIHNoYXJlZEJ1ZmZlclJl
bGVhc2Uodm9pZCogaW5mbykKIH0KICNlbmRpZgogCi1JbWFnZVNvdXJjZTo6SW1hZ2VTb3VyY2Uo
Ym9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlKQor
SW1hZ2VTb3VyY2U6OkltYWdlU291cmNlKEltYWdlU291cmNlOjpBbHBoYU9wdGlvbiBhbHBoYU9w
dGlvbiwgSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uIGdhbW1hQW5kQ29s
b3JQcm9maWxlT3B0aW9uKQogICAgIDogbV9kZWNvZGVyKDApCiAgICAgLy8gRklYTUU6IG1fcHJl
bXVsdGlwbHlBbHBoYSBpcyBpZ25vcmVkIGluIGNnIGF0IHRoZSBtb21lbnQuCi0gICAgLCBtX3By
ZW11bHRpcGx5QWxwaGEocHJlbXVsdGlwbHlBbHBoYSkKLSAgICAsIG1faWdub3JlR2FtbWFBbmRD
b2xvclByb2ZpbGUoaWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpCisgICAgLCBtX2FscGhhT3B0
aW9uKGFscGhhT3B0aW9uKQorICAgICwgbV9nYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbihnYW1t
YUFuZENvbG9yUHJvZmlsZU9wdGlvbikKIHsKIH0KIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9JbWFnZURlY29kZXJRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9xdC9JbWFnZURlY29kZXJRdC5jcHAJKHJldmlzaW9uIDczNDIwKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZURlY29kZXJRdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM3LDE3ICszNywxNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUltYWdl
RGVjb2RlciogSW1hZ2VEZWNvZGVyOjpjcmVhdGUoY29uc3QgU2hhcmVkQnVmZmVyJiBkYXRhLCBi
b29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgaWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpCitJ
bWFnZURlY29kZXIqIEltYWdlRGVjb2Rlcjo6Y3JlYXRlKGNvbnN0IFNoYXJlZEJ1ZmZlciYgZGF0
YSwgSW1hZ2VTb3VyY2U6OkFscGhhT3B0aW9uIGFscGhhT3B0aW9uLCBJbWFnZVNvdXJjZTo6R2Ft
bWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCiB7CiAg
ICAgLy8gV2UgbmVlZCBhdCBsZWFzdCA0IGJ5dGVzIHRvIGZpZ3VyZSBvdXQgd2hhdCBraW5kIG9m
IGltYWdlIHdlJ3JlIGRlYWxpbmcgd2l0aC4KICAgICBpZiAoZGF0YS5zaXplKCkgPCA0KQogICAg
ICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBuZXcgSW1hZ2VEZWNvZGVyUXQocHJlbXVsdGlw
bHlBbHBoYSwgaWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpOworICAgIHJldHVybiBuZXcgSW1h
Z2VEZWNvZGVyUXQoYWxwaGFPcHRpb24sIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKTsKIH0K
IAotSW1hZ2VEZWNvZGVyUXQ6OkltYWdlRGVjb2RlclF0KGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwg
Ym9vbCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkKLSAgICA6IEltYWdlRGVjb2RlcihwcmVt
dWx0aXBseUFscGhhLCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkKK0ltYWdlRGVjb2RlclF0
OjpJbWFnZURlY29kZXJRdChJbWFnZVNvdXJjZTo6QWxwaGFPcHRpb24gYWxwaGFPcHRpb24sIElt
YWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9yUHJvZmls
ZU9wdGlvbikKKyAgICA6IEltYWdlRGVjb2RlcihhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xvclBy
b2ZpbGVPcHRpb24pCiAgICAgLCBtX3JlcGV0aXRpb25Db3VudChjQW5pbWF0aW9uTm9uZSkKIHsK
IH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VEZWNvZGVyUXQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlRGVjb2RlclF0
LmgJKHJldmlzaW9uIDczNDIwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFn
ZURlY29kZXJRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIEltYWdlRGVjb2RlclF0IDogcHVibGljIEltYWdlRGVjb2Rlcgogewog
cHVibGljOgotICAgIEltYWdlRGVjb2RlclF0KGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBp
Z25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSk7CisgICAgSW1hZ2VEZWNvZGVyUXQoSW1hZ2VTb3Vy
Y2U6OkFscGhhT3B0aW9uLCBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24p
OwogICAgIH5JbWFnZURlY29kZXJRdCgpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldERhdGEoU2hh
cmVkQnVmZmVyKiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCk7CkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0M0RTa2lh
LmNwcAkocmV2aXNpb24gNzM0MjApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
R3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsOCBA
QCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEoSW1hCiAgICAgTmF0aXZlSW1h
Z2VTa2lhKiBza2lhSW1hZ2UgPSAwOwogICAgIEFscGhhT3AgbmVlZGVkQWxwaGFPcCA9IEFscGhh
RG9Ob3RoaW5nOwogICAgIGlmIChpbWFnZS0+ZGF0YSgpKSB7Ci0gICAgICAgIEltYWdlU291cmNl
IGRlY29kZXIoZmFsc2UsIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlKTsKKyAgICAgICAgSW1h
Z2VTb3VyY2UgZGVjb2RlcihJbWFnZVNvdXJjZTo6QWxwaGFOb3RQcmVtdWx0aXBsaWVkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlID8gSW1h
Z2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlSWdub3JlZCA6IEltYWdlU291cmNlOjpHYW1t
YUFuZENvbG9yUHJvZmlsZUFwcGxpZWQpOwogICAgICAgICBkZWNvZGVyLnNldERhdGEoaW1hZ2Ut
PmRhdGEoKSwgdHJ1ZSk7CiAgICAgICAgIGlmICghZGVjb2Rlci5mcmFtZUNvdW50KCkgfHwgIWRl
Y29kZXIuZnJhbWVJc0NvbXBsZXRlQXRJbmRleCgwKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVj
b2Rlci5jcHAJKHJldmlzaW9uIDczNDIwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNv
ZGVycy9JbWFnZURlY29kZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw3IEBAIHN0
YXRpYyB1bnNpZ25lZCBjb3B5RnJvbVNoYXJlZEJ1ZmZlcihjaGEKICAgICByZXR1cm4gYnl0ZXNF
eHRyYWN0ZWQ7CiB9CiAKLUltYWdlRGVjb2RlciogSW1hZ2VEZWNvZGVyOjpjcmVhdGUoY29uc3Qg
U2hhcmVkQnVmZmVyJiBkYXRhLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgaWdub3JlR2Ft
bWFBbmRDb2xvclByb2ZpbGUpCitJbWFnZURlY29kZXIqIEltYWdlRGVjb2Rlcjo6Y3JlYXRlKGNv
bnN0IFNoYXJlZEJ1ZmZlciYgZGF0YSwgSW1hZ2VTb3VyY2U6OkFscGhhT3B0aW9uIGFscGhhT3B0
aW9uLCBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xv
clByb2ZpbGVPcHRpb24pCiB7CiAgICAgLy8gV2UgbmVlZCBhdCBsZWFzdCA0IGJ5dGVzIHRvIGZp
Z3VyZSBvdXQgd2hhdCBraW5kIG9mIGltYWdlIHdlJ3JlIGRlYWxpbmcKICAgICAvLyB3aXRoLgpA
QCAtNjUsMTUgKzY1LDE1IEBAIEltYWdlRGVjb2RlciogSW1hZ2VEZWNvZGVyOjpjcmVhdGUoY29u
c3QKIAogICAgIC8vIEdJRnMgYmVnaW4gd2l0aCBHSUY4KDcgb3IgOSkuCiAgICAgaWYgKHN0cm5j
bXAoY29udGVudHMsICJHSUY4IiwgNCkgPT0gMCkKLSAgICAgICAgcmV0dXJuIG5ldyBHSUZJbWFn
ZURlY29kZXIocHJlbXVsdGlwbHlBbHBoYSwgaWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpOwor
ICAgICAgICByZXR1cm4gbmV3IEdJRkltYWdlRGVjb2RlcihhbHBoYU9wdGlvbiwgZ2FtbWFBbmRD
b2xvclByb2ZpbGVPcHRpb24pOwogCiAgICAgLy8gVGVzdCBmb3IgUE5HLgogICAgIGlmICghbWVt
Y21wKGNvbnRlbnRzLCAiXHg4OVx4NTBceDRFXHg0NyIsIDQpKQotICAgICAgICByZXR1cm4gbmV3
IFBOR0ltYWdlRGVjb2RlcihwcmVtdWx0aXBseUFscGhhLCBpZ25vcmVHYW1tYUFuZENvbG9yUHJv
ZmlsZSk7CisgICAgICAgIHJldHVybiBuZXcgUE5HSW1hZ2VEZWNvZGVyKGFscGhhT3B0aW9uLCBn
YW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbik7CiAKICAgICAvLyBKUEVHCiAgICAgaWYgKCFtZW1j
bXAoY29udGVudHMsICJceEZGXHhEOFx4RkYiLCAzKSkKLSAgICAgICAgcmV0dXJuIG5ldyBKUEVH
SW1hZ2VEZWNvZGVyKHByZW11bHRpcGx5QWxwaGEsIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxl
KTsKKyAgICAgICAgcmV0dXJuIG5ldyBKUEVHSW1hZ2VEZWNvZGVyKGFscGhhT3B0aW9uLCBnYW1t
YUFuZENvbG9yUHJvZmlsZU9wdGlvbik7CiAKICNpZiBVU0UoV0VCUCkKICAgICBpZiAoIW1lbWNt
cChjb250ZW50cywgIlJJRkYiLCA0KSkgewpAQCAtODMsMTkgKzgzLDE5IEBAIEltYWdlRGVjb2Rl
ciogSW1hZ2VEZWNvZGVyOjpjcmVhdGUoY29uc3QKICAgICAgICAgdW5zaWduZWQgbGVuZ3RoID0g
Y29weUZyb21TaGFyZWRCdWZmZXIoaGVhZGVyLCB3ZWJwRXh0cmFNYXJrZXIsIGRhdGEsIHdlYnBF
eHRyYU1hcmtlcm9mZnNldCk7CiAgICAgICAgIGlmIChsZW5ndGggPj0gd2VicEV4dHJhTWFya2Vy
KSB7CiAgICAgICAgICAgICBpZiAoIW1lbWNtcChoZWFkZXIsICJXRUJQVlAiLCB3ZWJwRXh0cmFN
YXJrZXIpKQotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgV0VCUEltYWdlRGVjb2RlcihwcmVt
dWx0aXBseUFscGhhLCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIG5ldyBXRUJQSW1hZ2VEZWNvZGVyKGFscGhhT3B0aW9uLCBnYW1tYUFuZENvbG9y
UHJvZmlsZU9wdGlvbik7CiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKIAogICAgIC8vIEJNUAog
ICAgIGlmIChzdHJuY21wKGNvbnRlbnRzLCAiQk0iLCAyKSA9PSAwKQotICAgICAgICByZXR1cm4g
bmV3IEJNUEltYWdlRGVjb2RlcihwcmVtdWx0aXBseUFscGhhLCBpZ25vcmVHYW1tYUFuZENvbG9y
UHJvZmlsZSk7CisgICAgICAgIHJldHVybiBuZXcgQk1QSW1hZ2VEZWNvZGVyKGFscGhhT3B0aW9u
LCBnYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbik7CiAKICAgICAvLyBJQ09zIGFsd2F5cyBiZWdp
biB3aXRoIGEgMi1ieXRlIDAgZm9sbG93ZWQgYnkgYSAyLWJ5dGUgMS4KICAgICAvLyBDVVJzIGJl
Z2luIHdpdGggMi1ieXRlIDAgZm9sbG93ZWQgYnkgMi1ieXRlIDIuCiAgICAgaWYgKCFtZW1jbXAo
Y29udGVudHMsICJceDAwXHgwMFx4MDFceDAwIiwgNCkgfHwgIW1lbWNtcChjb250ZW50cywgIlx4
MDBceDAwXHgwMlx4MDAiLCA0KSkKLSAgICAgICAgcmV0dXJuIG5ldyBJQ09JbWFnZURlY29kZXIo
cHJlbXVsdGlwbHlBbHBoYSwgaWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpOworICAgICAgICBy
ZXR1cm4gbmV3IElDT0ltYWdlRGVjb2RlcihhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xvclByb2Zp
bGVPcHRpb24pOwogCiAgICAgLy8gR2l2ZSB1cC4gV2UgZG9uJ3Qga25vdyB3aGF0IHRoZSBoZWNr
IHRoaXMgaXMuCiAgICAgcmV0dXJuIDA7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRl
Y29kZXJzL0ltYWdlRGVjb2Rlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmgJKHJldmlzaW9uIDczNDIwKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MjIzLDEwICsyMjMsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIC8vIG1fbWF4TnVtUGl4
ZWxzLiAoTm90IHN1cHBvcnRlZCBieSBhbGwgaW1hZ2UgZGVjb2RlcnMgeWV0KQogICAgIGNsYXNz
IEltYWdlRGVjb2RlciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiAgICAgcHVibGljOgotICAgICAg
ICBJbWFnZURlY29kZXIoYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGlnbm9yZUdhbW1hQW5k
Q29sb3JQcm9maWxlKQorICAgICAgICBJbWFnZURlY29kZXIoSW1hZ2VTb3VyY2U6OkFscGhhT3B0
aW9uIGFscGhhT3B0aW9uLCBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24g
Z2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCiAgICAgICAgICAgICA6IG1fc2NhbGVkKGZhbHNl
KQotICAgICAgICAgICAgLCBtX3ByZW11bHRpcGx5QWxwaGEocHJlbXVsdGlwbHlBbHBoYSkKLSAg
ICAgICAgICAgICwgbV9pZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZShpZ25vcmVHYW1tYUFuZENv
bG9yUHJvZmlsZSkKKyAgICAgICAgICAgICwgbV9wcmVtdWx0aXBseUFscGhhKGFscGhhT3B0aW9u
ID09IEltYWdlU291cmNlOjpBbHBoYVByZW11bHRpcGxpZWQpCisgICAgICAgICAgICAsIG1faWdu
b3JlR2FtbWFBbmRDb2xvclByb2ZpbGUoZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gPT0gSW1h
Z2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlSWdub3JlZCkKICAgICAgICAgICAgICwgbV9z
aXplQXZhaWxhYmxlKGZhbHNlKQogICAgICAgICAgICAgLCBtX21heE51bVBpeGVscygtMSkKICAg
ICAgICAgICAgICwgbV9pc0FsbERhdGFSZWNlaXZlZChmYWxzZSkKQEAgLTIzOSw3ICsyMzksNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIEZhY3RvcnkgZnVuY3Rpb24gdG8gY3Jl
YXRlIGFuIEltYWdlRGVjb2Rlci4gIFBvcnRzIHRoYXQgc3ViY2xhc3MKICAgICAgICAgLy8gSW1h
Z2VEZWNvZGVyIGNhbiBwcm92aWRlIHRoZWlyIG93biBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIHRv
IGF2b2lkCiAgICAgICAgIC8vIG5lZWRpbmcgdG8gd3JpdGUgYSBkZWRpY2F0ZWQgc2V0RGF0YSgp
IGltcGxlbWVudGF0aW9uLgotICAgICAgICBzdGF0aWMgSW1hZ2VEZWNvZGVyKiBjcmVhdGUoY29u
c3QgU2hhcmVkQnVmZmVyJiBkYXRhLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgaWdub3Jl
R2FtbWFBbmRDb2xvclByb2ZpbGUpOworICAgICAgICBzdGF0aWMgSW1hZ2VEZWNvZGVyKiBjcmVh
dGUoY29uc3QgU2hhcmVkQnVmZmVyJiBkYXRhLCBJbWFnZVNvdXJjZTo6QWxwaGFPcHRpb24sIElt
YWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbik7CiAKICAgICAgICAgLy8gVGhl
IHRoZSBmaWxlbmFtZSBleHRlbnNpb24gdXN1YWxseSBhc3NvY2lhdGVkIHdpdGggYW4gdW5kZWNv
ZGVkIGltYWdlCiAgICAgICAgIC8vIG9mIHRoaXMgdHlwZS4KSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibXAvQk1QSW1hZ2VEZWNvZGVyLmNwcAko
cmV2aXNpb24gNzM0MjApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2JtcC9C
TVBJbWFnZURlY29kZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw4ICs0MCw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIC8vIGRvbid0IHBhY2spLgogc3RhdGljIGNvbnN0IHNpemVfdCBzaXpl
T2ZGaWxlSGVhZGVyID0gMTQ7CiAKLUJNUEltYWdlRGVjb2Rlcjo6Qk1QSW1hZ2VEZWNvZGVyKGJv
b2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkKLSAg
ICA6IEltYWdlRGVjb2RlcihwcmVtdWx0aXBseUFscGhhLCBpZ25vcmVHYW1tYUFuZENvbG9yUHJv
ZmlsZSkKK0JNUEltYWdlRGVjb2Rlcjo6Qk1QSW1hZ2VEZWNvZGVyKEltYWdlU291cmNlOjpBbHBo
YU9wdGlvbiBhbHBoYU9wdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElt
YWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9yUHJvZmls
ZU9wdGlvbikKKyAgICA6IEltYWdlRGVjb2RlcihhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xvclBy
b2ZpbGVPcHRpb24pCiAgICAgLCBtX2RlY29kZWRPZmZzZXQoMCkKIHsKIH0KSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rl
ci5oCShyZXZpc2lvbiA3MzQyMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
Ym1wL0JNUEltYWdlRGVjb2Rlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAvLyBUaGlzIGNsYXNzIGRlY29kZXMgdGhlIEJNUCBpbWFn
ZSBmb3JtYXQuCiAgICAgY2xhc3MgQk1QSW1hZ2VEZWNvZGVyIDogcHVibGljIEltYWdlRGVjb2Rl
ciB7CiAgICAgcHVibGljOgotICAgICAgICBCTVBJbWFnZURlY29kZXIoYm9vbCBwcmVtdWx0aXBs
eUFscGhhLCBib29sIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlKTsKKyAgICAgICAgQk1QSW1h
Z2VEZWNvZGVyKEltYWdlU291cmNlOjpBbHBoYU9wdGlvbiwgSW1hZ2VTb3VyY2U6OkdhbW1hQW5k
Q29sb3JQcm9maWxlT3B0aW9uKTsKIAogICAgICAgICAvLyBJbWFnZURlY29kZXIKICAgICAgICAg
dmlydHVhbCBTdHJpbmcgZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdCB7IHJldHVybiAiYm1wIjsg
fQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYvR0lGSW1hZ2VEZWNv
ZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dp
Zi9HSUZJbWFnZURlY29kZXIuY3BwCShyZXZpc2lvbiA3MzQyMCkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvZ2lmL0dJRkltYWdlRGVjb2Rlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDggKzI5LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1HSUZJbWFnZURlY29k
ZXI6OkdJRkltYWdlRGVjb2Rlcihib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgaWdub3JlR2Ft
bWFBbmRDb2xvclByb2ZpbGUpCi0gICAgOiBJbWFnZURlY29kZXIocHJlbXVsdGlwbHlBbHBoYSwg
aWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpCitHSUZJbWFnZURlY29kZXI6OkdJRkltYWdlRGVj
b2RlcihJbWFnZVNvdXJjZTo6QWxwaGFPcHRpb24gYWxwaGFPcHRpb24sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRp
b24gZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCisgICAgOiBJbWFnZURlY29kZXIoYWxwaGFP
cHRpb24sIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKQogICAgICwgbV9hbHJlYWR5U2Nhbm5l
ZFRoaXNEYXRhRm9yRnJhbWVDb3VudCh0cnVlKQogICAgICwgbV9yZXBldGl0aW9uQ291bnQoY0Fu
aW1hdGlvbkxvb3BPbmNlKQogICAgICwgbV9yZWFkT2Zmc2V0KDApCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9HSUZJbWFnZURlY29kZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9HSUZJbWFnZURlY29kZXIuaAko
cmV2aXNpb24gNzM0MjApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9H
SUZJbWFnZURlY29kZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgLy8gVGhpcyBjbGFzcyBkZWNvZGVzIHRoZSBHSUYgaW1hZ2UgZm9y
bWF0LgogICAgIGNsYXNzIEdJRkltYWdlRGVjb2RlciA6IHB1YmxpYyBJbWFnZURlY29kZXIgewog
ICAgIHB1YmxpYzoKLSAgICAgICAgR0lGSW1hZ2VEZWNvZGVyKGJvb2wgcHJlbXVsdGlwbHlBbHBo
YSwgYm9vbCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSk7CisgICAgICAgIEdJRkltYWdlRGVj
b2RlcihJbWFnZVNvdXJjZTo6QWxwaGFPcHRpb24sIEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9y
UHJvZmlsZU9wdGlvbik7CiAgICAgICAgIHZpcnR1YWwgfkdJRkltYWdlRGVjb2RlcigpOwogCiAg
ICAgICAgIGVudW0gR0lGUXVlcnkgeyBHSUZGdWxsUXVlcnksIEdJRlNpemVRdWVyeSwgR0lGRnJh
bWVDb3VudFF1ZXJ5IH07CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2lj
by9JQ09JbWFnZURlY29kZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMvaWNvL0lDT0ltYWdlRGVjb2Rlci5jcHAJKHJldmlzaW9uIDczNDIwKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9pY28vSUNPSW1hZ2VEZWNvZGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDQsOCArNDQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdGF0
aWMgY29uc3Qgc2l6ZV90IHNpemVPZkRpcmVjdG9yeSA9IDY7CiBzdGF0aWMgY29uc3Qgc2l6ZV90
IHNpemVPZkRpckVudHJ5ID0gMTY7CiAKLUlDT0ltYWdlRGVjb2Rlcjo6SUNPSW1hZ2VEZWNvZGVy
KGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkK
LSAgICA6IEltYWdlRGVjb2RlcihwcmVtdWx0aXBseUFscGhhLCBpZ25vcmVHYW1tYUFuZENvbG9y
UHJvZmlsZSkKK0lDT0ltYWdlRGVjb2Rlcjo6SUNPSW1hZ2VEZWNvZGVyKEltYWdlU291cmNlOjpB
bHBoYU9wdGlvbiBhbHBoYU9wdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9yUHJv
ZmlsZU9wdGlvbikKKyAgICA6IEltYWdlRGVjb2RlcihhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xv
clByb2ZpbGVPcHRpb24pCiAgICAgLCBtX2RlY29kZWRPZmZzZXQoMCkKIHsKIH0KQEAgLTIwMSw3
ICsyMDIsOSBAQCBib29sIElDT0ltYWdlRGVjb2Rlcjo6ZGVjb2RlQXRJbmRleChzaXplCiAgICAg
fQogCiAgICAgaWYgKCFtX3BuZ0RlY29kZXJzW2luZGV4XSkgewotICAgICAgICBtX3BuZ0RlY29k
ZXJzW2luZGV4XS5zZXQobmV3IFBOR0ltYWdlRGVjb2RlcihtX3ByZW11bHRpcGx5QWxwaGEsIG1f
aWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpKTsKKyAgICAgICAgbV9wbmdEZWNvZGVyc1tpbmRl
eF0uc2V0KAorICAgICAgICAgICAgbmV3IFBOR0ltYWdlRGVjb2RlcihtX3ByZW11bHRpcGx5QWxw
aGEgPyBJbWFnZVNvdXJjZTo6QWxwaGFQcmVtdWx0aXBsaWVkIDogSW1hZ2VTb3VyY2U6OkFscGhh
Tm90UHJlbXVsdGlwbGllZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9pZ25v
cmVHYW1tYUFuZENvbG9yUHJvZmlsZSA/IEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmls
ZUlnbm9yZWQgOiBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVBcHBsaWVkKSk7CiAg
ICAgICAgIHNldERhdGFGb3JQTkdEZWNvZGVyQXRJbmRleChpbmRleCk7CiAgICAgfQogICAgIC8v
IEZhaWwgaWYgdGhlIHNpemUgdGhlIFBOR0ltYWdlRGVjb2RlciBjYWxjdWxhdGVkIGRvZXMgbm90
IG1hdGNoIHRoZSBzaXplCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2lj
by9JQ09JbWFnZURlY29kZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2ltYWdl
LWRlY29kZXJzL2ljby9JQ09JbWFnZURlY29kZXIuaAkocmV2aXNpb24gNzM0MjApCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2ljby9JQ09JbWFnZURlY29kZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgLy8gVGhp
cyBjbGFzcyBkZWNvZGVzIHRoZSBJQ08gYW5kIENVUiBpbWFnZSBmb3JtYXRzLgogICAgIGNsYXNz
IElDT0ltYWdlRGVjb2RlciA6IHB1YmxpYyBJbWFnZURlY29kZXIgewogICAgIHB1YmxpYzoKLSAg
ICAgICAgSUNPSW1hZ2VEZWNvZGVyKGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBpZ25vcmVH
YW1tYUFuZENvbG9yUHJvZmlsZSk7CisgICAgICAgIElDT0ltYWdlRGVjb2RlcihJbWFnZVNvdXJj
ZTo6QWxwaGFPcHRpb24sIEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbik7
CiAgICAgICAgIHZpcnR1YWwgfklDT0ltYWdlRGVjb2RlcigpOwogCiAgICAgICAgIC8vIEltYWdl
RGVjb2RlcgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJ
bWFnZURlY29kZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcAkocmV2aXNpb24gNzM0MjApCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM5OCw4ICszOTgsOSBAQCB2b2lkIHRlcm1fc291cmNlKGpfZGVjb21w
cmVzc19wdHIgamQpCiAgICAgc3JjLT5kZWNvZGVyLT5kZWNvZGVyKCktPmpwZWdDb21wbGV0ZSgp
OwogfQogCi1KUEVHSW1hZ2VEZWNvZGVyOjpKUEVHSW1hZ2VEZWNvZGVyKGJvb2wgcHJlbXVsdGlw
bHlBbHBoYSwgYm9vbCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkKLSAgICA6IEltYWdlRGVj
b2RlcihwcmVtdWx0aXBseUFscGhhLCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkKK0pQRUdJ
bWFnZURlY29kZXI6OkpQRUdJbWFnZURlY29kZXIoSW1hZ2VTb3VyY2U6OkFscGhhT3B0aW9uIGFs
cGhhT3B0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbWFnZVNvdXJj
ZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24p
CisgICAgOiBJbWFnZURlY29kZXIoYWxwaGFPcHRpb24sIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0
aW9uKQogewogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcv
SlBFR0ltYWdlRGVjb2Rlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2Ut
ZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmgJKHJldmlzaW9uIDczNDIwKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgLy8g
VGhpcyBjbGFzcyBkZWNvZGVzIHRoZSBKUEVHIGltYWdlIGZvcm1hdC4KICAgICBjbGFzcyBKUEVH
SW1hZ2VEZWNvZGVyIDogcHVibGljIEltYWdlRGVjb2RlciB7CiAgICAgcHVibGljOgotICAgICAg
ICBKUEVHSW1hZ2VEZWNvZGVyKGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBpZ25vcmVHYW1t
YUFuZENvbG9yUHJvZmlsZSk7CisgICAgICAgIEpQRUdJbWFnZURlY29kZXIoSW1hZ2VTb3VyY2U6
OkFscGhhT3B0aW9uLCBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pOwog
ICAgICAgICB2aXJ0dWFsIH5KUEVHSW1hZ2VEZWNvZGVyKCk7CiAKICAgICAgICAgLy8gSW1hZ2VE
ZWNvZGVyCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFn
ZURlY29kZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2Rl
cnMvcG5nL1BOR0ltYWdlRGVjb2Rlci5jcHAJKHJldmlzaW9uIDczNDIwKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTY5LDggKzE2OSw5IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jdXJyZW50
QnVmZmVyU2l6ZTsKIH07CiAKLVBOR0ltYWdlRGVjb2Rlcjo6UE5HSW1hZ2VEZWNvZGVyKGJvb2wg
cHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkKLSAgICA6
IEltYWdlRGVjb2RlcihwcmVtdWx0aXBseUFscGhhLCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmls
ZSkKK1BOR0ltYWdlRGVjb2Rlcjo6UE5HSW1hZ2VEZWNvZGVyKEltYWdlU291cmNlOjpBbHBoYU9w
dGlvbiBhbHBoYU9wdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEltYWdl
U291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9yUHJvZmlsZU9w
dGlvbikKKyAgICA6IEltYWdlRGVjb2RlcihhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xvclByb2Zp
bGVPcHRpb24pCiAgICAgLCBtX2RvTm90aGluZ09uRmFpbHVyZShmYWxzZSkKIHsKIH0KSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdlRGVjb2Rlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdl
RGVjb2Rlci5oCShyZXZpc2lvbiA3MzQyMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvcG5nL1BOR0ltYWdlRGVjb2Rlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAvLyBUaGlzIGNsYXNzIGRlY29kZXMgdGhlIFBO
RyBpbWFnZSBmb3JtYXQuCiAgICAgY2xhc3MgUE5HSW1hZ2VEZWNvZGVyIDogcHVibGljIEltYWdl
RGVjb2RlciB7CiAgICAgcHVibGljOgotICAgICAgICBQTkdJbWFnZURlY29kZXIoYm9vbCBwcmVt
dWx0aXBseUFscGhhLCBib29sIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlKTsKKyAgICAgICAg
UE5HSW1hZ2VEZWNvZGVyKEltYWdlU291cmNlOjpBbHBoYU9wdGlvbiwgSW1hZ2VTb3VyY2U6Okdh
bW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKTsKICAgICAgICAgdmlydHVhbCB+UE5HSW1hZ2VEZWNv
ZGVyKCk7CiAKICAgICAgICAgLy8gSW1hZ2VEZWNvZGVyCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzL3dlYnAvV0VCUEltYWdlRGVjb2Rlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy93ZWJwL1dFQlBJbWFnZURlY29kZXIuY3Bw
CShyZXZpc2lvbiA3MzQyMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2Vi
cC9XRUJQSW1hZ2VEZWNvZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsOCArMzUsOSBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdFQlBJbWFnZURlY29kZXI6OldFQlBJbWFnZURlY29k
ZXIoYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxl
KQotICAgIDogSW1hZ2VEZWNvZGVyKHByZW11bHRpcGx5QWxwaGEsIGlnbm9yZUdhbW1hQW5kQ29s
b3JQcm9maWxlKQorV0VCUEltYWdlRGVjb2Rlcjo6V0VCUEltYWdlRGVjb2RlcihJbWFnZVNvdXJj
ZTo6QWxwaGFPcHRpb24gYWxwaGFPcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENv
bG9yUHJvZmlsZU9wdGlvbikKKyAgICA6IEltYWdlRGVjb2RlcihhbHBoYU9wdGlvbiwgZ2FtbWFB
bmRDb2xvclByb2ZpbGVPcHRpb24pCiB7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMvd2VicC9XRUJQSW1hZ2VEZWNvZGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy93ZWJwL1dFQlBJbWFnZURlY29kZXIuaAkocmV2aXNp
b24gNzM0MjApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3dlYnAvV0VCUElt
YWdlRGVjb2Rlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgV0VCUEltYWdlRGVjb2RlciA6IHB1YmxpYyBJbWFnZURlY29kZXIg
ewogcHVibGljOgotICAgIFdFQlBJbWFnZURlY29kZXIoYm9vbCBwcmVtdWx0aXBseUFscGhhLCBi
b29sIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlKTsKKyAgICBXRUJQSW1hZ2VEZWNvZGVyKElt
YWdlU291cmNlOjpBbHBoYU9wdGlvbiwgSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxl
T3B0aW9uKTsKICAgICB2aXJ0dWFsIH5XRUJQSW1hZ2VEZWNvZGVyKCk7CiAgICAgdmlydHVhbCBT
dHJpbmcgZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdCB7IHJldHVybiAidnA4IjsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc1NpemVBdmFpbGFibGUoKTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24g
NzM3MjkpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTAtMTItMTAgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgZW51bXMg
aW5zdGVhZCBvZiBib29sZWFucyBpbiBJbWFnZVNvdXJjZS9JbWFnZURlY29kZXIgY29uc3RydWN0
b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDgx
OAorCisgICAgICAgICogc3JjL1dlYkltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkltYWdlRGVjb2Rlcjo6aW5pdCk6IFVzZSBlbnVtcyBpbnN0ZWFkIG9mIGJvb2xlYW4gaW4g
SW1hZ2VEZWNvZGVyIGNvbnN0cnVjdG9yLgorCiAyMDEwLTEyLTEwICBKb2huIEtub3R0ZW5iZWx0
ICA8amtub3R0ZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEJs
b2NrLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbWFnZURlY29kZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW1hZ2VEZWNvZGVyLmNwcAkocmV2aXNp
b24gNzM0MjApCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkltYWdlRGVjb2Rlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTU2LDEwICs1NiwxMCBAQCB2b2lkIFdlYkltYWdlRGVjb2Rlcjo6aW5p
dChUeXBlIHR5cGUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBUeXBlQk1QOgot
ICAgICAgICBtX3ByaXZhdGUgPSBuZXcgQk1QSW1hZ2VEZWNvZGVyKHRydWUsIGZhbHNlKTsKKyAg
ICAgICAgbV9wcml2YXRlID0gbmV3IEJNUEltYWdlRGVjb2RlcihJbWFnZVNvdXJjZTo6QWxwaGFQ
cmVtdWx0aXBsaWVkLCBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVBcHBsaWVkKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUeXBlSUNPOgotICAgICAgICBtX3ByaXZhdGUgPSBu
ZXcgSUNPSW1hZ2VEZWNvZGVyKHRydWUsIGZhbHNlKTsKKyAgICAgICAgbV9wcml2YXRlID0gbmV3
IElDT0ltYWdlRGVjb2RlcihJbWFnZVNvdXJjZTo6QWxwaGFQcmVtdWx0aXBsaWVkLCBJbWFnZVNv
dXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVBcHBsaWVkKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogfQo=
</data>
<flag name="review"
          id="67112"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="67157"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>