<?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>107743</bug_id>
          
          <creation_ts>2013-01-23 14:56:30 -0800</creation_ts>
          <short_desc>Add ASSERT_WITH_SECURITY_IMPLICATION to detect bad casts in rendering</short_desc>
          <delta_ts>2013-01-24 12:26:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Abhishek Arya">inferno</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbarton</cc>
    
    <cc>d-r</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fmalita</cc>
    
    <cc>mifenton</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>oliver</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tkent</cc>
    
    <cc>WebkitBugTracker</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>814693</commentid>
    <comment_count>0</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2013-01-23 14:56:30 -0800</bug_when>
    <thetext>Add ASSERT_WITH_SECURITY_IMPLICATION to detect bad casts in rendering</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814709</commentid>
    <comment_count>1</comment_count>
      <attachid>184322</attachid>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2013-01-23 15:02:18 -0800</bug_when>
    <thetext>Created attachment 184322
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814711</commentid>
    <comment_count>2</comment_count>
      <attachid>184322</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-23 15:03:29 -0800</bug_when>
    <thetext>Comment on attachment 184322
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814742</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-01-23 15:30:07 -0800</bug_when>
    <thetext>We have RELEASE_ASSERT now, why do we need another?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814747</commentid>
    <comment_count>4</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2013-01-23 15:32:46 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; We have RELEASE_ASSERT now, why do we need another?

cced you on https://bugs.webkit.org/show_bug.cgi?id=107699 for more context. We cannot enable these for release build by default because of performance implications. these need to enabled for fuzzing builds and also help people to identify and file these security vulnerabilities properly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814750</commentid>
    <comment_count>5</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-01-23 15:35:50 -0800</bug_when>
    <thetext>See I would say any assertion failure should imply security issues, maybe that&apos;s the problem...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814751</commentid>
    <comment_count>6</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2013-01-23 15:38:42 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; See I would say any assertion failure should imply security issues, maybe that&apos;s the problem...

Any assertion failure does not indicate a security issue. We have ton of asserts for functionality checks, null checks, etc, those are just crashers, wrong renderings, etc. The places where we are adding these ASSERT_WITH_SECURITY_IMPLICATION are 100% sure shot security bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814997</commentid>
    <comment_count>7</comment_count>
      <attachid>184322</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-23 20:15:55 -0800</bug_when>
    <thetext>Comment on attachment 184322
Patch

Clearing flags on attachment: 184322

Committed r140640: &lt;http://trac.webkit.org/changeset/140640&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814998</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-23 20:15:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815709</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-01-24 12:13:28 -0800</bug_when>
    <thetext>If we expect future programmers to use this macro correctly, we need a guideline to explain what this is for and how to use it. Where is that going to go?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815730</commentid>
    <comment_count>10</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2013-01-24 12:26:43 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; If we expect future programmers to use this macro correctly, we need a guideline to explain what this is for and how to use it. Where is that going to go?

I think we can explain in more detail inside Assertions.h [http://trac.webkit.org/changeset/140633/trunk/Source/WTF/wtf/Assertions.h]. Or we can update webkit wiki page here - http://www.webkit.org/coding/assertion-guidelines.html. Frankly, right now, we don&apos;t want non-security members to use this assert since they need to understand the vulnerabilities involved before using them. Bad cast ones are the easiest and can be explained easily. The other ones will be based on experience of previous discovered security vulnerabilities.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184322</attachid>
            <date>2013-01-23 15:02:18 -0800</date>
            <delta_ts>2013-01-23 20:15:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107743-20130123145911.patch</filename>
            <type>text/plain</type>
            <size>49712</size>
            <attacher name="Abhishek Arya">inferno</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRmMDNhNTMwY2U3NzZj
OWFhM2QxMjZkYzY0M2U4NmRhYTA4ODU3OC4uYmY5NDFkNWFjY2ZmNGY0NzZlMGFlOTc5N2Y4NWIw
NDMxMGVhNTY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOSBAQAorMjAxMy0wMS0yMyAgQWJo
aXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFkZCBBU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTiB0byBkZXRlY3QgYmFkIGNhc3RzIGluIHJlbmRlcmlu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NzQz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvSW5saW5lRmxvd0JveC5oOgorICAgICAgICAoV2ViQ29yZTo6dG9JbmxpbmVGbG93Qm94
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQlIuaDoKKyAgICAgICAgKFdlYkNvcmU6OnRv
UmVuZGVyQlIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAgICAgICAo
V2ViQ29yZTo6dG9SZW5kZXJCbG9jayk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5o
OgorICAgICAgICAoV2ViQ29yZTo6dG9SZW5kZXJCb3gpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6dG9SZW5kZXJCb3hNb2Rl
bE9iamVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oOgorICAgICAgICAo
V2ViQ29yZTo6dG9SZW5kZXJCdXR0b24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJDb21i
aW5lVGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6dG9SZW5kZXJDb21iaW5lVGV4dCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUmVu
ZGVyQ291bnRlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvUmVuZGVyRGV0YWlsc01hcmtlcik6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRl
ckVtYmVkZGVkT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvUmVuZGVyRmllbGRzZXQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oOgorICAgICAgICAoV2ViQ29yZTo6dG9SZW5kZXJG
aWxlVXBsb2FkQ29udHJvbCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUmVuZGVyRmxvd1RocmVhZCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckZyYW1lLmg6CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRlckZyYW1lKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OnRvUmVuZGVyRnJhbWVTZXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVu
Lmg6CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRlckZ1bGxTY3JlZW4pOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJJRnJhbWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUmVuZGVySUZyYW1l
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6
OnRvUmVuZGVySW1hZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRvUmVuZGVySW5saW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6dG9SZW5kZXJMYXllck1v
ZGVsT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oOgorICAgICAg
ICAoV2ViQ29yZTo6dG9SZW5kZXJMaXN0Qm94KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGlzdEl0ZW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUmVuZGVyTGlzdEl0ZW0pOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmg6CisgICAgICAgIChXZWJDb3JlOjp0b1Jl
bmRlckxpc3RNYXJrZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYS5oOgorICAg
ICAgICAoV2ViQ29yZTo6dG9SZW5kZXJNZWRpYSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ck1lbnVMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRlck1lbnVMaXN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTWV0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUmVuZGVy
TWV0ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmg6Cisg
ICAgICAgIChXZWJDb3JlOjp0b1JlbmRlck11bHRpQ29sdW1uQmxvY2spOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oOgorICAgICAgICAoV2ViQ29yZTo6dG9SZW5k
ZXJNdWx0aUNvbHVtblNldCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1Ro
cmVhZC5oOgorICAgICAgICAoV2ViQ29yZTo6dG9SZW5kZXJOYW1lZEZsb3dUaHJlYWQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJQYXJ0Lmg6CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRl
clBhcnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oOgorICAgICAgICAo
V2ViQ29yZTo6dG9SZW5kZXJQcm9ncmVzcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclF1
b3RlLmg6CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRlclF1b3RlKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyUmVnaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRlclJlZ2lvbik6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uaDoKKyAgICAgICAgKFdlYkNvcmU6
OnRvUmVuZGVyUnVieVJ1bik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclBh
cnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUmVuZGVyU2Nyb2xsYmFyUGFydCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmg6CisgICAgICAgIChXZWJDb3JlOjp0b1Jl
bmRlclNlYXJjaEZpZWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjp0b1JlbmRlclNsaWRlcik6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclNuYXBzaG90dGVkUGx1Z0luLmg6CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRlclNuYXBz
aG90dGVkUGx1Z0luKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OnRvUmVuZGVyVGFibGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
YWJsZUNhcHRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUmVuZGVyVGFibGVDYXB0aW9uKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmg6CisgICAgICAgIChXZWJDb3Jl
Ojp0b1JlbmRlclRhYmxlQ2VsbCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29s
Lmg6CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRlclRhYmxlQ29sKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGFibGVSb3cuaDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUmVuZGVyVGFibGVS
b3cpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaDoKKyAgICAgICAg
KFdlYkNvcmU6OnRvUmVuZGVyVGFibGVTZWN0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6dG9SZW5kZXJUZXh0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUmVuZGVy
VGV4dENvbnRyb2wpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRp
TGluZS5oOgorICAgICAgICAoV2ViQ29yZTo6dG9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZSk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6dG9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJWaWRlby5oOgorICAgICAgICAoV2ViQ29yZTo6dG9SZW5kZXJWaWRl
byk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKFdlYkNvcmU6
OnRvUmVuZGVyVmlldyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oOgorICAg
ICAgICAoV2ViQ29yZTo6dG9SZW5kZXJXaWRnZXQpOgorICAgICAgICAqIHJlbmRlcmluZy9tYXRo
bWwvUmVuZGVyTWF0aE1MQmxvY2suaDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUmVuZGVyTWF0aE1M
QmxvY2spOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjp0b1JlbmRlclNWR0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdHcmFkaWVudFN0b3AuaDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUmVu
ZGVyU1ZHR3JhZGllbnRTdG9wKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lt
YWdlLmg6CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRlclNWR0ltYWdlKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OnRv
UmVuZGVyU1ZHSW5saW5lVGV4dCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
b290Lmg6CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRlclNWR1Jvb3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUmVuZGVy
U1ZHU2hhcGUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oOgorICAg
ICAgICAoV2ViQ29yZTo6dG9SZW5kZXJTVkdUZXh0KToKKwogMjAxMy0wMS0yMyAgSnVuIEppYW5n
ICA8anVuLmEuamlhbmdAaW50ZWwuY29tPgogCiAgICAgICAgIEF2b2lkIHVubmVjZXNzYXJ5IGZv
cm1hdCBjb252ZXJzaW9uIGZvciB0ZXh7U3VifUltYWdlMkQoKSBmb3IgSW1hZ2VEYXRhIG9mIFdl
YkdMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaAppbmRleCAzZjA4NmJj
ODZmMDZjYmRjNDhjOWUzNzllOTU4NDQwYTA4YjA3NmY1Li42OTlkNjA5NjhhNTE3NDU5ZDIyMGNj
MzFjZGUyNjBjNWQxOTJmYmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lRmxvd0JveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93
Qm94LmgKQEAgLTM1MCwxMyArMzUwLDEzIEBAIHByaXZhdGU6CiAKIGlubGluZSBJbmxpbmVGbG93
Qm94KiB0b0lubGluZUZsb3dCb3goSW5saW5lQm94KiBvYmplY3QpCiB7Ci0gICAgQVNTRVJUKCFv
YmplY3QgfHwgb2JqZWN0LT5pc0lubGluZUZsb3dCb3goKSk7CisgICAgQVNTRVJUX1dJVEhfU0VD
VVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzSW5saW5lRmxvd0JveCgpKTsK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SW5saW5lRmxvd0JveCo+KG9iamVjdCk7CiB9CiAKIGlu
bGluZSBjb25zdCBJbmxpbmVGbG93Qm94KiB0b0lubGluZUZsb3dCb3goY29uc3QgSW5saW5lQm94
KiBvYmplY3QpCiB7Ci0gICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc0lubGluZUZsb3dC
b3goKSk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBv
YmplY3QtPmlzSW5saW5lRmxvd0JveCgpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3Qg
SW5saW5lRmxvd0JveCo+KG9iamVjdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCUi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJS
LmgKaW5kZXggM2E2NDA3NTVmZmFiZWUwMTlmZTRlOGFkYjliNGIzNGJhNmMyYTEwYi4uOTE0ODZm
MjljZWFmODA4OWI0ZDkxZWRkZTY3MzU1NDdhMDZlYTdjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJSLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJSLmgKQEAgLTYzLDEzICs2MywxMyBAQCBwcml2YXRlOgogCiBpbmxpbmUgUmVuZGVy
QlIqIHRvUmVuZGVyQlIoUmVuZGVyT2JqZWN0KiBvYmplY3QpCiB7IAotICAgIEFTU0VSVCghb2Jq
ZWN0IHx8IG9iamVjdC0+aXNCUigpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNB
VElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNCUigpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
UmVuZGVyQlIqPihvYmplY3QpOwogfQogCiBpbmxpbmUgY29uc3QgUmVuZGVyQlIqIHRvUmVuZGVy
QlIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCiB7IAotICAgIEFTU0VSVCghb2JqZWN0IHx8
IG9iamVjdC0+aXNCUigpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTigh
b2JqZWN0IHx8IG9iamVjdC0+aXNCUigpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3Qg
UmVuZGVyQlIqPihvYmplY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5oCmluZGV4IDAwNTQzMTJhN2I4MjM1ZTZkNzFkOGMxYzY4ODYwZGFjZTQxNDAxMGMuLjFlZDIx
MWNlODM4ZmQzZTYzMzUxNDJmMzE3MGRlMTZlODU5NzJkN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5oCkBAIC0xMjM2LDEzICsxMjM2LDEzIEBAIHByaXZhdGU6CiAKIGlu
bGluZSBSZW5kZXJCbG9jayogdG9SZW5kZXJCbG9jayhSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsg
Ci0gICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlckJsb2NrKCkpOworICAgIEFT
U0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRl
ckJsb2NrKCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJCbG9jayo+KG9iamVjdCk7
CiB9CiAKIGlubGluZSBjb25zdCBSZW5kZXJCbG9jayogdG9SZW5kZXJCbG9jayhjb25zdCBSZW5k
ZXJPYmplY3QqIG9iamVjdCkKIHsgCi0gICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1Jl
bmRlckJsb2NrKCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmpl
Y3QgfHwgb2JqZWN0LT5pc1JlbmRlckJsb2NrKCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxj
b25zdCBSZW5kZXJCbG9jayo+KG9iamVjdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guaAppbmRleCBiNGQxZjVlNGRlZjJjM2VhMWRkYTRlZTk3MjUyNjI1NTRjMTk4MzA5Li4z
MzBhZjgyN2U5ZWVjZjcxYTQwODRhZjM0OGFhNDYyNzZiN2VkZjRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5oCkBAIC02ODksMTMgKzY4OSwxMyBAQCBwcml2YXRlOgogCiBpbmxp
bmUgUmVuZGVyQm94KiB0b1JlbmRlckJveChSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsgCi0gICAg
QVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc0JveCgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNV
UklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNCb3goKSk7CiAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFJlbmRlckJveCo+KG9iamVjdCk7CiB9CiAKIGlubGluZSBjb25zdCBSZW5k
ZXJCb3gqIHRvUmVuZGVyQm94KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQogeyAKLSAgICBB
U1NFUlQoIW9iamVjdCB8fCBvYmplY3QtPmlzQm94KCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VS
SVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc0JveCgpKTsKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyQm94Kj4ob2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAppbmRleCA5M2U0N2QzY2Fm
MWUxMDlkMDBhMzgyMGZkMTgwODgxZGQwNDdjNTljLi4xZjA1NjRkNDU2ZGE3N2MyYTBhM2UwYjk1
MzVhZjQ3ZDI1NDI5MTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94TW9kZWxPYmplY3QuaApAQCAtMzEwLDEzICszMTAsMTMgQEAgcHJpdmF0ZToKIAogaW5saW5l
IFJlbmRlckJveE1vZGVsT2JqZWN0KiB0b1JlbmRlckJveE1vZGVsT2JqZWN0KFJlbmRlck9iamVj
dCogb2JqZWN0KQogeyAKLSAgICBBU1NFUlQoIW9iamVjdCB8fCBvYmplY3QtPmlzQm94TW9kZWxP
YmplY3QoKSk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8
fCBvYmplY3QtPmlzQm94TW9kZWxPYmplY3QoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJl
bmRlckJveE1vZGVsT2JqZWN0Kj4ob2JqZWN0KTsKIH0KIAogaW5saW5lIGNvbnN0IFJlbmRlckJv
eE1vZGVsT2JqZWN0KiB0b1JlbmRlckJveE1vZGVsT2JqZWN0KGNvbnN0IFJlbmRlck9iamVjdCog
b2JqZWN0KQogeyAKLSAgICBBU1NFUlQoIW9iamVjdCB8fCBvYmplY3QtPmlzQm94TW9kZWxPYmpl
Y3QoKSk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBv
YmplY3QtPmlzQm94TW9kZWxPYmplY3QoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0
IFJlbmRlckJveE1vZGVsT2JqZWN0Kj4ob2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJ1dHRvbi5oCmluZGV4IDYzZjE5YWM0ZTMyZTFiYTM5NTk4NGUzMjIzZWE3OGE2
NzU4YWFhM2IuLmU1OTk3MjFjNGJhMzdjN2FhYzdjNTcwZmJlNzBiNGE0MmVlZDhiYTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgKQEAgLTc2LDEzICs3NiwxMyBAQCBw
cml2YXRlOgogCiBpbmxpbmUgUmVuZGVyQnV0dG9uKiB0b1JlbmRlckJ1dHRvbihSZW5kZXJPYmpl
Y3QqIG9iamVjdCkKIHsgCi0gICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlckJ1
dHRvbigpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8
IG9iamVjdC0+aXNSZW5kZXJCdXR0b24oKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRl
ckJ1dHRvbio+KG9iamVjdCk7CiB9CiAKIGlubGluZSBjb25zdCBSZW5kZXJCdXR0b24qIHRvUmVu
ZGVyQnV0dG9uKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQogeyAKLSAgICBBU1NFUlQoIW9i
amVjdCB8fCBvYmplY3QtPmlzUmVuZGVyQnV0dG9uKCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VS
SVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlckJ1dHRvbigpKTsKICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyQnV0dG9uKj4ob2JqZWN0KTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvbWJpbmVUZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ29tYmluZVRleHQuaAppbmRleCAyNjAy
MWM3ZjliMTIyZTA4NWY0YjEyMGY3NDY3NzhkMjdhNjFkYjljLi42ZWU5ZmYyN2ZjMzAyN2JiYjZl
NmNiMTZiODgwM2UzODA0MDliZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQ29tYmluZVRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQ29tYmluZVRleHQuaApAQCAtNTEsMTMgKzUxLDEzIEBAIHByaXZhdGU6CiAKIGlubGluZSBS
ZW5kZXJDb21iaW5lVGV4dCogdG9SZW5kZXJDb21iaW5lVGV4dChSZW5kZXJPYmplY3QqIG9iamVj
dCkKIHsgCi0gICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc0NvbWJpbmVUZXh0KCkpOwor
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5p
c0NvbWJpbmVUZXh0KCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJDb21iaW5lVGV4
dCo+KG9iamVjdCk7CiB9CiAKIGlubGluZSBjb25zdCBSZW5kZXJDb21iaW5lVGV4dCogdG9SZW5k
ZXJDb21iaW5lVGV4dChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsgCi0gICAgQVNTRVJU
KCFvYmplY3QgfHwgb2JqZWN0LT5pc0NvbWJpbmVUZXh0KCkpOworICAgIEFTU0VSVF9XSVRIX1NF
Q1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc0NvbWJpbmVUZXh0KCkpOwog
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJDb21iaW5lVGV4dCo+KG9iamVjdCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5oCmluZGV4IGIxZTJj
ZTQ2MDQzMDAwYTNjY2FiNzA1YzNkM2RiODNkMzA3ZGZhYmQuLmZmNmFhOTBlOWQ2ODRjZDVmNWY3
MGIxYjI2N2U4ZmRkNGFhYWQ3YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJDb3VudGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNv
dW50ZXIuaApAQCAtNjMsNyArNjMsNyBAQCBwcml2YXRlOgogCiBpbmxpbmUgUmVuZGVyQ291bnRl
ciogdG9SZW5kZXJDb3VudGVyKFJlbmRlck9iamVjdCogb2JqZWN0KQogewotICAgIEFTU0VSVCgh
b2JqZWN0IHx8IG9iamVjdC0+aXNDb3VudGVyKCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZ
X0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc0NvdW50ZXIoKSk7CiAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFJlbmRlckNvdW50ZXIqPihvYmplY3QpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtlci5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuaAppbmRleCBiNjNiMTQ1MmYyNjg0
ZGFhZDJhN2M0OTUzNmQ2ZDkxYzE0YWIyNjM5Li5jZDkxYjAxM2VhODk1YTQwNGIzMDVlZjNjNmI1
ZTdmZTkyNDVjZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RGV0YWlsc01hcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXRh
aWxzTWFya2VyLmgKQEAgLTQ2LDEzICs0NiwxMyBAQCBwcml2YXRlOgogCiBpbmxpbmUgUmVuZGVy
RGV0YWlsc01hcmtlciogdG9SZW5kZXJEZXRhaWxzTWFya2VyKFJlbmRlck9iamVjdCogb2JqZWN0
KQogewotICAgIEFTU0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNEZXRhaWxzTWFya2VyKCkpOwor
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5p
c0RldGFpbHNNYXJrZXIoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlckRldGFpbHNN
YXJrZXIqPihvYmplY3QpOwogfQogCiBpbmxpbmUgY29uc3QgUmVuZGVyRGV0YWlsc01hcmtlciog
dG9SZW5kZXJEZXRhaWxzTWFya2VyKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQogewotICAg
IEFTU0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNEZXRhaWxzTWFya2VyKCkpOworICAgIEFTU0VS
VF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc0RldGFpbHNN
YXJrZXIoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlckRldGFpbHNNYXJr
ZXIqPihvYmplY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRW1iZWRkZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bWJlZGRlZE9iamVjdC5oCmluZGV4IGVmMDllYmI0ZGUyYzY4NGNlZmUwMmFmNzI4NTFiYWZkM2Mz
OGNjMGMuLjI3N2QyZWNiY2Y3NGNiYjkzMDc2NTk0ZDA1MGIzMDE4MjQwYmZiZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oCkBAIC0xMTEs
NyArMTExLDcgQEAgcHJpdmF0ZToKIAogaW5saW5lIFJlbmRlckVtYmVkZGVkT2JqZWN0KiB0b1Jl
bmRlckVtYmVkZGVkT2JqZWN0KFJlbmRlck9iamVjdCogb2JqZWN0KQogewotICAgIEFTU0VSVCgh
b2JqZWN0IHx8IG9iamVjdC0+aXNFbWJlZGRlZE9iamVjdCgpKTsKKyAgICBBU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNFbWJlZGRlZE9iamVjdCgp
KTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyRW1iZWRkZWRPYmplY3QqPihvYmplY3Qp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRz
ZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5oCmluZGV4IGQ3
MDNmNzYwZTcwMzk4ZjM2ODRmZDg0MjllNThmNTMxOWZkNWNkY2MuLjQ5ODEyMGY5YzBhY2NmMjQx
NDU1ODY1NDU4YzNjZjFkMjMwNjMyMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGaWVsZHNldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGaWVsZHNldC5oCkBAIC01MSw3ICs1MSw3IEBAIHByaXZhdGU6CiAKIGlubGluZSBSZW5kZXJG
aWVsZHNldCogdG9SZW5kZXJGaWVsZHNldChSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsKLSAgICBB
U1NFUlQoIW9iamVjdCB8fCBvYmplY3QtPmlzRmllbGRzZXQoKSk7CisgICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzRmllbGRzZXQoKSk7CiAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlckZpZWxkc2V0Kj4ob2JqZWN0KTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9s
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaApp
bmRleCA4OTQ1M2Y0NjNjMjlkMTNlMjZhZTgwZjAyZGNkODExZDE4MzM4ODFhLi4zNGQxNjA0MjJm
YzdiMTVlZTIxZjZkMTRhNTFmYzhkMTBhYWIxMzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaApAQCAtNjMsMTMgKzYzLDEzIEBA
IHByaXZhdGU6CiAKIGlubGluZSBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbCogdG9SZW5kZXJGaWxl
VXBsb2FkQ29udHJvbChSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsKLSAgICBBU1NFUlQoIW9iamVj
dCB8fCBvYmplY3QtPmlzRmlsZVVwbG9hZENvbnRyb2woKSk7CisgICAgQVNTRVJUX1dJVEhfU0VD
VVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzRmlsZVVwbG9hZENvbnRyb2wo
KSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlckZpbGVVcGxvYWRDb250cm9sKj4ob2Jq
ZWN0KTsKIH0KIAogaW5saW5lIGNvbnN0IFJlbmRlckZpbGVVcGxvYWRDb250cm9sKiB0b1JlbmRl
ckZpbGVVcGxvYWRDb250cm9sKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQogewotICAgIEFT
U0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNGaWxlVXBsb2FkQ29udHJvbCgpKTsKKyAgICBBU1NF
UlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNGaWxlVXBs
b2FkQ29udHJvbCgpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2wqPihvYmplY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsb3dUaHJlYWQuaAppbmRleCA2YWQwZWE4OTZjZDM3NTQwYzUxNDg0ZDU2YjE4ZmNjMTA4
YTM0MThlLi5jNjViN2RhNjBjMTMwYmRjOTE3ZWQzODBlZDBjZDZlMDU3NTU0ZGRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKQEAgLTIwMywxMyArMjAz
LDEzIEBAIHByb3RlY3RlZDoKIAogaW5saW5lIFJlbmRlckZsb3dUaHJlYWQqIHRvUmVuZGVyRmxv
d1RocmVhZChSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsKLSAgICBBU1NFUlQoIW9iamVjdCB8fCBv
YmplY3QtPmlzUmVuZGVyRmxvd1RocmVhZCgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJGbG93VGhyZWFkKCkpOwogICAg
IHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJGbG93VGhyZWFkKj4ob2JqZWN0KTsKIH0KIAogaW5s
aW5lIGNvbnN0IFJlbmRlckZsb3dUaHJlYWQqIHRvUmVuZGVyRmxvd1RocmVhZChjb25zdCBSZW5k
ZXJPYmplY3QqIG9iamVjdCkKIHsKLSAgICBBU1NFUlQoIW9iamVjdCB8fCBvYmplY3QtPmlzUmVu
ZGVyRmxvd1RocmVhZCgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTigh
b2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJGbG93VGhyZWFkKCkpOwogICAgIHJldHVybiBzdGF0
aWNfY2FzdDxjb25zdCBSZW5kZXJGbG93VGhyZWFkKj4ob2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWUuaAppbmRleCA2ZjQ4ZTI2Nzk1YTZjYjcwYTE0ZjQ0MTZi
NWQ0NjlhOTY0ODFhMTU5Li45ZWFkYjkzOTNhODRhYzM5MTMxYTgwNjQxZGI0OGE0NjExNzI2OGJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWUuaApAQCAtNDcsNyArNDcsNyBA
QCBwcml2YXRlOgogCiBpbmxpbmUgUmVuZGVyRnJhbWUqIHRvUmVuZGVyRnJhbWUoUmVuZGVyT2Jq
ZWN0KiBvYmplY3QpCiB7Ci0gICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc0ZyYW1lKCkp
OworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0
LT5pc0ZyYW1lKCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJGcmFtZSo+KG9iamVj
dCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFt
ZVNldC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmgKaW5kZXgg
YWYxNzgyYTg3YmNlOTg0YTljOTNhYTY5ZDE2ZDA1OGU0MWNhY2Y1Yy4uMTkxODBhNWFlZjgzYjIz
OGRhZmMzOTNkY2IyNDFiZjVhZGYwOGRhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZyYW1lU2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZyYW1lU2V0LmgKQEAgLTE0Miw3ICsxNDIsNyBAQCBwcml2YXRlOgogCiBpbmxpbmUgUmVu
ZGVyRnJhbWVTZXQqIHRvUmVuZGVyRnJhbWVTZXQoUmVuZGVyT2JqZWN0KiBvYmplY3QpCiB7Ci0g
ICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc0ZyYW1lU2V0KCkpOworICAgIEFTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc0ZyYW1lU2V0KCkp
OwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJGcmFtZVNldCo+KG9iamVjdCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5oCmluZGV4IDUwODNm
ZWQ0NGU1ZmEyYTNiZTY3NTc4MDRhZjkwNjlmMTk5ZWJlZTMuLmVmNWUxYzRhOTYxMzE4MTg4NjYy
M2E5ZmM2NWU5MzM3Y2QwN2NmOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGdWxsU2NyZWVuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZ1bGxTY3JlZW4uaApAQCAtNTcsNyArNTcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgCiBpbmxpbmUg
UmVuZGVyRnVsbFNjcmVlbiogdG9SZW5kZXJGdWxsU2NyZWVuKFJlbmRlck9iamVjdCogb2JqZWN0
KQogewotICAgIEFTU0VSVChvYmplY3QtPmlzUmVuZGVyRnVsbFNjcmVlbigpKTsKKyAgICBBU1NF
UlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmplY3QtPmlzUmVuZGVyRnVsbFNjcmVlbigp
KTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyRnVsbFNjcmVlbio+KG9iamVjdCk7CiB9
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1l
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmgKaW5kZXggNzQxNjNl
Yjc5NWRhNzZmYmQ0N2Y3ZDdmNzcwNzdhYjg0YTg1MGE4Yi4uZjBhYzNhMjk0ZjA0ODIzOGFlZDUy
Yjc0OWUwZDc0MGRlMjBmMTFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlcklGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJh
bWUuaApAQCAtNTksMTMgKzU5LDEzIEBAIHByaXZhdGU6CiAKIGlubGluZSBSZW5kZXJJRnJhbWUq
IHRvUmVuZGVySUZyYW1lKFJlbmRlck9iamVjdCogb2JqZWN0KQogewotICAgIEFTU0VSVCghb2Jq
ZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJJRnJhbWUoKSk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJ
VFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVySUZyYW1lKCkpOwogICAg
IHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJJRnJhbWUqPihvYmplY3QpOwogfQogCiBpbmxpbmUg
Y29uc3QgUmVuZGVySUZyYW1lKiB0b1JlbmRlcklGcmFtZShjb25zdCBSZW5kZXJPYmplY3QqIG9i
amVjdCkKIHsKLSAgICBBU1NFUlQoIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVySUZyYW1lKCkp
OworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0
LT5pc1JlbmRlcklGcmFtZSgpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVy
SUZyYW1lKj4ob2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2Uu
aAppbmRleCAzZGI3YjkyZGE3NGIyYmEyYmI1NmJiYTM1Mzk3MWYwOTFhMDY4ZWE0Li4wOTQwYmY2
ZTljNDE0ZmE5NjA5OGI2OTA1ZjY2ZDQzOTBiMDA0NmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW1hZ2UuaApAQCAtMTEzLDEzICsxMTMsMTMgQEAgcHJpdmF0ZToKIAogaW5saW5l
IFJlbmRlckltYWdlKiB0b1JlbmRlckltYWdlKFJlbmRlck9iamVjdCogb2JqZWN0KQogewotICAg
IEFTU0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJJbWFnZSgpKTsKKyAgICBBU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJJbWFn
ZSgpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVySW1hZ2UqPihvYmplY3QpOwogfQog
CiBpbmxpbmUgY29uc3QgUmVuZGVySW1hZ2UqIHRvUmVuZGVySW1hZ2UoY29uc3QgUmVuZGVyT2Jq
ZWN0KiBvYmplY3QpCiB7Ci0gICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlcklt
YWdlKCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwg
b2JqZWN0LT5pc1JlbmRlckltYWdlKCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBS
ZW5kZXJJbWFnZSo+KG9iamVjdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbmxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bmxpbmUuaAppbmRleCBhMDFmNWRiY2E5M2UyZmUwMDFkMzkyYWQ5YWI2NmZlZDY4YjM4OTY5Li5i
ZTUyY2M5NmM4NzVmZjVlMmFhYmZhOGE5YTVhYmZhNGM4MGM1YzEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcklubGluZS5oCkBAIC0xOTIsMTMgKzE5MiwxMyBAQCBwcml2YXRlOgog
CiBpbmxpbmUgUmVuZGVySW5saW5lKiB0b1JlbmRlcklubGluZShSZW5kZXJPYmplY3QqIG9iamVj
dCkKIHsgCi0gICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlcklubGluZSgpKTsK
KyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+
aXNSZW5kZXJJbmxpbmUoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlcklubGluZSo+
KG9iamVjdCk7CiB9CiAKIGlubGluZSBjb25zdCBSZW5kZXJJbmxpbmUqIHRvUmVuZGVySW5saW5l
KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQogeyAKLSAgICBBU1NFUlQoIW9iamVjdCB8fCBv
YmplY3QtPmlzUmVuZGVySW5saW5lKCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJ
Q0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlcklubGluZSgpKTsKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVySW5saW5lKj4ob2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKaW5kZXggZWU5
YTFhOTdmOWJlYzFmODY5ZDdmZThhZTY5MGY5MWExYzhjYTY2Ni4uYmJmNGIyYWI4MjVhMTU5ZDEw
OTcyNDZkZDkyMDE4MzkyNWViYTEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCkBAIC03MCwxMyArNzAsMTMgQEAgcHJpdmF0ZToK
IAogaW5saW5lIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHRvUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dChSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsKLSAgICBBU1NFUlQoIW9iamVjdCB8fCBvYmplY3Qt
PmlzTGF5ZXJNb2RlbE9iamVjdCgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNB
VElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNMYXllck1vZGVsT2JqZWN0KCkpOwogICAgIHJldHVy
biBzdGF0aWNfY2FzdDxSZW5kZXJMYXllck1vZGVsT2JqZWN0Kj4ob2JqZWN0KTsKIH0KIAogaW5s
aW5lIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHRvUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsKLSAgICBBU1NFUlQoIW9iamVjdCB8fCBv
YmplY3QtPmlzTGF5ZXJNb2RlbE9iamVjdCgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNMYXllck1vZGVsT2JqZWN0KCkpOwogICAg
IHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0Kj4ob2JqZWN0
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RC
b3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKaW5kZXggYTE4
ZDFhZTY4ODlhNjMzMTNhMzAxNDdjMTA3YzA4M2M3N2ZkMTYyYy4uNDdhN2EzZDE0MDkzM2VkNTdi
ZTVlMDgxZjUyYTU4OWIyN2Q4MThlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdEJveC5oCkBAIC0xNTMsNyArMTUzLDcgQEAgcHJpdmF0ZToKIAogaW5saW5lIFJlbmRlckxp
c3RCb3gqIHRvUmVuZGVyTGlzdEJveChSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsgCi0gICAgQVNT
RVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc0xpc3RCb3goKSk7CisgICAgQVNTRVJUX1dJVEhfU0VD
VVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzTGlzdEJveCgpKTsKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyTGlzdEJveCo+KG9iamVjdCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmgKaW5kZXggYjhhOGMzMTcwOTNmNDkzYzA4
YzdmMDg4ZjJiOWRmNWUwNmQ0NWVhNS4uZDg4ZmM0OTg2ZDU2ZGM1YjMyY2YwNTllZTFkNWY4NDFk
MTcwYzg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJ
dGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmgKQEAg
LTkwLDcgKzkwLDcgQEAgcHJpdmF0ZToKIAogaW5saW5lIFJlbmRlckxpc3RJdGVtKiB0b1JlbmRl
ckxpc3RJdGVtKFJlbmRlck9iamVjdCogb2JqZWN0KQogewotICAgIEFTU0VSVCghb2JqZWN0IHx8
IG9iamVjdC0+aXNMaXN0SXRlbSgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNB
VElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNMaXN0SXRlbSgpKTsKICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8UmVuZGVyTGlzdEl0ZW0qPihvYmplY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaAppbmRleCBmMTNiMjFlYWM5OWEzYTc2NDNlMWEyYTA4
YjhlMTFmYzAzMWY1OGY5Li5hZmNkZjRkNjY4NDU5ZGJlODM5ZmIyMzdjZTExMTJkMjU4MDQ0Y2E5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmgKQEAgLTkw
LDEzICs5MCwxMyBAQCBwcml2YXRlOgogCiBpbmxpbmUgUmVuZGVyTGlzdE1hcmtlciogdG9SZW5k
ZXJMaXN0TWFya2VyKFJlbmRlck9iamVjdCogb2JqZWN0KQogewotICAgIEFTU0VSVCghb2JqZWN0
IHx8IG9iamVjdC0+aXNMaXN0TWFya2VyKCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc0xpc3RNYXJrZXIoKSk7CiAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFJlbmRlckxpc3RNYXJrZXIqPihvYmplY3QpOwogfQogCiBpbmxpbmUgY29u
c3QgUmVuZGVyTGlzdE1hcmtlciogdG9SZW5kZXJMaXN0TWFya2VyKGNvbnN0IFJlbmRlck9iamVj
dCogb2JqZWN0KQogewotICAgIEFTU0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNMaXN0TWFya2Vy
KCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2Jq
ZWN0LT5pc0xpc3RNYXJrZXIoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRl
ckxpc3RNYXJrZXIqPihvYmplY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVkaWEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZWRpYS5oCmluZGV4IGY4NmQxZTNmYWM4NDI4YWE1NjMzMGFkOTgxNGFlMTQ1MzM4NmQzMTIuLjQ4
Yjg1MmVkZjFlNGRhNWIwMDJiMjYxNDdlMDY5YTFhYmJlODBkY2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZWRpYS5oCkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAKIGlubGlu
ZSBSZW5kZXJNZWRpYSogdG9SZW5kZXJNZWRpYShSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsKLSAg
ICBBU1NFUlQoIW9iamVjdCB8fCBvYmplY3QtPmlzTWVkaWEoKSk7CisgICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzTWVkaWEoKSk7CiAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlck1lZGlhKj4ob2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaAppbmRleCA4YTlmMzVlMzI2N2YwNGNmMTYw
ZjNiNTdkYTY2YzYxOGFhMGZhMGYyLi5mMGQwNjZiYzdkZmY3ZWQ3NDM0MzJiN2Y3Nzc2NDZhMjcw
YmQ5NWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxp
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaApAQCAt
MTQxLDcgKzE0MSw3IEBAIHByaXZhdGU6CiAKIGlubGluZSBSZW5kZXJNZW51TGlzdCogdG9SZW5k
ZXJNZW51TGlzdChSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsKLSAgICBBU1NFUlQoIW9iamVjdCB8
fCBvYmplY3QtPmlzTWVudUxpc3QoKSk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElD
QVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzTWVudUxpc3QoKSk7CiAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFJlbmRlck1lbnVMaXN0Kj4ob2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1ldGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWV0ZXIuaAppbmRleCAzNmM2YTI0YjFlNTIxMTc1NGM2Y2FjMWVhMzhiYjlmNDkx
Njg4M2VkLi5jMTI2OWRiNTM3NjgwZmMzZWI2OTRhMzVhMjAzNGZhZTdhNTYwNjY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0ZXIuaApAQCAtNTEsNyArNTEsNyBAQCBwcml2YXRl
OgogCiBpbmxpbmUgUmVuZGVyTWV0ZXIqIHRvUmVuZGVyTWV0ZXIoUmVuZGVyT2JqZWN0KiBvYmpl
Y3QpCiB7Ci0gICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc01ldGVyKCkpOworICAgIEFT
U0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc01ldGVy
KCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJNZXRlcio+KG9iamVjdCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJs
b2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5o
CmluZGV4IGQ4MjgzZmRjNTA2Y2ZjNGE5ZjJkMzZhNzZiZTk5Y2M0YTkxOTFlY2EuLjMwOGIxNjE5
NmYzNmRmNDJkNjRkMmI3YWRmNTM2YTVhMzhmMWZlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suaApAQCAtNzIsMTMgKzcyLDEzIEBA
IHByaXZhdGU6CiAKIGlubGluZSBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrKiB0b1JlbmRlck11bHRp
Q29sdW1uQmxvY2soUmVuZGVyT2JqZWN0KiBvYmplY3QpCiB7Ci0gICAgQVNTRVJUKCFvYmplY3Qg
fHwgb2JqZWN0LT5pc1JlbmRlck11bHRpQ29sdW1uQmxvY2soKSk7CisgICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVyTXVsdGlDb2x1
bW5CbG9jaygpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyTXVsdGlDb2x1bW5CbG9j
ayo+KG9iamVjdCk7CiB9CiAKIGlubGluZSBjb25zdCBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrKiB0
b1JlbmRlck11bHRpQ29sdW1uQmxvY2soY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCiB7Ci0g
ICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlck11bHRpQ29sdW1uQmxvY2soKSk7
CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3Qt
PmlzUmVuZGVyTXVsdGlDb2x1bW5CbG9jaygpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29u
c3QgUmVuZGVyTXVsdGlDb2x1bW5CbG9jayo+KG9iamVjdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmgKaW5kZXggYmY3NTAxNWUxYzI0
MmRiOWI3NTNjYWIyNzA4OGFkNzU2NTYwMmQ5MS4uM2E0Y2RkOTYyZWRmODM0ZmVlNDhjMDAyYmYy
ODMwYmQ2NmNlMzMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck11bHRpQ29sdW1uU2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11
bHRpQ29sdW1uU2V0LmgKQEAgLTEzNSwxMyArMTM1LDEzIEBAIHByaXZhdGU6CiAKIGlubGluZSBS
ZW5kZXJNdWx0aUNvbHVtblNldCogdG9SZW5kZXJNdWx0aUNvbHVtblNldChSZW5kZXJPYmplY3Qq
IG9iamVjdCkKIHsKLSAgICBBU1NFUlQoIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVyTXVsdGlD
b2x1bW5TZXQoKSk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVj
dCB8fCBvYmplY3QtPmlzUmVuZGVyTXVsdGlDb2x1bW5TZXQoKSk7CiAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFJlbmRlck11bHRpQ29sdW1uU2V0Kj4ob2JqZWN0KTsKIH0KIAogaW5saW5lIGNvbnN0
IFJlbmRlck11bHRpQ29sdW1uU2V0KiB0b1JlbmRlck11bHRpQ29sdW1uU2V0KGNvbnN0IFJlbmRl
ck9iamVjdCogb2JqZWN0KQogewotICAgIEFTU0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5k
ZXJNdWx0aUNvbHVtblNldCgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElP
Tighb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJNdWx0aUNvbHVtblNldCgpKTsKICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyTXVsdGlDb2x1bW5TZXQqPihvYmplY3QpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhy
ZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgK
aW5kZXggN2IzZGNjMmUwOWU3ODYxZTk1NTBhMWU3MjE2MTJlMjU1NWU3ODY2ZS4uY2VjYTBhOTg2
MThiOGIxZTdhMGMyNmIxZTdhZDkxYTA2NzY3YzZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaApAQCAtMTE5LDEzICsxMTksMTMgQEAg
cHJpdmF0ZToKIAogaW5saW5lIFJlbmRlck5hbWVkRmxvd1RocmVhZCogdG9SZW5kZXJOYW1lZEZs
b3dUaHJlYWQoUmVuZGVyT2JqZWN0KiBvYmplY3QpCiB7Ci0gICAgQVNTRVJUKCFvYmplY3QgfHwg
b2JqZWN0LT5pc1JlbmRlck5hbWVkRmxvd1RocmVhZCgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNV
UklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJOYW1lZEZsb3dUaHJl
YWQoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlck5hbWVkRmxvd1RocmVhZCo+KG9i
amVjdCk7CiB9CiAKIGlubGluZSBjb25zdCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIHRvUmVuZGVy
TmFtZWRGbG93VGhyZWFkKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQogewotICAgIEFTU0VS
VCghb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJOYW1lZEZsb3dUaHJlYWQoKSk7CisgICAgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVy
TmFtZWRGbG93VGhyZWFkKCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJO
YW1lZEZsb3dUaHJlYWQqPihvYmplY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clBhcnQuaAppbmRleCAzY2QyY2QzYjFkMjQwYjBlMzk5Mzk4ZTJkNDQ5NmEyM2VhMzk1ZDk2Li45
NjU4NjM2YTlmZjU3ZmY3NDE5ZWEwMDQ3YzQ3NWQ0OTU4NDlhNTdiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJQYXJ0LmgKQEAgLTU1LDcgKzU1LDcgQEAgcHJpdmF0ZToKIAogaW5saW5l
IFJlbmRlclBhcnQqIHRvUmVuZGVyUGFydChSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsKLSAgICBB
U1NFUlQoIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVyUGFydCgpKTsKKyAgICBBU1NFUlRfV0lU
SF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJQYXJ0KCkp
OwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJQYXJ0Kj4ob2JqZWN0KTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaAppbmRleCA0ODE0MjZiNWEyZTQ1
Yzk2Y2YyODE2ZGRjODI1NDE4ZmY0MWI2MTRkLi4xNDI4ZDgzOGI0OTFmZTZlMTU2YWYzNDAwMGJi
YjY2ZmVhNzhkNzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UHJvZ3Jlc3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3Mu
aApAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgogCiBpbmxpbmUgUmVuZGVyUHJvZ3Jlc3MqIHRv
UmVuZGVyUHJvZ3Jlc3MoUmVuZGVyT2JqZWN0KiBvYmplY3QpCiB7Ci0gICAgQVNTRVJUKCFvYmpl
Y3QgfHwgb2JqZWN0LT5pc1Byb2dyZXNzKCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1Byb2dyZXNzKCkpOwogICAgIHJldHVybiBz
dGF0aWNfY2FzdDxSZW5kZXJQcm9ncmVzcyo+KG9iamVjdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclF1b3RlLmgKaW5kZXggOTQ3ZjNhNmY1YTZjMGU1OTYwY2RhYmFlZTk4Nzc3
ZTY2MjQxNjYwMi4uMTdlOTdiMjY3NTVmOTIzNmIxODI1OGNiYzk3Y2IxY2U4ZTk3ZTM5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmgKQEAgLTY3LDcgKzY3LDcgQEAgcHJp
dmF0ZToKIAogaW5saW5lIFJlbmRlclF1b3RlKiB0b1JlbmRlclF1b3RlKFJlbmRlck9iamVjdCog
b2JqZWN0KQogewotICAgIEFTU0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNRdW90ZSgpKTsKKyAg
ICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNR
dW90ZSgpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyUXVvdGUqPihvYmplY3QpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKaW5kZXggYTFmZTg3Yzhl
MGY2NDE0NTg4MzY4ZjU2ZjgzYjBhM2Y4OTYwZmNhNi4uZDllZjQ1ZmEzOTI1MDEyMzVmYjM1ZThl
YTU3MDk0ZmMwNDYyNzA0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclJlZ2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24u
aApAQCAtMjA2LDEzICsyMDYsMTMgQEAgcHJpdmF0ZToKIAogaW5saW5lIFJlbmRlclJlZ2lvbiog
dG9SZW5kZXJSZWdpb24oUmVuZGVyT2JqZWN0KiBvYmplY3QpCiB7Ci0gICAgQVNTRVJUKCFvYmpl
Y3QgfHwgb2JqZWN0LT5pc1JlbmRlclJlZ2lvbigpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklU
WV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJSZWdpb24oKSk7CiAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclJlZ2lvbio+KG9iamVjdCk7CiB9CiAKIGlubGluZSBj
b25zdCBSZW5kZXJSZWdpb24qIHRvUmVuZGVyUmVnaW9uKGNvbnN0IFJlbmRlck9iamVjdCogb2Jq
ZWN0KQogewotICAgIEFTU0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJSZWdpb24oKSk7
CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3Qt
PmlzUmVuZGVyUmVnaW9uKCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJS
ZWdpb24qPihvYmplY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUnVieVJ1bi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlS
dW4uaAppbmRleCBjN2I3NTMzNTI4ZTllMzY1YTMxOGY5NjkzNWM0ZTMxMWYxZmFkYzlhLi4xZTU1
M2E2YTAwOGQ2Y2VhNTYzZjgwYzcyZDM1YjFkYWQ2MzEwOTFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVJ1bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSdWJ5UnVuLmgKQEAgLTgwLDEzICs4MCwxMyBAQCBwcml2YXRlOgogCiBp
bmxpbmUgUmVuZGVyUnVieVJ1biogdG9SZW5kZXJSdWJ5UnVuKFJlbmRlck9iamVjdCogb2JqZWN0
KQogewotICAgIEFTU0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNSdWJ5UnVuKCkpOworICAgIEFT
U0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1J1YnlS
dW4oKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclJ1YnlSdW4qPihvYmplY3QpOwog
fQogCiBpbmxpbmUgY29uc3QgUmVuZGVyUnVieVJ1biogdG9SZW5kZXJSdWJ5UnVuKGNvbnN0IFJl
bmRlck9iamVjdCogb2JqZWN0KQogewotICAgIEFTU0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNC
b3goKSk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBv
YmplY3QtPmlzQm94KCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJSdWJ5
UnVuKj4ob2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNjcm9sbGJhclBhcnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
Y3JvbGxiYXJQYXJ0LmgKaW5kZXggMWNmZjExODQzODUyYjM2ZGMyMzRkY2ZkY2ZjYTJmYmYwNmUx
OGIyMi4uNzViN2I1MTA2NDRmYWEyZjU2ZmNhZGU2NTdkM2YwMmI1MGE4NDk5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclBhcnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5oCkBAIC03OCwxMyAr
NzgsMTMgQEAgcHJpdmF0ZToKIAogaW5saW5lIFJlbmRlclNjcm9sbGJhclBhcnQqIHRvUmVuZGVy
U2Nyb2xsYmFyUGFydChSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsKLSAgICBBU1NFUlQoIW9iamVj
dCB8fCBvYmplY3QtPmlzUmVuZGVyU2Nyb2xsYmFyUGFydCgpKTsKKyAgICBBU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJTY3JvbGxiYXJQ
YXJ0KCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJTY3JvbGxiYXJQYXJ0Kj4ob2Jq
ZWN0KTsKIH0KIAogaW5saW5lIGNvbnN0IFJlbmRlclNjcm9sbGJhclBhcnQqIHRvUmVuZGVyU2Ny
b2xsYmFyUGFydChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsKLSAgICBBU1NFUlQoIW9i
amVjdCB8fCBvYmplY3QtPmlzUmVuZGVyU2Nyb2xsYmFyUGFydCgpKTsKKyAgICBBU1NFUlRfV0lU
SF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJTY3JvbGxi
YXJQYXJ0KCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJTY3JvbGxiYXJQ
YXJ0Kj4ob2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNlYXJjaEZpZWxkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Vh
cmNoRmllbGQuaAppbmRleCAwZGE5YzMyZDJiMTg0Yzc3Mjc1Mjk1NDYxOTYxODI4ZTQ0YWE2ODM4
Li4zZmEyMzZiZjliYmU1YTZmZDk2MWU2Yjg2OTZhYTQ2ZDg4Y2Y2ZGYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuaApAQCAtOTIsNyArOTIsNyBAQCBw
cml2YXRlOgogCiBpbmxpbmUgUmVuZGVyU2VhcmNoRmllbGQqIHRvUmVuZGVyU2VhcmNoRmllbGQo
UmVuZGVyT2JqZWN0KiBvYmplY3QpCiB7Ci0gICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5p
c1RleHRGaWVsZCgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2Jq
ZWN0IHx8IG9iamVjdC0+aXNUZXh0RmllbGQoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJl
bmRlclNlYXJjaEZpZWxkKj4ob2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNsaWRlci5oCmluZGV4IDc1YWVhYmIyYjMyYWJiMDhkMGIzMWEwN2FjMDcxMWZhNTAyMmMz
M2YuLjg2MDNhOTBlODQzODFiMDZhMmVjOGNmMDRlODI2NmY3Y2FhYTYzMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToK
IAogaW5saW5lIFJlbmRlclNsaWRlciogdG9SZW5kZXJTbGlkZXIoUmVuZGVyT2JqZWN0KiBvYmpl
Y3QpCiB7Ci0gICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1NsaWRlcigpKTsKKyAgICBB
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNTbGlk
ZXIoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclNsaWRlcio+KG9iamVjdCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1
Z0luLmgKaW5kZXggMDc4YjBmZDIwY2RlNjhmNDJkZDFhZGJjZDBiOGM0MzJjM2UyODJiZi4uYjlk
ZTYyY2JhYzJhYWNmYTVhMTRjNjliZDQyYTY5MmZmZTY1NTc3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmgKQEAgLTg4LDcgKzg4
LDcgQEAgcHJpdmF0ZToKIAogaW5saW5lIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luKiB0b1JlbmRl
clNuYXBzaG90dGVkUGx1Z0luKFJlbmRlck9iamVjdCogb2JqZWN0KQogewotICAgIEFTU0VSVCgh
b2JqZWN0IHx8IG9iamVjdC0+aXNTbmFwc2hvdHRlZFBsdWdJbigpKTsKKyAgICBBU1NFUlRfV0lU
SF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNTbmFwc2hvdHRlZFBs
dWdJbigpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4q
PihvYmplY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCmluZGV4
IDcwNmUxM2FlY2JkYTA3Y2I5NmNkZDdiNTg0NjhmZTczM2E0NGM4MjMuLjU3NjAyNDE5YWUyNjIy
YTg4NThlYWFhZGNlNjY1NWQyYmU2MmI1OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZS5oCkBAIC0zNDgsMTMgKzM0OCwxMyBAQCBpbmxpbmUgUmVuZGVyVGFibGVTZWN0aW9u
KiBSZW5kZXJUYWJsZTo6dG9wU2VjdGlvbigpIGNvbnN0CiAKIGlubGluZSBSZW5kZXJUYWJsZSog
dG9SZW5kZXJUYWJsZShSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsKLSAgICBBU1NFUlQoIW9iamVj
dCB8fCBvYmplY3QtPmlzVGFibGUoKSk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElD
QVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzVGFibGUoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PFJlbmRlclRhYmxlKj4ob2JqZWN0KTsKIH0KIAogaW5saW5lIGNvbnN0IFJlbmRlclRhYmxl
KiB0b1JlbmRlclRhYmxlKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQogewotICAgIEFTU0VS
VCghb2JqZWN0IHx8IG9iamVjdC0+aXNUYWJsZSgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklU
WV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNUYWJsZSgpKTsKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyVGFibGUqPihvYmplY3QpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9uLmgKaW5kZXggNzAwNjEwZTI2NzUw
ZGM3YjgyZTgyYTgwYzlhODcwYmYzN2RhYWZlMC4uM2ZiNTFkYjMzNWVkZGQxNWQ4ZDBiNWVkZTM4
OWQyNDAwOWY4OTE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlQ2FwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJs
ZUNhcHRpb24uaApAQCAtNDMsMTMgKzQzLDEzIEBAIHByaXZhdGU6CiAKIGlubGluZSBSZW5kZXJU
YWJsZUNhcHRpb24qIHRvUmVuZGVyVGFibGVDYXB0aW9uKFJlbmRlck9iamVjdCogb2JqZWN0KQog
ewotICAgIEFTU0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNUYWJsZUNhcHRpb24oKSk7CisgICAg
QVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzVGFi
bGVDYXB0aW9uKCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJUYWJsZUNhcHRpb24q
PihvYmplY3QpOwogfQogCiBpbmxpbmUgY29uc3QgUmVuZGVyVGFibGVDYXB0aW9uKiB0b1JlbmRl
clRhYmxlQ2FwdGlvbihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsKLSAgICBBU1NFUlQo
IW9iamVjdCB8fCBvYmplY3QtPmlzVGFibGVDYXB0aW9uKCkpOworICAgIEFTU0VSVF9XSVRIX1NF
Q1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1RhYmxlQ2FwdGlvbigpKTsK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyVGFibGVDYXB0aW9uKj4ob2JqZWN0
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
Q2VsbC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCmluZGV4
IDI0ZmRjMmNiODJmYjE1ODI5MGViNGM0ZTY4YjcwNDAwMGExZTU0ZTQuLjBjNzQ4ODUzNDU2Mzg5
ZGRhZjBjYzljMWRjOTQ0ODg4YjNiMDQzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVDZWxsLmgKQEAgLTI3NywxMyArMjc3LDEzIEBAIHByaXZhdGU6CiAKIGlubGlu
ZSBSZW5kZXJUYWJsZUNlbGwqIHRvUmVuZGVyVGFibGVDZWxsKFJlbmRlck9iamVjdCogb2JqZWN0
KQogewotICAgIEFTU0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNUYWJsZUNlbGwoKSk7CisgICAg
QVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzVGFi
bGVDZWxsKCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJUYWJsZUNlbGwqPihvYmpl
Y3QpOwogfQogCiBpbmxpbmUgY29uc3QgUmVuZGVyVGFibGVDZWxsKiB0b1JlbmRlclRhYmxlQ2Vs
bChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsKLSAgICBBU1NFUlQoIW9iamVjdCB8fCBv
YmplY3QtPmlzVGFibGVDZWxsKCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FU
SU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1RhYmxlQ2VsbCgpKTsKICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8Y29uc3QgUmVuZGVyVGFibGVDZWxsKj4ob2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuaAppbmRleCBhZGE1ZGI2OTQxZDI3MzU3ZTk1Yjk0
N2QyZjE2N2NhN2IxYzhkNzM5Li42NjMxODQyNTYyNmJlOTc0OGQyMmIyMmMzNjAxZmRiMTY1MTM0
OGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuaApAQCAtMTA3
LDEzICsxMDcsMTMgQEAgcHJpdmF0ZToKIAogaW5saW5lIFJlbmRlclRhYmxlQ29sKiB0b1JlbmRl
clRhYmxlQ29sKFJlbmRlck9iamVjdCogb2JqZWN0KQogewotICAgIEFTU0VSVCghb2JqZWN0IHx8
IG9iamVjdC0+aXNSZW5kZXJUYWJsZUNvbCgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJUYWJsZUNvbCgpKTsKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyVGFibGVDb2wqPihvYmplY3QpOwogfQogCiBpbmxpbmUg
Y29uc3QgUmVuZGVyVGFibGVDb2wqIHRvUmVuZGVyVGFibGVDb2woY29uc3QgUmVuZGVyT2JqZWN0
KiBvYmplY3QpCiB7Ci0gICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlclRhYmxl
Q29sKCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwg
b2JqZWN0LT5pc1JlbmRlclRhYmxlQ29sKCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25z
dCBSZW5kZXJUYWJsZUNvbCo+KG9iamVjdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlUm93LmgKaW5kZXggOWIyNjBiOGM3NjhlZDg3ZDk4ODM0MDI0MjdiNGRjOGMw
MGUzNmMxNi4uZjU3MmZlNTIwZDQ3ODFlMWE2ZGE1Njg0NDI3NzY0MGI5Y2VlMDBkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmgKQEAgLTExOSwxMyArMTE5LDEz
IEBAIHByaXZhdGU6CiAKIGlubGluZSBSZW5kZXJUYWJsZVJvdyogdG9SZW5kZXJUYWJsZVJvdyhS
ZW5kZXJPYmplY3QqIG9iamVjdCkKIHsKLSAgICBBU1NFUlQoIW9iamVjdCB8fCBvYmplY3QtPmlz
VGFibGVSb3coKSk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVj
dCB8fCBvYmplY3QtPmlzVGFibGVSb3coKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRl
clRhYmxlUm93Kj4ob2JqZWN0KTsKIH0KIAogaW5saW5lIGNvbnN0IFJlbmRlclRhYmxlUm93KiB0
b1JlbmRlclRhYmxlUm93KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQogewotICAgIEFTU0VS
VCghb2JqZWN0IHx8IG9iamVjdC0+aXNUYWJsZVJvdygpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNV
UklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNUYWJsZVJvdygpKTsKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyVGFibGVSb3cqPihvYmplY3QpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmgKaW5kZXggZDVl
OWY0NTIxNTdjOGUxM2YxMzFhMDQ3Zjc4NjlkY2QxMTUxNjU1Ni4uODkwM2IyODNmYjJmN2U2NmI4
YzYxNzZmOTczOGIzNmYwZDljYWNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZVNlY3Rpb24uaApAQCAtMjc4LDEzICsyNzgsMTMgQEAgcHJpdmF0ZToKIAogaW5s
aW5lIFJlbmRlclRhYmxlU2VjdGlvbiogdG9SZW5kZXJUYWJsZVNlY3Rpb24oUmVuZGVyT2JqZWN0
KiBvYmplY3QpCiB7Ci0gICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1RhYmxlU2VjdGlv
bigpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9i
amVjdC0+aXNUYWJsZVNlY3Rpb24oKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclRh
YmxlU2VjdGlvbio+KG9iamVjdCk7CiB9CiAKIGlubGluZSBjb25zdCBSZW5kZXJUYWJsZVNlY3Rp
b24qIHRvUmVuZGVyVGFibGVTZWN0aW9uKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQogewot
ICAgIEFTU0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNUYWJsZVNlY3Rpb24oKSk7CisgICAgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzVGFibGVT
ZWN0aW9uKCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJUYWJsZVNlY3Rp
b24qPihvYmplY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAppbmRl
eCA5ZDEyNmI3ZmNkYTg0YmIzNDRiZGM0MTlkMjhjMjEwM2UxYWMzZGE1Li43N2M1NDc3YmYwNjBm
OWQwYzZjNDcyOGQyNDk5OTlmNzkyY2UyYTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0LmgKQEAgLTIxNSwxMyArMjE1LDEzIEBAIHByaXZhdGU6CiAKIGlubGluZSBSZW5kZXJU
ZXh0KiB0b1JlbmRlclRleHQoUmVuZGVyT2JqZWN0KiBvYmplY3QpCiB7IAotICAgIEFTU0VSVCgh
b2JqZWN0IHx8IG9iamVjdC0+aXNUZXh0KCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1RleHQoKSk7CiAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFJlbmRlclRleHQqPihvYmplY3QpOwogfQogCiBpbmxpbmUgY29uc3QgUmVuZGVyVGV4
dCogdG9SZW5kZXJUZXh0KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQogeyAKLSAgICBBU1NF
UlQoIW9iamVjdCB8fCBvYmplY3QtPmlzVGV4dCgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklU
WV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNUZXh0KCkpOwogICAgIHJldHVybiBz
dGF0aWNfY2FzdDxjb25zdCBSZW5kZXJUZXh0Kj4ob2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaAppbmRleCA5NzA3YmI3NDE1OThiZTM5
MThkOTE5MDlkZmJhNjZiMDQzMGQ5MTljLi5mMWY1OTJlNWNjMDJiNmFiOGM2M2Q2YjNmMjQyZWQ4
MDRjM2ZjNGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2wuaApAQCAtODQsMTMgKzg0LDEzIEBAIHByaXZhdGU6CiAKIGlubGluZSBSZW5kZXJUZXh0Q29u
dHJvbCogdG9SZW5kZXJUZXh0Q29udHJvbChSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsgCi0gICAg
QVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1RleHRDb250cm9sKCkpOworICAgIEFTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1RleHRDb250cm9s
KCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJUZXh0Q29udHJvbCo+KG9iamVjdCk7
CiB9CiAKIGlubGluZSBjb25zdCBSZW5kZXJUZXh0Q29udHJvbCogdG9SZW5kZXJUZXh0Q29udHJv
bChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsgCi0gICAgQVNTRVJUKCFvYmplY3QgfHwg
b2JqZWN0LT5pc1RleHRDb250cm9sKCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJ
Q0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1RleHRDb250cm9sKCkpOwogICAgIHJldHVybiBz
dGF0aWNfY2FzdDxjb25zdCBSZW5kZXJUZXh0Q29udHJvbCo+KG9iamVjdCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGlu
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5l
LmgKaW5kZXggMWY5MDE3Mjk4YWVkY2MxNzBiYmFjOWU2ZTFlYmY2Njc4ZDFjMTBmNy4uMGVlNmUw
ODJiZDhmOTllODUwMjUxNjExZDA5ZGNlY2E2NzE2YmM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgKQEAgLTQ4LDcg
KzQ4LDcgQEAgcHJpdmF0ZToKIAogaW5saW5lIFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lKiB0
b1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lKFJlbmRlck9iamVjdCogb2JqZWN0KQogeyAKLSAg
ICBBU1NFUlQoIW9iamVjdCB8fCBvYmplY3QtPmlzVGV4dEFyZWEoKSk7CisgICAgQVNTRVJUX1dJ
VEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzVGV4dEFyZWEoKSk7
CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lKj4ob2Jq
ZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5oCmluZGV4IDE2ZjFjNzdjY2JjN2EwMjYxZjQxYzAxNDVmMDJh
ZTA3ODcxZTM0MjcuLjI0YmQ2NjI2MTY5MDM4ODdjMWNlMWFiN2RkMDZiM2I4ZTQwMTI2NGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lLmgKQEAgLTk5LDcgKzk5LDcgQEAgaW5saW5lIEhUTUxFbGVtZW50KiBSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6OmlubmVyQmxvY2tFbGVtZW50KCkgY29uc3QKIAogaW5saW5l
IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSogdG9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmUoUmVuZGVyT2JqZWN0KiBvYmplY3QpCiB7Ci0gICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0
LT5pc1RleHRGaWVsZCgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTigh
b2JqZWN0IHx8IG9iamVjdC0+aXNUZXh0RmllbGQoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSo+KG9iamVjdCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZGVvLmgKaW5kZXggZDZlZmU5MzQxYjllOGEyNjZhZTMzMzMwM2U4
Nzk0N2Q4NzI5NmU0OC4uZWQ1MGM4MmM0YmM0MGIwZTA0MmZiZTI1Y2QxOWVmZDNiZWRlNWQzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmgKQEAgLTg4LDcgKzg4LDcgQEAg
cHJpdmF0ZToKIAogaW5saW5lIFJlbmRlclZpZGVvKiB0b1JlbmRlclZpZGVvKFJlbmRlck9iamVj
dCogb2JqZWN0KQogewotICAgIEFTU0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNWaWRlbygpKTsK
KyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+
aXNWaWRlbygpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyVmlkZW8qPihvYmplY3Qp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCA4ODkzOTZkMWI5
MGM2N2Y4YmY2NDkyN2I1NDJmNzFmN2Y2NjRmOTBkLi5lYTMxMDYyMmUxNzhlMTNkZTRhOGExODky
NmJkMGQ2MWJjZmZhYTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKQEAg
LTM0MywxMyArMzQzLDEzIEBAIHByaXZhdGU6CiAKIGlubGluZSBSZW5kZXJWaWV3KiB0b1JlbmRl
clZpZXcoUmVuZGVyT2JqZWN0KiBvYmplY3QpCiB7Ci0gICAgQVNTRVJUKCFvYmplY3QgfHwgb2Jq
ZWN0LT5pc1JlbmRlclZpZXcoKSk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04oIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVyVmlldygpKTsKICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8UmVuZGVyVmlldyo+KG9iamVjdCk7CiB9CiAKIGlubGluZSBjb25zdCBSZW5kZXJWaWV3
KiB0b1JlbmRlclZpZXcoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCiB7Ci0gICAgQVNTRVJU
KCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlclZpZXcoKSk7CisgICAgQVNTRVJUX1dJVEhfU0VD
VVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVyVmlldygpKTsKICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyVmlldyo+KG9iamVjdCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaAppbmRleCAyZGQ2MWExNmYyNDk5ODA3
ZTNlOTUxM2EyODk4Yzg2NTMyNGJiOTVmLi45ZDJhZDdmMzE4MWQ5NGM1Y2NjNGUwYWM4MmIwOGVk
N2U5MWY1NGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lk
Z2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCkBAIC0x
MDQsMTMgKzEwNCwxMyBAQCBwcml2YXRlOgogCiBpbmxpbmUgUmVuZGVyV2lkZ2V0KiB0b1JlbmRl
cldpZGdldChSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsKLSAgICBBU1NFUlQoIW9iamVjdCB8fCBv
YmplY3QtPmlzV2lkZ2V0KCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9O
KCFvYmplY3QgfHwgb2JqZWN0LT5pc1dpZGdldCgpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
UmVuZGVyV2lkZ2V0Kj4ob2JqZWN0KTsKIH0KIAogaW5saW5lIGNvbnN0IFJlbmRlcldpZGdldCog
dG9SZW5kZXJXaWRnZXQoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCiB7Ci0gICAgQVNTRVJU
KCFvYmplY3QgfHwgb2JqZWN0LT5pc1dpZGdldCgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklU
WV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNXaWRnZXQoKSk7CiAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlcldpZGdldCo+KG9iamVjdCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suaAppbmRl
eCBlMmQ4ZGE0YTkyNDcyZDlhOWI1M2MxZDI0NmMyYzMzMDE5MzQ2YjcwLi5jZDkzZjk5YjgzOTMz
ZWIxNWE1MmFiNjRhNzMwOTQwMmU3ZDJlYTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oCkBAIC0xMDQsMTMgKzEwNCwxMyBA
QCBwcm90ZWN0ZWQ6CiAKIGlubGluZSBSZW5kZXJNYXRoTUxCbG9jayogdG9SZW5kZXJNYXRoTUxC
bG9jayhSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsgCi0gICAgQVNTRVJUKCFvYmplY3QgfHwgb2Jq
ZWN0LT5pc1JlbmRlck1hdGhNTEJsb2NrKCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlck1hdGhNTEJsb2NrKCkpOwogICAg
IHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJNYXRoTUxCbG9jayo+KG9iamVjdCk7CiB9CiAKIGlu
bGluZSBjb25zdCBSZW5kZXJNYXRoTUxCbG9jayogdG9SZW5kZXJNYXRoTUxCbG9jayhjb25zdCBS
ZW5kZXJPYmplY3QqIG9iamVjdCkKIHsgCi0gICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5p
c1JlbmRlck1hdGhNTEJsb2NrKCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FU
SU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlck1hdGhNTEJsb2NrKCkpOwogICAgIHJldHVy
biBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJNYXRoTUxCbG9jayo+KG9iamVjdCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5oCmlu
ZGV4IDRkOWE4MjRiZGEzYjIzNmE2M2U5ZmM4NWY4MzFkYzkyNjE4OGE3ODEuLjRkMjFiNzk2MDFk
ODlkM2VkZDBmYzM4NjI1MjAzY2U3ZmY0ZTIxODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuaApAQCAtOTEsMTMgKzkxLDEzIEBAIHBy
aXZhdGU6CiAgIAogaW5saW5lIFJlbmRlclNWR0NvbnRhaW5lciogdG9SZW5kZXJTVkdDb250YWlu
ZXIoUmVuZGVyT2JqZWN0KiBvYmplY3QpCiB7Ci0gICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0
LT5pc1NWR0NvbnRhaW5lcigpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElP
Tighb2JqZWN0IHx8IG9iamVjdC0+aXNTVkdDb250YWluZXIoKSk7CiAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFJlbmRlclNWR0NvbnRhaW5lcio+KG9iamVjdCk7CiB9CiAKIGlubGluZSBjb25zdCBS
ZW5kZXJTVkdDb250YWluZXIqIHRvUmVuZGVyU1ZHQ29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVj
dCogb2JqZWN0KQogewotICAgIEFTU0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNTVkdDb250YWlu
ZXIoKSk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBv
YmplY3QtPmlzU1ZHQ29udGFpbmVyKCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBS
ZW5kZXJTVkdDb250YWluZXIqPihvYmplY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0dyYWRpZW50U3RvcC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdHcmFkaWVudFN0b3AuaAppbmRleCAxYzBlNDAzM2Jl
ZWMyMDJiZWQ5M2JjY2UzYTJhYjM0ZjY0MjBmMzkzLi4yZWVlYmVkZjkyZTVlMmU1NjNhMGQxOWZm
Mjc0NGUxNmM0ZGVjZGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0dyYWRpZW50U3RvcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHJpdmF0ZToKIAog
aW5saW5lIGNvbnN0IFJlbmRlclNWR0dyYWRpZW50U3RvcCogdG9SZW5kZXJTVkdHcmFkaWVudFN0
b3AoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCiB7Ci0gICAgQVNTRVJUKCFvYmplY3QgfHwg
b2JqZWN0LT5pc1NWR0dyYWRpZW50U3RvcCgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNTVkdHcmFkaWVudFN0b3AoKSk7CiAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclNWR0dyYWRpZW50U3RvcCo+KG9iamVjdCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuaApp
bmRleCBlNTYzM2IxZjlmZmNkN2JmMmI0ZGE2NmUyM2I5MDk0NTI4OGI1N2RiLi4yMzJhZDgzNzdk
MDc1NDBmZjIxZjQ1OWZjMjVjMGEzODhlZjhmOTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5oCkBAIC04MywxMyArODMsMTMgQEAgcHJpdmF0ZToK
IAogaW5saW5lIFJlbmRlclNWR0ltYWdlKiB0b1JlbmRlclNWR0ltYWdlKFJlbmRlck9iamVjdCog
b2JqZWN0KQogewotICAgIEFTU0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNTVkdJbWFnZSgpKTsK
KyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+
aXNTVkdJbWFnZSgpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyU1ZHSW1hZ2UqPihv
YmplY3QpOwogfQogCiBpbmxpbmUgY29uc3QgUmVuZGVyU1ZHSW1hZ2UqIHRvUmVuZGVyU1ZHSW1h
Z2UoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCiB7Ci0gICAgQVNTRVJUKCFvYmplY3QgfHwg
b2JqZWN0LT5pc1NWR0ltYWdlKCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FU
SU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1NWR0ltYWdlKCkpOwogICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxjb25zdCBSZW5kZXJTVkdJbWFnZSo+KG9iamVjdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmgKaW5kZXggNzY0M2Nm
MWFiZGUxZjk3Y2UyODQzNTEzZDVlYjg5MzRkM2M5NjUzOC4uYjZmYzgzMDA4OTJmNDJiNWM1ODA1
ZTM4NWJiMDMyNWRjYjA1YjMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmgKQEAgLTY5LDEzICs2OSwxMyBAQCBwcml2YXRlOgog
CiBpbmxpbmUgUmVuZGVyU1ZHSW5saW5lVGV4dCogdG9SZW5kZXJTVkdJbmxpbmVUZXh0KFJlbmRl
ck9iamVjdCogb2JqZWN0KQogewotICAgIEFTU0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNTVkdJ
bmxpbmVUZXh0KCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmpl
Y3QgfHwgb2JqZWN0LT5pc1NWR0lubGluZVRleHQoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFJlbmRlclNWR0lubGluZVRleHQqPihvYmplY3QpOwogfQogCiBpbmxpbmUgY29uc3QgUmVuZGVy
U1ZHSW5saW5lVGV4dCogdG9SZW5kZXJTVkdJbmxpbmVUZXh0KGNvbnN0IFJlbmRlck9iamVjdCog
b2JqZWN0KQogewotICAgIEFTU0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNTVkdJbmxpbmVUZXh0
KCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2Jq
ZWN0LT5pc1NWR0lubGluZVRleHQoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJl
bmRlclNWR0lubGluZVRleHQqPihvYmplY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCmluZGV4IDM1ZDkzYWEyODk0N2RkZDBkOTdhMTAwMTI3
ZWRjZThiNGVjMzdmZmYuLjdiYTBkZjljY2Y0YTU4N2RhZWI2MmY2Mzc0MWVkYmIxZmNhOGEwMzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCkBAIC0x
MzAsMTMgKzEzMCwxMyBAQCBwcml2YXRlOgogCiBpbmxpbmUgUmVuZGVyU1ZHUm9vdCogdG9SZW5k
ZXJTVkdSb290KFJlbmRlck9iamVjdCogb2JqZWN0KQogeyAKLSAgICBBU1NFUlQoIW9iamVjdCB8
fCBvYmplY3QtPmlzU1ZHUm9vdCgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNB
VElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNTVkdSb290KCkpOwogICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxSZW5kZXJTVkdSb290Kj4ob2JqZWN0KTsKIH0KIAogaW5saW5lIGNvbnN0IFJlbmRlclNW
R1Jvb3QqIHRvUmVuZGVyU1ZHUm9vdChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsgCi0g
ICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1NWR1Jvb3QoKSk7CisgICAgQVNTRVJUX1dJ
VEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzU1ZHUm9vdCgpKTsK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyU1ZHUm9vdCo+KG9iamVjdCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hh
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaAppbmRl
eCAyNjMxODE4MDQwYTgzZTI5ODZhNWZkYjE3YzY0MzU3NzZiNzczYjFmLi40NGEzYjRhMTBhYzc0
NTk0ZmEyYzRkMzAwMmRmZGJiZmM1NjAwMmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oCkBAIC0xNDksMTMgKzE0OSwxMyBAQCBwcml2YXRlOgog
CiBpbmxpbmUgUmVuZGVyU1ZHU2hhcGUqIHRvUmVuZGVyU1ZHU2hhcGUoUmVuZGVyT2JqZWN0KiBv
YmplY3QpCiB7Ci0gICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1NWR1NoYXBlKCkpOwor
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5p
c1NWR1NoYXBlKCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJTVkdTaGFwZSo+KG9i
amVjdCk7CiB9CiAKIGlubGluZSBjb25zdCBSZW5kZXJTVkdTaGFwZSogdG9SZW5kZXJTVkdTaGFw
ZShjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsKLSAgICBBU1NFUlQoIW9iamVjdCB8fCBv
YmplY3QtPmlzU1ZHU2hhcGUoKSk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04oIW9iamVjdCB8fCBvYmplY3QtPmlzU1ZHU2hhcGUoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PGNvbnN0IFJlbmRlclNWR1NoYXBlKj4ob2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaAppbmRleCA2ZjM3MDU3Mzk1YmM3MTdmY2Iw
ZWUxMzQ2ODNiMmU4ODJkNjNlODRjLi40ZDRmNGFlM2RjYzQ5M2IwMDZmOGNlM2Y5MjM1OTY3MjUx
YzgwZDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1RleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQu
aApAQCAtMTA0LDEzICsxMDQsMTMgQEAgcHJpdmF0ZToKIAogaW5saW5lIFJlbmRlclNWR1RleHQq
IHRvUmVuZGVyU1ZHVGV4dChSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsKLSAgICBBU1NFUlQoIW9i
amVjdCB8fCBvYmplY3QtPmlzU1ZHVGV4dCgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNTVkdUZXh0KCkpOwogICAgIHJldHVybiBz
dGF0aWNfY2FzdDxSZW5kZXJTVkdUZXh0Kj4ob2JqZWN0KTsKIH0KIAogaW5saW5lIGNvbnN0IFJl
bmRlclNWR1RleHQqIHRvUmVuZGVyU1ZHVGV4dChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkK
IHsKLSAgICBBU1NFUlQoIW9iamVjdCB8fCBvYmplY3QtPmlzU1ZHVGV4dCgpKTsKKyAgICBBU1NF
UlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNTVkdUZXh0
KCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJTVkdUZXh0Kj4ob2JqZWN0
KTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>