<?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>167192</bug_id>
          
          <creation_ts>2017-01-18 20:13:04 -0800</creation_ts>
          <short_desc>[iOS] Move the PDF password view into its own class for reuse</short_desc>
          <delta_ts>2017-01-19 16:25:11 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1268000</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-01-18 20:13:04 -0800</bug_when>
    <thetext>[iOS] Move the PDF password view into its own class for possible reuse</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268004</commentid>
    <comment_count>1</comment_count>
      <attachid>299220</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-01-18 20:24:12 -0800</bug_when>
    <thetext>Created attachment 299220
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268007</commentid>
    <comment_count>2</comment_count>
      <attachid>299222</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-01-18 20:27:43 -0800</bug_when>
    <thetext>Created attachment 299222
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268044</commentid>
    <comment_count>3</comment_count>
      <attachid>299222</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-01-18 23:14:24 -0800</bug_when>
    <thetext>Comment on attachment 299222
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        [iOS] Move the PDF password view into its own class for possible reuse

&quot;possible&quot;
lol</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268083</commentid>
    <comment_count>4</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-01-19 03:24:28 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 299222 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=299222&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        [iOS] Move the PDF password view into its own class for possible reuse
&gt; 
&gt; &quot;possible&quot;
&gt; lol

I don&apos;t know why I said that :(

Thanks for the review. After thinking more about this, I&apos;d like to take a slightly different approach, so I&apos;ll probably post another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268192</commentid>
    <comment_count>5</comment_count>
      <attachid>299271</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-01-19 14:54:06 -0800</bug_when>
    <thetext>Created attachment 299271
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268235</commentid>
    <comment_count>6</comment_count>
      <attachid>299271</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-19 16:25:07 -0800</bug_when>
    <thetext>Comment on attachment 299271
Patch

Clearing flags on attachment: 299271

Committed r210943: &lt;http://trac.webkit.org/changeset/210943&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268236</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-19 16:25:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299220</attachid>
            <date>2017-01-18 20:24:12 -0800</date>
            <delta_ts>2017-01-18 20:27:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167192-20170118202221.patch</filename>
            <type>text/plain</type>
            <size>24842</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FkYTk1MTk2OGRjNzk0
YzBmYzU3ZWViOGQ5OGNmNzI5NjEyZDgxNi4uY2UyNjc0MjYwYmUxNDUyOTQ2M2I2NDFkYWRhNzVi
MDkwYmZjNTNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE3LTAxLTE4ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNb3ZlIHRoZSBQREYg
cGFzc3dvcmQgdmlldyBpbnRvIGl0cyBvd24gY2xhc3MgZm9yIHBvc3NpYmxlIHJldXNlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcxOTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEVuZ2xpc2gubHBy
b2ovTG9jYWxpemFibGUuc3RyaW5nczogVXBkYXRlZCB0aGUgZmFpbHVyZSBhbGVydCBzdHJpbmdz
IHRvIG5vdCBiZSBzcGVjaWZpYyB0byBQREZzLgorCiAyMDE3LTAxLTE4ICBSeWFuIEhhZGRhZCAg
PHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIyMTA4NDguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGI4ZjRlYmU0YjhhZTdlMjM3NGQyZjc5NGE5Y2U4ZGI0
YWQ0Y2Y0OC4uYzg1ZmZiZDJmN2ViNjg0YzE0OGY3NzhmMTFmMjMyZDZhM2QyOThjYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE3LTAxLTE4ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFw
cGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNb3ZlIHRoZSBQREYgcGFzc3dvcmQgdmlldyBpbnRv
IGl0cyBvd24gY2xhc3MgZm9yIHBvc3NpYmxlIHJldXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcxOTIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lmg6IFN0
b3BwZWQgY29uZm9ybWluZyB0byBVSURvY3VtZW50UGFzc3dvcmRWaWV3RGVsZWdhdGUuCisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW06IENoYW5nZWQgX3Bhc3N3b3JkVmlldyB0
byBhIFdLUGFzc3dvcmRWaWV3LgorICAgICAgICAoLVtXS1BERlZpZXcgX3VwZGF0ZVBhc3N3b3Jk
RW50cnlGaWVsZF0pOiBTdG9wcGVkIHNldHRpbmcgdGhlIHNjcm9sbCB2aWV3J3MgY29udGVudCBz
aXplIGhlcmUuCisgICAgICAgICgtW1dLUERGVmlldyBfc2hvd1Bhc3N3b3JkRW50cnlGaWVsZF0p
OiBDcmVhdGVkIGEgV0tQYXNzd29yZFZpZXcsIHNldCBhIGxhbWJkYSBvbiBpdHMKKyAgICAgICAg
dXNlckRpZEVudGVyUGFzc3dvcmQgcHJvcGVydHkgdG8gZG8gdGhlIHdvcmsgcHJldmlvdXNseSBk
b25lIGluIC1fdHJ5VG9VbmxvY2tXaXRoUGFzc3dvcmQ6LAorICAgICAgICBhbmQgc2hvd2VkIHRo
ZSBwYXNzd29yZCB2aWV3LgorICAgICAgICAoLVtXS1BERlZpZXcgX2tleWJvYXJkRGlkU2hvdzpd
KTogTW92ZWQgdG8gV0tQYXNzd29yZFZpZXcuCisgICAgICAgICgtW1dLUERGVmlldyBfaGlkZVBh
c3N3b3JkRW50cnlGaWVsZF0pOiBEZWxldGVkLiBUaGUgdXNlckRpZEVudGVyUGFzc3dvcmQgbGFt
YmRhIG5vdyBjYWxscworICAgICAgICAtW1dLUGFzc3dvcmRWaWV3IGhpZGVdIHdoZW4gdGhlIGRv
Y3VtZW50IGlzIHVubG9ja2VkLgorICAgICAgICAoLVtXS1BERlZpZXcgdXNlckRpZEVudGVyUGFz
c3dvcmQ6Zm9yUGFzc3dvcmRWaWV3Ol0pOiBNb3ZlZCB0byBXS1Bhc3N3b3JkVmlldy4KKyAgICAg
ICAgKC1bV0tQREZWaWV3IGRpZEJlZ2luRWRpdGluZ1Bhc3N3b3JkOmluVmlldzpdKTogRGl0dG8u
CisgICAgICAgICgtW1dLUERGVmlldyBkaWRFbmRFZGl0aW5nUGFzc3dvcmQ6aW5WaWV3Ol0pOiBE
aXR0by4KKyAgICAgICAgKC1bV0tQREZWaWV3IF9kaWRGYWlsVG9VbmxvY2tdKTogRGl0dG8uCisg
ICAgICAgICgtW1dLUERGVmlldyBfdHJ5VG9VbmxvY2tXaXRoUGFzc3dvcmQ6XSk6IE1vdmVkIGlu
dG8gX3Bhc3N3b3JkVmlldydzIHVzZXJEaWRFbnRlclBhc3N3b3JkIGxhbWJkYS4KKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1dLUGFzc3dvcmRWaWV3Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tQYXNzd29yZFZpZXcubW06IEFkZGVkLgorICAgICAgICAoLVtXS1Bhc3N3b3Jk
VmlldyBpbml0V2l0aERvY3VtZW50TmFtZTpzY3JvbGxWaWV3Ol0pOiBDcmVhdGVkIGEgVUlEb2N1
bWVudFBhc3N3b3JkVmlldyB3aXRoCisgICAgICAgIGRvY3VtZW50TmFtZSwgc2V0IHNlbGYgYXMg
aXRzIHBhc3N3b3JkRGVsZWdhdGUsIGFuZCBhZGRlZCBpdCBhcyBhIHN1YnZpZXcuCisgICAgICAg
ICgtW1dLUGFzc3dvcmRWaWV3IGxheW91dFN1YnZpZXdzXSk6IFNldCBfcGFzc3dvcmRWaWV3J3Mg
ZnJhbWUgdG8gb3VyIGJvdW5kcyBhbmQgdXBkYXRlZCB0aGUKKyAgICAgICAgc2Nyb2xsIHZpZXcn
cyBjb250ZW50IHNpemUuCisgICAgICAgICgtW1dLUGFzc3dvcmRWaWV3IHNob3dJblZpZXc6XSk6
IFNhdmVkIHRoZSBzY3JvbGwgdmlldydzIHByZXZpb3VzIG1pbmltdW0vbWF4aW11bSB6b29tIHNj
YWxlCisgICAgICAgIGFuZCBjb2xvciwgc2V0IG5ldyB2YWx1ZXMgZm9yIG1pbmltdW0vbWF4aW11
bSB6b29tIHNjYWxlIGFuZCBjb2xvciwgYW5kIGFkZGVkIHNlbGYgYXMgYQorICAgICAgICBzdWJ2
aWV3IG9mIHZpZXcuCisgICAgICAgICgtW1dLUGFzc3dvcmRWaWV3IGhpZGVdKTogUmVzdG9yZWQg
dGhlIHNhdmVkIG1pbmltdW0vbWF4aW11bSB6b29tIHNjYWxlIGFuZCBjb2xvciBvbiB0aGUKKyAg
ICAgICAgc2Nyb2xsIHZpZXcgYW5kIHJlbW92ZWQgc2VsZiBmcm9tIGl0cyBzdXBlcnZpZXcuCisg
ICAgICAgICgtW1dLUGFzc3dvcmRWaWV3IGRpc3BsYXlQYXNzd29yZEZhaWx1cmVBbGVydF0pOiBE
aXNwbGF5ZWQgdGhlIGFsZXJ0IHByZXZpb3VzbHkgc2hvd24gYnkKKyAgICAgICAgLVtXS1BERlZp
ZXcgX2RpZEZhaWxUb1VubG9ja10uCisgICAgICAgICgtW1dLUGFzc3dvcmRWaWV3IF9rZXlib2Fy
ZERpZFNob3c6XSk6IE1vdmVkIGZyb20gV0tQREZWaWV3LgorICAgICAgICAoLVtXS1Bhc3N3b3Jk
VmlldyB1c2VyRGlkRW50ZXJQYXNzd29yZDpmb3JQYXNzd29yZFZpZXc6XSk6IFJldGFpbmVkIHNl
bGYgYW5kIGNhbGxlZCB0aGUKKyAgICAgICAgX3VzZXJEaWRFbnRlclBhc3N3b3JkIGJsb2NrIHdp
dGggdGhlIHBhc3N3b3JkLgorICAgICAgICAoLVtXS1Bhc3N3b3JkVmlldyBkaWRCZWdpbkVkaXRp
bmdQYXNzd29yZDppblZpZXc6XSk6IE1vdmVkIGZyb20gV0tQREZWaWV3LgorICAgICAgICAoLVtX
S1Bhc3N3b3JkVmlldyBkaWRFbmRFZGl0aW5nUGFzc3dvcmQ6aW5WaWV3Ol0pOiBEaXR0by4KKyAg
ICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTctMDEtMTgg
IFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjIxMDg0OC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xp
c2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHBy
b2ovTG9jYWxpemFibGUuc3RyaW5ncwppbmRleCBjNGFiNTMyYmFmYjM5MTY1MTM3NDdhMzM3N2Mw
NmY4MTZkYmNiNjVmLi4yNzMxM2E5ZjM3NWQ5OTA1MTdiNmVhZjAwOGZlYWVlYjY2OWJiYzBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmlu
Z3MKKysrIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdz
CkBAIC00MDMsOCArNDAzLDggQEAKIC8qIE9wdGlvbiBpbiBzZWdtZW50ZWQgY29udHJvbCBmb3Ig
aW5zZXJ0aW5nIGEgbnVtYmVyZWQgbGlzdCBpbiB0ZXh0IGVkaXRpbmcgKi8KICJOdW1iZXJlZCBs
aXN0IiA9ICJOdW1iZXJlZCBsaXN0IjsKIAotLyogT0sgYnV0dG9uIGxhYmVsIGluIFBERiBwYXNz
d29yZCBmYWlsdXJlIGFsZXJ0ICovCi0iT0sgKFBERiBwYXNzd29yZCBmYWlsdXJlIGFsZXJ0KSIg
PSAiT0siOworLyogT0sgYnV0dG9uIGxhYmVsIGluIGRvY3VtZW50IHBhc3N3b3JkIGZhaWx1cmUg
YWxlcnQgKi8KKyJPSyAoZG9jdW1lbnQgcGFzc3dvcmQgZmFpbHVyZSBhbGVydCkiID0gIk9LIjsK
IAogLyogTWVudSBpdGVtIGxhYmVsIGZvciB0aGUgdHJhY2sgdGhhdCByZXByZXNlbnRzIGRpc2Fi
bGluZyBjbG9zZWQgY2FwdGlvbnMgKi8KICJPZmYiID0gIk9mZiI7CkBAIC02NjEsNyArNjYxLDcg
QEAKIC8qIFdlYktpdEVycm9yR2VvbG9jYXRpb25Mb2NhdGlvblVua25vd24gZGVzY3JpcHRpb24g
Ki8KICJUaGUgY3VycmVudCBsb2NhdGlvbiBjYW5ub3QgYmUgZm91bmQuIiA9ICJUaGUgY3VycmVu
dCBsb2NhdGlvbiBjYW5ub3QgYmUgZm91bmQuIjsKIAotLyogUERGIHBhc3N3b3JkIGZhaWx1cmUg
YWxlcnQgbWVzc2FnZSAqLworLyogZG9jdW1lbnQgcGFzc3dvcmQgZmFpbHVyZSBhbGVydCBtZXNz
YWdlICovCiAiVGhlIGRvY3VtZW50IGNvdWxkIG5vdCBiZSBvcGVuZWQgd2l0aCB0aGF0IHBhc3N3
b3JkLiIgPSAiVGhlIGRvY3VtZW50IGNvdWxkIG5vdCBiZSBvcGVuZWQgd2l0aCB0aGF0IHBhc3N3
b3JkLiI7CiAKIC8qIFdlYktpdEVycm9yQ2Fubm90RmluZFBsdWdpbiBkZXNjcmlwdGlvbiAqLwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3LmgKaW5kZXggMzZkMzdmN2E3YjNl
ODQ1MmY0ODJjOTQ3MjFiYmM0NDRhYmFkNzViYS4uZjcwNDU1YjRiNzkxMDVlODljYTE1ZTI3YWQ4
YTFlZjc3MTI0ODY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S1BERlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLUERGVmlldy5o
CkBAIC0yNiwxMSArMjYsMTAgQEAKICNpZiBQTEFURk9STShJT1MpCiAKICNpbXBvcnQgIkNvcmVQ
REZTUEkuaCIKLSNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0ICJXS0FjdGlvblNoZWV0QXNz
aXN0YW50LmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdDb250ZW50UHJvdmlkZXIuaCIKIAotQGludGVy
ZmFjZSBXS1BERlZpZXcgOiBVSVZpZXcgPFdLV2ViVmlld0NvbnRlbnRQcm92aWRlciwgVUlQREZQ
YWdlVmlld0RlbGVnYXRlLCBVSVBERkFubm90YXRpb25Db250cm9sbGVyRGVsZWdhdGUsIFdLQWN0
aW9uU2hlZXRBc3Npc3RhbnREZWxlZ2F0ZSwgVUlEb2N1bWVudFBhc3N3b3JkVmlld0RlbGVnYXRl
PgorQGludGVyZmFjZSBXS1BERlZpZXcgOiBVSVZpZXcgPFdLV2ViVmlld0NvbnRlbnRQcm92aWRl
ciwgVUlQREZQYWdlVmlld0RlbGVnYXRlLCBVSVBERkFubm90YXRpb25Db250cm9sbGVyRGVsZWdh
dGUsIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnREZWxlZ2F0ZT4KIAogQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqc3VnZ2VzdGVkRmlsZW5hbWU7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIENHUERGRG9jdW1lbnRSZWYgcGRmRG9jdW1lbnQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLUERGVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tCmluZGV4IGUwMzZjZjIxZjgwNzhmZjBm
MzQ5YmYxZDcyNGNhNTQzNWNlMzRjNTcuLjc3ZDliOWQ1N2U1MzdjYTZiMzQ1YzBhOTMzMmE0ZGM2
Mjk0ODI2ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tQREZW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tCkBA
IC0zNSw2ICszNSw3IEBACiAjaW1wb3J0ICJTZXNzaW9uU3RhdGUuaCIKICNpbXBvcnQgIlVJS2l0
U1BJLmgiCiAjaW1wb3J0ICJXS1BERlBhZ2VOdW1iZXJJbmRpY2F0b3IuaCIKKyNpbXBvcnQgIldL
UGFzc3dvcmRWaWV3LmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAi
V2Vha09iakNQdHIuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgpAQCAtNTQsOCArNTUsNiBA
QCBjb25zdCBDR0Zsb2F0IHBkZlBhZ2VNYXJnaW4gPSA4OwogY29uc3QgQ0dGbG9hdCBwZGZNaW5p
bXVtWm9vbVNjYWxlID0gMTsKIGNvbnN0IENHRmxvYXQgcGRmTWF4aW11bVpvb21TY2FsZSA9IDU7
CiAKLWNvbnN0IENHRmxvYXQgcGFzc3dvcmRFbnRyeUZpZWxkUGFkZGluZyA9IDEwOwotCiBjb25z
dCBmbG9hdCBvdmVyZHJhd0hlaWdodE11bHRpcGxpZXIgPSAxLjU7CiAKIHN0YXRpYyBjb25zdCBD
R0Zsb2F0IHNtYXJ0TWFnbmlmaWNhdGlvbkVsZW1lbnRQYWRkaW5nID0gMC4wNTsKQEAgLTc3LDcg
Kzc2LDcgQEAgQGltcGxlbWVudGF0aW9uIFdLUERGVmlldyB7CiAgICAgUmV0YWluUHRyPE5TU3Ry
aW5nPiBfc3VnZ2VzdGVkRmlsZW5hbWU7CiAgICAgUmV0YWluUHRyPFdLUERGUGFnZU51bWJlcklu
ZGljYXRvcj4gX3BhZ2VOdW1iZXJJbmRpY2F0b3I7CiAKLSAgICBSZXRhaW5QdHI8VUlEb2N1bWVu
dFBhc3N3b3JkVmlldz4gX3Bhc3N3b3JkVmlldzsKKyAgICBSZXRhaW5QdHI8V0tQYXNzd29yZFZp
ZXc+IF9wYXNzd29yZFZpZXc7CiAKICAgICBWZWN0b3I8UERGUGFnZUluZm8+IF9wYWdlczsKICAg
ICB1bnNpZ25lZCBfY2VudGVyUGFnZU51bWJlcjsKQEAgLTc1MCwxMDMgKzc0OSwyNSBAQCAtIChS
ZXRhaW5QdHI8TlNBcnJheT4pYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Np
c3RhbnQgKilhc3Npc3RhbnQgZAogLSAodm9pZClfdXBkYXRlUGFzc3dvcmRFbnRyeUZpZWxkCiB7
CiAgICAgW19wYXNzd29yZFZpZXcgc2V0RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCBfd2ViVmlldy5i
b3VuZHMuc2l6ZS53aWR0aCwgX3dlYlZpZXcuYm91bmRzLnNpemUuaGVpZ2h0KV07Ci0gICAgW19z
Y3JvbGxWaWV3IHNldENvbnRlbnRTaXplOltfcGFzc3dvcmRWaWV3IGJvdW5kc10uc2l6ZV07Ci19
Ci0KLS0gKHZvaWQpX2tleWJvYXJkRGlkU2hvdzooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRp
b24KLXsKLSAgICBVSVRleHRGaWVsZCAqcGFzc3dvcmRGaWVsZCA9IFtfcGFzc3dvcmRWaWV3IHBh
c3N3b3JkRmllbGRdOwotICAgIGlmICghcGFzc3dvcmRGaWVsZC5pc0VkaXRpbmcpCi0gICAgICAg
IHJldHVybjsKLQotICAgIENHUmVjdCBrZXlib2FyZFJlY3QgPSBbVUlQZXJpcGhlcmFsSG9zdCB2
aXNpYmxlUGVyaXBoZXJhbEZyYW1lXTsKLSAgICBpZiAoQ0dSZWN0SXNFbXB0eShrZXlib2FyZFJl
Y3QpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBVSVdpbmRvdyAqd2luZG93ID0gX3Njcm9sbFZp
ZXcud2luZG93OwotICAgIGtleWJvYXJkUmVjdCA9IFt3aW5kb3cgY29udmVydFJlY3Q6a2V5Ym9h
cmRSZWN0IGZyb21XaW5kb3c6bmlsXTsKLSAgICBrZXlib2FyZFJlY3QgPSBbX3Njcm9sbFZpZXcg
Y29udmVydFJlY3Q6a2V5Ym9hcmRSZWN0IGZyb21WaWV3OndpbmRvd107Ci0KLSAgICBDR1JlY3Qg
cGFzc3dvcmRGaWVsZEZyYW1lID0gW3Bhc3N3b3JkRmllbGQgY29udmVydFJlY3Q6cGFzc3dvcmRG
aWVsZC5ib3VuZHMgdG9WaWV3Ol9zY3JvbGxWaWV3XTsKLQotICAgIENHU2l6ZSBjb250ZW50U2l6
ZSA9IFtfcGFzc3dvcmRWaWV3IGJvdW5kc10uc2l6ZTsKLSAgICBjb250ZW50U2l6ZS5oZWlnaHQg
Kz0gQ0dSZWN0R2V0SGVpZ2h0KGtleWJvYXJkUmVjdCk7Ci0gICAgW19zY3JvbGxWaWV3IHNldENv
bnRlbnRTaXplOmNvbnRlbnRTaXplXTsKLQotICAgIGlmIChDR1JlY3RJbnRlcnNlY3RzUmVjdChw
YXNzd29yZEZpZWxkRnJhbWUsIGtleWJvYXJkUmVjdCkpIHsKLSAgICAgICAgQ0dGbG9hdCB5RGVs
dGEgPSBDR1JlY3RHZXRNYXhZKHBhc3N3b3JkRmllbGRGcmFtZSkgLSBDR1JlY3RHZXRNaW5ZKGtl
eWJvYXJkUmVjdCk7Ci0KLSAgICAgICAgQ0dQb2ludCBjb250ZW50T2Zmc2V0ID0gX3Njcm9sbFZp
ZXcuY29udGVudE9mZnNldDsKLSAgICAgICAgY29udGVudE9mZnNldC55ICs9IHlEZWx0YSArIHBh
c3N3b3JkRW50cnlGaWVsZFBhZGRpbmc7Ci0KLSAgICAgICAgW19zY3JvbGxWaWV3IHNldENvbnRl
bnRPZmZzZXQ6Y29udGVudE9mZnNldCBhbmltYXRlZDpZRVNdOwotICAgIH0KIH0KIAogLSAodm9p
ZClfc2hvd1Bhc3N3b3JkRW50cnlGaWVsZAogewotICAgIFtfc2Nyb2xsVmlldyBzZXRNaW5pbXVt
Wm9vbVNjYWxlOjFdOwotICAgIFtfc2Nyb2xsVmlldyBzZXRNYXhpbXVtWm9vbVNjYWxlOjFdOwot
ICAgIFtfc2Nyb2xsVmlldyBzZXRCYWNrZ3JvdW5kQ29sb3I6W1VJQ29sb3IgZ3JvdXBUYWJsZVZp
ZXdCYWNrZ3JvdW5kQ29sb3JdXTsKLQotICAgIF9wYXNzd29yZFZpZXcgPSBhZG9wdE5TKFtbVUlE
b2N1bWVudFBhc3N3b3JkVmlldyBhbGxvY10gaW5pdFdpdGhEb2N1bWVudE5hbWU6X3N1Z2dlc3Rl
ZEZpbGVuYW1lLmdldCgpXSk7Ci0gICAgW19wYXNzd29yZFZpZXcgc2V0UGFzc3dvcmREZWxlZ2F0
ZTpzZWxmXTsKLQorICAgIF9wYXNzd29yZFZpZXcgPSBhZG9wdE5TKFtbV0tQYXNzd29yZFZpZXcg
YWxsb2NdIGluaXRXaXRoRG9jdW1lbnROYW1lOl9zdWdnZXN0ZWRGaWxlbmFtZS5nZXQoKSBzY3Jv
bGxWaWV3Ol93ZWJWaWV3LnNjcm9sbFZpZXddKTsKICAgICBbc2VsZiBfdXBkYXRlUGFzc3dvcmRF
bnRyeUZpZWxkXTsKIAotICAgIFtzZWxmIGFkZFN1YnZpZXc6X3Bhc3N3b3JkVmlldy5nZXQoKV07
Ci19Ci0KLS0gKHZvaWQpX2hpZGVQYXNzd29yZEVudHJ5RmllbGQKLXsKLSAgICBbX3Bhc3N3b3Jk
VmlldyByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKLSAgICBfcGFzc3dvcmRWaWV3ID0gbmlsOwotCi0g
ICAgW19zY3JvbGxWaWV3IHNldE1pbmltdW1ab29tU2NhbGU6cGRmTWluaW11bVpvb21TY2FsZV07
Ci0gICAgW19zY3JvbGxWaWV3IHNldE1heGltdW1ab29tU2NhbGU6cGRmTWF4aW11bVpvb21TY2Fs
ZV07Ci0gICAgW19zY3JvbGxWaWV3IHNldEJhY2tncm91bmRDb2xvcjpbVUlDb2xvciBncmF5Q29s
b3JdXTsKLX0KLQotLSAodm9pZCl1c2VyRGlkRW50ZXJQYXNzd29yZDooTlNTdHJpbmcgKilwYXNz
d29yZCBmb3JQYXNzd29yZFZpZXc6KFVJRG9jdW1lbnRQYXNzd29yZFZpZXcgKilwYXNzd29yZFZp
ZXcKLXsKLSAgICBbc2VsZiBfdHJ5VG9VbmxvY2tXaXRoUGFzc3dvcmQ6cGFzc3dvcmRdOwotfQot
Ci0tICh2b2lkKWRpZEJlZ2luRWRpdGluZ1Bhc3N3b3JkOihVSVRleHRGaWVsZCAqKXBhc3N3b3Jk
RmllbGQgaW5WaWV3OihVSURvY3VtZW50UGFzc3dvcmRWaWV3ICopcGFzc3dvcmRWaWV3Ci17Ci0g
ICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxm
IHNlbGVjdG9yOkBzZWxlY3Rvcihfa2V5Ym9hcmREaWRTaG93OikgbmFtZTpVSUtleWJvYXJkRGlk
U2hvd05vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKLX0KLQotLSAodm9pZClkaWRFbmRFZGl0aW5n
UGFzc3dvcmQ6KFVJVGV4dEZpZWxkICopcGFzc3dvcmRGaWVsZCBpblZpZXc6KFVJRG9jdW1lbnRQ
YXNzd29yZFZpZXcgKilwYXNzd29yZFZpZXcKLXsKLSAgICBbX3Njcm9sbFZpZXcgc2V0Q29udGVu
dFNpemU6W19wYXNzd29yZFZpZXcgZnJhbWVdLnNpemVdOwotICAgIFtfc2Nyb2xsVmlldyBzZXRD
b250ZW50T2Zmc2V0OkNHUG9pbnRNYWtlKC1fc2Nyb2xsVmlldy5jb250ZW50SW5zZXQubGVmdCwg
LV9zY3JvbGxWaWV3LmNvbnRlbnRJbnNldC50b3ApIGFuaW1hdGVkOllFU107Ci0KLSAgICBbW05T
Tm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFt
ZTpVSUtleWJvYXJkRGlkU2hvd05vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKLX0KLQotLSAodm9p
ZClfZGlkRmFpbFRvVW5sb2NrCi17Ci0gICAgW1tfcGFzc3dvcmRWaWV3IHBhc3N3b3JkRmllbGRd
IHNldFRleHQ6QCIiXTsKLSAgICBVSUFsZXJ0Q29udHJvbGxlciogYWxlcnQgPSBbVUlBbGVydENv
bnRyb2xsZXIgYWxlcnRDb250cm9sbGVyV2l0aFRpdGxlOldFQl9VSV9TVFJJTkcoIlRoZSBkb2N1
bWVudCBjb3VsZCBub3QgYmUgb3BlbmVkIHdpdGggdGhhdCBwYXNzd29yZC4iLCAiUERGIHBhc3N3
b3JkIGZhaWx1cmUgYWxlcnQgbWVzc2FnZSIpIG1lc3NhZ2U6QCIiIHByZWZlcnJlZFN0eWxlOlVJ
QWxlcnRDb250cm9sbGVyU3R5bGVBbGVydF07Ci0KLSAgICBVSUFsZXJ0QWN0aW9uKiBkZWZhdWx0
QWN0aW9uID0gW1VJQWxlcnRBY3Rpb24gYWN0aW9uV2l0aFRpdGxlOldFQl9VSV9TVFJJTkdfS0VZ
KCJPSyIsICJPSyAoUERGIHBhc3N3b3JkIGZhaWx1cmUgYWxlcnQpIiwgIk9LIGJ1dHRvbiBsYWJl
bCBpbiBQREYgcGFzc3dvcmQgZmFpbHVyZSBhbGVydCIpIHN0eWxlOlVJQWxlcnRBY3Rpb25TdHls
ZURlZmF1bHQgaGFuZGxlcjpbXShVSUFsZXJ0QWN0aW9uICopIHsgfV07Ci0gICAgCi0gICAgW2Fs
ZXJ0IGFkZEFjdGlvbjpkZWZhdWx0QWN0aW9uXTsKLQotICAgIFtzZWxmLndpbmRvdy5yb290Vmll
d0NvbnRyb2xsZXIgcHJlc2VudFZpZXdDb250cm9sbGVyOmFsZXJ0IGFuaW1hdGVkOllFUyBjb21w
bGV0aW9uOm5pbF07Ci19CisgICAgW19wYXNzd29yZFZpZXcgc2V0VXNlckRpZEVudGVyUGFzc3dv
cmQ6W3JldGFpbmVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0oTlNTdHJpbmcgKnBhc3N3b3JkKSB7
CisgICAgICAgIGlmICghQ0dQREZEb2N1bWVudFVubG9ja1dpdGhQYXNzd29yZChyZXRhaW5lZFNl
bGYtPl9jZ1BERkRvY3VtZW50LmdldCgpLCBwYXNzd29yZC5VVEY4U3RyaW5nKSkgeworICAgICAg
ICAgICAgW3JldGFpbmVkU2VsZi0+X3Bhc3N3b3JkVmlldyBkaXNwbGF5UGFzc3dvcmRGYWlsdXJl
QWxlcnRdOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLS0gKEJPT0wpX3RyeVRv
VW5sb2NrV2l0aFBhc3N3b3JkOihOU1N0cmluZyAqKXBhc3N3b3JkCi17Ci0gICAgaWYgKENHUERG
RG9jdW1lbnRVbmxvY2tXaXRoUGFzc3dvcmQoX2NnUERGRG9jdW1lbnQuZ2V0KCksIFtwYXNzd29y
ZCBVVEY4U3RyaW5nXSkpIHsKLSAgICAgICAgW3NlbGYgX2hpZGVQYXNzd29yZEVudHJ5RmllbGRd
OwotICAgICAgICBbc2VsZiBfZGlkTG9hZFBERkRvY3VtZW50XTsKLSAgICAgICAgcmV0dXJuIFlF
UzsKLSAgICB9CisgICAgICAgIFtyZXRhaW5lZFNlbGYtPl9wYXNzd29yZFZpZXcgaGlkZV07Cisg
ICAgICAgIHJldGFpbmVkU2VsZi0+X3Bhc3N3b3JkVmlldyA9IG5pbDsKKyAgICAgICAgW3JldGFp
bmVkU2VsZiBfZGlkTG9hZFBERkRvY3VtZW50XTsKKyAgICB9XTsKIAotICAgIFtzZWxmIF9kaWRG
YWlsVG9VbmxvY2tdOwotICAgIHJldHVybiBOTzsKKyAgICBbX3Bhc3N3b3JkVmlldyBzaG93SW5W
aWV3OnNlbGZdOwogfQogCiAtICh2b2lkKXdpbGxNb3ZlVG9XaW5kb3c6KFVJV2luZG93ICopbmV3
V2luZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLUGFzc3dv
cmRWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLUGFzc3dvcmRWaWV3LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzZkM2NlNTlhODgzYTQ3MzQzZWI3MTVjMTMwZGIxZjFlNjhkM2UyOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tQYXNzd29yZFZp
ZXcuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFBMQVRGT1JNKElPUykKKwor
I2ltcG9ydCA8VUlLaXQvVUlLaXQuaD4KKworQGludGVyZmFjZSBXS1Bhc3N3b3JkVmlldyA6IFVJ
VmlldworCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhEb2N1bWVudE5hbWU6KE5TU3RyaW5nICop
ZG9jdW1lbnROYW1lIHNjcm9sbFZpZXc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXc7CistICh2
b2lkKXNob3dJblZpZXc6KFVJVmlldyAqKXZpZXc7CistICh2b2lkKWhpZGU7CistICh2b2lkKWRp
c3BsYXlQYXNzd29yZEZhaWx1cmVBbGVydDsKKworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkp
IHZvaWQgKF51c2VyRGlkRW50ZXJQYXNzd29yZCkoTlNTdHJpbmcgKik7CisKK0BlbmQKKworI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV0tQYXNzd29yZFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
UGFzc3dvcmRWaWV3Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1ZWJhYmFkMDk0MDQ2NGI0ZmViYjNhYjRmZDQ2
OGIxYjM5NTAxMmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLUGFzc3dvcmRWaWV3Lm1tCkBAIC0wLDAgKzEsMTU1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS1Bhc3N3b3JkVmlldy5oIgorCisjaWYgUExBVEZP
Uk0oSU9TKQorCisjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6
ZWRTdHJpbmdzLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworY29uc3QgQ0dGbG9hdCBwYXNzd29yZEVudHJ5RmllbGRQYWRkaW5n
ID0gMTA7CisKK0BpbnRlcmZhY2UgV0tQYXNzd29yZFZpZXcgKCkgPFVJRG9jdW1lbnRQYXNzd29y
ZFZpZXdEZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLUGFzc3dvcmRWaWV3IHsK
KyAgICBVSVNjcm9sbFZpZXcgKl9zY3JvbGxWaWV3OworICAgIFJldGFpblB0cjxVSURvY3VtZW50
UGFzc3dvcmRWaWV3PiBfcGFzc3dvcmRWaWV3OworICAgIENHRmxvYXQgX3NhdmVkTWluaW11bVpv
b21TY2FsZTsKKyAgICBDR0Zsb2F0IF9zYXZlZE1heGltdW1ab29tU2NhbGU7CisgICAgUmV0YWlu
UHRyPFVJQ29sb3I+IF9zYXZlZEJhY2tncm91bmRDb2xvcjsKK30KKworLSAoaW5zdGFuY2V0eXBl
KWluaXRXaXRoRG9jdW1lbnROYW1lOihOU1N0cmluZyAqKWRvY3VtZW50TmFtZSBzY3JvbGxWaWV3
OihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3Cit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0
aEZyYW1lOkNHUmVjdFplcm9dOworICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsK
KworICAgIF9zY3JvbGxWaWV3ID0gc2Nyb2xsVmlldzsKKyAgICBfcGFzc3dvcmRWaWV3ID0gYWRv
cHROUyhbW1VJRG9jdW1lbnRQYXNzd29yZFZpZXcgYWxsb2NdIGluaXRXaXRoRG9jdW1lbnROYW1l
OmRvY3VtZW50TmFtZV0pOworICAgIFtfcGFzc3dvcmRWaWV3IHNldFBhc3N3b3JkRGVsZWdhdGU6
c2VsZl07CisgICAgW3NlbGYgYWRkU3VidmlldzpfcGFzc3dvcmRWaWV3LmdldCgpXTsKKworICAg
IHJldHVybiBzZWxmOworfQorCistICh2b2lkKWxheW91dFN1YnZpZXdzCit7CisgICAgW3N1cGVy
IGxheW91dFN1YnZpZXdzXTsKKyAgICBbX3Bhc3N3b3JkVmlldyBzZXRGcmFtZTpzZWxmLmJvdW5k
c107CisgICAgX3Njcm9sbFZpZXcuY29udGVudFNpemUgPSBzZWxmLmJvdW5kcy5zaXplOworfQor
CistICh2b2lkKXNob3dJblZpZXc6KFVJVmlldyAqKXZpZXcKK3sKKyAgICBfc2F2ZWRNaW5pbXVt
Wm9vbVNjYWxlID0gX3Njcm9sbFZpZXcubWluaW11bVpvb21TY2FsZTsKKyAgICBfc2F2ZWRNYXhp
bXVtWm9vbVNjYWxlID0gX3Njcm9sbFZpZXcubWF4aW11bVpvb21TY2FsZTsKKyAgICBfc2F2ZWRC
YWNrZ3JvdW5kQ29sb3IgPSBfc2Nyb2xsVmlldy5iYWNrZ3JvdW5kQ29sb3I7CisgICAgX3Njcm9s
bFZpZXcubWluaW11bVpvb21TY2FsZSA9IDE7CisgICAgX3Njcm9sbFZpZXcubWF4aW11bVpvb21T
Y2FsZSA9IDE7CisgICAgX3Njcm9sbFZpZXcuYmFja2dyb3VuZENvbG9yID0gW1VJQ29sb3IgZ3Jv
dXBUYWJsZVZpZXdCYWNrZ3JvdW5kQ29sb3JdOworICAgIFt2aWV3IGFkZFN1YnZpZXc6c2VsZl07
Cit9CisKKy0gKHZvaWQpaGlkZQoreworICAgIF9zY3JvbGxWaWV3Lm1pbmltdW1ab29tU2NhbGUg
PSBfc2F2ZWRNaW5pbXVtWm9vbVNjYWxlOworICAgIF9zY3JvbGxWaWV3Lm1heGltdW1ab29tU2Nh
bGUgPSBfc2F2ZWRNYXhpbXVtWm9vbVNjYWxlOworICAgIF9zY3JvbGxWaWV3LmJhY2tncm91bmRD
b2xvciA9IF9zYXZlZEJhY2tncm91bmRDb2xvci5nZXQoKTsKKyAgICBbc2VsZiByZW1vdmVGcm9t
U3VwZXJ2aWV3XTsKK30KKworLSAodm9pZClkaXNwbGF5UGFzc3dvcmRGYWlsdXJlQWxlcnQKK3sK
KyAgICBbW19wYXNzd29yZFZpZXcgcGFzc3dvcmRGaWVsZF0gc2V0VGV4dDpAIiJdOworICAgIFVJ
QWxlcnRDb250cm9sbGVyICphbGVydCA9IFtVSUFsZXJ0Q29udHJvbGxlciBhbGVydENvbnRyb2xs
ZXJXaXRoVGl0bGU6V0VCX1VJX1NUUklORygiVGhlIGRvY3VtZW50IGNvdWxkIG5vdCBiZSBvcGVu
ZWQgd2l0aCB0aGF0IHBhc3N3b3JkLiIsICJkb2N1bWVudCBwYXNzd29yZCBmYWlsdXJlIGFsZXJ0
IG1lc3NhZ2UiKSBtZXNzYWdlOkAiIiBwcmVmZXJyZWRTdHlsZTpVSUFsZXJ0Q29udHJvbGxlclN0
eWxlQWxlcnRdOworCisgICAgVUlBbGVydEFjdGlvbiAqZGVmYXVsdEFjdGlvbiA9IFtVSUFsZXJ0
QWN0aW9uIGFjdGlvbldpdGhUaXRsZTpXRUJfVUlfU1RSSU5HX0tFWSgiT0siLCAiT0sgKGRvY3Vt
ZW50IHBhc3N3b3JkIGZhaWx1cmUgYWxlcnQpIiwgIk9LIGJ1dHRvbiBsYWJlbCBpbiBkb2N1bWVu
dCBwYXNzd29yZCBmYWlsdXJlIGFsZXJ0Iikgc3R5bGU6VUlBbGVydEFjdGlvblN0eWxlRGVmYXVs
dCBoYW5kbGVyOltdKFVJQWxlcnRBY3Rpb24gKikgeyB9XTsKKworICAgIFthbGVydCBhZGRBY3Rp
b246ZGVmYXVsdEFjdGlvbl07CisKKyAgICBbc2VsZi53aW5kb3cucm9vdFZpZXdDb250cm9sbGVy
IHByZXNlbnRWaWV3Q29udHJvbGxlcjphbGVydCBhbmltYXRlZDpZRVMgY29tcGxldGlvbjpuaWxd
OworfQorCistICh2b2lkKV9rZXlib2FyZERpZFNob3c6KE5TTm90aWZpY2F0aW9uICopbm90aWZp
Y2F0aW9uCit7CisgICAgVUlUZXh0RmllbGQgKnBhc3N3b3JkRmllbGQgPSBbX3Bhc3N3b3JkVmll
dyBwYXNzd29yZEZpZWxkXTsKKyAgICBpZiAoIXBhc3N3b3JkRmllbGQuaXNFZGl0aW5nKQorICAg
ICAgICByZXR1cm47CisKKyAgICBDR1JlY3Qga2V5Ym9hcmRSZWN0ID0gW1VJUGVyaXBoZXJhbEhv
c3QgdmlzaWJsZVBlcmlwaGVyYWxGcmFtZV07CisgICAgaWYgKENHUmVjdElzRW1wdHkoa2V5Ym9h
cmRSZWN0KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgVUlXaW5kb3cgKndpbmRvdyA9IF9zY3Jv
bGxWaWV3LndpbmRvdzsKKyAgICBrZXlib2FyZFJlY3QgPSBbd2luZG93IGNvbnZlcnRSZWN0Omtl
eWJvYXJkUmVjdCBmcm9tV2luZG93Om5pbF07CisgICAga2V5Ym9hcmRSZWN0ID0gW19zY3JvbGxW
aWV3IGNvbnZlcnRSZWN0OmtleWJvYXJkUmVjdCBmcm9tVmlldzp3aW5kb3ddOworCisgICAgQ0dS
ZWN0IHBhc3N3b3JkRmllbGRGcmFtZSA9IFtwYXNzd29yZEZpZWxkIGNvbnZlcnRSZWN0OnBhc3N3
b3JkRmllbGQuYm91bmRzIHRvVmlldzpfc2Nyb2xsVmlld107CisKKyAgICBDR1NpemUgY29udGVu
dFNpemUgPSBbX3Bhc3N3b3JkVmlldyBib3VuZHNdLnNpemU7CisgICAgY29udGVudFNpemUuaGVp
Z2h0ICs9IENHUmVjdEdldEhlaWdodChrZXlib2FyZFJlY3QpOworICAgIFtfc2Nyb2xsVmlldyBz
ZXRDb250ZW50U2l6ZTpjb250ZW50U2l6ZV07CisKKyAgICBpZiAoQ0dSZWN0SW50ZXJzZWN0c1Jl
Y3QocGFzc3dvcmRGaWVsZEZyYW1lLCBrZXlib2FyZFJlY3QpKSB7CisgICAgICAgIENHRmxvYXQg
eURlbHRhID0gQ0dSZWN0R2V0TWF4WShwYXNzd29yZEZpZWxkRnJhbWUpIC0gQ0dSZWN0R2V0TWlu
WShrZXlib2FyZFJlY3QpOworCisgICAgICAgIENHUG9pbnQgY29udGVudE9mZnNldCA9IF9zY3Jv
bGxWaWV3LmNvbnRlbnRPZmZzZXQ7CisgICAgICAgIGNvbnRlbnRPZmZzZXQueSArPSB5RGVsdGEg
KyBwYXNzd29yZEVudHJ5RmllbGRQYWRkaW5nOworCisgICAgICAgIFtfc2Nyb2xsVmlldyBzZXRD
b250ZW50T2Zmc2V0OmNvbnRlbnRPZmZzZXQgYW5pbWF0ZWQ6WUVTXTsKKyAgICB9Cit9CisKKyNw
cmFnbWEgbWFyayBVSURvY3VtZW50UGFzc3dvcmRWaWV3RGVsZWdhdGUKKworLSAodm9pZCl1c2Vy
RGlkRW50ZXJQYXNzd29yZDooTlNTdHJpbmcgKilwYXNzd29yZCBmb3JQYXNzd29yZFZpZXc6KFVJ
RG9jdW1lbnRQYXNzd29yZFZpZXcgKilwYXNzd29yZFZpZXcKK3sKKyAgICBSZXRhaW5QdHI8V0tQ
YXNzd29yZFZpZXc+IHByb3RlY3RlZFNlbGYoc2VsZik7CisgICAgaWYgKF91c2VyRGlkRW50ZXJQ
YXNzd29yZCkKKyAgICAgICAgX3VzZXJEaWRFbnRlclBhc3N3b3JkKHBhc3N3b3JkKTsKK30KKwor
LSAodm9pZClkaWRCZWdpbkVkaXRpbmdQYXNzd29yZDooVUlUZXh0RmllbGQgKilwYXNzd29yZEZp
ZWxkIGluVmlldzooVUlEb2N1bWVudFBhc3N3b3JkVmlldyAqKXBhc3N3b3JkVmlldworeworICAg
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBz
ZWxlY3RvcjpAc2VsZWN0b3IoX2tleWJvYXJkRGlkU2hvdzopIG5hbWU6VUlLZXlib2FyZERpZFNo
b3dOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07Cit9CisKKy0gKHZvaWQpZGlkRW5kRWRpdGluZ1Bh
c3N3b3JkOihVSVRleHRGaWVsZCAqKXBhc3N3b3JkRmllbGQgaW5WaWV3OihVSURvY3VtZW50UGFz
c3dvcmRWaWV3ICopcGFzc3dvcmRWaWV3Cit7CisgICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRT
aXplOltfcGFzc3dvcmRWaWV3IGZyYW1lXS5zaXplXTsKKyAgICBbX3Njcm9sbFZpZXcgc2V0Q29u
dGVudE9mZnNldDpDR1BvaW50TWFrZSgtX3Njcm9sbFZpZXcuY29udGVudEluc2V0LmxlZnQsIC1f
c2Nyb2xsVmlldy5jb250ZW50SW5zZXQudG9wKSBhbmltYXRlZDpZRVNdOworCisgICAgW1tOU05v
dGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6
VUlLZXlib2FyZERpZFNob3dOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07Cit9CisKK0BlbmQKKwor
I2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiYmNkNzk2MWFmNGIyZTk4ZWRmNzU5N2Q0M2Y2
MmZmMDI4ZDE0Y2I2Li5hMjdkZTcwNzQ5NGE0YjYxMDE4M2M4NTk3MTdmOTg4ZjI0MTlmMTdmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xMzM4LDYgKzEzMzgsOCBAQAogCQlBMTE4QTlFRjE5MDdBRDZGMDBGN0M5MkIgLyogUXVp
Y2tMb29rRG9jdW1lbnREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMTE4QTlFRDE5MDdBRDZGMDBGN0M5MkIgLyogUXVpY2tMb29rRG9jdW1lbnRE
YXRhLmggKi87IH07CiAJCUExMThBOUYyMTkwOEI4RUEwMEY3QzkyQiAvKiBfV0tOU0ZpbGVNYW5h
Z2VyRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTExOEE5RjAxOTA4QjhFQTAwRjdDOTJCIC8qIF9XS05TRmlsZU1hbmFnZXJFeHRyYXMubW0g
Ki87IH07CiAJCUExMThBOUYzMTkwOEI4RUEwMEY3QzkyQiAvKiBfV0tOU0ZpbGVNYW5hZ2VyRXh0
cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE4
QTlGMTE5MDhCOEVBMDBGN0M5MkIgLyogX1dLTlNGaWxlTWFuYWdlckV4dHJhcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUExNUVFREU1MUUzMDFD
RUUwMDAwNjlCMCAvKiBXS1Bhc3N3b3JkVmlldy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExNUVFREUzMUUzMDFDRUUwMDAwNjlCMCAvKiBXS1Bhc3N3
b3JkVmlldy5tbSAqLzsgfTsKKwkJQTE1RUVERTYxRTMwMUNFRTAwMDA2OUIwIC8qIFdLUGFzc3dv
cmRWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MTVFRURFNDFFMzAxQ0VFMDAwMDY5QjAgLyogV0tQYXNzd29yZFZpZXcuaCAqLzsgfTsKIAkJQTE4
MkQ1QjQxQkU2QkQyNTAwODdBN0NDIC8qIEFjY2Vzc2liaWxpdHlJT1MubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTgyRDVCMjFCRTZCRDI1MDA4N0E3
Q0MgLyogQWNjZXNzaWJpbGl0eUlPUy5tbSAqLzsgfTsKIAkJQTE4MkQ1QjUxQkU2QkQyNTAwODdB
N0NDIC8qIEFjY2Vzc2liaWxpdHlJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEExODJENUIzMUJFNkJEMjUwMDg3QTdDQyAvKiBBY2Nlc3NpYmlsaXR5
SU9TLmggKi87IH07CiAJCUExOUREM0MwMUQwN0QxNjgwMEFDODIzQiAvKiBfV0tXZWJWaWV3UHJp
bnRGb3JtYXR0ZXJJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTE5REQzQkYxRDA3RDE2ODAwQUM4MjNCIC8qIF9XS1dlYlZpZXdQcmludEZv
cm1hdHRlckludGVybmFsLmggKi87IH07CkBAIC0zNDkwLDYgKzM0OTIsOCBAQAogCQlBMTE4QTlF
RDE5MDdBRDZGMDBGN0M5MkIgLyogUXVpY2tMb29rRG9jdW1lbnREYXRhLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFF1aWNrTG9va0RvY3VtZW50RGF0YS5oOyBwYXRoID0gaW9z
L1F1aWNrTG9va0RvY3VtZW50RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
MTE4QTlGMDE5MDhCOEVBMDBGN0M5MkIgLyogX1dLTlNGaWxlTWFuYWdlckV4dHJhcy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS05TRmlsZU1hbmFnZXJFeHRy
YXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMThBOUYxMTkwOEI4RUEwMEY3
QzkyQiAvKiBfV0tOU0ZpbGVNYW5hZ2VyRXh0cmFzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IF9XS05TRmlsZU1hbmFnZXJFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTE1RUVERTMxRTMwMUNFRTAwMDA2OUIwIC8qIFdLUGFzc3dvcmRWaWV3Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tQYXNzd29yZFZpZXcubW07
IHBhdGggPSBpb3MvV0tQYXNzd29yZFZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUExNUVFREU0MUUzMDFDRUUwMDAwNjlCMCAvKiBXS1Bhc3N3b3JkVmlldy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS1Bhc3N3b3JkVmlldy5oOyBwYXRoID0gaW9zL1dL
UGFzc3dvcmRWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExODJENUIyMUJF
NkJEMjUwMDg3QTdDQyAvKiBBY2Nlc3NpYmlsaXR5SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eUlPUy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTE4MkQ1QjMxQkU2QkQyNTAwODdBN0NDIC8qIEFjY2Vzc2liaWxpdHlJ
T1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eUlPUy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTlERDNCRjFEMDdEMTY4MDBBQzgyM0Ig
LyogX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUxNTYsNiArNTE2MCw4IEBACiAJCQkJMEZDQjRFNDUx
OEJCRTA0NDAwMEZDRkM5IC8qIFdLU2Nyb2xsVmlldy5tbSAqLywKIAkJCQkyNkYxMEJFNjE5MTg3
RTJFMDAxRDBFNjggLyogV0tTeW50aGV0aWNDbGlja1RhcEdlc3R1cmVSZWNvZ25pemVyLmggKi8s
CiAJCQkJMjZGMTBCRTcxOTE4N0UyRTAwMUQwRTY4IC8qIFdLU3ludGhldGljQ2xpY2tUYXBHZXN0
dXJlUmVjb2duaXplci5tICovLAorCQkJCUExNUVFREUzMUUzMDFDRUUwMDAwNjlCMCAvKiBXS1Bh
c3N3b3JkVmlldy5tbSAqLywKKwkJCQlBMTVFRURFNDFFMzAxQ0VFMDAwMDY5QjAgLyogV0tQYXNz
d29yZFZpZXcuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKQEAgLTgwMDYsNiArODAxMiw3IEBACiAJCQkJMUFBM0Q3NUMxNjUxQjQ0RjAwODcx
M0QwIC8qIFJlbW90ZUxheWVyVHJlZUhvc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEREUwQUZB
MTgyOThDQzkwMEY5N0VBQSAvKiBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGRjI2NEEwMUExRkY5Q0MwMDFGRTc1OSAvKiBSZW1vdGVMYXllclRy
ZWVTY3JvbGxpbmdQZXJmb3JtYW5jZURhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJCUExNUVFREU2
MUUzMDFDRUUwMDAwNjlCMCAvKiBXS1Bhc3N3b3JkVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFGMUFDNkMxNjUxNzU5RTAwQzE3RDdGIC8qIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFMUI3ODQ3MTE2M0YyNDY5MDAwN0I2OTIgLyogUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNTcwNEZDMUJFMTc1MTEwMDg3
NEFGMSAvKiBSZW1vdGVPYmplY3RJbnZvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTk4ODks
NiArOTg5Niw3IEBACiAJCQkJQzU0MjU2QjYxOEJFQzE4QzAwREU0MTc5IC8qIFdLRm9ybUlucHV0
Q29udHJvbC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUM1NDI1NkI5MThCRUMxOEMwMERFNDE3OSAv
KiBXS0Zvcm1Qb3BvdmVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU3MTkzQkUxOEMxNEE0NDAw
MkQwRjEyIC8qIFdLRm9ybVNlbGVjdENvbnRyb2wubW0gaW4gU291cmNlcyAqLywKKwkJCQlBMTVF
RURFNTFFMzAxQ0VFMDAwMDY5QjAgLyogV0tQYXNzd29yZFZpZXcubW0gaW4gU291cmNlcyAqLywK
IAkJCQlDNTVDQjVCODE4QzJBNUQ2MDBDQTgxRTEgLyogV0tGb3JtU2VsZWN0UGlja2VyLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQzU1Q0I1QjcxOEMyNjlDRjAwQ0E4MUUxIC8qIFdLRm9ybVNlbGVj
dFBvcG92ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0U0Njk1OTEyMTRFREY0MDAwQjk4RUIg
LyogV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299222</attachid>
            <date>2017-01-18 20:27:43 -0800</date>
            <delta_ts>2017-01-19 14:54:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167192-20170118202552.patch</filename>
            <type>text/plain</type>
            <size>24931</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FkYTk1MTk2OGRjNzk0
YzBmYzU3ZWViOGQ5OGNmNzI5NjEyZDgxNi4uY2UyNjc0MjYwYmUxNDUyOTQ2M2I2NDFkYWRhNzVi
MDkwYmZjNTNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE3LTAxLTE4ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNb3ZlIHRoZSBQREYg
cGFzc3dvcmQgdmlldyBpbnRvIGl0cyBvd24gY2xhc3MgZm9yIHBvc3NpYmxlIHJldXNlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcxOTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEVuZ2xpc2gubHBy
b2ovTG9jYWxpemFibGUuc3RyaW5nczogVXBkYXRlZCB0aGUgZmFpbHVyZSBhbGVydCBzdHJpbmdz
IHRvIG5vdCBiZSBzcGVjaWZpYyB0byBQREZzLgorCiAyMDE3LTAxLTE4ICBSeWFuIEhhZGRhZCAg
PHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIyMTA4NDguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGI4ZjRlYmU0YjhhZTdlMjM3NGQyZjc5NGE5Y2U4ZGI0
YWQ0Y2Y0OC4uYzg1ZmZiZDJmN2ViNjg0YzE0OGY3NzhmMTFmMjMyZDZhM2QyOThjYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE3LTAxLTE4ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFw
cGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNb3ZlIHRoZSBQREYgcGFzc3dvcmQgdmlldyBpbnRv
IGl0cyBvd24gY2xhc3MgZm9yIHBvc3NpYmxlIHJldXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcxOTIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lmg6IFN0
b3BwZWQgY29uZm9ybWluZyB0byBVSURvY3VtZW50UGFzc3dvcmRWaWV3RGVsZWdhdGUuCisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW06IENoYW5nZWQgX3Bhc3N3b3JkVmlldyB0
byBhIFdLUGFzc3dvcmRWaWV3LgorICAgICAgICAoLVtXS1BERlZpZXcgX3VwZGF0ZVBhc3N3b3Jk
RW50cnlGaWVsZF0pOiBTdG9wcGVkIHNldHRpbmcgdGhlIHNjcm9sbCB2aWV3J3MgY29udGVudCBz
aXplIGhlcmUuCisgICAgICAgICgtW1dLUERGVmlldyBfc2hvd1Bhc3N3b3JkRW50cnlGaWVsZF0p
OiBDcmVhdGVkIGEgV0tQYXNzd29yZFZpZXcsIHNldCBhIGxhbWJkYSBvbiBpdHMKKyAgICAgICAg
dXNlckRpZEVudGVyUGFzc3dvcmQgcHJvcGVydHkgdG8gZG8gdGhlIHdvcmsgcHJldmlvdXNseSBk
b25lIGluIC1fdHJ5VG9VbmxvY2tXaXRoUGFzc3dvcmQ6LAorICAgICAgICBhbmQgc2hvd2VkIHRo
ZSBwYXNzd29yZCB2aWV3LgorICAgICAgICAoLVtXS1BERlZpZXcgX2tleWJvYXJkRGlkU2hvdzpd
KTogTW92ZWQgdG8gV0tQYXNzd29yZFZpZXcuCisgICAgICAgICgtW1dLUERGVmlldyBfaGlkZVBh
c3N3b3JkRW50cnlGaWVsZF0pOiBEZWxldGVkLiBUaGUgdXNlckRpZEVudGVyUGFzc3dvcmQgbGFt
YmRhIG5vdyBjYWxscworICAgICAgICAtW1dLUGFzc3dvcmRWaWV3IGhpZGVdIHdoZW4gdGhlIGRv
Y3VtZW50IGlzIHVubG9ja2VkLgorICAgICAgICAoLVtXS1BERlZpZXcgdXNlckRpZEVudGVyUGFz
c3dvcmQ6Zm9yUGFzc3dvcmRWaWV3Ol0pOiBNb3ZlZCB0byBXS1Bhc3N3b3JkVmlldy4KKyAgICAg
ICAgKC1bV0tQREZWaWV3IGRpZEJlZ2luRWRpdGluZ1Bhc3N3b3JkOmluVmlldzpdKTogRGl0dG8u
CisgICAgICAgICgtW1dLUERGVmlldyBkaWRFbmRFZGl0aW5nUGFzc3dvcmQ6aW5WaWV3Ol0pOiBE
aXR0by4KKyAgICAgICAgKC1bV0tQREZWaWV3IF9kaWRGYWlsVG9VbmxvY2tdKTogRGl0dG8uCisg
ICAgICAgICgtW1dLUERGVmlldyBfdHJ5VG9VbmxvY2tXaXRoUGFzc3dvcmQ6XSk6IE1vdmVkIGlu
dG8gX3Bhc3N3b3JkVmlldydzIHVzZXJEaWRFbnRlclBhc3N3b3JkIGxhbWJkYS4KKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1dLUGFzc3dvcmRWaWV3Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tQYXNzd29yZFZpZXcubW06IEFkZGVkLgorICAgICAgICAoLVtXS1Bhc3N3b3Jk
VmlldyBpbml0V2l0aERvY3VtZW50TmFtZTpzY3JvbGxWaWV3Ol0pOiBDcmVhdGVkIGEgVUlEb2N1
bWVudFBhc3N3b3JkVmlldyB3aXRoCisgICAgICAgIGRvY3VtZW50TmFtZSwgc2V0IHNlbGYgYXMg
aXRzIHBhc3N3b3JkRGVsZWdhdGUsIGFuZCBhZGRlZCBpdCBhcyBhIHN1YnZpZXcuCisgICAgICAg
ICgtW1dLUGFzc3dvcmRWaWV3IGxheW91dFN1YnZpZXdzXSk6IFNldCBfcGFzc3dvcmRWaWV3J3Mg
ZnJhbWUgdG8gb3VyIGJvdW5kcyBhbmQgdXBkYXRlZCB0aGUKKyAgICAgICAgc2Nyb2xsIHZpZXcn
cyBjb250ZW50IHNpemUuCisgICAgICAgICgtW1dLUGFzc3dvcmRWaWV3IHNob3dJblZpZXc6XSk6
IFNhdmVkIHRoZSBzY3JvbGwgdmlldydzIHByZXZpb3VzIG1pbmltdW0vbWF4aW11bSB6b29tIHNj
YWxlCisgICAgICAgIGFuZCBjb2xvciwgc2V0IG5ldyB2YWx1ZXMgZm9yIG1pbmltdW0vbWF4aW11
bSB6b29tIHNjYWxlIGFuZCBjb2xvciwgYW5kIGFkZGVkIHNlbGYgYXMgYQorICAgICAgICBzdWJ2
aWV3IG9mIHZpZXcuCisgICAgICAgICgtW1dLUGFzc3dvcmRWaWV3IGhpZGVdKTogUmVzdG9yZWQg
dGhlIHNhdmVkIG1pbmltdW0vbWF4aW11bSB6b29tIHNjYWxlIGFuZCBjb2xvciBvbiB0aGUKKyAg
ICAgICAgc2Nyb2xsIHZpZXcgYW5kIHJlbW92ZWQgc2VsZiBmcm9tIGl0cyBzdXBlcnZpZXcuCisg
ICAgICAgICgtW1dLUGFzc3dvcmRWaWV3IGRpc3BsYXlQYXNzd29yZEZhaWx1cmVBbGVydF0pOiBE
aXNwbGF5ZWQgdGhlIGFsZXJ0IHByZXZpb3VzbHkgc2hvd24gYnkKKyAgICAgICAgLVtXS1BERlZp
ZXcgX2RpZEZhaWxUb1VubG9ja10uCisgICAgICAgICgtW1dLUGFzc3dvcmRWaWV3IF9rZXlib2Fy
ZERpZFNob3c6XSk6IE1vdmVkIGZyb20gV0tQREZWaWV3LgorICAgICAgICAoLVtXS1Bhc3N3b3Jk
VmlldyB1c2VyRGlkRW50ZXJQYXNzd29yZDpmb3JQYXNzd29yZFZpZXc6XSk6IFJldGFpbmVkIHNl
bGYgYW5kIGNhbGxlZCB0aGUKKyAgICAgICAgX3VzZXJEaWRFbnRlclBhc3N3b3JkIGJsb2NrIHdp
dGggdGhlIHBhc3N3b3JkLgorICAgICAgICAoLVtXS1Bhc3N3b3JkVmlldyBkaWRCZWdpbkVkaXRp
bmdQYXNzd29yZDppblZpZXc6XSk6IE1vdmVkIGZyb20gV0tQREZWaWV3LgorICAgICAgICAoLVtX
S1Bhc3N3b3JkVmlldyBkaWRFbmRFZGl0aW5nUGFzc3dvcmQ6aW5WaWV3Ol0pOiBEaXR0by4KKyAg
ICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTctMDEtMTgg
IFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjIxMDg0OC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xp
c2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHBy
b2ovTG9jYWxpemFibGUuc3RyaW5ncwppbmRleCBjNGFiNTMyYmFmYjM5MTY1MTM3NDdhMzM3N2Mw
NmY4MTZkYmNiNjVmLi4yNzMxM2E5ZjM3NWQ5OTA1MTdiNmVhZjAwOGZlYWVlYjY2OWJiYzBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmlu
Z3MKKysrIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdz
CkBAIC00MDMsOCArNDAzLDggQEAKIC8qIE9wdGlvbiBpbiBzZWdtZW50ZWQgY29udHJvbCBmb3Ig
aW5zZXJ0aW5nIGEgbnVtYmVyZWQgbGlzdCBpbiB0ZXh0IGVkaXRpbmcgKi8KICJOdW1iZXJlZCBs
aXN0IiA9ICJOdW1iZXJlZCBsaXN0IjsKIAotLyogT0sgYnV0dG9uIGxhYmVsIGluIFBERiBwYXNz
d29yZCBmYWlsdXJlIGFsZXJ0ICovCi0iT0sgKFBERiBwYXNzd29yZCBmYWlsdXJlIGFsZXJ0KSIg
PSAiT0siOworLyogT0sgYnV0dG9uIGxhYmVsIGluIGRvY3VtZW50IHBhc3N3b3JkIGZhaWx1cmUg
YWxlcnQgKi8KKyJPSyAoZG9jdW1lbnQgcGFzc3dvcmQgZmFpbHVyZSBhbGVydCkiID0gIk9LIjsK
IAogLyogTWVudSBpdGVtIGxhYmVsIGZvciB0aGUgdHJhY2sgdGhhdCByZXByZXNlbnRzIGRpc2Fi
bGluZyBjbG9zZWQgY2FwdGlvbnMgKi8KICJPZmYiID0gIk9mZiI7CkBAIC02NjEsNyArNjYxLDcg
QEAKIC8qIFdlYktpdEVycm9yR2VvbG9jYXRpb25Mb2NhdGlvblVua25vd24gZGVzY3JpcHRpb24g
Ki8KICJUaGUgY3VycmVudCBsb2NhdGlvbiBjYW5ub3QgYmUgZm91bmQuIiA9ICJUaGUgY3VycmVu
dCBsb2NhdGlvbiBjYW5ub3QgYmUgZm91bmQuIjsKIAotLyogUERGIHBhc3N3b3JkIGZhaWx1cmUg
YWxlcnQgbWVzc2FnZSAqLworLyogZG9jdW1lbnQgcGFzc3dvcmQgZmFpbHVyZSBhbGVydCBtZXNz
YWdlICovCiAiVGhlIGRvY3VtZW50IGNvdWxkIG5vdCBiZSBvcGVuZWQgd2l0aCB0aGF0IHBhc3N3
b3JkLiIgPSAiVGhlIGRvY3VtZW50IGNvdWxkIG5vdCBiZSBvcGVuZWQgd2l0aCB0aGF0IHBhc3N3
b3JkLiI7CiAKIC8qIFdlYktpdEVycm9yQ2Fubm90RmluZFBsdWdpbiBkZXNjcmlwdGlvbiAqLwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3LmgKaW5kZXggMzZkMzdmN2E3YjNl
ODQ1MmY0ODJjOTQ3MjFiYmM0NDRhYmFkNzViYS4uZjcwNDU1YjRiNzkxMDVlODljYTE1ZTI3YWQ4
YTFlZjc3MTI0ODY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S1BERlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLUERGVmlldy5o
CkBAIC0yNiwxMSArMjYsMTAgQEAKICNpZiBQTEFURk9STShJT1MpCiAKICNpbXBvcnQgIkNvcmVQ
REZTUEkuaCIKLSNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0ICJXS0FjdGlvblNoZWV0QXNz
aXN0YW50LmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdDb250ZW50UHJvdmlkZXIuaCIKIAotQGludGVy
ZmFjZSBXS1BERlZpZXcgOiBVSVZpZXcgPFdLV2ViVmlld0NvbnRlbnRQcm92aWRlciwgVUlQREZQ
YWdlVmlld0RlbGVnYXRlLCBVSVBERkFubm90YXRpb25Db250cm9sbGVyRGVsZWdhdGUsIFdLQWN0
aW9uU2hlZXRBc3Npc3RhbnREZWxlZ2F0ZSwgVUlEb2N1bWVudFBhc3N3b3JkVmlld0RlbGVnYXRl
PgorQGludGVyZmFjZSBXS1BERlZpZXcgOiBVSVZpZXcgPFdLV2ViVmlld0NvbnRlbnRQcm92aWRl
ciwgVUlQREZQYWdlVmlld0RlbGVnYXRlLCBVSVBERkFubm90YXRpb25Db250cm9sbGVyRGVsZWdh
dGUsIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnREZWxlZ2F0ZT4KIAogQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqc3VnZ2VzdGVkRmlsZW5hbWU7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIENHUERGRG9jdW1lbnRSZWYgcGRmRG9jdW1lbnQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLUERGVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tCmluZGV4IGUwMzZjZjIxZjgwNzhmZjBm
MzQ5YmYxZDcyNGNhNTQzNWNlMzRjNTcuLjc3ZDliOWQ1N2U1MzdjYTZiMzQ1YzBhOTMzMmE0ZGM2
Mjk0ODI2ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tQREZW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tCkBA
IC0zNSw2ICszNSw3IEBACiAjaW1wb3J0ICJTZXNzaW9uU3RhdGUuaCIKICNpbXBvcnQgIlVJS2l0
U1BJLmgiCiAjaW1wb3J0ICJXS1BERlBhZ2VOdW1iZXJJbmRpY2F0b3IuaCIKKyNpbXBvcnQgIldL
UGFzc3dvcmRWaWV3LmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAi
V2Vha09iakNQdHIuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgpAQCAtNTQsOCArNTUsNiBA
QCBjb25zdCBDR0Zsb2F0IHBkZlBhZ2VNYXJnaW4gPSA4OwogY29uc3QgQ0dGbG9hdCBwZGZNaW5p
bXVtWm9vbVNjYWxlID0gMTsKIGNvbnN0IENHRmxvYXQgcGRmTWF4aW11bVpvb21TY2FsZSA9IDU7
CiAKLWNvbnN0IENHRmxvYXQgcGFzc3dvcmRFbnRyeUZpZWxkUGFkZGluZyA9IDEwOwotCiBjb25z
dCBmbG9hdCBvdmVyZHJhd0hlaWdodE11bHRpcGxpZXIgPSAxLjU7CiAKIHN0YXRpYyBjb25zdCBD
R0Zsb2F0IHNtYXJ0TWFnbmlmaWNhdGlvbkVsZW1lbnRQYWRkaW5nID0gMC4wNTsKQEAgLTc3LDcg
Kzc2LDcgQEAgQGltcGxlbWVudGF0aW9uIFdLUERGVmlldyB7CiAgICAgUmV0YWluUHRyPE5TU3Ry
aW5nPiBfc3VnZ2VzdGVkRmlsZW5hbWU7CiAgICAgUmV0YWluUHRyPFdLUERGUGFnZU51bWJlcklu
ZGljYXRvcj4gX3BhZ2VOdW1iZXJJbmRpY2F0b3I7CiAKLSAgICBSZXRhaW5QdHI8VUlEb2N1bWVu
dFBhc3N3b3JkVmlldz4gX3Bhc3N3b3JkVmlldzsKKyAgICBSZXRhaW5QdHI8V0tQYXNzd29yZFZp
ZXc+IF9wYXNzd29yZFZpZXc7CiAKICAgICBWZWN0b3I8UERGUGFnZUluZm8+IF9wYWdlczsKICAg
ICB1bnNpZ25lZCBfY2VudGVyUGFnZU51bWJlcjsKQEAgLTc1MCwxMDMgKzc0OSwyNSBAQCAtIChS
ZXRhaW5QdHI8TlNBcnJheT4pYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Np
c3RhbnQgKilhc3Npc3RhbnQgZAogLSAodm9pZClfdXBkYXRlUGFzc3dvcmRFbnRyeUZpZWxkCiB7
CiAgICAgW19wYXNzd29yZFZpZXcgc2V0RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCBfd2ViVmlldy5i
b3VuZHMuc2l6ZS53aWR0aCwgX3dlYlZpZXcuYm91bmRzLnNpemUuaGVpZ2h0KV07Ci0gICAgW19z
Y3JvbGxWaWV3IHNldENvbnRlbnRTaXplOltfcGFzc3dvcmRWaWV3IGJvdW5kc10uc2l6ZV07Ci19
Ci0KLS0gKHZvaWQpX2tleWJvYXJkRGlkU2hvdzooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRp
b24KLXsKLSAgICBVSVRleHRGaWVsZCAqcGFzc3dvcmRGaWVsZCA9IFtfcGFzc3dvcmRWaWV3IHBh
c3N3b3JkRmllbGRdOwotICAgIGlmICghcGFzc3dvcmRGaWVsZC5pc0VkaXRpbmcpCi0gICAgICAg
IHJldHVybjsKLQotICAgIENHUmVjdCBrZXlib2FyZFJlY3QgPSBbVUlQZXJpcGhlcmFsSG9zdCB2
aXNpYmxlUGVyaXBoZXJhbEZyYW1lXTsKLSAgICBpZiAoQ0dSZWN0SXNFbXB0eShrZXlib2FyZFJl
Y3QpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBVSVdpbmRvdyAqd2luZG93ID0gX3Njcm9sbFZp
ZXcud2luZG93OwotICAgIGtleWJvYXJkUmVjdCA9IFt3aW5kb3cgY29udmVydFJlY3Q6a2V5Ym9h
cmRSZWN0IGZyb21XaW5kb3c6bmlsXTsKLSAgICBrZXlib2FyZFJlY3QgPSBbX3Njcm9sbFZpZXcg
Y29udmVydFJlY3Q6a2V5Ym9hcmRSZWN0IGZyb21WaWV3OndpbmRvd107Ci0KLSAgICBDR1JlY3Qg
cGFzc3dvcmRGaWVsZEZyYW1lID0gW3Bhc3N3b3JkRmllbGQgY29udmVydFJlY3Q6cGFzc3dvcmRG
aWVsZC5ib3VuZHMgdG9WaWV3Ol9zY3JvbGxWaWV3XTsKLQotICAgIENHU2l6ZSBjb250ZW50U2l6
ZSA9IFtfcGFzc3dvcmRWaWV3IGJvdW5kc10uc2l6ZTsKLSAgICBjb250ZW50U2l6ZS5oZWlnaHQg
Kz0gQ0dSZWN0R2V0SGVpZ2h0KGtleWJvYXJkUmVjdCk7Ci0gICAgW19zY3JvbGxWaWV3IHNldENv
bnRlbnRTaXplOmNvbnRlbnRTaXplXTsKLQotICAgIGlmIChDR1JlY3RJbnRlcnNlY3RzUmVjdChw
YXNzd29yZEZpZWxkRnJhbWUsIGtleWJvYXJkUmVjdCkpIHsKLSAgICAgICAgQ0dGbG9hdCB5RGVs
dGEgPSBDR1JlY3RHZXRNYXhZKHBhc3N3b3JkRmllbGRGcmFtZSkgLSBDR1JlY3RHZXRNaW5ZKGtl
eWJvYXJkUmVjdCk7Ci0KLSAgICAgICAgQ0dQb2ludCBjb250ZW50T2Zmc2V0ID0gX3Njcm9sbFZp
ZXcuY29udGVudE9mZnNldDsKLSAgICAgICAgY29udGVudE9mZnNldC55ICs9IHlEZWx0YSArIHBh
c3N3b3JkRW50cnlGaWVsZFBhZGRpbmc7Ci0KLSAgICAgICAgW19zY3JvbGxWaWV3IHNldENvbnRl
bnRPZmZzZXQ6Y29udGVudE9mZnNldCBhbmltYXRlZDpZRVNdOwotICAgIH0KIH0KIAogLSAodm9p
ZClfc2hvd1Bhc3N3b3JkRW50cnlGaWVsZAogewotICAgIFtfc2Nyb2xsVmlldyBzZXRNaW5pbXVt
Wm9vbVNjYWxlOjFdOwotICAgIFtfc2Nyb2xsVmlldyBzZXRNYXhpbXVtWm9vbVNjYWxlOjFdOwot
ICAgIFtfc2Nyb2xsVmlldyBzZXRCYWNrZ3JvdW5kQ29sb3I6W1VJQ29sb3IgZ3JvdXBUYWJsZVZp
ZXdCYWNrZ3JvdW5kQ29sb3JdXTsKLQotICAgIF9wYXNzd29yZFZpZXcgPSBhZG9wdE5TKFtbVUlE
b2N1bWVudFBhc3N3b3JkVmlldyBhbGxvY10gaW5pdFdpdGhEb2N1bWVudE5hbWU6X3N1Z2dlc3Rl
ZEZpbGVuYW1lLmdldCgpXSk7Ci0gICAgW19wYXNzd29yZFZpZXcgc2V0UGFzc3dvcmREZWxlZ2F0
ZTpzZWxmXTsKLQorICAgIF9wYXNzd29yZFZpZXcgPSBhZG9wdE5TKFtbV0tQYXNzd29yZFZpZXcg
YWxsb2NdIGluaXRXaXRoRG9jdW1lbnROYW1lOl9zdWdnZXN0ZWRGaWxlbmFtZS5nZXQoKSBzY3Jv
bGxWaWV3Ol93ZWJWaWV3LnNjcm9sbFZpZXddKTsKICAgICBbc2VsZiBfdXBkYXRlUGFzc3dvcmRF
bnRyeUZpZWxkXTsKIAotICAgIFtzZWxmIGFkZFN1YnZpZXc6X3Bhc3N3b3JkVmlldy5nZXQoKV07
Ci19Ci0KLS0gKHZvaWQpX2hpZGVQYXNzd29yZEVudHJ5RmllbGQKLXsKLSAgICBbX3Bhc3N3b3Jk
VmlldyByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKLSAgICBfcGFzc3dvcmRWaWV3ID0gbmlsOwotCi0g
ICAgW19zY3JvbGxWaWV3IHNldE1pbmltdW1ab29tU2NhbGU6cGRmTWluaW11bVpvb21TY2FsZV07
Ci0gICAgW19zY3JvbGxWaWV3IHNldE1heGltdW1ab29tU2NhbGU6cGRmTWF4aW11bVpvb21TY2Fs
ZV07Ci0gICAgW19zY3JvbGxWaWV3IHNldEJhY2tncm91bmRDb2xvcjpbVUlDb2xvciBncmF5Q29s
b3JdXTsKLX0KLQotLSAodm9pZCl1c2VyRGlkRW50ZXJQYXNzd29yZDooTlNTdHJpbmcgKilwYXNz
d29yZCBmb3JQYXNzd29yZFZpZXc6KFVJRG9jdW1lbnRQYXNzd29yZFZpZXcgKilwYXNzd29yZFZp
ZXcKLXsKLSAgICBbc2VsZiBfdHJ5VG9VbmxvY2tXaXRoUGFzc3dvcmQ6cGFzc3dvcmRdOwotfQot
Ci0tICh2b2lkKWRpZEJlZ2luRWRpdGluZ1Bhc3N3b3JkOihVSVRleHRGaWVsZCAqKXBhc3N3b3Jk
RmllbGQgaW5WaWV3OihVSURvY3VtZW50UGFzc3dvcmRWaWV3ICopcGFzc3dvcmRWaWV3Ci17Ci0g
ICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxm
IHNlbGVjdG9yOkBzZWxlY3Rvcihfa2V5Ym9hcmREaWRTaG93OikgbmFtZTpVSUtleWJvYXJkRGlk
U2hvd05vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKLX0KLQotLSAodm9pZClkaWRFbmRFZGl0aW5n
UGFzc3dvcmQ6KFVJVGV4dEZpZWxkICopcGFzc3dvcmRGaWVsZCBpblZpZXc6KFVJRG9jdW1lbnRQ
YXNzd29yZFZpZXcgKilwYXNzd29yZFZpZXcKLXsKLSAgICBbX3Njcm9sbFZpZXcgc2V0Q29udGVu
dFNpemU6W19wYXNzd29yZFZpZXcgZnJhbWVdLnNpemVdOwotICAgIFtfc2Nyb2xsVmlldyBzZXRD
b250ZW50T2Zmc2V0OkNHUG9pbnRNYWtlKC1fc2Nyb2xsVmlldy5jb250ZW50SW5zZXQubGVmdCwg
LV9zY3JvbGxWaWV3LmNvbnRlbnRJbnNldC50b3ApIGFuaW1hdGVkOllFU107Ci0KLSAgICBbW05T
Tm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFt
ZTpVSUtleWJvYXJkRGlkU2hvd05vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKLX0KLQotLSAodm9p
ZClfZGlkRmFpbFRvVW5sb2NrCi17Ci0gICAgW1tfcGFzc3dvcmRWaWV3IHBhc3N3b3JkRmllbGRd
IHNldFRleHQ6QCIiXTsKLSAgICBVSUFsZXJ0Q29udHJvbGxlciogYWxlcnQgPSBbVUlBbGVydENv
bnRyb2xsZXIgYWxlcnRDb250cm9sbGVyV2l0aFRpdGxlOldFQl9VSV9TVFJJTkcoIlRoZSBkb2N1
bWVudCBjb3VsZCBub3QgYmUgb3BlbmVkIHdpdGggdGhhdCBwYXNzd29yZC4iLCAiUERGIHBhc3N3
b3JkIGZhaWx1cmUgYWxlcnQgbWVzc2FnZSIpIG1lc3NhZ2U6QCIiIHByZWZlcnJlZFN0eWxlOlVJ
QWxlcnRDb250cm9sbGVyU3R5bGVBbGVydF07Ci0KLSAgICBVSUFsZXJ0QWN0aW9uKiBkZWZhdWx0
QWN0aW9uID0gW1VJQWxlcnRBY3Rpb24gYWN0aW9uV2l0aFRpdGxlOldFQl9VSV9TVFJJTkdfS0VZ
KCJPSyIsICJPSyAoUERGIHBhc3N3b3JkIGZhaWx1cmUgYWxlcnQpIiwgIk9LIGJ1dHRvbiBsYWJl
bCBpbiBQREYgcGFzc3dvcmQgZmFpbHVyZSBhbGVydCIpIHN0eWxlOlVJQWxlcnRBY3Rpb25TdHls
ZURlZmF1bHQgaGFuZGxlcjpbXShVSUFsZXJ0QWN0aW9uICopIHsgfV07Ci0gICAgCi0gICAgW2Fs
ZXJ0IGFkZEFjdGlvbjpkZWZhdWx0QWN0aW9uXTsKLQotICAgIFtzZWxmLndpbmRvdy5yb290Vmll
d0NvbnRyb2xsZXIgcHJlc2VudFZpZXdDb250cm9sbGVyOmFsZXJ0IGFuaW1hdGVkOllFUyBjb21w
bGV0aW9uOm5pbF07Ci19CisgICAgW19wYXNzd29yZFZpZXcgc2V0VXNlckRpZEVudGVyUGFzc3dv
cmQ6W3JldGFpbmVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0oTlNTdHJpbmcgKnBhc3N3b3JkKSB7
CisgICAgICAgIGlmICghQ0dQREZEb2N1bWVudFVubG9ja1dpdGhQYXNzd29yZChyZXRhaW5lZFNl
bGYtPl9jZ1BERkRvY3VtZW50LmdldCgpLCBwYXNzd29yZC5VVEY4U3RyaW5nKSkgeworICAgICAg
ICAgICAgW3JldGFpbmVkU2VsZi0+X3Bhc3N3b3JkVmlldyBkaXNwbGF5UGFzc3dvcmRGYWlsdXJl
QWxlcnRdOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLS0gKEJPT0wpX3RyeVRv
VW5sb2NrV2l0aFBhc3N3b3JkOihOU1N0cmluZyAqKXBhc3N3b3JkCi17Ci0gICAgaWYgKENHUERG
RG9jdW1lbnRVbmxvY2tXaXRoUGFzc3dvcmQoX2NnUERGRG9jdW1lbnQuZ2V0KCksIFtwYXNzd29y
ZCBVVEY4U3RyaW5nXSkpIHsKLSAgICAgICAgW3NlbGYgX2hpZGVQYXNzd29yZEVudHJ5RmllbGRd
OwotICAgICAgICBbc2VsZiBfZGlkTG9hZFBERkRvY3VtZW50XTsKLSAgICAgICAgcmV0dXJuIFlF
UzsKLSAgICB9CisgICAgICAgIFtyZXRhaW5lZFNlbGYtPl9wYXNzd29yZFZpZXcgaGlkZV07Cisg
ICAgICAgIHJldGFpbmVkU2VsZi0+X3Bhc3N3b3JkVmlldyA9IG5pbDsKKyAgICAgICAgW3JldGFp
bmVkU2VsZiBfZGlkTG9hZFBERkRvY3VtZW50XTsKKyAgICB9XTsKIAotICAgIFtzZWxmIF9kaWRG
YWlsVG9VbmxvY2tdOwotICAgIHJldHVybiBOTzsKKyAgICBbX3Bhc3N3b3JkVmlldyBzaG93SW5W
aWV3OnNlbGZdOwogfQogCiAtICh2b2lkKXdpbGxNb3ZlVG9XaW5kb3c6KFVJV2luZG93ICopbmV3
V2luZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLUGFzc3dv
cmRWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLUGFzc3dvcmRWaWV3LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzZkM2NlNTlhODgzYTQ3MzQzZWI3MTVjMTMwZGIxZjFlNjhkM2UyOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tQYXNzd29yZFZp
ZXcuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFBMQVRGT1JNKElPUykKKwor
I2ltcG9ydCA8VUlLaXQvVUlLaXQuaD4KKworQGludGVyZmFjZSBXS1Bhc3N3b3JkVmlldyA6IFVJ
VmlldworCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhEb2N1bWVudE5hbWU6KE5TU3RyaW5nICop
ZG9jdW1lbnROYW1lIHNjcm9sbFZpZXc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXc7CistICh2
b2lkKXNob3dJblZpZXc6KFVJVmlldyAqKXZpZXc7CistICh2b2lkKWhpZGU7CistICh2b2lkKWRp
c3BsYXlQYXNzd29yZEZhaWx1cmVBbGVydDsKKworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkp
IHZvaWQgKF51c2VyRGlkRW50ZXJQYXNzd29yZCkoTlNTdHJpbmcgKik7CisKK0BlbmQKKworI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV0tQYXNzd29yZFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
UGFzc3dvcmRWaWV3Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1ZWJhYmFkMDk0MDQ2NGI0ZmViYjNhYjRmZDQ2
OGIxYjM5NTAxMmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLUGFzc3dvcmRWaWV3Lm1tCkBAIC0wLDAgKzEsMTU1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS1Bhc3N3b3JkVmlldy5oIgorCisjaWYgUExBVEZP
Uk0oSU9TKQorCisjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6
ZWRTdHJpbmdzLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworY29uc3QgQ0dGbG9hdCBwYXNzd29yZEVudHJ5RmllbGRQYWRkaW5n
ID0gMTA7CisKK0BpbnRlcmZhY2UgV0tQYXNzd29yZFZpZXcgKCkgPFVJRG9jdW1lbnRQYXNzd29y
ZFZpZXdEZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLUGFzc3dvcmRWaWV3IHsK
KyAgICBVSVNjcm9sbFZpZXcgKl9zY3JvbGxWaWV3OworICAgIFJldGFpblB0cjxVSURvY3VtZW50
UGFzc3dvcmRWaWV3PiBfcGFzc3dvcmRWaWV3OworICAgIENHRmxvYXQgX3NhdmVkTWluaW11bVpv
b21TY2FsZTsKKyAgICBDR0Zsb2F0IF9zYXZlZE1heGltdW1ab29tU2NhbGU7CisgICAgUmV0YWlu
UHRyPFVJQ29sb3I+IF9zYXZlZEJhY2tncm91bmRDb2xvcjsKK30KKworLSAoaW5zdGFuY2V0eXBl
KWluaXRXaXRoRG9jdW1lbnROYW1lOihOU1N0cmluZyAqKWRvY3VtZW50TmFtZSBzY3JvbGxWaWV3
OihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3Cit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0
aEZyYW1lOkNHUmVjdFplcm9dOworICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsK
KworICAgIF9zY3JvbGxWaWV3ID0gc2Nyb2xsVmlldzsKKyAgICBfcGFzc3dvcmRWaWV3ID0gYWRv
cHROUyhbW1VJRG9jdW1lbnRQYXNzd29yZFZpZXcgYWxsb2NdIGluaXRXaXRoRG9jdW1lbnROYW1l
OmRvY3VtZW50TmFtZV0pOworICAgIFtfcGFzc3dvcmRWaWV3IHNldFBhc3N3b3JkRGVsZWdhdGU6
c2VsZl07CisgICAgW3NlbGYgYWRkU3VidmlldzpfcGFzc3dvcmRWaWV3LmdldCgpXTsKKworICAg
IHJldHVybiBzZWxmOworfQorCistICh2b2lkKWxheW91dFN1YnZpZXdzCit7CisgICAgW3N1cGVy
IGxheW91dFN1YnZpZXdzXTsKKyAgICBbX3Bhc3N3b3JkVmlldyBzZXRGcmFtZTpzZWxmLmJvdW5k
c107CisgICAgX3Njcm9sbFZpZXcuY29udGVudFNpemUgPSBzZWxmLmJvdW5kcy5zaXplOworfQor
CistICh2b2lkKXNob3dJblZpZXc6KFVJVmlldyAqKXZpZXcKK3sKKyAgICBfc2F2ZWRNaW5pbXVt
Wm9vbVNjYWxlID0gX3Njcm9sbFZpZXcubWluaW11bVpvb21TY2FsZTsKKyAgICBfc2F2ZWRNYXhp
bXVtWm9vbVNjYWxlID0gX3Njcm9sbFZpZXcubWF4aW11bVpvb21TY2FsZTsKKyAgICBfc2F2ZWRC
YWNrZ3JvdW5kQ29sb3IgPSBfc2Nyb2xsVmlldy5iYWNrZ3JvdW5kQ29sb3I7CisgICAgX3Njcm9s
bFZpZXcubWluaW11bVpvb21TY2FsZSA9IDE7CisgICAgX3Njcm9sbFZpZXcubWF4aW11bVpvb21T
Y2FsZSA9IDE7CisgICAgX3Njcm9sbFZpZXcuYmFja2dyb3VuZENvbG9yID0gW1VJQ29sb3IgZ3Jv
dXBUYWJsZVZpZXdCYWNrZ3JvdW5kQ29sb3JdOworICAgIFt2aWV3IGFkZFN1YnZpZXc6c2VsZl07
Cit9CisKKy0gKHZvaWQpaGlkZQoreworICAgIF9zY3JvbGxWaWV3Lm1pbmltdW1ab29tU2NhbGUg
PSBfc2F2ZWRNaW5pbXVtWm9vbVNjYWxlOworICAgIF9zY3JvbGxWaWV3Lm1heGltdW1ab29tU2Nh
bGUgPSBfc2F2ZWRNYXhpbXVtWm9vbVNjYWxlOworICAgIF9zY3JvbGxWaWV3LmJhY2tncm91bmRD
b2xvciA9IF9zYXZlZEJhY2tncm91bmRDb2xvci5nZXQoKTsKKyAgICBbc2VsZiByZW1vdmVGcm9t
U3VwZXJ2aWV3XTsKK30KKworLSAodm9pZClkaXNwbGF5UGFzc3dvcmRGYWlsdXJlQWxlcnQKK3sK
KyAgICBbW19wYXNzd29yZFZpZXcgcGFzc3dvcmRGaWVsZF0gc2V0VGV4dDpAIiJdOworICAgIFVJ
QWxlcnRDb250cm9sbGVyICphbGVydCA9IFtVSUFsZXJ0Q29udHJvbGxlciBhbGVydENvbnRyb2xs
ZXJXaXRoVGl0bGU6V0VCX1VJX1NUUklORygiVGhlIGRvY3VtZW50IGNvdWxkIG5vdCBiZSBvcGVu
ZWQgd2l0aCB0aGF0IHBhc3N3b3JkLiIsICJkb2N1bWVudCBwYXNzd29yZCBmYWlsdXJlIGFsZXJ0
IG1lc3NhZ2UiKSBtZXNzYWdlOkAiIiBwcmVmZXJyZWRTdHlsZTpVSUFsZXJ0Q29udHJvbGxlclN0
eWxlQWxlcnRdOworCisgICAgVUlBbGVydEFjdGlvbiAqZGVmYXVsdEFjdGlvbiA9IFtVSUFsZXJ0
QWN0aW9uIGFjdGlvbldpdGhUaXRsZTpXRUJfVUlfU1RSSU5HX0tFWSgiT0siLCAiT0sgKGRvY3Vt
ZW50IHBhc3N3b3JkIGZhaWx1cmUgYWxlcnQpIiwgIk9LIGJ1dHRvbiBsYWJlbCBpbiBkb2N1bWVu
dCBwYXNzd29yZCBmYWlsdXJlIGFsZXJ0Iikgc3R5bGU6VUlBbGVydEFjdGlvblN0eWxlRGVmYXVs
dCBoYW5kbGVyOltdKFVJQWxlcnRBY3Rpb24gKikgeyB9XTsKKworICAgIFthbGVydCBhZGRBY3Rp
b246ZGVmYXVsdEFjdGlvbl07CisKKyAgICBbc2VsZi53aW5kb3cucm9vdFZpZXdDb250cm9sbGVy
IHByZXNlbnRWaWV3Q29udHJvbGxlcjphbGVydCBhbmltYXRlZDpZRVMgY29tcGxldGlvbjpuaWxd
OworfQorCistICh2b2lkKV9rZXlib2FyZERpZFNob3c6KE5TTm90aWZpY2F0aW9uICopbm90aWZp
Y2F0aW9uCit7CisgICAgVUlUZXh0RmllbGQgKnBhc3N3b3JkRmllbGQgPSBbX3Bhc3N3b3JkVmll
dyBwYXNzd29yZEZpZWxkXTsKKyAgICBpZiAoIXBhc3N3b3JkRmllbGQuaXNFZGl0aW5nKQorICAg
ICAgICByZXR1cm47CisKKyAgICBDR1JlY3Qga2V5Ym9hcmRSZWN0ID0gW1VJUGVyaXBoZXJhbEhv
c3QgdmlzaWJsZVBlcmlwaGVyYWxGcmFtZV07CisgICAgaWYgKENHUmVjdElzRW1wdHkoa2V5Ym9h
cmRSZWN0KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgVUlXaW5kb3cgKndpbmRvdyA9IF9zY3Jv
bGxWaWV3LndpbmRvdzsKKyAgICBrZXlib2FyZFJlY3QgPSBbd2luZG93IGNvbnZlcnRSZWN0Omtl
eWJvYXJkUmVjdCBmcm9tV2luZG93Om5pbF07CisgICAga2V5Ym9hcmRSZWN0ID0gW19zY3JvbGxW
aWV3IGNvbnZlcnRSZWN0OmtleWJvYXJkUmVjdCBmcm9tVmlldzp3aW5kb3ddOworCisgICAgQ0dS
ZWN0IHBhc3N3b3JkRmllbGRGcmFtZSA9IFtwYXNzd29yZEZpZWxkIGNvbnZlcnRSZWN0OnBhc3N3
b3JkRmllbGQuYm91bmRzIHRvVmlldzpfc2Nyb2xsVmlld107CisKKyAgICBDR1NpemUgY29udGVu
dFNpemUgPSBbX3Bhc3N3b3JkVmlldyBib3VuZHNdLnNpemU7CisgICAgY29udGVudFNpemUuaGVp
Z2h0ICs9IENHUmVjdEdldEhlaWdodChrZXlib2FyZFJlY3QpOworICAgIFtfc2Nyb2xsVmlldyBz
ZXRDb250ZW50U2l6ZTpjb250ZW50U2l6ZV07CisKKyAgICBpZiAoQ0dSZWN0SW50ZXJzZWN0c1Jl
Y3QocGFzc3dvcmRGaWVsZEZyYW1lLCBrZXlib2FyZFJlY3QpKSB7CisgICAgICAgIENHRmxvYXQg
eURlbHRhID0gQ0dSZWN0R2V0TWF4WShwYXNzd29yZEZpZWxkRnJhbWUpIC0gQ0dSZWN0R2V0TWlu
WShrZXlib2FyZFJlY3QpOworCisgICAgICAgIENHUG9pbnQgY29udGVudE9mZnNldCA9IF9zY3Jv
bGxWaWV3LmNvbnRlbnRPZmZzZXQ7CisgICAgICAgIGNvbnRlbnRPZmZzZXQueSArPSB5RGVsdGEg
KyBwYXNzd29yZEVudHJ5RmllbGRQYWRkaW5nOworCisgICAgICAgIFtfc2Nyb2xsVmlldyBzZXRD
b250ZW50T2Zmc2V0OmNvbnRlbnRPZmZzZXQgYW5pbWF0ZWQ6WUVTXTsKKyAgICB9Cit9CisKKyNw
cmFnbWEgbWFyayBVSURvY3VtZW50UGFzc3dvcmRWaWV3RGVsZWdhdGUKKworLSAodm9pZCl1c2Vy
RGlkRW50ZXJQYXNzd29yZDooTlNTdHJpbmcgKilwYXNzd29yZCBmb3JQYXNzd29yZFZpZXc6KFVJ
RG9jdW1lbnRQYXNzd29yZFZpZXcgKilwYXNzd29yZFZpZXcKK3sKKyAgICBSZXRhaW5QdHI8V0tQ
YXNzd29yZFZpZXc+IHByb3RlY3RlZFNlbGYoc2VsZik7CisgICAgaWYgKF91c2VyRGlkRW50ZXJQ
YXNzd29yZCkKKyAgICAgICAgX3VzZXJEaWRFbnRlclBhc3N3b3JkKHBhc3N3b3JkKTsKK30KKwor
LSAodm9pZClkaWRCZWdpbkVkaXRpbmdQYXNzd29yZDooVUlUZXh0RmllbGQgKilwYXNzd29yZEZp
ZWxkIGluVmlldzooVUlEb2N1bWVudFBhc3N3b3JkVmlldyAqKXBhc3N3b3JkVmlldworeworICAg
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBz
ZWxlY3RvcjpAc2VsZWN0b3IoX2tleWJvYXJkRGlkU2hvdzopIG5hbWU6VUlLZXlib2FyZERpZFNo
b3dOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07Cit9CisKKy0gKHZvaWQpZGlkRW5kRWRpdGluZ1Bh
c3N3b3JkOihVSVRleHRGaWVsZCAqKXBhc3N3b3JkRmllbGQgaW5WaWV3OihVSURvY3VtZW50UGFz
c3dvcmRWaWV3ICopcGFzc3dvcmRWaWV3Cit7CisgICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRT
aXplOltfcGFzc3dvcmRWaWV3IGZyYW1lXS5zaXplXTsKKyAgICBbX3Njcm9sbFZpZXcgc2V0Q29u
dGVudE9mZnNldDpDR1BvaW50TWFrZSgtX3Njcm9sbFZpZXcuY29udGVudEluc2V0LmxlZnQsIC1f
c2Nyb2xsVmlldy5jb250ZW50SW5zZXQudG9wKSBhbmltYXRlZDpZRVNdOworCisgICAgW1tOU05v
dGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6
VUlLZXlib2FyZERpZFNob3dOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07Cit9CisKK0BlbmQKKwor
I2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiYmNkNzk2MWFmNGIyZTk4ZWRmNzU5N2Q0M2Y2
MmZmMDI4ZDE0Y2I2Li5jNjcyZTM2YzI4NGRkNjQ4NmU5YTk3OTgyMjc2YmUxOWY5Mjk3MjY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xMzM4LDYgKzEzMzgsOCBAQAogCQlBMTE4QTlFRjE5MDdBRDZGMDBGN0M5MkIgLyogUXVp
Y2tMb29rRG9jdW1lbnREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMTE4QTlFRDE5MDdBRDZGMDBGN0M5MkIgLyogUXVpY2tMb29rRG9jdW1lbnRE
YXRhLmggKi87IH07CiAJCUExMThBOUYyMTkwOEI4RUEwMEY3QzkyQiAvKiBfV0tOU0ZpbGVNYW5h
Z2VyRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTExOEE5RjAxOTA4QjhFQTAwRjdDOTJCIC8qIF9XS05TRmlsZU1hbmFnZXJFeHRyYXMubW0g
Ki87IH07CiAJCUExMThBOUYzMTkwOEI4RUEwMEY3QzkyQiAvKiBfV0tOU0ZpbGVNYW5hZ2VyRXh0
cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE4
QTlGMTE5MDhCOEVBMDBGN0M5MkIgLyogX1dLTlNGaWxlTWFuYWdlckV4dHJhcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUExNUVFREU1MUUzMDFD
RUUwMDAwNjlCMCAvKiBXS1Bhc3N3b3JkVmlldy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExNUVFREUzMUUzMDFDRUUwMDAwNjlCMCAvKiBXS1Bhc3N3
b3JkVmlldy5tbSAqLzsgfTsKKwkJQTE1RUVERTYxRTMwMUNFRTAwMDA2OUIwIC8qIFdLUGFzc3dv
cmRWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MTVFRURFNDFFMzAxQ0VFMDAwMDY5QjAgLyogV0tQYXNzd29yZFZpZXcuaCAqLzsgfTsKIAkJQTE4
MkQ1QjQxQkU2QkQyNTAwODdBN0NDIC8qIEFjY2Vzc2liaWxpdHlJT1MubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTgyRDVCMjFCRTZCRDI1MDA4N0E3
Q0MgLyogQWNjZXNzaWJpbGl0eUlPUy5tbSAqLzsgfTsKIAkJQTE4MkQ1QjUxQkU2QkQyNTAwODdB
N0NDIC8qIEFjY2Vzc2liaWxpdHlJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEExODJENUIzMUJFNkJEMjUwMDg3QTdDQyAvKiBBY2Nlc3NpYmlsaXR5
SU9TLmggKi87IH07CiAJCUExOUREM0MwMUQwN0QxNjgwMEFDODIzQiAvKiBfV0tXZWJWaWV3UHJp
bnRGb3JtYXR0ZXJJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTE5REQzQkYxRDA3RDE2ODAwQUM4MjNCIC8qIF9XS1dlYlZpZXdQcmludEZv
cm1hdHRlckludGVybmFsLmggKi87IH07CkBAIC0zNDkwLDYgKzM0OTIsOCBAQAogCQlBMTE4QTlF
RDE5MDdBRDZGMDBGN0M5MkIgLyogUXVpY2tMb29rRG9jdW1lbnREYXRhLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFF1aWNrTG9va0RvY3VtZW50RGF0YS5oOyBwYXRoID0gaW9z
L1F1aWNrTG9va0RvY3VtZW50RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
MTE4QTlGMDE5MDhCOEVBMDBGN0M5MkIgLyogX1dLTlNGaWxlTWFuYWdlckV4dHJhcy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS05TRmlsZU1hbmFnZXJFeHRy
YXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMThBOUYxMTkwOEI4RUEwMEY3
QzkyQiAvKiBfV0tOU0ZpbGVNYW5hZ2VyRXh0cmFzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IF9XS05TRmlsZU1hbmFnZXJFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTE1RUVERTMxRTMwMUNFRTAwMDA2OUIwIC8qIFdLUGFzc3dvcmRWaWV3Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tQYXNzd29yZFZpZXcubW07
IHBhdGggPSBpb3MvV0tQYXNzd29yZFZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUExNUVFREU0MUUzMDFDRUUwMDAwNjlCMCAvKiBXS1Bhc3N3b3JkVmlldy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS1Bhc3N3b3JkVmlldy5oOyBwYXRoID0gaW9zL1dL
UGFzc3dvcmRWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExODJENUIyMUJF
NkJEMjUwMDg3QTdDQyAvKiBBY2Nlc3NpYmlsaXR5SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eUlPUy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTE4MkQ1QjMxQkU2QkQyNTAwODdBN0NDIC8qIEFjY2Vzc2liaWxpdHlJ
T1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eUlPUy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTlERDNCRjFEMDdEMTY4MDBBQzgyM0Ig
LyogX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUxNTIsNiArNTE1Niw4IEBACiAJCQkJMkQ2QUI1NDAx
OTJCMUM0QTAwM0E5RkQxIC8qIFdLUERGUGFnZU51bWJlckluZGljYXRvci5tbSAqLywKIAkJCQky
REExRTRGQzE4QzAyQjZBMDBEQkM5MjkgLyogV0tQREZWaWV3LmggKi8sCiAJCQkJMkRBMUU0RkQx
OEMwMkI2QTAwREJDOTI5IC8qIFdLUERGVmlldy5tbSAqLywKKwkJCQlBMTVFRURFNDFFMzAxQ0VF
MDAwMDY5QjAgLyogV0tQYXNzd29yZFZpZXcuaCAqLywKKwkJCQlBMTVFRURFMzFFMzAxQ0VFMDAw
MDY5QjAgLyogV0tQYXNzd29yZFZpZXcubW0gKi8sCiAJCQkJMEZDQjRFNDQxOEJCRTA0NDAwMEZD
RkM5IC8qIFdLU2Nyb2xsVmlldy5oICovLAogCQkJCTBGQ0I0RTQ1MThCQkUwNDQwMDBGQ0ZDOSAv
KiBXS1Njcm9sbFZpZXcubW0gKi8sCiAJCQkJMjZGMTBCRTYxOTE4N0UyRTAwMUQwRTY4IC8qIFdL
U3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXplci5oICovLApAQCAtODAwNiw2ICs4MDEy
LDcgQEAKIAkJCQkxQUEzRDc1QzE2NTFCNDRGMDA4NzEzRDAgLyogUmVtb3RlTGF5ZXJUcmVlSG9z
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRERTBBRkExODI5OENDOTAwRjk3RUFBIC8qIFJlbW90
ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGMjY0QTAx
QTFGRjlDQzAwMUZFNzU5IC8qIFJlbW90ZUxheWVyVHJlZVNjcm9sbGluZ1BlcmZvcm1hbmNlRGF0
YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTE1RUVERTYxRTMwMUNFRTAwMDA2OUIwIC8qIFdLUGFz
c3dvcmRWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUYxQUM2QzE2NTE3NTlFMDBDMTdEN0Yg
LyogUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQjc4
NDcxMTYzRjI0NjkwMDA3QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUE1NzA0RkMxQkUxNzUxMTAwODc0QUYxIC8qIFJlbW90ZU9iamVjdEludm9j
YXRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtOTg4OSw2ICs5ODk2LDcgQEAKIAkJCQlDNTQyNTZC
NjE4QkVDMThDMDBERTQxNzkgLyogV0tGb3JtSW5wdXRDb250cm9sLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQzU0MjU2QjkxOEJFQzE4QzAwREU0MTc5IC8qIFdLRm9ybVBvcG92ZXIubW0gaW4gU291
cmNlcyAqLywKIAkJCQlDNTcxOTNCRTE4QzE0QTQ0MDAyRDBGMTIgLyogV0tGb3JtU2VsZWN0Q29u
dHJvbC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUExNUVFREU1MUUzMDFDRUUwMDAwNjlCMCAvKiBX
S1Bhc3N3b3JkVmlldy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUM1NUNCNUI4MThDMkE1RDYwMENB
ODFFMSAvKiBXS0Zvcm1TZWxlY3RQaWNrZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlDNTVDQjVC
NzE4QzI2OUNGMDBDQTgxRTEgLyogV0tGb3JtU2VsZWN0UG9wb3Zlci5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUJDRTQ2OTU5MTIxNEVERjQwMDBCOThFQiAvKiBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVu
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299271</attachid>
            <date>2017-01-19 14:54:06 -0800</date>
            <delta_ts>2017-01-19 16:25:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167192-20170119145215.patch</filename>
            <type>text/plain</type>
            <size>26110</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FkYTk1MTk2OGRjNzk0
YzBmYzU3ZWViOGQ5OGNmNzI5NjEyZDgxNi4uNjQ3OGU1NmMzMjM0MDllMmE3YTcwOGFhZjQyMjE2
ZjIxNWMwZjkxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE3LTAxLTE4ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNb3ZlIHRoZSBQREYg
cGFzc3dvcmQgdmlldyBpbnRvIGl0cyBvd24gY2xhc3MgZm9yIHJldXNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcxOTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEVuZ2xpc2gubHByb2ovTG9jYWxp
emFibGUuc3RyaW5nczogVXBkYXRlZCB0aGUgZmFpbHVyZSBhbGVydCBzdHJpbmdzIHRvIG5vdCBi
ZSBzcGVjaWZpYyB0byBQREZzLgorCiAyMDE3LTAxLTE4ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRk
YWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMTA4NDgu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggOGI4ZjRlYmU0YjhhZTdlMjM3NGQyZjc5NGE5Y2U4ZGI0YWQ0Y2Y0OC4u
ZmJjYzEzY2E3ZGVlMmI3YzA0NzZiZGM1MjkwODhlZWNlMTJjZDRlZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQ1IEBACisyMDE3LTAxLTE4ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4K
KworICAgICAgICBbaU9TXSBNb3ZlIHRoZSBQREYgcGFzc3dvcmQgdmlldyBpbnRvIGl0cyBvd24g
Y2xhc3MgZm9yIHBvc3NpYmxlIHJldXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjcxOTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lmg6IFN0b3BwZWQgY29u
Zm9ybWluZyB0byBVSURvY3VtZW50UGFzc3dvcmRWaWV3RGVsZWdhdGUuCisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9XS1BERlZpZXcubW06IENoYW5nZWQgX3Bhc3N3b3JkVmlldyB0byBhIFdLUGFz
c3dvcmRWaWV3LgorICAgICAgICAoLVtXS1BERlZpZXcgX3Bhc3N3b3JkVmlld0ZyYW1lXSk6IFJl
dHVybnMgdGhlIGZyYW1lIHRvIHNldCBvbiBfcGFzc3dvcmRWaWV3LgorICAgICAgICAoLVtXS1BE
RlZpZXcgX3VwZGF0ZVBhc3N3b3JkRW50cnlGaWVsZF0pOiBSZW1vdmVkLgorICAgICAgICAoLVtX
S1BERlZpZXcgX3Nob3dQYXNzd29yZEVudHJ5RmllbGRdKTogQ3JlYXRlZCBhIFdLUGFzc3dvcmRW
aWV3LCBzZXQgYSBsYW1iZGEgb24gaXRzCisgICAgICAgIHVzZXJEaWRFbnRlclBhc3N3b3JkIHBy
b3BlcnR5IHRvIGRvIHRoZSB3b3JrIHByZXZpb3VzbHkgZG9uZSBpbiAtX3RyeVRvVW5sb2NrV2l0
aFBhc3N3b3JkOiwKKyAgICAgICAgYW5kIHNob3dlZCB0aGUgcGFzc3dvcmQgdmlldy4KKyAgICAg
ICAgKC1bV0tQREZWaWV3IF9rZXlib2FyZERpZFNob3c6XSk6IE1vdmVkIHRvIFdLUGFzc3dvcmRW
aWV3LgorICAgICAgICAoLVtXS1BERlZpZXcgX2hpZGVQYXNzd29yZEVudHJ5RmllbGRdKTogRGVs
ZXRlZC4gVGhlIHVzZXJEaWRFbnRlclBhc3N3b3JkIGxhbWJkYSBub3cgY2FsbHMKKyAgICAgICAg
LVtXS1Bhc3N3b3JkVmlldyBoaWRlXSB3aGVuIHRoZSBkb2N1bWVudCBpcyB1bmxvY2tlZC4KKyAg
ICAgICAgKC1bV0tQREZWaWV3IHVzZXJEaWRFbnRlclBhc3N3b3JkOmZvclBhc3N3b3JkVmlldzpd
KTogTW92ZWQgdG8gV0tQYXNzd29yZFZpZXcuCisgICAgICAgICgtW1dLUERGVmlldyBkaWRCZWdp
bkVkaXRpbmdQYXNzd29yZDppblZpZXc6XSk6IERpdHRvLgorICAgICAgICAoLVtXS1BERlZpZXcg
ZGlkRW5kRWRpdGluZ1Bhc3N3b3JkOmluVmlldzpdKTogRGl0dG8uCisgICAgICAgICgtW1dLUERG
VmlldyBfZGlkRmFpbFRvVW5sb2NrXSk6IERpdHRvLgorICAgICAgICAoLVtXS1BERlZpZXcgX3Ry
eVRvVW5sb2NrV2l0aFBhc3N3b3JkOl0pOiBNb3ZlZCBpbnRvIF9wYXNzd29yZFZpZXcncyB1c2Vy
RGlkRW50ZXJQYXNzd29yZCBsYW1iZGEuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1Bhc3N3
b3JkVmlldy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLUGFzc3dvcmRWaWV3
Lm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV0tQYXNzd29yZFZpZXcgaW5pdFdpdGhGcmFtZTpkb2N1
bWVudE5hbWU6XSk6IENyZWF0ZWQgYSBVSURvY3VtZW50UGFzc3dvcmRWaWV3IHdpdGgKKyAgICAg
ICAgZG9jdW1lbnROYW1lLCBzZXQgc2VsZiBhcyBpdHMgcGFzc3dvcmREZWxlZ2F0ZSwgYW5kIGFk
ZGVkIGl0IGFzIGEgc3Vidmlldy4KKyAgICAgICAgKC1bV0tQYXNzd29yZFZpZXcgbGF5b3V0U3Vi
dmlld3NdKTogVXBkYXRlZCBfc2Nyb2xsVmlldydzIGNvbnRlbnRTaXplIGlmIHdlIGFyZSBkaXNw
bGF5aW5nCisgICAgICAgIHRoZSB2aWV3LgorICAgICAgICAoLVtXS1Bhc3N3b3JkVmlldyBkaXNw
bGF5SW5Db250ZW50VmlldzpdKTogU2F2ZWQgdGhlIHNjcm9sbCB2aWV3J3MgcHJldmlvdXMgbWlu
aW11bS9tYXhpbXVtCisgICAgICAgIHpvb20gc2NhbGUgYW5kIGNvbG9yLCBzZXQgbmV3IHZhbHVl
cyBmb3IgbWluaW11bS9tYXhpbXVtIHpvb20gc2NhbGUgYW5kIGNvbG9yLCBhbmQgYWRkZWQKKyAg
ICAgICAgc2VsZiBhcyBhIHN1YnZpZXcgb2YgY29udGVudFZpZXcuCisgICAgICAgICgtW1dLUGFz
c3dvcmRWaWV3IGhpZGVdKTogUmVzdG9yZWQgdGhlIHNhdmVkIG1pbmltdW0vbWF4aW11bSB6b29t
IHNjYWxlIGFuZCBjb2xvciBvbiB0aGUKKyAgICAgICAgc2Nyb2xsIHZpZXcgYW5kIHJlbW92ZWQg
c2VsZiBmcm9tIGl0cyBzdXBlcnZpZXcuCisgICAgICAgICgtW1dLUGFzc3dvcmRWaWV3IGRpc3Bs
YXlQYXNzd29yZEZhaWx1cmVBbGVydF0pOiBEaXNwbGF5ZWQgdGhlIGFsZXJ0IHByZXZpb3VzbHkg
c2hvd24gYnkKKyAgICAgICAgLVtXS1BERlZpZXcgX2RpZEZhaWxUb1VubG9ja10uCisgICAgICAg
ICgtW1dLUGFzc3dvcmRWaWV3IF9rZXlib2FyZERpZFNob3c6XSk6IE1vdmVkIGZyb20gV0tQREZW
aWV3LgorICAgICAgICAoLVtXS1Bhc3N3b3JkVmlldyB1c2VyRGlkRW50ZXJQYXNzd29yZDpmb3JQ
YXNzd29yZFZpZXc6XSk6IFJldGFpbmVkIHNlbGYgYW5kIGNhbGxlZCB0aGUKKyAgICAgICAgX3Vz
ZXJEaWRFbnRlclBhc3N3b3JkIGJsb2NrIHdpdGggdGhlIHBhc3N3b3JkLgorICAgICAgICAoLVtX
S1Bhc3N3b3JkVmlldyBkaWRCZWdpbkVkaXRpbmdQYXNzd29yZDppblZpZXc6XSk6IE1vdmVkIGZy
b20gV0tQREZWaWV3LgorICAgICAgICAoLVtXS1Bhc3N3b3JkVmlldyBkaWRFbmRFZGl0aW5nUGFz
c3dvcmQ6aW5WaWV3Ol0pOiBEaXR0by4KKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisKIDIwMTctMDEtMTggIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBs
ZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIxMDg0OC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncyBi
L1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwppbmRleCBj
NGFiNTMyYmFmYjM5MTY1MTM3NDdhMzM3N2MwNmY4MTZkYmNiNjVmLi4yNzMxM2E5ZjM3NWQ5OTA1
MTdiNmVhZjAwOGZlYWVlYjY2OWJiYzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Fbmds
aXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKKysrIGIvU291cmNlL1dlYkNvcmUvRW5nbGlz
aC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCkBAIC00MDMsOCArNDAzLDggQEAKIC8qIE9wdGlv
biBpbiBzZWdtZW50ZWQgY29udHJvbCBmb3IgaW5zZXJ0aW5nIGEgbnVtYmVyZWQgbGlzdCBpbiB0
ZXh0IGVkaXRpbmcgKi8KICJOdW1iZXJlZCBsaXN0IiA9ICJOdW1iZXJlZCBsaXN0IjsKIAotLyog
T0sgYnV0dG9uIGxhYmVsIGluIFBERiBwYXNzd29yZCBmYWlsdXJlIGFsZXJ0ICovCi0iT0sgKFBE
RiBwYXNzd29yZCBmYWlsdXJlIGFsZXJ0KSIgPSAiT0siOworLyogT0sgYnV0dG9uIGxhYmVsIGlu
IGRvY3VtZW50IHBhc3N3b3JkIGZhaWx1cmUgYWxlcnQgKi8KKyJPSyAoZG9jdW1lbnQgcGFzc3dv
cmQgZmFpbHVyZSBhbGVydCkiID0gIk9LIjsKIAogLyogTWVudSBpdGVtIGxhYmVsIGZvciB0aGUg
dHJhY2sgdGhhdCByZXByZXNlbnRzIGRpc2FibGluZyBjbG9zZWQgY2FwdGlvbnMgKi8KICJPZmYi
ID0gIk9mZiI7CkBAIC02NjEsNyArNjYxLDcgQEAKIC8qIFdlYktpdEVycm9yR2VvbG9jYXRpb25M
b2NhdGlvblVua25vd24gZGVzY3JpcHRpb24gKi8KICJUaGUgY3VycmVudCBsb2NhdGlvbiBjYW5u
b3QgYmUgZm91bmQuIiA9ICJUaGUgY3VycmVudCBsb2NhdGlvbiBjYW5ub3QgYmUgZm91bmQuIjsK
IAotLyogUERGIHBhc3N3b3JkIGZhaWx1cmUgYWxlcnQgbWVzc2FnZSAqLworLyogZG9jdW1lbnQg
cGFzc3dvcmQgZmFpbHVyZSBhbGVydCBtZXNzYWdlICovCiAiVGhlIGRvY3VtZW50IGNvdWxkIG5v
dCBiZSBvcGVuZWQgd2l0aCB0aGF0IHBhc3N3b3JkLiIgPSAiVGhlIGRvY3VtZW50IGNvdWxkIG5v
dCBiZSBvcGVuZWQgd2l0aCB0aGF0IHBhc3N3b3JkLiI7CiAKIC8qIFdlYktpdEVycm9yQ2Fubm90
RmluZFBsdWdpbiBkZXNjcmlwdGlvbiAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XS1BERlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tQ
REZWaWV3LmgKaW5kZXggMzZkMzdmN2E3YjNlODQ1MmY0ODJjOTQ3MjFiYmM0NDRhYmFkNzViYS4u
ZjcwNDU1YjRiNzkxMDVlODljYTE1ZTI3YWQ4YTFlZjc3MTI0ODY5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dLUERGVmlldy5oCkBAIC0yNiwxMSArMjYsMTAgQEAKICNpZiBQTEFU
Rk9STShJT1MpCiAKICNpbXBvcnQgIkNvcmVQREZTUEkuaCIKLSNpbXBvcnQgIlVJS2l0U1BJLmgi
CiAjaW1wb3J0ICJXS0FjdGlvblNoZWV0QXNzaXN0YW50LmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdD
b250ZW50UHJvdmlkZXIuaCIKIAotQGludGVyZmFjZSBXS1BERlZpZXcgOiBVSVZpZXcgPFdLV2Vi
Vmlld0NvbnRlbnRQcm92aWRlciwgVUlQREZQYWdlVmlld0RlbGVnYXRlLCBVSVBERkFubm90YXRp
b25Db250cm9sbGVyRGVsZWdhdGUsIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnREZWxlZ2F0ZSwgVUlE
b2N1bWVudFBhc3N3b3JkVmlld0RlbGVnYXRlPgorQGludGVyZmFjZSBXS1BERlZpZXcgOiBVSVZp
ZXcgPFdLV2ViVmlld0NvbnRlbnRQcm92aWRlciwgVUlQREZQYWdlVmlld0RlbGVnYXRlLCBVSVBE
RkFubm90YXRpb25Db250cm9sbGVyRGVsZWdhdGUsIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnREZWxl
Z2F0ZT4KIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqc3VnZ2Vz
dGVkRmlsZW5hbWU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUERGRG9jdW1l
bnRSZWYgcGRmRG9jdW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLUERGVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3
Lm1tCmluZGV4IGUwMzZjZjIxZjgwNzhmZjBmMzQ5YmYxZDcyNGNhNTQzNWNlMzRjNTcuLjFmN2Qz
NjBmZjIyZDMxYjBhZjQwMzQ1OTUwMDEzNjBkYzBjY2VmMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0ICJTZXNz
aW9uU3RhdGUuaCIKICNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0ICJXS1BERlBhZ2VOdW1i
ZXJJbmRpY2F0b3IuaCIKKyNpbXBvcnQgIldLUGFzc3dvcmRWaWV3LmgiCiAjaW1wb3J0ICJXS1dl
YlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2Vha09iakNQdHIuaCIKICNpbXBvcnQgIldlYlBh
Z2VQcm94eS5oIgpAQCAtNTQsOCArNTUsNiBAQCBjb25zdCBDR0Zsb2F0IHBkZlBhZ2VNYXJnaW4g
PSA4OwogY29uc3QgQ0dGbG9hdCBwZGZNaW5pbXVtWm9vbVNjYWxlID0gMTsKIGNvbnN0IENHRmxv
YXQgcGRmTWF4aW11bVpvb21TY2FsZSA9IDU7CiAKLWNvbnN0IENHRmxvYXQgcGFzc3dvcmRFbnRy
eUZpZWxkUGFkZGluZyA9IDEwOwotCiBjb25zdCBmbG9hdCBvdmVyZHJhd0hlaWdodE11bHRpcGxp
ZXIgPSAxLjU7CiAKIHN0YXRpYyBjb25zdCBDR0Zsb2F0IHNtYXJ0TWFnbmlmaWNhdGlvbkVsZW1l
bnRQYWRkaW5nID0gMC4wNTsKQEAgLTc3LDcgKzc2LDcgQEAgQGltcGxlbWVudGF0aW9uIFdLUERG
VmlldyB7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBfc3VnZ2VzdGVkRmlsZW5hbWU7CiAgICAg
UmV0YWluUHRyPFdLUERGUGFnZU51bWJlckluZGljYXRvcj4gX3BhZ2VOdW1iZXJJbmRpY2F0b3I7
CiAKLSAgICBSZXRhaW5QdHI8VUlEb2N1bWVudFBhc3N3b3JkVmlldz4gX3Bhc3N3b3JkVmlldzsK
KyAgICBSZXRhaW5QdHI8V0tQYXNzd29yZFZpZXc+IF9wYXNzd29yZFZpZXc7CiAKICAgICBWZWN0
b3I8UERGUGFnZUluZm8+IF9wYWdlczsKICAgICB1bnNpZ25lZCBfY2VudGVyUGFnZU51bWJlcjsK
QEAgLTIwNyw3ICsyMDYsNyBAQCAtICh2b2lkKXdlYl9zZXRDb250ZW50UHJvdmlkZXJEYXRhOihO
U0RhdGEgKilkYXRhIHN1Z2dlc3RlZEZpbGVuYW1lOihOU1N0cmluZyAqKQogLSAodm9pZCl3ZWJf
c2V0TWluaW11bVNpemU6KENHU2l6ZSlzaXplCiB7CiAgICAgaWYgKF9wYXNzd29yZFZpZXcpIHsK
LSAgICAgICAgW3NlbGYgX3VwZGF0ZVBhc3N3b3JkRW50cnlGaWVsZF07CisgICAgICAgIFtfcGFz
c3dvcmRWaWV3IHNldEZyYW1lOltzZWxmIF9wYXNzd29yZFZpZXdGcmFtZV1dOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCkBAIC03NDcsMTA2ICs3NDYsMjggQEAgLSAoUmV0YWluUHRyPE5TQXJy
YXk+KWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0
YW50IGQKIAogI3ByYWdtYSBtYXJrIFBhc3N3b3JkIHByb3RlY3Rpb24gVUkKIAotLSAodm9pZClf
dXBkYXRlUGFzc3dvcmRFbnRyeUZpZWxkCi17Ci0gICAgW19wYXNzd29yZFZpZXcgc2V0RnJhbWU6
Q0dSZWN0TWFrZSgwLCAwLCBfd2ViVmlldy5ib3VuZHMuc2l6ZS53aWR0aCwgX3dlYlZpZXcuYm91
bmRzLnNpemUuaGVpZ2h0KV07Ci0gICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRTaXplOltfcGFz
c3dvcmRWaWV3IGJvdW5kc10uc2l6ZV07Ci19Ci0KLS0gKHZvaWQpX2tleWJvYXJkRGlkU2hvdzoo
TlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KKy0gKENHUmVjdClfcGFzc3dvcmRWaWV3RnJh
bWUKIHsKLSAgICBVSVRleHRGaWVsZCAqcGFzc3dvcmRGaWVsZCA9IFtfcGFzc3dvcmRWaWV3IHBh
c3N3b3JkRmllbGRdOwotICAgIGlmICghcGFzc3dvcmRGaWVsZC5pc0VkaXRpbmcpCi0gICAgICAg
IHJldHVybjsKLQotICAgIENHUmVjdCBrZXlib2FyZFJlY3QgPSBbVUlQZXJpcGhlcmFsSG9zdCB2
aXNpYmxlUGVyaXBoZXJhbEZyYW1lXTsKLSAgICBpZiAoQ0dSZWN0SXNFbXB0eShrZXlib2FyZFJl
Y3QpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBVSVdpbmRvdyAqd2luZG93ID0gX3Njcm9sbFZp
ZXcud2luZG93OwotICAgIGtleWJvYXJkUmVjdCA9IFt3aW5kb3cgY29udmVydFJlY3Q6a2V5Ym9h
cmRSZWN0IGZyb21XaW5kb3c6bmlsXTsKLSAgICBrZXlib2FyZFJlY3QgPSBbX3Njcm9sbFZpZXcg
Y29udmVydFJlY3Q6a2V5Ym9hcmRSZWN0IGZyb21WaWV3OndpbmRvd107Ci0KLSAgICBDR1JlY3Qg
cGFzc3dvcmRGaWVsZEZyYW1lID0gW3Bhc3N3b3JkRmllbGQgY29udmVydFJlY3Q6cGFzc3dvcmRG
aWVsZC5ib3VuZHMgdG9WaWV3Ol9zY3JvbGxWaWV3XTsKLQotICAgIENHU2l6ZSBjb250ZW50U2l6
ZSA9IFtfcGFzc3dvcmRWaWV3IGJvdW5kc10uc2l6ZTsKLSAgICBjb250ZW50U2l6ZS5oZWlnaHQg
Kz0gQ0dSZWN0R2V0SGVpZ2h0KGtleWJvYXJkUmVjdCk7Ci0gICAgW19zY3JvbGxWaWV3IHNldENv
bnRlbnRTaXplOmNvbnRlbnRTaXplXTsKLQotICAgIGlmIChDR1JlY3RJbnRlcnNlY3RzUmVjdChw
YXNzd29yZEZpZWxkRnJhbWUsIGtleWJvYXJkUmVjdCkpIHsKLSAgICAgICAgQ0dGbG9hdCB5RGVs
dGEgPSBDR1JlY3RHZXRNYXhZKHBhc3N3b3JkRmllbGRGcmFtZSkgLSBDR1JlY3RHZXRNaW5ZKGtl
eWJvYXJkUmVjdCk7Ci0KLSAgICAgICAgQ0dQb2ludCBjb250ZW50T2Zmc2V0ID0gX3Njcm9sbFZp
ZXcuY29udGVudE9mZnNldDsKLSAgICAgICAgY29udGVudE9mZnNldC55ICs9IHlEZWx0YSArIHBh
c3N3b3JkRW50cnlGaWVsZFBhZGRpbmc7Ci0KLSAgICAgICAgW19zY3JvbGxWaWV3IHNldENvbnRl
bnRPZmZzZXQ6Y29udGVudE9mZnNldCBhbmltYXRlZDpZRVNdOwotICAgIH0KKyAgICBDR1JlY3Qg
d2ViVmlld0JvdW5kcyA9IF93ZWJWaWV3LmJvdW5kczsKKyAgICByZXR1cm4gQ0dSZWN0TWFrZSgw
LCAwLCB3ZWJWaWV3Qm91bmRzLnNpemUud2lkdGgsIHdlYlZpZXdCb3VuZHMuc2l6ZS5oZWlnaHQp
OwogfQogCiAtICh2b2lkKV9zaG93UGFzc3dvcmRFbnRyeUZpZWxkCiB7Ci0gICAgW19zY3JvbGxW
aWV3IHNldE1pbmltdW1ab29tU2NhbGU6MV07Ci0gICAgW19zY3JvbGxWaWV3IHNldE1heGltdW1a
b29tU2NhbGU6MV07Ci0gICAgW19zY3JvbGxWaWV3IHNldEJhY2tncm91bmRDb2xvcjpbVUlDb2xv
ciBncm91cFRhYmxlVmlld0JhY2tncm91bmRDb2xvcl1dOwotCi0gICAgX3Bhc3N3b3JkVmlldyA9
IGFkb3B0TlMoW1tVSURvY3VtZW50UGFzc3dvcmRWaWV3IGFsbG9jXSBpbml0V2l0aERvY3VtZW50
TmFtZTpfc3VnZ2VzdGVkRmlsZW5hbWUuZ2V0KCldKTsKLSAgICBbX3Bhc3N3b3JkVmlldyBzZXRQ
YXNzd29yZERlbGVnYXRlOnNlbGZdOwotCi0gICAgW3NlbGYgX3VwZGF0ZVBhc3N3b3JkRW50cnlG
aWVsZF07Ci0KLSAgICBbc2VsZiBhZGRTdWJ2aWV3Ol9wYXNzd29yZFZpZXcuZ2V0KCldOwotfQot
Ci0tICh2b2lkKV9oaWRlUGFzc3dvcmRFbnRyeUZpZWxkCi17Ci0gICAgW19wYXNzd29yZFZpZXcg
cmVtb3ZlRnJvbVN1cGVydmlld107Ci0gICAgX3Bhc3N3b3JkVmlldyA9IG5pbDsKLQotICAgIFtf
c2Nyb2xsVmlldyBzZXRNaW5pbXVtWm9vbVNjYWxlOnBkZk1pbmltdW1ab29tU2NhbGVdOwotICAg
IFtfc2Nyb2xsVmlldyBzZXRNYXhpbXVtWm9vbVNjYWxlOnBkZk1heGltdW1ab29tU2NhbGVdOwot
ICAgIFtfc2Nyb2xsVmlldyBzZXRCYWNrZ3JvdW5kQ29sb3I6W1VJQ29sb3IgZ3JheUNvbG9yXV07
Ci19Ci0KLS0gKHZvaWQpdXNlckRpZEVudGVyUGFzc3dvcmQ6KE5TU3RyaW5nICopcGFzc3dvcmQg
Zm9yUGFzc3dvcmRWaWV3OihVSURvY3VtZW50UGFzc3dvcmRWaWV3ICopcGFzc3dvcmRWaWV3Ci17
Ci0gICAgW3NlbGYgX3RyeVRvVW5sb2NrV2l0aFBhc3N3b3JkOnBhc3N3b3JkXTsKLX0KLQotLSAo
dm9pZClkaWRCZWdpbkVkaXRpbmdQYXNzd29yZDooVUlUZXh0RmllbGQgKilwYXNzd29yZEZpZWxk
IGluVmlldzooVUlEb2N1bWVudFBhc3N3b3JkVmlldyAqKXBhc3N3b3JkVmlldwotewotICAgIFtb
TlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxl
Y3RvcjpAc2VsZWN0b3IoX2tleWJvYXJkRGlkU2hvdzopIG5hbWU6VUlLZXlib2FyZERpZFNob3dO
b3RpZmljYXRpb24gb2JqZWN0Om5pbF07Ci19Ci0KLS0gKHZvaWQpZGlkRW5kRWRpdGluZ1Bhc3N3
b3JkOihVSVRleHRGaWVsZCAqKXBhc3N3b3JkRmllbGQgaW5WaWV3OihVSURvY3VtZW50UGFzc3dv
cmRWaWV3ICopcGFzc3dvcmRWaWV3Ci17Ci0gICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRTaXpl
OltfcGFzc3dvcmRWaWV3IGZyYW1lXS5zaXplXTsKLSAgICBbX3Njcm9sbFZpZXcgc2V0Q29udGVu
dE9mZnNldDpDR1BvaW50TWFrZSgtX3Njcm9sbFZpZXcuY29udGVudEluc2V0LmxlZnQsIC1fc2Ny
b2xsVmlldy5jb250ZW50SW5zZXQudG9wKSBhbmltYXRlZDpZRVNdOwotCi0gICAgW1tOU05vdGlm
aWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6VUlL
ZXlib2FyZERpZFNob3dOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07Ci19Ci0KLS0gKHZvaWQpX2Rp
ZEZhaWxUb1VubG9jawotewotICAgIFtbX3Bhc3N3b3JkVmlldyBwYXNzd29yZEZpZWxkXSBzZXRU
ZXh0OkAiIl07Ci0gICAgVUlBbGVydENvbnRyb2xsZXIqIGFsZXJ0ID0gW1VJQWxlcnRDb250cm9s
bGVyIGFsZXJ0Q29udHJvbGxlcldpdGhUaXRsZTpXRUJfVUlfU1RSSU5HKCJUaGUgZG9jdW1lbnQg
Y291bGQgbm90IGJlIG9wZW5lZCB3aXRoIHRoYXQgcGFzc3dvcmQuIiwgIlBERiBwYXNzd29yZCBm
YWlsdXJlIGFsZXJ0IG1lc3NhZ2UiKSBtZXNzYWdlOkAiIiBwcmVmZXJyZWRTdHlsZTpVSUFsZXJ0
Q29udHJvbGxlclN0eWxlQWxlcnRdOwotCi0gICAgVUlBbGVydEFjdGlvbiogZGVmYXVsdEFjdGlv
biA9IFtVSUFsZXJ0QWN0aW9uIGFjdGlvbldpdGhUaXRsZTpXRUJfVUlfU1RSSU5HX0tFWSgiT0si
LCAiT0sgKFBERiBwYXNzd29yZCBmYWlsdXJlIGFsZXJ0KSIsICJPSyBidXR0b24gbGFiZWwgaW4g
UERGIHBhc3N3b3JkIGZhaWx1cmUgYWxlcnQiKSBzdHlsZTpVSUFsZXJ0QWN0aW9uU3R5bGVEZWZh
dWx0IGhhbmRsZXI6W10oVUlBbGVydEFjdGlvbiAqKSB7IH1dOwotICAgIAotICAgIFthbGVydCBh
ZGRBY3Rpb246ZGVmYXVsdEFjdGlvbl07CisgICAgX3Bhc3N3b3JkVmlldyA9IGFkb3B0TlMoW1tX
S1Bhc3N3b3JkVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpbc2VsZiBfcGFzc3dvcmRWaWV3RnJh
bWVdIGRvY3VtZW50TmFtZTpfc3VnZ2VzdGVkRmlsZW5hbWUuZ2V0KCldKTsKIAotICAgIFtzZWxm
LndpbmRvdy5yb290Vmlld0NvbnRyb2xsZXIgcHJlc2VudFZpZXdDb250cm9sbGVyOmFsZXJ0IGFu
aW1hdGVkOllFUyBjb21wbGV0aW9uOm5pbF07Ci19CisgICAgW19wYXNzd29yZFZpZXcgc2V0VXNl
ckRpZEVudGVyUGFzc3dvcmQ6W3JldGFpbmVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0oTlNTdHJp
bmcgKnBhc3N3b3JkKSB7CisgICAgICAgIGlmICghQ0dQREZEb2N1bWVudFVubG9ja1dpdGhQYXNz
d29yZChyZXRhaW5lZFNlbGYtPl9jZ1BERkRvY3VtZW50LmdldCgpLCBwYXNzd29yZC5VVEY4U3Ry
aW5nKSkgeworICAgICAgICAgICAgW3JldGFpbmVkU2VsZi0+X3Bhc3N3b3JkVmlldyBkaXNwbGF5
UGFzc3dvcmRGYWlsdXJlQWxlcnRdOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAK
LS0gKEJPT0wpX3RyeVRvVW5sb2NrV2l0aFBhc3N3b3JkOihOU1N0cmluZyAqKXBhc3N3b3JkCi17
Ci0gICAgaWYgKENHUERGRG9jdW1lbnRVbmxvY2tXaXRoUGFzc3dvcmQoX2NnUERGRG9jdW1lbnQu
Z2V0KCksIFtwYXNzd29yZCBVVEY4U3RyaW5nXSkpIHsKLSAgICAgICAgW3NlbGYgX2hpZGVQYXNz
d29yZEVudHJ5RmllbGRdOwotICAgICAgICBbc2VsZiBfZGlkTG9hZFBERkRvY3VtZW50XTsKLSAg
ICAgICAgcmV0dXJuIFlFUzsKLSAgICB9CisgICAgICAgIFtyZXRhaW5lZFNlbGYtPl9wYXNzd29y
ZFZpZXcgaGlkZV07CisgICAgICAgIHJldGFpbmVkU2VsZi0+X3Bhc3N3b3JkVmlldyA9IG5pbDsK
KyAgICAgICAgW3JldGFpbmVkU2VsZiBfZGlkTG9hZFBERkRvY3VtZW50XTsKKyAgICB9XTsKIAot
ICAgIFtzZWxmIF9kaWRGYWlsVG9VbmxvY2tdOwotICAgIHJldHVybiBOTzsKKyAgICBbX3Bhc3N3
b3JkVmlldyBkaXNwbGF5SW5Db250ZW50VmlldzpzZWxmXTsKIH0KIAogLSAodm9pZCl3aWxsTW92
ZVRvV2luZG93OihVSVdpbmRvdyAqKW5ld1dpbmRvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XS1Bhc3N3b3JkVmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS1Bhc3N3b3JkVmlldy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmZWRhYTg2OGYzYjMzYzFkMzRm
ZjhlNDM1MDJhODVmZDcyNzg2NGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dLUGFzc3dvcmRWaWV3LmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZiBQTEFURk9STShJT1MpCisKKyNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+CisKK0BpbnRl
cmZhY2UgV0tQYXNzd29yZFZpZXcgOiBVSVZpZXcKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
RnJhbWU6KENHUmVjdClmcmFtZSBkb2N1bWVudE5hbWU6KE5TU3RyaW5nICopZG9jdW1lbnROYW1l
OworLSAodm9pZClkaXNwbGF5SW5Db250ZW50VmlldzooVUlWaWV3ICopY29udGVudFZpZXc7Cist
ICh2b2lkKWhpZGU7CistICh2b2lkKWRpc3BsYXlQYXNzd29yZEZhaWx1cmVBbGVydDsKKworQHBy
b3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF51c2VyRGlkRW50ZXJQYXNzd29yZCkoTlNT
dHJpbmcgKik7CisKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tQYXNzd29yZFZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLUGFzc3dvcmRWaWV3Lm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjMWJh
YzQ1OTZkZmE1ODU0ZjAzMDBiYTk4OGU4YzFlNjZkNmQyYzMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLUGFzc3dvcmRWaWV3Lm1tCkBAIC0wLDAgKzEs
MTcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS1Bhc3N3
b3JkVmlldy5oIgorCisjaWYgUExBVEZPUk0oSU9TKQorCisjaW1wb3J0ICJVSUtpdFNQSS5oIgor
I2ltcG9ydCAiV0tDb250ZW50Vmlldy5oIgorI2ltcG9ydCAiV0tXZWJWaWV3Q29udGVudFByb3Zp
ZGVyLmgiCisjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KKyNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitjb25zdCBD
R0Zsb2F0IHBhc3N3b3JkRW50cnlGaWVsZFBhZGRpbmcgPSAxMDsKKworQGludGVyZmFjZSBXS1Bh
c3N3b3JkVmlldyAoKSA8VUlEb2N1bWVudFBhc3N3b3JkVmlld0RlbGVnYXRlPgorQGVuZAorCitA
aW1wbGVtZW50YXRpb24gV0tQYXNzd29yZFZpZXcgeworICAgIFJldGFpblB0cjxVSVNjcm9sbFZp
ZXc+IF9zY3JvbGxWaWV3OworICAgIFJldGFpblB0cjxVSURvY3VtZW50UGFzc3dvcmRWaWV3PiBf
cGFzc3dvcmRWaWV3OworICAgIENHRmxvYXQgX3NhdmVkTWluaW11bVpvb21TY2FsZTsKKyAgICBD
R0Zsb2F0IF9zYXZlZE1heGltdW1ab29tU2NhbGU7CisgICAgUmV0YWluUHRyPFVJQ29sb3I+IF9z
YXZlZEJhY2tncm91bmRDb2xvcjsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6
KENHUmVjdClmcmFtZSBkb2N1bWVudE5hbWU6KE5TU3RyaW5nICopZG9jdW1lbnROYW1lCit7Cisg
ICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aEZyYW1lOmZyYW1lXTsKKyAgICBpZiAoIXNlbGYpCisg
ICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfcGFzc3dvcmRWaWV3ID0gYWRvcHROUyhbW1VJRG9j
dW1lbnRQYXNzd29yZFZpZXcgYWxsb2NdIGluaXRXaXRoRG9jdW1lbnROYW1lOmRvY3VtZW50TmFt
ZV0pOworICAgIFtfcGFzc3dvcmRWaWV3IHNldEZyYW1lOnNlbGYuYm91bmRzXTsKKyAgICBbX3Bh
c3N3b3JkVmlldyBzZXRQYXNzd29yZERlbGVnYXRlOnNlbGZdOworICAgIFtfcGFzc3dvcmRWaWV3
IHNldEF1dG9yZXNpemluZ01hc2s6VUlWaWV3QXV0b3Jlc2l6aW5nRmxleGlibGVXaWR0aCB8IFVJ
Vmlld0F1dG9yZXNpemluZ0ZsZXhpYmxlSGVpZ2h0XTsKKworICAgIHNlbGYuYXV0b3Jlc2l6ZXNT
dWJ2aWV3cyA9IFlFUzsKKyAgICBbc2VsZiBhZGRTdWJ2aWV3Ol9wYXNzd29yZFZpZXcuZ2V0KCld
OworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpbGF5b3V0U3Vidmlld3MKK3sKKyAg
ICBpZiAoX3Njcm9sbFZpZXcpCisgICAgICAgIFtfc2Nyb2xsVmlldyBzZXRDb250ZW50U2l6ZTpz
ZWxmLmZyYW1lLnNpemVdOworfQorCistICh2b2lkKWRpc3BsYXlJbkNvbnRlbnRWaWV3OihVSVZp
ZXcgKiljb250ZW50VmlldworeworICAgIEFTU0VSVChbY29udGVudFZpZXcgaXNLaW5kT2ZDbGFz
czpbV0tDb250ZW50VmlldyBjbGFzc11dIHx8IFtjb250ZW50VmlldyBjb25mb3Jtc1RvUHJvdG9j
b2w6QHByb3RvY29sKFdLV2ViVmlld0NvbnRlbnRQcm92aWRlcildKTsKKyAgICBBU1NFUlQoW2Nv
bnRlbnRWaWV3LnN1cGVydmlldyBpc0tpbmRPZkNsYXNzOltVSVNjcm9sbFZpZXcgY2xhc3NdXSk7
CisgICAgX3Njcm9sbFZpZXcgPSAoVUlTY3JvbGxWaWV3ICopY29udGVudFZpZXcuc3VwZXJ2aWV3
OworCisgICAgX3NhdmVkTWluaW11bVpvb21TY2FsZSA9IFtfc2Nyb2xsVmlldyBtaW5pbXVtWm9v
bVNjYWxlXTsKKyAgICBfc2F2ZWRNYXhpbXVtWm9vbVNjYWxlID0gW19zY3JvbGxWaWV3IG1heGlt
dW1ab29tU2NhbGVdOworICAgIF9zYXZlZEJhY2tncm91bmRDb2xvciA9IFtfc2Nyb2xsVmlldyBi
YWNrZ3JvdW5kQ29sb3JdOworCisgICAgW19zY3JvbGxWaWV3IHNldE1pbmltdW1ab29tU2NhbGU6
MV07CisgICAgW19zY3JvbGxWaWV3IHNldE1heGltdW1ab29tU2NhbGU6MV07CisgICAgW19zY3Jv
bGxWaWV3IHNldENvbnRlbnRTaXplOnNlbGYuZnJhbWUuc2l6ZV07CisgICAgW19zY3JvbGxWaWV3
IHNldEJhY2tncm91bmRDb2xvcjpbVUlDb2xvciBncm91cFRhYmxlVmlld0JhY2tncm91bmRDb2xv
cl1dOworCisgICAgW2NvbnRlbnRWaWV3IGFkZFN1YnZpZXc6c2VsZl07Cit9CisKKy0gKHZvaWQp
aGlkZQoreworICAgIFtfc2Nyb2xsVmlldyBzZXRNaW5pbXVtWm9vbVNjYWxlOl9zYXZlZE1pbmlt
dW1ab29tU2NhbGVdOworICAgIFtfc2Nyb2xsVmlldyBzZXRNYXhpbXVtWm9vbVNjYWxlOl9zYXZl
ZE1heGltdW1ab29tU2NhbGVdOworICAgIFtfc2Nyb2xsVmlldyBzZXRCYWNrZ3JvdW5kQ29sb3I6
X3NhdmVkQmFja2dyb3VuZENvbG9yLmdldCgpXTsKKworICAgIF9zY3JvbGxWaWV3ID0gbmlsOwor
ICAgIF9zYXZlZEJhY2tncm91bmRDb2xvciA9IG5pbDsKKworICAgIFtzZWxmIHJlbW92ZUZyb21T
dXBlcnZpZXddOworfQorCistICh2b2lkKWRpc3BsYXlQYXNzd29yZEZhaWx1cmVBbGVydAorewor
ICAgIFtbX3Bhc3N3b3JkVmlldyBwYXNzd29yZEZpZWxkXSBzZXRUZXh0OkAiIl07CisgICAgVUlB
bGVydENvbnRyb2xsZXIgKmFsZXJ0ID0gW1VJQWxlcnRDb250cm9sbGVyIGFsZXJ0Q29udHJvbGxl
cldpdGhUaXRsZTpXRUJfVUlfU1RSSU5HKCJUaGUgZG9jdW1lbnQgY291bGQgbm90IGJlIG9wZW5l
ZCB3aXRoIHRoYXQgcGFzc3dvcmQuIiwgImRvY3VtZW50IHBhc3N3b3JkIGZhaWx1cmUgYWxlcnQg
bWVzc2FnZSIpIG1lc3NhZ2U6QCIiIHByZWZlcnJlZFN0eWxlOlVJQWxlcnRDb250cm9sbGVyU3R5
bGVBbGVydF07CisKKyAgICBVSUFsZXJ0QWN0aW9uICpkZWZhdWx0QWN0aW9uID0gW1VJQWxlcnRB
Y3Rpb24gYWN0aW9uV2l0aFRpdGxlOldFQl9VSV9TVFJJTkdfS0VZKCJPSyIsICJPSyAoZG9jdW1l
bnQgcGFzc3dvcmQgZmFpbHVyZSBhbGVydCkiLCAiT0sgYnV0dG9uIGxhYmVsIGluIGRvY3VtZW50
IHBhc3N3b3JkIGZhaWx1cmUgYWxlcnQiKSBzdHlsZTpVSUFsZXJ0QWN0aW9uU3R5bGVEZWZhdWx0
IGhhbmRsZXI6W10oVUlBbGVydEFjdGlvbiAqKSB7IH1dOworCisgICAgW2FsZXJ0IGFkZEFjdGlv
bjpkZWZhdWx0QWN0aW9uXTsKKworICAgIFtzZWxmLndpbmRvdy5yb290Vmlld0NvbnRyb2xsZXIg
cHJlc2VudFZpZXdDb250cm9sbGVyOmFsZXJ0IGFuaW1hdGVkOllFUyBjb21wbGV0aW9uOm5pbF07
Cit9CisKKy0gKHZvaWQpX2tleWJvYXJkRGlkU2hvdzooTlNOb3RpZmljYXRpb24gKilub3RpZmlj
YXRpb24KK3sKKyAgICBVSVRleHRGaWVsZCAqcGFzc3dvcmRGaWVsZCA9IFtfcGFzc3dvcmRWaWV3
IHBhc3N3b3JkRmllbGRdOworICAgIGlmICghcGFzc3dvcmRGaWVsZC5pc0VkaXRpbmcpCisgICAg
ICAgIHJldHVybjsKKworICAgIENHUmVjdCBrZXlib2FyZFJlY3QgPSBbVUlQZXJpcGhlcmFsSG9z
dCB2aXNpYmxlUGVyaXBoZXJhbEZyYW1lXTsKKyAgICBpZiAoQ0dSZWN0SXNFbXB0eShrZXlib2Fy
ZFJlY3QpKQorICAgICAgICByZXR1cm47CisKKyAgICBVSVdpbmRvdyAqd2luZG93ID0gW19zY3Jv
bGxWaWV3IHdpbmRvd107CisgICAga2V5Ym9hcmRSZWN0ID0gW3dpbmRvdyBjb252ZXJ0UmVjdDpr
ZXlib2FyZFJlY3QgZnJvbVdpbmRvdzpuaWxdOworICAgIGtleWJvYXJkUmVjdCA9IFtfc2Nyb2xs
VmlldyBjb252ZXJ0UmVjdDprZXlib2FyZFJlY3QgZnJvbVZpZXc6d2luZG93XTsKKworICAgIENH
UmVjdCBwYXNzd29yZEZpZWxkRnJhbWUgPSBbcGFzc3dvcmRGaWVsZCBjb252ZXJ0UmVjdDpwYXNz
d29yZEZpZWxkLmJvdW5kcyB0b1ZpZXc6X3Njcm9sbFZpZXcuZ2V0KCldOworCisgICAgQ0dTaXpl
IGNvbnRlbnRTaXplID0gW19wYXNzd29yZFZpZXcgYm91bmRzXS5zaXplOworICAgIGNvbnRlbnRT
aXplLmhlaWdodCArPSBDR1JlY3RHZXRIZWlnaHQoa2V5Ym9hcmRSZWN0KTsKKyAgICBbX3Njcm9s
bFZpZXcgc2V0Q29udGVudFNpemU6Y29udGVudFNpemVdOworCisgICAgaWYgKENHUmVjdEludGVy
c2VjdHNSZWN0KHBhc3N3b3JkRmllbGRGcmFtZSwga2V5Ym9hcmRSZWN0KSkgeworICAgICAgICBD
R0Zsb2F0IHlEZWx0YSA9IENHUmVjdEdldE1heFkocGFzc3dvcmRGaWVsZEZyYW1lKSAtIENHUmVj
dEdldE1pblkoa2V5Ym9hcmRSZWN0KTsKKworICAgICAgICBDR1BvaW50IGNvbnRlbnRPZmZzZXQg
PSBbX3Njcm9sbFZpZXcgY29udGVudE9mZnNldF07CisgICAgICAgIGNvbnRlbnRPZmZzZXQueSAr
PSB5RGVsdGEgKyBwYXNzd29yZEVudHJ5RmllbGRQYWRkaW5nOworCisgICAgICAgIFtfc2Nyb2xs
VmlldyBzZXRDb250ZW50T2Zmc2V0OmNvbnRlbnRPZmZzZXQgYW5pbWF0ZWQ6WUVTXTsKKyAgICB9
Cit9CisKKyNwcmFnbWEgbWFyayBVSURvY3VtZW50UGFzc3dvcmRWaWV3RGVsZWdhdGUKKworLSAo
dm9pZCl1c2VyRGlkRW50ZXJQYXNzd29yZDooTlNTdHJpbmcgKilwYXNzd29yZCBmb3JQYXNzd29y
ZFZpZXc6KFVJRG9jdW1lbnRQYXNzd29yZFZpZXcgKilwYXNzd29yZFZpZXcKK3sKKyAgICBhdXRv
IHByb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZik7CisgICAgaWYgKF91c2VyRGlkRW50ZXJQ
YXNzd29yZCkKKyAgICAgICAgX3VzZXJEaWRFbnRlclBhc3N3b3JkKHBhc3N3b3JkKTsKK30KKwor
LSAodm9pZClkaWRCZWdpbkVkaXRpbmdQYXNzd29yZDooVUlUZXh0RmllbGQgKilwYXNzd29yZEZp
ZWxkIGluVmlldzooVUlEb2N1bWVudFBhc3N3b3JkVmlldyAqKXBhc3N3b3JkVmlldworeworICAg
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBz
ZWxlY3RvcjpAc2VsZWN0b3IoX2tleWJvYXJkRGlkU2hvdzopIG5hbWU6VUlLZXlib2FyZERpZFNo
b3dOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07Cit9CisKKy0gKHZvaWQpZGlkRW5kRWRpdGluZ1Bh
c3N3b3JkOihVSVRleHRGaWVsZCAqKXBhc3N3b3JkRmllbGQgaW5WaWV3OihVSURvY3VtZW50UGFz
c3dvcmRWaWV3ICopcGFzc3dvcmRWaWV3Cit7CisgICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRT
aXplOltfcGFzc3dvcmRWaWV3IGZyYW1lXS5zaXplXTsKKworICAgIFVJRWRnZUluc2V0cyBjb250
ZW50SW5zZXQgPSBbX3Njcm9sbFZpZXcgY29udGVudEluc2V0XTsKKyAgICBbX3Njcm9sbFZpZXcg
c2V0Q29udGVudE9mZnNldDpDR1BvaW50TWFrZSgtY29udGVudEluc2V0LmxlZnQsIC1jb250ZW50
SW5zZXQudG9wKSBhbmltYXRlZDpZRVNdOworCisgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6VUlLZXlib2FyZERpZFNob3dO
b3RpZmljYXRpb24gb2JqZWN0Om5pbF07Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JN
KElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBiYmNkNzk2MWFmNGIyZTk4ZWRmNzU5N2Q0M2Y2MmZmMDI4ZDE0Y2I2Li5jNjcy
ZTM2YzI4NGRkNjQ4NmU5YTk3OTgyMjc2YmUxOWY5Mjk3MjY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzM4LDYgKzEzMzgs
OCBAQAogCQlBMTE4QTlFRjE5MDdBRDZGMDBGN0M5MkIgLyogUXVpY2tMb29rRG9jdW1lbnREYXRh
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE4QTlF
RDE5MDdBRDZGMDBGN0M5MkIgLyogUXVpY2tMb29rRG9jdW1lbnREYXRhLmggKi87IH07CiAJCUEx
MThBOUYyMTkwOEI4RUEwMEY3QzkyQiAvKiBfV0tOU0ZpbGVNYW5hZ2VyRXh0cmFzLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExOEE5RjAxOTA4QjhF
QTAwRjdDOTJCIC8qIF9XS05TRmlsZU1hbmFnZXJFeHRyYXMubW0gKi87IH07CiAJCUExMThBOUYz
MTkwOEI4RUEwMEY3QzkyQiAvKiBfV0tOU0ZpbGVNYW5hZ2VyRXh0cmFzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE4QTlGMTE5MDhCOEVBMDBGN0M5
MkIgLyogX1dLTlNGaWxlTWFuYWdlckV4dHJhcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCUExNUVFREU1MUUzMDFDRUUwMDAwNjlCMCAvKiBXS1Bh
c3N3b3JkVmlldy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEExNUVFREUzMUUzMDFDRUUwMDAwNjlCMCAvKiBXS1Bhc3N3b3JkVmlldy5tbSAqLzsgfTsK
KwkJQTE1RUVERTYxRTMwMUNFRTAwMDA2OUIwIC8qIFdLUGFzc3dvcmRWaWV3LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTVFRURFNDFFMzAxQ0VFMDAw
MDY5QjAgLyogV0tQYXNzd29yZFZpZXcuaCAqLzsgfTsKIAkJQTE4MkQ1QjQxQkU2QkQyNTAwODdB
N0NDIC8qIEFjY2Vzc2liaWxpdHlJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMTgyRDVCMjFCRTZCRDI1MDA4N0E3Q0MgLyogQWNjZXNzaWJpbGl0
eUlPUy5tbSAqLzsgfTsKIAkJQTE4MkQ1QjUxQkU2QkQyNTAwODdBN0NDIC8qIEFjY2Vzc2liaWxp
dHlJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEx
ODJENUIzMUJFNkJEMjUwMDg3QTdDQyAvKiBBY2Nlc3NpYmlsaXR5SU9TLmggKi87IH07CiAJCUEx
OUREM0MwMUQwN0QxNjgwMEFDODIzQiAvKiBfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXJJbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE5REQz
QkYxRDA3RDE2ODAwQUM4MjNCIC8qIF9XS1dlYlZpZXdQcmludEZvcm1hdHRlckludGVybmFsLmgg
Ki87IH07CkBAIC0zNDkwLDYgKzM0OTIsOCBAQAogCQlBMTE4QTlFRDE5MDdBRDZGMDBGN0M5MkIg
LyogUXVpY2tMb29rRG9jdW1lbnREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFF1aWNrTG9va0RvY3VtZW50RGF0YS5oOyBwYXRoID0gaW9zL1F1aWNrTG9va0RvY3VtZW50
RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTE4QTlGMDE5MDhCOEVBMDBG
N0M5MkIgLyogX1dLTlNGaWxlTWFuYWdlckV4dHJhcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IF9XS05TRmlsZU1hbmFnZXJFeHRyYXMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUExMThBOUYxMTkwOEI4RUEwMEY3QzkyQiAvKiBfV0tOU0ZpbGVN
YW5hZ2VyRXh0cmFzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS05TRmls
ZU1hbmFnZXJFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTE1RUVERTMx
RTMwMUNFRTAwMDA2OUIwIC8qIFdLUGFzc3dvcmRWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBuYW1lID0gV0tQYXNzd29yZFZpZXcubW07IHBhdGggPSBpb3MvV0tQYXNz
d29yZFZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExNUVFREU0MUUzMDFD
RUUwMDAwNjlCMCAvKiBXS1Bhc3N3b3JkVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBXS1Bhc3N3b3JkVmlldy5oOyBwYXRoID0gaW9zL1dLUGFzc3dvcmRWaWV3Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExODJENUIyMUJFNkJEMjUwMDg3QTdDQyAvKiBB
Y2Nlc3NpYmlsaXR5SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gQWNjZXNzaWJpbGl0eUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE4
MkQ1QjMxQkU2QkQyNTAwODdBN0NDIC8qIEFjY2Vzc2liaWxpdHlJT1MuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eUlPUy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBMTlERDNCRjFEMDdEMTY4MDBBQzgyM0IgLyogX1dLV2ViVmlld1ByaW50
Rm9ybWF0dGVySW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dL
V2ViVmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTUxNTIsNiArNTE1Niw4IEBACiAJCQkJMkQ2QUI1NDAxOTJCMUM0QTAwM0E5RkQxIC8q
IFdLUERGUGFnZU51bWJlckluZGljYXRvci5tbSAqLywKIAkJCQkyREExRTRGQzE4QzAyQjZBMDBE
QkM5MjkgLyogV0tQREZWaWV3LmggKi8sCiAJCQkJMkRBMUU0RkQxOEMwMkI2QTAwREJDOTI5IC8q
IFdLUERGVmlldy5tbSAqLywKKwkJCQlBMTVFRURFNDFFMzAxQ0VFMDAwMDY5QjAgLyogV0tQYXNz
d29yZFZpZXcuaCAqLywKKwkJCQlBMTVFRURFMzFFMzAxQ0VFMDAwMDY5QjAgLyogV0tQYXNzd29y
ZFZpZXcubW0gKi8sCiAJCQkJMEZDQjRFNDQxOEJCRTA0NDAwMEZDRkM5IC8qIFdLU2Nyb2xsVmll
dy5oICovLAogCQkJCTBGQ0I0RTQ1MThCQkUwNDQwMDBGQ0ZDOSAvKiBXS1Njcm9sbFZpZXcubW0g
Ki8sCiAJCQkJMjZGMTBCRTYxOTE4N0UyRTAwMUQwRTY4IC8qIFdLU3ludGhldGljQ2xpY2tUYXBH
ZXN0dXJlUmVjb2duaXplci5oICovLApAQCAtODAwNiw2ICs4MDEyLDcgQEAKIAkJCQkxQUEzRDc1
QzE2NTFCNDRGMDA4NzEzRDAgLyogUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkRERTBBRkExODI5OENDOTAwRjk3RUFBIC8qIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5
QXBwbGllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGMjY0QTAxQTFGRjlDQzAwMUZFNzU5IC8q
IFJlbW90ZUxheWVyVHJlZVNjcm9sbGluZ1BlcmZvcm1hbmNlRGF0YS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQTE1RUVERTYxRTMwMUNFRTAwMDA2OUIwIC8qIFdLUGFzc3dvcmRWaWV3LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUYxQUM2QzE2NTE3NTlFMDBDMTdEN0YgLyogUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQjc4NDcxMTYzRjI0NjkwMDA3QjY5
MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1NzA0
RkMxQkUxNzUxMTAwODc0QUYxIC8qIFJlbW90ZU9iamVjdEludm9jYXRpb24uaCBpbiBIZWFkZXJz
ICovLApAQCAtOTg4OSw2ICs5ODk2LDcgQEAKIAkJCQlDNTQyNTZCNjE4QkVDMThDMDBERTQxNzkg
LyogV0tGb3JtSW5wdXRDb250cm9sLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU0MjU2QjkxOEJF
QzE4QzAwREU0MTc5IC8qIFdLRm9ybVBvcG92ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlDNTcx
OTNCRTE4QzE0QTQ0MDAyRDBGMTIgLyogV0tGb3JtU2VsZWN0Q29udHJvbC5tbSBpbiBTb3VyY2Vz
ICovLAorCQkJCUExNUVFREU1MUUzMDFDRUUwMDAwNjlCMCAvKiBXS1Bhc3N3b3JkVmlldy5tbSBp
biBTb3VyY2VzICovLAogCQkJCUM1NUNCNUI4MThDMkE1RDYwMENBODFFMSAvKiBXS0Zvcm1TZWxl
Y3RQaWNrZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlDNTVDQjVCNzE4QzI2OUNGMDBDQTgxRTEg
LyogV0tGb3JtU2VsZWN0UG9wb3Zlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDRTQ2OTU5MTIx
NEVERjQwMDBCOThFQiAvKiBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>