<?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>83943</bug_id>
          
          <creation_ts>2012-04-13 14:04:13 -0700</creation_ts>
          <short_desc>Add V8 code generation support for MessagePorts attributes.</short_desc>
          <delta_ts>2012-04-16 16:50:59 -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>New Bugs</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>
          
          <blocked>83634</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Greg Billock">gbillock</reporter>
          <assigned_to name="Greg Billock">gbillock</assigned_to>
          <cc>abarth</cc>
    
    <cc>dslomov</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>602389</commentid>
    <comment_count>0</comment_count>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-04-13 14:04:13 -0700</bug_when>
    <thetext>Add V8 code generation support for MessagePorts attributes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602390</commentid>
    <comment_count>1</comment_count>
      <attachid>137145</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-04-13 14:04:57 -0700</bug_when>
    <thetext>Created attachment 137145
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602396</commentid>
    <comment_count>2</comment_count>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-04-13 14:09:38 -0700</bug_when>
    <thetext>Context: https://bugs.webkit.org/show_bug.cgi?id=83634

The approach here adds a &quot;MessagePortArray&quot; attribute for special handling of Array return types which are message port arrays. See also http://trac.webkit.org/browser/trunk/Source/WebCore/bindings/v8/custom/V8MessageEventCustom.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602420</commentid>
    <comment_count>3</comment_count>
      <attachid>137145</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-04-13 14:36:29 -0700</bug_when>
    <thetext>Comment on attachment 137145
Patch

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

&gt; Source/WebCore/bindings/scripts/test/TestSerializedScriptValueInterface.idl:37
&gt; +        readonly attribute [MessagePortArray] Array ports;

This looks pretty good, but I wonder if we should just use the type &quot;MessagePortArray&quot; instead of &quot;Array&quot;.  Then we wouldn&apos;t need to introduce a new IDL attribute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602422</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-04-13 14:37:04 -0700</bug_when>
    <thetext>Greg, I&apos;m about to go on vacation for two weeks, but hopefully Kentaro will be able to work with you on this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603215</commentid>
    <comment_count>5</comment_count>
      <attachid>137145</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-16 09:38:05 -0700</bug_when>
    <thetext>Comment on attachment 137145
Patch

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

&gt;&gt; Source/WebCore/bindings/scripts/test/TestSerializedScriptValueInterface.idl:37
&gt;&gt; +        readonly attribute [MessagePortArray] Array ports;
&gt; 
&gt; This looks pretty good, but I wonder if we should just use the type &quot;MessagePortArray&quot; instead of &quot;Array&quot;.  Then we wouldn&apos;t need to introduce a new IDL attribute.

Greg: Same comment. Would you update the patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603295</commentid>
    <comment_count>6</comment_count>
      <attachid>137145</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-04-16 11:25:43 -0700</bug_when>
    <thetext>Comment on attachment 137145
Patch

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

&gt;&gt;&gt; Source/WebCore/bindings/scripts/test/TestSerializedScriptValueInterface.idl:37
&gt;&gt;&gt; +        readonly attribute [MessagePortArray] Array ports;
&gt;&gt; 
&gt;&gt; This looks pretty good, but I wonder if we should just use the type &quot;MessagePortArray&quot; instead of &quot;Array&quot;.  Then we wouldn&apos;t need to introduce a new IDL attribute.
&gt; 
&gt; Greg: Same comment. Would you update the patch?

I&apos;m definitely cool with that. I was trying to hew close to the existing usage, but it&apos;d definitely be easier to use that type. I&apos;m not stepping on any other toes doing that, right? Is there any sort of &quot;IDLTypes&quot; list I need to update?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603298</commentid>
    <comment_count>7</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-16 11:28:01 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Is there any sort of &quot;IDLTypes&quot; list I need to update?

No:) The type is not checked anywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603313</commentid>
    <comment_count>8</comment_count>
      <attachid>137371</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-04-16 11:49:11 -0700</bug_when>
    <thetext>Created attachment 137371
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603315</commentid>
    <comment_count>9</comment_count>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-04-16 11:50:45 -0700</bug_when>
    <thetext>Diff to patch 1 is changing the check in codegen. There&apos;s a bit of skew in the generated files, but there were no changes in the generated handling for MessagePortArray types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603326</commentid>
    <comment_count>10</comment_count>
      <attachid>137371</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-16 12:20:50 -0700</bug_when>
    <thetext>Comment on attachment 137371
Patch

The change looks good. What is the plan for JSC/GObject/CPP/ObjC? (i.e. should we generate some code or skip generating code for those bindings?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603531</commentid>
    <comment_count>11</comment_count>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-04-16 16:03:39 -0700</bug_when>
    <thetext>I made a similarly aimed change for transfer parameters code gen (https://bugs.webkit.org/show_bug.cgi?id=81127). There we filed https://bugs.webkit.org/show_bug.cgi?id=82264 for a JSC implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603532</commentid>
    <comment_count>12</comment_count>
      <attachid>137371</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-16 16:06:29 -0700</bug_when>
    <thetext>Comment on attachment 137371
Patch

OK. Then please file a bug for JSC, and please work on it sooner or later. We want to make V8 and JSC consistent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603536</commentid>
    <comment_count>13</comment_count>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-04-16 16:11:59 -0700</bug_when>
    <thetext>Filed https://bugs.webkit.org/show_bug.cgi?id=84093</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603570</commentid>
    <comment_count>14</comment_count>
      <attachid>137371</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-16 16:50:54 -0700</bug_when>
    <thetext>Comment on attachment 137371
Patch

Clearing flags on attachment: 137371

Committed r114319: &lt;http://trac.webkit.org/changeset/114319&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603571</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-16 16:50:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137145</attachid>
            <date>2012-04-13 14:04:57 -0700</date>
            <delta_ts>2012-04-16 11:49:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83943-20120413140456.patch</filename>
            <type>text/plain</type>
            <size>20871</size>
            <attacher name="Greg Billock">gbillock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzNTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDBjZTM2NGUxNTJlZTM2
YTA2MjMxN2ZlM2Y3OWNiMjc4YTIzZTdkOC4uNGU1OTdjNjY1ZTQ5NmRjODIyNWVmYTg5ZTQ3Yjg5
ZDEyMWEzODJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA0LTEzICBHcmVn
IEJpbGxvY2sgIDxnYmlsbG9ja0Bnb29nbGUuY29tPgorCisgICAgICAgIEFkZCBWOCBjb2RlIGdl
bmVyYXRpb24gc3VwcG9ydCBmb3IgTWVzc2FnZVBvcnRzIGF0dHJpYnV0ZXMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04Mzk0MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChHZW5lcmF0ZU5vcm1hbEF0dHJHZXR0ZXIpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQ6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkRPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2U6OnBvcnRzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dl
YkRPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkRP
TVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuY3BwOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X3NlcmlhbGl6ZWRfc2NyaXB0
X3ZhbHVlX2ludGVyZmFjZV9nZXRfcHJvcGVydHkpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0
X3NlcmlhbGl6ZWRfc2NyaXB0X3ZhbHVlX2ludGVyZmFjZV9jbGFzc19pbml0KToKKyAgICAgICAg
KHdlYmtpdF9kb21fdGVzdF9zZXJpYWxpemVkX3NjcmlwdF92YWx1ZV9pbnRlcmZhY2VfZ2V0X3Bv
cnRzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmg6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZVBvcnRzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmg6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L09iakMvRE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5tbToKKyAg
ICAgICAgKC1bRE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSBwb3J0c10pOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlLmlkbDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VJbnRlcm5hbDo6cG9ydHNBdHRyR2V0dGVy
KToKKyAgICAgICAgKFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VJbnRlcm5hbCk6
CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wNC0wOSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQu
cmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjExMzU2MS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0KaW5kZXggOTcxY2ZhNjI5ODJhN2RjNzQ5YWEwNzMxZTAxODBkOTUwYzVkYWY3
ZC4uYmExMWNkZTZhNjhkNGM5NzhhZjE2NDFhZjRkMjljN2QwMGIxMGM2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTkx
Miw2ICs5MTIsNyBAQCBFTkQKICAgICAjIHRoZSBuZXdseSBjcmVhdGVkIHdyYXBwZXIgaW50byBh
biBpbnRlcm5hbCBmaWVsZCBvZiB0aGUgaG9sZGVyIG9iamVjdC4KICAgICBpZiAoIUlzTm9kZVN1
YlR5cGUoJGRhdGFOb2RlKSAmJiAkYXR0ck5hbWUgbmUgInNlbGYiICYmIChJc1dyYXBwZXJUeXBl
KCRyZXR1cm5UeXBlKSAmJiAoJGF0dHJpYnV0ZS0+dHlwZSA9fiAvXnJlYWRvbmx5LyB8fCAkYXR0
cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZXBsYWNlYWJsZSJ9KQog
ICAgICAgICAmJiAkcmV0dXJuVHlwZSBuZSAiRXZlbnRUYXJnZXQiICYmICRyZXR1cm5UeXBlIG5l
ICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiICYmICRyZXR1cm5UeXBlIG5lICJET01XaW5kb3ciIAor
ICAgICAgICAmJiAhJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
TWVzc2FnZVBvcnRBcnJheSJ9CiAgICAgICAgICYmICRyZXR1cm5UeXBlICF+IC9TVkcvICYmICRy
ZXR1cm5UeXBlICF+IC9IVE1MLyAmJiAhSXNET01Ob2RlVHlwZSgkcmV0dXJuVHlwZSkpKSB7CiAK
ICAgICAgICAgbXkgJGFycmF5VHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRBcnJheVR5cGUoJHJl
dHVyblR5cGUpOwpAQCAtOTg2LDYgKzk4NywyMCBAQCBFTkQKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgcmV0dXJuIHRvVjgoV1RGOjpn
ZXRQdHIoJHt0ZWFyT2ZmVHlwZX06OmNyZWF0ZSgkcmVzdWx0KSkpO1xuIik7CiAgICAgICAgIH0K
KyAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJNZXNzYWdlUG9ydEFycmF5In0pIHsKKyAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlY4QXJy
YXkuaCIpOworICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiTWVzc2FnZVBvcnQuaCIpOworICAg
ICAgICBteSAkZ2V0dGVyRnVuYyA9ICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+bmFtZSk7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIDw8
RU5EKTsKKyAgICBNZXNzYWdlUG9ydEFycmF5KiBwb3J0cyA9IGltcC0+JHtnZXR0ZXJGdW5jfSgp
OworICAgIGlmICghcG9ydHMpCisgICAgICAgIHJldHVybiB2ODo6QXJyYXk6Ok5ldygwKTsKKyAg
ICBNZXNzYWdlUG9ydEFycmF5IHBvcnRzQ29weSgqcG9ydHMpOworICAgIHY4OjpMb2NhbDx2ODo6
QXJyYXk+IHBvcnRBcnJheSA9IHY4OjpBcnJheTo6TmV3KHBvcnRzQ29weS5zaXplKCkpOworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcG9ydHNDb3B5LnNpemUoKTsgKytpKQorICAgICAgICBw
b3J0QXJyYXktPlNldCh2ODo6SW50ZWdlcjo6TmV3KGkpLCB0b1Y4KHBvcnRzQ29weVtpXS5nZXQo
KSkpOworICAgIHJldHVybiBwb3J0QXJyYXk7CitFTkQKICAgICB9IGVsc2UgewogICAgICAgICBp
ZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUi
ICYmICRhdHRyRXh0LT57IkNhY2hlZEF0dHJpYnV0ZSJ9KSB7CiAgICAgICAgICAgICBteSAkZ2V0
dGVyRnVuYyA9ICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+bmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lE
TEF0dHJpYnV0ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRy
aWJ1dGVzLnR4dAppbmRleCBiODc2NGIyOWJkM2I5ODhjZDUxZWJiZDRiYWM5ZWE5ZmRlMTFlNzFh
Li41ZGJlN2I1NjBhMTQyNDA5OThhNzE3ODYwZjQ3MjEyMDgzNWMwODAyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKQEAgLTgxLDYg
KzgxLDcgQEAgSlNMZWdhY3lQYXJlbnQ9KgogSlNOb1N0YXRpY1RhYmxlcwogSlNXaW5kb3dFdmVu
dExpc3RlbmVyCiBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkCitNZXNzYWdlUG9ydEFycmF5CiBOYW1l
ZENvbnN0cnVjdG9yPSoKIE5hbWVkR2V0dGVyCiBOb3RFbnVtZXJhYmxlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0NQUC9XZWJET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNw
cAppbmRleCBkOTRkZjM5OTQ0NjAxODkyNzlhNDYyMjM2N2UzMjI0MzRmNjM4ZDk3Li5lMGMwYWFk
NWM2NmUyODY4YWJhYjMxNzMzMDViYjg2YjRjMjk0ZWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9DUFAvV2ViRE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAg
LTExNyw2ICsxMTcsMTQgQEAgdm9pZCBXZWJET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlOjpzZXRDYWNoZWRWYWx1ZShjb25zdCBXZWJET01TdHJpbmcKICAgICBpbXBsKCktPnNl
dENhY2hlZFZhbHVlKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKFdURjo6
U3RyaW5nKG5ld0NhY2hlZFZhbHVlKSkpOwogfQogCitXZWJET01BcnJheSBXZWJET01UZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpwb3J0cygpIGNvbnN0Cit7CisgICAgaWYgKCFp
bXBsKCkpCisgICAgICAgIHJldHVybiBXZWJET01BcnJheSgpOworCisgICAgcmV0dXJuIHRvV2Vi
S2l0KFdURjo6Z2V0UHRyKGltcGwoKS0+cG9ydHMoKSkpOworfQorCiBXZWJET01TdHJpbmcgV2Vi
RE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6Y2FjaGVkUmVhZG9ubHlWYWx1
ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpbXBsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAv
V2ViRE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCmluZGV4IDY1OTRiOGE2
MjE0NDBhN2RhZDVlYWE1NzI3MDQ2ZGM5ZjQ0ZjM2ODcuLmNiNzlkMGM2YjczNGVmZDIyMTk1N2Q0
YmU2OWNhMzYxNTM5NzA4M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCkBAIC00OCw2ICs0OCw3IEBAIHB1Ymxp
YzoKICAgICBXZWJET01TdHJpbmcgcmVhZG9ubHlWYWx1ZSgpIGNvbnN0OwogICAgIFdlYkRPTVN0
cmluZyBjYWNoZWRWYWx1ZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0Q2FjaGVkVmFsdWUoY29uc3Qg
V2ViRE9NU3RyaW5nJik7CisgICAgV2ViRE9NQXJyYXkgcG9ydHMoKSBjb25zdDsKICAgICBXZWJE
T01TdHJpbmcgY2FjaGVkUmVhZG9ubHlWYWx1ZSgpIGNvbnN0OwogCiAgICAgdm9pZCBhY2NlcHRU
cmFuc2Zlckxpc3QoY29uc3QgV2ViRE9NU3RyaW5nJiBkYXRhLCBjb25zdCBXZWJET01BcnJheSYg
dHJhbnNmZXJMaXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2Vi
S2l0RE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggYmU2YTM4
MTM5OWE3NjFhMDNkYjYwNmQyZDM2MzU5MDY0OTA2ZjEwYS4uMDAxOTBkYmE5YTRkMzI2YmQwZDlk
YTY5MTJkOGZhY2NiMjZlM2RlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dP
YmplY3QvV2ViS2l0RE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAg
LTIzLDYgKzIzLDcgQEAKIAogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMikKIAorI2luY2x1ZGUgIkFycmF5LmgiCiAjaW5jbHVkZSAiRE9NT2JqZWN0Q2FjaGUuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0
YXRlLmgiCkBAIC04Niw2ICs4Nyw3IEBAIGVudW0gewogICAgIFBST1BfVkFMVUUsCiAgICAgUFJP
UF9SRUFET05MWV9WQUxVRSwKICAgICBQUk9QX0NBQ0hFRF9WQUxVRSwKKyAgICBQUk9QX1BPUlRT
LAogICAgIFBST1BfQ0FDSEVEX1JFQURPTkxZX1ZBTFVFLAogfTsKIApAQCAtMTM5LDYgKzE0MSwx
MSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfc2VyaWFsaXplZF9zY3JpcHRfdmFsdWVf
aW50ZXJmYWNlX2dldF9wcm9wZXJ0eShHT2JqZQogICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3Qo
dmFsdWUsIFdlYktpdDo6a2l0KHB0ci5nZXQoKSkpOwogICAgICAgICBicmVhazsKICAgICB9Cisg
ICAgY2FzZSBQUk9QX1BPUlRTOiB7CisgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpBcnJheT4gcHRy
ID0gY29yZVNlbGYtPnBvcnRzKCk7CisgICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwg
V2ViS2l0OjpraXQocHRyLmdldCgpKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICBjYXNl
IFBST1BfQ0FDSEVEX1JFQURPTkxZX1ZBTFVFOiB7CiAgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IHB0ciA9IGNvcmVTZWxmLT5jYWNoZWRSZWFkb25seVZhbHVl
KCk7CiAgICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgV2ViS2l0OjpraXQocHRyLmdl
dCgpKSk7CkBAIC0xODgsNiArMTk1LDEzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9z
ZXJpYWxpemVkX3NjcmlwdF92YWx1ZV9pbnRlcmZhY2VfY2xhc3NfaW5pdChXZWJLaXRECiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdF
QktJVF9UWVBFX0RPTV9TRVJJQUxJWkVEX1NDUklQVF9WQUxVRSwgLyogZ29iamVjdCB0eXBlICov
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxs
X3Byb3BlcnR5KGdvYmplY3RDbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFBST1BfUE9SVFMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3Bh
cmFtX3NwZWNfb2JqZWN0KCJwb3J0cyIsIC8qIG5hbWUgKi8KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3Rfc2VyaWFsaXplZF9z
Y3JpcHRfdmFsdWVfaW50ZXJmYWNlX3BvcnRzIiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InJlYWQtb25seSAgV2ViS2l0RE9NQXJyYXkqIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UucG9ydHMiLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9jIHN0
dWZmIGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgV0VCS0lUX1RZUEVfRE9NX0FSUkFZLCAvKiBnb2JqZWN0IHR5cGUgKi8K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9w
cm9wZXJ0eShnb2JqZWN0Q2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBQUk9QX0NBQ0hFRF9SRUFET05MWV9WQUxVRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoImNhY2hlZC1yZWFkb25seS12YWx1ZSIsIC8q
IG5hbWUgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInRlc3Rfc2VyaWFsaXplZF9zY3JpcHRfdmFsdWVfaW50ZXJmYWNlX2NhY2hl
ZC1yZWFkb25seS12YWx1ZSIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICovCkBAIC0zNTcsNiArMzcx
LDIzIEBAIHdlYmtpdF9kb21fdGVzdF9zZXJpYWxpemVkX3NjcmlwdF92YWx1ZV9pbnRlcmZhY2Vf
c2V0X2NhY2hlZF92YWx1ZShXZWJLaXRET01UZXN0CiAjZW5kaWYgLyogRU5BQkxFKENvbmRpdGlv
bjEpIHx8IEVOQUJMRShDb25kaXRpb24yKSAqLwogfQogCitXZWJLaXRET01BcnJheSoKK3dlYmtp
dF9kb21fdGVzdF9zZXJpYWxpemVkX3NjcmlwdF92YWx1ZV9pbnRlcmZhY2VfZ2V0X3BvcnRzKFdl
YktpdERPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIHNlbGYpCit7CisjaWYg
RU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQorICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKHNlbGYsIDApOworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICBXZWJDb3JlOjpUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBp
dGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFJlZlB0cjxXZWJDb3JlOjpBcnJheT4gZ29i
amVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPnBvcnRzKCkpOworICAgIFdlYktpdERPTUFy
cmF5KiByZXN1bHQgPSBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKKyAgICByZXR1
cm4gcmVzdWx0OworI2Vsc2UKKyAgICBXRUJLSVRfV0FSTl9GRUFUVVJFX05PVF9QUkVTRU5UKCJD
b25kaXRpb24xIikKKyAgICBXRUJLSVRfV0FSTl9GRUFUVVJFX05PVF9QUkVTRU5UKCJDb25kaXRp
b24yIikKKyAgICByZXR1cm4gMDsKKyNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5B
QkxFKENvbmRpdGlvbjIpICovCit9CisKIFdlYktpdERPTVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSoK
IHdlYmtpdF9kb21fdGVzdF9zZXJpYWxpemVkX3NjcmlwdF92YWx1ZV9pbnRlcmZhY2VfZ2V0X2Nh
Y2hlZF9yZWFkb25seV92YWx1ZShXZWJLaXRET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlKiBzZWxmKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2Vi
S2l0RE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCmluZGV4IDM0ZmM4ZWI0
ZjY2MjEzZDUwNTk5MDZkZmNhODdhODFlNzQ2NjVmMzcuLjhmZDI3NWZkOWU5NGY5MDM2OWJjMTEx
MDRiYjA3OWQzMDg0MjhlZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKQEAgLTEyNCw2
ICsxMjQsMTYgQEAgV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfZG9tX3Rlc3Rfc2VyaWFsaXplZF9z
Y3JpcHRfdmFsdWVfaW50ZXJmYWNlX3NldF9jYWNoZWRfdmFsdWUoV2ViS2l0RE9NVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogc2VsZiwgV2ViS2l0RE9NU2VyaWFsaXplZFNjcmlw
dFZhbHVlKiB2YWx1ZSk7CiAKIC8qKgorICogd2Via2l0X2RvbV90ZXN0X3NlcmlhbGl6ZWRfc2Ny
aXB0X3ZhbHVlX2ludGVyZmFjZV9nZXRfcG9ydHM6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZQorICoKKyAqIFJldHVybnM6ICh0cmFuc2Zl
ciBub25lKToKKyAqCisqKi8KK1dFQktJVF9BUEkgV2ViS2l0RE9NQXJyYXkqCit3ZWJraXRfZG9t
X3Rlc3Rfc2VyaWFsaXplZF9zY3JpcHRfdmFsdWVfaW50ZXJmYWNlX2dldF9wb3J0cyhXZWJLaXRE
T01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBzZWxmKTsKKworLyoqCiAgKiB3
ZWJraXRfZG9tX3Rlc3Rfc2VyaWFsaXplZF9zY3JpcHRfdmFsdWVfaW50ZXJmYWNlX2dldF9jYWNo
ZWRfcmVhZG9ubHlfdmFsdWU6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZQogICoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggMWQ4ZGU5NDA2MGNkNDZiZjNmMjJh
YzI0NWY2MTA0YzJhMmUxOWNhYy4uNWYxOTU4NjVlYjAwMzQyOGI1NzliNDI4MDkyYTUzNGVjZmFm
NzIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZS5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgIkpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oIgogCisjaW5jbHVkZSAiQXJyYXkuaCIKICNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpT
RE9NQmluZGluZy5oIgpAQCAtNDQsNiArNDUsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFs
dWUgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVGFibGVWYWx1ZXNbXSA9CiAg
ICAgeyAidmFsdWUiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZh
bHVlKSwgKGludHB0cl90KXNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZh
bHVlLCBOb0ludHJpbnNpYyB9LAogICAgIHsgInJlYWRvbmx5VmFsdWUiLCBEb250RGVsZXRlIHwg
UmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUmVhZG9ubHlWYWx1ZSksIChp
bnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAogICAgIHsgImNhY2hlZFZhbHVlIiwgRG9udERlbGV0
ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZSksIChpbnRwdHJfdClz
ZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZSwgTm9JbnRy
aW5zaWMgfSwKKyAgICB7ICJwb3J0cyIsIERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VQb3J0cyksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAog
ICAgIHsgImNhY2hlZFJlYWRvbmx5VmFsdWUiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkUmVhZG9ubHlWYWx1ZSksIChpbnRwdHJfdCkw
LCBOb0ludHJpbnNpYyB9LAogICAgIHsgImNvbnN0cnVjdG9yIiwgRG9udEVudW0gfCBSZWFkT25s
eSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkw
LCBOb0ludHJpbnNpYyB9LAogICAgIHsgMCwgMCwgMCwgMCwgTm9JbnRyaW5zaWMgfQpAQCAtMjEz
LDYgKzIxNSwxNiBAQCBKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZUNhY2hlZFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZQogfQogCiAKK0pTVmFsdWUganNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUG9ydHMoRXhlY1N0YXRlKiBleGVjLCBK
U1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKKyAgICBVTlVT
RURfUEFSQU0oZXhlYyk7CisgICAgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSog
aW1wbCA9IHN0YXRpY19jYXN0PFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqPihj
YXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0
ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQdHIoaW1wbC0+cG9ydHMoKSkpOworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKKwogSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VDYWNoZWRSZWFkb25seVZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBz
bG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCiB7CiAgICAgSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZSo+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKaW5kZXggYWQ0NGI1N2E3
OTc4YjU0MmU0ZjZjYmI0ZDJhNzlmNzA4NGM4ZTE4Yi4uODBkZjFlMGI3ZDI3Zjc4ZGNhMzUzN2Mw
ZWVkOTZmZWZjMjNhNWUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UuaApAQCAtMTU0LDYgKzE1NCw3IEBAIHZvaWQgc2V0SlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTT2JqZWN0CiBKU0M6OkpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlUmVhZG9ubHlWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlND
OjpJZGVudGlmaWVyJik7CiBKU0M6OkpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlQ2FjaGVkVmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYpOwogdm9pZCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VDYWNoZWRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6
OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZVBvcnRzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50
aWZpZXImKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2VDYWNoZWRSZWFkb25seVZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25z
dCBKU0M6OklkZW50aWZpZXImKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAppbmRleCBjZTUyMWQxNDU0NWE0ZDFi
ZWE5MjRiZDI4NWM5Zjc4Njc4NzUyZjg2Li5hNmY1MTQ4ZWI2OWI4NGY2YzgxNjFhMWNjZGYzMmI1
MmNhOTA5MDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvT2JqQy9ET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZS5oCkBAIC0zNyw2ICszNyw3IEBACiAtIChOU1N0cmluZyAqKXJl
YWRvbmx5VmFsdWU7CiAtIChOU1N0cmluZyAqKWNhY2hlZFZhbHVlOwogLSAodm9pZClzZXRDYWNo
ZWRWYWx1ZTooTlNTdHJpbmcgKiluZXdDYWNoZWRWYWx1ZTsKKy0gKERPTUFycmF5ICopcG9ydHM7
CiAtIChOU1N0cmluZyAqKWNhY2hlZFJlYWRvbmx5VmFsdWU7CiAtICh2b2lkKWFjY2VwdFRyYW5z
ZmVyTGlzdDooTlNTdHJpbmcgKilkYXRhIHRyYW5zZmVyTGlzdDooRE9NQXJyYXkgKil0cmFuc2Zl
ckxpc3Q7CiAtICh2b2lkKW11bHRpVHJhbnNmZXJMaXN0OihOU1N0cmluZyAqKWZpcnN0IHR4OihE
T01BcnJheSAqKXR4IHNlY29uZDooTlNTdHJpbmcgKilzZWNvbmQgdHh4OihET01BcnJheSAqKXR4
eDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpD
L0RPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlLm1tCmluZGV4IDE2OGYwOTZiOTQ2N2YwMDU1MDQwZjdhZTg0MGE0OTVkNTcxYjE4
MDYuLjM5MTQyOTc0ZjUyNDJmNDExN2IxZTc0MDhkNjM0NzdiMGMyYjFkNWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5t
bQpAQCAtMTA1LDYgKzEwNSwxMiBAQAogICAgIElNUEwtPnNldENhY2hlZFZhbHVlKFdlYkNvcmU6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKFdURjo6U3RyaW5nKG5ld0NhY2hlZFZhbHVl
KSkpOwogfQogCistIChET01BcnJheSAqKXBvcnRzCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+cG9y
dHMoKSkpOworfQorCiAtIChOU1N0cmluZyAqKWNhY2hlZFJlYWRvbmx5VmFsdWUKIHsKICAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5pZGwKaW5kZXggYzRiODg2YTE5MmZkMDQ1MGRk
NDAxN2ZjMTk4Njc2YTNlNWRkZTIxNC4uYzExNjIzYzE0MjcxNWFiMTVkYTg0ODU2OWMxZGRlYWFi
N2U5ZTg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlLmlkbApAQCAtMzQsNiArMzQsNyBAQCBtb2R1bGUgdGVzdCB7CiAgICAgICAgIGF0dHJpYnV0
ZSBTZXJpYWxpemVkU2NyaXB0VmFsdWUgdmFsdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTZXJpYWxpemVkU2NyaXB0VmFsdWUgcmVhZG9ubHlWYWx1ZTsKICAgICAgICAgYXR0cmlidXRl
IFtDYWNoZWRBdHRyaWJ1dGVdIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBjYWNoZWRWYWx1ZTsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtNZXNzYWdlUG9ydEFycmF5XSBBcnJheSBwb3J0czsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDYWNoZWRBdHRyaWJ1dGVdIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSBjYWNoZWRSZWFkb25seVZhbHVlOwogICAgICAgICB2b2lkIGFjY2VwdFRyYW5z
ZmVyTGlzdChpbiBbVHJhbnNmZXJMaXN0PXRyYW5zZmVyTGlzdF0gU2VyaWFsaXplZFNjcmlwdFZh
bHVlIGRhdGEsIGluIFtPcHRpb25hbF0gQXJyYXkgdHJhbnNmZXJMaXN0KTsKICAgICAgICAgdm9p
ZCBtdWx0aVRyYW5zZmVyTGlzdChpbiBbT3B0aW9uYWwsIFRyYW5zZmVyTGlzdD10eF0gU2VyaWFs
aXplZFNjcmlwdFZhbHVlIGZpcnN0LCBpbiBbT3B0aW9uYWxdIEFycmF5IHR4LCBpbiBbT3B0aW9u
YWwsIFRyYW5zZmVyTGlzdD10eHhdIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBzZWNvbmQsIGluIFtP
cHRpb25hbF0gQXJyYXkgdHh4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggMjJmZTI4OGYxMTI1MzliMDUzYWEyOWI2
ZWExMmE1MWU5MmM0MTNmZC4uNzQ4YTY0YjMwY2M0MDEwMzJjMWFkMmIwNzRhMWYxZmU2NDBjZGIy
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgog
I2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTZXJpYWxpemVk
U2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJWOEFycmF5LmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5n
LmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nTWFjcm9zLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nU3Rh
dGUuaCIKQEAgLTkxLDYgKzkyLDIwIEBAIHN0YXRpYyB2b2lkIGNhY2hlZFZhbHVlQXR0clNldHRl
cih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1CiAgICAgcmV0
dXJuOwogfQogCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHBvcnRzQXR0ckdldHRlcih2
ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykK
K3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
LnBvcnRzLl9nZXQiKTsKKyAgICBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBp
bXAgPSBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OnRvTmF0aXZlKGluZm8u
SG9sZGVyKCkpOworICAgIE1lc3NhZ2VQb3J0QXJyYXkqIHBvcnRzID0gaW1wLT5wb3J0cygpOwor
ICAgIGlmICghcG9ydHMpCisgICAgICAgIHJldHVybiB2ODo6QXJyYXk6Ok5ldygwKTsKKyAgICBN
ZXNzYWdlUG9ydEFycmF5IHBvcnRzQ29weSgqcG9ydHMpOworICAgIHY4OjpMb2NhbDx2ODo6QXJy
YXk+IHBvcnRBcnJheSA9IHY4OjpBcnJheTo6TmV3KHBvcnRzQ29weS5zaXplKCkpOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgcG9ydHNDb3B5LnNpemUoKTsgKytpKQorICAgICAgICBwb3J0
QXJyYXktPlNldCh2ODo6SW50ZWdlcjo6TmV3KGkpLCB0b1Y4KHBvcnRzQ29weVtpXS5nZXQoKSkp
OworICAgIHJldHVybiBwb3J0QXJyYXk7Cit9CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gY2FjaGVkUmVhZG9ubHlWYWx1ZUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5h
bWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgSU5DX1NUQVRTKCJET00u
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jYWNoZWRSZWFkb25seVZhbHVlLl9n
ZXQiKTsKQEAgLTE4Miw2ICsxOTcsOCBAQCBzdGF0aWMgY29uc3QgQmF0Y2hlZEF0dHJpYnV0ZSBU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQXR0cnNbXSA9IHsKICAgICB7InJlYWRv
bmx5VmFsdWUiLCBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlSW50ZXJuYWw6OnJl
YWRvbmx5VmFsdWVBdHRyR2V0dGVyLCAwLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4
OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0
dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1
dGUgJ2NhY2hlZFZhbHVlJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ0NhY2hlZEF0dHJp
YnV0ZScpCiAgICAgeyJjYWNoZWRWYWx1ZSIsIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VJbnRlcm5hbDo6Y2FjaGVkVmFsdWVBdHRyR2V0dGVyLCBUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlSW50ZXJuYWw6OmNhY2hlZFZhbHVlQXR0clNldHRlciwgMCAvKiBubyBk
YXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0
aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5j
ZSAqL30sCisgICAgLy8gQXR0cmlidXRlICdwb3J0cycgKFR5cGU6ICdyZWFkb25seSBhdHRyaWJ1
dGUnIEV4dEF0dHI6ICdNZXNzYWdlUG9ydEFycmF5JykKKyAgICB7InBvcnRzIiwgVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUludGVybmFsOjpwb3J0c0F0dHJHZXR0ZXIsIDAsIDAg
Lyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxU
KSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24g
aW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAnY2FjaGVkUmVhZG9ubHlWYWx1ZScgKFR5
cGU6ICdyZWFkb25seSBhdHRyaWJ1dGUnIEV4dEF0dHI6ICdDYWNoZWRBdHRyaWJ1dGUnKQogICAg
IHsiY2FjaGVkUmVhZG9ubHlWYWx1ZSIsIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2VJbnRlcm5hbDo6Y2FjaGVkUmVhZG9ubHlWYWx1ZUF0dHJHZXR0ZXIsIDAsIDAgLyogbm8gZGF0
YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGlj
X2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2Ug
Ki99LAogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137371</attachid>
            <date>2012-04-16 11:49:11 -0700</date>
            <delta_ts>2012-04-16 16:50:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83943-20120416114910.patch</filename>
            <type>text/plain</type>
            <size>22378</size>
            <attacher name="Greg Billock">gbillock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM3MjE3NWFmZGEyMzkx
ZDIwMTcyMGI5ZGEzMDU4NDllMjMwNjQyOC4uODU3MTJhNTlhZTRjNTA4YTk3ZTNhZjg0NDc5ZTE4
MDNlYTcxZjU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA0LTEzICBHcmVn
IEJpbGxvY2sgIDxnYmlsbG9ja0Bnb29nbGUuY29tPgorCisgICAgICAgIEFkZCBWOCBjb2RlIGdl
bmVyYXRpb24gc3VwcG9ydCBmb3IgTWVzc2FnZVBvcnRBcnJheSBhdHRyaWJ1dGVzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM5NDMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVOb3JtYWxBdHRyR2V0dGVy
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0OgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJET01UZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlOjpwb3J0cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQ
UC9XZWJET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmg6CisgICAgICAgIChX
ZWJET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9zZXJpYWxpemVkX3Nj
cmlwdF92YWx1ZV9pbnRlcmZhY2VfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9kb21f
dGVzdF9zZXJpYWxpemVkX3NjcmlwdF92YWx1ZV9pbnRlcmZhY2VfY2xhc3NfaW5pdCk6CisgICAg
ICAgICh3ZWJraXRfZG9tX3Rlc3Rfc2VyaWFsaXplZF9zY3JpcHRfdmFsdWVfaW50ZXJmYWNlX2dl
dF9wb3J0cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0
RE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQb3J0cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UubW06
CisgICAgICAgICgtW0RPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UgcG9ydHNd
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZS5pZGw6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlSW50ZXJuYWw6OnBvcnRzQXR0ckdl
dHRlcik6CisgICAgICAgIChUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlSW50ZXJu
YWwpOgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDQtMTYgIEphc29uIExpdSAgPGphc29u
LmxpdUB0b3JjaG1vYmlsZS5jb20uY24+CiAKICAgICAgICAgW0JsYWNrQmVycnldIE1pc3Npbmcg
cmVhZHlTdGF0ZSAyIHdoZW4gYSBYTUxIdHRwUmVxdWVzdCBjYWxscyB4bWxodHRwLm9wZW4oIkhF
QUQiLCJub3RFeGlzdC5odG1sIix0cnVlKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggZTk2OGE3MzU5YjcxYTYwZjg1ODMx
YTg2NGQzYjhjOTk5MTExM2UzZS4uNjAzYWViMzA0ZDlkMTFhMWE1MGFlMTFhNmU4MzU5ZTdjYTQ3
NWNjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0KQEAgLTkxMCw2ICs5MTAsNyBAQCBFTkQKICAgICAjIHRoZSBuZXdseSBjcmVh
dGVkIHdyYXBwZXIgaW50byBhbiBpbnRlcm5hbCBmaWVsZCBvZiB0aGUgaG9sZGVyIG9iamVjdC4K
ICAgICBpZiAoIUlzTm9kZVN1YlR5cGUoJGRhdGFOb2RlKSAmJiAkYXR0ck5hbWUgbmUgInNlbGYi
ICYmIChJc1dyYXBwZXJUeXBlKCRyZXR1cm5UeXBlKSAmJiAoJGF0dHJpYnV0ZS0+dHlwZSA9fiAv
XnJlYWRvbmx5LyB8fCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJSZXBsYWNlYWJsZSJ9KQogICAgICAgICAmJiAkcmV0dXJuVHlwZSBuZSAiRXZlbnRUYXJnZXQi
ICYmICRyZXR1cm5UeXBlIG5lICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiICYmICRyZXR1cm5UeXBl
IG5lICJET01XaW5kb3ciIAorICAgICAgICAmJiAkcmV0dXJuVHlwZSBuZSAiTWVzc2FnZVBvcnRB
cnJheSIKICAgICAgICAgJiYgJHJldHVyblR5cGUgIX4gL1NWRy8gJiYgJHJldHVyblR5cGUgIX4g
L0hUTUwvICYmICFJc0RPTU5vZGVUeXBlKCRyZXR1cm5UeXBlKSkpIHsKIAogICAgICAgICBteSAk
YXJyYXlUeXBlID0gJGNvZGVHZW5lcmF0b3ItPkdldEFycmF5VHlwZSgkcmV0dXJuVHlwZSk7CkBA
IC05ODQsNiArOTg1LDIwIEBAIEVORAogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgIiAgICByZXR1cm4gdG9WOChXVEY6OmdldFB0cigke3RlYXJP
ZmZUeXBlfTo6Y3JlYXRlKCRyZXN1bHQpKSk7XG4iKTsKICAgICAgICAgfQorICAgIH0gZWxzaWYg
KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSBlcSAiTWVzc2FnZVBvcnRBcnJheSIpIHsKKyAg
ICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlY4QXJyYXkuaCIpOworICAgICAgICBBZGRUb0ltcGxJ
bmNsdWRlcygiTWVzc2FnZVBvcnQuaCIpOworICAgICAgICBteSAkZ2V0dGVyRnVuYyA9ICRjb2Rl
R2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSk7CisgICAg
ICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIDw8RU5EKTsKKyAgICBNZXNzYWdlUG9ydEFycmF5
KiBwb3J0cyA9IGltcC0+JHtnZXR0ZXJGdW5jfSgpOworICAgIGlmICghcG9ydHMpCisgICAgICAg
IHJldHVybiB2ODo6QXJyYXk6Ok5ldygwKTsKKyAgICBNZXNzYWdlUG9ydEFycmF5IHBvcnRzQ29w
eSgqcG9ydHMpOworICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IHBvcnRBcnJheSA9IHY4OjpBcnJh
eTo6TmV3KHBvcnRzQ29weS5zaXplKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcG9y
dHNDb3B5LnNpemUoKTsgKytpKQorICAgICAgICBwb3J0QXJyYXktPlNldCh2ODo6SW50ZWdlcjo6
TmV3KGkpLCB0b1Y4KHBvcnRzQ29weVtpXS5nZXQoKSkpOworICAgIHJldHVybiBwb3J0QXJyYXk7
CitFTkQKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50
eXBlIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiICYmICRhdHRyRXh0LT57IkNhY2hlZEF0dHJp
YnV0ZSJ9KSB7CiAgICAgICAgICAgICBteSAkZ2V0dGVyRnVuYyA9ICRjb2RlR2VuZXJhdG9yLT5X
S19sY2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0NQUC9XZWJET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcApp
bmRleCBkOTRkZjM5OTQ0NjAxODkyNzlhNDYyMjM2N2UzMjI0MzRmNjM4ZDk3Li5hZDY4YzlhN2Iz
MDU1OGEzN2RjN2IwZDFmN2ZkMWM5M2RkMzAwNGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9DUFAvV2ViRE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAgLTI1
LDkgKzI1LDExIEBACiAjaW5jbHVkZSAiV2ViRE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZS5oIgogCiAjaW5jbHVkZSAiQXJyYXkuaCIKKyNpbmNsdWRlICJNZXNzYWdlUG9ydEFy
cmF5LmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oIgogI2luY2x1ZGUgIldlYkRPTUFycmF5
LmgiCisjaW5jbHVkZSAiV2ViRE9NTWVzc2FnZVBvcnRBcnJheS5oIgogI2luY2x1ZGUgIldlYkV4
Y2VwdGlvbkhhbmRsZXIuaCIKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgpAQCAtMTE3LDYgKzExOSwxNCBAQCB2b2lkIFdlYkRPTVRlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2U6OnNldENhY2hlZFZhbHVlKGNvbnN0IFdlYkRPTVN0cmluZwog
ICAgIGltcGwoKS0+c2V0Q2FjaGVkVmFsdWUoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVl
OjpjcmVhdGUoV1RGOjpTdHJpbmcobmV3Q2FjaGVkVmFsdWUpKSk7CiB9CiAKK1dlYkRPTU1lc3Nh
Z2VQb3J0QXJyYXkgV2ViRE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6cG9y
dHMoKSBjb25zdAoreworICAgIGlmICghaW1wbCgpKQorICAgICAgICByZXR1cm4gV2ViRE9NTWVz
c2FnZVBvcnRBcnJheSgpOworCisgICAgcmV0dXJuIHRvV2ViS2l0KFdURjo6Z2V0UHRyKGltcGwo
KS0+cG9ydHMoKSkpOworfQorCiBXZWJET01TdHJpbmcgV2ViRE9NVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZTo6Y2FjaGVkUmVhZG9ubHlWYWx1ZSgpIGNvbnN0CiB7CiAgICAgaWYg
KCFpbXBsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvQ1BQL1dlYkRPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZS5oCmluZGV4IDY1OTRiOGE2MjE0NDBhN2RhZDVlYWE1NzI3MDQ2
ZGM5ZjQ0ZjM2ODcuLjEzZTU2NTVjZjA5NjM3YmIwMTYyMGE4MDU2OTliZDdkODg0YzYxYzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9N
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZS5oCkBAIC0zMyw2ICszMyw3IEBAIGNsYXNzIFRlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2U7CiB9OwogCiBjbGFzcyBXZWJET01BcnJheTsKK2NsYXNzIFdlYkRPTU1l
c3NhZ2VQb3J0QXJyYXk7CiBjbGFzcyBXZWJET01TdHJpbmc7CiAKIGNsYXNzIFdlYkRPTVRlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UgOiBwdWJsaWMgV2ViRE9NT2JqZWN0IHsKQEAg
LTQ4LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIFdlYkRPTVN0cmluZyByZWFkb25seVZhbHVlKCkg
Y29uc3Q7CiAgICAgV2ViRE9NU3RyaW5nIGNhY2hlZFZhbHVlKCkgY29uc3Q7CiAgICAgdm9pZCBz
ZXRDYWNoZWRWYWx1ZShjb25zdCBXZWJET01TdHJpbmcmKTsKKyAgICBXZWJET01NZXNzYWdlUG9y
dEFycmF5IHBvcnRzKCkgY29uc3Q7CiAgICAgV2ViRE9NU3RyaW5nIGNhY2hlZFJlYWRvbmx5VmFs
dWUoKSBjb25zdDsKIAogICAgIHZvaWQgYWNjZXB0VHJhbnNmZXJMaXN0KGNvbnN0IFdlYkRPTVN0
cmluZyYgZGF0YSwgY29uc3QgV2ViRE9NQXJyYXkmIHRyYW5zZmVyTGlzdCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IGJlNmEzODEzOTlhNzYxYTAzZGI2MDZkMmQzNjM1OTA2
NDkwNmYxMGEuLmM3NjQyNTQ4MjdhOTgyOWRjMzVjNzE4M2RiMTMyZWY1NjdhYTg2OTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktp
dERPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC0yNiwxMiArMjYsMTUgQEAKICNpbmNsdWRl
ICJET01PYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRl
ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbmNsdWRlICJNZXNzYWdlUG9ydEFycmF5Lmgi
CiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oIgogI2luY2x1ZGUgIldlYktpdERPTUJpbmRpbmcu
aCIKICNpbmNsdWRlICJnb2JqZWN0L0NvbnZlcnRUb1VURjhTdHJpbmcuaCIKICNpbmNsdWRlICJ3
ZWJraXQvV2ViS2l0RE9NQXJyYXkuaCIKICNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0RE9NQXJyYXlQ
cml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdERPTU1lc3NhZ2VQb3J0QXJyYXkuaCIK
KyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0RE9NTWVzc2FnZVBvcnRBcnJheVByaXZhdGUuaCIKICNp
bmNsdWRlICJ3ZWJraXQvV2ViS2l0RE9NU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVk
ZSAid2Via2l0L1dlYktpdERPTVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZVByaXZhdGUuaCIKICNpbmNs
dWRlICJ3ZWJraXQvV2ViS2l0RE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBy
aXZhdGUuaCIKQEAgLTg2LDYgKzg5LDcgQEAgZW51bSB7CiAgICAgUFJPUF9WQUxVRSwKICAgICBQ
Uk9QX1JFQURPTkxZX1ZBTFVFLAogICAgIFBST1BfQ0FDSEVEX1ZBTFVFLAorICAgIFBST1BfUE9S
VFMsCiAgICAgUFJPUF9DQUNIRURfUkVBRE9OTFlfVkFMVUUsCiB9OwogCkBAIC0xMzksNiArMTQz
LDExIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9zZXJpYWxpemVkX3NjcmlwdF92YWx1
ZV9pbnRlcmZhY2VfZ2V0X3Byb3BlcnR5KEdPYmplCiAgICAgICAgIGdfdmFsdWVfc2V0X29iamVj
dCh2YWx1ZSwgV2ViS2l0OjpraXQocHRyLmdldCgpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
KyAgICBjYXNlIFBST1BfUE9SVFM6IHsKKyAgICAgICAgUmVmUHRyPFdlYkNvcmU6Ok1lc3NhZ2VQ
b3J0QXJyYXk+IHB0ciA9IGNvcmVTZWxmLT5wb3J0cygpOworICAgICAgICBnX3ZhbHVlX3NldF9v
YmplY3QodmFsdWUsIFdlYktpdDo6a2l0KHB0ci5nZXQoKSkpOworICAgICAgICBicmVhazsKKyAg
ICB9CiAgICAgY2FzZSBQUk9QX0NBQ0hFRF9SRUFET05MWV9WQUxVRTogewogICAgICAgICBSZWZQ
dHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBwdHIgPSBjb3JlU2VsZi0+Y2FjaGVk
UmVhZG9ubHlWYWx1ZSgpOwogICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIFdlYktp
dDo6a2l0KHB0ci5nZXQoKSkpOwpAQCAtMTg4LDYgKzE5NywxMyBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRfZG9tX3Rlc3Rfc2VyaWFsaXplZF9zY3JpcHRfdmFsdWVfaW50ZXJmYWNlX2NsYXNzX2luaXQo
V2ViS2l0RAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXRUJLSVRfVFlQRV9ET01fU0VSSUFMSVpFRF9TQ1JJUFRfVkFMVUUsIC8qIGdv
YmplY3QgdHlwZSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CiAgICAgZ19vYmplY3Rf
Y2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0Q2xhc3MsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBQUk9QX1BPUlRTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgicG9ydHMiLCAvKiBuYW1lICovCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0
X3NlcmlhbGl6ZWRfc2NyaXB0X3ZhbHVlX2ludGVyZmFjZV9wb3J0cyIsIC8qIHNob3J0IGRlc2Ny
aXB0aW9uICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJyZWFkLW9ubHkgIFdlYktpdERPTU1lc3NhZ2VQb3J0QXJyYXkqIFRlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UucG9ydHMiLCAvKiBsb25nZXIgLSBjb3VsZCBk
byB3aXRoIHNvbWUgZXh0cmEgZG9jIHN0dWZmIGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1RZUEVfRE9NX01F
U1NBR0VfUE9SVF9BUlJBWSwgLyogZ29iamVjdCB0eXBlICovCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFE
QUJMRSkpOworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNz
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9DQUNIRURfUkVBRE9O
TFlfVkFMVUUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3Nw
ZWNfb2JqZWN0KCJjYWNoZWQtcmVhZG9ubHktdmFsdWUiLCAvKiBuYW1lICovCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X3Nl
cmlhbGl6ZWRfc2NyaXB0X3ZhbHVlX2ludGVyZmFjZV9jYWNoZWQtcmVhZG9ubHktdmFsdWUiLCAv
KiBzaG9ydCBkZXNjcmlwdGlvbiAqLwpAQCAtMzU3LDYgKzM3MywyMyBAQCB3ZWJraXRfZG9tX3Rl
c3Rfc2VyaWFsaXplZF9zY3JpcHRfdmFsdWVfaW50ZXJmYWNlX3NldF9jYWNoZWRfdmFsdWUoV2Vi
S2l0RE9NVGVzdAogI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMikgKi8KIH0KIAorV2ViS2l0RE9NTWVzc2FnZVBvcnRBcnJheSoKK3dlYmtpdF9kb21fdGVz
dF9zZXJpYWxpemVkX3NjcmlwdF92YWx1ZV9pbnRlcmZhY2VfZ2V0X3BvcnRzKFdlYktpdERPTVRl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIHNlbGYpCit7CisjaWYgRU5BQkxFKENv
bmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQorICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KHNlbGYsIDApOworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICBXZWJDb3JlOjpUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBpdGVtID0gV2Vi
S2l0Ojpjb3JlKHNlbGYpOworICAgIFJlZlB0cjxXZWJDb3JlOjpNZXNzYWdlUG9ydEFycmF5PiBn
b2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+cG9ydHMoKSk7CisgICAgV2ViS2l0RE9N
TWVzc2FnZVBvcnRBcnJheSogcmVzdWx0ID0gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQo
KSk7CisgICAgcmV0dXJuIHJlc3VsdDsKKyNlbHNlCisgICAgV0VCS0lUX1dBUk5fRkVBVFVSRV9O
T1RfUFJFU0VOVCgiQ29uZGl0aW9uMSIpCisgICAgV0VCS0lUX1dBUk5fRkVBVFVSRV9OT1RfUFJF
U0VOVCgiQ29uZGl0aW9uMiIpCisgICAgcmV0dXJuIDA7CisjZW5kaWYgLyogRU5BQkxFKENvbmRp
dGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKSAqLworfQorCiBXZWJLaXRET01TZXJpYWxpemVk
U2NyaXB0VmFsdWUqCiB3ZWJraXRfZG9tX3Rlc3Rfc2VyaWFsaXplZF9zY3JpcHRfdmFsdWVfaW50
ZXJmYWNlX2dldF9jYWNoZWRfcmVhZG9ubHlfdmFsdWUoV2ViS2l0RE9NVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZSogc2VsZikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaApp
bmRleCAzNGZjOGViNGY2NjIxM2Q1MDU5OTA2ZGZjYTg3YTgxZTc0NjY1ZjM3Li43MjMyZmUzZTdh
YjliYWY3ZTdiNGYxYzU4OGU1MWM1MmJmOGI0MWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5oCkBAIC0xMjQsNiArMTI0LDE2IEBAIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X2RvbV90ZXN0
X3NlcmlhbGl6ZWRfc2NyaXB0X3ZhbHVlX2ludGVyZmFjZV9zZXRfY2FjaGVkX3ZhbHVlKFdlYktp
dERPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIHNlbGYsIFdlYktpdERPTVNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSogdmFsdWUpOwogCiAvKioKKyAqIHdlYmtpdF9kb21fdGVzdF9z
ZXJpYWxpemVkX3NjcmlwdF92YWx1ZV9pbnRlcmZhY2VfZ2V0X3BvcnRzOgorICogQHNlbGY6IEEg
I1dlYktpdERPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UKKyAqCisgKiBSZXR1
cm5zOiAodHJhbnNmZXIgbm9uZSk6CisgKgorKiovCitXRUJLSVRfQVBJIFdlYktpdERPTU1lc3Nh
Z2VQb3J0QXJyYXkqCit3ZWJraXRfZG9tX3Rlc3Rfc2VyaWFsaXplZF9zY3JpcHRfdmFsdWVfaW50
ZXJmYWNlX2dldF9wb3J0cyhXZWJLaXRET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlKiBzZWxmKTsKKworLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfc2VyaWFsaXplZF9zY3JpcHRf
dmFsdWVfaW50ZXJmYWNlX2dldF9jYWNoZWRfcmVhZG9ubHlfdmFsdWU6CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZQogICoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5k
ZXggMWQ4ZGU5NDA2MGNkNDZiZjNmMjJhYzI0NWY2MTA0YzJhMmUxOWNhYy4uYTdhYjA1OTEyZTlh
NWJhM2U5NDEwNTY5ZTQyMjdlYTRlYjg0ZDEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAgLTI3LDYgKzI3LDggQEAK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1
ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTTWVzc2FnZVBvcnRBcnJheS5oIgorI2lu
Y2x1ZGUgIk1lc3NhZ2VQb3J0QXJyYXkuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFs
dWUuaCIKICNpbmNsdWRlICJUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgiCiAj
aW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgpAQCAtNDQsNiArNDYsNyBAQCBzdGF0aWMgY29uc3Qg
SGFzaFRhYmxlVmFsdWUgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVGFibGVW
YWx1ZXNbXSA9CiAgICAgeyAidmFsdWUiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZVZhbHVlKSwgKGludHB0cl90KXNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZVZhbHVlLCBOb0ludHJpbnNpYyB9LAogICAgIHsgInJlYWRvbmx5VmFsdWUiLCBE
b250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUmVhZG9u
bHlWYWx1ZSksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAogICAgIHsgImNhY2hlZFZhbHVl
IiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZSks
IChpbnRwdHJfdClzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRW
YWx1ZSwgTm9JbnRyaW5zaWMgfSwKKyAgICB7ICJwb3J0cyIsIERvbnREZWxldGUgfCBSZWFkT25s
eSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQb3J0cyksIChpbnRwdHJfdCkwLCBOb0lu
dHJpbnNpYyB9LAogICAgIHsgImNhY2hlZFJlYWRvbmx5VmFsdWUiLCBEb250RGVsZXRlIHwgUmVh
ZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkUmVhZG9ubHlWYWx1ZSks
IChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAogICAgIHsgImNvbnN0cnVjdG9yIiwgRG9udEVu
dW0gfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvciks
IChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAogICAgIHsgMCwgMCwgMCwgMCwgTm9JbnRyaW5z
aWMgfQpAQCAtMjEzLDYgKzIxNiwxNiBAQCBKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZQogfQogCiAK
K0pTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUG9ydHMoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKj4oYXNPYmplY3Qoc2xvdEJhc2Up
KTsKKyAgICBVTlVTRURfUEFSQU0oZXhlYyk7CisgICAgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZSogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9K
UyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQdHIoaW1wbC0+cG9y
dHMoKSkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKwogSlNWYWx1ZSBqc1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRSZWFkb25seVZhbHVlKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCiB7CiAgICAgSlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSo+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKaW5k
ZXggYWQ0NGI1N2E3OTc4YjU0MmU0ZjZjYmI0ZDJhNzlmNzA4NGM4ZTE4Yi4uODBkZjFlMGI3ZDI3
Zjc4ZGNhMzUzN2MwZWVkOTZmZWZjMjNhNWUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaApAQCAtMTU0LDYgKzE1NCw3IEBAIHZv
aWQgc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0CiBKU0M6OkpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlUmVhZG9ubHlWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1
ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiBKU0M6OkpTVmFsdWUganNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
VmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogdm9pZCBzZXRKU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNP
YmplY3QqLCBKU0M6OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZVBvcnRzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25z
dCBKU0M6OklkZW50aWZpZXImKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VDYWNoZWRSZWFkb25seVZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9PYmpDL0RPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAppbmRleCBjZTUy
MWQxNDU0NWE0ZDFiZWE5MjRiZDI4NWM5Zjc4Njc4NzUyZjg2Li4wMWM2OGQ5ZTlkNWU0ZjU0MmQ3
ZWM1NjllZGVkZDQ3ZWUwMDFkMGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYg
V0VCS0lUX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gV0VCS0lUX1ZFUlNJT05fTEFURVNUCiAKIEBj
bGFzcyBET01BcnJheTsKK0BjbGFzcyBET01NZXNzYWdlUG9ydEFycmF5OwogQGNsYXNzIE5TU3Ry
aW5nOwogCiBAaW50ZXJmYWNlIERPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Ug
OiBET01PYmplY3QKQEAgLTM3LDYgKzM4LDcgQEAKIC0gKE5TU3RyaW5nICopcmVhZG9ubHlWYWx1
ZTsKIC0gKE5TU3RyaW5nICopY2FjaGVkVmFsdWU7CiAtICh2b2lkKXNldENhY2hlZFZhbHVlOihO
U1N0cmluZyAqKW5ld0NhY2hlZFZhbHVlOworLSAoRE9NTWVzc2FnZVBvcnRBcnJheSAqKXBvcnRz
OwogLSAoTlNTdHJpbmcgKiljYWNoZWRSZWFkb25seVZhbHVlOwogLSAodm9pZClhY2NlcHRUcmFu
c2Zlckxpc3Q6KE5TU3RyaW5nICopZGF0YSB0cmFuc2Zlckxpc3Q6KERPTUFycmF5ICopdHJhbnNm
ZXJMaXN0OwogLSAodm9pZCltdWx0aVRyYW5zZmVyTGlzdDooTlNTdHJpbmcgKilmaXJzdCB0eDoo
RE9NQXJyYXkgKil0eCBzZWNvbmQ6KE5TU3RyaW5nICopc2Vjb25kIHR4eDooRE9NQXJyYXkgKil0
eHg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2Jq
Qy9ET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZS5tbQppbmRleCAxNjhmMDk2Yjk0NjdmMDA1NTA0MGY3YWU4NDBhNDk1ZDU3MWIx
ODA2Li4zYjlmYjczYWZiNWM0ZDg1YTlkNDQ3MzNkNjU0MWZhMDQxNDhmOTgxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Uu
bW0KQEAgLTM4LDExICszOCwxMyBAQAogI2ltcG9ydCAiRE9NQ1NTUnVsZUludGVybmFsLmgiCiAj
aW1wb3J0ICJET01DU1NWYWx1ZUludGVybmFsLmgiCiAjaW1wb3J0ICJET01FdmVudEludGVybmFs
LmgiCisjaW1wb3J0ICJET01NZXNzYWdlUG9ydEFycmF5SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRP
TU5vZGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NU3R5bGVTaGVldEludGVybmFsLmgiCiAjaW1w
b3J0ICJET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlSW50ZXJuYWwuaCIKICNp
bXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCiAjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3Rh
dGUuaCIKKyNpbXBvcnQgIk1lc3NhZ2VQb3J0QXJyYXkuaCIKICNpbXBvcnQgIlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5oIgogI2ltcG9ydCAiVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5oIgogI2ltcG9ydCAiVGhyZWFkQ2hlY2suaCIKQEAgLTEwNSw2ICsxMDcsMTIgQEAKICAgICBJ
TVBMLT5zZXRDYWNoZWRWYWx1ZShXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0
ZShXVEY6OlN0cmluZyhuZXdDYWNoZWRWYWx1ZSkpKTsKIH0KIAorLSAoRE9NTWVzc2FnZVBvcnRB
cnJheSAqKXBvcnRzCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+cG9ydHMoKSkpOworfQorCiAtIChO
U1N0cmluZyAqKWNhY2hlZFJlYWRvbmx5VmFsdWUKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZS5pZGwKaW5kZXggYzRiODg2YTE5MmZkMDQ1MGRkNDAxN2ZjMTk4Njc2YTNlNWRk
ZTIxNC4uZmFjZjdjYmE4NTgyNGEwNWRkMzgxZmQyM2FlMGRkYmJiOGU0NzIxZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmlkbApAQCAtMzQsNiAr
MzQsNyBAQCBtb2R1bGUgdGVzdCB7CiAgICAgICAgIGF0dHJpYnV0ZSBTZXJpYWxpemVkU2NyaXB0
VmFsdWUgdmFsdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTZXJpYWxpemVkU2NyaXB0
VmFsdWUgcmVhZG9ubHlWYWx1ZTsKICAgICAgICAgYXR0cmlidXRlIFtDYWNoZWRBdHRyaWJ1dGVd
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBjYWNoZWRWYWx1ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIE1lc3NhZ2VQb3J0QXJyYXkgcG9ydHM7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbQ2FjaGVkQXR0cmlidXRlXSBTZXJpYWxpemVkU2NyaXB0VmFsdWUgY2FjaGVkUmVhZG9ubHlW
YWx1ZTsKICAgICAgICAgdm9pZCBhY2NlcHRUcmFuc2Zlckxpc3QoaW4gW1RyYW5zZmVyTGlzdD10
cmFuc2Zlckxpc3RdIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBkYXRhLCBpbiBbT3B0aW9uYWxdIEFy
cmF5IHRyYW5zZmVyTGlzdCk7CiAgICAgICAgIHZvaWQgbXVsdGlUcmFuc2Zlckxpc3QoaW4gW09w
dGlvbmFsLCBUcmFuc2Zlckxpc3Q9dHhdIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBmaXJzdCwgaW4g
W09wdGlvbmFsXSBBcnJheSB0eCwgaW4gW09wdGlvbmFsLCBUcmFuc2Zlckxpc3Q9dHh4XSBTZXJp
YWxpemVkU2NyaXB0VmFsdWUgc2Vjb25kLCBpbiBbT3B0aW9uYWxdIEFycmF5IHR4eCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3Bw
CmluZGV4IDE4MDY4MjI4ZjNiZjJkOGM1NmQ1MGM4YTVjYTMyN2QxOWY2OTBmNjAuLmJiZDkzOWQy
NzEyNDE2NDk3YWQzNjMyMTBjNjE1NjczNTkzNzBiOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC0yNyw2ICsyNyw3
IEBACiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSAi
VjhBcnJheS5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4QmluZGluZ01h
Y3Jvcy5oIgogI2luY2x1ZGUgIlY4QmluZGluZ1N0YXRlLmgiCkBAIC05MSw2ICs5MiwyMCBAQCBz
dGF0aWMgdm9pZCBjYWNoZWRWYWx1ZUF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5h
bWUsIHY4OjpMb2NhbDx2ODo6VmFsdQogICAgIHJldHVybjsKIH0KIAorc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBwb3J0c0F0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUs
IGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5wb3J0cy5fZ2V0Iik7CisgICAgVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogaW1wID0gVjhUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBNZXNzYWdlUG9y
dEFycmF5KiBwb3J0cyA9IGltcC0+cG9ydHMoKTsKKyAgICBpZiAoIXBvcnRzKQorICAgICAgICBy
ZXR1cm4gdjg6OkFycmF5OjpOZXcoMCk7CisgICAgTWVzc2FnZVBvcnRBcnJheSBwb3J0c0NvcHko
KnBvcnRzKTsKKyAgICB2ODo6TG9jYWw8djg6OkFycmF5PiBwb3J0QXJyYXkgPSB2ODo6QXJyYXk6
Ok5ldyhwb3J0c0NvcHkuc2l6ZSgpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBvcnRz
Q29weS5zaXplKCk7ICsraSkKKyAgICAgICAgcG9ydEFycmF5LT5TZXQodjg6OkludGVnZXI6Ok5l
dyhpKSwgdG9WOChwb3J0c0NvcHlbaV0uZ2V0KCkpKTsKKyAgICByZXR1cm4gcG9ydEFycmF5Owor
fQorCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNhY2hlZFJlYWRvbmx5VmFsdWVBdHRy
R2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZv
JiBpbmZvKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuY2FjaGVkUmVhZG9ubHlWYWx1ZS5fZ2V0Iik7CkBAIC0xODIsNiArMTk3LDggQEAg
c3RhdGljIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZUF0dHJzW10gPSB7CiAgICAgeyJyZWFkb25seVZhbHVlIiwgVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZVY4SW50ZXJuYWw6OnJlYWRvbmx5VmFsdWVBdHRyR2V0dGVyLCAw
LCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVG
QVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8q
IG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ2NhY2hlZFZhbHVlJyAoVHlwZTog
J2F0dHJpYnV0ZScgRXh0QXR0cjogJ0NhY2hlZEF0dHJpYnV0ZScpCiAgICAgeyJjYWNoZWRWYWx1
ZSIsIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWOEludGVybmFsOjpjYWNoZWRW
YWx1ZUF0dHJHZXR0ZXIsIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWOEludGVy
bmFsOjpjYWNoZWRWYWx1ZUF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8
djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5
QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIC8vIEF0dHJp
YnV0ZSAncG9ydHMnIChUeXBlOiAncmVhZG9ubHkgYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKKyAg
ICB7InBvcnRzIiwgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVY4SW50ZXJuYWw6
OnBvcnRzQXR0ckdldHRlciwgMCwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNj
ZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1
dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICdj
YWNoZWRSZWFkb25seVZhbHVlJyAoVHlwZTogJ3JlYWRvbmx5IGF0dHJpYnV0ZScgRXh0QXR0cjog
J0NhY2hlZEF0dHJpYnV0ZScpCiAgICAgeyJjYWNoZWRSZWFkb25seVZhbHVlIiwgVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVY4SW50ZXJuYWw6OmNhY2hlZFJlYWRvbmx5VmFsdWVB
dHRyR2V0dGVyLCAwLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250
cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6
Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>