<?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>209308</bug_id>
          
          <creation_ts>2020-03-19 14:40:07 -0700</creation_ts>
          <short_desc>Have insertDictatedTextAsync() take an InsertTextOptions</short_desc>
          <delta_ts>2020-03-20 15:45:34 -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>WebKit Misc.</component>
          <version>WebKit Local 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>darin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1631834</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-19 14:40:07 -0700</bug_when>
    <thetext>Have insertDictatedTextAsync() take an InsertTextOptions. Currently it takes a single bool as to whether to register an undo group and the implementation stack-allocates a InsertTextOptions and passes this state through, but it would provide future flexibility and make the signature of insertDictatedTextAsync() more closely look like insertTextAsync() if it took a InsertTextOptions that the caller passed.

My primary motivation for this change is to provide future flexibility as I plan to introduce a new insertion option that I want to affect dictated insertion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631835</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-19 14:40:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/60652838&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631842</commentid>
    <comment_count>2</comment_count>
      <attachid>394025</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-19 14:55:42 -0700</bug_when>
    <thetext>Created attachment 394025
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632171</commentid>
    <comment_count>3</comment_count>
      <attachid>394025</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-20 10:58:58 -0700</bug_when>
    <thetext>Comment on attachment 394025
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:4850
&gt; +        InsertTextOptions options;
&gt; +        options.registerUndoGroup = registerUndoGroup;
&gt; +        m_page-&gt;insertDictatedTextAsync(eventText, replacementRange, dictationAlternatives, WTFMove(options));

This will be nicer when we get C++ 20’s designated initializers so we can just write &quot;InsertTextOptions { .registerUndoGroup = registerUndoGroup }&quot; without WTFMove or a local variable.

&gt; Source/WebKit/UIProcess/WebPageProxy.h:858
&gt; +    void insertDictatedTextAsync(const String&amp;, const EditingRange&amp; replacementRange, const Vector&lt;WebCore::TextAlternativeWithRange&gt;&amp;, InsertTextOptions&amp;&amp;);

I think it’s a peculiar choice to use move semantics for a structure that just contains a few bits of scalar data. This would have value if the options were more complex and so maybe this is good planning for the future.

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:4721
&gt; +        _page-&gt;insertDictatedTextAsync(aStringValue, WebKit::EditingRange { }, { textAlternativeWithRange }, WebKit::InsertTextOptions { });

Do we really have to write out the type names here? I don’t think they add much.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632328</commentid>
    <comment_count>4</comment_count>
      <attachid>394025</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-20 15:36:04 -0700</bug_when>
    <thetext>Comment on attachment 394025
Patch

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

Thanks for the review.

&gt;&gt; Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:4850
&gt;&gt; +        m_page-&gt;insertDictatedTextAsync(eventText, replacementRange, dictationAlternatives, WTFMove(options));
&gt; 
&gt; This will be nicer when we get C++ 20’s designated initializers so we can just write &quot;InsertTextOptions { .registerUndoGroup = registerUndoGroup }&quot; without WTFMove or a local variable.

Yep, I know....I was tempted.

&gt;&gt; Source/WebKit/UIProcess/WebPageProxy.h:858
&gt;&gt; +    void insertDictatedTextAsync(const String&amp;, const EditingRange&amp; replacementRange, const Vector&lt;WebCore::TextAlternativeWithRange&gt;&amp;, InsertTextOptions&amp;&amp;);
&gt; 
&gt; I think it’s a peculiar choice to use move semantics for a structure that just contains a few bits of scalar data. This would have value if the options were more complex and so maybe this is good planning for the future.

It&apos;s part future proofing + part me thinking in terms of whether this concept is about ownership transfer or not. InsertTextOptions is only ever used to make the call and the caller doesn&apos;t need to store it or re-purpose it. It&apos;s purely temporary. So, ownership transfer. I think that&apos;s the right model here. I am open to learning different perspectives..

&gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:4721
&gt;&gt; +        _page-&gt;insertDictatedTextAsync(aStringValue, WebKit::EditingRange { }, { textAlternativeWithRange }, WebKit::InsertTextOptions { });
&gt; 
&gt; Do we really have to write out the type names here? I don’t think they add much.

I&apos;m going to trust you on this one because I want to make you happy and I want to get this change in as I need it for my next step. If you ever have a moment can you please explain why passing consecutive { } arounds does NOT suffer from the same ambiguity as passing consecutive boolean arguments? In my opinion, it&apos;s the same problem and I grew up around passing enums instead of raw true or false because of it. Could also use named locals or inline comments too. The former hasn&apos;t grown on me enough to do without thought and the latter tends to be the thing I reach for as a last resort.

FYI, you can always pass { } for all POD types + default constructible.

void f(bool, bool, const WebKit::EditingRange&amp;, WebKit::EditingRange&amp;&amp;);

Compiler will happily let you call it f({ }, { }, { }, { }) &lt;-- I don&apos;t know what is being passed. This is why I like to write out the types when there are consecutive default constructible things and why I don&apos;t like to initialize PODs using just { } &lt;-- empty inside.

I would ❤️ to hear your thoughts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632332</commentid>
    <comment_count>5</comment_count>
      <attachid>394025</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-20 15:41:27 -0700</bug_when>
    <thetext>Comment on attachment 394025
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:4721
&gt;&gt;&gt; +        _page-&gt;insertDictatedTextAsync(aStringValue, WebKit::EditingRange { }, { textAlternativeWithRange }, WebKit::InsertTextOptions { });
&gt;&gt; 
&gt;&gt; Do we really have to write out the type names here? I don’t think they add much.
&gt; 
&gt; I&apos;m going to trust you on this one because I want to make you happy and I want to get this change in as I need it for my next step. If you ever have a moment can you please explain why passing consecutive { } arounds does NOT suffer from the same ambiguity as passing consecutive boolean arguments? In my opinion, it&apos;s the same problem and I grew up around passing enums instead of raw true or false because of it. Could also use named locals or inline comments too. The former hasn&apos;t grown on me enough to do without thought and the latter tends to be the thing I reach for as a last resort.
&gt; 
&gt; FYI, you can always pass { } for all POD types + default constructible.
&gt; 
&gt; void f(bool, bool, const WebKit::EditingRange&amp;, WebKit::EditingRange&amp;&amp;);
&gt; 
&gt; Compiler will happily let you call it f({ }, { }, { }, { }) &lt;-- I don&apos;t know what is being passed. This is why I like to write out the types when there are consecutive default constructible things and why I don&apos;t like to initialize PODs using just { } &lt;-- empty inside.
&gt; 
&gt; I would ❤️ to hear your thoughts.

Oh, just realized there won&apos;t be consecutive { } because of the { textAlternativeWithRange }. So the monotony is broken. So, there is less ambiguity here and while it is still a new thing for me, by the logic I stated above, I think (still feeling it) I can be at peace with passing { }.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632334</commentid>
    <comment_count>6</comment_count>
      <attachid>394141</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-20 15:44:58 -0700</bug_when>
    <thetext>Created attachment 394141
To Land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632335</commentid>
    <comment_count>7</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-20 15:45:34 -0700</bug_when>
    <thetext>Committed r258796: &lt;https://trac.webkit.org/changeset/258796&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394025</attachid>
            <date>2020-03-19 14:55:42 -0700</date>
            <delta_ts>2020-03-20 15:44:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209308-20200319145542.patch</filename>
            <type>text/plain</type>
            <size>10486</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4Mjg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU3NzIxMGViYTVmMWU2Yjc4
MThiNDE3MDFlYzg1YmMyYjRlYTY1YzAuLjRmZGM4YjRiMjYwNjg3YzRmNjRkZmE5YjM1NDM1MDgw
Yjg1NjMyMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjAtMDMtMTkgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIEhhdmUgaW5zZXJ0RGljdGF0ZWRU
ZXh0QXN5bmMoKSB0YWtlIGFuIEluc2VydFRleHRPcHRpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkzMDgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzYwNjUyODM4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgd2lsbCBwcm92aWRlIGZ1dHVyZSBleHRlbnNpYmlsaXR5LCB3aGljaCBJIHBs
YW4gdG8gbWFrZSB1c2Ugb2YgaW4gYSBzdWJzZXF1ZW50IHBhdGNoLAorICAgICAgICBpbiBhZGRp
dGlvbiB0byBtYWtpbmcgdGhlIGludGVyZmFjZSBmb3IgaW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMo
KSBtb3JlIGxpa2UgaW5zZXJ0VGV4dEFzeW5jKCkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvV2ViUGFnZVByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
aW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMpOiBQYXNzIHRoZSBvcHRpb25zIHRocm91Z2guIFRoZSBj
YWxsZXIgaXMgbm93CisgICAgICAgIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIHRoZSByZWdpc3Rl
clVuZG9Hcm91cCBpbnNlcnRpb24gb3B0aW9uLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omluc2VydFRleHQp
OiBTdGFjay1hbGxvY2F0ZSBhIEluc2VydFRleHRPcHRpb25zIHNldHRpbmcgaXRzIHJlZ2lzdGVy
VW5kb0dyb3VwCisgICAgICAgIGZpZWxkIGFuZCBwYXNzIHRoaXMgb2JqZWN0IHRocm91Z2guCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IGluc2VydFRleHQ6YWx0ZXJuYXRpdmVzOnN0eWxlOl0pOiBQYXNzIHRoZSBkZWZhdWx0IGNvbnN0
cnVjdGVkIEluc2VydFRleHRPcHRpb25zLAorICAgICAgICB3aGljaCBkZWZhdWx0cyByZWdpc3Rl
clVuZG9Hcm91cCB0byBmYWxzZSB0byBrZWVwIHRoZSBjdXJyZW50IGJlaGF2aW9yLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6Omluc2VydERpY3RhdGVkVGV4dEFzeW5jKTogV3JpdGUgaW4gdGVybXMg
b2YgSW5zZXJ0VGV4dE9wdGlvbnMucmVnaXN0ZXJVbmRvR3JvdXAuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbjoKKwogMjAyMC0wMy0xOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQVNTRVJUSU9OIEZBSUxVUkU6ICFpc01pc3NpbmdQ
b3N0TGF5b3V0RGF0YSBpbiBXZWJLaXQ6OkVkaXRvclN0YXRlOjpwb3N0TGF5b3V0RGF0YSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1t
CmluZGV4IGM2MzE2ZDFlYjcxYTJhMWM4ZTE1YTExOTY4NWUzZDM3MmJmOTA2N2IuLjE4MTFiM2Y5
NjgyZjM1NWViNDAzODYwZmU1MDNjZTBmYmRmNDA0NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCkBAIC0yMzIsNyArMjMyLDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwT2ZDdXJyZW50U2Vs
ZWN0aW9uKCkKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UGVyZm9ybURp
Y3Rpb25hcnlMb29rdXBPZkN1cnJlbnRTZWxlY3Rpb24oKSwgbV93ZWJQYWdlSUQpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6aW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMoY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBFZGl0aW5nUmFuZ2UmIHJlcGxhY2VtZW50UmFuZ2UsIGNvbnN0IFZlY3RvcjxU
ZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2U+JiBkaWN0YXRpb25BbHRlcm5hdGl2ZXNXaXRoUmFuZ2Us
IGJvb2wgcmVnaXN0ZXJVbmRvR3JvdXApCit2b2lkIFdlYlBhZ2VQcm94eTo6aW5zZXJ0RGljdGF0
ZWRUZXh0QXN5bmMoY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBFZGl0aW5nUmFuZ2UmIHJlcGxh
Y2VtZW50UmFuZ2UsIGNvbnN0IFZlY3RvcjxUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2U+JiBkaWN0
YXRpb25BbHRlcm5hdGl2ZXNXaXRoUmFuZ2UsIEluc2VydFRleHRPcHRpb25zJiYgb3B0aW9ucykK
IHsKICNpZiBVU0UoRElDVEFUSU9OX0FMVEVSTkFUSVZFUykKICAgICBpZiAoIWhhc1J1bm5pbmdQ
cm9jZXNzKCkpCkBAIC0yNDYsMTggKzI0NiwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aW5zZXJ0
RGljdGF0ZWRUZXh0QXN5bmMoY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBFZGl0aW5nUmFuZwog
ICAgIH0KIAogICAgIGlmIChkaWN0YXRpb25BbHRlcm5hdGl2ZXMuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIEluc2VydFRleHRPcHRpb25zIG9wdGlvbnM7Ci0gICAgICAgIG9wdGlvbnMucmVnaXN0ZXJV
bmRvR3JvdXAgPSByZWdpc3RlclVuZG9Hcm91cDsKLQogICAgICAgICBpbnNlcnRUZXh0QXN5bmMo
dGV4dCwgcmVwbGFjZW1lbnRSYW5nZSwgV1RGTW92ZShvcHRpb25zKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6SW5zZXJ0
RGljdGF0ZWRUZXh0QXN5bmMgeyB0ZXh0LCByZXBsYWNlbWVudFJhbmdlLCBkaWN0YXRpb25BbHRl
cm5hdGl2ZXMsIHJlZ2lzdGVyVW5kb0dyb3VwIH0sIG1fd2ViUGFnZUlEKTsKKyAgICBwcm9jZXNz
KCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6SW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMgeyB0ZXh0
LCByZXBsYWNlbWVudFJhbmdlLCBkaWN0YXRpb25BbHRlcm5hdGl2ZXMsIFdURk1vdmUob3B0aW9u
cykgfSwgbV93ZWJQYWdlSUQpOwogI2Vsc2UKLSAgICBJbnNlcnRUZXh0T3B0aW9ucyBvcHRpb25z
OwotICAgIG9wdGlvbnMucmVnaXN0ZXJVbmRvR3JvdXAgPSByZWdpc3RlclVuZG9Hcm91cDsKLQog
ICAgIGluc2VydFRleHRBc3luYyh0ZXh0LCByZXBsYWNlbWVudFJhbmdlLCBXVEZNb3ZlKG9wdGlv
bnMpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbQppbmRleCBiY2JiNzYwNWNhYzBmNGM1NjNiMDk1ZmIyNzgzM2VhOTdkNTgzYTQzLi5m
OWQ3YWJlNzRjNDI2ZmI0NTQyMzAzZDE1ZDMyM2YwYzJmMmFkMDU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtNDg0NCw5ICs0ODQ0LDExIEBA
IHZvaWQgV2ViVmlld0ltcGw6Omluc2VydFRleHQoaWQgc3RyaW5nLCBOU1JhbmdlIHJlcGxhY2Vt
ZW50UmFuZ2UpCiAKICAgICBTdHJpbmcgZXZlbnRUZXh0ID0gdGV4dDsKICAgICBldmVudFRleHQu
cmVwbGFjZShOU0JhY2tUYWJDaGFyYWN0ZXIsIE5TVGFiQ2hhcmFjdGVyKTsgLy8gc2FtZSB0aGlu
ZyBpcyBkb25lIGluIEtleUV2ZW50TWFjLm1tIGluIFdlYkNvcmUKLSAgICBpZiAoIWRpY3RhdGlv
bkFsdGVybmF0aXZlcy5pc0VtcHR5KCkpCi0gICAgICAgIG1fcGFnZS0+aW5zZXJ0RGljdGF0ZWRU
ZXh0QXN5bmMoZXZlbnRUZXh0LCByZXBsYWNlbWVudFJhbmdlLCBkaWN0YXRpb25BbHRlcm5hdGl2
ZXMsIHJlZ2lzdGVyVW5kb0dyb3VwKTsKLSAgICBlbHNlIHsKKyAgICBpZiAoIWRpY3RhdGlvbkFs
dGVybmF0aXZlcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgSW5zZXJ0VGV4dE9wdGlvbnMgb3B0aW9u
czsKKyAgICAgICAgb3B0aW9ucy5yZWdpc3RlclVuZG9Hcm91cCA9IHJlZ2lzdGVyVW5kb0dyb3Vw
OworICAgICAgICBtX3BhZ2UtPmluc2VydERpY3RhdGVkVGV4dEFzeW5jKGV2ZW50VGV4dCwgcmVw
bGFjZW1lbnRSYW5nZSwgZGljdGF0aW9uQWx0ZXJuYXRpdmVzLCBXVEZNb3ZlKG9wdGlvbnMpKTsK
KyAgICB9IGVsc2UgewogICAgICAgICBJbnNlcnRUZXh0T3B0aW9ucyBvcHRpb25zOwogICAgICAg
ICBvcHRpb25zLnJlZ2lzdGVyVW5kb0dyb3VwID0gcmVnaXN0ZXJVbmRvR3JvdXA7CiAgICAgICAg
IG9wdGlvbnMuZWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvID0gbV9pc1RleHRJbnNlcnRpb25SZXBs
YWNpbmdTb2Z0U3BhY2UgPyBFZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG86OlBhcmFncmFwaCA6IEVk
aXRpbmdSYW5nZUlzUmVsYXRpdmVUbzo6RWRpdGFibGVSb290OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAppbmRleCBjN2I2ZWM0ODdhNjZiYzkyYjJlYjdmNThkODZjOTU2NDZj
YWRiZmM0Li40ZTQzODY3Nzc4MDc2NDk5ZmNjM2I3ZWNiMDRhYTQ3MWY5ZDU4OThiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtODU1LDcgKzg1NSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFRleHRBc3luYyhjb25zdCBTdHJpbmcmKTsKIAogICAgIHZvaWQgaW5z
ZXJ0VGV4dEFzeW5jKGNvbnN0IFN0cmluZyYsIGNvbnN0IEVkaXRpbmdSYW5nZSYgcmVwbGFjZW1l
bnRSYW5nZSwgSW5zZXJ0VGV4dE9wdGlvbnMmJik7Ci0gICAgdm9pZCBpbnNlcnREaWN0YXRlZFRl
eHRBc3luYyhjb25zdCBTdHJpbmcmLCBjb25zdCBFZGl0aW5nUmFuZ2UmIHJlcGxhY2VtZW50UmFu
Z2UsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2U+JiwgYm9v
bCByZWdpc3RlclVuZG9Hcm91cCk7CisgICAgdm9pZCBpbnNlcnREaWN0YXRlZFRleHRBc3luYyhj
b25zdCBTdHJpbmcmLCBjb25zdCBFZGl0aW5nUmFuZ2UmIHJlcGxhY2VtZW50UmFuZ2UsIGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2U+JiwgSW5zZXJ0VGV4dE9w
dGlvbnMmJik7CiAKICAgICB2b2lkIGhhc01hcmtlZFRleHQoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CiAgICAgdm9pZCBnZXRNYXJrZWRSYW5nZUFzeW5jKFdURjo6RnVuY3Rpb248
dm9pZCAoRWRpdGluZ1JhbmdlLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQppbmRleCAyOWQ5MzE4M2ZjZmIzODVlMDY4M2JlMmY0NmEyOGEwOGEwZmQ1OTQ5Li44NDkxMGRm
N2JkNzVjNGZiY2JhMjRmYTUwYmY0MjFmMTA2OGExODdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTQ3
MTgsNyArNDcxOCw3IEBAIC0gKHZvaWQpaW5zZXJ0VGV4dDooTlNTdHJpbmcgKilhU3RyaW5nVmFs
dWUgYWx0ZXJuYXRpdmVzOihOU0FycmF5PE5TU3RyaW5nICo+ICopCiAgICAgICAgIEJPT0wgaXNM
b3dDb25maWRlbmNlID0gc3R5bGUgPT0gVUlUZXh0QWx0ZXJuYXRpdmVTdHlsZUxvd0NvbmZpZGVu
Y2U7CiAgICAgICAgIGF1dG8gdGV4dEFsdGVybmF0aXZlcyA9IGFkb3B0TlMoW1tOU1RleHRBbHRl
cm5hdGl2ZXMgYWxsb2NdIGluaXRXaXRoUHJpbWFyeVN0cmluZzphU3RyaW5nVmFsdWUgYWx0ZXJu
YXRpdmVTdHJpbmdzOmFsdGVybmF0aXZlcyBpc0xvd0NvbmZpZGVuY2U6aXNMb3dDb25maWRlbmNl
XSk7CiAgICAgICAgIFdlYkNvcmU6OlRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZSB0ZXh0QWx0ZXJu
YXRpdmVXaXRoUmFuZ2UgeyB0ZXh0QWx0ZXJuYXRpdmVzLmdldCgpLCBOU01ha2VSYW5nZSgwLCBh
U3RyaW5nVmFsdWUubGVuZ3RoKSB9OwotICAgICAgICBfcGFnZS0+aW5zZXJ0RGljdGF0ZWRUZXh0
QXN5bmMoYVN0cmluZ1ZhbHVlLCBXZWJLaXQ6OkVkaXRpbmdSYW5nZSB7IH0sIHsgdGV4dEFsdGVy
bmF0aXZlV2l0aFJhbmdlIH0sIGZhbHNlIC8qIHJlZ2lzdGVyVW5kb0dyb3VwICovKTsKKyAgICAg
ICAgX3BhZ2UtPmluc2VydERpY3RhdGVkVGV4dEFzeW5jKGFTdHJpbmdWYWx1ZSwgV2ViS2l0OjpF
ZGl0aW5nUmFuZ2UgeyB9LCB7IHRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZSB9LCBXZWJLaXQ6Oklu
c2VydFRleHRPcHRpb25zIHsgfSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KaW5kZXggOTM1NmMx
OWQ2MzljODEyMzVhZTUyNDA1NjU0MGQwNjFjOWE1MzJjOC4uYmMzNTdhNzE3YzY3ODI5NWJiMDVk
OTQ5MGIzMjg1OGMyY2YzZDM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQpAQCAtMjcsNiArMjcsNyBAQAogI2lt
cG9ydCAiV2ViUGFnZS5oIgogCiAjaW1wb3J0ICJBdHRyaWJ1dGVkU3RyaW5nLmgiCisjaW1wb3J0
ICJJbnNlcnRUZXh0T3B0aW9ucy5oIgogI2ltcG9ydCAiTG9hZFBhcmFtZXRlcnMuaCIKICNpbXBv
cnQgIlBsdWdpblZpZXcuaCIKICNpbXBvcnQgIldLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RC
YXNlLmgiCkBAIC0xOTAsNyArMTkxLDcgQEAgRGljdGlvbmFyeVBvcHVwSW5mbyBXZWJQYWdlOjpk
aWN0aW9uYXJ5UG9wdXBJbmZvRm9yUmFuZ2UoRnJhbWUmIGZyYW1lLCBSYW5nZSYgcmEKICAgICBy
ZXR1cm4gZGljdGlvbmFyeVBvcHVwSW5mbzsKIH0KIAotdm9pZCBXZWJQYWdlOjppbnNlcnREaWN0
YXRlZFRleHRBc3luYyhjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IEVkaXRpbmdSYW5nZSYgcmVw
bGFjZW1lbnRFZGl0aW5nUmFuZ2UsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpEaWN0YXRpb25BbHRl
cm5hdGl2ZT4mIGRpY3RhdGlvbkFsdGVybmF0aXZlTG9jYXRpb25zLCBib29sIHJlZ2lzdGVyVW5k
b0dyb3VwKQordm9pZCBXZWJQYWdlOjppbnNlcnREaWN0YXRlZFRleHRBc3luYyhjb25zdCBTdHJp
bmcmIHRleHQsIGNvbnN0IEVkaXRpbmdSYW5nZSYgcmVwbGFjZW1lbnRFZGl0aW5nUmFuZ2UsIGNv
bnN0IFZlY3RvcjxXZWJDb3JlOjpEaWN0YXRpb25BbHRlcm5hdGl2ZT4mIGRpY3RhdGlvbkFsdGVy
bmF0aXZlTG9jYXRpb25zLCBJbnNlcnRUZXh0T3B0aW9ucyYmIG9wdGlvbnMpCiB7CiAgICAgYXV0
byYgZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgp
OwogICAgIFJlZjxGcmFtZT4gcHJvdGVjdG9yIHsgZnJhbWUgfTsKQEAgLTIwMSw3ICsyMDIsNyBA
QCB2b2lkIFdlYlBhZ2U6Omluc2VydERpY3RhdGVkVGV4dEFzeW5jKGNvbnN0IFN0cmluZyYgdGV4
dCwgY29uc3QgRWRpdGluZ1JhbmdlJiByZQogICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCku
c2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24geyAqcmVwbGFjZW1lbnRSYW5nZSwgU0VMX0RF
RkFVTFRfQUZGSU5JVFkgfSk7CiAgICAgfQogCi0gICAgaWYgKHJlZ2lzdGVyVW5kb0dyb3VwKQor
ICAgIGlmIChvcHRpb25zLnJlZ2lzdGVyVW5kb0dyb3VwKQogICAgICAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlJlZ2lzdGVySW5zZXJ0aW9uVW5kb0dyb3VwaW5nIHsgfSk7CiAKICAg
ICBBU1NFUlQoIWZyYW1lLmVkaXRvcigpLmhhc0NvbXBvc2l0aW9uKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDU2ZGNjMWJkNjQxZDI2NGQzYTNi
NTFjNTYxZTdmNjgxOGMyNzE2YzQuLjJmNDU3ZmFjZjhiZGVkYTZmMGQwMmYzMTY2MWNmYTdiMzM1
MGIyNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAg
LTg0Niw3ICs4NDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhY2NlcHRzRmlyc3RNb3VzZShpbnQg
ZXZlbnROdW1iZXIsIGNvbnN0IFdlYktpdDo6V2ViTW91c2VFdmVudCYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIGJvb2wgcGVyZm9ybU5vbkVkaXRpbmdCZWhhdmlvckZv
clNlbGVjdG9yKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKTsKIAotICAg
IHZvaWQgaW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMoY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBF
ZGl0aW5nUmFuZ2UmIHJlcGxhY2VtZW50UmFuZ2UsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpEaWN0
YXRpb25BbHRlcm5hdGl2ZT4mIGRpY3RhdGlvbkFsdGVybmF0aXZlTG9jYXRpb25zLCBib29sIHJl
Z2lzdGVyVW5kb0dyb3VwID0gZmFsc2UpOworICAgIHZvaWQgaW5zZXJ0RGljdGF0ZWRUZXh0QXN5
bmMoY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBFZGl0aW5nUmFuZ2UmIHJlcGxhY2VtZW50UmFu
Z2UsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpEaWN0YXRpb25BbHRlcm5hdGl2ZT4mIGRpY3RhdGlv
bkFsdGVybmF0aXZlTG9jYXRpb25zLCBJbnNlcnRUZXh0T3B0aW9ucyYmKTsKICNlbmRpZgogCiAj
aWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMDRmYzQyNTIyOGU2MmE1MzViMzE0YmEwMjdi
NmIzZjQ1NzBmNGJmOC4uZjZiZTBmNTlhZmFhNTllZTZiYWNjMjQyYzJiNDY3OTA3MDMxYmE3MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCkBAIC00NDcsNyArNDQ3LDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29t
bWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAg
ICBTZXRUZXh0QXN5bmMoU3RyaW5nIHRleHQpCiAKICAgICBJbnNlcnRUZXh0QXN5bmMoU3RyaW5n
IHRleHQsIHN0cnVjdCBXZWJLaXQ6OkVkaXRpbmdSYW5nZSByZXBsYWNlbWVudFJhbmdlLCBzdHJ1
Y3QgV2ViS2l0OjpJbnNlcnRUZXh0T3B0aW9ucyBvcHRpb25zKQotICAgIEluc2VydERpY3RhdGVk
VGV4dEFzeW5jKFN0cmluZyB0ZXh0LCBzdHJ1Y3QgV2ViS2l0OjpFZGl0aW5nUmFuZ2UgcmVwbGFj
ZW1lbnRSYW5nZSwgVmVjdG9yPFdlYkNvcmU6OkRpY3RhdGlvbkFsdGVybmF0aXZlPiBkaWN0YXRp
b25BbHRlcm5hdGl2ZXMsIGJvb2wgcmVnaXN0ZXJVbmRvR3JvdXApCisgICAgSW5zZXJ0RGljdGF0
ZWRUZXh0QXN5bmMoU3RyaW5nIHRleHQsIHN0cnVjdCBXZWJLaXQ6OkVkaXRpbmdSYW5nZSByZXBs
YWNlbWVudFJhbmdlLCBWZWN0b3I8V2ViQ29yZTo6RGljdGF0aW9uQWx0ZXJuYXRpdmU+IGRpY3Rh
dGlvbkFsdGVybmF0aXZlcywgc3RydWN0IFdlYktpdDo6SW5zZXJ0VGV4dE9wdGlvbnMgb3B0aW9u
cykKIAogICAgIEhhc01hcmtlZFRleHQoKSAtPiAoYm9vbCBoYXNNYXJrZWRUZXh0KSBBc3luYwog
ICAgIEdldE1hcmtlZFJhbmdlQXN5bmMoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394141</attachid>
            <date>2020-03-20 15:44:58 -0700</date>
            <delta_ts>2020-03-20 15:44:58 -0700</delta_ts>
            <desc>To Land</desc>
            <filename>bug-209308-20200320154457.patch</filename>
            <type>text/plain</type>
            <size>10418</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4Nzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdlOTcyMmMzMWY1NDY2MTQw
M2VlNDMwOWUxOGVlYzdjZjhjNWE3NWYuLjQwNjNkMWNhNTJhM2JlNmUwNzUwYmI2NjMxODBjNWEz
YmUzYzJjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjAtMDMtMjAgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIEhhdmUgaW5zZXJ0RGljdGF0ZWRU
ZXh0QXN5bmMoKSB0YWtlIGFuIEluc2VydFRleHRPcHRpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkzMDgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzYwNjUyODM4PgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAg
ICAgIFRoaXMgd2lsbCBwcm92aWRlIGZ1dHVyZSBleHRlbnNpYmlsaXR5LCB3aGljaCBJIHBsYW4g
dG8gbWFrZSB1c2Ugb2YgaW4gYSBzdWJzZXF1ZW50IHBhdGNoLAorICAgICAgICBpbiBhZGRpdGlv
biB0byBtYWtpbmcgdGhlIGludGVyZmFjZSBmb3IgaW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMoKSBt
b3JlIGxpa2UgaW5zZXJ0VGV4dEFzeW5jKCkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V2ViUGFnZVByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aW5z
ZXJ0RGljdGF0ZWRUZXh0QXN5bmMpOiBQYXNzIHRoZSBvcHRpb25zIHRocm91Z2guIFRoZSBjYWxs
ZXIgaXMgbm93CisgICAgICAgIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIHRoZSByZWdpc3RlclVu
ZG9Hcm91cCBpbnNlcnRpb24gb3B0aW9uLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omluc2VydFRleHQpOiBT
dGFjay1hbGxvY2F0ZSBhIEluc2VydFRleHRPcHRpb25zIHNldHRpbmcgaXRzIHJlZ2lzdGVyVW5k
b0dyb3VwCisgICAgICAgIGZpZWxkIGFuZCBwYXNzIHRoaXMgb2JqZWN0IHRocm91Z2guCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGlu
c2VydFRleHQ6YWx0ZXJuYXRpdmVzOnN0eWxlOl0pOiBQYXNzIHRoZSBkZWZhdWx0IGNvbnN0cnVj
dGVkIEluc2VydFRleHRPcHRpb25zLAorICAgICAgICB3aGljaCBkZWZhdWx0cyByZWdpc3RlclVu
ZG9Hcm91cCB0byBmYWxzZSB0byBrZWVwIHRoZSBjdXJyZW50IGJlaGF2aW9yLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6Omluc2VydERpY3RhdGVkVGV4dEFzeW5jKTogV3JpdGUgaW4gdGVybXMgb2Yg
SW5zZXJ0VGV4dE9wdGlvbnMucmVnaXN0ZXJVbmRvR3JvdXAuCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbjoKKwogMjAyMC0wMy0yMCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVwbGFjZSAiZGVmZXJyZWQgZWxlbWVudCBmb2N1cyIgZnVuY3Rp
b25hbGl0eSB3aXRoIGFsdGVybmF0aXZlIHNvbHV0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCmluZGV4IGNkMGYwZDRkNjcxMDc5
NjU1NGFiMWE5MmFlMWYxZWNmZDM0ODg1MjkuLmY5NTc2MTY3NTk5MzE1ODAwZjZiODgzNjc1N2Zl
YmJmOGY4Y2ViNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlBhZ2VQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlBhZ2VQcm94eUNvY29hLm1tCkBAIC0yMzIsNyArMjMyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwT2ZDdXJyZW50U2VsZWN0aW9uKCkKICAgICBwcm9jZXNz
KCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UGVyZm9ybURpY3Rpb25hcnlMb29rdXBPZkN1cnJl
bnRTZWxlY3Rpb24oKSwgbV93ZWJQYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6aW5z
ZXJ0RGljdGF0ZWRUZXh0QXN5bmMoY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBFZGl0aW5nUmFu
Z2UmIHJlcGxhY2VtZW50UmFuZ2UsIGNvbnN0IFZlY3RvcjxUZXh0QWx0ZXJuYXRpdmVXaXRoUmFu
Z2U+JiBkaWN0YXRpb25BbHRlcm5hdGl2ZXNXaXRoUmFuZ2UsIGJvb2wgcmVnaXN0ZXJVbmRvR3Jv
dXApCit2b2lkIFdlYlBhZ2VQcm94eTo6aW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMoY29uc3QgU3Ry
aW5nJiB0ZXh0LCBjb25zdCBFZGl0aW5nUmFuZ2UmIHJlcGxhY2VtZW50UmFuZ2UsIGNvbnN0IFZl
Y3RvcjxUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2U+JiBkaWN0YXRpb25BbHRlcm5hdGl2ZXNXaXRo
UmFuZ2UsIEluc2VydFRleHRPcHRpb25zJiYgb3B0aW9ucykKIHsKICNpZiBVU0UoRElDVEFUSU9O
X0FMVEVSTkFUSVZFUykKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCkBAIC0yNDYsMTgg
KzI0NiwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMoY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBFZGl0aW5nUmFuZwogICAgIH0KIAogICAgIGlmIChkaWN0
YXRpb25BbHRlcm5hdGl2ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIEluc2VydFRleHRPcHRpb25z
IG9wdGlvbnM7Ci0gICAgICAgIG9wdGlvbnMucmVnaXN0ZXJVbmRvR3JvdXAgPSByZWdpc3RlclVu
ZG9Hcm91cDsKLQogICAgICAgICBpbnNlcnRUZXh0QXN5bmModGV4dCwgcmVwbGFjZW1lbnRSYW5n
ZSwgV1RGTW92ZShvcHRpb25zKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBwcm9j
ZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6SW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMgeyB0
ZXh0LCByZXBsYWNlbWVudFJhbmdlLCBkaWN0YXRpb25BbHRlcm5hdGl2ZXMsIHJlZ2lzdGVyVW5k
b0dyb3VwIH0sIG1fd2ViUGFnZUlEKTsKKyAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6SW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMgeyB0ZXh0LCByZXBsYWNlbWVudFJhbmdlLCBk
aWN0YXRpb25BbHRlcm5hdGl2ZXMsIFdURk1vdmUob3B0aW9ucykgfSwgbV93ZWJQYWdlSUQpOwog
I2Vsc2UKLSAgICBJbnNlcnRUZXh0T3B0aW9ucyBvcHRpb25zOwotICAgIG9wdGlvbnMucmVnaXN0
ZXJVbmRvR3JvdXAgPSByZWdpc3RlclVuZG9Hcm91cDsKLQogICAgIGluc2VydFRleHRBc3luYyh0
ZXh0LCByZXBsYWNlbWVudFJhbmdlLCBXVEZNb3ZlKG9wdGlvbnMpKTsKICNlbmRpZgogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCBiY2JiNzYw
NWNhYzBmNGM1NjNiMDk1ZmIyNzgzM2VhOTdkNTgzYTQzLi5mOWQ3YWJlNzRjNDI2ZmI0NTQyMzAz
ZDE1ZDMyM2YwYzJmMmFkMDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbQpAQCAtNDg0NCw5ICs0ODQ0LDExIEBAIHZvaWQgV2ViVmlld0ltcGw6Omlu
c2VydFRleHQoaWQgc3RyaW5nLCBOU1JhbmdlIHJlcGxhY2VtZW50UmFuZ2UpCiAKICAgICBTdHJp
bmcgZXZlbnRUZXh0ID0gdGV4dDsKICAgICBldmVudFRleHQucmVwbGFjZShOU0JhY2tUYWJDaGFy
YWN0ZXIsIE5TVGFiQ2hhcmFjdGVyKTsgLy8gc2FtZSB0aGluZyBpcyBkb25lIGluIEtleUV2ZW50
TWFjLm1tIGluIFdlYkNvcmUKLSAgICBpZiAoIWRpY3RhdGlvbkFsdGVybmF0aXZlcy5pc0VtcHR5
KCkpCi0gICAgICAgIG1fcGFnZS0+aW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMoZXZlbnRUZXh0LCBy
ZXBsYWNlbWVudFJhbmdlLCBkaWN0YXRpb25BbHRlcm5hdGl2ZXMsIHJlZ2lzdGVyVW5kb0dyb3Vw
KTsKLSAgICBlbHNlIHsKKyAgICBpZiAoIWRpY3RhdGlvbkFsdGVybmF0aXZlcy5pc0VtcHR5KCkp
IHsKKyAgICAgICAgSW5zZXJ0VGV4dE9wdGlvbnMgb3B0aW9uczsKKyAgICAgICAgb3B0aW9ucy5y
ZWdpc3RlclVuZG9Hcm91cCA9IHJlZ2lzdGVyVW5kb0dyb3VwOworICAgICAgICBtX3BhZ2UtPmlu
c2VydERpY3RhdGVkVGV4dEFzeW5jKGV2ZW50VGV4dCwgcmVwbGFjZW1lbnRSYW5nZSwgZGljdGF0
aW9uQWx0ZXJuYXRpdmVzLCBXVEZNb3ZlKG9wdGlvbnMpKTsKKyAgICB9IGVsc2UgewogICAgICAg
ICBJbnNlcnRUZXh0T3B0aW9ucyBvcHRpb25zOwogICAgICAgICBvcHRpb25zLnJlZ2lzdGVyVW5k
b0dyb3VwID0gcmVnaXN0ZXJVbmRvR3JvdXA7CiAgICAgICAgIG9wdGlvbnMuZWRpdGluZ1Jhbmdl
SXNSZWxhdGl2ZVRvID0gbV9pc1RleHRJbnNlcnRpb25SZXBsYWNpbmdTb2Z0U3BhY2UgPyBFZGl0
aW5nUmFuZ2VJc1JlbGF0aXZlVG86OlBhcmFncmFwaCA6IEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVU
bzo6RWRpdGFibGVSb290OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRl
eCBjOGUzMmFkYjdmZmM4MGUwMGQwN2I1OTBkNTYzMzYxNWVmMmMxMWM2Li45MDNjNzBmMzg4YzA0
NWUwYzA2N2ExOWE1MGU2MGYxNmYzOGRiNGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaApAQCAtODQ4LDcgKzg0OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFRleHRB
c3luYyhjb25zdCBTdHJpbmcmKTsKIAogICAgIHZvaWQgaW5zZXJ0VGV4dEFzeW5jKGNvbnN0IFN0
cmluZyYsIGNvbnN0IEVkaXRpbmdSYW5nZSYgcmVwbGFjZW1lbnRSYW5nZSwgSW5zZXJ0VGV4dE9w
dGlvbnMmJik7Ci0gICAgdm9pZCBpbnNlcnREaWN0YXRlZFRleHRBc3luYyhjb25zdCBTdHJpbmcm
LCBjb25zdCBFZGl0aW5nUmFuZ2UmIHJlcGxhY2VtZW50UmFuZ2UsIGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2U+JiwgYm9vbCByZWdpc3RlclVuZG9Hcm91cCk7
CisgICAgdm9pZCBpbnNlcnREaWN0YXRlZFRleHRBc3luYyhjb25zdCBTdHJpbmcmLCBjb25zdCBF
ZGl0aW5nUmFuZ2UmIHJlcGxhY2VtZW50UmFuZ2UsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpUZXh0
QWx0ZXJuYXRpdmVXaXRoUmFuZ2U+JiwgSW5zZXJ0VGV4dE9wdGlvbnMmJik7CiAKICAgICB2b2lk
IGhhc01hcmtlZFRleHQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9p
ZCBnZXRNYXJrZWRSYW5nZUFzeW5jKFdURjo6RnVuY3Rpb248dm9pZCAoRWRpdGluZ1JhbmdlLCBD
YWxsYmFja0Jhc2U6OkVycm9yKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA3NzdkMmM4MjFlYTk5
NWRjOTgxYjI2OGNlZDExNzM4NjVkYWJhYjkwLi43NzU0ZDZlYzQxYTZkMzAyMjkzZTMxZmYyMWE5
NDM4MzNiNmVkNjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTQ3MzEsNyArNDczMSw3IEBAIC0gKHZv
aWQpaW5zZXJ0VGV4dDooTlNTdHJpbmcgKilhU3RyaW5nVmFsdWUgYWx0ZXJuYXRpdmVzOihOU0Fy
cmF5PE5TU3RyaW5nICo+ICopCiAgICAgICAgIEJPT0wgaXNMb3dDb25maWRlbmNlID0gc3R5bGUg
PT0gVUlUZXh0QWx0ZXJuYXRpdmVTdHlsZUxvd0NvbmZpZGVuY2U7CiAgICAgICAgIGF1dG8gdGV4
dEFsdGVybmF0aXZlcyA9IGFkb3B0TlMoW1tOU1RleHRBbHRlcm5hdGl2ZXMgYWxsb2NdIGluaXRX
aXRoUHJpbWFyeVN0cmluZzphU3RyaW5nVmFsdWUgYWx0ZXJuYXRpdmVTdHJpbmdzOmFsdGVybmF0
aXZlcyBpc0xvd0NvbmZpZGVuY2U6aXNMb3dDb25maWRlbmNlXSk7CiAgICAgICAgIFdlYkNvcmU6
OlRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZSB0ZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UgeyB0ZXh0
QWx0ZXJuYXRpdmVzLmdldCgpLCBOU01ha2VSYW5nZSgwLCBhU3RyaW5nVmFsdWUubGVuZ3RoKSB9
OwotICAgICAgICBfcGFnZS0+aW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMoYVN0cmluZ1ZhbHVlLCBX
ZWJLaXQ6OkVkaXRpbmdSYW5nZSB7IH0sIHsgdGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlIH0sIGZh
bHNlIC8qIHJlZ2lzdGVyVW5kb0dyb3VwICovKTsKKyAgICAgICAgX3BhZ2UtPmluc2VydERpY3Rh
dGVkVGV4dEFzeW5jKGFTdHJpbmdWYWx1ZSwgeyB9LCB7IHRleHRBbHRlcm5hdGl2ZVdpdGhSYW5n
ZSB9LCB7IH0pOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCmluZGV4IDExMDEzY2U1ZWM4YTk3YTlh
MTIxNGU4NTliOTVmYmU4NGI0ZjZjZTYuLjlhYjliOGEwNGZiMGZlODYzMDU1NDc5MGM5YTZkOGE0
MDNlZjZmNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
Y29hL1dlYlBhZ2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KQEAgLTI3LDYgKzI3LDcgQEAKICNpbXBvcnQgIldlYlBh
Z2UuaCIKIAogI2ltcG9ydCAiQXR0cmlidXRlZFN0cmluZy5oIgorI2ltcG9ydCAiSW5zZXJ0VGV4
dE9wdGlvbnMuaCIKICNpbXBvcnQgIkxvYWRQYXJhbWV0ZXJzLmgiCiAjaW1wb3J0ICJQbHVnaW5W
aWV3LmgiCiAjaW1wb3J0ICJXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5oIgpAQCAt
MTgyLDcgKzE4Myw3IEBAIERpY3Rpb25hcnlQb3B1cEluZm8gV2ViUGFnZTo6ZGljdGlvbmFyeVBv
cHVwSW5mb0ZvclJhbmdlKEZyYW1lJiBmcmFtZSwgUmFuZ2UmIHJhCiAgICAgcmV0dXJuIGRpY3Rp
b25hcnlQb3B1cEluZm87CiB9CiAKLXZvaWQgV2ViUGFnZTo6aW5zZXJ0RGljdGF0ZWRUZXh0QXN5
bmMoY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBFZGl0aW5nUmFuZ2UmIHJlcGxhY2VtZW50RWRp
dGluZ1JhbmdlLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6RGljdGF0aW9uQWx0ZXJuYXRpdmU+JiBk
aWN0YXRpb25BbHRlcm5hdGl2ZUxvY2F0aW9ucywgYm9vbCByZWdpc3RlclVuZG9Hcm91cCkKK3Zv
aWQgV2ViUGFnZTo6aW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMoY29uc3QgU3RyaW5nJiB0ZXh0LCBj
b25zdCBFZGl0aW5nUmFuZ2UmIHJlcGxhY2VtZW50RWRpdGluZ1JhbmdlLCBjb25zdCBWZWN0b3I8
V2ViQ29yZTo6RGljdGF0aW9uQWx0ZXJuYXRpdmU+JiBkaWN0YXRpb25BbHRlcm5hdGl2ZUxvY2F0
aW9ucywgSW5zZXJ0VGV4dE9wdGlvbnMmJiBvcHRpb25zKQogewogICAgIGF1dG8mIGZyYW1lID0g
bV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKICAgICBSZWY8
RnJhbWU+IHByb3RlY3RvciB7IGZyYW1lIH07CkBAIC0xOTMsNyArMTk0LDcgQEAgdm9pZCBXZWJQ
YWdlOjppbnNlcnREaWN0YXRlZFRleHRBc3luYyhjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IEVk
aXRpbmdSYW5nZSYgcmUKICAgICAgICAgICAgIGZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlv
bihWaXNpYmxlU2VsZWN0aW9uIHsgKnJlcGxhY2VtZW50UmFuZ2UsIFNFTF9ERUZBVUxUX0FGRklO
SVRZIH0pOwogICAgIH0KIAotICAgIGlmIChyZWdpc3RlclVuZG9Hcm91cCkKKyAgICBpZiAob3B0
aW9ucy5yZWdpc3RlclVuZG9Hcm91cCkKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSZWdpc3Rlckluc2VydGlvblVuZG9Hcm91cGluZyB7IH0pOwogCiAgICAgQVNTRVJUKCFm
cmFtZS5lZGl0b3IoKS5oYXNDb21wb3NpdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA0ZGM0ZTEwODU2MmZmYWQ5MWIyOGJjZTQ0ZjlmY2U0
NGQzNTg5YzU5Li42YjI4MzcyYWI1YTdiYTEwYzViOGZhZjA0MGEyMWNhNGJhZTNiOWYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC04NDYsNyArODQ2
LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWNjZXB0c0ZpcnN0TW91c2UoaW50IGV2ZW50TnVtYmVy
LCBjb25zdCBXZWJLaXQ6OldlYk1vdXNlRXZlbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKICAgICBib29sIHBlcmZvcm1Ob25FZGl0aW5nQmVoYXZpb3JGb3JTZWxlY3Rvcihj
b25zdCBTdHJpbmcmLCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7CiAKLSAgICB2b2lkIGluc2Vy
dERpY3RhdGVkVGV4dEFzeW5jKGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgRWRpdGluZ1Jhbmdl
JiByZXBsYWNlbWVudFJhbmdlLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6RGljdGF0aW9uQWx0ZXJu
YXRpdmU+JiBkaWN0YXRpb25BbHRlcm5hdGl2ZUxvY2F0aW9ucywgYm9vbCByZWdpc3RlclVuZG9H
cm91cCA9IGZhbHNlKTsKKyAgICB2b2lkIGluc2VydERpY3RhdGVkVGV4dEFzeW5jKGNvbnN0IFN0
cmluZyYgdGV4dCwgY29uc3QgRWRpdGluZ1JhbmdlJiByZXBsYWNlbWVudFJhbmdlLCBjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6RGljdGF0aW9uQWx0ZXJuYXRpdmU+JiBkaWN0YXRpb25BbHRlcm5hdGl2
ZUxvY2F0aW9ucywgSW5zZXJ0VGV4dE9wdGlvbnMmJik7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCmluZGV4IGY4NDM3M2Y1MGU4Y2IzZTAzOTFlOTNhZGU2NGM5NmE3M2NlNzM1
MmYuLjc2MjAyZTUzNmFhYmIzZmIwNmUxNDhhM2Y1YzY1NmNjNjczNjAwMzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpA
QCAtNDQyLDcgKzQ0Miw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1
aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgU2V0VGV4dEFz
eW5jKFN0cmluZyB0ZXh0KQogCiAgICAgSW5zZXJ0VGV4dEFzeW5jKFN0cmluZyB0ZXh0LCBzdHJ1
Y3QgV2ViS2l0OjpFZGl0aW5nUmFuZ2UgcmVwbGFjZW1lbnRSYW5nZSwgc3RydWN0IFdlYktpdDo6
SW5zZXJ0VGV4dE9wdGlvbnMgb3B0aW9ucykKLSAgICBJbnNlcnREaWN0YXRlZFRleHRBc3luYyhT
dHJpbmcgdGV4dCwgc3RydWN0IFdlYktpdDo6RWRpdGluZ1JhbmdlIHJlcGxhY2VtZW50UmFuZ2Us
IFZlY3RvcjxXZWJDb3JlOjpEaWN0YXRpb25BbHRlcm5hdGl2ZT4gZGljdGF0aW9uQWx0ZXJuYXRp
dmVzLCBib29sIHJlZ2lzdGVyVW5kb0dyb3VwKQorICAgIEluc2VydERpY3RhdGVkVGV4dEFzeW5j
KFN0cmluZyB0ZXh0LCBzdHJ1Y3QgV2ViS2l0OjpFZGl0aW5nUmFuZ2UgcmVwbGFjZW1lbnRSYW5n
ZSwgVmVjdG9yPFdlYkNvcmU6OkRpY3RhdGlvbkFsdGVybmF0aXZlPiBkaWN0YXRpb25BbHRlcm5h
dGl2ZXMsIHN0cnVjdCBXZWJLaXQ6Okluc2VydFRleHRPcHRpb25zIG9wdGlvbnMpCiAKICAgICBI
YXNNYXJrZWRUZXh0KCkgLT4gKGJvb2wgaGFzTWFya2VkVGV4dCkgQXN5bmMKICAgICBHZXRNYXJr
ZWRSYW5nZUFzeW5jKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>