<?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>121085</bug_id>
          
          <creation_ts>2013-09-10 00:53:35 -0700</creation_ts>
          <short_desc>GeneratorGeneratedImage should be called GradientImage</short_desc>
          <delta_ts>2013-09-21 20:28:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>rakuco</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>927208</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-09-10 00:53:35 -0700</bug_when>
    <thetext>Ben removed Generator in http://trac.webkit.org/changeset/150053 but we still have GeneratorGeneratedImage, which now unconditionally takes a gradient. So, this class needs a rename.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>931197</commentid>
    <comment_count>1</comment_count>
      <attachid>212127</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-09-19 22:29:04 -0700</bug_when>
    <thetext>Created attachment 212127
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>931198</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-19 22:32:38 -0700</bug_when>
    <thetext>Attachment 212127 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/Target.pri&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/css/CSSGradientValue.cpp&apos;, u&apos;Source/WebCore/css/CSSImageGeneratorValue.cpp&apos;, u&apos;Source/WebCore/css/CSSImageGeneratorValue.h&apos;, u&apos;Source/WebCore/platform/graphics/BitmapImage.h&apos;, u&apos;Source/WebCore/platform/graphics/GeneratorGeneratedImage.cpp&apos;, u&apos;Source/WebCore/platform/graphics/GeneratorGeneratedImage.h&apos;, u&apos;Source/WebCore/platform/graphics/GradientImage.cpp&apos;, u&apos;Source/WebCore/platform/graphics/GradientImage.h&apos;, u&apos;Source/WebCore/platform/graphics/Image.h&apos;, u&apos;Source/WebCore/platform/graphics/ImageBuffer.h&apos;]&quot; exit_code: 1
Source/WebCore/css/CSSGradientValue.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 15 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>931199</commentid>
    <comment_count>3</comment_count>
      <attachid>212128</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-09-19 22:35:56 -0700</bug_when>
    <thetext>Created attachment 212128
style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>931768</commentid>
    <comment_count>4</comment_count>
      <attachid>212128</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-21 03:51:19 -0700</bug_when>
    <thetext>Comment on attachment 212128
style

Clearing flags on attachment: 212128

Committed r156226: &lt;http://trac.webkit.org/changeset/156226&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>931769</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-21 03:51:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>931858</commentid>
    <comment_count>6</comment_count>
      <attachid>212128</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-21 20:28:32 -0700</bug_when>
    <thetext>Comment on attachment 212128
style

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

&gt; Source/WebCore/platform/graphics/GradientImage.h:45
&gt; +    virtual ~GradientImage() { }

I suggest deleting this line of code.

What this does is exactly what the compiler will automatically do for us if we don’t mention the destructor at all. It’s already virtual because a base class has a virtual destructor. The automatically generated one does the same thing as one with an empty body. Sometimes people will declare the destructor explicitly so we don’t have to include the things necessary to compile it in the header file, but in this case we have an inline definition of it, so that benefit does not apply.

Better style to leave it out.

&gt; Source/WebCore/platform/graphics/GradientImage.h:47
&gt; +protected:

If a class is FINAL, then it makes no sense to have a protected section. These things should just be part of the private section.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212127</attachid>
            <date>2013-09-19 22:29:04 -0700</date>
            <delta_ts>2013-09-19 22:35:56 -0700</delta_ts>
            <desc>patch</desc>
            <filename>gradientimage.diff</filename>
            <type>text/plain</type>
            <size>33374</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMGE1MWZjOC4uYjM4NTI3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE5MDMsOSArMTkwMyw5IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9MYXlvdXRCb3hFeHRlbnQuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
TGF5b3V0UmVjdC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5jcHAK
LSAgICBwbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9HbHlwaFBhZ2VUcmVlTm9kZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFkaWVudC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmNw
cAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXJBbmltYXRpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQyNTU2Yi4uODM5ZWI4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEzLTA5LTE5ICBUaW0gSG9ydG9uICA8dGltb3Ro
eV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlIHNo
b3VsZCBiZSBjYWxsZWQgR3JhZGllbnRJbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMDg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBqdXN0IGEgcmVmYWN0b3IuCisKKyAg
ICAgICAgcjE1MDA1MyByZW1vdmVkIHRoZSBjb25jZXB0IG9mIGEgR2VuZXJhdG9yLCBtYWtpbmcg
R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UKKyAgICAgICAgdGFrZSBhIEdyYWRpZW50LiBUaGlzIGxl
YXZlcyBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZSdzIG5hbWUgbm90IG1ha2luZyBhCisgICAgICAg
IHdob2xlIGxvdCBvZiBzZW5zZSwgc28gbGV0J3MgcmVuYW1lIGl0IHRvIEdyYWRpZW50SW1hZ2Uu
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0
LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGNzcy9DU1NHcmFkaWVudFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0dyYWRpZW50VmFsdWU6OmltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuY3Bw
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9y
R2VuZXJhdGVkSW1hZ2UuY3BwLgorICAgICAgICAoV2ViQ29yZTo6R3JhZGllbnRJbWFnZTo6ZHJh
dyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFkaWVudEltYWdlOjpkcmF3UGF0dGVybik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5oOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIFJlbmFtZS4KKworICAgICAgICAqIGNz
cy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdl
R2VuZXJhdG9yVmFsdWU6OmNhY2hlZEltYWdlRm9yU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NJbWFnZUdlbmVyYXRvclZhbHVlOjpzYXZlQ2FjaGVkSW1hZ2VGb3JTaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OkNhY2hlZEdlbmVyYXRlZEltYWdlOjpD
YWNoZWRHZW5lcmF0ZWRJbWFnZSk6CisgICAgICAgICogY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFs
dWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OkNhY2hlZEdl
bmVyYXRlZEltYWdlOjppbWFnZSk6CisgICAgICAgIERyaXZlLWJ5LCB0aGUgQ1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZSBnZW5lcmF0ZWQgaW1hZ2UgY2FjaGUgc2hvdWxkIGJlCisgICAgICAgIGluIHRl
cm1zIG9mIEdlbmVyYXRlZEltYWdlLCBub3QgYSByYW5kb20gc3ViY2xhc3MsIHJlZ2FyZGxlc3MK
KyAgICAgICAgb2YgdGhlIGZhY3QgdGhhdCBpdCdzIG9ubHkgdXNlZCBmb3IgR3JhZGllbnRJbWFn
ZSBhcyBvZiB5ZXQuCisKIDIwMTMtMDktMTkgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiB1cGRhdGUgTWVkaWFTdHJlYW1U
cmFja0V2ZW50IG9iamVjdCB0byBtYXRjaCBzcGVjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCBjMmY5ZmVmLi5hMzcyYjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
QEAgLTU4MzUsOCArNTgzNSw2IEBAIHBsYXRmb3JtX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRXaWR0aFZhcmlhbnQuaCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oIFwKLQlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAgXAotCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoLmggXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoQnVmZmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5oIFwKQEAgLTU4NDUsNiArNTg0Myw4IEBAIHBs
YXRmb3JtX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ds
eXBoUGFnZVRyZWVOb2RlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YWRpZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQu
aCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5jcHAg
XAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuaCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCmluZGV4IGVkNWIyNGIuLjYzYTFkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtOTkzLDkgKzk5Myw5
IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0xheW91dEJveEV4dGVudC5j
cHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0xheW91dFJlY3QuY3BwIFwKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5jcHAgXAotICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dl
bmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQ
YWdlVHJlZU5vZGUuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5jcHAgXAor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuY3BwIFwKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckFuaW1h
dGlvbi5jcHAgXApAQCAtMjE5NCwxMCArMjE5NCwxMCBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmggXAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRNZXRyaWNzLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaCBcCi0gICAg
cGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCBcCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR2x5
cGhQYWdlVHJlZU5vZGUuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaCBcCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5oIFwKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NM
YXllci5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQW5pbWF0aW9uLmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5k
ZXggMTgxZTRhMS4uZTFjYWQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCkBAIC03NjMzLDkgKzc2MzMsOSBAQAogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGb250UGxhdGZv
cm1EYXRhLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBo
aWNzXEdlbmVyYXRlZEltYWdlLmNwcCIgLz4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXGdyYXBoaWNzXEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEdseXBoUGFnZVRyZWVOb2RlLmNw
cCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEdyYWRp
ZW50LmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNz
XEdyYWRpZW50SW1hZ2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZv
cm1cZ3JhcGhpY3NcR3JhcGhpY3NDb250ZXh0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEdyYXBoaWNzTGF5ZXIuY3BwIiAvPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcR3JhcGhpY3NMYXllclVwZGF0ZXIu
Y3BwIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDVmMGQ0ODUuLjg2NjRhZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMK
QEAgLTEzNTksMTUgKzEzNTksMTUgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRm
b3JtXGdyYXBoaWNzXEZsb2F0UXVhZC5jcHAiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFw
aGljczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccGxhdGZvcm1cZ3JhcGhpY3NcR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwIj4KLSAgICAg
IDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEdseXBoUGFnZVRyZWVO
b2RlLmNwcCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzPC9GaWx0ZXI+CiAgICAg
PC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xHcmFkaWVudC5jcHAiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFwaGljczwvRmlsdGVy
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1c
Z3JhcGhpY3NcR3JhZGllbnRJbWFnZS5jcHAiPgorICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFw
aGljczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccGxhdGZvcm1cZ3JhcGhpY3NcR3JhcGhpY3NDb250ZXh0LmNwcCI+CiAgICAgICA8RmlsdGVy
PnBsYXRmb3JtXGdyYXBoaWNzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTg3NGU3
ZC4uNWM5ZjMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtOTA2LDggKzkwNiw4IEBACiAJCTJENDZGMDUwMTdCOTZGRDIwMDU2
NDdGMCAvKiBJbnRTaXplLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJENDZGMDRGMTdCOTZGRDIwMDU2NDdGMCAvKiBJbnRTaXplLmNwcCAqLzsgfTsK
IAkJMkQ0ODFGMDAxNDZCNUM0QzAwQUE3ODM0IC8qIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMkZDMDU0
MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAgKi87IH07CiAJ
CTJENDgxRjAyMTQ2QjVDNTUwMEFBNzgzNCAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyRkMwNTUxNDYw
Q0Q2RjAwMjYzNjMzIC8qIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmggKi87IH07Ci0JCTJENDgx
RjAzMTQ2QjVDNjUwMEFBNzgzNCAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDJGQzA1NjE0NjBDRDZG
MDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwICovOyB9OwotCQkyRDQ4MUYw
NDE0NkI1QzZCMDBBQTc4MzQgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMkZDMDU3MTQ2MENENkYwMDI2
MzYzMyAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oICovOyB9OworCQkyRDQ4MUYwMzE0NkI1
QzY1MDBBQTc4MzQgLyogR3JhZGllbnRJbWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDJGQzA1NjE0NjBDRDZGMDAyNjM2MzMgLyogR3JhZGll
bnRJbWFnZS5jcHAgKi87IH07CisJCTJENDgxRjA0MTQ2QjVDNkIwMEFBNzgzNCAvKiBHcmFkaWVu
dEltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RDJGQzA1NzE0NjBDRDZGMDAyNjM2MzMgLyogR3JhZGllbnRJbWFnZS5oICovOyB9OwogCQkyRDVB
NTkyRjE1MjUyNTIzMDAzNkVFNTEgLyogSW1hZ2VPcmllbnRhdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODc0OEQ3NDEyQ0MzRjg5MDAxRkJB
NDEgLyogSW1hZ2VPcmllbnRhdGlvbi5jcHAgKi87IH07CiAJCTJENUE1OTMxMTUyNTI1RDAwMDM2
RUU1MSAvKiBJbWFnZU9yaWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODc0OEQ2NjEyQ0MzNzYzMDAxRkJBNDEgLyogSW1hZ2VPcmllbnRh
dGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTJENUJDNDI3MTZGODgyRUUwMDcwNDhEMCAvKiBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDVCQzQy
NTE2Rjg4MkJFMDA3MDQ4RDAgLyogU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oICovOyB9
OwpAQCAtNzM4NCw4ICs3Mzg0LDggQEAKIAkJMkJFOEUyQzgxMkE1OEEwMTAwRkFENTUwIC8qIEhU
TUxNZXRhQ2hhcnNldFBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuY3BwOyBwYXRoID0gcGFyc2VyL0hUTUxNZXRhQ2hh
cnNldFBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMkZDMDU0MTQ2
MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMkZDMDU1MTQ2MENENkYwMDI2MzYzMyAvKiBD
cm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkyRDJGQzA1NjE0NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VuZXJhdG9yR2VuZXJhdGVk
SW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRDJGQzA1NzE0NjBDRDZG
MDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMkQyRkMwNTYxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdyYWRpZW50SW1hZ2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhZGllbnRJbWFnZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMkZDMDU3MTQ2MENENkYwMDI2MzYz
MyAvKiBHcmFkaWVudEltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdy
YWRpZW50SW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQzQTBFMzUxM0E3
RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTVkdQYXJzaW5nRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkQ0NkYwNEQxN0I5NkZCRDAwNTY0N0YwIC8qIEludFBvaW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEludFBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMkQ0NkYwNEYxN0I5NkZEMjAwNTY0N0YwIC8qIEludFNpemUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW50U2l6ZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xODkwNiw4ICsxODkwNiw4IEBACiAJCQkJQkNFNDQxMzUxMkY3
NDkwQjAwOUI4NEI4IC8qIEZvbnRXaWR0aFZhcmlhbnQuaCAqLywKIAkJCQk0RkIzOTBBQzE1RUY2
MUYzMDA3QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2UuY3BwICovLAogCQkJCUJDMjNGMERBMERBRkY0
QTQwMDlGREM5MSAvKiBHZW5lcmF0ZWRJbWFnZS5oICovLAotCQkJCTJEMkZDMDU2MTQ2MENENkYw
MDI2MzYzMyAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAgKi8sCi0JCQkJMkQyRkMwNTcx
NDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggKi8sCisJCQkJMkQy
RkMwNTYxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdyYWRpZW50SW1hZ2UuY3BwICovLAorCQkJCTJEMkZD
MDU3MTQ2MENENkYwMDI2MzYzMyAvKiBHcmFkaWVudEltYWdlLmggKi8sCiAJCQkJMDg2QkJEMEUx
MzYwMzlDMjAwOEIxNUQ4IC8qIEdseXBoLmggKi8sCiAJCQkJQjJDM0RBNUIwRDAwNkNENjAwRUY2
RjI2IC8qIEdseXBoQnVmZmVyLmggKi8sCiAJCQkJQzVENEFBNzgxMTZCQUZCNjAwNjlDQTkzIC8q
IEdseXBoTWV0cmljc01hcC5oICovLApAQCAtMjI0ODUsNyArMjI0ODUsNyBAQAogCQkJCTE0MzJF
ODQ3MEM1MTQ5MzgwMEIxNTAwRiAvKiBHQ0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUMwQzA1NENDMTExOEM4RTQwMENFMjYzNiAvKiBnZW5lcmF0ZS1iaW5kaW5ncy5wbCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDMjNGMERCMERBRkY0QTQwMDlGREM5MSAvKiBHZW5lcmF0ZWRJbWFnZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMkQ0ODFGMDQxNDZCNUM2QjAwQUE3ODM0IC8qIEdlbmVyYXRv
ckdlbmVyYXRlZEltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQkyRDQ4MUYwNDE0NkI1QzZCMDBB
QTc4MzQgLyogR3JhZGllbnRJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDcyMEIwQTExNEQz
MzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
NzQ2QUYyNDE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTk3NDZBRjI1MTRGNERERTYwMDNFN0E3MSAvKiBHZW9sb2NhdGlvbkNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNTc1OSw3ICsyNTc1OSw3IEBACiAJCQkJRkQzMTYwMEMxMkIwMjY3NjAw
QzFBMzU5IC8qIEdhaW5Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MzJFODQ5MEM1MTQ5
M0YwMEIxNTAwRiAvKiBHQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEZCMzkw
QUQxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCTJENDgxRjAzMTQ2QjVDNjUwMEFBNzgzNCAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkyRDQ4MUYwMzE0NkI1QzY1MDBBQTc4MzQgLyogR3JhZGll
bnRJbWFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzIwQjBBMDE0RDMzMjM1MDA2NDI5NTUg
LyogR2VuZXJpY0V2ZW50UXVldWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc0NkFGMjMxNEY0
RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NDZB
RjI2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKaW5kZXggZjYwYTY2
Yi4uMjM2NjBhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcApAQCAt
MjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ1NTQ2FsY3VsYXRpb25WYWx1ZS5oIgogI2luY2x1
ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKLSNpbmNsdWRlICJHZW5lcmF0b3JHZW5lcmF0ZWRJbWFn
ZS5oIgorI2luY2x1ZGUgIkdyYWRpZW50SW1hZ2UuaCIKICNpbmNsdWRlICJHcmFkaWVudC5oIgog
I2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgpAQCAtNjcsNyArNjcsNyBA
QCBQYXNzUmVmUHRyPEltYWdlPiBDU1NHcmFkaWVudFZhbHVlOjppbWFnZShSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJgogICAgICAgICBncmFkaWVudCA9IHN0YXRpY19jYXN0
PENTU1JhZGlhbEdyYWRpZW50VmFsdWUqPih0aGlzKS0+Y3JlYXRlR3JhZGllbnQocmVuZGVyZXIs
IHNpemUpOwogICAgIH0KIAotICAgIFJlZlB0cjxHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZT4gbmV3
SW1hZ2UgPSBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTo6Y3JlYXRlKGdyYWRpZW50LCBzaXplKTsK
KyAgICBSZWZQdHI8R3JhZGllbnRJbWFnZT4gbmV3SW1hZ2UgPSBHcmFkaWVudEltYWdlOjpjcmVh
dGUoZ3JhZGllbnQsIHNpemUpOwogICAgIGlmIChjYWNoZWFibGUpCiAgICAgICAgIHNhdmVDYWNo
ZWRJbWFnZUZvclNpemUoc2l6ZSwgbmV3SW1hZ2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5jcHAKaW5kZXggYWZhMjY3MS4uZTVhNGY1OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmNwcApAQCAtNjQsNyAr
NjQsNyBAQCB2b2lkIENTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OnJlbW92ZUNsaWVudChSZW5kZXJP
YmplY3QqIHJlbmRlcmVyKQogICAgIGRlcmVmKCk7CiB9CiAKLUdlbmVyYXRvckdlbmVyYXRlZElt
YWdlKiBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpjYWNoZWRJbWFnZUZvclNpemUoSW50U2l6ZSBz
aXplKQorR2VuZXJhdGVkSW1hZ2UqIENTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OmNhY2hlZEltYWdl
Rm9yU2l6ZShJbnRTaXplIHNpemUpCiB7CiAgICAgaWYgKHNpemUuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm4gMDsKQEAgLTc3LDcgKzc3LDcgQEAgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UqIENT
U0ltYWdlR2VuZXJhdG9yVmFsdWU6OmNhY2hlZEltYWdlRm9yU2l6ZShJbnRTaXplIHNpemUKICAg
ICByZXR1cm4gY2FjaGVkR2VuZXJhdGVkSW1hZ2UtPmltYWdlKCk7CiB9CiAKLXZvaWQgQ1NTSW1h
Z2VHZW5lcmF0b3JWYWx1ZTo6c2F2ZUNhY2hlZEltYWdlRm9yU2l6ZShJbnRTaXplIHNpemUsIFBh
c3NSZWZQdHI8R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U+IGltYWdlKQordm9pZCBDU1NJbWFnZUdl
bmVyYXRvclZhbHVlOjpzYXZlQ2FjaGVkSW1hZ2VGb3JTaXplKEludFNpemUgc2l6ZSwgUGFzc1Jl
ZlB0cjxHZW5lcmF0ZWRJbWFnZT4gaW1hZ2UpCiB7CiAgICAgQVNTRVJUKCFtX2ltYWdlcy5jb250
YWlucyhzaXplKSk7CiAgICAgbV9pbWFnZXMuYWRkKHNpemUsIGFkb3B0UHRyKG5ldyBDYWNoZWRH
ZW5lcmF0ZWRJbWFnZSgqdGhpcywgc2l6ZSwgaW1hZ2UpKSk7CkBAIC04OSw3ICs4OSw3IEBAIHZv
aWQgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6ZXZpY3RDYWNoZWRHZW5lcmF0ZWRJbWFnZShJbnRT
aXplIHNpemUpCiAgICAgbV9pbWFnZXMucmVtb3ZlKHNpemUpOwogfQogCi1DU1NJbWFnZUdlbmVy
YXRvclZhbHVlOjpDYWNoZWRHZW5lcmF0ZWRJbWFnZTo6Q2FjaGVkR2VuZXJhdGVkSW1hZ2UoQ1NT
SW1hZ2VHZW5lcmF0b3JWYWx1ZSYgb3duZXIsIEludFNpemUgc2l6ZSwgUGFzc1JlZlB0cjxHZW5l
cmF0b3JHZW5lcmF0ZWRJbWFnZT4gaW1hZ2UpCitDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpDYWNo
ZWRHZW5lcmF0ZWRJbWFnZTo6Q2FjaGVkR2VuZXJhdGVkSW1hZ2UoQ1NTSW1hZ2VHZW5lcmF0b3JW
YWx1ZSYgb3duZXIsIEludFNpemUgc2l6ZSwgUGFzc1JlZlB0cjxHZW5lcmF0ZWRJbWFnZT4gaW1h
Z2UpCiAgICAgOiBtX293bmVyKG93bmVyKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX2lt
YWdlKGltYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJh
dG9yVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmgK
aW5kZXggYWJiNTk5Mi4uNjhlOGE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ltYWdlR2VuZXJhdG9yVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VH
ZW5lcmF0b3JWYWx1ZS5oCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJDU1NWYWx1ZS5o
IgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCi0jaW5jbHVkZSAiR2VuZXJhdG9yR2VuZXJhdGVk
SW1hZ2UuaCIKKyNpbmNsdWRlICJHZW5lcmF0ZWRJbWFnZS5oIgogI2luY2x1ZGUgIkludFNpemVI
YXNoLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQu
aD4KQEAgLTM3LDcgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVk
UmVzb3VyY2VMb2FkZXI7Ci1jbGFzcyBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTsKK2NsYXNzIEdl
bmVyYXRlZEltYWdlOwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgU3R5bGVSZXNvbHZlcjsK
IApAQCAtNjEsOCArNjEsOCBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgQ1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZShDbGFzc1R5cGUpOwogCi0gICAgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UqIGNh
Y2hlZEltYWdlRm9yU2l6ZShJbnRTaXplKTsKLSAgICB2b2lkIHNhdmVDYWNoZWRJbWFnZUZvclNp
emUoSW50U2l6ZSwgUGFzc1JlZlB0cjxHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZT4pOworICAgIEdl
bmVyYXRlZEltYWdlKiBjYWNoZWRJbWFnZUZvclNpemUoSW50U2l6ZSk7CisgICAgdm9pZCBzYXZl
Q2FjaGVkSW1hZ2VGb3JTaXplKEludFNpemUsIFBhc3NSZWZQdHI8R2VuZXJhdGVkSW1hZ2U+KTsK
ICAgICBjb25zdCBIYXNoQ291bnRlZFNldDxSZW5kZXJPYmplY3QqPiYgY2xpZW50cygpIGNvbnN0
IHsgcmV0dXJuIG1fY2xpZW50czsgfQogCiAgICAgLy8gSGVscGVyIGZ1bmN0aW9ucyBmb3IgQ3Jv
c3NmYWRlIGFuZCBGaWx0ZXIuCkBAIC03Miw4ICs3Miw4IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6
CiAgICAgY2xhc3MgQ2FjaGVkR2VuZXJhdGVkSW1hZ2UgewogICAgIHB1YmxpYzoKLSAgICAgICAg
Q2FjaGVkR2VuZXJhdGVkSW1hZ2UoQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSYsIEludFNpemUsIFBh
c3NSZWZQdHI8R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U+KTsKLSAgICAgICAgR2VuZXJhdG9yR2Vu
ZXJhdGVkSW1hZ2UqIGltYWdlKCkgeyByZXR1cm4gbV9pbWFnZS5nZXQoKTsgfQorICAgICAgICBD
YWNoZWRHZW5lcmF0ZWRJbWFnZShDU1NJbWFnZUdlbmVyYXRvclZhbHVlJiwgSW50U2l6ZSwgUGFz
c1JlZlB0cjxHZW5lcmF0ZWRJbWFnZT4pOworICAgICAgICBHZW5lcmF0ZWRJbWFnZSogaW1hZ2Uo
KSB7IHJldHVybiBtX2ltYWdlLmdldCgpOyB9CiAgICAgICAgIHZvaWQgcHVudEV2aWN0aW9uVGlt
ZXIoKSB7IG1fZXZpY3Rpb25UaW1lci5yZXN0YXJ0KCk7IH0KIAogICAgIHByaXZhdGU6CkBAIC04
MSw3ICs4MSw3IEBAIHByaXZhdGU6CiAKICAgICAgICAgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSYg
bV9vd25lcjsKICAgICAgICAgSW50U2l6ZSBtX3NpemU7Ci0gICAgICAgIFJlZlB0cjxHZW5lcmF0
b3JHZW5lcmF0ZWRJbWFnZT4gbV9pbWFnZTsKKyAgICAgICAgUmVmUHRyPEdlbmVyYXRlZEltYWdl
PiBtX2ltYWdlOwogICAgICAgICBEZWZlcnJhYmxlT25lU2hvdFRpbWVyPENhY2hlZEdlbmVyYXRl
ZEltYWdlPiBtX2V2aWN0aW9uVGltZXI7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKaW5kZXggYmRhOTFiOS4uMjBmZTQ2ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCkBAIC0x
MDAsNyArMTAwLDcgQEAgcHVibGljOgogY2xhc3MgQml0bWFwSW1hZ2UgRklOQUwgOiBwdWJsaWMg
SW1hZ2UgewogICAgIGZyaWVuZCBjbGFzcyBHZW5lcmF0ZWRJbWFnZTsKICAgICBmcmllbmQgY2xh
c3MgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U7Ci0gICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRvckdl
bmVyYXRlZEltYWdlOworICAgIGZyaWVuZCBjbGFzcyBHcmFkaWVudEltYWdlOwogICAgIGZyaWVu
ZCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
Qml0bWFwSW1hZ2U+IGNyZWF0ZShQYXNzTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2UsIEltYWdl
T2JzZXJ2ZXIqIG9ic2VydmVyID0gMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNTU3MzIzYy4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw4MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAy
MDEwLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkdlbmVyYXRvckdlbmVyYXRlZEltYWdl
LmgiCi0KLSNpbmNsdWRlICJGbG9hdFJlY3QuaCIKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQu
aCIKLSNpbmNsdWRlICJMZW5ndGguaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIEdl
bmVyYXRvckdlbmVyYXRlZEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogZGVzdENvbnRleHQs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29s
b3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIEJsZW5kTW9kZSBibGVuZE1v
ZGUpCi17Ci0gICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpkZXN0Q29u
dGV4dCk7Ci0gICAgZGVzdENvbnRleHQtPnNldENvbXBvc2l0ZU9wZXJhdGlvbihjb21wb3NpdGVP
cCwgYmxlbmRNb2RlKTsKLSAgICBkZXN0Q29udGV4dC0+Y2xpcChkZXN0UmVjdCk7Ci0gICAgZGVz
dENvbnRleHQtPnRyYW5zbGF0ZShkZXN0UmVjdC54KCksIGRlc3RSZWN0LnkoKSk7Ci0gICAgaWYg
KGRlc3RSZWN0LnNpemUoKSAhPSBzcmNSZWN0LnNpemUoKSkKLSAgICAgICAgZGVzdENvbnRleHQt
PnNjYWxlKEZsb2F0U2l6ZShkZXN0UmVjdC53aWR0aCgpIC8gc3JjUmVjdC53aWR0aCgpLCBkZXN0
UmVjdC5oZWlnaHQoKSAvIHNyY1JlY3QuaGVpZ2h0KCkpKTsKLSAgICBkZXN0Q29udGV4dC0+dHJh
bnNsYXRlKC1zcmNSZWN0LngoKSwgLXNyY1JlY3QueSgpKTsKLSAgICBkZXN0Q29udGV4dC0+Zmls
bFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZSgpKSwgKm1fZ3JhZGllbnQuZ2V0KCkp
OwotfQotCi12b2lkIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGlj
c0NvbnRleHQqIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKLSAgICBjb25zdCBGbG9hdFBvaW50JiBw
aGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBv
c2l0ZU9wLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBCbGVuZE1vZGUpCi17Ci0gICAgLy8g
QWxsb3cgdGhlIGdlbmVyYXRvciB0byBwcm92aWRlIHZpc3VhbGx5LWVxdWl2YWxlbnQgdGlsaW5n
IHBhcmFtZXRlcnMgZm9yIGJldHRlciBwZXJmb3JtYW5jZS4KLSAgICBJbnRTaXplIGFkanVzdGVk
U2l6ZSA9IHNpemUoKTsKLSAgICBGbG9hdFJlY3QgYWRqdXN0ZWRTcmNSZWN0ID0gc3JjUmVjdDsK
LSAgICBtX2dyYWRpZW50LT5hZGp1c3RQYXJhbWV0ZXJzRm9yVGlsZWREcmF3aW5nKGFkanVzdGVk
U2l6ZSwgYWRqdXN0ZWRTcmNSZWN0KTsKLQotICAgIC8vIEZhY3RvciBpbiB0aGUgZGVzdGluYXRp
b24gY29udGV4dCdzIHNjYWxlIHRvIGdlbmVyYXRlIGF0IHRoZSBiZXN0IHJlc29sdXRpb24KLSAg
ICBBZmZpbmVUcmFuc2Zvcm0gZGVzdENvbnRleHRDVE0gPSBkZXN0Q29udGV4dC0+Z2V0Q1RNKEdy
YXBoaWNzQ29udGV4dDo6RGVmaW5pdGVseUluY2x1ZGVEZXZpY2VTY2FsZSk7Ci0gICAgZG91Ymxl
IHhTY2FsZSA9IGZhYnMoZGVzdENvbnRleHRDVE0ueFNjYWxlKCkpOwotICAgIGRvdWJsZSB5U2Nh
bGUgPSBmYWJzKGRlc3RDb250ZXh0Q1RNLnlTY2FsZSgpKTsKLSAgICBBZmZpbmVUcmFuc2Zvcm0g
YWRqdXN0ZWRQYXR0ZXJuQ1RNID0gcGF0dGVyblRyYW5zZm9ybTsKLSAgICBhZGp1c3RlZFBhdHRl
cm5DVE0uc2NhbGUoMS4wIC8geFNjYWxlLCAxLjAgLyB5U2NhbGUpOwotICAgIGFkanVzdGVkU3Jj
UmVjdC5zY2FsZSh4U2NhbGUsIHlTY2FsZSk7Ci0KLSAgICB1bnNpZ25lZCBnZW5lcmF0b3JIYXNo
ID0gbV9ncmFkaWVudC0+aGFzaCgpOwotCi0gICAgaWYgKCFtX2NhY2hlZEltYWdlQnVmZmVyIHx8
IG1fY2FjaGVkR2VuZXJhdG9ySGFzaCAhPSBnZW5lcmF0b3JIYXNoIHx8IG1fY2FjaGVkQWRqdXN0
ZWRTaXplICE9IGFkanVzdGVkU2l6ZSB8fCAhZGVzdENvbnRleHQtPmlzQ29tcGF0aWJsZVdpdGhC
dWZmZXIobV9jYWNoZWRJbWFnZUJ1ZmZlci5nZXQoKSkpIHsKLSAgICAgICAgbV9jYWNoZWRJbWFn
ZUJ1ZmZlciA9IGRlc3RDb250ZXh0LT5jcmVhdGVDb21wYXRpYmxlQnVmZmVyKGFkanVzdGVkU2l6
ZSwgbV9ncmFkaWVudC0+aGFzQWxwaGEoKSk7Ci0gICAgICAgIGlmICghbV9jYWNoZWRJbWFnZUJ1
ZmZlcikKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAvLyBGaWxsIHdpdGggdGhlIGdl
bmVyYXRlZCBpbWFnZS4KLSAgICAgICAgbV9jYWNoZWRJbWFnZUJ1ZmZlci0+Y29udGV4dCgpLT5m
aWxsUmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBhZGp1c3RlZFNpemUpLCAqbV9ncmFkaWVu
dCk7Ci0KLSAgICAgICAgbV9jYWNoZWRHZW5lcmF0b3JIYXNoID0gZ2VuZXJhdG9ySGFzaDsKLSAg
ICAgICAgbV9jYWNoZWRBZGp1c3RlZFNpemUgPSBhZGp1c3RlZFNpemU7Ci0gICAgfQotCi0gICAg
bV9jYWNoZWRJbWFnZUJ1ZmZlci0+c2V0U3BhY2VTaXplKHNwYWNlU2l6ZSgpKTsKLSAgICAvLyBU
aWxlIHRoZSBpbWFnZSBidWZmZXIgaW50byB0aGUgY29udGV4dC4KLSAgICBtX2NhY2hlZEltYWdl
QnVmZmVyLT5kcmF3UGF0dGVybihkZXN0Q29udGV4dCwgYWRqdXN0ZWRTcmNSZWN0LCBhZGp1c3Rl
ZFBhdHRlcm5DVE0sIHBoYXNlLCBzdHlsZUNvbG9yU3BhY2UsIGNvbXBvc2l0ZU9wLCBkZXN0UmVj
dCk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkMjE0YTA0Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEyLCAyMDEzIEFwcGxlIENvbXB1dGVy
LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgR2VuZXJhdG9yR2Vu
ZXJhdGVkSW1hZ2VfaAotI2RlZmluZSBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZV9oCi0KLSNpbmNs
dWRlICJHZW5lcmF0ZWRJbWFnZS5oIgotI2luY2x1ZGUgIkdyYWRpZW50LmgiCi0jaW5jbHVkZSAi
SW1hZ2UuaCIKLSNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgotI2luY2x1ZGUgIkludFNpemUuaCIK
LSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UgRklOQUwgOiBwdWJsaWMgR2VuZXJhdGVkSW1hZ2Ugewot
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlbmVyYXRvckdlbmVyYXRlZEltYWdlPiBj
cmVhdGUoUGFzc1JlZlB0cjxHcmFkaWVudD4gZ2VuZXJhdG9yLCBjb25zdCBJbnRTaXplJiBzaXpl
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZW5lcmF0b3JHZW5lcmF0ZWRJ
bWFnZShnZW5lcmF0b3IsIHNpemUpKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIH5HZW5lcmF0b3JH
ZW5lcmF0ZWRJbWFnZSgpIHsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2b2lkIGRyYXco
R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRv
ciwgQmxlbmRNb2RlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCi0gICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNl
LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIEJsZW5kTW9kZSkgT1ZFUlJJREU7Ci0KLSAgICBHZW5lcmF0b3JH
ZW5lcmF0ZWRJbWFnZShQYXNzUmVmUHRyPEdyYWRpZW50PiBnZW5lcmF0b3IsIGNvbnN0IEludFNp
emUmIHNpemUpCi0gICAgICAgIDogbV9ncmFkaWVudChnZW5lcmF0b3IpCi0gICAgewotICAgICAg
ICBzZXRDb250YWluZXJTaXplKHNpemUpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8
R3JhZGllbnQ+IG1fZ3JhZGllbnQ7Ci0gICAgT3duUHRyPEltYWdlQnVmZmVyPiBtX2NhY2hlZElt
YWdlQnVmZmVyOwotICAgIEludFNpemUgbV9jYWNoZWRBZGp1c3RlZFNpemU7Ci0gICAgdW5zaWdu
ZWQgbV9jYWNoZWRHZW5lcmF0b3JIYXNoOwotfTsKLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI4OTE2ZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuY3BwCkBAIC0wLDAg
KzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTIsIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiR3JhZGllbnRJbWFnZS5oIgorCisjaW5jbHVkZSAiRmxvYXRS
ZWN0LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiTGVuZ3RoLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBHcmFkaWVudEltYWdlOjpkcmF3KEdyYXBo
aWNzQ29udGV4dCogZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9z
aXRlT3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCit7CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVT
YXZlciBzdGF0ZVNhdmVyKCpkZXN0Q29udGV4dCk7CisgICAgZGVzdENvbnRleHQtPnNldENvbXBv
c2l0ZU9wZXJhdGlvbihjb21wb3NpdGVPcCwgYmxlbmRNb2RlKTsKKyAgICBkZXN0Q29udGV4dC0+
Y2xpcChkZXN0UmVjdCk7CisgICAgZGVzdENvbnRleHQtPnRyYW5zbGF0ZShkZXN0UmVjdC54KCks
IGRlc3RSZWN0LnkoKSk7CisgICAgaWYgKGRlc3RSZWN0LnNpemUoKSAhPSBzcmNSZWN0LnNpemUo
KSkKKyAgICAgICAgZGVzdENvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZShkZXN0UmVjdC53aWR0aCgp
IC8gc3JjUmVjdC53aWR0aCgpLCBkZXN0UmVjdC5oZWlnaHQoKSAvIHNyY1JlY3QuaGVpZ2h0KCkp
KTsKKyAgICBkZXN0Q29udGV4dC0+dHJhbnNsYXRlKC1zcmNSZWN0LngoKSwgLXNyY1JlY3QueSgp
KTsKKyAgICBkZXN0Q29udGV4dC0+ZmlsbFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6
ZSgpKSwgKm1fZ3JhZGllbnQuZ2V0KCkpOworfQorCit2b2lkIEdyYWRpZW50SW1hZ2U6OmRyYXdQ
YXR0ZXJuKEdyYXBoaWNzQ29udGV4dCogZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAorICAgIGNvbnN0
IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRl
T3BlcmF0b3IgY29tcG9zaXRlT3AsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIEJsZW5kTW9k
ZSkKK3sKKyAgICAvLyBBbGxvdyB0aGUgZ2VuZXJhdG9yIHRvIHByb3ZpZGUgdmlzdWFsbHktZXF1
aXZhbGVudCB0aWxpbmcgcGFyYW1ldGVycyBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlLgorICAgIElu
dFNpemUgYWRqdXN0ZWRTaXplID0gc2l6ZSgpOworICAgIEZsb2F0UmVjdCBhZGp1c3RlZFNyY1Jl
Y3QgPSBzcmNSZWN0OworICAgIG1fZ3JhZGllbnQtPmFkanVzdFBhcmFtZXRlcnNGb3JUaWxlZERy
YXdpbmcoYWRqdXN0ZWRTaXplLCBhZGp1c3RlZFNyY1JlY3QpOworCisgICAgLy8gRmFjdG9yIGlu
IHRoZSBkZXN0aW5hdGlvbiBjb250ZXh0J3Mgc2NhbGUgdG8gZ2VuZXJhdGUgYXQgdGhlIGJlc3Qg
cmVzb2x1dGlvbgorICAgIEFmZmluZVRyYW5zZm9ybSBkZXN0Q29udGV4dENUTSA9IGRlc3RDb250
ZXh0LT5nZXRDVE0oR3JhcGhpY3NDb250ZXh0OjpEZWZpbml0ZWx5SW5jbHVkZURldmljZVNjYWxl
KTsKKyAgICBkb3VibGUgeFNjYWxlID0gZmFicyhkZXN0Q29udGV4dENUTS54U2NhbGUoKSk7Cisg
ICAgZG91YmxlIHlTY2FsZSA9IGZhYnMoZGVzdENvbnRleHRDVE0ueVNjYWxlKCkpOworICAgIEFm
ZmluZVRyYW5zZm9ybSBhZGp1c3RlZFBhdHRlcm5DVE0gPSBwYXR0ZXJuVHJhbnNmb3JtOworICAg
IGFkanVzdGVkUGF0dGVybkNUTS5zY2FsZSgxLjAgLyB4U2NhbGUsIDEuMCAvIHlTY2FsZSk7Cisg
ICAgYWRqdXN0ZWRTcmNSZWN0LnNjYWxlKHhTY2FsZSwgeVNjYWxlKTsKKworICAgIHVuc2lnbmVk
IGdlbmVyYXRvckhhc2ggPSBtX2dyYWRpZW50LT5oYXNoKCk7CisKKyAgICBpZiAoIW1fY2FjaGVk
SW1hZ2VCdWZmZXIgfHwgbV9jYWNoZWRHZW5lcmF0b3JIYXNoICE9IGdlbmVyYXRvckhhc2ggfHwg
bV9jYWNoZWRBZGp1c3RlZFNpemUgIT0gYWRqdXN0ZWRTaXplIHx8ICFkZXN0Q29udGV4dC0+aXND
b21wYXRpYmxlV2l0aEJ1ZmZlcihtX2NhY2hlZEltYWdlQnVmZmVyLmdldCgpKSkgeworICAgICAg
ICBtX2NhY2hlZEltYWdlQnVmZmVyID0gZGVzdENvbnRleHQtPmNyZWF0ZUNvbXBhdGlibGVCdWZm
ZXIoYWRqdXN0ZWRTaXplLCBtX2dyYWRpZW50LT5oYXNBbHBoYSgpKTsKKyAgICAgICAgaWYgKCFt
X2NhY2hlZEltYWdlQnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIC8vIEZp
bGwgd2l0aCB0aGUgZ2VuZXJhdGVkIGltYWdlLgorICAgICAgICBtX2NhY2hlZEltYWdlQnVmZmVy
LT5jb250ZXh0KCktPmZpbGxSZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGFkanVzdGVkU2l6
ZSksICptX2dyYWRpZW50KTsKKworICAgICAgICBtX2NhY2hlZEdlbmVyYXRvckhhc2ggPSBnZW5l
cmF0b3JIYXNoOworICAgICAgICBtX2NhY2hlZEFkanVzdGVkU2l6ZSA9IGFkanVzdGVkU2l6ZTsK
KyAgICB9CisKKyAgICBtX2NhY2hlZEltYWdlQnVmZmVyLT5zZXRTcGFjZVNpemUoc3BhY2VTaXpl
KCkpOworICAgIC8vIFRpbGUgdGhlIGltYWdlIGJ1ZmZlciBpbnRvIHRoZSBjb250ZXh0LgorICAg
IG1fY2FjaGVkSW1hZ2VCdWZmZXItPmRyYXdQYXR0ZXJuKGRlc3RDb250ZXh0LCBhZGp1c3RlZFNy
Y1JlY3QsIGFkanVzdGVkUGF0dGVybkNUTSwgcGhhc2UsIHN0eWxlQ29sb3JTcGFjZSwgY29tcG9z
aXRlT3AsIGRlc3RSZWN0KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhZGllbnRJbWFnZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmY3OGJhMmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFkaWVudEltYWdlLmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwOCwgMjAxMiwgMjAxMyBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIEdyYWRpZW50SW1hZ2VfaAorI2RlZmluZSBHcmFkaWVu
dEltYWdlX2gKKworI2luY2x1ZGUgIkdlbmVyYXRlZEltYWdlLmgiCisjaW5jbHVkZSAiR3JhZGll
bnQuaCIKKyNpbmNsdWRlICJJbWFnZS5oIgorI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCisjaW5j
bHVkZSAiSW50U2l6ZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBHcmFkaWVudEltYWdlIEZJTkFMIDogcHVibGljIEdlbmVyYXRlZElt
YWdlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxHcmFkaWVudEltYWdlPiBjcmVh
dGUoUGFzc1JlZlB0cjxHcmFkaWVudD4gZ2VuZXJhdG9yLCBjb25zdCBJbnRTaXplJiBzaXplKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHcmFkaWVudEltYWdlKGdlbmVyYXRv
ciwgc2l6ZSkpOworICAgIH0KKworICAgIHZpcnR1YWwgfkdyYWRpZW50SW1hZ2UoKSB7IH0KKwor
cHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0
IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNl
IHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3Jt
LAorICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9y
U3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBCbGVu
ZE1vZGUpIE9WRVJSSURFOworCisgICAgR3JhZGllbnRJbWFnZShQYXNzUmVmUHRyPEdyYWRpZW50
PiBnZW5lcmF0b3IsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgICAgIDogbV9ncmFkaWVudChn
ZW5lcmF0b3IpCisgICAgeworICAgICAgICBzZXRDb250YWluZXJTaXplKHNpemUpOworICAgIH0K
KworcHJpdmF0ZToKKyAgICBSZWZQdHI8R3JhZGllbnQ+IG1fZ3JhZGllbnQ7CisgICAgT3duUHRy
PEltYWdlQnVmZmVyPiBtX2NhY2hlZEltYWdlQnVmZmVyOworICAgIEludFNpemUgbV9jYWNoZWRB
ZGp1c3RlZFNpemU7CisgICAgdW5zaWduZWQgbV9jYWNoZWRHZW5lcmF0b3JIYXNoOworfTsKKwor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCmluZGV4
IGIxN2Q5ODMuLjk4N2E1NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2UuaApAQCAtODgsNyArODgsNyBAQCBjbGFzcyBJbWFnZU9ic2VydmVyOwogY2xhc3MgSW1hZ2Ug
OiBwdWJsaWMgUmVmQ291bnRlZDxJbWFnZT4gewogICAgIGZyaWVuZCBjbGFzcyBHZW5lcmF0ZWRJ
bWFnZTsKICAgICBmcmllbmQgY2xhc3MgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U7Ci0gICAgZnJp
ZW5kIGNsYXNzIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlOworICAgIGZyaWVuZCBjbGFzcyBHcmFk
aWVudEltYWdlOwogICAgIGZyaWVuZCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAKIHB1YmxpYzoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4
IDlmNTcxOTIuLjc0ZmUyZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXIuaApAQCAtMTUwLDcgKzE1MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgZnJpZW5kIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKICAgICAgICAgZnJpZW5kIGNs
YXNzIEdlbmVyYXRlZEltYWdlOwogICAgICAgICBmcmllbmQgY2xhc3MgQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2U7Ci0gICAgICAgIGZyaWVuZCBjbGFzcyBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTsK
KyAgICAgICAgZnJpZW5kIGNsYXNzIEdyYWRpZW50SW1hZ2U7CiAKICAgICBwcml2YXRlOgogICAg
ICAgICBJbWFnZUJ1ZmZlckRhdGEgbV9kYXRhOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212128</attachid>
            <date>2013-09-19 22:35:56 -0700</date>
            <delta_ts>2013-09-21 20:28:32 -0700</delta_ts>
            <desc>style</desc>
            <filename>gradientimage.diff</filename>
            <type>text/plain</type>
            <size>33400</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMGE1MWZjOC4uYjM4NTI3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE5MDMsOSArMTkwMyw5IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9MYXlvdXRCb3hFeHRlbnQuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
TGF5b3V0UmVjdC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5jcHAK
LSAgICBwbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9HbHlwaFBhZ2VUcmVlTm9kZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFkaWVudC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmNw
cAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXJBbmltYXRpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQyNTU2Yi4uODM5ZWI4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEzLTA5LTE5ICBUaW0gSG9ydG9uICA8dGltb3Ro
eV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlIHNo
b3VsZCBiZSBjYWxsZWQgR3JhZGllbnRJbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMDg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBqdXN0IGEgcmVmYWN0b3IuCisKKyAg
ICAgICAgcjE1MDA1MyByZW1vdmVkIHRoZSBjb25jZXB0IG9mIGEgR2VuZXJhdG9yLCBtYWtpbmcg
R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UKKyAgICAgICAgdGFrZSBhIEdyYWRpZW50LiBUaGlzIGxl
YXZlcyBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZSdzIG5hbWUgbm90IG1ha2luZyBhCisgICAgICAg
IHdob2xlIGxvdCBvZiBzZW5zZSwgc28gbGV0J3MgcmVuYW1lIGl0IHRvIEdyYWRpZW50SW1hZ2Uu
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0
LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGNzcy9DU1NHcmFkaWVudFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0dyYWRpZW50VmFsdWU6OmltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuY3Bw
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9y
R2VuZXJhdGVkSW1hZ2UuY3BwLgorICAgICAgICAoV2ViQ29yZTo6R3JhZGllbnRJbWFnZTo6ZHJh
dyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFkaWVudEltYWdlOjpkcmF3UGF0dGVybik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5oOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIFJlbmFtZS4KKworICAgICAgICAqIGNz
cy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdl
R2VuZXJhdG9yVmFsdWU6OmNhY2hlZEltYWdlRm9yU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NJbWFnZUdlbmVyYXRvclZhbHVlOjpzYXZlQ2FjaGVkSW1hZ2VGb3JTaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OkNhY2hlZEdlbmVyYXRlZEltYWdlOjpD
YWNoZWRHZW5lcmF0ZWRJbWFnZSk6CisgICAgICAgICogY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFs
dWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OkNhY2hlZEdl
bmVyYXRlZEltYWdlOjppbWFnZSk6CisgICAgICAgIERyaXZlLWJ5LCB0aGUgQ1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZSBnZW5lcmF0ZWQgaW1hZ2UgY2FjaGUgc2hvdWxkIGJlCisgICAgICAgIGluIHRl
cm1zIG9mIEdlbmVyYXRlZEltYWdlLCBub3QgYSByYW5kb20gc3ViY2xhc3MsIHJlZ2FyZGxlc3MK
KyAgICAgICAgb2YgdGhlIGZhY3QgdGhhdCBpdCdzIG9ubHkgdXNlZCBmb3IgR3JhZGllbnRJbWFn
ZSBhcyBvZiB5ZXQuCisKIDIwMTMtMDktMTkgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiB1cGRhdGUgTWVkaWFTdHJlYW1U
cmFja0V2ZW50IG9iamVjdCB0byBtYXRjaCBzcGVjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCBjMmY5ZmVmLi5hMzcyYjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
QEAgLTU4MzUsOCArNTgzNSw2IEBAIHBsYXRmb3JtX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRXaWR0aFZhcmlhbnQuaCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oIFwKLQlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAgXAotCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoLmggXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoQnVmZmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5oIFwKQEAgLTU4NDUsNiArNTg0Myw4IEBAIHBs
YXRmb3JtX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ds
eXBoUGFnZVRyZWVOb2RlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YWRpZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQu
aCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5jcHAg
XAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuaCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCmluZGV4IGVkNWIyNGIuLjYzYTFkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtOTkzLDkgKzk5Myw5
IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0xheW91dEJveEV4dGVudC5j
cHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0xheW91dFJlY3QuY3BwIFwKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5jcHAgXAotICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dl
bmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQ
YWdlVHJlZU5vZGUuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5jcHAgXAor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuY3BwIFwKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckFuaW1h
dGlvbi5jcHAgXApAQCAtMjE5NCwxMCArMjE5NCwxMCBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmggXAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRNZXRyaWNzLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaCBcCi0gICAg
cGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCBcCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR2x5
cGhQYWdlVHJlZU5vZGUuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaCBcCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5oIFwKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NM
YXllci5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQW5pbWF0aW9uLmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5k
ZXggMTgxZTRhMS4uZTFjYWQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCkBAIC03NjMzLDkgKzc2MzMsOSBAQAogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGb250UGxhdGZv
cm1EYXRhLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBo
aWNzXEdlbmVyYXRlZEltYWdlLmNwcCIgLz4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXGdyYXBoaWNzXEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEdseXBoUGFnZVRyZWVOb2RlLmNw
cCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEdyYWRp
ZW50LmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNz
XEdyYWRpZW50SW1hZ2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZv
cm1cZ3JhcGhpY3NcR3JhcGhpY3NDb250ZXh0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEdyYXBoaWNzTGF5ZXIuY3BwIiAvPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcR3JhcGhpY3NMYXllclVwZGF0ZXIu
Y3BwIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDVmMGQ0ODUuLjg2NjRhZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMK
QEAgLTEzNTksMTUgKzEzNTksMTUgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRm
b3JtXGdyYXBoaWNzXEZsb2F0UXVhZC5jcHAiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFw
aGljczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccGxhdGZvcm1cZ3JhcGhpY3NcR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwIj4KLSAgICAg
IDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEdseXBoUGFnZVRyZWVO
b2RlLmNwcCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzPC9GaWx0ZXI+CiAgICAg
PC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xHcmFkaWVudC5jcHAiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFwaGljczwvRmlsdGVy
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1c
Z3JhcGhpY3NcR3JhZGllbnRJbWFnZS5jcHAiPgorICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFw
aGljczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccGxhdGZvcm1cZ3JhcGhpY3NcR3JhcGhpY3NDb250ZXh0LmNwcCI+CiAgICAgICA8RmlsdGVy
PnBsYXRmb3JtXGdyYXBoaWNzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTg3NGU3
ZC4uNWM5ZjMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtOTA2LDggKzkwNiw4IEBACiAJCTJENDZGMDUwMTdCOTZGRDIwMDU2
NDdGMCAvKiBJbnRTaXplLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJENDZGMDRGMTdCOTZGRDIwMDU2NDdGMCAvKiBJbnRTaXplLmNwcCAqLzsgfTsK
IAkJMkQ0ODFGMDAxNDZCNUM0QzAwQUE3ODM0IC8qIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMkZDMDU0
MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAgKi87IH07CiAJ
CTJENDgxRjAyMTQ2QjVDNTUwMEFBNzgzNCAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyRkMwNTUxNDYw
Q0Q2RjAwMjYzNjMzIC8qIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmggKi87IH07Ci0JCTJENDgx
RjAzMTQ2QjVDNjUwMEFBNzgzNCAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDJGQzA1NjE0NjBDRDZG
MDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwICovOyB9OwotCQkyRDQ4MUYw
NDE0NkI1QzZCMDBBQTc4MzQgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMkZDMDU3MTQ2MENENkYwMDI2
MzYzMyAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oICovOyB9OworCQkyRDQ4MUYwMzE0NkI1
QzY1MDBBQTc4MzQgLyogR3JhZGllbnRJbWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDJGQzA1NjE0NjBDRDZGMDAyNjM2MzMgLyogR3JhZGll
bnRJbWFnZS5jcHAgKi87IH07CisJCTJENDgxRjA0MTQ2QjVDNkIwMEFBNzgzNCAvKiBHcmFkaWVu
dEltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RDJGQzA1NzE0NjBDRDZGMDAyNjM2MzMgLyogR3JhZGllbnRJbWFnZS5oICovOyB9OwogCQkyRDVB
NTkyRjE1MjUyNTIzMDAzNkVFNTEgLyogSW1hZ2VPcmllbnRhdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODc0OEQ3NDEyQ0MzRjg5MDAxRkJB
NDEgLyogSW1hZ2VPcmllbnRhdGlvbi5jcHAgKi87IH07CiAJCTJENUE1OTMxMTUyNTI1RDAwMDM2
RUU1MSAvKiBJbWFnZU9yaWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODc0OEQ2NjEyQ0MzNzYzMDAxRkJBNDEgLyogSW1hZ2VPcmllbnRh
dGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTJENUJDNDI3MTZGODgyRUUwMDcwNDhEMCAvKiBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDVCQzQy
NTE2Rjg4MkJFMDA3MDQ4RDAgLyogU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oICovOyB9
OwpAQCAtNzM4NCw4ICs3Mzg0LDggQEAKIAkJMkJFOEUyQzgxMkE1OEEwMTAwRkFENTUwIC8qIEhU
TUxNZXRhQ2hhcnNldFBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuY3BwOyBwYXRoID0gcGFyc2VyL0hUTUxNZXRhQ2hh
cnNldFBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMkZDMDU0MTQ2
MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMkZDMDU1MTQ2MENENkYwMDI2MzYzMyAvKiBD
cm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkyRDJGQzA1NjE0NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VuZXJhdG9yR2VuZXJhdGVk
SW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRDJGQzA1NzE0NjBDRDZG
MDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMkQyRkMwNTYxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdyYWRpZW50SW1hZ2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhZGllbnRJbWFnZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMkZDMDU3MTQ2MENENkYwMDI2MzYz
MyAvKiBHcmFkaWVudEltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdy
YWRpZW50SW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQzQTBFMzUxM0E3
RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTVkdQYXJzaW5nRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkQ0NkYwNEQxN0I5NkZCRDAwNTY0N0YwIC8qIEludFBvaW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEludFBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMkQ0NkYwNEYxN0I5NkZEMjAwNTY0N0YwIC8qIEludFNpemUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW50U2l6ZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xODkwNiw4ICsxODkwNiw4IEBACiAJCQkJQkNFNDQxMzUxMkY3
NDkwQjAwOUI4NEI4IC8qIEZvbnRXaWR0aFZhcmlhbnQuaCAqLywKIAkJCQk0RkIzOTBBQzE1RUY2
MUYzMDA3QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2UuY3BwICovLAogCQkJCUJDMjNGMERBMERBRkY0
QTQwMDlGREM5MSAvKiBHZW5lcmF0ZWRJbWFnZS5oICovLAotCQkJCTJEMkZDMDU2MTQ2MENENkYw
MDI2MzYzMyAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAgKi8sCi0JCQkJMkQyRkMwNTcx
NDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggKi8sCisJCQkJMkQy
RkMwNTYxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdyYWRpZW50SW1hZ2UuY3BwICovLAorCQkJCTJEMkZD
MDU3MTQ2MENENkYwMDI2MzYzMyAvKiBHcmFkaWVudEltYWdlLmggKi8sCiAJCQkJMDg2QkJEMEUx
MzYwMzlDMjAwOEIxNUQ4IC8qIEdseXBoLmggKi8sCiAJCQkJQjJDM0RBNUIwRDAwNkNENjAwRUY2
RjI2IC8qIEdseXBoQnVmZmVyLmggKi8sCiAJCQkJQzVENEFBNzgxMTZCQUZCNjAwNjlDQTkzIC8q
IEdseXBoTWV0cmljc01hcC5oICovLApAQCAtMjI0ODUsNyArMjI0ODUsNyBAQAogCQkJCTE0MzJF
ODQ3MEM1MTQ5MzgwMEIxNTAwRiAvKiBHQ0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUMwQzA1NENDMTExOEM4RTQwMENFMjYzNiAvKiBnZW5lcmF0ZS1iaW5kaW5ncy5wbCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDMjNGMERCMERBRkY0QTQwMDlGREM5MSAvKiBHZW5lcmF0ZWRJbWFnZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMkQ0ODFGMDQxNDZCNUM2QjAwQUE3ODM0IC8qIEdlbmVyYXRv
ckdlbmVyYXRlZEltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQkyRDQ4MUYwNDE0NkI1QzZCMDBB
QTc4MzQgLyogR3JhZGllbnRJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDcyMEIwQTExNEQz
MzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
NzQ2QUYyNDE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTk3NDZBRjI1MTRGNERERTYwMDNFN0E3MSAvKiBHZW9sb2NhdGlvbkNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNTc1OSw3ICsyNTc1OSw3IEBACiAJCQkJRkQzMTYwMEMxMkIwMjY3NjAw
QzFBMzU5IC8qIEdhaW5Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MzJFODQ5MEM1MTQ5
M0YwMEIxNTAwRiAvKiBHQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEZCMzkw
QUQxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCTJENDgxRjAzMTQ2QjVDNjUwMEFBNzgzNCAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkyRDQ4MUYwMzE0NkI1QzY1MDBBQTc4MzQgLyogR3JhZGll
bnRJbWFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzIwQjBBMDE0RDMzMjM1MDA2NDI5NTUg
LyogR2VuZXJpY0V2ZW50UXVldWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc0NkFGMjMxNEY0
RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NDZB
RjI2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKaW5kZXggZjYwYTY2
Yi4uODA0ZTg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcApAQCAt
MjgsOCArMjgsOCBAQAogCiAjaW5jbHVkZSAiQ1NTQ2FsY3VsYXRpb25WYWx1ZS5oIgogI2luY2x1
ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKLSNpbmNsdWRlICJHZW5lcmF0b3JHZW5lcmF0ZWRJbWFn
ZS5oIgogI2luY2x1ZGUgIkdyYWRpZW50LmgiCisjaW5jbHVkZSAiR3JhZGllbnRJbWFnZS5oIgog
I2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIkludFNp
emVIYXNoLmgiCkBAIC02Nyw3ICs2Nyw3IEBAIFBhc3NSZWZQdHI8SW1hZ2U+IENTU0dyYWRpZW50
VmFsdWU6OmltYWdlKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IEludFNpemUmCiAgICAg
ICAgIGdyYWRpZW50ID0gc3RhdGljX2Nhc3Q8Q1NTUmFkaWFsR3JhZGllbnRWYWx1ZSo+KHRoaXMp
LT5jcmVhdGVHcmFkaWVudChyZW5kZXJlciwgc2l6ZSk7CiAgICAgfQogCi0gICAgUmVmUHRyPEdl
bmVyYXRvckdlbmVyYXRlZEltYWdlPiBuZXdJbWFnZSA9IEdlbmVyYXRvckdlbmVyYXRlZEltYWdl
OjpjcmVhdGUoZ3JhZGllbnQsIHNpemUpOworICAgIFJlZlB0cjxHcmFkaWVudEltYWdlPiBuZXdJ
bWFnZSA9IEdyYWRpZW50SW1hZ2U6OmNyZWF0ZShncmFkaWVudCwgc2l6ZSk7CiAgICAgaWYgKGNh
Y2hlYWJsZSkKICAgICAgICAgc2F2ZUNhY2hlZEltYWdlRm9yU2l6ZShzaXplLCBuZXdJbWFnZSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmNwcAppbmRl
eCBhZmEyNjcxLi5lNWE0ZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1h
Z2VHZW5lcmF0b3JWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlR2Vu
ZXJhdG9yVmFsdWUuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgQ1NTSW1hZ2VHZW5lcmF0b3JW
YWx1ZTo6cmVtb3ZlQ2xpZW50KFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgZGVyZWYoKTsK
IH0KIAotR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UqIENTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OmNh
Y2hlZEltYWdlRm9yU2l6ZShJbnRTaXplIHNpemUpCitHZW5lcmF0ZWRJbWFnZSogQ1NTSW1hZ2VH
ZW5lcmF0b3JWYWx1ZTo6Y2FjaGVkSW1hZ2VGb3JTaXplKEludFNpemUgc2l6ZSkKIHsKICAgICBp
ZiAoc2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiAwOwpAQCAtNzcsNyArNzcsNyBAQCBH
ZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZSogQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6Y2FjaGVkSW1h
Z2VGb3JTaXplKEludFNpemUgc2l6ZQogICAgIHJldHVybiBjYWNoZWRHZW5lcmF0ZWRJbWFnZS0+
aW1hZ2UoKTsKIH0KIAotdm9pZCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpzYXZlQ2FjaGVkSW1h
Z2VGb3JTaXplKEludFNpemUgc2l6ZSwgUGFzc1JlZlB0cjxHZW5lcmF0b3JHZW5lcmF0ZWRJbWFn
ZT4gaW1hZ2UpCit2b2lkIENTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OnNhdmVDYWNoZWRJbWFnZUZv
clNpemUoSW50U2l6ZSBzaXplLCBQYXNzUmVmUHRyPEdlbmVyYXRlZEltYWdlPiBpbWFnZSkKIHsK
ICAgICBBU1NFUlQoIW1faW1hZ2VzLmNvbnRhaW5zKHNpemUpKTsKICAgICBtX2ltYWdlcy5hZGQo
c2l6ZSwgYWRvcHRQdHIobmV3IENhY2hlZEdlbmVyYXRlZEltYWdlKCp0aGlzLCBzaXplLCBpbWFn
ZSkpKTsKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpldmlj
dENhY2hlZEdlbmVyYXRlZEltYWdlKEludFNpemUgc2l6ZSkKICAgICBtX2ltYWdlcy5yZW1vdmUo
c2l6ZSk7CiB9CiAKLUNTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OkNhY2hlZEdlbmVyYXRlZEltYWdl
OjpDYWNoZWRHZW5lcmF0ZWRJbWFnZShDU1NJbWFnZUdlbmVyYXRvclZhbHVlJiBvd25lciwgSW50
U2l6ZSBzaXplLCBQYXNzUmVmUHRyPEdlbmVyYXRvckdlbmVyYXRlZEltYWdlPiBpbWFnZSkKK0NT
U0ltYWdlR2VuZXJhdG9yVmFsdWU6OkNhY2hlZEdlbmVyYXRlZEltYWdlOjpDYWNoZWRHZW5lcmF0
ZWRJbWFnZShDU1NJbWFnZUdlbmVyYXRvclZhbHVlJiBvd25lciwgSW50U2l6ZSBzaXplLCBQYXNz
UmVmUHRyPEdlbmVyYXRlZEltYWdlPiBpbWFnZSkKICAgICA6IG1fb3duZXIob3duZXIpCiAgICAg
LCBtX3NpemUoc2l6ZSkKICAgICAsIG1faW1hZ2UoaW1hZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaAppbmRleCBhYmI1OTkyLi42OGU4YTgyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmgKQEAgLTI4LDcgKzI4LDcg
QEAKIAogI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKLSNp
bmNsdWRlICJHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oIgorI2luY2x1ZGUgIkdlbmVyYXRlZElt
YWdlLmgiCiAjaW5jbHVkZSAiSW50U2l6ZUhhc2guaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgpAQCAtMzcsNyArMzcsNyBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRSZXNvdXJjZUxvYWRlcjsKLWNsYXNzIEdlbmVyYXRv
ckdlbmVyYXRlZEltYWdlOworY2xhc3MgR2VuZXJhdGVkSW1hZ2U7CiBjbGFzcyBSZW5kZXJPYmpl
Y3Q7CiBjbGFzcyBTdHlsZVJlc29sdmVyOwogCkBAIC02MSw4ICs2MSw4IEBAIHB1YmxpYzoKIHBy
b3RlY3RlZDoKICAgICBDU1NJbWFnZUdlbmVyYXRvclZhbHVlKENsYXNzVHlwZSk7CiAKLSAgICBH
ZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZSogY2FjaGVkSW1hZ2VGb3JTaXplKEludFNpemUpOwotICAg
IHZvaWQgc2F2ZUNhY2hlZEltYWdlRm9yU2l6ZShJbnRTaXplLCBQYXNzUmVmUHRyPEdlbmVyYXRv
ckdlbmVyYXRlZEltYWdlPik7CisgICAgR2VuZXJhdGVkSW1hZ2UqIGNhY2hlZEltYWdlRm9yU2l6
ZShJbnRTaXplKTsKKyAgICB2b2lkIHNhdmVDYWNoZWRJbWFnZUZvclNpemUoSW50U2l6ZSwgUGFz
c1JlZlB0cjxHZW5lcmF0ZWRJbWFnZT4pOwogICAgIGNvbnN0IEhhc2hDb3VudGVkU2V0PFJlbmRl
ck9iamVjdCo+JiBjbGllbnRzKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRzOyB9CiAKICAgICAv
LyBIZWxwZXIgZnVuY3Rpb25zIGZvciBDcm9zc2ZhZGUgYW5kIEZpbHRlci4KQEAgLTcyLDggKzcy
LDggQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBjbGFzcyBDYWNoZWRHZW5lcmF0ZWRJbWFn
ZSB7CiAgICAgcHVibGljOgotICAgICAgICBDYWNoZWRHZW5lcmF0ZWRJbWFnZShDU1NJbWFnZUdl
bmVyYXRvclZhbHVlJiwgSW50U2l6ZSwgUGFzc1JlZlB0cjxHZW5lcmF0b3JHZW5lcmF0ZWRJbWFn
ZT4pOwotICAgICAgICBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZSogaW1hZ2UoKSB7IHJldHVybiBt
X2ltYWdlLmdldCgpOyB9CisgICAgICAgIENhY2hlZEdlbmVyYXRlZEltYWdlKENTU0ltYWdlR2Vu
ZXJhdG9yVmFsdWUmLCBJbnRTaXplLCBQYXNzUmVmUHRyPEdlbmVyYXRlZEltYWdlPik7CisgICAg
ICAgIEdlbmVyYXRlZEltYWdlKiBpbWFnZSgpIHsgcmV0dXJuIG1faW1hZ2UuZ2V0KCk7IH0KICAg
ICAgICAgdm9pZCBwdW50RXZpY3Rpb25UaW1lcigpIHsgbV9ldmljdGlvblRpbWVyLnJlc3RhcnQo
KTsgfQogCiAgICAgcHJpdmF0ZToKQEAgLTgxLDcgKzgxLDcgQEAgcHJpdmF0ZToKIAogICAgICAg
ICBDU1NJbWFnZUdlbmVyYXRvclZhbHVlJiBtX293bmVyOwogICAgICAgICBJbnRTaXplIG1fc2l6
ZTsKLSAgICAgICAgUmVmUHRyPEdlbmVyYXRvckdlbmVyYXRlZEltYWdlPiBtX2ltYWdlOworICAg
ICAgICBSZWZQdHI8R2VuZXJhdGVkSW1hZ2U+IG1faW1hZ2U7CiAgICAgICAgIERlZmVycmFibGVP
bmVTaG90VGltZXI8Q2FjaGVkR2VuZXJhdGVkSW1hZ2U+IG1fZXZpY3Rpb25UaW1lcjsKICAgICB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJ
bWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaApp
bmRleCBiZGE5MWI5Li4yMGZlNDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0JpdG1hcEltYWdlLmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiBjbGFzcyBC
aXRtYXBJbWFnZSBGSU5BTCA6IHB1YmxpYyBJbWFnZSB7CiAgICAgZnJpZW5kIGNsYXNzIEdlbmVy
YXRlZEltYWdlOwogICAgIGZyaWVuZCBjbGFzcyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTsKLSAg
ICBmcmllbmQgY2xhc3MgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U7CisgICAgZnJpZW5kIGNsYXNz
IEdyYWRpZW50SW1hZ2U7CiAgICAgZnJpZW5kIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxCaXRtYXBJbWFnZT4gY3JlYXRlKFBhc3NOYXRpdmVJ
bWFnZVB0ciBuYXRpdmVJbWFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIgPSAwKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVk
SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2Vu
ZXJhdGVkSW1hZ2UuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NTczMjNjLi4w
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdl
bmVyYXRlZEltYWdlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCIKLQotI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgot
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgIkxlbmd0aC5oIgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXcoR3Jh
cGhpY3NDb250ZXh0KiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21w
b3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKLXsKLSAgICBHcmFwaGljc0NvbnRleHRTdGF0
ZVNhdmVyIHN0YXRlU2F2ZXIoKmRlc3RDb250ZXh0KTsKLSAgICBkZXN0Q29udGV4dC0+c2V0Q29t
cG9zaXRlT3BlcmF0aW9uKGNvbXBvc2l0ZU9wLCBibGVuZE1vZGUpOwotICAgIGRlc3RDb250ZXh0
LT5jbGlwKGRlc3RSZWN0KTsKLSAgICBkZXN0Q29udGV4dC0+dHJhbnNsYXRlKGRlc3RSZWN0Lngo
KSwgZGVzdFJlY3QueSgpKTsKLSAgICBpZiAoZGVzdFJlY3Quc2l6ZSgpICE9IHNyY1JlY3Quc2l6
ZSgpKQotICAgICAgICBkZXN0Q29udGV4dC0+c2NhbGUoRmxvYXRTaXplKGRlc3RSZWN0LndpZHRo
KCkgLyBzcmNSZWN0LndpZHRoKCksIGRlc3RSZWN0LmhlaWdodCgpIC8gc3JjUmVjdC5oZWlnaHQo
KSkpOwotICAgIGRlc3RDb250ZXh0LT50cmFuc2xhdGUoLXNyY1JlY3QueCgpLCAtc3JjUmVjdC55
KCkpOwotICAgIGRlc3RDb250ZXh0LT5maWxsUmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBz
aXplKCkpLCAqbV9ncmFkaWVudC5nZXQoKSk7Ci19Ci0KLXZvaWQgR2VuZXJhdG9yR2VuZXJhdGVk
SW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCogZGVzdENvbnRleHQsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3Jt
LAotICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFj
ZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIEJsZW5kTW9kZSkKLXsKLSAgICAvLyBBbGxvdyB0aGUgZ2VuZXJhdG9yIHRvIHByb3ZpZGUg
dmlzdWFsbHktZXF1aXZhbGVudCB0aWxpbmcgcGFyYW1ldGVycyBmb3IgYmV0dGVyIHBlcmZvcm1h
bmNlLgotICAgIEludFNpemUgYWRqdXN0ZWRTaXplID0gc2l6ZSgpOwotICAgIEZsb2F0UmVjdCBh
ZGp1c3RlZFNyY1JlY3QgPSBzcmNSZWN0OwotICAgIG1fZ3JhZGllbnQtPmFkanVzdFBhcmFtZXRl
cnNGb3JUaWxlZERyYXdpbmcoYWRqdXN0ZWRTaXplLCBhZGp1c3RlZFNyY1JlY3QpOwotCi0gICAg
Ly8gRmFjdG9yIGluIHRoZSBkZXN0aW5hdGlvbiBjb250ZXh0J3Mgc2NhbGUgdG8gZ2VuZXJhdGUg
YXQgdGhlIGJlc3QgcmVzb2x1dGlvbgotICAgIEFmZmluZVRyYW5zZm9ybSBkZXN0Q29udGV4dENU
TSA9IGRlc3RDb250ZXh0LT5nZXRDVE0oR3JhcGhpY3NDb250ZXh0OjpEZWZpbml0ZWx5SW5jbHVk
ZURldmljZVNjYWxlKTsKLSAgICBkb3VibGUgeFNjYWxlID0gZmFicyhkZXN0Q29udGV4dENUTS54
U2NhbGUoKSk7Ci0gICAgZG91YmxlIHlTY2FsZSA9IGZhYnMoZGVzdENvbnRleHRDVE0ueVNjYWxl
KCkpOwotICAgIEFmZmluZVRyYW5zZm9ybSBhZGp1c3RlZFBhdHRlcm5DVE0gPSBwYXR0ZXJuVHJh
bnNmb3JtOwotICAgIGFkanVzdGVkUGF0dGVybkNUTS5zY2FsZSgxLjAgLyB4U2NhbGUsIDEuMCAv
IHlTY2FsZSk7Ci0gICAgYWRqdXN0ZWRTcmNSZWN0LnNjYWxlKHhTY2FsZSwgeVNjYWxlKTsKLQot
ICAgIHVuc2lnbmVkIGdlbmVyYXRvckhhc2ggPSBtX2dyYWRpZW50LT5oYXNoKCk7Ci0KLSAgICBp
ZiAoIW1fY2FjaGVkSW1hZ2VCdWZmZXIgfHwgbV9jYWNoZWRHZW5lcmF0b3JIYXNoICE9IGdlbmVy
YXRvckhhc2ggfHwgbV9jYWNoZWRBZGp1c3RlZFNpemUgIT0gYWRqdXN0ZWRTaXplIHx8ICFkZXN0
Q29udGV4dC0+aXNDb21wYXRpYmxlV2l0aEJ1ZmZlcihtX2NhY2hlZEltYWdlQnVmZmVyLmdldCgp
KSkgewotICAgICAgICBtX2NhY2hlZEltYWdlQnVmZmVyID0gZGVzdENvbnRleHQtPmNyZWF0ZUNv
bXBhdGlibGVCdWZmZXIoYWRqdXN0ZWRTaXplLCBtX2dyYWRpZW50LT5oYXNBbHBoYSgpKTsKLSAg
ICAgICAgaWYgKCFtX2NhY2hlZEltYWdlQnVmZmVyKQotICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgIC8vIEZpbGwgd2l0aCB0aGUgZ2VuZXJhdGVkIGltYWdlLgotICAgICAgICBtX2NhY2hl
ZEltYWdlQnVmZmVyLT5jb250ZXh0KCktPmZpbGxSZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50KCks
IGFkanVzdGVkU2l6ZSksICptX2dyYWRpZW50KTsKLQotICAgICAgICBtX2NhY2hlZEdlbmVyYXRv
ckhhc2ggPSBnZW5lcmF0b3JIYXNoOwotICAgICAgICBtX2NhY2hlZEFkanVzdGVkU2l6ZSA9IGFk
anVzdGVkU2l6ZTsKLSAgICB9Ci0KLSAgICBtX2NhY2hlZEltYWdlQnVmZmVyLT5zZXRTcGFjZVNp
emUoc3BhY2VTaXplKCkpOwotICAgIC8vIFRpbGUgdGhlIGltYWdlIGJ1ZmZlciBpbnRvIHRoZSBj
b250ZXh0LgotICAgIG1fY2FjaGVkSW1hZ2VCdWZmZXItPmRyYXdQYXR0ZXJuKGRlc3RDb250ZXh0
LCBhZGp1c3RlZFNyY1JlY3QsIGFkanVzdGVkUGF0dGVybkNUTSwgcGhhc2UsIHN0eWxlQ29sb3JT
cGFjZSwgY29tcG9zaXRlT3AsIGRlc3RSZWN0KTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyMTRhMDQuLjAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaAor
KysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgs
IDIwMTIsIDIwMTMgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2lmbmRlZiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZV9oCi0jZGVmaW5lIEdlbmVyYXRv
ckdlbmVyYXRlZEltYWdlX2gKLQotI2luY2x1ZGUgIkdlbmVyYXRlZEltYWdlLmgiCi0jaW5jbHVk
ZSAiR3JhZGllbnQuaCIKLSNpbmNsdWRlICJJbWFnZS5oIgotI2luY2x1ZGUgIkltYWdlQnVmZmVy
LmgiCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZSBGSU5BTCA6
IHB1YmxpYyBHZW5lcmF0ZWRJbWFnZSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U+IGNyZWF0ZShQYXNzUmVmUHRyPEdyYWRpZW50PiBnZW5l
cmF0b3IsIGNvbnN0IEludFNpemUmIHNpemUpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEdlbmVyYXRvckdlbmVyYXRlZEltYWdlKGdlbmVyYXRvciwgc2l6ZSkpOwotICAgIH0K
LQotICAgIHZpcnR1YWwgfkdlbmVyYXRvckdlbmVyYXRlZEltYWdlKCkgeyB9Ci0KLXByb3RlY3Rl
ZDoKLSAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJl
Y3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNv
bG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKLSAgICAg
ICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBD
b21wb3NpdGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgQmxlbmRNb2RlKSBP
VkVSUklERTsKLQotICAgIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlKFBhc3NSZWZQdHI8R3JhZGll
bnQ+IGdlbmVyYXRvciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKLSAgICAgICAgOiBtX2dyYWRpZW50
KGdlbmVyYXRvcikKLSAgICB7Ci0gICAgICAgIHNldENvbnRhaW5lclNpemUoc2l6ZSk7Ci0gICAg
fQotCi1wcml2YXRlOgotICAgIFJlZlB0cjxHcmFkaWVudD4gbV9ncmFkaWVudDsKLSAgICBPd25Q
dHI8SW1hZ2VCdWZmZXI+IG1fY2FjaGVkSW1hZ2VCdWZmZXI7Ci0gICAgSW50U2l6ZSBtX2NhY2hl
ZEFkanVzdGVkU2l6ZTsKLSAgICB1bnNpZ25lZCBtX2NhY2hlZEdlbmVyYXRvckhhc2g7Ci19Owot
Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhZGllbnRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFkaWVudEltYWdlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjg5
MTZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhZGllbnRJbWFnZS5jcHAKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOCwgMjAwOSwgMjAxMCwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHcmFkaWVudElt
YWdlLmgiCisKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRl
eHQuaCIKKyNpbmNsdWRlICJMZW5ndGguaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lk
IEdyYWRpZW50SW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBkZXN0Q29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNl
LCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKK3sK
KyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmRlc3RDb250ZXh0KTsK
KyAgICBkZXN0Q29udGV4dC0+c2V0Q29tcG9zaXRlT3BlcmF0aW9uKGNvbXBvc2l0ZU9wLCBibGVu
ZE1vZGUpOworICAgIGRlc3RDb250ZXh0LT5jbGlwKGRlc3RSZWN0KTsKKyAgICBkZXN0Q29udGV4
dC0+dHJhbnNsYXRlKGRlc3RSZWN0LngoKSwgZGVzdFJlY3QueSgpKTsKKyAgICBpZiAoZGVzdFJl
Y3Quc2l6ZSgpICE9IHNyY1JlY3Quc2l6ZSgpKQorICAgICAgICBkZXN0Q29udGV4dC0+c2NhbGUo
RmxvYXRTaXplKGRlc3RSZWN0LndpZHRoKCkgLyBzcmNSZWN0LndpZHRoKCksIGRlc3RSZWN0Lmhl
aWdodCgpIC8gc3JjUmVjdC5oZWlnaHQoKSkpOworICAgIGRlc3RDb250ZXh0LT50cmFuc2xhdGUo
LXNyY1JlY3QueCgpLCAtc3JjUmVjdC55KCkpOworICAgIGRlc3RDb250ZXh0LT5maWxsUmVjdChG
bG9hdFJlY3QoRmxvYXRQb2ludCgpLCBzaXplKCkpLCAqbV9ncmFkaWVudC5nZXQoKSk7Cit9CisK
K3ZvaWQgR3JhZGllbnRJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiBkZXN0Q29u
dGV4dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBh
dHRlcm5UcmFuc2Zvcm0sCisgICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ug
c3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgQmxlbmRNb2RlKQoreworICAgIC8vIEFsbG93IHRoZSBnZW5lcmF0
b3IgdG8gcHJvdmlkZSB2aXN1YWxseS1lcXVpdmFsZW50IHRpbGluZyBwYXJhbWV0ZXJzIGZvciBi
ZXR0ZXIgcGVyZm9ybWFuY2UuCisgICAgSW50U2l6ZSBhZGp1c3RlZFNpemUgPSBzaXplKCk7Cisg
ICAgRmxvYXRSZWN0IGFkanVzdGVkU3JjUmVjdCA9IHNyY1JlY3Q7CisgICAgbV9ncmFkaWVudC0+
YWRqdXN0UGFyYW1ldGVyc0ZvclRpbGVkRHJhd2luZyhhZGp1c3RlZFNpemUsIGFkanVzdGVkU3Jj
UmVjdCk7CisKKyAgICAvLyBGYWN0b3IgaW4gdGhlIGRlc3RpbmF0aW9uIGNvbnRleHQncyBzY2Fs
ZSB0byBnZW5lcmF0ZSBhdCB0aGUgYmVzdCByZXNvbHV0aW9uCisgICAgQWZmaW5lVHJhbnNmb3Jt
IGRlc3RDb250ZXh0Q1RNID0gZGVzdENvbnRleHQtPmdldENUTShHcmFwaGljc0NvbnRleHQ6OkRl
ZmluaXRlbHlJbmNsdWRlRGV2aWNlU2NhbGUpOworICAgIGRvdWJsZSB4U2NhbGUgPSBmYWJzKGRl
c3RDb250ZXh0Q1RNLnhTY2FsZSgpKTsKKyAgICBkb3VibGUgeVNjYWxlID0gZmFicyhkZXN0Q29u
dGV4dENUTS55U2NhbGUoKSk7CisgICAgQWZmaW5lVHJhbnNmb3JtIGFkanVzdGVkUGF0dGVybkNU
TSA9IHBhdHRlcm5UcmFuc2Zvcm07CisgICAgYWRqdXN0ZWRQYXR0ZXJuQ1RNLnNjYWxlKDEuMCAv
IHhTY2FsZSwgMS4wIC8geVNjYWxlKTsKKyAgICBhZGp1c3RlZFNyY1JlY3Quc2NhbGUoeFNjYWxl
LCB5U2NhbGUpOworCisgICAgdW5zaWduZWQgZ2VuZXJhdG9ySGFzaCA9IG1fZ3JhZGllbnQtPmhh
c2goKTsKKworICAgIGlmICghbV9jYWNoZWRJbWFnZUJ1ZmZlciB8fCBtX2NhY2hlZEdlbmVyYXRv
ckhhc2ggIT0gZ2VuZXJhdG9ySGFzaCB8fCBtX2NhY2hlZEFkanVzdGVkU2l6ZSAhPSBhZGp1c3Rl
ZFNpemUgfHwgIWRlc3RDb250ZXh0LT5pc0NvbXBhdGlibGVXaXRoQnVmZmVyKG1fY2FjaGVkSW1h
Z2VCdWZmZXIuZ2V0KCkpKSB7CisgICAgICAgIG1fY2FjaGVkSW1hZ2VCdWZmZXIgPSBkZXN0Q29u
dGV4dC0+Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihhZGp1c3RlZFNpemUsIG1fZ3JhZGllbnQtPmhh
c0FscGhhKCkpOworICAgICAgICBpZiAoIW1fY2FjaGVkSW1hZ2VCdWZmZXIpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgLy8gRmlsbCB3aXRoIHRoZSBnZW5lcmF0ZWQgaW1hZ2UuCisg
ICAgICAgIG1fY2FjaGVkSW1hZ2VCdWZmZXItPmNvbnRleHQoKS0+ZmlsbFJlY3QoRmxvYXRSZWN0
KEZsb2F0UG9pbnQoKSwgYWRqdXN0ZWRTaXplKSwgKm1fZ3JhZGllbnQpOworCisgICAgICAgIG1f
Y2FjaGVkR2VuZXJhdG9ySGFzaCA9IGdlbmVyYXRvckhhc2g7CisgICAgICAgIG1fY2FjaGVkQWRq
dXN0ZWRTaXplID0gYWRqdXN0ZWRTaXplOworICAgIH0KKworICAgIG1fY2FjaGVkSW1hZ2VCdWZm
ZXItPnNldFNwYWNlU2l6ZShzcGFjZVNpemUoKSk7CisgICAgLy8gVGlsZSB0aGUgaW1hZ2UgYnVm
ZmVyIGludG8gdGhlIGNvbnRleHQuCisgICAgbV9jYWNoZWRJbWFnZUJ1ZmZlci0+ZHJhd1BhdHRl
cm4oZGVzdENvbnRleHQsIGFkanVzdGVkU3JjUmVjdCwgYWRqdXN0ZWRQYXR0ZXJuQ1RNLCBwaGFz
ZSwgc3R5bGVDb2xvclNwYWNlLCBjb21wb3NpdGVPcCwgZGVzdFJlY3QpOworfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjc4YmEyYQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuaApAQCAtMCww
ICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEyLCAyMDEzIEFwcGxlIENv
bXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgR3JhZGll
bnRJbWFnZV9oCisjZGVmaW5lIEdyYWRpZW50SW1hZ2VfaAorCisjaW5jbHVkZSAiR2VuZXJhdGVk
SW1hZ2UuaCIKKyNpbmNsdWRlICJHcmFkaWVudC5oIgorI2luY2x1ZGUgIkltYWdlLmgiCisjaW5j
bHVkZSAiSW1hZ2VCdWZmZXIuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdyYWRpZW50SW1hZ2Ug
RklOQUwgOiBwdWJsaWMgR2VuZXJhdGVkSW1hZ2UgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEdyYWRpZW50SW1hZ2U+IGNyZWF0ZShQYXNzUmVmUHRyPEdyYWRpZW50PiBnZW5lcmF0
b3IsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEdyYWRpZW50SW1hZ2UoZ2VuZXJhdG9yLCBzaXplKSk7CisgICAgfQorCisgICAgdmlydHVh
bCB+R3JhZGllbnRJbWFnZSgpIHsgfQorCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2b2lkIGRy
YXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVy
YXRvciwgQmxlbmRNb2RlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4o
R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCisgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBo
YXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdFJlY3QsIEJsZW5kTW9kZSkgT1ZFUlJJREU7CisKKyAgICBHcmFkaWVu
dEltYWdlKFBhc3NSZWZQdHI8R3JhZGllbnQ+IGdlbmVyYXRvciwgY29uc3QgSW50U2l6ZSYgc2l6
ZSkKKyAgICAgICAgOiBtX2dyYWRpZW50KGdlbmVyYXRvcikKKyAgICB7CisgICAgICAgIHNldENv
bnRhaW5lclNpemUoc2l6ZSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxHcmFkaWVu
dD4gbV9ncmFkaWVudDsKKyAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IG1fY2FjaGVkSW1hZ2VCdWZm
ZXI7CisgICAgSW50U2l6ZSBtX2NhY2hlZEFkanVzdGVkU2l6ZTsKKyAgICB1bnNpZ25lZCBtX2Nh
Y2hlZEdlbmVyYXRvckhhc2g7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlLmgKaW5kZXggYjE3ZDk4My4uOTg3YTU2YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCkBAIC04OCw3ICs4OCw3IEBAIGNsYXNzIElt
YWdlT2JzZXJ2ZXI7CiBjbGFzcyBJbWFnZSA6IHB1YmxpYyBSZWZDb3VudGVkPEltYWdlPiB7CiAg
ICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRlZEltYWdlOwogICAgIGZyaWVuZCBjbGFzcyBDcm9zc2Zh
ZGVHZW5lcmF0ZWRJbWFnZTsKLSAgICBmcmllbmQgY2xhc3MgR2VuZXJhdG9yR2VuZXJhdGVkSW1h
Z2U7CisgICAgZnJpZW5kIGNsYXNzIEdyYWRpZW50SW1hZ2U7CiAgICAgZnJpZW5kIGNsYXNzIEdy
YXBoaWNzQ29udGV4dDsKIAogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggOWY1NzE5Mi4uNzRmZTJlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCkBAIC0xNTAsNyArMTUw
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBmcmllbmQgY2xhc3MgR3JhcGhpY3ND
b250ZXh0OwogICAgICAgICBmcmllbmQgY2xhc3MgR2VuZXJhdGVkSW1hZ2U7CiAgICAgICAgIGZy
aWVuZCBjbGFzcyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTsKLSAgICAgICAgZnJpZW5kIGNsYXNz
IEdlbmVyYXRvckdlbmVyYXRlZEltYWdlOworICAgICAgICBmcmllbmQgY2xhc3MgR3JhZGllbnRJ
bWFnZTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIEltYWdlQnVmZmVyRGF0YSBtX2RhdGE7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>