<?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>168097</bug_id>
          
          <creation_ts>2017-02-09 17:38:34 -0800</creation_ts>
          <short_desc>[Cocoa] Add shouldChangeSelectedRange to WKWebProcessPlugInEditingDelegate</short_desc>
          <delta_ts>2017-02-10 14:18:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1275165</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2017-02-09 17:38:34 -0800</bug_when>
    <thetext>Expose InjectedBundle::EditorClient::shouldChangeSelectedRange via WKWebProcessPlugInEditingDelegate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275543</commentid>
    <comment_count>1</comment_count>
      <attachid>301198</attachid>
    <who name="">mitz</who>
    <bug_when>2017-02-10 14:06:04 -0800</bug_when>
    <thetext>Created attachment 301198
Add new delegate method and make sure it is called for user-initiated changes on iOS as well</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275544</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-10 14:07:53 -0800</bug_when>
    <thetext>Attachment 301198 did not pass style-queue:


ERROR: Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:610:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275545</commentid>
    <comment_count>3</comment_count>
      <attachid>301198</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-02-10 14:08:35 -0800</bug_when>
    <thetext>Comment on attachment 301198
Add new delegate method and make sure it is called for user-initiated changes on iOS as well

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

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:621
&gt; +                toRange:toRange ? adoptNS([[WKDOMRange alloc] _initWithImpl:toRange]).get() : nil affinity:cocoaAffinity stillSelecting:stillSelecting];

Can we pull the range out into a variable so as not to have this insane syntax?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275546</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2017-02-10 14:18:14 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 301198 [details]
&gt; Add new delegate method and make sure it is called for user-initiated
&gt; changes on iOS as well
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=301198&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:621
&gt; &gt; +                toRange:toRange ? adoptNS([[WKDOMRange alloc] _initWithImpl:toRange]).get() : nil affinity:cocoaAffinity stillSelecting:stillSelecting];
&gt; 
&gt; Can we pull the range out into a variable so as not to have this insane
&gt; syntax?

OK.

Committed &lt;https://trac.webkit.org/r212149&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301198</attachid>
            <date>2017-02-10 14:06:04 -0800</date>
            <delta_ts>2017-02-10 14:08:35 -0800</delta_ts>
            <desc>Add new delegate method and make sure it is called for user-initiated changes on iOS as well</desc>
            <filename>bug-168097-20170210140336.patch</filename>
            <type>text/plain</type>
            <size>17258</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMjEyMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE3LTAyLTEwICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgc2hvdWxkQ2hh
bmdlU2VsZWN0ZWRSYW5nZSB0byBXS1dlYlByb2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdhdGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODA5NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgdXNl
clRyaWdnZXJlZCBhcmd1bWVudCB0byBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZSBz
byB0aGF0IFdlYktpdDIgY2FuCisgICAgICAgIGluZGljYXRlIHRoYXQgY2hhbmdlcyBzaG91bGQg
YmUgYWdyZWVkIHRvIGJ5IHRoZSBkZWxlZ2F0ZS4KKworICAgICAgICAqIGVkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVj
dGVkUmFuZ2UpOiBJZiB0aGUgY2hhbmdlIGlzIHVzZXItdHJpZ2dlcmVkLCBjaGVjayB3aXRoCisg
ICAgICAgICAgc2hvdWxkQ2hhbmdlU2VsZWN0aW9uLgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uaDoKKwogMjAxNy0wMi0xMCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW0VNRV0gSW1wbGVtZW50IE1lZGlhS2V5U2Vzc2lvbjo6bG9hZCgp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAkocmV2aXNp
b24gMjEyMTIzKQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE5NDMsNyArMTk0Myw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246
OnNlbGVjdEFsbCgpCiAgICAgfQogfQogCi1ib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rl
ZFJhbmdlKFJhbmdlKiByYW5nZSwgRUFmZmluaXR5IGFmZmluaXR5LCBib29sIGNsb3NlVHlwaW5n
KQorYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVB
ZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZywgRVVzZXJUcmlnZ2VyZWQgdXNlclRy
aWdnZXJlZCkKIHsKICAgICBpZiAoIXJhbmdlKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0x
OTU3LDYgKzE5NTcsMTQgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShS
YQogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIAorICAgIGlmICh1c2VyVHJpZ2dlcmVk
ID09IFVzZXJUcmlnZ2VyZWQpIHsKKyAgICAgICAgRnJhbWVTZWxlY3Rpb24gdHJpYWxGcmFtZVNl
bGVjdGlvbjsKKyAgICAgICAgdHJpYWxGcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uLCBDbGVhclR5cGluZ1N0eWxlIHwgKGNsb3NlVHlwaW5nID8gQ2xvc2VUeXBpbmcgOiAw
KSk7CisKKyAgICAgICAgaWYgKCFzaG91bGRDaGFuZ2VTZWxlY3Rpb24odHJpYWxGcmFtZVNlbGVj
dGlvbi5zZWxlY3Rpb24oKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAg
ICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgQ2xlYXJUeXBpbmdTdHlsZSB8IChjbG9zZVR5
cGluZyA/IENsb3NlVHlwaW5nIDogMCkpOwogICAgIHJldHVybiB0cnVlOwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAkocmV2aXNpb24gMjEyMTIzKQorKysg
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xNDUsNyArMTQ1LDcgQEAgcHVibGljOgogCiAgICAgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
c2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb247IH0KICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0
aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSwgQ3Vyc29yQWxpZ25PblNjcm9s
bCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFj
dGVyR3JhbnVsYXJpdHkpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0U2VsZWN0ZWRSYW5n
ZShSYW5nZSosIEVBZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZyk7CisgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiwgRUFmZmluaXR5LCBib29sIGNsb3NlVHlw
aW5nLCBFVXNlclRyaWdnZXJlZCA9IE5vdFVzZXJUcmlnZ2VyZWQpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2VsZWN0QWxsKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwog
ICAgIHZvaWQgcHJlcGFyZUZvckRlc3RydWN0aW9uKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lv
biAyMTIxNDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwzMiBAQAorMjAxNy0wMi0xMCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29t
PgorCisgICAgICAgIFtDb2NvYV0gQWRkIHNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UgdG8gV0tX
ZWJQcm9jZXNzUGx1Z0luRWRpdGluZ0RlbGVnYXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgwOTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0Nv
Y29hL1dLV2ViUHJvY2Vzc1BsdWdJbkVkaXRpbmdEZWxlZ2F0ZS5oOgorICAgICAgICAgIERlY2xh
cmVkIG5ldyBkZWxlZ2F0ZSBtZXRob2QuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5t
bToKKyAgICAgICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
IF9zZXRFZGl0aW5nRGVsZWdhdGU6XSk6IERpc3BhdGNoIG5ldyBkZWxlZ2F0ZQorICAgICAgICAg
IG1ldGhvZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2VsZWN0V2l0aEdlc3R1cmUpOiBQYXNzIFVz
ZXJUcmlnZ2VyZWQgd2hhbiBjYWxsaW5nCisgICAgICAgICAgV2ViQ29yZTo6RnJhbWU6OlNlbGVj
dGlvbjo6c2V0U2VsZWN0ZWRSYW5nZSwgc28gdGhhdCB0aGUgZGVsZWdhdGUgaXMgY29uc3VsdGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjaGFuZ2VCbG9ja1NlbGVjdGlvbik6IERpdHRv
LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVTZWxlY3Rpb25XaXRoVG91Y2hlcyk6
IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZWxlY3RXaXRoVHdvVG91Y2hlcyk6
IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpleHRlbmRTZWxlY3Rpb24pOiBEaXR0
by4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2VsZWN0V29yZEJhY2t3YXJkKTogRGl0dG8s
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1vdmVTZWxlY3Rpb25CeU9mZnNldCk6IERpdHRv
LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZWxlY3RQb3NpdGlvbkF0UG9pbnQpOiBEaXR0
by4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2VsZWN0UG9zaXRpb25BdEJvdW5kYXJ5V2l0
aERpcmVjdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjptb3ZlU2VsZWN0
aW9uQXRCb3VuZGFyeVdpdGhEaXJlY3Rpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6c2VsZWN0VGV4dFdpdGhHcmFudWxhcml0eUF0UG9pbnQpOiBEaXR0by4KKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlU2VsZWN0aW9uV2l0aEV4dGVudFBvaW50QW5kQm91bmRh
cnkpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlU2VsZWN0aW9uV2l0
aEV4dGVudFBvaW50KTogRGl0dG8uCisKIDIwMTctMDItMTAgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgYWxsIFdlYktpdCBMaWJyYXJ5IFZlcnNp
b24gY2hlY2tzIGluIFdLMiB3aXRoIFNESyB2ZXJzaW9uIGNoZWNrcy4KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1Bs
dWdJbkVkaXRpbmdEZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkVkaXRpbmdE
ZWxlZ2F0ZS5oCShyZXZpc2lvbiAyMTIxMjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdh
dGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsMTIgQEAKICNpbXBvcnQgPFdlYktpdC9X
S1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdl
YktpdC9XS1dlYlByb2Nlc3NQbHVnSW5SYW5nZUhhbmRsZS5oPgogCisjaWYgVEFSR0VUX09TX0lQ
SE9ORQorI2ltcG9ydCA8VUlLaXQvVUlLaXQuaD4KKyNlbHNlCisjaW1wb3J0IDxBcHBLaXQvQXBw
S2l0Lmg+CisjZW5kaWYKKwogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogdHlwZWRlZiBOU19F
TlVNKE5TSW50ZWdlciwgV0tFZGl0b3JJbnNlcnRBY3Rpb24pIHsKQEAgLTQ0LDYgKzUwLDExIEBA
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MKIEBvcHRpb25hbAogCiAt
IChCT09MKV93ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyIHNob3VsZElu
c2VydFRleHQ6KE5TU3RyaW5nICopdGV4dCByZXBsYWNpbmdSYW5nZTooV0tXZWJQcm9jZXNzUGx1
Z0luUmFuZ2VIYW5kbGUgKilyYW5nZSBnaXZlbkFjdGlvbjooV0tFZGl0b3JJbnNlcnRBY3Rpb24p
YWN0aW9uOworI2lmIFRBUkdFVF9PU19JUEhPTkUKKy0gKEJPT0wpX3dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0
Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZTooV0tET01S
YW5nZSAqKWN1cnJlbnRSYW5nZSB0b1JhbmdlOihXS0RPTVJhbmdlICopcHJvcG9zZWRSYW5nZSBh
ZmZpbml0eTooVUlUZXh0U3RvcmFnZURpcmVjdGlvbilzZWxlY3Rpb25BZmZpbml0eSBzdGlsbFNl
bGVjdGluZzooQk9PTClzdGlsbFNlbGVjdGluZzsKKyNlbHNlCistIChCT09MKV93ZWJQcm9jZXNz
UGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2Vy
Q29udGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyIHNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2U6
KFdLRE9NUmFuZ2UgKiljdXJyZW50UmFuZ2UgdG9SYW5nZTooV0tET01SYW5nZSAqKXByb3Bvc2Vk
UmFuZ2UgYWZmaW5pdHk6KE5TU2VsZWN0aW9uQWZmaW5pdHkpc2VsZWN0aW9uQWZmaW5pdHkgc3Rp
bGxTZWxlY3Rpbmc6KEJPT0wpc3RpbGxTZWxlY3Rpbmc7CisjZW5kaWYKIC0gKHZvaWQpX3dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJy
b3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgd2lsbFdyaXRlUmFuZ2VUb1Bhc3Rl
Ym9hcmQ6KFdLV2ViUHJvY2Vzc1BsdWdJblJhbmdlSGFuZGxlICopcmFuZ2U7CiAtIChOU0RpY3Rp
b25hcnk8TlNTdHJpbmcgKiwgTlNEYXRhICo+ICopX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
ciAqKWNvbnRyb2xsZXIgcGFzdGVib2FyZERhdGFGb3JSYW5nZTooV0tXZWJQcm9jZXNzUGx1Z0lu
UmFuZ2VIYW5kbGUgKilyYW5nZTsKIC0gKHZvaWQpX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXJEaWRXcml0ZVRvUGFzdGVib2FyZDooV0tXZWJQcm9jZXNzUGx1Z0luQnJv
d3NlckNvbnRleHRDb250cm9sbGVyICopY29udHJvbGxlcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93
c2VyQ29udGV4dENvbnRyb2xsZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJD
b250ZXh0Q29udHJvbGxlci5tbQkocmV2aXNpb24gMjEyMTIzKQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dz
ZXJDb250ZXh0Q29udHJvbGxlci5tbQkod29ya2luZyBjb3B5KQpAQCAtNjA2LDYgKzYwNiwyMSBA
QCAtICh2b2lkKV9zZXRFZGl0aW5nRGVsZWdhdGU6KGlkIDxXS1dlYlByCiAgICAgICAgICAgICBy
ZXR1cm4gW21fY29udHJvbGxlci0+X2VkaXRpbmdEZWxlZ2F0ZS5nZXQoKSBfd2ViUHJvY2Vzc1Bs
dWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjptX2NvbnRyb2xsZXIgc2hvdWxkSW5zZXJ0VGV4
dDpTdHJpbmcodGV4dCkgcmVwbGFjaW5nUmFuZ2U6d3JhcHBlcigqSW5qZWN0ZWRCdW5kbGVSYW5n
ZUhhbmRsZTo6Z2V0T3JDcmVhdGUocmFuZ2VUb1JlcGxhY2UpKSBnaXZlbkFjdGlvbjp0b1dLKGFj
dGlvbildOwogICAgICAgICB9CiAKKyAgICAgICAgYm9vbCBzaG91bGRDaGFuZ2VTZWxlY3RlZFJh
bmdlKFdlYlBhZ2UmLCBSYW5nZSogZnJvbVJhbmdlLCBSYW5nZSogdG9SYW5nZSwgRUFmZmluaXR5
IGFmZmluaXR5LCBib29sIHN0aWxsU2VsZWN0aW5nKSBmaW5hbAorICAgICAgICB7CisgICAgICAg
ICAgICBpZiAoIW1fZGVsZWdhdGVNZXRob2RzLnNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgICAg
ICAgICBVSVRleHRTdG9yYWdlRGlyZWN0aW9uIGNvY29hQWZmaW5pdHkgPSBhZmZpbml0eSA9PSBV
UFNUUkVBTSA/IFVJVGV4dFN0b3JhZ2VEaXJlY3Rpb25CYWNrd2FyZCA6IFVJVGV4dFN0b3JhZ2VE
aXJlY3Rpb25Gb3J3YXJkOworI2Vsc2UKKyAgICAgICAgICAgIE5TU2VsZWN0aW9uQWZmaW5pdHkg
Y29jb2FBZmZpbml0eSA9IGFmZmluaXR5ID09IFVQU1RSRUFNID8gTlNTZWxlY3Rpb25BZmZpbml0
eVVwc3RyZWFtIDogTlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW07CisjZW5kaWYKKworICAg
ICAgICAgICAgcmV0dXJuIFttX2NvbnRyb2xsZXItPl9lZGl0aW5nRGVsZWdhdGUuZ2V0KCkgX3dl
YlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6bV9jb250cm9sbGVyIHNob3Vs
ZENoYW5nZVNlbGVjdGVkUmFuZ2U6ZnJvbVJhbmdlID8gYWRvcHROUyhbW1dLRE9NUmFuZ2UgYWxs
b2NdIF9pbml0V2l0aEltcGw6ZnJvbVJhbmdlXSkuZ2V0KCkgOiBuaWwKKyAgICAgICAgICAgICAg
ICB0b1JhbmdlOnRvUmFuZ2UgPyBhZG9wdE5TKFtbV0tET01SYW5nZSBhbGxvY10gX2luaXRXaXRo
SW1wbDp0b1JhbmdlXSkuZ2V0KCkgOiBuaWwgYWZmaW5pdHk6Y29jb2FBZmZpbml0eSBzdGlsbFNl
bGVjdGluZzpzdGlsbFNlbGVjdGluZ107CisgICAgICAgIH0KKwogICAgICAgICB2b2lkIHdpbGxX
cml0ZVRvUGFzdGVib2FyZChXZWJLaXQ6OldlYlBhZ2UmLCBXZWJDb3JlOjpSYW5nZSogcmFuZ2Up
IGZpbmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghbV9kZWxlZ2F0ZU1ldGhvZHMud2ls
bFdyaXRlVG9QYXN0ZWJvYXJkKQpAQCAtNjM4LDYgKzY1Myw3IEBAIC0gKHZvaWQpX3NldEVkaXRp
bmdEZWxlZ2F0ZTooaWQgPFdLV2ViUHIKICAgICAgICAgY29uc3Qgc3RydWN0IERlbGVnYXRlTWV0
aG9kcyB7CiAgICAgICAgICAgICBEZWxlZ2F0ZU1ldGhvZHMoUmV0YWluUHRyPGlkIDxXS1dlYlBy
b2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdhdGU+PiBkZWxlZ2F0ZSkKICAgICAgICAgICAgICAgICA6
IHNob3VsZEluc2VydFRleHQoW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
X3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6c2hvdWxkSW5zZXJ0VGV4
dDpyZXBsYWNpbmdSYW5nZTpnaXZlbkFjdGlvbjopXSkKKyAgICAgICAgICAgICAgICAsIHNob3Vs
ZENoYW5nZVNlbGVjdGVkUmFuZ2UoW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6c2hvdWxkQ2hhbmdl
U2VsZWN0ZWRSYW5nZTp0b1JhbmdlOmFmZmluaXR5OnN0aWxsU2VsZWN0aW5nOildKQogICAgICAg
ICAgICAgICAgICwgd2lsbFdyaXRlVG9QYXN0ZWJvYXJkKFtkZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF93ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
OndpbGxXcml0ZVJhbmdlVG9QYXN0ZWJvYXJkOildKQogICAgICAgICAgICAgICAgICwgZ2V0UGFz
dGVib2FyZERhdGFGb3JSYW5nZShbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpwYXN0ZWJvYXJkRGF0
YUZvclJhbmdlOildKQogICAgICAgICAgICAgICAgICwgZGlkV3JpdGVUb1Bhc3RlYm9hcmQoW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlByb2Nlc3NQbHVnSW5Ccm93
c2VyQ29udGV4dENvbnRyb2xsZXJEaWRXcml0ZVRvUGFzdGVib2FyZDopXSkKQEAgLTY0NSw2ICs2
NjEsNyBAQCAtICh2b2lkKV9zZXRFZGl0aW5nRGVsZWdhdGU6KGlkIDxXS1dlYlByCiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIGJvb2wgc2hvdWxkSW5zZXJ0VGV4dDsKKyAgICAgICAgICAg
IGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZTsKICAgICAgICAgICAgIGJvb2wgd2lsbFdy
aXRlVG9QYXN0ZWJvYXJkOwogICAgICAgICAgICAgYm9vbCBnZXRQYXN0ZWJvYXJkRGF0YUZvclJh
bmdlOwogICAgICAgICAgICAgYm9vbCBkaWRXcml0ZVRvUGFzdGVib2FyZDsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0J
KHJldmlzaW9uIDIxMjEyMykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTE2MCw3ICsxMTYwLDcgQEAgdm9p
ZCBXZWJQYWdlOjpzZWxlY3RXaXRoR2VzdHVyZShjb25zdCBJbgogICAgICAgICBicmVhazsKICAg
ICB9CiAgICAgaWYgKHJhbmdlKQotICAgICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rl
ZFJhbmdlKHJhbmdlLmdldCgpLCBwb3NpdGlvbi5hZmZpbml0eSgpLCB0cnVlKTsKKyAgICAgICAg
ZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0ZWRSYW5nZShyYW5nZS5nZXQoKSwgcG9zaXRpb24u
YWZmaW5pdHkoKSwgdHJ1ZSwgVXNlclRyaWdnZXJlZCk7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6Okdlc3R1cmVDYWxsYmFjayhwb2ludCwgZ2VzdHVyZVR5cGUsIGdlc3R1cmVT
dGF0ZSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGZsYWdzKSwgY2FsbGJhY2tJRCkpOwogfQpAQCAt
MTYxMyw3ICsxNjEzLDcgQEAgUGFzc1JlZlB0cjxXZWJDb3JlOjpSYW5nZT4gV2ViUGFnZTo6Y2hh
bgogCiAgICAgaWYgKG5ld1JhbmdlKSB7CiAgICAgICAgIG1fY3VycmVudEJsb2NrU2VsZWN0aW9u
ID0gbmV3UmFuZ2U7Ci0gICAgICAgIGZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGVkUmFuZ2Uo
bmV3UmFuZ2UuZ2V0KCksIFZQX0RFRkFVTFRfQUZGSU5JVFksIHRydWUpOworICAgICAgICBmcmFt
ZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3RlZFJhbmdlKG5ld1JhbmdlLmdldCgpLCBWUF9ERUZBVUxU
X0FGRklOSVRZLCB0cnVlLCBVc2VyVHJpZ2dlcmVkKTsKICAgICB9CiAKICAgICBjb21wdXRlRXhw
YW5kQW5kU2hyaW5rVGhyZXNob2xkc0ZvckhhbmRsZShwb2ludCwgaGFuZGxlUG9zaXRpb24sIGdy
b3dUaHJlc2hvbGQsIHNocmlua1RocmVzaG9sZCk7CkBAIC0xNzM3LDEzICsxNzM3LDEzIEBAIHZv
aWQgV2ViUGFnZTo6dXBkYXRlU2VsZWN0aW9uV2l0aFRvdWNoZXMKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogICAgIGlmIChyYW5nZSAmJiBmbGFncyAhPSBJc0Jsb2NrU2VsZWN0aW9uKQotICAgICAg
ICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3RlZFJhbmdlKHJhbmdlLmdldCgpLCBwb3NpdGlv
bi5hZmZpbml0eSgpLCB0cnVlKTsKKyAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0
ZWRSYW5nZShyYW5nZS5nZXQoKSwgcG9zaXRpb24uYWZmaW5pdHkoKSwgdHJ1ZSwgVXNlclRyaWdn
ZXJlZCk7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlRvdWNoZXNDYWxsYmFj
ayhwb2ludCwgdG91Y2hlcywgZmxhZ3MsIGNhbGxiYWNrSUQpKTsKICAgICBpZiAocmFuZ2UgJiYg
ZmxhZ3MgPT0gSXNCbG9ja1NlbGVjdGlvbikgewogICAgICAgICAvLyBXZSBqdXN0IHN3aXRjaGVk
IHRvIGJsb2NrIHNlbGVjdGlvbiB0aGVyZWZvcmUgd2UgbmVlZCB0byBjb21wdXRlIHRoZSB0aHJl
c2hvbGRzLgogICAgICAgICBtX2N1cnJlbnRCbG9ja1NlbGVjdGlvbiA9IHJhbmdlOwotICAgICAg
ICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3RlZFJhbmdlKHJhbmdlLmdldCgpLCBwb3NpdGlv
bi5hZmZpbml0eSgpLCB0cnVlKTsKKyAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0
ZWRSYW5nZShyYW5nZS5nZXQoKSwgcG9zaXRpb24uYWZmaW5pdHkoKSwgdHJ1ZSwgVXNlclRyaWdn
ZXJlZCk7CiAgICAgICAgIAogICAgICAgICBmbG9hdCBncm93VGhyZXNob2xkID0gMDsKICAgICAg
ICAgZmxvYXQgc2hyaW5rVGhyZXNob2xkID0gMDsKQEAgLTE3NjMsNyArMTc2Myw3IEBAIHZvaWQg
V2ViUGFnZTo6c2VsZWN0V2l0aFR3b1RvdWNoZXMoY29uc3QKICAgICAgICAgICAgIHJhbmdlID0g
UmFuZ2U6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSwgZnJvbVBvc2l0aW9uLCB0b1Bvc2l0aW9u
KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKCpmcmFt
ZS5kb2N1bWVudCgpLCB0b1Bvc2l0aW9uLCBmcm9tUG9zaXRpb24pOwotICAgICAgICBmcmFtZS5z
ZWxlY3Rpb24oKS5zZXRTZWxlY3RlZFJhbmdlKHJhbmdlLmdldCgpLCBmcm9tUG9zaXRpb24uYWZm
aW5pdHkoKSwgdHJ1ZSk7CisgICAgICAgIGZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGVkUmFu
Z2UocmFuZ2UuZ2V0KCksIGZyb21Qb3NpdGlvbi5hZmZpbml0eSgpLCB0cnVlLCBVc2VyVHJpZ2dl
cmVkKTsKICAgICB9CiAKICAgICAvLyBXZSBjYW4gdXNlIHRoZSBzYW1lIGNhbGxiYWNrIGZvciB0
aGUgZ2VzdHVyZXMgd2l0aCBvbmUgcG9pbnQuCkBAIC0xNzc4LDcgKzE3NzgsNyBAQCB2b2lkIFdl
YlBhZ2U6OmV4dGVuZFNlbGVjdGlvbih1aW50MzJfdCBnCiAgICAgICAgIHJldHVybjsKIAogICAg
IFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbiA9IGZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigp
LnN0YXJ0KCk7Ci0gICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0ZWRSYW5nZSh3b3JkUmFu
Z2VGcm9tUG9zaXRpb24ocG9zaXRpb24pLmdldCgpLCBwb3NpdGlvbi5hZmZpbml0eSgpLCB0cnVl
KTsKKyAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3RlZFJhbmdlKHdvcmRSYW5nZUZyb21Q
b3NpdGlvbihwb3NpdGlvbikuZ2V0KCksIHBvc2l0aW9uLmFmZmluaXR5KCksIHRydWUsIFVzZXJU
cmlnZ2VyZWQpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnNlbGVjdFdvcmRCYWNrd2FyZCgpCkBAIC0x
NzkwLDcgKzE3OTAsNyBAQCB2b2lkIFdlYlBhZ2U6OnNlbGVjdFdvcmRCYWNrd2FyZCgpCiAgICAg
VmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uID0gZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCku
c3RhcnQoKTsKICAgICBWaXNpYmxlUG9zaXRpb24gc3RhcnRQb3NpdGlvbiA9IHBvc2l0aW9uT2ZO
ZXh0Qm91bmRhcnlPZkdyYW51bGFyaXR5KHBvc2l0aW9uLCBXb3JkR3JhbnVsYXJpdHksIERpcmVj
dGlvbkJhY2t3YXJkKTsKICAgICBpZiAoc3RhcnRQb3NpdGlvbi5pc05vdE51bGwoKSAmJiBzdGFy
dFBvc2l0aW9uICE9IHBvc2l0aW9uKQotICAgICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxl
Y3RlZFJhbmdlKFJhbmdlOjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCksIHN0YXJ0UG9zaXRpb24s
IHBvc2l0aW9uKS5wdHIoKSwgcG9zaXRpb24uYWZmaW5pdHkoKSwgdHJ1ZSk7CisgICAgICAgIGZy
YW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGVkUmFuZ2UoUmFuZ2U6OmNyZWF0ZSgqZnJhbWUuZG9j
dW1lbnQoKSwgc3RhcnRQb3NpdGlvbiwgcG9zaXRpb24pLnB0cigpLCBwb3NpdGlvbi5hZmZpbml0
eSgpLCB0cnVlLCBVc2VyVHJpZ2dlcmVkKTsKIH0KIAogdm9pZCBXZWJQYWdlOjptb3ZlU2VsZWN0
aW9uQnlPZmZzZXQoaW50MzJfdCBvZmZzZXQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCkBAIC0xODA4
LDcgKzE4MDgsNyBAQCB2b2lkIFdlYlBhZ2U6Om1vdmVTZWxlY3Rpb25CeU9mZnNldChpbnQzCiAg
ICAgICAgICAgICBicmVhazsKICAgICB9CiAgICAgaWYgKHBvc2l0aW9uLmlzTm90TnVsbCgpICYm
IHN0YXJ0UG9zaXRpb24gIT0gcG9zaXRpb24pCi0gICAgICAgIGZyYW1lLnNlbGVjdGlvbigpLnNl
dFNlbGVjdGVkUmFuZ2UoUmFuZ2U6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSwgcG9zaXRpb24s
IHBvc2l0aW9uKS5wdHIoKSwgcG9zaXRpb24uYWZmaW5pdHkoKSwgdHJ1ZSk7CisgICAgICAgIGZy
YW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGVkUmFuZ2UoUmFuZ2U6OmNyZWF0ZSgqZnJhbWUuZG9j
dW1lbnQoKSwgcG9zaXRpb24sIHBvc2l0aW9uKS5wdHIoKSwgcG9zaXRpb24uYWZmaW5pdHkoKSwg
dHJ1ZSwgVXNlclRyaWdnZXJlZCk7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpW
b2lkQ2FsbGJhY2soY2FsbGJhY2tJRCkpOwogfQogCkBAIC0xOTAzLDcgKzE5MDMsNyBAQCB2b2lk
IFdlYlBhZ2U6OnNlbGVjdFBvc2l0aW9uQXRQb2ludChjb25zCiAgICAgVmlzaWJsZVBvc2l0aW9u
IHBvc2l0aW9uID0gdmlzaWJsZVBvc2l0aW9uSW5Gb2N1c2VkTm9kZUZvclBvaW50KGZyYW1lLCBw
b2ludCwgaXNJbnRlcmFjdGluZ1dpdGhBc3Npc3RlZE5vZGUpOwogICAgIAogICAgIGlmIChwb3Np
dGlvbi5pc05vdE51bGwoKSkKLSAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0ZWRS
YW5nZShSYW5nZTo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgpLCBwb3NpdGlvbiwgcG9zaXRpb24p
LnB0cigpLCBwb3NpdGlvbi5hZmZpbml0eSgpLCB0cnVlKTsKKyAgICAgICAgZnJhbWUuc2VsZWN0
aW9uKCkuc2V0U2VsZWN0ZWRSYW5nZShSYW5nZTo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgpLCBw
b3NpdGlvbiwgcG9zaXRpb24pLnB0cigpLCBwb3NpdGlvbi5hZmZpbml0eSgpLCB0cnVlLCBVc2Vy
VHJpZ2dlcmVkKTsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlZvaWRDYWxsYmFj
ayhjYWxsYmFja0lEKSk7CiB9CiAKQEAgLTE5MTUsNyArMTkxNSw3IEBAIHZvaWQgV2ViUGFnZTo6
c2VsZWN0UG9zaXRpb25BdEJvdW5kYXJ5V2kKICAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkp
IHsKICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbk9mTmV4dEJvdW5kYXJ5T2ZHcmFudWxhcml0
eShwb3NpdGlvbiwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5PihncmFudWxh
cml0eSksIHN0YXRpY19jYXN0PFNlbGVjdGlvbkRpcmVjdGlvbj4oZGlyZWN0aW9uKSk7CiAgICAg
ICAgIGlmIChwb3NpdGlvbi5pc05vdE51bGwoKSkKLSAgICAgICAgICAgIGZyYW1lLnNlbGVjdGlv
bigpLnNldFNlbGVjdGVkUmFuZ2UoUmFuZ2U6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSwgcG9z
aXRpb24sIHBvc2l0aW9uKS5wdHIoKSwgVVBTVFJFQU0sIHRydWUpOworICAgICAgICAgICAgZnJh
bWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0ZWRSYW5nZShSYW5nZTo6Y3JlYXRlKCpmcmFtZS5kb2N1
bWVudCgpLCBwb3NpdGlvbiwgcG9zaXRpb24pLnB0cigpLCBVUFNUUkVBTSwgdHJ1ZSwgVXNlclRy
aWdnZXJlZCk7CiAgICAgfQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Vm9pZENh
bGxiYWNrKGNhbGxiYWNrSUQpKTsKIH0KQEAgLTE5MjksNyArMTkyOSw3IEBAIHZvaWQgV2ViUGFn
ZTo6bW92ZVNlbGVjdGlvbkF0Qm91bmRhcnlXaXQKICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHBv
c2l0aW9uID0gKGlzRm9yd2FyZCkgPyBmcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS52aXNp
YmxlRW5kKCkgOiBmcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS52aXNpYmxlU3RhcnQoKTsK
ICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbk9mTmV4dEJvdW5kYXJ5T2ZHcmFudWxhcml0eShw
b3NpdGlvbiwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5PihncmFudWxhcml0
eSksIHN0YXRpY19jYXN0PFNlbGVjdGlvbkRpcmVjdGlvbj4oZGlyZWN0aW9uKSk7CiAgICAgICAg
IGlmIChwb3NpdGlvbi5pc05vdE51bGwoKSkKLSAgICAgICAgICAgIGZyYW1lLnNlbGVjdGlvbigp
LnNldFNlbGVjdGVkUmFuZ2UoUmFuZ2U6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSwgcG9zaXRp
b24sIHBvc2l0aW9uKS5wdHIoKSwgaXNGb3J3YXJkPyBVUFNUUkVBTSA6IERPV05TVFJFQU0sIHRy
dWUpOworICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0ZWRSYW5nZShSYW5n
ZTo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgpLCBwb3NpdGlvbiwgcG9zaXRpb24pLnB0cigpLCBp
c0ZvcndhcmQ/IFVQU1RSRUFNIDogRE9XTlNUUkVBTSwgdHJ1ZSwgVXNlclRyaWdnZXJlZCk7CiAg
ICAgfQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Vm9pZENhbGxiYWNrKGNhbGxi
YWNrSUQpKTsKIH0KQEAgLTE5ODYsNyArMTk4Niw3IEBAIHZvaWQgV2ViUGFnZTo6c2VsZWN0VGV4
dFdpdGhHcmFudWxhcml0eUEKICAgICB9CiAKICAgICBpZiAocmFuZ2UpCi0gICAgICAgIGZyYW1l
LnNlbGVjdGlvbigpLnNldFNlbGVjdGVkUmFuZ2UocmFuZ2UuZ2V0KCksIFVQU1RSRUFNLCB0cnVl
KTsKKyAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0ZWRSYW5nZShyYW5nZS5nZXQo
KSwgVVBTVFJFQU0sIHRydWUsIFVzZXJUcmlnZ2VyZWQpOwogICAgIG1faW5pdGlhbFNlbGVjdGlv
biA9IHJhbmdlOwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Vm9pZENhbGxiYWNr
KGNhbGxiYWNrSUQpKTsKIH0KQEAgLTIwMjEsNyArMjAyMSw3IEBAIHZvaWQgV2ViUGFnZTo6dXBk
YXRlU2VsZWN0aW9uV2l0aEV4dGVudFAKICAgICAgICAgcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKCpm
cmFtZS5kb2N1bWVudCgpLCBzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKTsKICAgICAKICAg
ICBpZiAocmFuZ2UpCi0gICAgICAgIGZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGVkUmFuZ2Uo
cmFuZ2UuZ2V0KCksIFVQU1RSRUFNLCB0cnVlKTsKKyAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCku
c2V0U2VsZWN0ZWRSYW5nZShyYW5nZS5nZXQoKSwgVVBTVFJFQU0sIHRydWUsIFVzZXJUcmlnZ2Vy
ZWQpOwogICAgIAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6VW5zaWduZWRDYWxs
YmFjayhzZWxlY3Rpb25TdGFydCA9PSBtX2luaXRpYWxTZWxlY3Rpb24tPnN0YXJ0UG9zaXRpb24o
KSwgY2FsbGJhY2tJRCkpOwogfQpAQCAtMjA2NCw3ICsyMDY0LDcgQEAgdm9pZCBXZWJQYWdlOjp1
cGRhdGVTZWxlY3Rpb25XaXRoRXh0ZW50UAogICAgICAgICByYW5nZSA9IFJhbmdlOjpjcmVhdGUo
KmZyYW1lLmRvY3VtZW50KCksIHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpOwogCiAgICAg
aWYgKHJhbmdlKQotICAgICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3RlZFJhbmdlKHJh
bmdlLmdldCgpLCBVUFNUUkVBTSwgdHJ1ZSk7CisgICAgICAgIGZyYW1lLnNlbGVjdGlvbigpLnNl
dFNlbGVjdGVkUmFuZ2UocmFuZ2UuZ2V0KCksIFVQU1RSRUFNLCB0cnVlLCBVc2VyVHJpZ2dlcmVk
KTsKIAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6VW5zaWduZWRDYWxsYmFjayht
X3NlbGVjdGlvbkFuY2hvciA9PSBTdGFydCwgY2FsbGJhY2tJRCkpOwogfQo=
</data>
<flag name="review"
          id="323045"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>