<?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>176721</bug_id>
          
          <creation_ts>2017-09-11 12:39:22 -0700</creation_ts>
          <short_desc>[iOS DnD] Support DataTransfer.setDragImage when starting a drag on iOS</short_desc>
          <delta_ts>2017-09-12 07:52:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1347547</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-11 12:39:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/34373660&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347804</commentid>
    <comment_count>1</comment_count>
      <attachid>320517</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-11 22:07:58 -0700</bug_when>
    <thetext>Created attachment 320517
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347808</commentid>
    <comment_count>2</comment_count>
      <attachid>320517</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-09-11 22:38:27 -0700</bug_when>
    <thetext>Comment on attachment 320517
Patch

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

&gt; Source/WebCore/page/DragController.cpp:1248
&gt; +                if (auto* page = frame.page())
&gt; +                    dragPreviewSize.scale(1 / page-&gt;deviceScaleFactor());

This seems a little odd. Did you test with page scale too?

&gt; Source/WebCore/page/DragController.cpp:1252
&gt; +            // We can simply position the preview simply using the bounds of the drag source element.

Too many simplys</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347809</commentid>
    <comment_count>3</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-11 22:49:52 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #2)
&gt; Comment on attachment 320517 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=320517&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/DragController.cpp:1248
&gt; &gt; +                if (auto* page = frame.page())
&gt; &gt; +                    dragPreviewSize.scale(1 / page-&gt;deviceScaleFactor());
&gt; 
&gt; This seems a little odd. Did you test with page scale too?

Yes -- what&apos;ll happen is that the image will also appear scaled up, to match what the rest of the page looks like. I thought this would be better than having a detached drag image be a constant size, regardless of page scale, which is why I didn&apos;t also scale by 1 / pageScaleFactor() here, though I&apos;m definitely open to that option as well!

&gt; 
&gt; &gt; Source/WebCore/page/DragController.cpp:1252
&gt; &gt; +            // We can simply position the preview simply using the bounds of the drag source element.
&gt; 
&gt; Too many simplys

Good catch! I should stop spamming this word 🙃</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347812</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-09-11 22:54:31 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #3)
&gt; (In reply to Tim Horton from comment #2)
&gt; &gt; Comment on attachment 320517 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=320517&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/page/DragController.cpp:1248
&gt; &gt; &gt; +                if (auto* page = frame.page())
&gt; &gt; &gt; +                    dragPreviewSize.scale(1 / page-&gt;deviceScaleFactor());
&gt; &gt; 
&gt; &gt; This seems a little odd. Did you test with page scale too?
&gt; 
&gt; Yes -- what&apos;ll happen is that the image will also appear scaled up, to match
&gt; what the rest of the page looks like. I thought this would be better than
&gt; having a detached drag image be a constant size, regardless of page scale,
&gt; which is why I didn&apos;t also scale by 1 / pageScaleFactor() here, though I&apos;m
&gt; definitely open to that option as well!

Ah, got it. I think your plan makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347813</commentid>
    <comment_count>5</comment_count>
      <attachid>320520</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-11 22:57:05 -0700</bug_when>
    <thetext>Created attachment 320520
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347823</commentid>
    <comment_count>6</comment_count>
      <attachid>320520</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-11 23:59:51 -0700</bug_when>
    <thetext>Comment on attachment 320520
Patch for landing

Clearing flags on attachment: 320520

Committed r221907: &lt;http://trac.webkit.org/changeset/221907&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320517</attachid>
            <date>2017-09-11 22:07:58 -0700</date>
            <delta_ts>2017-09-11 22:38:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176721-20170911220757.patch</filename>
            <type>text/plain</type>
            <size>28716</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxODk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQzYWNlOGJkNmY2YmM1
Njg0ZjNlMzUwYjE3MDdjMjhjNDYyMDRiMy4uOThhMmQzOGI3NDUxYzAzMTZjNDI2OWJlMjFjNWQ3
ZmM0M2Y4MTMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE3LTA5LTEzICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBT
dXBwb3J0IERhdGFUcmFuc2Zlci5zZXREcmFnSW1hZ2Ugd2hlbiBzdGFydGluZyBhIGRyYWcgb24g
aU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY3
MjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0MzczNjYwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgc3VwcG9ydCBmb3Igc2V0dGluZyB0
aGUgZHJhZyBsaWZ0IHByZXZpZXcgZnJhbWUgaW4gdGhlIGNhc2Ugd2hlcmUgRGF0YVRyYW5zZmVy
LnNldERyYWdJbWFnZSBpcyBiZWluZyB1c2VkCisgICAgICAgIHRvIG92ZXJyaWRlIHRoZSBkZWZh
dWx0IGRyYWcgcHJldmlldy4gQ3VycmVudGx5LCB0aGUgZnJhbWUgb2YgdGhlIGRyYWcgcHJldmll
dyB3ZSBzdXBwbHkgaW4gdGhpcyBjYXNlIGlzIHRoZQorICAgICAgICBzYW1lIGFzIHRoZSBib3Vu
ZHMgb2YgdGhlIHNvdXJjZSBlbGVtZW50IGluIHJvb3QgdmlldyBjb29yZGluYXRlcywgYnV0IHRo
aXMgbWVhbnMgdGhhdCBhbnkgY3VzdG9tIGRyYWcgaW1hZ2UKKyAgICAgICAgdGhlIHBhZ2Ugc3Vw
cGxpZXMgd2lsbCBiZSBzdHJldGNoZWQgdG8gZmlsbCB0aGUgZnJhbWUgb2YgdGhlIHNvdXJjZSBl
bGVtZW50LiBJbnN0ZWFkLCB3aGVuIGhhbmRsaW5nIGEgREhUTUwgZHJhZywKKyAgICAgICAgcG9z
aXRpb24gdGhlIGxpZnQgYW5kIGNhbmNlbCBkcmFnIHByZXZpZXdzIHJlbGF0aXZlIHRvIHRoZSBl
dmVudCBsb2NhdGlvbiwgcmVzcGVjdGluZyBhbnkgZHJhZyBvZmZzZXQgc3BlY2lmaWVkCisgICAg
ICAgIGluIHNldERyYWdJbWFnZS4gVGhlIHNpemUgb2YgdGhpcyBwcmV2aWV3IG1hdGNoZXMgdGhl
IHNpemUgb2YgdGhlIGRyYWcgaW1hZ2Ugc291cmNlIChzaW5jZSB0aGlzIGlzIGFsbCBpbiByb290
CisgICAgICAgIHZpZXcgY29vcmRpbmF0ZXMsIHRoaXMgbWVhbnMgdGhlIGRyYWcgcHJldmlldyB3
aWxsIGFsc28gZW5sYXJnZSBpZiB0aGUgdXNlciBwaW5jaGVzIHRvIHpvb20gaW4pLiBJZiBhCisg
ICAgICAgIGRpc2Nvbm5lY3RlZCBpbWFnZSBzb3VyY2UgZWxlbWVudCB3YXMgcHJvdmlkZWQsIHRo
ZW4gd2UganVzdCBmYWxsIGJhY2sgdG8gdGhlIGltYWdlIHNpemUuCisKKyAgICAgICAgQWRkaXRp
b25hbGx5LCByZW5hbWVzIERyYWdJdGVtJ3MgZWxlbWVudEJvdW5kcyB0byBkcmFnUHJldmlld0Zy
YW1lSW5Sb290Vmlld0Nvb3JkaW5hdGVzIHRvIGJldHRlciByZWZsZWN0IHRoZQorICAgICAgICBw
dXJwb3NlIG9mIHRoaXMgdmFyaWFibGUuIFRoaXMgcGF0Y2ggYWxzbyBpbnRyb2R1Y2VzIEFQSSB0
ZXN0IHBsdW1iaW5nIHRvIGdyYWIgdGFyZ2V0ZWQgZHJhZyBwcmV2aWV3cyBmcm9tIHRoZQorICAg
ICAgICBkcmFnIGludGVyYWN0aW9uIGRlbGVnYXRlIChpLmUuIFdLQ29udGVudFZpZXcpLCBhbmQg
dXNlcyB0aGlzIGluIGEgbmV3IEFQSSB0ZXN0IHRoYXQgY2hlY2tzIHRoZSBmcmFtZSBvZiB0aGUK
KyAgICAgICAgcmVzdWx0aW5nIFVJVGFyZ2V0ZWREcmFnUHJldmlldyBhZnRlciBpbml0aWF0aW5n
IGEgZHJhZyBpbiB2YXJpb3VzIGNpcmN1bXN0YW5jZXMgKHNlZSBjaGFuZ2VzIGluIFRvb2xzLyBm
b3IgbW9yZQorICAgICAgICBkZXRhaWwpLgorCisgICAgICAgIFRlc3Q6IERhdGFJbnRlcmFjdGlv
blRlc3RzLkRyYWdMaWZ0UHJldmlld0RhdGFUcmFuc2ZlclNldERyYWdJbWFnZQorCisgICAgICAg
ICogZG9tL0RhdGFUcmFuc2Zlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6
OmRyYWdJbWFnZUVsZW1lbnQgY29uc3QpOgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXIuaDoK
KyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRy
YWdMb2NGb3JESFRNTERyYWcpOgorCisgICAgICAgIFRoZSBsb2dpYyB0byBmbGlwIHRoZSB5IG9m
ZnNldCB3aGVuIGNvbXB1dGluZyB0aGUgZHJhZyBsb2NhdGlvbiBpcyBvbmx5IHJlbGV2YW50IG9u
IE1hYywgYnV0IGN1cnJlbnRseSwgdGhpcyBpcworICAgICAgICBndWFyZGVkIGJ5ICNpZiBQTEFU
Rk9STShDT0NPQSksIHdoaWNoIGNhdXNlcyB0aGUgeSBvZmZzZXQgdG8gc2hpZnQgdGhlIGRyYWcg
aW1hZ2UgaW4gdGhlIG9wcG9zaXRlIGRpcmVjdGlvbiBvbgorICAgICAgICBpT1MuIFRvIGZpeCB0
aGlzLCBzaW1wbHkgY2hhbmdlIHRoZSBwbGF0Zm9ybSBkZWZpbmUgdG8gTWFjLgorCisgICAgICAg
IChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6ZG9TeXN0ZW1EcmFnKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9EcmFnSXRlbS5oOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0l0ZW06OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnSXRlbTo6ZGVjb2RlKToKKwogMjAxNy0wOS0xMiAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TIERu
RF0gU3VwcG9ydCBEYXRhVHJhbnNmZXIuZ2V0RGF0YSBhbmQgRGF0YVRyYW5zZmVyLnNldERhdGEg
d2hlbiBkcmFnZ2luZyBvciBkcm9wcGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0NzQ2YzJjYjIyMWQwMTczODA2
OTJjY2RjOGM3ZWJjNzc4OGYxNzE1Li5jYzkyOWYwOGM0ZWVlZDEyMGRjMmJiOTU5YTZiZmZkZmRm
YjFlNTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE3LTA5LTEzICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBTdXBwb3J0
IERhdGFUcmFuc2Zlci5zZXREcmFnSW1hZ2Ugd2hlbiBzdGFydGluZyBhIGRyYWcgb24gaU9TCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY3MjEKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0MzczNjYwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBlbGVtZW50Qm91bmRzID0+IGRyYWdQcmV2
aWV3RnJhbWVJblJvb3RWaWV3Q29vcmRpbmF0ZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L0RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvRHJh
Z0Ryb3BJbnRlcmFjdGlvblN0YXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpEcmFnRHJvcEludGVy
YWN0aW9uU3RhdGU6OnByZXZpZXdGb3JEcmFnSXRlbSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OkRyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZTo6c3RhZ2VEcmFnSXRlbSk6CisKIDIwMTctMDktMTEg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPUyBX
SzJdIFN1cHBvcnQgdGFwcGluZyB0byBhZGQgaXRlbXMgdG8gdGhlIGN1cnJlbnQgZHJhZyBzZXNz
aW9uIGluIHdlYiBjb250ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODU2YTFh
ZWU5ODFhOWQ2ZjA0MzFkMWY0YzVhZjBjYTlhZDJhMmM3MC4uODhhZGFlNTBhOTkxMDRkYjMzZjZi
ZWRmZDQ5MTQ0NGU4NjI3NzM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIwIEBACisyMDE3LTA5LTEzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgorCisgICAgICAgIFtpT1MgRG5EXSBTdXBwb3J0IERhdGFUcmFuc2Zlci5zZXREcmFnSW1h
Z2Ugd2hlbiBzdGFydGluZyBhIGRyYWcgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY3MjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0
MzczNjYwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlbmFtZSBlbGVtZW50Qm91bmRzID0+IGRyYWdQcmV2aWV3RnJhbWVJblJvb3RWaWV3Q29vcmRp
bmF0ZXMuIChOb3RlOiBVbmZvcnR1bmF0ZWx5LCBfZHJhZ2dlZEVsZW1lbnRCb3VuZHMgaW4KKyAg
ICAgICAgV2ViVmlld1ByaXZhdGUuaCBjYW4ndCBiZSByZW5hbWVkIHlldCwgZHVlIHRvIGJpbmFy
eSBhbmQgU0RLIGNvbXBhdGliaWxpdHkgd2l0aCBVSUtpdCkuCisKKyAgICAgICAgKiBXZWJWaWV3
L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3N0YXJ0RHJhZzpdKToKKyAgICAgICAg
KC1bV2ViVmlldyBfZHJhZ2dlZEVsZW1lbnRCb3VuZHNdKToKKyAgICAgICAgKC1bV2ViVmlldyBf
ZW5kZWREYXRhSW50ZXJhY3Rpb246Z2xvYmFsOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmll
d0RhdGEuaDoKKwogMjAxNy0wOS0xMSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAK
ICAgICAgICAgW01hY10gVXBzdHJlYW0gUVRLaXQtcmVsYXRlZCBXZWJLaXRTeXN0ZW1JbnRlcmZh
Y2UgZnVuY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCmluZGV4IGUyMzgwNDU2
MjhjZTBhMTgyYjRjNWI1NWQ1N2ZjNjViMjFmNGZmNWIuLjBlNmI1N2YxOGQwZmYxNGZlNDlmY2M4
NTBmMTk5MTQ5ZmE1YWZlYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJh
bnNmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCkBAIC0z
MDMsNiArMzAzLDExIEBAIHZvaWQgRGF0YVRyYW5zZmVyOjp1cGRhdGVEcmFnSW1hZ2UoKQogICAg
IG1fcGFzdGVib2FyZC0+c2V0RHJhZ0ltYWdlKFdURk1vdmUoY29tcHV0ZWRJbWFnZSksIGNvbXB1
dGVkSG90U3BvdCk7CiB9CiAKK1JlZlB0cjxFbGVtZW50PiBEYXRhVHJhbnNmZXI6OmRyYWdJbWFn
ZUVsZW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBtX2RyYWdJbWFnZUVsZW1lbnQ7Cit9CisK
ICNpZiAhUExBVEZPUk0oTUFDKQogCiBEcmFnSW1hZ2VSZWYgRGF0YVRyYW5zZmVyOjpjcmVhdGVE
cmFnSW1hZ2UoSW50UG9pbnQmIGxvY2F0aW9uKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zl
ci5oCmluZGV4IGJlMjMxMjc5MzIwNzg5MDdlYTFlODI2MWE0YTAxMzcwZmI4OWU1YzguLjY3NWM2
ZTI3MzE2OTBjNWE0M2QwNDJkODJlNDgzYjRlZDlhNjE4NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRy
YW5zZmVyLmgKQEAgLTkyLDYgKzkyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RHJhZ0hhc1N0
YXJ0ZWQoKSB7IG1fc2hvdWxkVXBkYXRlRHJhZ0ltYWdlID0gdHJ1ZTsgfQogICAgIERyYWdJbWFn
ZVJlZiBjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQmIGRyYWdMb2NhdGlvbikgY29uc3Q7CiAgICAg
dm9pZCB1cGRhdGVEcmFnSW1hZ2UoKTsKKyAgICBSZWZQdHI8RWxlbWVudD4gZHJhZ0ltYWdlRWxl
bWVudCgpIGNvbnN0OwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0Nv
bnRyb2xsZXIuY3BwCmluZGV4IGExZDFlNTc0YWNkMzNkYTc3MmE0MzAwZDVkYjRiZGI5MDgwMTdh
YTYuLjBhY2UzMmIwOWIxNzk0NTI2M2JiY2U4MmNkOTFiNTJkZDQyNGQxMTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC04MzAsNyArODMwLDcgQEAgc3RhdGljIHZv
aWQgc2VsZWN0RWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogc3RhdGljIEludFBvaW50IGRyYWdM
b2NGb3JESFRNTERyYWcoY29uc3QgSW50UG9pbnQmIG1vdXNlRHJhZ2dlZFBvaW50LCBjb25zdCBJ
bnRQb2ludCYgZHJhZ09yaWdpbiwgY29uc3QgSW50UG9pbnQmIGRyYWdJbWFnZU9mZnNldCwgYm9v
bCBpc0xpbmtJbWFnZSkKIHsKICAgICAvLyBkcmFnSW1hZ2VPZmZzZXQgaXMgdGhlIGN1cnNvciBw
b3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgbG93ZXItbGVmdCBjb3JuZXIgb2YgdGhlIGltYWdlLgot
I2lmIFBMQVRGT1JNKENPQ09BKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAvLyBXZSBhZGQgaW4g
dGhlIFkgZGltZW5zaW9uIGJlY2F1c2Ugd2UgYXJlIGEgZmxpcHBlZCB2aWV3LCBzbyBhZGRpbmcg
bW92ZXMgdGhlIGltYWdlIGRvd24uCiAgICAgY29uc3QgaW50IHlPZmZzZXQgPSBkcmFnSW1hZ2VP
ZmZzZXQueSgpOwogI2Vsc2UKQEAgLTEyMjgsMTIgKzEyMjgsMzEgQEAgdm9pZCBEcmFnQ29udHJv
bGxlcjo6ZG9TeXN0ZW1EcmFnKERyYWdJbWFnZSBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGRyYWdM
b2MsIGNvbnMKICAgICBEcmFnSXRlbSBpdGVtOwogICAgIGl0ZW0uaW1hZ2UgPSBXVEZNb3ZlKGlt
YWdlKTsKICAgICBpdGVtLnNvdXJjZUFjdGlvbiA9IHN0YXRlLnR5cGU7Ci0gICAgaXRlbS5ldmVu
dFBvc2l0aW9uSW5Db250ZW50Q29vcmRpbmF0ZXMgPSB2aWV3UHJvdGVjdG9yLT5yb290Vmlld1Rv
Q29udGVudHMoZnJhbWUudmlldygpLT5jb250ZW50c1RvUm9vdFZpZXcoZXZlbnRQb3MpKTsKLSAg
ICBpdGVtLmRyYWdMb2NhdGlvbkluQ29udGVudENvb3JkaW5hdGVzID0gdmlld1Byb3RlY3Rvci0+
cm9vdFZpZXdUb0NvbnRlbnRzKGZyYW1lLnZpZXcoKS0+Y29udGVudHNUb1Jvb3RWaWV3KGRyYWdM
b2MpKTsKKworICAgIGF1dG8gZXZlbnRQb3NpdGlvbkluUm9vdFZpZXdDb29yZGluYXRlcyA9IGZy
YW1lLnZpZXcoKS0+Y29udGVudHNUb1Jvb3RWaWV3KGV2ZW50UG9zKTsKKyAgICBhdXRvIGRyYWdM
b2NhdGlvbkluUm9vdFZpZXdDb29yZGluYXRlcyA9IGZyYW1lLnZpZXcoKS0+Y29udGVudHNUb1Jv
b3RWaWV3KGRyYWdMb2MpOworICAgIGl0ZW0uZXZlbnRQb3NpdGlvbkluQ29udGVudENvb3JkaW5h
dGVzID0gdmlld1Byb3RlY3Rvci0+cm9vdFZpZXdUb0NvbnRlbnRzKGV2ZW50UG9zaXRpb25JblJv
b3RWaWV3Q29vcmRpbmF0ZXMpOworICAgIGl0ZW0uZHJhZ0xvY2F0aW9uSW5Db250ZW50Q29vcmRp
bmF0ZXMgPSB2aWV3UHJvdGVjdG9yLT5yb290Vmlld1RvQ29udGVudHMoZHJhZ0xvY2F0aW9uSW5S
b290Vmlld0Nvb3JkaW5hdGVzKTsKICAgICBpdGVtLmV2ZW50UG9zaXRpb25JbldpbmRvd0Nvb3Jk
aW5hdGVzID0gZnJhbWUudmlldygpLT5jb250ZW50c1RvV2luZG93KGl0ZW0uZXZlbnRQb3NpdGlv
bkluQ29udGVudENvb3JkaW5hdGVzKTsKICAgICBpdGVtLmRyYWdMb2NhdGlvbkluV2luZG93Q29v
cmRpbmF0ZXMgPSBmcmFtZS52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3coaXRlbS5kcmFnTG9jYXRp
b25JbkNvbnRlbnRDb29yZGluYXRlcyk7CiAgICAgaWYgKGF1dG8gZWxlbWVudCA9IHN0YXRlLnNv
dXJjZSkgewotICAgICAgICBpdGVtLmVsZW1lbnRCb3VuZHMgPSBlbGVtZW50LT5ib3VuZHNJblJv
b3RWaWV3U3BhY2UoKTsKKyAgICAgICAgYXV0byBkYXRhVHJhbnNmZXJJbWFnZUVsZW1lbnQgPSBz
dGF0ZS5kYXRhVHJhbnNmZXItPmRyYWdJbWFnZUVsZW1lbnQoKTsKKyAgICAgICAgaWYgKHN0YXRl
LnR5cGUgPT0gRHJhZ1NvdXJjZUFjdGlvbkRIVE1MKSB7CisgICAgICAgICAgICAvLyBJZiB0aGUg
ZHJhZyBpbWFnZSBoYXMgYmVlbiBjdXN0b21pemVkLCBmYWxsIGJhY2sgdG8gcG9zaXRpb25pbmcg
dGhlIHByZXZpZXcgcmVsYXRpdmUgdG8gdGhlIGRyYWcgZXZlbnQgbG9jYXRpb24uCisgICAgICAg
ICAgICBJbnRTaXplIGRyYWdQcmV2aWV3U2l6ZTsKKyAgICAgICAgICAgIGlmIChkYXRhVHJhbnNm
ZXJJbWFnZUVsZW1lbnQpCisgICAgICAgICAgICAgICAgZHJhZ1ByZXZpZXdTaXplID0gZGF0YVRy
YW5zZmVySW1hZ2VFbGVtZW50LT5ib3VuZHNJblJvb3RWaWV3U3BhY2UoKS5zaXplKCk7CisgICAg
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBkcmFnUHJldmlld1NpemUgPSBkcmFnSW1h
Z2VTaXplKGl0ZW0uaW1hZ2UuZ2V0KCkpOworICAgICAgICAgICAgICAgIGlmIChhdXRvKiBwYWdl
ID0gZnJhbWUucGFnZSgpKQorICAgICAgICAgICAgICAgICAgICBkcmFnUHJldmlld1NpemUuc2Nh
bGUoMSAvIHBhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgaXRlbS5kcmFnUHJldmlld0ZyYW1lSW5Sb290Vmlld0Nvb3JkaW5hdGVzID0geyBkcmFn
TG9jYXRpb25JblJvb3RWaWV3Q29vcmRpbmF0ZXMsIFdURk1vdmUoZHJhZ1ByZXZpZXdTaXplKSB9
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gV2UgY2FuIHNpbXBseSBwb3NpdGlv
biB0aGUgcHJldmlldyBzaW1wbHkgdXNpbmcgdGhlIGJvdW5kcyBvZiB0aGUgZHJhZyBzb3VyY2Ug
ZWxlbWVudC4KKyAgICAgICAgICAgIGl0ZW0uZHJhZ1ByZXZpZXdGcmFtZUluUm9vdFZpZXdDb29y
ZGluYXRlcyA9IGVsZW1lbnQtPmJvdW5kc0luUm9vdFZpZXdTcGFjZSgpOworICAgICAgICB9CisK
ICAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGxpbms7CiAgICAgICAgIGlmIChlbGVtZW50LT5pc0xp
bmsoKSkKICAgICAgICAgICAgIGxpbmsgPSBlbGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRHJhZ0l0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJ
dGVtLmgKaW5kZXggMjhmNjdjNjc5ZWU3Y2JkNWU0ZmU2NzIzZjdmNDkwYTEwNTY1OWUyMC4uYjBm
YWEwMzY5YTE4MTU0NjliNTY5NmEzMGU4NmNkNzhhYzUwYzAzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0l0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9EcmFnSXRlbS5oCkBAIC00Niw3ICs0Niw3IEBAIHN0cnVjdCBEcmFnSXRlbSBmaW5hbCB7CiAg
ICAgSW50UG9pbnQgZHJhZ0xvY2F0aW9uSW5XaW5kb3dDb29yZGluYXRlczsKICAgICBTdHJpbmcg
dGl0bGU7CiAgICAgVVJMIHVybDsKLSAgICBJbnRSZWN0IGVsZW1lbnRCb3VuZHM7CisgICAgSW50
UmVjdCBkcmFnUHJldmlld0ZyYW1lSW5Sb290Vmlld0Nvb3JkaW5hdGVzOwogCiAgICAgUGFzdGVi
b2FyZFdyaXRlckRhdGEgZGF0YTsKIApAQCAtNjAsNyArNjAsNyBAQCB2b2lkIERyYWdJdGVtOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICAvLyBGSVhNRSgxNzM4MTUpOiBXZSBz
aG91bGQgZW5jb2RlIGFuZCBkZWNvZGUgUGFzdGVib2FyZFdyaXRlckRhdGEgYW5kIHBsYXRmb3Jt
IGRyYWcgaW1hZ2UgZGF0YQogICAgIC8vIGhlcmUgdG9vLCBhcyBwYXJ0IG9mIG1vdmluZyBvZmYg
b2YgdGhlIGxlZ2FjeSBkcmFnZ2luZyBjb2RlcGF0aC4KICAgICBlbmNvZGVyLmVuY29kZUVudW0o
c291cmNlQWN0aW9uKTsKLSAgICBlbmNvZGVyIDw8IGltYWdlQW5jaG9yUG9pbnQgPDwgZXZlbnRQ
b3NpdGlvbkluQ29udGVudENvb3JkaW5hdGVzIDw8IGRyYWdMb2NhdGlvbkluQ29udGVudENvb3Jk
aW5hdGVzIDw8IGV2ZW50UG9zaXRpb25JbldpbmRvd0Nvb3JkaW5hdGVzIDw8IGRyYWdMb2NhdGlv
bkluV2luZG93Q29vcmRpbmF0ZXMgPDwgdGl0bGUgPDwgdXJsIDw8IGVsZW1lbnRCb3VuZHM7Cisg
ICAgZW5jb2RlciA8PCBpbWFnZUFuY2hvclBvaW50IDw8IGV2ZW50UG9zaXRpb25JbkNvbnRlbnRD
b29yZGluYXRlcyA8PCBkcmFnTG9jYXRpb25JbkNvbnRlbnRDb29yZGluYXRlcyA8PCBldmVudFBv
c2l0aW9uSW5XaW5kb3dDb29yZGluYXRlcyA8PCBkcmFnTG9jYXRpb25JbldpbmRvd0Nvb3JkaW5h
dGVzIDw8IHRpdGxlIDw8IHVybCA8PCBkcmFnUHJldmlld0ZyYW1lSW5Sb290Vmlld0Nvb3JkaW5h
dGVzOwogICAgIGJvb2wgaGFzSW5kaWNhdG9yRGF0YSA9IGltYWdlLmhhc0luZGljYXRvckRhdGEo
KTsKICAgICBlbmNvZGVyIDw8IGhhc0luZGljYXRvckRhdGE7CiAgICAgaWYgKGhhc0luZGljYXRv
ckRhdGEpCkBAIC04Niw3ICs4Niw3IEBAIGJvb2wgRHJhZ0l0ZW06OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBEcmFnSXRlbSYgcmVzdWx0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQudXJsKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmVsZW1lbnRCb3VuZHMpKQorICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocmVzdWx0LmRyYWdQcmV2aWV3RnJhbWVJblJvb3RWaWV3Q29vcmRpbmF0ZXMp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgYm9vbCBoYXNJbmRpY2F0b3JEYXRhOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoaGFzSW5kaWNhdG9yRGF0YSkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLmgKaW5kZXgg
M2IxYzMyOWI3MmE0MjM2OWY4NDAwMzMwZjU3ZmVjYmIxYWZmYmRiYi4uM2I3ODRmNzVhZTY5Zjlj
NjA3OTZhZGZhZDhmZGMxYWE3OGIxOTg5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL0RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaApAQCAtNDYsNyArNDYsNyBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIHN0cnVjdCBEcmFnU291cmNlU3RhdGUgewogICAgIFdlYkNv
cmU6OkRyYWdTb3VyY2VBY3Rpb24gYWN0aW9uIHsgV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbk5v
bmUgfTsKICAgICBDR1BvaW50IGFkanVzdGVkT3JpZ2luIHsgQ0dQb2ludFplcm8gfTsKLSAgICBD
R1JlY3QgZWxlbWVudEJvdW5kcyB7IENHUmVjdFplcm8gfTsKKyAgICBDR1JlY3QgZHJhZ1ByZXZp
ZXdGcmFtZUluUm9vdFZpZXdDb29yZGluYXRlcyB7IENHUmVjdFplcm8gfTsKICAgICBSZXRhaW5Q
dHI8VUlJbWFnZT4gaW1hZ2U7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yRGF0YT4gaW5kaWNhdG9yRGF0YTsKICAgICBTdHJpbmcgbGlua1RpdGxlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL0RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUu
bW0KaW5kZXggY2QzMGQyYmZhZjc4MWIyZjgxZmQ0ZTRkYTE2OGUyMmRhMjZhZWRkYS4uNTk0M2Yx
ZWM1ZmJjM2U5MzJhOGFkMGVlM2YxZGYzYmMxOTNjZmZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL0RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLm1tCkBAIC0x
NTksMTAgKzE1OSw4IEBAIFVJVGFyZ2V0ZWREcmFnUHJldmlldyAqRHJhZ0Ryb3BJbnRlcmFjdGlv
blN0YXRlOjpwcmV2aWV3Rm9yRHJhZ0l0ZW0oVUlEcmFnSXRlbSAqCiAgICAgICAgIHJldHVybiBu
aWw7CiAKICAgICBhdXRvJiBzb3VyY2UgPSBmb3VuZFNvdXJjZS52YWx1ZSgpOwotICAgIGlmIChz
aG91bGRVc2VEcmFnSW1hZ2VUb0NyZWF0ZVByZXZpZXdGb3JEcmFnU291cmNlKHNvdXJjZSkpIHsK
LSAgICAgICAgVmVjdG9yPEZsb2F0UmVjdD4gZW1wdHlDbGlwcGluZ1JlY3RzOwotICAgICAgICBy
ZXR1cm4gY3JlYXRlVGFyZ2V0ZWREcmFnUHJldmlldyhzb3VyY2UuaW1hZ2UuZ2V0KCksIGNvbnRl
bnRWaWV3LCBwcmV2aWV3Q29udGFpbmVyLCBzb3VyY2UuZWxlbWVudEJvdW5kcywgZW1wdHlDbGlw
cGluZ1JlY3RzLCBuaWwpOwotICAgIH0KKyAgICBpZiAoc2hvdWxkVXNlRHJhZ0ltYWdlVG9DcmVh
dGVQcmV2aWV3Rm9yRHJhZ1NvdXJjZShzb3VyY2UpKQorICAgICAgICByZXR1cm4gY3JlYXRlVGFy
Z2V0ZWREcmFnUHJldmlldyhzb3VyY2UuaW1hZ2UuZ2V0KCksIGNvbnRlbnRWaWV3LCBwcmV2aWV3
Q29udGFpbmVyLCBzb3VyY2UuZHJhZ1ByZXZpZXdGcmFtZUluUm9vdFZpZXdDb29yZGluYXRlcywg
eyB9LCBuaWwpOwogCiAgICAgaWYgKHNob3VsZFVzZVRleHRJbmRpY2F0b3JUb0NyZWF0ZVByZXZp
ZXdGb3JEcmFnU291cmNlKHNvdXJjZSkpIHsKICAgICAgICAgYXV0byBpbmRpY2F0b3IgPSBzb3Vy
Y2UuaW5kaWNhdG9yRGF0YS52YWx1ZSgpOwpAQCAtMjAzLDcgKzIwMSw3IEBAIHZvaWQgRHJhZ0Ry
b3BJbnRlcmFjdGlvblN0YXRlOjpzdGFnZURyYWdJdGVtKGNvbnN0IERyYWdJdGVtJiBpdGVtLCBV
SUltYWdlICpkcmFnCiAgICAgbV9zdGFnZWREcmFnU291cmNlID0ge3sKICAgICAgICAgc3RhdGlj
X2Nhc3Q8RHJhZ1NvdXJjZUFjdGlvbj4oaXRlbS5zb3VyY2VBY3Rpb24pLAogICAgICAgICBpdGVt
LmV2ZW50UG9zaXRpb25JbkNvbnRlbnRDb29yZGluYXRlcywKLSAgICAgICAgaXRlbS5lbGVtZW50
Qm91bmRzLAorICAgICAgICBpdGVtLmRyYWdQcmV2aWV3RnJhbWVJblJvb3RWaWV3Q29vcmRpbmF0
ZXMsCiAgICAgICAgIGRyYWdJbWFnZSwKICAgICAgICAgaXRlbS5pbWFnZS5pbmRpY2F0b3JEYXRh
KCksCiAgICAgICAgIGl0ZW0udGl0bGUuaXNFbXB0eSgpID8gbmlsIDogKE5TU3RyaW5nICopaXRl
bS50aXRsZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRl
eCBjNzIzM2JlMTMzMmRiOGI1ZmFlNzc4N2M5YTY4ZTYxM2Y0Y2EzYmY5Li5mYjc2MGEyY2E0ODg3
NTZhMGQ3N2M3OTI0ZGRmYzhiNjQ4MzQ2ZDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xODEyLDcgKzE4MTIsNyBAQCAtICh2b2lkKV9zdGFydERy
YWc6KGNvbnN0IERyYWdJdGVtJilkcmFnSXRlbQogICAgICAgICBfcHJpdmF0ZS0+dGV4dEluZGlj
YXRvckRhdGEgPSBhZG9wdE5TKFtbV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSBhbGxvY10gaW5pdFdp
dGhJbWFnZTppbWFnZSBzY2FsZTpfcHJpdmF0ZS0+cGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKV0p
OwogICAgIF9wcml2YXRlLT5kcmFnZ2VkTGlua1VSTCA9IGRyYWdJdGVtLnVybC5pc0VtcHR5KCkg
PyBuaWwgOiAoTlNVUkwgKilkcmFnSXRlbS51cmw7CiAgICAgX3ByaXZhdGUtPmRyYWdnZWRMaW5r
VGl0bGUgPSBkcmFnSXRlbS50aXRsZS5pc0VtcHR5KCkgPyBuaWwgOiAoTlNTdHJpbmcgKilkcmFn
SXRlbS50aXRsZTsKLSAgICBfcHJpdmF0ZS0+ZHJhZ2dlZEVsZW1lbnRCb3VuZHMgPSBkcmFnSXRl
bS5lbGVtZW50Qm91bmRzOworICAgIF9wcml2YXRlLT5kcmFnUHJldmlld0ZyYW1lSW5Sb290Vmll
d0Nvb3JkaW5hdGVzID0gZHJhZ0l0ZW0uZHJhZ1ByZXZpZXdGcmFtZUluUm9vdFZpZXdDb29yZGlu
YXRlczsKICAgICBfcHJpdmF0ZS0+ZHJhZ1NvdXJjZUFjdGlvbiA9IHN0YXRpY19jYXN0PFdlYkRy
YWdTb3VyY2VBY3Rpb24+KGRyYWdJdGVtLnNvdXJjZUFjdGlvbik7CiB9CiAKQEAgLTE4NDcsNyAr
MTg0Nyw3IEBAIC0gKE5TVVJMICopX2RyYWdnZWRMaW5rVVJMCiAKIC0gKENHUmVjdClfZHJhZ2dl
ZEVsZW1lbnRCb3VuZHMKIHsKLSAgICByZXR1cm4gX3ByaXZhdGUtPmRyYWdnZWRFbGVtZW50Qm91
bmRzOworICAgIHJldHVybiBfcHJpdmF0ZS0+ZHJhZ1ByZXZpZXdGcmFtZUluUm9vdFZpZXdDb29y
ZGluYXRlczsKIH0KIAogLSAoV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSAqKV9nZXREYXRhSW50ZXJh
Y3Rpb25EYXRhCkBAIC0xOTAzLDcgKzE5MDMsNyBAQCAtICh2b2lkKV9lbmRlZERhdGFJbnRlcmFj
dGlvbjooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBnbG9iYWw6KENHUG9pbnQpZ2xvYmFsUG9zaQog
ICAgIFdlYlRocmVhZExvY2soKTsKICAgICBfcHJpdmF0ZS0+cGFnZS0+ZHJhZ0NvbnRyb2xsZXIo
KS5kcmFnRW5kZWQoKTsKICAgICBfcHJpdmF0ZS0+ZGF0YU9wZXJhdGlvblRleHRJbmRpY2F0b3Ig
PSBudWxscHRyOwotICAgIF9wcml2YXRlLT5kcmFnZ2VkRWxlbWVudEJvdW5kcyA9IENHUmVjdE51
bGw7CisgICAgX3ByaXZhdGUtPmRyYWdQcmV2aWV3RnJhbWVJblJvb3RWaWV3Q29vcmRpbmF0ZXMg
PSBDR1JlY3ROdWxsOwogICAgIF9wcml2YXRlLT5kcmFnU291cmNlQWN0aW9uID0gV2ViRHJhZ1Nv
dXJjZUFjdGlvbk5vbmU7CiAgICAgX3ByaXZhdGUtPmRyYWdnZWRMaW5rVGl0bGUgPSBuaWw7CiAg
ICAgX3ByaXZhdGUtPmRyYWdnZWRMaW5rVVJMID0gbmlsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCmluZGV4IDNmMjE0Y2E4MzE1MWQwMzNlYmFiYWVi
YzlkM2FiNDEzMGQxMDNmOWEuLjVhNzNmMWFjNmFiMmE5OTI2NTE5YzcyYmVmYzJlNmRhYmE5M2M3
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0Rh
dGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgK
QEAgLTMwMSw3ICszMDEsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9O
KQogICAgIFJldGFpblB0cjxXZWJVSVRleHRJbmRpY2F0b3JEYXRhPiB0ZXh0SW5kaWNhdG9yRGF0
YTsKICAgICBSZXRhaW5QdHI8V2ViVUlUZXh0SW5kaWNhdG9yRGF0YT4gZGF0YU9wZXJhdGlvblRl
eHRJbmRpY2F0b3I7Ci0gICAgQ0dSZWN0IGRyYWdnZWRFbGVtZW50Qm91bmRzOworICAgIENHUmVj
dCBkcmFnUHJldmlld0ZyYW1lSW5Sb290Vmlld0Nvb3JkaW5hdGVzOwogICAgIFdlYkRyYWdTb3Vy
Y2VBY3Rpb24gZHJhZ1NvdXJjZUFjdGlvbjsKICAgICBSZXRhaW5QdHI8TlNVUkw+IGRyYWdnZWRM
aW5rVVJMOwogICAgIFJldGFpblB0cjxOU1N0cmluZz4gZHJhZ2dlZExpbmtUaXRsZTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1ZTU0Y2Q3MTc5
ZDI0NjA1M2ZkMTQ3ZjIwMWJiY2JiYjkwOWQxOGU0Li5iOGVhYjMyZWI5Y2M1ODdhYjQ0ZWQzMDNl
ZjM5MGQzY2FkMmE5MTQ0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTctMDktMTMgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPUyBEbkRdIFN1cHBvcnQgRGF0YVRy
YW5zZmVyLnNldERyYWdJbWFnZSB3aGVuIHN0YXJ0aW5nIGEgZHJhZyBvbiBpT1MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjcyMQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzQzNzM2NjA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgSW4gRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLCBhc2sgdGhlIFVJ
RHJhZ0ludGVyYWN0aW9uRGVsZWdhdGUgKFdLQ29udGVudFZpZXcpIGZvciB0YXJnZXRlZCBkcmFn
IHByZXZpZXdzIGFmdGVyCisgICAgICAgIHJldHJpZXZpbmcgVUlEcmFnSXRlbXMgZHVyaW5nIGEg
bGlmdC4gUmVtZW1iZXIgdGhlc2UgcHJldmlld3MgYWZ0ZXIgdGhlIGRyYWcgYW5kIGRyb3Agc2lt
dWxhdGlvbiBpcyBjb21wbGV0ZSwgc28KKyAgICAgICAgQVBJIHRlc3RzIChjdXJyZW50bHksIGp1
c3QgRHJhZ0xpZnRQcmV2aWV3RGF0YVRyYW5zZmVyU2V0RHJhZ0ltYWdlKSBjYW4gdmVyaWZ5IHRo
YXQgdGhlIGdlbmVyYXRlZCBkcmFnIHByZXZpZXdzCisgICAgICAgIGFyZSBhcyBleHBlY3RlZC4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGF0
YVRyYW5zZmVyLXNldERyYWdJbWFnZS5odG1sOiBBZGRlZC4KKworICAgICAgICBBZGRzIGEgbmV3
IHRlc3QgaGFybmVzcyBjb250YWluaW5nIDUgZHJhZ2dhYmxlIGVsZW1lbnRzLCBlYWNoIGdlbmVy
YXRpbmcgYSBkcmFnIGltYWdlIHVzaW5nIGRpZmZlcmVudCBjb2RlcGF0aHMuCisgICAgICAgIERy
YWdMaWZ0UHJldmlld0RhdGFUcmFuc2ZlclNldERyYWdJbWFnZSB1c2VzIHRoaXMgcGFnZSB0byBj
aGVjayB0aGF0IHRoZSBmcmFtZSBvZiB0aGUgdGFyZ2V0ZWQgZHJhZyBwcmV2aWV3IGluCisgICAg
ICAgIGVhY2ggc2NlbmFyaW8gaXMgYXMgZXhwZWN0ZWQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbToKKyAgICAgICAgKGNoZWNrQ0dS
ZWN0SXNFcXVhbFRvQ0dSZWN0V2l0aExvZ2dpbmcpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxh
dG9yLmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxh
dG9yLm1tOgorICAgICAgICAoLVtEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgX3Jlc2V0U2ltdWxh
dGVkU3RhdGVdKToKKyAgICAgICAgKC1bRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIF9hZHZhbmNl
UHJvZ3Jlc3NdKToKKyAgICAgICAgKC1bRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIGxpZnRQcmV2
aWV3c10pOgorCiAyMDE3LTA5LTEyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtpT1MgRG5EXSBTdXBwb3J0IERhdGFUcmFuc2Zlci5nZXREYXRhIGFu
ZCBEYXRhVHJhbnNmZXIuc2V0RGF0YSB3aGVuIGRyYWdnaW5nIG9yIGRyb3BwaW5nCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGVkY2IyNDNlMjdkNDk0NjRmMWFhNThlM2ZmNzdjOTI4ZDI3NzM3
MzAuLjk0OWJiYzc0MDc0NzIyOTYwOTMyZDVhNjFlNjhkNjQwNmFiODY4OTggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC02ODksNiArNjg5LDcgQEAKIAkJRjQ2QTA5NUIxRUQ4QTZFNjAwRDRB
QTU1IC8qIGdpZi1hbmQtZmlsZS1pbnB1dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0N0QzMEVEMUVEMjhBNkMwMDA0ODJFMSAvKiBn
aWYtYW5kLWZpbGUtaW5wdXQuaHRtbCAqLzsgfTsKIAkJRjQ3NzI4OTkxRTRBRTNDMTAwN0FCRjZB
IC8qIGZ1bGwtcGFnZS1jb250ZW50ZWRpdGFibGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDc3Mjg5ODFFNEFFM0FEMDA3QUJGNkEg
LyogZnVsbC1wYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sICovOyB9OwogCQlGNDg1NkNBMzFFNjQ5
RUE4MDA5RDdFRTcgLyogYXR0YWNobWVudC1lbGVtZW50Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4NTZDQTIxRTY0OThBODAwOUQ3
RUU3IC8qIGF0dGFjaG1lbnQtZWxlbWVudC5odG1sICovOyB9OworCQlGNDg2QjFEMDFGNjc5NTIz
MDBGMzRCREQgLyogRGF0YVRyYW5zZmVyLXNldERyYWdJbWFnZS5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0ODZCMUNGMUY2Nzk0RkYw
MEYzNEJERCAvKiBEYXRhVHJhbnNmZXItc2V0RHJhZ0ltYWdlLmh0bWwgKi87IH07CiAJCUY0QTMy
RUM0MUYwNUYzODUwMDQ3QzU0NCAvKiBkcmFnc3RhcnQtY2hhbmdlLXNlbGVjdGlvbi1vZmZzY3Jl
ZW4uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNEEzMkVDMzFGMDVGMzc4MDA0N0M1NDQgLyogZHJhZ3N0YXJ0LWNoYW5nZS1zZWxlY3Rp
b24tb2Zmc2NyZWVuLmh0bWwgKi87IH07CiAJCUY0QTMyRUNCMUYwNjQzMzcwMDQ3QzU0NCAvKiBj
b250ZW50ZWRpdGFibGUtaW4taWZyYW1lLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRBMzJFQ0ExRjA2NDJGNDAwNDdDNTQ0IC8qIGNv
bnRlbnRlZGl0YWJsZS1pbi1pZnJhbWUuaHRtbCAqLzsgfTsKIAkJRjRBQjU3OEExRjY1MTY1NDAw
REIwREExIC8qIGN1c3RvbS1kcmFnZ2FibGUtZGl2Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRBQjU3ODkxRjY1MTY0QjAwREIwREEx
IC8qIGN1c3RvbS1kcmFnZ2FibGUtZGl2Lmh0bWwgKi87IH07CkBAIC03NzQsNiArNzc1LDcgQEAK
IAkJCWRzdFBhdGggPSBUZXN0V2ViS2l0QVBJLnJlc291cmNlczsKIAkJCWRzdFN1YmZvbGRlclNw
ZWMgPSA3OwogCQkJZmlsZXMgPSAoCisJCQkJRjQ4NkIxRDAxRjY3OTUyMzAwRjM0QkREIC8qIERh
dGFUcmFuc2Zlci1zZXREcmFnSW1hZ2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkx
QTlFNTJDOTEzRTY1RUY0MDA2OTE3RjUgLyogMTgtY2hhcmFjdGVycy5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCTM3OTAyOEI5MTRGQUMyNEMwMDdFNkI0MyAvKiBhY2NlcHRzRmlyc3RN
b3VzZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTFDMkI4MTg3MUM4OTI1QTAwMEE1
NTI5RiAvKiBBaGVtLnR0ZiBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE3MjUsNiArMTcyNyw3
IEBACiAJCUY0N0QzMEVCMUVEMjg2MTkwMDA0ODJFMSAvKiBhcHBsZS5naWYgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5naWY7IHBhdGggPSBh
cHBsZS5naWY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0QzMEVEMUVEMjhBNkMw
MDA0ODJFMSAvKiBnaWYtYW5kLWZpbGUtaW5wdXQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJnaWYtYW5kLWZp
bGUtaW5wdXQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0ODU2Q0EyMUU2
NDk4QTgwMDlEN0VFNyAvKiBhdHRhY2htZW50LWVsZW1lbnQuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9ICJhdHRhY2htZW50LWVsZW1lbnQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY0ODZCMUNGMUY2Nzk0RkYwMEYzNEJERCAvKiBEYXRhVHJhbnNmZXItc2V0
RHJhZ0ltYWdlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiRGF0YVRyYW5zZmVy
LXNldERyYWdJbWFnZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ5MzI0
N0MxRjQ0REY4RDAwNkY0MzM2IC8qIFVJS2l0U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVJS2l0U1BJ
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0QTMyRUMzMUYwNUYzNzgwMDQ3QzU0
NCAvKiBkcmFnc3RhcnQtY2hhbmdlLXNlbGVjdGlvbi1vZmZzY3JlZW4uaHRtbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9
ICJkcmFnc3RhcnQtY2hhbmdlLXNlbGVjdGlvbi1vZmZzY3JlZW4uaHRtbCI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY0QTMyRUNBMUYwNjQyRjQwMDQ3QzU0NCAvKiBjb250ZW50ZWRp
dGFibGUtaW4taWZyYW1lLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiY29udGVudGVkaXRhYmxlLWluLWlmcmFt
ZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxNjYsNiArMjE2OSw3IEBA
CiAJCQkJNUMyOTM2OTQxRDVCRkQxOTAwREVBQjFFIC8qIENvb2tpZU1lc3NhZ2UuaHRtbCAqLywK
IAkJCQlGNEFCNTc4OTFGNjUxNjRCMDBEQjBEQTEgLyogY3VzdG9tLWRyYWdnYWJsZS1kaXYuaHRt
bCAqLywKIAkJCQlGNDUxMkUxMjFGNjBDNDM0MDBCQjM2OUUgLyogRGF0YVRyYW5zZmVySXRlbS1n
ZXRBc0VudHJ5Lmh0bWwgKi8sCisJCQkJRjQ4NkIxQ0YxRjY3OTRGRjAwRjM0QkREIC8qIERhdGFU
cmFuc2Zlci1zZXREcmFnSW1hZ2UuaHRtbCAqLywKIAkJCQkwNzk5QzM0QTFFQkEzMkY0MDAzQjc1
MzIgLyogZGlzYWJsZUdldFVzZXJNZWRpYS5odG1sICovLAogCQkJCUY0MUFCOTlFMUVGNDY5MkMw
MDgzRkEwOCAvKiBkaXYtYW5kLWxhcmdlLWltYWdlLmh0bWwgKi8sCiAJCQkJODM3QTM1RjAxRDlB
MUU2NDAwNjYzQzU3IC8qIERvd25sb2FkUmVxdWVzdEJsb2JVUkwuaHRtbCAqLywKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGF0YVRyYW5zZmVyLXNl
dERyYWdJbWFnZS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9E
YXRhVHJhbnNmZXItc2V0RHJhZ0ltYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQzYjk3MDE1NTIzOTJj
MTlmOTIyZDA5YmU1ZTlkYjNlMTk5N2IyMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGF0YVRyYW5zZmVyLXNldERyYWdJbWFnZS5odG1s
CkBAIC0wLDAgKzEsNzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8bWV0YSBuYW1lPSJ2
aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoIj4KKzxoZWFkPgorPHN0eWxlPgor
ICAgIGJvZHksIGh0bWwgeworICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgaGVpZ2h0OiAx
MDAlOworICAgIH0KKworICAgIGJvZHkgeworICAgICAgICBtYXJnaW46IDA7CisgICAgfQorCisg
ICAgI3JlZCB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAgd2lkdGg6
IDMwMHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgIH0KKworICAgICNncmVlbiB7Cisg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICB3aWR0aDogMzAwcHg7Cisg
ICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgfQorCisgICAgI2JsdWUgeworICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICB3aWR0aDogMzAwcHg7CisgICAgICAgIGhlaWdo
dDogMTAwcHg7CisgICAgfQorCisgICAgI2N5YW4geworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBjeWFuOworICAgICAgICB3aWR0aDogMzAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7Cisg
ICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGRpdiBpZD0icmVkIiBkcmFnZ2FibGU9InRydWUi
PjwvZGl2PgorPGRpdiBpZD0iZ3JlZW4iIGRyYWdnYWJsZT0idHJ1ZSI+PC9kaXY+Cis8ZGl2IGlk
PSJibHVlIiBkcmFnZ2FibGU9InRydWUiPjwvZGl2PgorPGRpdiBpZD0iY3lhbiIgZHJhZ2dhYmxl
PSJ0cnVlIj48L2Rpdj4KKzxpbWcgaWQ9Imljb24iIHNyYz0iaWNvbi5wbmciPjwvaW1nPgorPGRp
dj48Y29kZT5UbyBtYW51YWxseSB0ZXN0LCBhdHRlbXB0IHRvIGRyYWcgZWFjaCBvZiB0aGUgY29s
b3JlZCBibG9ja3MuPC9jb2RlPjwvZGl2PgorCis8c2NyaXB0PgorcmVkLmFkZEV2ZW50TGlzdGVu
ZXIoImRyYWdzdGFydCIsIGV2ZW50ID0+IHsKKyAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RHJh
Z0ltYWdlKGljb24sIDAsIDApOworICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0
L3BsYWluIiwgInJlZCIpOworfSk7CisKK2dyZWVuLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdzdGFy
dCIsIGV2ZW50ID0+IHsKKyAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlKGljb24s
IDEwMCwgMTAwKTsKKyAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgidGV4dC9wbGFpbiIs
ICJncmVlbiIpOworfSk7CisKK2JsdWUuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IiwgZXZl
bnQgPT4geworICAgIGxldCBpbWFnZSA9IG5ldyBJbWFnZSgpOworICAgIGltYWdlLnNyYyA9IGlj
b24uc3JjOworICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREcmFnSW1hZ2UoaW1hZ2UsIDAsIDAp
OworICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIiwgImJsdWUiKTsK
K30pOworCitjeWFuLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdzdGFydCIsIGV2ZW50ID0+IHsKKyAg
ICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgidGV4dC9wbGFpbiIsICJjeWFuIik7Cit9KTsK
Kzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbQppbmRleCA4NWQ5NjRmNGZkNzdlMjYwY2ZiMzkw
Y2E0MjYxNmM1MzBjNTkwMGY2Li42NTMyNTc5MDc0ZTEzMGZhN2IwODJlZDlhZTM0NTdiYjBiZTE2
ZjE4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJh
Y3Rpb25UZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50
ZXJhY3Rpb25UZXN0cy5tbQpAQCAtMTAyLDYgKzEwMiwxNCBAQCBzdGF0aWMgTlNWYWx1ZSAqbWFr
ZUNHUmVjdFZhbHVlKENHRmxvYXQgeCwgQ0dGbG9hdCB5LCBDR0Zsb2F0IHdpZHRoLCBDR0Zsb2F0
IGhlaQogICAgIHJldHVybiBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1JlY3Q6Q0dSZWN0TWFrZSh4LCB5
LCB3aWR0aCwgaGVpZ2h0KV07CiB9CiAKK3N0YXRpYyB2b2lkIGNoZWNrQ0dSZWN0SXNFcXVhbFRv
Q0dSZWN0V2l0aExvZ2dpbmcoQ0dSZWN0IGV4cGVjdGVkLCBDR1JlY3Qgb2JzZXJ2ZWQpCit7Cisg
ICAgQk9PTCBpc0VxdWFsID0gQ0dSZWN0RXF1YWxUb1JlY3QoZXhwZWN0ZWQsIG9ic2VydmVkKTsK
KyAgICBFWFBFQ1RfVFJVRShpc0VxdWFsKTsKKyAgICBpZiAoIWlzRXF1YWwpCisgICAgICAgIE5T
TG9nKEAiRXhwZWN0ZWQ6ICVAIGJ1dCBvYnNlcnZlZDogJUAiLCBOU1N0cmluZ0Zyb21DR1JlY3Qo
ZXhwZWN0ZWQpLCBOU1N0cmluZ0Zyb21DR1JlY3Qob2JzZXJ2ZWQpKTsKK30KKwogc3RhdGljIHZv
aWQgY2hlY2tTZWxlY3Rpb25SZWN0c1dpdGhMb2dnaW5nKE5TQXJyYXkgKmV4cGVjdGVkLCBOU0Fy
cmF5ICpvYnNlcnZlZCkKIHsKICAgICBpZiAoIVtleHBlY3RlZCBpc0VxdWFsVG9BcnJheTpvYnNl
cnZlZF0pCkBAIC0xNDMzLDYgKzE0NDEsMzMgQEAgVEVTVChEYXRhSW50ZXJhY3Rpb25UZXN0cywg
QWRkaXRpb25hbExpbmtBbmRJbWFnZUludG9Db250ZW50RWRpdGFibGUpCiAgICAgRVhQRUNUX1dL
X1NUUkVRKCJodHRwczovL3d3dy5hcHBsZS5jb20vIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDpAImVkaXRvci5xdWVyeVNlbGVjdG9yKCdhJykuaHJlZiJdKTsKIH0KIAor
VEVTVChEYXRhSW50ZXJhY3Rpb25UZXN0cywgRHJhZ0xpZnRQcmV2aWV3RGF0YVRyYW5zZmVyU2V0
RHJhZ0ltYWdlKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAg
W3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiRGF0YVRyYW5zZmVyLXNl
dERyYWdJbWFnZSJdOworICAgIGF1dG8gc2ltdWxhdG9yID0gYWRvcHROUyhbW0RhdGFJbnRlcmFj
dGlvblNpbXVsYXRvciBhbGxvY10gaW5pdFdpdGhXZWJWaWV3OndlYlZpZXcuZ2V0KCldKTsKKwor
ICAgIC8vIFVzZSBEYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlIHRvIHNwZWNpZnkgYW4gZXhpc3Rp
bmcgaW1hZ2UgZWxlbWVudCBpbiB0aGUgRE9NLgorICAgIFtzaW11bGF0b3IgcnVuRnJvbTpDR1Bv
aW50TWFrZSgxMDAsIDUwKSB0bzpDR1BvaW50TWFrZSgyNTAsIDUwKV07CisgICAgY2hlY2tDR1Jl
Y3RJc0VxdWFsVG9DR1JlY3RXaXRoTG9nZ2luZyh7ezEwMCwgNTB9LCB7MjE1LCAxNzR9fSwgW3Np
bXVsYXRvciBsaWZ0UHJldmlld3NdWzBdLnZpZXcuZnJhbWUpOworCisgICAgLy8gVXNlIERhdGFU
cmFuc2Zlci5zZXREcmFnSW1hZ2UgdG8gc3BlY2lmeSBhbiBleGlzdGluZyBpbWFnZSBlbGVtZW50
IGluIHRoZSBET00sIHdpdGggeCBhbmQgeSBvZmZzZXRzLgorICAgIFtzaW11bGF0b3IgcnVuRnJv
bTpDR1BvaW50TWFrZSgxMCwgMTUwKSB0bzpDR1BvaW50TWFrZSgyNTAsIDE1MCldOworICAgIGNo
ZWNrQ0dSZWN0SXNFcXVhbFRvQ0dSZWN0V2l0aExvZ2dpbmcoe3stOTAsIDUwfSwgezIxNSwgMTc0
fX0sIFtzaW11bGF0b3IgbGlmdFByZXZpZXdzXVswXS52aWV3LmZyYW1lKTsKKworICAgIC8vIFVz
ZSBEYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlIHRvIHNwZWNpZnkgYSBuZXdseSBjcmVhdGVkIElt
YWdlLCBkaXNjb25uZWN0ZWQgZnJvbSB0aGUgRE9NLgorICAgIFtzaW11bGF0b3IgcnVuRnJvbTpD
R1BvaW50TWFrZSgxMDAsIDI1MCkgdG86Q0dQb2ludE1ha2UoMjUwLCAyNTApXTsKKyAgICBjaGVj
a0NHUmVjdElzRXF1YWxUb0NHUmVjdFdpdGhMb2dnaW5nKHt7MTAwLCAyNTB9LCB7MjE1LCAxNzR9
fSwgW3NpbXVsYXRvciBsaWZ0UHJldmlld3NdWzBdLnZpZXcuZnJhbWUpOworCisgICAgLy8gRG9u
J3QgdXNlIERhdGFUcmFuc2Zlci5zZXREcmFnSW1hZ2UgYW5kIGZhbGwgYmFjayB0byBzbmFwc2hv
dHRpbmcgdGhlIGRyYWdnZWQgZWxlbWVudC4KKyAgICBbc2ltdWxhdG9yIHJ1bkZyb206Q0dQb2lu
dE1ha2UoNTAsIDM1MCkgdG86Q0dQb2ludE1ha2UoMjUwLCAzNTApXTsKKyAgICBjaGVja0NHUmVj
dElzRXF1YWxUb0NHUmVjdFdpdGhMb2dnaW5nKHt7MCwgMzAwfSwgezMwMCwgMTAwfX0sIFtzaW11
bGF0b3IgbGlmdFByZXZpZXdzXVswXS52aWV3LmZyYW1lKTsKKworICAgIC8vIFBlcmZvcm0gYSBu
b3JtYWwgZHJhZyBvbiBhbiBpbWFnZS4KKyAgICBbc2ltdWxhdG9yIHJ1bkZyb206Q0dQb2ludE1h
a2UoNTAsIDQ1MCkgdG86Q0dQb2ludE1ha2UoMjUwLCA0NTApXTsKKyAgICBjaGVja0NHUmVjdElz
RXF1YWxUb0NHUmVjdFdpdGhMb2dnaW5nKHt7MCwgNDAwfSwgezIxNSwgMTc0fX0sIFtzaW11bGF0
b3IgbGlmdFByZXZpZXdzXVswXS52aWV3LmZyYW1lKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSQogCiAjZW5kaWYgLy8gRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IuaCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5oCmluZGV4
IDU1ZjY3ODU1YjFjMzdkZjQzYjUyY2VjMDZiOTdiMWM3Yjc5ODM4NmYuLjcxMGVjNzZjMWMxNGVl
NmY3NzdhZWQ4NDVmMWUyNWZlODU0YjkyMGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5oCkBAIC0xMzYsNiArMTM2LDcgQEAgdHlw
ZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgRGF0YUludGVyYWN0aW9uUGhhc2UpIHsKIAogICAgIFJl
dGFpblB0cjxOU011dGFibGVEaWN0aW9uYXJ5PE5TTnVtYmVyICosIE5TVmFsdWUgKj4+X3JlbWFp
bmluZ0FkZGl0aW9uYWxJdGVtUmVxdWVzdExvY2F0aW9uc0J5UHJvZ3Jlc3M7CiAgICAgUmV0YWlu
UHRyPE5TTXV0YWJsZUFycmF5PE5TVmFsdWUgKj4+X3F1ZXVlZEFkZGl0aW9uYWxJdGVtUmVxdWVz
dExvY2F0aW9uczsKKyAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk8VUlUYXJnZXRlZERyYWdQ
cmV2aWV3ICo+PiBfbGlmdFByZXZpZXdzOwogCiAgICAgYm9vbCBfaXNEb25lV2FpdGluZ0Zvcklu
cHV0U2Vzc2lvbjsKICAgICBCT09MIF9zaG91bGRQZXJmb3JtT3BlcmF0aW9uOwpAQCAtMTY1LDYg
KzE2Niw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIERhdGFJbnRlcmFjdGlvblBoYXNl
KSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXkgKmZpbmFsU2VsZWN0
aW9uUmVjdHM7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIERhdGFJbnRlcmFjdGlv
blBoYXNlIHBoYXNlOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgbGFz
dEtub3duRHJhZ0NhcmV0UmVjdDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNB
cnJheTxVSVRhcmdldGVkRHJhZ1ByZXZpZXcgKj4gKmxpZnRQcmV2aWV3czsKIAogQGVuZAogCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0
b3IubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Iu
bW0KaW5kZXggNTFlZWRkYWU5YjVkY2ZlYTk1ZjI3OGFkYTZiZjc2NWVhM2MwYWY3OS4uZjFkZjc4
NjhjNjNkMmMwY2RjM2JhMTYzNDVjZWVjZTg1ZWZlZTMxZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbQpAQCAtMzQzLDYgKzM0
Myw3IEBAIC0gKHZvaWQpX3Jlc2V0U2ltdWxhdGVkU3RhdGUKICAgICBfbGFzdEtub3duRHJhZ0Nh
cmV0UmVjdCA9IENHUmVjdFplcm87CiAgICAgX3JlbWFpbmluZ0FkZGl0aW9uYWxJdGVtUmVxdWVz
dExvY2F0aW9uc0J5UHJvZ3Jlc3MgPSBuaWw7CiAgICAgX3F1ZXVlZEFkZGl0aW9uYWxJdGVtUmVx
dWVzdExvY2F0aW9ucyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwor
ICAgIF9saWZ0UHJldmlld3MgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRd
KTsKIH0KIAogLSAoTlNBcnJheSAqKW9ic2VydmVkRXZlbnROYW1lcwpAQCAtNTAxLDYgKzUwMiw4
IEBAIC0gKHZvaWQpX2FkdmFuY2VQcm9ncmVzcwogICAgICAgICAgICAgW2l0ZW1Qcm92aWRlcnMg
YWRkT2JqZWN0Oml0ZW0uaXRlbVByb3ZpZGVyXTsKICAgICAgICAgICAgIFVJVGFyZ2V0ZWREcmFn
UHJldmlldyAqbGlmdFByZXZpZXcgPSBbW193ZWJWaWV3IGRyYWdJbnRlcmFjdGlvbkRlbGVnYXRl
XSBkcmFnSW50ZXJhY3Rpb246W193ZWJWaWV3IGRyYWdJbnRlcmFjdGlvbl0gcHJldmlld0Zvckxp
ZnRpbmdJdGVtOml0ZW0gc2Vzc2lvbjpfZHJhZ1Nlc3Npb24uZ2V0KCldOwogICAgICAgICAgICAg
RVhQRUNUX1RSVUUoISFsaWZ0UHJldmlldyk7CisgICAgICAgICAgICBpZiAobGlmdFByZXZpZXcp
CisgICAgICAgICAgICAgICAgW19saWZ0UHJldmlld3MgYWRkT2JqZWN0OmxpZnRQcmV2aWV3XTsK
ICAgICAgICAgfQogCiAgICAgICAgIF9kcm9wU2Vzc2lvbiA9IGFkb3B0TlMoW1tNb2NrRHJvcFNl
c3Npb24gYWxsb2NdIGluaXRXaXRoUHJvdmlkZXJzOml0ZW1Qcm92aWRlcnMgbG9jYXRpb246c2Vs
Zi5fY3VycmVudExvY2F0aW9uIHdpbmRvdzpbX3dlYlZpZXcgd2luZG93XSBhbGxvd01vdmU6c2Vs
Zi5zaG91bGRBbGxvd01vdmVPcGVyYXRpb25dKTsKQEAgLTU3Miw2ICs1NzUsMTEgQEAgLSAoRGF0
YUludGVyYWN0aW9uUGhhc2UpcGhhc2UKICAgICByZXR1cm4gX3BoYXNlOwogfQogCistIChOU0Fy
cmF5PFVJVGFyZ2V0ZWREcmFnUHJldmlldyAqPiAqKWxpZnRQcmV2aWV3cworeworICAgIHJldHVy
biBfbGlmdFByZXZpZXdzLmdldCgpOworfQorCiAtIChDR1JlY3QpbGFzdEtub3duRHJhZ0NhcmV0
UmVjdAogewogICAgIHJldHVybiBfbGFzdEtub3duRHJhZ0NhcmV0UmVjdDsK
</data>
<flag name="review"
          id="340614"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320520</attachid>
            <date>2017-09-11 22:57:05 -0700</date>
            <delta_ts>2017-09-11 23:59:51 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-176721-20170911225705.patch</filename>
            <type>text/plain</type>
            <size>28871</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxOTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjU4ODYzYTI1ZmI1NDRm
ZjcwNDliOTEyOWU1OTM2MWY4MTE0Mzc3OC4uY2NjZDE5NjFmN2U0YTQ4YmNkZmI5MjNmMzI0YzQ0
OWI5YjNlM2QxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE3LTA5LTEyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBT
dXBwb3J0IERhdGFUcmFuc2Zlci5zZXREcmFnSW1hZ2Ugd2hlbiBzdGFydGluZyBhIGRyYWcgb24g
aU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY3
MjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0MzczNjYwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgQWRkcyBzdXBwb3J0IGZvciBzZXR0aW5nIHRoZSBk
cmFnIGxpZnQgcHJldmlldyBmcmFtZSBpbiB0aGUgY2FzZSB3aGVyZSBEYXRhVHJhbnNmZXIuc2V0
RHJhZ0ltYWdlIGlzIGJlaW5nIHVzZWQKKyAgICAgICAgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQg
ZHJhZyBwcmV2aWV3LiBDdXJyZW50bHksIHRoZSBmcmFtZSBvZiB0aGUgZHJhZyBwcmV2aWV3IHdl
IHN1cHBseSBpbiB0aGlzIGNhc2UgaXMgdGhlCisgICAgICAgIHNhbWUgYXMgdGhlIGJvdW5kcyBv
ZiB0aGUgc291cmNlIGVsZW1lbnQgaW4gcm9vdCB2aWV3IGNvb3JkaW5hdGVzLCBidXQgdGhpcyBt
ZWFucyB0aGF0IGFueSBjdXN0b20gZHJhZyBpbWFnZQorICAgICAgICB0aGUgcGFnZSBzdXBwbGll
cyB3aWxsIGJlIHN0cmV0Y2hlZCB0byBmaWxsIHRoZSBmcmFtZSBvZiB0aGUgc291cmNlIGVsZW1l
bnQuIEluc3RlYWQsIHdoZW4gaGFuZGxpbmcgYSBESFRNTCBkcmFnLAorICAgICAgICBwb3NpdGlv
biB0aGUgbGlmdCBhbmQgY2FuY2VsIGRyYWcgcHJldmlld3MgcmVsYXRpdmUgdG8gdGhlIGV2ZW50
IGxvY2F0aW9uLCByZXNwZWN0aW5nIGFueSBkcmFnIG9mZnNldCBzcGVjaWZpZWQKKyAgICAgICAg
aW4gc2V0RHJhZ0ltYWdlLiBUaGUgc2l6ZSBvZiB0aGlzIHByZXZpZXcgbWF0Y2hlcyB0aGUgc2l6
ZSBvZiB0aGUgZHJhZyBpbWFnZSBzb3VyY2UgKHNpbmNlIHRoaXMgaXMgYWxsIGluIHJvb3QKKyAg
ICAgICAgdmlldyBjb29yZGluYXRlcywgdGhpcyBtZWFucyB0aGUgZHJhZyBwcmV2aWV3IHdpbGwg
YWxzbyBlbmxhcmdlIGlmIHRoZSB1c2VyIHBpbmNoZXMgdG8gem9vbSBpbikuIElmIGEKKyAgICAg
ICAgZGlzY29ubmVjdGVkIGltYWdlIHNvdXJjZSBlbGVtZW50IHdhcyBwcm92aWRlZCwgdGhlbiB3
ZSBqdXN0IGZhbGwgYmFjayB0byB0aGUgaW1hZ2Ugc2l6ZS4KKworICAgICAgICBBZGRpdGlvbmFs
bHksIHJlbmFtZXMgRHJhZ0l0ZW0ncyBlbGVtZW50Qm91bmRzIHRvIGRyYWdQcmV2aWV3RnJhbWVJ
blJvb3RWaWV3Q29vcmRpbmF0ZXMgdG8gYmV0dGVyIHJlZmxlY3QgdGhlCisgICAgICAgIHB1cnBv
c2Ugb2YgdGhpcyB2YXJpYWJsZS4gVGhpcyBwYXRjaCBhbHNvIGludHJvZHVjZXMgQVBJIHRlc3Qg
cGx1bWJpbmcgdG8gZ3JhYiB0YXJnZXRlZCBkcmFnIHByZXZpZXdzIGZyb20gdGhlCisgICAgICAg
IGRyYWcgaW50ZXJhY3Rpb24gZGVsZWdhdGUgKGkuZS4gV0tDb250ZW50VmlldyksIGFuZCB1c2Vz
IHRoaXMgaW4gYSBuZXcgQVBJIHRlc3QgdGhhdCBjaGVja3MgdGhlIGZyYW1lIG9mIHRoZQorICAg
ICAgICByZXN1bHRpbmcgVUlUYXJnZXRlZERyYWdQcmV2aWV3IGFmdGVyIGluaXRpYXRpbmcgYSBk
cmFnIGluIHZhcmlvdXMgY2lyY3Vtc3RhbmNlcyAoc2VlIGNoYW5nZXMgaW4gVG9vbHMvIGZvciBt
b3JlCisgICAgICAgIGRldGFpbCkuCisKKyAgICAgICAgVGVzdDogRGF0YUludGVyYWN0aW9uVGVz
dHMuRHJhZ0xpZnRQcmV2aWV3RGF0YVRyYW5zZmVyU2V0RHJhZ0ltYWdlCisKKyAgICAgICAgKiBk
b20vRGF0YVRyYW5zZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6ZHJh
Z0ltYWdlRWxlbWVudCBjb25zdCk6CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlci5oOgorICAg
ICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZHJhZ0xv
Y0ZvckRIVE1MRHJhZyk6CisKKyAgICAgICAgVGhlIGxvZ2ljIHRvIGZsaXAgdGhlIHkgb2Zmc2V0
IHdoZW4gY29tcHV0aW5nIHRoZSBkcmFnIGxvY2F0aW9uIGlzIG9ubHkgcmVsZXZhbnQgb24gTWFj
LCBidXQgY3VycmVudGx5LCB0aGlzIGlzCisgICAgICAgIGd1YXJkZWQgYnkgI2lmIFBMQVRGT1JN
KENPQ09BKSwgd2hpY2ggY2F1c2VzIHRoZSB5IG9mZnNldCB0byBzaGlmdCB0aGUgZHJhZyBpbWFn
ZSBpbiB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uIG9uCisgICAgICAgIGlPUy4gVG8gZml4IHRoaXMs
IHNpbXBseSBjaGFuZ2UgdGhlIHBsYXRmb3JtIGRlZmluZSB0byBNYWMuCisKKyAgICAgICAgKFdl
YkNvcmU6OkRyYWdDb250cm9sbGVyOjpkb1N5c3RlbURyYWcpOgorICAgICAgICAqIHBsYXRmb3Jt
L0RyYWdJdGVtLmg6CisgICAgICAgIChXZWJDb3JlOjpEcmFnSXRlbTo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdJdGVtOjpkZWNvZGUpOgorCiAyMDE3LTA5LTExICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1MgV0syXSBT
dXBwb3J0IHRhcHBpbmcgdG8gYWRkIGl0ZW1zIHRvIHRoZSBjdXJyZW50IGRyYWcgc2Vzc2lvbiBp
biB3ZWIgY29udGVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiOGEyMmE3YmE1N2E0MzA5YjMzNzY3NWI5OWE1NTdh
ZWE1NDdjMmNjLi5lNDgwMzA2M2EyOTc2MGQ3NzA4MTQ5YzM3YmQ3M2ExNmE4NDQ0ZTVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE3LTA5LTEyICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBTdXBwb3J0IERhdGFUcmFuc2Zl
ci5zZXREcmFnSW1hZ2Ugd2hlbiBzdGFydGluZyBhIGRyYWcgb24gaU9TCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY3MjEKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzM0MzczNjYwPgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisK
KyAgICAgICAgUmVuYW1lIGVsZW1lbnRCb3VuZHMgPT4gZHJhZ1ByZXZpZXdGcmFtZUluUm9vdFZp
ZXdDb29yZGluYXRlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvRHJhZ0Ryb3BJbnRlcmFj
dGlvblN0YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9EcmFnRHJvcEludGVyYWN0aW9u
U3RhdGUubW06CisgICAgICAgIChXZWJLaXQ6OkRyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZTo6cHJl
dmlld0ZvckRyYWdJdGVtIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6RHJhZ0Ryb3BJbnRlcmFj
dGlvblN0YXRlOjpzdGFnZURyYWdJdGVtKToKKwogMjAxNy0wOS0xMSAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TIFdLMl0gU3VwcG9ydCB0YXBw
aW5nIHRvIGFkZCBpdGVtcyB0byB0aGUgY3VycmVudCBkcmFnIHNlc3Npb24gaW4gd2ViIGNvbnRl
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA4NTZhMWFlZTk4MWE5ZDZmMDQzMWQx
ZjRjNWFmMGNhOWFkMmEyYzcwLi4wZmY2M2Y1OWUxOWMzN2FiYzA0MzQ1ZWZlMTg1ZDYxYWYyY2Iz
N2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTct
MDktMTIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
W2lPUyBEbkRdIFN1cHBvcnQgRGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZSB3aGVuIHN0YXJ0aW5n
IGEgZHJhZyBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3NjcyMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQzNzM2NjA+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBSZW5hbWUgZWxlbWVudEJvdW5k
cyA9PiBkcmFnUHJldmlld0ZyYW1lSW5Sb290Vmlld0Nvb3JkaW5hdGVzLiAoTm90ZTogVW5mb3J0
dW5hdGVseSwgX2RyYWdnZWRFbGVtZW50Qm91bmRzIGluCisgICAgICAgIFdlYlZpZXdQcml2YXRl
LmggY2FuJ3QgYmUgcmVuYW1lZCB5ZXQsIGR1ZSB0byBiaW5hcnkgYW5kIFNESyBjb21wYXRpYmls
aXR5IHdpdGggVUlLaXQpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAg
ICAoLVtXZWJWaWV3IF9zdGFydERyYWc6XSk6CisgICAgICAgICgtW1dlYlZpZXcgX2RyYWdnZWRF
bGVtZW50Qm91bmRzXSk6CisgICAgICAgICgtW1dlYlZpZXcgX2VuZGVkRGF0YUludGVyYWN0aW9u
Omdsb2JhbDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6CisKIDIwMTctMDkt
MTEgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIFVwc3Ry
ZWFtIFFUS2l0LXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVyLmNwcAppbmRleCBlMjM4MDQ1NjI4Y2UwYTE4MmI0YzViNTVkNTdm
YzY1YjIxZjRmZjViLi4wZTZiNTdmMThkMGZmMTRmZTQ5ZmNjODUwZjE5OTE0OWZhNWFmZWFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmNwcApAQCAtMzAzLDYgKzMwMywxMSBAQCB2b2lk
IERhdGFUcmFuc2Zlcjo6dXBkYXRlRHJhZ0ltYWdlKCkKICAgICBtX3Bhc3RlYm9hcmQtPnNldERy
YWdJbWFnZShXVEZNb3ZlKGNvbXB1dGVkSW1hZ2UpLCBjb21wdXRlZEhvdFNwb3QpOwogfQogCitS
ZWZQdHI8RWxlbWVudD4gRGF0YVRyYW5zZmVyOjpkcmFnSW1hZ2VFbGVtZW50KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9kcmFnSW1hZ2VFbGVtZW50OworfQorCiAjaWYgIVBMQVRGT1JNKE1BQykK
IAogRHJhZ0ltYWdlUmVmIERhdGFUcmFuc2Zlcjo6Y3JlYXRlRHJhZ0ltYWdlKEludFBvaW50JiBs
b2NhdGlvbikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNm
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuaAppbmRleCBiZTIzMTI3OTMy
MDc4OTA3ZWExZTgyNjFhNGEwMTM3MGZiODllNWM4Li42NzVjNmUyNzMxNjkwYzVhNDNkMDQyZDgy
ZTQ4M2I0ZWQ5YTYxODUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5z
ZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5oCkBAIC05Miw2ICs5
Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERyYWdIYXNTdGFydGVkKCkgeyBtX3Nob3VsZFVw
ZGF0ZURyYWdJbWFnZSA9IHRydWU7IH0KICAgICBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdl
KEludFBvaW50JiBkcmFnTG9jYXRpb24pIGNvbnN0OwogICAgIHZvaWQgdXBkYXRlRHJhZ0ltYWdl
KCk7CisgICAgUmVmUHRyPEVsZW1lbnQ+IGRyYWdJbWFnZUVsZW1lbnQoKSBjb25zdDsKICNlbmRp
ZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCBh
MWQxZTU3NGFjZDMzZGE3NzJhNDMwMGQ1ZGI0YmRiOTA4MDE3YWE2Li5lZjU2Njc5NWFhZDBiZDA0
MzM4YmQzOGRmNjYwNDVkZmE5ZjYzNjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9s
bGVyLmNwcApAQCAtODMwLDcgKzgzMCw3IEBAIHN0YXRpYyB2b2lkIHNlbGVjdEVsZW1lbnQoRWxl
bWVudCYgZWxlbWVudCkKIHN0YXRpYyBJbnRQb2ludCBkcmFnTG9jRm9yREhUTUxEcmFnKGNvbnN0
IEludFBvaW50JiBtb3VzZURyYWdnZWRQb2ludCwgY29uc3QgSW50UG9pbnQmIGRyYWdPcmlnaW4s
IGNvbnN0IEludFBvaW50JiBkcmFnSW1hZ2VPZmZzZXQsIGJvb2wgaXNMaW5rSW1hZ2UpCiB7CiAg
ICAgLy8gZHJhZ0ltYWdlT2Zmc2V0IGlzIHRoZSBjdXJzb3IgcG9zaXRpb24gcmVsYXRpdmUgdG8g
dGhlIGxvd2VyLWxlZnQgY29ybmVyIG9mIHRoZSBpbWFnZS4KLSNpZiBQTEFURk9STShDT0NPQSkK
KyNpZiBQTEFURk9STShNQUMpCiAgICAgLy8gV2UgYWRkIGluIHRoZSBZIGRpbWVuc2lvbiBiZWNh
dXNlIHdlIGFyZSBhIGZsaXBwZWQgdmlldywgc28gYWRkaW5nIG1vdmVzIHRoZSBpbWFnZSBkb3du
LgogICAgIGNvbnN0IGludCB5T2Zmc2V0ID0gZHJhZ0ltYWdlT2Zmc2V0LnkoKTsKICNlbHNlCkBA
IC0xMjI4LDEyICsxMjI4LDMxIEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRvU3lzdGVtRHJhZyhE
cmFnSW1hZ2UgaW1hZ2UsIGNvbnN0IEludFBvaW50JiBkcmFnTG9jLCBjb25zCiAgICAgRHJhZ0l0
ZW0gaXRlbTsKICAgICBpdGVtLmltYWdlID0gV1RGTW92ZShpbWFnZSk7CiAgICAgaXRlbS5zb3Vy
Y2VBY3Rpb24gPSBzdGF0ZS50eXBlOwotICAgIGl0ZW0uZXZlbnRQb3NpdGlvbkluQ29udGVudENv
b3JkaW5hdGVzID0gdmlld1Byb3RlY3Rvci0+cm9vdFZpZXdUb0NvbnRlbnRzKGZyYW1lLnZpZXco
KS0+Y29udGVudHNUb1Jvb3RWaWV3KGV2ZW50UG9zKSk7Ci0gICAgaXRlbS5kcmFnTG9jYXRpb25J
bkNvbnRlbnRDb29yZGluYXRlcyA9IHZpZXdQcm90ZWN0b3ItPnJvb3RWaWV3VG9Db250ZW50cyhm
cmFtZS52aWV3KCktPmNvbnRlbnRzVG9Sb290VmlldyhkcmFnTG9jKSk7CisKKyAgICBhdXRvIGV2
ZW50UG9zaXRpb25JblJvb3RWaWV3Q29vcmRpbmF0ZXMgPSBmcmFtZS52aWV3KCktPmNvbnRlbnRz
VG9Sb290VmlldyhldmVudFBvcyk7CisgICAgYXV0byBkcmFnTG9jYXRpb25JblJvb3RWaWV3Q29v
cmRpbmF0ZXMgPSBmcmFtZS52aWV3KCktPmNvbnRlbnRzVG9Sb290VmlldyhkcmFnTG9jKTsKKyAg
ICBpdGVtLmV2ZW50UG9zaXRpb25JbkNvbnRlbnRDb29yZGluYXRlcyA9IHZpZXdQcm90ZWN0b3It
PnJvb3RWaWV3VG9Db250ZW50cyhldmVudFBvc2l0aW9uSW5Sb290Vmlld0Nvb3JkaW5hdGVzKTsK
KyAgICBpdGVtLmRyYWdMb2NhdGlvbkluQ29udGVudENvb3JkaW5hdGVzID0gdmlld1Byb3RlY3Rv
ci0+cm9vdFZpZXdUb0NvbnRlbnRzKGRyYWdMb2NhdGlvbkluUm9vdFZpZXdDb29yZGluYXRlcyk7
CiAgICAgaXRlbS5ldmVudFBvc2l0aW9uSW5XaW5kb3dDb29yZGluYXRlcyA9IGZyYW1lLnZpZXco
KS0+Y29udGVudHNUb1dpbmRvdyhpdGVtLmV2ZW50UG9zaXRpb25JbkNvbnRlbnRDb29yZGluYXRl
cyk7CiAgICAgaXRlbS5kcmFnTG9jYXRpb25JbldpbmRvd0Nvb3JkaW5hdGVzID0gZnJhbWUudmll
dygpLT5jb250ZW50c1RvV2luZG93KGl0ZW0uZHJhZ0xvY2F0aW9uSW5Db250ZW50Q29vcmRpbmF0
ZXMpOwogICAgIGlmIChhdXRvIGVsZW1lbnQgPSBzdGF0ZS5zb3VyY2UpIHsKLSAgICAgICAgaXRl
bS5lbGVtZW50Qm91bmRzID0gZWxlbWVudC0+Ym91bmRzSW5Sb290Vmlld1NwYWNlKCk7CisgICAg
ICAgIGF1dG8gZGF0YVRyYW5zZmVySW1hZ2VFbGVtZW50ID0gc3RhdGUuZGF0YVRyYW5zZmVyLT5k
cmFnSW1hZ2VFbGVtZW50KCk7CisgICAgICAgIGlmIChzdGF0ZS50eXBlID09IERyYWdTb3VyY2VB
Y3Rpb25ESFRNTCkgeworICAgICAgICAgICAgLy8gSWYgdGhlIGRyYWcgaW1hZ2UgaGFzIGJlZW4g
Y3VzdG9taXplZCwgZmFsbCBiYWNrIHRvIHBvc2l0aW9uaW5nIHRoZSBwcmV2aWV3IHJlbGF0aXZl
IHRvIHRoZSBkcmFnIGV2ZW50IGxvY2F0aW9uLgorICAgICAgICAgICAgSW50U2l6ZSBkcmFnUHJl
dmlld1NpemU7CisgICAgICAgICAgICBpZiAoZGF0YVRyYW5zZmVySW1hZ2VFbGVtZW50KQorICAg
ICAgICAgICAgICAgIGRyYWdQcmV2aWV3U2l6ZSA9IGRhdGFUcmFuc2ZlckltYWdlRWxlbWVudC0+
Ym91bmRzSW5Sb290Vmlld1NwYWNlKCkuc2l6ZSgpOworICAgICAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICAgICAgZHJhZ1ByZXZpZXdTaXplID0gZHJhZ0ltYWdlU2l6ZShpdGVtLmltYWdlLmdl
dCgpKTsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byogcGFnZSA9IGZyYW1lLnBhZ2UoKSkKKyAg
ICAgICAgICAgICAgICAgICAgZHJhZ1ByZXZpZXdTaXplLnNjYWxlKDEgLyBwYWdlLT5kZXZpY2VT
Y2FsZUZhY3RvcigpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGl0ZW0uZHJhZ1ByZXZp
ZXdGcmFtZUluUm9vdFZpZXdDb29yZGluYXRlcyA9IHsgZHJhZ0xvY2F0aW9uSW5Sb290Vmlld0Nv
b3JkaW5hdGVzLCBXVEZNb3ZlKGRyYWdQcmV2aWV3U2l6ZSkgfTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIC8vIFdlIGNhbiBwb3NpdGlvbiB0aGUgcHJldmlldyB1c2luZyB0aGUgYm91
bmRzIG9mIHRoZSBkcmFnIHNvdXJjZSBlbGVtZW50LgorICAgICAgICAgICAgaXRlbS5kcmFnUHJl
dmlld0ZyYW1lSW5Sb290Vmlld0Nvb3JkaW5hdGVzID0gZWxlbWVudC0+Ym91bmRzSW5Sb290Vmll
d1NwYWNlKCk7CisgICAgICAgIH0KKwogICAgICAgICBSZWZQdHI8RWxlbWVudD4gbGluazsKICAg
ICAgICAgaWYgKGVsZW1lbnQtPmlzTGluaygpKQogICAgICAgICAgICAgbGluayA9IGVsZW1lbnQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSXRlbS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0l0ZW0uaAppbmRleCAyOGY2N2M2NzllZTdjYmQ1ZTRmZTY3
MjNmN2Y0OTBhMTA1NjU5ZTIwLi5iMGZhYTAzNjlhMTgxNTQ2OWI1Njk2YTMwZTg2Y2Q3OGFjNTBj
MDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSXRlbS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJdGVtLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgc3Ry
dWN0IERyYWdJdGVtIGZpbmFsIHsKICAgICBJbnRQb2ludCBkcmFnTG9jYXRpb25JbldpbmRvd0Nv
b3JkaW5hdGVzOwogICAgIFN0cmluZyB0aXRsZTsKICAgICBVUkwgdXJsOwotICAgIEludFJlY3Qg
ZWxlbWVudEJvdW5kczsKKyAgICBJbnRSZWN0IGRyYWdQcmV2aWV3RnJhbWVJblJvb3RWaWV3Q29v
cmRpbmF0ZXM7CiAKICAgICBQYXN0ZWJvYXJkV3JpdGVyRGF0YSBkYXRhOwogCkBAIC02MCw3ICs2
MCw3IEBAIHZvaWQgRHJhZ0l0ZW06OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAg
IC8vIEZJWE1FKDE3MzgxNSk6IFdlIHNob3VsZCBlbmNvZGUgYW5kIGRlY29kZSBQYXN0ZWJvYXJk
V3JpdGVyRGF0YSBhbmQgcGxhdGZvcm0gZHJhZyBpbWFnZSBkYXRhCiAgICAgLy8gaGVyZSB0b28s
IGFzIHBhcnQgb2YgbW92aW5nIG9mZiBvZiB0aGUgbGVnYWN5IGRyYWdnaW5nIGNvZGVwYXRoLgog
ICAgIGVuY29kZXIuZW5jb2RlRW51bShzb3VyY2VBY3Rpb24pOwotICAgIGVuY29kZXIgPDwgaW1h
Z2VBbmNob3JQb2ludCA8PCBldmVudFBvc2l0aW9uSW5Db250ZW50Q29vcmRpbmF0ZXMgPDwgZHJh
Z0xvY2F0aW9uSW5Db250ZW50Q29vcmRpbmF0ZXMgPDwgZXZlbnRQb3NpdGlvbkluV2luZG93Q29v
cmRpbmF0ZXMgPDwgZHJhZ0xvY2F0aW9uSW5XaW5kb3dDb29yZGluYXRlcyA8PCB0aXRsZSA8PCB1
cmwgPDwgZWxlbWVudEJvdW5kczsKKyAgICBlbmNvZGVyIDw8IGltYWdlQW5jaG9yUG9pbnQgPDwg
ZXZlbnRQb3NpdGlvbkluQ29udGVudENvb3JkaW5hdGVzIDw8IGRyYWdMb2NhdGlvbkluQ29udGVu
dENvb3JkaW5hdGVzIDw8IGV2ZW50UG9zaXRpb25JbldpbmRvd0Nvb3JkaW5hdGVzIDw8IGRyYWdM
b2NhdGlvbkluV2luZG93Q29vcmRpbmF0ZXMgPDwgdGl0bGUgPDwgdXJsIDw8IGRyYWdQcmV2aWV3
RnJhbWVJblJvb3RWaWV3Q29vcmRpbmF0ZXM7CiAgICAgYm9vbCBoYXNJbmRpY2F0b3JEYXRhID0g
aW1hZ2UuaGFzSW5kaWNhdG9yRGF0YSgpOwogICAgIGVuY29kZXIgPDwgaGFzSW5kaWNhdG9yRGF0
YTsKICAgICBpZiAoaGFzSW5kaWNhdG9yRGF0YSkKQEAgLTg2LDcgKzg2LDcgQEAgYm9vbCBEcmFn
SXRlbTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIERyYWdJdGVtJiByZXN1bHQpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC51cmwpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuZWxlbWVu
dEJvdW5kcykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuZHJhZ1ByZXZpZXdGcmFt
ZUluUm9vdFZpZXdDb29yZGluYXRlcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBib29s
IGhhc0luZGljYXRvckRhdGE7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNJbmRpY2F0b3JE
YXRhKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9EcmFnRHJvcElu
dGVyYWN0aW9uU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9EcmFnRHJvcElu
dGVyYWN0aW9uU3RhdGUuaAppbmRleCAzYjFjMzI5YjcyYTQyMzY5Zjg0MDAzMzBmNTdmZWNiYjFh
ZmZiZGJiLi4zYjc4NGY3NWFlNjlmOWM2MDc5NmFkZmFkOGZkYzFhYTc4YjE5ODliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL0RyYWdEcm9wSW50ZXJhY3Rpb25T
dGF0ZS5oCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogc3RydWN0IERyYWdT
b3VyY2VTdGF0ZSB7CiAgICAgV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiBhY3Rpb24geyBXZWJD
b3JlOjpEcmFnU291cmNlQWN0aW9uTm9uZSB9OwogICAgIENHUG9pbnQgYWRqdXN0ZWRPcmlnaW4g
eyBDR1BvaW50WmVybyB9OwotICAgIENHUmVjdCBlbGVtZW50Qm91bmRzIHsgQ0dSZWN0WmVybyB9
OworICAgIENHUmVjdCBkcmFnUHJldmlld0ZyYW1lSW5Sb290Vmlld0Nvb3JkaW5hdGVzIHsgQ0dS
ZWN0WmVybyB9OwogICAgIFJldGFpblB0cjxVSUltYWdlPiBpbWFnZTsKICAgICBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhPiBpbmRpY2F0b3JEYXRhOwogICAgIFN0cmlu
ZyBsaW5rVGl0bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvRHJh
Z0Ryb3BJbnRlcmFjdGlvblN0YXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL0Ry
YWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5tbQppbmRleCBjZDMwZDJiZmFmNzgxYjJmODFmZDRlNGRh
MTY4ZTIyZGEyNmFlZGRhLi41OTQzZjFlYzVmYmMzZTkzMmE4YWQwZWUzZjFkZjNiYzE5M2NmZmFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvRHJhZ0Ryb3BJbnRlcmFj
dGlvblN0YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9EcmFnRHJvcElu
dGVyYWN0aW9uU3RhdGUubW0KQEAgLTE1OSwxMCArMTU5LDggQEAgVUlUYXJnZXRlZERyYWdQcmV2
aWV3ICpEcmFnRHJvcEludGVyYWN0aW9uU3RhdGU6OnByZXZpZXdGb3JEcmFnSXRlbShVSURyYWdJ
dGVtICoKICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAgIGF1dG8mIHNvdXJjZSA9IGZvdW5kU291
cmNlLnZhbHVlKCk7Ci0gICAgaWYgKHNob3VsZFVzZURyYWdJbWFnZVRvQ3JlYXRlUHJldmlld0Zv
ckRyYWdTb3VyY2Uoc291cmNlKSkgewotICAgICAgICBWZWN0b3I8RmxvYXRSZWN0PiBlbXB0eUNs
aXBwaW5nUmVjdHM7Ci0gICAgICAgIHJldHVybiBjcmVhdGVUYXJnZXRlZERyYWdQcmV2aWV3KHNv
dXJjZS5pbWFnZS5nZXQoKSwgY29udGVudFZpZXcsIHByZXZpZXdDb250YWluZXIsIHNvdXJjZS5l
bGVtZW50Qm91bmRzLCBlbXB0eUNsaXBwaW5nUmVjdHMsIG5pbCk7Ci0gICAgfQorICAgIGlmIChz
aG91bGRVc2VEcmFnSW1hZ2VUb0NyZWF0ZVByZXZpZXdGb3JEcmFnU291cmNlKHNvdXJjZSkpCisg
ICAgICAgIHJldHVybiBjcmVhdGVUYXJnZXRlZERyYWdQcmV2aWV3KHNvdXJjZS5pbWFnZS5nZXQo
KSwgY29udGVudFZpZXcsIHByZXZpZXdDb250YWluZXIsIHNvdXJjZS5kcmFnUHJldmlld0ZyYW1l
SW5Sb290Vmlld0Nvb3JkaW5hdGVzLCB7IH0sIG5pbCk7CiAKICAgICBpZiAoc2hvdWxkVXNlVGV4
dEluZGljYXRvclRvQ3JlYXRlUHJldmlld0ZvckRyYWdTb3VyY2Uoc291cmNlKSkgewogICAgICAg
ICBhdXRvIGluZGljYXRvciA9IHNvdXJjZS5pbmRpY2F0b3JEYXRhLnZhbHVlKCk7CkBAIC0yMDMs
NyArMjAxLDcgQEAgdm9pZCBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGU6OnN0YWdlRHJhZ0l0ZW0o
Y29uc3QgRHJhZ0l0ZW0mIGl0ZW0sIFVJSW1hZ2UgKmRyYWcKICAgICBtX3N0YWdlZERyYWdTb3Vy
Y2UgPSB7ewogICAgICAgICBzdGF0aWNfY2FzdDxEcmFnU291cmNlQWN0aW9uPihpdGVtLnNvdXJj
ZUFjdGlvbiksCiAgICAgICAgIGl0ZW0uZXZlbnRQb3NpdGlvbkluQ29udGVudENvb3JkaW5hdGVz
LAotICAgICAgICBpdGVtLmVsZW1lbnRCb3VuZHMsCisgICAgICAgIGl0ZW0uZHJhZ1ByZXZpZXdG
cmFtZUluUm9vdFZpZXdDb29yZGluYXRlcywKICAgICAgICAgZHJhZ0ltYWdlLAogICAgICAgICBp
dGVtLmltYWdlLmluZGljYXRvckRhdGEoKSwKICAgICAgICAgaXRlbS50aXRsZS5pc0VtcHR5KCkg
PyBuaWwgOiAoTlNTdHJpbmcgKilpdGVtLnRpdGxlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGM3MjMzYmUxMzMyZGI4YjVmYWU3Nzg3YzlhNjhlNjEz
ZjRjYTNiZjkuLmZiNzYwYTJjYTQ4ODc1NmEwZDc3Yzc5MjRkZGZjOGI2NDgzNDZkNGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTE4MTIsNyArMTgx
Miw3IEBAIC0gKHZvaWQpX3N0YXJ0RHJhZzooY29uc3QgRHJhZ0l0ZW0mKWRyYWdJdGVtCiAgICAg
ICAgIF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yRGF0YSA9IGFkb3B0TlMoW1tXZWJVSVRleHRJbmRp
Y2F0b3JEYXRhIGFsbG9jXSBpbml0V2l0aEltYWdlOmltYWdlIHNjYWxlOl9wcml2YXRlLT5wYWdl
LT5kZXZpY2VTY2FsZUZhY3RvcigpXSk7CiAgICAgX3ByaXZhdGUtPmRyYWdnZWRMaW5rVVJMID0g
ZHJhZ0l0ZW0udXJsLmlzRW1wdHkoKSA/IG5pbCA6IChOU1VSTCAqKWRyYWdJdGVtLnVybDsKICAg
ICBfcHJpdmF0ZS0+ZHJhZ2dlZExpbmtUaXRsZSA9IGRyYWdJdGVtLnRpdGxlLmlzRW1wdHkoKSA/
IG5pbCA6IChOU1N0cmluZyAqKWRyYWdJdGVtLnRpdGxlOwotICAgIF9wcml2YXRlLT5kcmFnZ2Vk
RWxlbWVudEJvdW5kcyA9IGRyYWdJdGVtLmVsZW1lbnRCb3VuZHM7CisgICAgX3ByaXZhdGUtPmRy
YWdQcmV2aWV3RnJhbWVJblJvb3RWaWV3Q29vcmRpbmF0ZXMgPSBkcmFnSXRlbS5kcmFnUHJldmll
d0ZyYW1lSW5Sb290Vmlld0Nvb3JkaW5hdGVzOwogICAgIF9wcml2YXRlLT5kcmFnU291cmNlQWN0
aW9uID0gc3RhdGljX2Nhc3Q8V2ViRHJhZ1NvdXJjZUFjdGlvbj4oZHJhZ0l0ZW0uc291cmNlQWN0
aW9uKTsKIH0KIApAQCAtMTg0Nyw3ICsxODQ3LDcgQEAgLSAoTlNVUkwgKilfZHJhZ2dlZExpbmtV
UkwKIAogLSAoQ0dSZWN0KV9kcmFnZ2VkRWxlbWVudEJvdW5kcwogewotICAgIHJldHVybiBfcHJp
dmF0ZS0+ZHJhZ2dlZEVsZW1lbnRCb3VuZHM7CisgICAgcmV0dXJuIF9wcml2YXRlLT5kcmFnUHJl
dmlld0ZyYW1lSW5Sb290Vmlld0Nvb3JkaW5hdGVzOwogfQogCiAtIChXZWJVSVRleHRJbmRpY2F0
b3JEYXRhICopX2dldERhdGFJbnRlcmFjdGlvbkRhdGEKQEAgLTE5MDMsNyArMTkwMyw3IEBAIC0g
KHZvaWQpX2VuZGVkRGF0YUludGVyYWN0aW9uOihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2Jh
bDooQ0dQb2ludClnbG9iYWxQb3NpCiAgICAgV2ViVGhyZWFkTG9jaygpOwogICAgIF9wcml2YXRl
LT5wYWdlLT5kcmFnQ29udHJvbGxlcigpLmRyYWdFbmRlZCgpOwogICAgIF9wcml2YXRlLT5kYXRh
T3BlcmF0aW9uVGV4dEluZGljYXRvciA9IG51bGxwdHI7Ci0gICAgX3ByaXZhdGUtPmRyYWdnZWRF
bGVtZW50Qm91bmRzID0gQ0dSZWN0TnVsbDsKKyAgICBfcHJpdmF0ZS0+ZHJhZ1ByZXZpZXdGcmFt
ZUluUm9vdFZpZXdDb29yZGluYXRlcyA9IENHUmVjdE51bGw7CiAgICAgX3ByaXZhdGUtPmRyYWdT
b3VyY2VBY3Rpb24gPSBXZWJEcmFnU291cmNlQWN0aW9uTm9uZTsKICAgICBfcHJpdmF0ZS0+ZHJh
Z2dlZExpbmtUaXRsZSA9IG5pbDsKICAgICBfcHJpdmF0ZS0+ZHJhZ2dlZExpbmtVUkwgPSBuaWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRh
LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKaW5kZXgg
M2YyMTRjYTgzMTUxZDAzM2ViYWJhZWJjOWQzYWI0MTMwZDEwM2Y5YS4uNWE3M2YxYWM2YWIyYTk5
MjY1MTljNzJiZWZjMmU2ZGFiYTkzYzc0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlld0RhdGEuaApAQCAtMzAxLDcgKzMwMSw3IEBAIHByaXZhdGU6CiAjaWYg
RU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAgICAgUmV0YWluUHRyPFdlYlVJVGV4dEluZGljYXRv
ckRhdGE+IHRleHRJbmRpY2F0b3JEYXRhOwogICAgIFJldGFpblB0cjxXZWJVSVRleHRJbmRpY2F0
b3JEYXRhPiBkYXRhT3BlcmF0aW9uVGV4dEluZGljYXRvcjsKLSAgICBDR1JlY3QgZHJhZ2dlZEVs
ZW1lbnRCb3VuZHM7CisgICAgQ0dSZWN0IGRyYWdQcmV2aWV3RnJhbWVJblJvb3RWaWV3Q29vcmRp
bmF0ZXM7CiAgICAgV2ViRHJhZ1NvdXJjZUFjdGlvbiBkcmFnU291cmNlQWN0aW9uOwogICAgIFJl
dGFpblB0cjxOU1VSTD4gZHJhZ2dlZExpbmtVUkw7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBk
cmFnZ2VkTGlua1RpdGxlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDViNWMxZDliZjliNGYwODY1NDMxZmFhODlkMjE5ODU1MGJmZjFkMjkuLjdl
MjJkYmJjNDFjODA3NGZhZWI1OGZkZWVlOWE2MWVkNjE1ZjhhOTEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxNy0w
OS0xMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBb
aU9TIERuRF0gU3VwcG9ydCBEYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlIHdoZW4gc3RhcnRpbmcg
YSBkcmFnIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc2NzIxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNDM3MzY2MD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEluIERhdGFJbnRlcmFjdGlvblNp
bXVsYXRvciwgYXNrIHRoZSBVSURyYWdJbnRlcmFjdGlvbkRlbGVnYXRlIChXS0NvbnRlbnRWaWV3
KSBmb3IgdGFyZ2V0ZWQgZHJhZyBwcmV2aWV3cyBhZnRlcgorICAgICAgICByZXRyaWV2aW5nIFVJ
RHJhZ0l0ZW1zIGR1cmluZyBhIGxpZnQuIFJlbWVtYmVyIHRoZXNlIHByZXZpZXdzIGFmdGVyIHRo
ZSBkcmFnIGFuZCBkcm9wIHNpbXVsYXRpb24gaXMgY29tcGxldGUsIHNvCisgICAgICAgIEFQSSB0
ZXN0cyAoY3VycmVudGx5LCBqdXN0IERyYWdMaWZ0UHJldmlld0RhdGFUcmFuc2ZlclNldERyYWdJ
bWFnZSkgY2FuIHZlcmlmeSB0aGF0IHRoZSBnZW5lcmF0ZWQgZHJhZyBwcmV2aWV3cworICAgICAg
ICBhcmUgYXMgZXhwZWN0ZWQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0RhdGFUcmFuc2Zlci1zZXREcmFnSW1hZ2UuaHRtbDogQWRkZWQuCisK
KyAgICAgICAgQWRkcyBhIG5ldyB0ZXN0IGhhcm5lc3MgY29udGFpbmluZyA1IGRyYWdnYWJsZSBl
bGVtZW50cywgZWFjaCBnZW5lcmF0aW5nIGEgZHJhZyBpbWFnZSB1c2luZyBkaWZmZXJlbnQgY29k
ZXBhdGhzLgorICAgICAgICBEcmFnTGlmdFByZXZpZXdEYXRhVHJhbnNmZXJTZXREcmFnSW1hZ2Ug
dXNlcyB0aGlzIHBhZ2UgdG8gY2hlY2sgdGhhdCB0aGUgZnJhbWUgb2YgdGhlIHRhcmdldGVkIGRy
YWcgcHJldmlldyBpbgorICAgICAgICBlYWNoIHNjZW5hcmlvIGlzIGFzIGV4cGVjdGVkLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW06
CisgICAgICAgIChjaGVja0NHUmVjdElzRXF1YWxUb0NHUmVjdFdpdGhMb2dnaW5nKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvaW9zL0Rh
dGFJbnRlcmFjdGlvblNpbXVsYXRvci5oOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvaW9zL0Rh
dGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbToKKyAgICAgICAgKC1bRGF0YUludGVyYWN0aW9uU2lt
dWxhdG9yIF9yZXNldFNpbXVsYXRlZFN0YXRlXSk6CisgICAgICAgICgtW0RhdGFJbnRlcmFjdGlv
blNpbXVsYXRvciBfYWR2YW5jZVByb2dyZXNzXSk6CisgICAgICAgICgtW0RhdGFJbnRlcmFjdGlv
blNpbXVsYXRvciBsaWZ0UHJldmlld3NdKToKKwogMjAxNy0wOS0xMSAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TIFdLMl0gU3VwcG9ydCB0YXBw
aW5nIHRvIGFkZCBpdGVtcyB0byB0aGUgY3VycmVudCBkcmFnIHNlc3Npb24gaW4gd2ViIGNvbnRl
bnQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWRjYjI0M2UyN2Q0OTQ2NGYxYWE1OGUzZmY3
N2M5MjhkMjc3MzczMC4uZDczOGNiMTZkMmE1YjU0YmVjNjAwNzkzYjViYmEzZGEzMGFlNzU3NSAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY4OSw2ICs2ODksNyBAQAogCQlGNDZBMDk1QjFF
RDhBNkU2MDBENEFBNTUgLyogZ2lmLWFuZC1maWxlLWlucHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3RDMwRUQxRUQyOEE2QzAw
MDQ4MkUxIC8qIGdpZi1hbmQtZmlsZS1pbnB1dC5odG1sICovOyB9OwogCQlGNDc3Mjg5OTFFNEFF
M0MxMDA3QUJGNkEgLyogZnVsbC1wYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NzcyODk4MUU0QUUz
QUQwMDdBQkY2QSAvKiBmdWxsLXBhZ2UtY29udGVudGVkaXRhYmxlLmh0bWwgKi87IH07CiAJCUY0
ODU2Q0EzMUU2NDlFQTgwMDlEN0VFNyAvKiBhdHRhY2htZW50LWVsZW1lbnQuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDg1NkNBMjFF
NjQ5OEE4MDA5RDdFRTcgLyogYXR0YWNobWVudC1lbGVtZW50Lmh0bWwgKi87IH07CisJCUY0ODZC
MUQwMUY2Nzk1MjMwMEYzNEJERCAvKiBEYXRhVHJhbnNmZXItc2V0RHJhZ0ltYWdlLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4NkIx
Q0YxRjY3OTRGRjAwRjM0QkREIC8qIERhdGFUcmFuc2Zlci1zZXREcmFnSW1hZ2UuaHRtbCAqLzsg
fTsKIAkJRjRBMzJFQzQxRjA1RjM4NTAwNDdDNTQ0IC8qIGRyYWdzdGFydC1jaGFuZ2Utc2VsZWN0
aW9uLW9mZnNjcmVlbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0QTMyRUMzMUYwNUYzNzgwMDQ3QzU0NCAvKiBkcmFnc3RhcnQtY2hh
bmdlLXNlbGVjdGlvbi1vZmZzY3JlZW4uaHRtbCAqLzsgfTsKIAkJRjRBMzJFQ0IxRjA2NDMzNzAw
NDdDNTQ0IC8qIGNvbnRlbnRlZGl0YWJsZS1pbi1pZnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEEzMkVDQTFGMDY0MkY0MDA0
N0M1NDQgLyogY29udGVudGVkaXRhYmxlLWluLWlmcmFtZS5odG1sICovOyB9OwogCQlGNEFCNTc4
QTFGNjUxNjU0MDBEQjBEQTEgLyogY3VzdG9tLWRyYWdnYWJsZS1kaXYuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEFCNTc4OTFGNjUx
NjRCMDBEQjBEQTEgLyogY3VzdG9tLWRyYWdnYWJsZS1kaXYuaHRtbCAqLzsgfTsKQEAgLTgyMCw2
ICs4MjEsNyBAQAogCQkJCTdBRUFENDgxMUUyMDEyMjcwMDQxNkVGRSAvKiBDcm9zc1BhcnRpdGlv
bkZpbGVTY2hlbWVBY2Nlc3MuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNEFCNTc4
QTFGNjUxNjU0MDBEQjBEQTEgLyogY3VzdG9tLWRyYWdnYWJsZS1kaXYuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQkyOTBGNDI3NTE3MkEyMjFDMDA5MzlGRjAgLyogY3VzdG9tLXByb3Rv
Y29sLXN5bmMteGhyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJRjQ4NkIxRDAxRjY3
OTUyMzAwRjM0QkREIC8qIERhdGFUcmFuc2Zlci1zZXREcmFnSW1hZ2UuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQlGNDUxMkUxMzFGNjBDNDQ2MDBCQjM2OUUgLyogRGF0YVRyYW5zZmVy
SXRlbS1nZXRBc0VudHJ5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQzA3RTZDQjIx
M0ZENzM5MzAwMzhCMjJCIC8qIGRldmljZVBpeGVsUmF0aW8uaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQkwNzk5QzM0QjFFQkEzMzAxMDAzQjc1MzIgLyogZGlzYWJsZUdldFVzZXJNZWRp
YS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTcyNSw2ICsxNzI3LDcgQEAKIAkJRjQ3
RDMwRUIxRUQyODYxOTAwMDQ4MkUxIC8qIGFwcGxlLmdpZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLmdpZjsgcGF0aCA9IGFwcGxlLmdpZjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ3RDMwRUQxRUQyOEE2QzAwMDQ4MkUxIC8q
IGdpZi1hbmQtZmlsZS1pbnB1dC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImdpZi1hbmQtZmlsZS1pbnB1dC5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4NTZDQTIxRTY0OThBODAwOUQ3
RUU3IC8qIGF0dGFjaG1lbnQtZWxlbWVudC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRo
ID0gImF0dGFjaG1lbnQtZWxlbWVudC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRjQ4NkIxQ0YxRjY3OTRGRjAwRjM0QkREIC8qIERhdGFUcmFuc2Zlci1zZXREcmFnSW1hZ2Uu
aHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJEYXRhVHJhbnNmZXItc2V0RHJhZ0lt
YWdlLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDkzMjQ3QzFGNDRERjhE
MDA2RjQzMzYgLyogVUlLaXRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVUlLaXRTUEkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRBMzJFQzMxRjA1RjM3ODAwNDdDNTQ0IC8qIGRyYWdz
dGFydC1jaGFuZ2Utc2VsZWN0aW9uLW9mZnNjcmVlbi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImRyYWdzdGFy
dC1jaGFuZ2Utc2VsZWN0aW9uLW9mZnNjcmVlbi5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjRBMzJFQ0ExRjA2NDJGNDAwNDdDNTQ0IC8qIGNvbnRlbnRlZGl0YWJsZS1pbi1p
ZnJhbWUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJjb250ZW50ZWRpdGFibGUtaW4taWZyYW1lLmh0bWwiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE2NSw2ICsyMTY4LDcgQEAKIAkJCQlBMTZG
NjZCOTFDNDBFQTIwMDBCRDREMjQgLyogQ29udGVudEZpbHRlcmluZy5odG1sICovLAogCQkJCTVD
MjkzNjk0MUQ1QkZEMTkwMERFQUIxRSAvKiBDb29raWVNZXNzYWdlLmh0bWwgKi8sCiAJCQkJRjRB
QjU3ODkxRjY1MTY0QjAwREIwREExIC8qIGN1c3RvbS1kcmFnZ2FibGUtZGl2Lmh0bWwgKi8sCisJ
CQkJRjQ4NkIxQ0YxRjY3OTRGRjAwRjM0QkREIC8qIERhdGFUcmFuc2Zlci1zZXREcmFnSW1hZ2Uu
aHRtbCAqLywKIAkJCQlGNDUxMkUxMjFGNjBDNDM0MDBCQjM2OUUgLyogRGF0YVRyYW5zZmVySXRl
bS1nZXRBc0VudHJ5Lmh0bWwgKi8sCiAJCQkJMDc5OUMzNEExRUJBMzJGNDAwM0I3NTMyIC8qIGRp
c2FibGVHZXRVc2VyTWVkaWEuaHRtbCAqLywKIAkJCQlGNDFBQjk5RTFFRjQ2OTJDMDA4M0ZBMDgg
LyogZGl2LWFuZC1sYXJnZS1pbWFnZS5odG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EYXRhVHJhbnNmZXItc2V0RHJhZ0ltYWdlLmh0bWwg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RhdGFUcmFuc2Zlci1zZXRE
cmFnSW1hZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDNiOTcwMTU1MjM5MmMxOWY5MjJkMDliZTVlOWRi
M2UxOTk3YjIwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9EYXRhVHJhbnNmZXItc2V0RHJhZ0ltYWdlLmh0bWwKQEAgLTAsMCArMSw3MCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50
PSJ3aWR0aD1kZXZpY2Utd2lkdGgiPgorPGhlYWQ+Cis8c3R5bGU+CisgICAgYm9keSwgaHRtbCB7
CisgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgfQorCisg
ICAgYm9keSB7CisgICAgICAgIG1hcmdpbjogMDsKKyAgICB9CisKKyAgICAjcmVkIHsKKyAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgICB3aWR0aDogMzAwcHg7CisgICAgICAg
IGhlaWdodDogMTAwcHg7CisgICAgfQorCisgICAgI2dyZWVuIHsKKyAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogZ3JlZW47CisgICAgICAgIHdpZHRoOiAzMDBweDsKKyAgICAgICAgaGVpZ2h0OiAx
MDBweDsKKyAgICB9CisKKyAgICAjYmx1ZSB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJs
dWU7CisgICAgICAgIHdpZHRoOiAzMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB9
CisKKyAgICAjY3lhbiB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGN5YW47CisgICAgICAg
IHdpZHRoOiAzMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB9Cis8L3N0eWxlPgor
PC9oZWFkPgorCis8ZGl2IGlkPSJyZWQiIGRyYWdnYWJsZT0idHJ1ZSI+PC9kaXY+Cis8ZGl2IGlk
PSJncmVlbiIgZHJhZ2dhYmxlPSJ0cnVlIj48L2Rpdj4KKzxkaXYgaWQ9ImJsdWUiIGRyYWdnYWJs
ZT0idHJ1ZSI+PC9kaXY+Cis8ZGl2IGlkPSJjeWFuIiBkcmFnZ2FibGU9InRydWUiPjwvZGl2Pgor
PGltZyBpZD0iaWNvbiIgc3JjPSJpY29uLnBuZyI+PC9pbWc+Cis8ZGl2Pjxjb2RlPlRvIG1hbnVh
bGx5IHRlc3QsIGF0dGVtcHQgdG8gZHJhZyBlYWNoIG9mIHRoZSBjb2xvcmVkIGJsb2Nrcy48L2Nv
ZGU+PC9kaXY+CisKKzxzY3JpcHQ+CityZWQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0Iiwg
ZXZlbnQgPT4geworICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREcmFnSW1hZ2UoaWNvbiwgMCwg
MCk7CisgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoInRleHQvcGxhaW4iLCAicmVkIik7
Cit9KTsKKworZ3JlZW4uYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IiwgZXZlbnQgPT4gewor
ICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREcmFnSW1hZ2UoaWNvbiwgMTAwLCAxMDApOworICAg
IGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIiwgImdyZWVuIik7Cit9KTsK
KworYmx1ZS5hZGRFdmVudExpc3RlbmVyKCJkcmFnc3RhcnQiLCBldmVudCA9PiB7CisgICAgbGV0
IGltYWdlID0gbmV3IEltYWdlKCk7CisgICAgaW1hZ2Uuc3JjID0gaWNvbi5zcmM7CisgICAgZXZl
bnQuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZShpbWFnZSwgMCwgMCk7CisgICAgZXZlbnQuZGF0
YVRyYW5zZmVyLnNldERhdGEoInRleHQvcGxhaW4iLCAiYmx1ZSIpOworfSk7CisKK2N5YW4uYWRk
RXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IiwgZXZlbnQgPT4geworICAgIGV2ZW50LmRhdGFUcmFu
c2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIiwgImN5YW4iKTsKK30pOworPC9zY3JpcHQ+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJh
Y3Rpb25UZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFj
dGlvblRlc3RzLm1tCmluZGV4IDVkNTVjMDE0NTQ4NzEyMDZhYjA5NzFjMWRhNjI5Y2ZkMDEzNTU4
M2UuLjU3NGUzZWIwZTQ4ZjYyYTEzYTVhYTE5OTA1MWRjN2FiMGQ0ZTJlZjUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3RzLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3RzLm1t
CkBAIC0xMDIsNiArMTAyLDE0IEBAIHN0YXRpYyBOU1ZhbHVlICptYWtlQ0dSZWN0VmFsdWUoQ0dG
bG9hdCB4LCBDR0Zsb2F0IHksIENHRmxvYXQgd2lkdGgsIENHRmxvYXQgaGVpCiAgICAgcmV0dXJu
IFtOU1ZhbHVlIHZhbHVlV2l0aENHUmVjdDpDR1JlY3RNYWtlKHgsIHksIHdpZHRoLCBoZWlnaHQp
XTsKIH0KIAorc3RhdGljIHZvaWQgY2hlY2tDR1JlY3RJc0VxdWFsVG9DR1JlY3RXaXRoTG9nZ2lu
ZyhDR1JlY3QgZXhwZWN0ZWQsIENHUmVjdCBvYnNlcnZlZCkKK3sKKyAgICBCT09MIGlzRXF1YWwg
PSBDR1JlY3RFcXVhbFRvUmVjdChleHBlY3RlZCwgb2JzZXJ2ZWQpOworICAgIEVYUEVDVF9UUlVF
KGlzRXF1YWwpOworICAgIGlmICghaXNFcXVhbCkKKyAgICAgICAgTlNMb2coQCJFeHBlY3RlZDog
JUAgYnV0IG9ic2VydmVkOiAlQCIsIE5TU3RyaW5nRnJvbUNHUmVjdChleHBlY3RlZCksIE5TU3Ry
aW5nRnJvbUNHUmVjdChvYnNlcnZlZCkpOworfQorCiBzdGF0aWMgdm9pZCBjaGVja1NlbGVjdGlv
blJlY3RzV2l0aExvZ2dpbmcoTlNBcnJheSAqZXhwZWN0ZWQsIE5TQXJyYXkgKm9ic2VydmVkKQog
ewogICAgIGlmICghW2V4cGVjdGVkIGlzRXF1YWxUb0FycmF5Om9ic2VydmVkXSkKQEAgLTE0MDks
NiArMTQxNywzMyBAQCBURVNUKERhdGFJbnRlcmFjdGlvblRlc3RzLCBBZGRpdGlvbmFsTGlua0Fu
ZEltYWdlSW50b0NvbnRlbnRFZGl0YWJsZSkKICAgICBFWFBFQ1RfV0tfU1RSRVEoImh0dHBzOi8v
d3d3LmFwcGxlLmNvbS8iLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAi
ZWRpdG9yLnF1ZXJ5U2VsZWN0b3IoJ2EnKS5ocmVmIl0pOwogfQogCitURVNUKERhdGFJbnRlcmFj
dGlvblRlc3RzLCBEcmFnTGlmdFByZXZpZXdEYXRhVHJhbnNmZXJTZXREcmFnSW1hZ2UpCit7Cisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJv
bm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJEYXRhVHJhbnNmZXItc2V0RHJhZ0ltYWdlIl07Cisg
ICAgYXV0byBzaW11bGF0b3IgPSBhZG9wdE5TKFtbRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIGFs
bG9jXSBpbml0V2l0aFdlYlZpZXc6d2ViVmlldy5nZXQoKV0pOworCisgICAgLy8gVXNlIERhdGFU
cmFuc2Zlci5zZXREcmFnSW1hZ2UgdG8gc3BlY2lmeSBhbiBleGlzdGluZyBpbWFnZSBlbGVtZW50
IGluIHRoZSBET00uCisgICAgW3NpbXVsYXRvciBydW5Gcm9tOkNHUG9pbnRNYWtlKDEwMCwgNTAp
IHRvOkNHUG9pbnRNYWtlKDI1MCwgNTApXTsKKyAgICBjaGVja0NHUmVjdElzRXF1YWxUb0NHUmVj
dFdpdGhMb2dnaW5nKHt7MTAwLCA1MH0sIHsyMTUsIDE3NH19LCBbc2ltdWxhdG9yIGxpZnRQcmV2
aWV3c11bMF0udmlldy5mcmFtZSk7CisKKyAgICAvLyBVc2UgRGF0YVRyYW5zZmVyLnNldERyYWdJ
bWFnZSB0byBzcGVjaWZ5IGFuIGV4aXN0aW5nIGltYWdlIGVsZW1lbnQgaW4gdGhlIERPTSwgd2l0
aCB4IGFuZCB5IG9mZnNldHMuCisgICAgW3NpbXVsYXRvciBydW5Gcm9tOkNHUG9pbnRNYWtlKDEw
LCAxNTApIHRvOkNHUG9pbnRNYWtlKDI1MCwgMTUwKV07CisgICAgY2hlY2tDR1JlY3RJc0VxdWFs
VG9DR1JlY3RXaXRoTG9nZ2luZyh7ey05MCwgNTB9LCB7MjE1LCAxNzR9fSwgW3NpbXVsYXRvciBs
aWZ0UHJldmlld3NdWzBdLnZpZXcuZnJhbWUpOworCisgICAgLy8gVXNlIERhdGFUcmFuc2Zlci5z
ZXREcmFnSW1hZ2UgdG8gc3BlY2lmeSBhIG5ld2x5IGNyZWF0ZWQgSW1hZ2UsIGRpc2Nvbm5lY3Rl
ZCBmcm9tIHRoZSBET00uCisgICAgW3NpbXVsYXRvciBydW5Gcm9tOkNHUG9pbnRNYWtlKDEwMCwg
MjUwKSB0bzpDR1BvaW50TWFrZSgyNTAsIDI1MCldOworICAgIGNoZWNrQ0dSZWN0SXNFcXVhbFRv
Q0dSZWN0V2l0aExvZ2dpbmcoe3sxMDAsIDI1MH0sIHsyMTUsIDE3NH19LCBbc2ltdWxhdG9yIGxp
ZnRQcmV2aWV3c11bMF0udmlldy5mcmFtZSk7CisKKyAgICAvLyBEb24ndCB1c2UgRGF0YVRyYW5z
ZmVyLnNldERyYWdJbWFnZSBhbmQgZmFsbCBiYWNrIHRvIHNuYXBzaG90dGluZyB0aGUgZHJhZ2dl
ZCBlbGVtZW50LgorICAgIFtzaW11bGF0b3IgcnVuRnJvbTpDR1BvaW50TWFrZSg1MCwgMzUwKSB0
bzpDR1BvaW50TWFrZSgyNTAsIDM1MCldOworICAgIGNoZWNrQ0dSZWN0SXNFcXVhbFRvQ0dSZWN0
V2l0aExvZ2dpbmcoe3swLCAzMDB9LCB7MzAwLCAxMDB9fSwgW3NpbXVsYXRvciBsaWZ0UHJldmll
d3NdWzBdLnZpZXcuZnJhbWUpOworCisgICAgLy8gUGVyZm9ybSBhIG5vcm1hbCBkcmFnIG9uIGFu
IGltYWdlLgorICAgIFtzaW11bGF0b3IgcnVuRnJvbTpDR1BvaW50TWFrZSg1MCwgNDUwKSB0bzpD
R1BvaW50TWFrZSgyNTAsIDQ1MCldOworICAgIGNoZWNrQ0dSZWN0SXNFcXVhbFRvQ0dSZWN0V2l0
aExvZ2dpbmcoe3swLCA0MDB9LCB7MjE1LCAxNzR9fSwgW3NpbXVsYXRvciBsaWZ0UHJldmlld3Nd
WzBdLnZpZXcuZnJhbWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCiAKICNl
bmRpZiAvLyBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5oIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLmgKaW5kZXggNTVmNjc4NTViMWMzN2Rm
NDNiNTJjZWMwNmI5N2IxYzdiNzk4Mzg2Zi4uNzEwZWM3NmMxYzE0ZWU2Zjc3N2FlZDg0NWYxZTI1
ZmU4NTRiOTIwZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvRGF0YUludGVy
YWN0aW9uU2ltdWxhdG9yLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvRGF0YUludGVy
YWN0aW9uU2ltdWxhdG9yLmgKQEAgLTEzNiw2ICsxMzYsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJ
bnRlZ2VyLCBEYXRhSW50ZXJhY3Rpb25QaGFzZSkgewogCiAgICAgUmV0YWluUHRyPE5TTXV0YWJs
ZURpY3Rpb25hcnk8TlNOdW1iZXIgKiwgTlNWYWx1ZSAqPj5fcmVtYWluaW5nQWRkaXRpb25hbEl0
ZW1SZXF1ZXN0TG9jYXRpb25zQnlQcm9ncmVzczsKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJy
YXk8TlNWYWx1ZSAqPj5fcXVldWVkQWRkaXRpb25hbEl0ZW1SZXF1ZXN0TG9jYXRpb25zOworICAg
IFJldGFpblB0cjxOU011dGFibGVBcnJheTxVSVRhcmdldGVkRHJhZ1ByZXZpZXcgKj4+IF9saWZ0
UHJldmlld3M7CiAKICAgICBib29sIF9pc0RvbmVXYWl0aW5nRm9ySW5wdXRTZXNzaW9uOwogICAg
IEJPT0wgX3Nob3VsZFBlcmZvcm1PcGVyYXRpb247CkBAIC0xNjUsNiArMTY2LDcgQEAgdHlwZWRl
ZiBOU19FTlVNKE5TSW50ZWdlciwgRGF0YUludGVyYWN0aW9uUGhhc2UpIHsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJheSAqZmluYWxTZWxlY3Rpb25SZWN0czsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgRGF0YUludGVyYWN0aW9uUGhhc2UgcGhhc2U7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUmVjdCBsYXN0S25vd25EcmFnQ2FyZXRS
ZWN0OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5PFVJVGFyZ2V0ZWRE
cmFnUHJldmlldyAqPiAqbGlmdFByZXZpZXdzOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbQppbmRleCA1MWVlZGRh
ZTliNWRjZmVhOTVmMjc4YWRhNmJmNzY1ZWEzYzBhZjc5Li5mMWRmNzg2OGM2M2QyYzBjZGMzYmEx
NjM0NWNlZWNlODVlZmVlMzFmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9E
YXRhSW50ZXJhY3Rpb25TaW11bGF0b3IubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3Mv
RGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tCkBAIC0zNDMsNiArMzQzLDcgQEAgLSAodm9pZClf
cmVzZXRTaW11bGF0ZWRTdGF0ZQogICAgIF9sYXN0S25vd25EcmFnQ2FyZXRSZWN0ID0gQ0dSZWN0
WmVybzsKICAgICBfcmVtYWluaW5nQWRkaXRpb25hbEl0ZW1SZXF1ZXN0TG9jYXRpb25zQnlQcm9n
cmVzcyA9IG5pbDsKICAgICBfcXVldWVkQWRkaXRpb25hbEl0ZW1SZXF1ZXN0TG9jYXRpb25zID0g
YWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisgICAgX2xpZnRQcmV2aWV3
cyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwogfQogCiAtIChOU0Fy
cmF5ICopb2JzZXJ2ZWRFdmVudE5hbWVzCkBAIC01MDEsNiArNTAyLDggQEAgLSAodm9pZClfYWR2
YW5jZVByb2dyZXNzCiAgICAgICAgICAgICBbaXRlbVByb3ZpZGVycyBhZGRPYmplY3Q6aXRlbS5p
dGVtUHJvdmlkZXJdOwogICAgICAgICAgICAgVUlUYXJnZXRlZERyYWdQcmV2aWV3ICpsaWZ0UHJl
dmlldyA9IFtbX3dlYlZpZXcgZHJhZ0ludGVyYWN0aW9uRGVsZWdhdGVdIGRyYWdJbnRlcmFjdGlv
bjpbX3dlYlZpZXcgZHJhZ0ludGVyYWN0aW9uXSBwcmV2aWV3Rm9yTGlmdGluZ0l0ZW06aXRlbSBz
ZXNzaW9uOl9kcmFnU2Vzc2lvbi5nZXQoKV07CiAgICAgICAgICAgICBFWFBFQ1RfVFJVRSghIWxp
ZnRQcmV2aWV3KTsKKyAgICAgICAgICAgIGlmIChsaWZ0UHJldmlldykKKyAgICAgICAgICAgICAg
ICBbX2xpZnRQcmV2aWV3cyBhZGRPYmplY3Q6bGlmdFByZXZpZXddOwogICAgICAgICB9CiAKICAg
ICAgICAgX2Ryb3BTZXNzaW9uID0gYWRvcHROUyhbW01vY2tEcm9wU2Vzc2lvbiBhbGxvY10gaW5p
dFdpdGhQcm92aWRlcnM6aXRlbVByb3ZpZGVycyBsb2NhdGlvbjpzZWxmLl9jdXJyZW50TG9jYXRp
b24gd2luZG93Oltfd2ViVmlldyB3aW5kb3ddIGFsbG93TW92ZTpzZWxmLnNob3VsZEFsbG93TW92
ZU9wZXJhdGlvbl0pOwpAQCAtNTcyLDYgKzU3NSwxMSBAQCAtIChEYXRhSW50ZXJhY3Rpb25QaGFz
ZSlwaGFzZQogICAgIHJldHVybiBfcGhhc2U7CiB9CiAKKy0gKE5TQXJyYXk8VUlUYXJnZXRlZERy
YWdQcmV2aWV3ICo+ICopbGlmdFByZXZpZXdzCit7CisgICAgcmV0dXJuIF9saWZ0UHJldmlld3Mu
Z2V0KCk7Cit9CisKIC0gKENHUmVjdClsYXN0S25vd25EcmFnQ2FyZXRSZWN0CiB7CiAgICAgcmV0
dXJuIF9sYXN0S25vd25EcmFnQ2FyZXRSZWN0Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>