<?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>165265</bug_id>
          
          <creation_ts>2016-12-01 12:33:02 -0800</creation_ts>
          <short_desc>Allow clients of _WKFullscreenDelegate to specify a window to use for fullscreen</short_desc>
          <delta_ts>2026-10-29 23:54:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>276855</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>beidson</cc>
    
    <cc>fred.wang</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1255344</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-12-01 12:33:02 -0800</bug_when>
    <thetext>Allow clients of _WKFullscreenDelegate to specify a window to use for fullscreen</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255383</commentid>
    <comment_count>1</comment_count>
      <attachid>295880</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-12-01 12:47:16 -0800</bug_when>
    <thetext>Created attachment 295880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255609</commentid>
    <comment_count>2</comment_count>
      <attachid>295880</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-12-01 20:27:34 -0800</bug_when>
    <thetext>Comment on attachment 295880
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/_WKFullscreenWindow.h:36
&gt; +
&gt; +#if WK_API_ENABLED
&gt; +
&gt; +@protocol _WKFullscreenWindow &lt;NSObject&gt;
&gt; +@property (readonly, nonnull) NSView *parentViewForWebView;
&gt; +@end
&gt; +
&gt; +#endif

I think this needs some guards (#if !TARGET_OS_IPHONE) since these types are Mac only.  Will we want a similar concept on iOS?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255699</commentid>
    <comment_count>3</comment_count>
      <attachid>295880</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-12-02 09:06:00 -0800</bug_when>
    <thetext>Comment on attachment 295880
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/Cocoa/_WKFullscreenWindow.h:36
&gt;&gt; +#endif
&gt; 
&gt; I think this needs some guards (#if !TARGET_OS_IPHONE) since these types are Mac only.  Will we want a similar concept on iOS?

Sure, and we very well may if clients there will want to provide their own fullscreen window.  We could do something like:

#if TARGET_OS_IPHONE
typedef UIView ViewClass;
#else
typedef NSView ViewClass;
#endif

...

@property (readonly, non null) ViewClass *parentViewForWebView;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399139</commentid>
    <comment_count>4</comment_count>
      <attachid>295880</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-02-14 10:36:11 -0800</bug_when>
    <thetext>Comment on attachment 295880
Patch

Patches that have been up for review since 2016 are almost certainly too stale to be relevant to trunk in their current form.

If this patch is still important please rebase it and post it for review again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2271746</commentid>
    <comment_count>5</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2026-10-29 23:54:57 -0700</bug_when>
    <thetext>Jer Noble: Is this still desired?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295880</attachid>
            <date>2016-12-01 12:47:16 -0800</date>
            <delta_ts>2018-02-14 10:36:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165265-20161201124647.patch</filename>
            <type>text/plain</type>
            <size>26241</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4OTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTc4ZGIzZDA0MWY1M2Zh
ODIxNTljNDllY2Q1M2M4NmZmNzUyMzE1YS4uZTE1YmM4NmU1OTExOWRkNmVhYzY1ODNiZTQzMjdk
NGVjMTVmN2M3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM4IEBACiAyMDE2LTEyLTAxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIEFsbG93IGNsaWVudHMgb2Yg
X1dLRnVsbHNjcmVlbkRlbGVnYXRlIHRvIHNwZWNpZnkgYSB3aW5kb3cgdG8gdXNlIGZvciBmdWxs
c2NyZWVuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjUyNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
ZXN0OiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUu
bW0KKworICAgICAgICBBbGxvdyBjbGllbnRzIHRvIGNvbnRyb2wgd2hhdCB3aW5kb3cgYW5kIHZp
ZXcgYXJlIHVzZWQgZm9yIHRyYW5zaXRpb25pbmcgdGhlIFdLV2ViVmlldyBpbnRvCisgICAgICAg
IGZ1bGxzY3JlZW4uIEFkZCBhIG5ldyBAcHJvdG9jb2wgX1dLRnVsbHNjcmVlbldpbmRvdyB3aXRo
IGEgc2luZ2xlIHByb3BlcnR5CisgICAgICAgIC1wYXJlbnRWaWV3Rm9yV2ViVmlldywgd2hpY2gg
YWxsb3dzIGNsaWVudHMgdG8gcHJvdmlkZSB0aGVpciBvd24gZnVsbHNjcmVlbiB3aW5kb3cgd2l0
aCBhCisgICAgICAgIGN1c3RvbSBwYXJlbnQgbGF5ZXIgaGllcmFyY2h5LiBVc2UgdGhpcyB3aW5k
b3cgYW5kIHZpZXcgaW5zdGVhZCBvZiAtY29udGVudFZpZXcgaW4gCisgICAgICAgIFdLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9GdWxsc2Ny
ZWVuQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL0Z1bGxzY3JlZW5DbGllbnQu
bW06CisgICAgICAgIChXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ6OnNldERlbGVnYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudDo6ZnVsbHNjcmVlbldpbmRvd0ZvcldlYlZp
ZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKC1bV0tGdWxsc2NyZWVu
V2luZG93IHBhcmVudFZpZXdGb3JXZWJWaWV3XSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpjcmVhdGVGdWxsU2NyZWVuV2luZG93KToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXIgaW5pdFdpdGhXaW5kb3c6d2ViVmlldzpwYWdlOl0pOgorICAgICAgICAo
LVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIHdpbmRvd10pOgorICAgICAgICAoLVtXS0Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGVudGVyRnVsbFNjcmVlbjpdKToKKyAgICAgICAgKC1b
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBmaW5pc2hlZEV4aXRGdWxsU2NyZWVuQW5pbWF0
aW9uOl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIF9zdGFydEVu
dGVyRnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlciBfc3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhE
dXJhdGlvbjpdKToKKworMjAxNi0xMi0wMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KKwogICAgICAgICBNYWtlIF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZSBhdmFpbGFibGUgdG8gdXNl
cnMgb2YgdGhlIFdlYktpdDIgQy1BUEkuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjUyNTUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tGdWxsc2NyZWVuRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRnVsbHNjcmVlbkRlbGVnYXRlLmgKaW5kZXggODY0NmM1
MTUzNWY3YmI1YWNiZWI2YTU0ZTQzODVkMWE4MDNhMWZmOS4uNzQ2OGMyZDJjNWQ4ODc4NzQ2NjUy
OTQwOGZiZjA2YjViMGZlZGY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tGdWxsc2NyZWVuRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oCkBAIC0yNywxMCArMjcs
MTQgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKK0BjbGFzcyBOU1dpbmRvdzsKK0Bwcm90b2Nv
bCBfV0tGdWxsc2NyZWVuV2luZG93OworCiBAcHJvdG9jb2wgX1dLRnVsbHNjcmVlbkRlbGVnYXRl
IDxOU09iamVjdD4KIAogQG9wdGlvbmFsCiAKKy0gKE5TV2luZG93PF9XS0Z1bGxzY3JlZW5XaW5k
b3c+ICopX2Z1bGxzY3JlZW5XaW5kb3dGb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3Owog
LSAodm9pZClfd2ViVmlld1dpbGxFbnRlckZ1bGxzY3JlZW46KFdLV2ViVmlldyAqKXdlYlZpZXc7
CiAtICh2b2lkKV93ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuOihXS1dlYlZpZXcgKil3ZWJWaWV3
OwogLSAodm9pZClfd2ViVmlld1dpbGxFeGl0RnVsbHNjcmVlbjooV0tXZWJWaWV3ICopd2ViVmll
dzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRnVs
bHNjcmVlbldpbmRvdy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tG
dWxsc2NyZWVuV2luZG93LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODZkZjkzZjYzM2QwNDk0ZTgwOGNhZmFjOTZj
NWM4MTg2Zjg2MTU2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLRnVsbHNjcmVlbldpbmRvdy5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgor
CisjaWYgV0tfQVBJX0VOQUJMRUQKKworQHByb3RvY29sIF9XS0Z1bGxzY3JlZW5XaW5kb3cgPE5T
T2JqZWN0PgorQHByb3BlcnR5IChyZWFkb25seSwgbm9ubnVsbCkgTlNWaWV3ICpwYXJlbnRWaWV3
Rm9yV2ViVmlldzsKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL0Z1bGxzY3JlZW5DbGllbnQuaAppbmRleCAyYTczMmYwODIxZTgxOGM0YTI0NzRl
ODg2YWVhNzE4NDU3Yzc0YzRjLi4zMzg3MmZmOTEwYmU2ZjY0OTc0MTUyNzFiNDk5ZWQwODEwNjY0
NmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVl
bkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9GdWxsc2NyZWVu
Q2xpZW50LmgKQEAgLTMzLDggKzMzLDEwIEBACiAjaW1wb3J0ICJXZWFrT2JqQ1B0ci5oIgogI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgogCitAY2xhc3MgTlNXaW5kb3c7CiBAY2xhc3MgV0tXZWJW
aWV3OwogQHByb3RvY29sIF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZTsKK0Bwcm90b2NvbCBfV0tGdWxs
c2NyZWVuV2luZG93OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNTEsNiArNTMsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4oV2ViUGFnZVByb3h5Kikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbihXZWJQYWdlUHJveHkqKSBvdmVycmlkZTsK
IAorICAgIE5TV2luZG93PF9XS0Z1bGxzY3JlZW5XaW5kb3c+ICpmdWxsc2NyZWVuV2luZG93Rm9y
V2ViVmlldyhXZWJQYWdlUHJveHkqKTsKKwogcHJpdmF0ZToKICAgICBXS1dlYlZpZXcgKm1fd2Vi
VmlldzsKICAgICBXZWFrT2JqQ1B0cjxpZCA8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiA+IG1fZGVs
ZWdhdGU7CkBAIC02MCw2ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2ViVmlld0Rp
ZEVudGVyRnVsbHNjcmVlbiA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1dpbGxFeGl0RnVsbHNj
cmVlbiA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuIDogMTsKKyAg
ICAgICAgYm9vbCBmdWxsc2NyZWVuV2luZG93Rm9yV2ViVmlldyA6IDE7CiAgICAgfSBtX2RlbGVn
YXRlTWV0aG9kczsKIH07CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9GdWxsc2NyZWVuQ2xpZW50Lm1tCmluZGV4IGMwNmM5NjU2ZWJmMmY4YzI0ZGU2Zjk1NGUy
YWYxZTM5YjVhYTFmY2MuLmMzMjA5N2Y1ZjAzNTM2ZDQ2MmJkYjY5NzgwMGYyZmM4YzkxZWI2ZDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9GdWxsc2NyZWVuQ2xp
ZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9GdWxsc2NyZWVuQ2xp
ZW50Lm1tCkBAIC01MCw2ICs1MCw3IEBAIHZvaWQgRnVsbHNjcmVlbkNsaWVudDo6c2V0RGVsZWdh
dGUoaWQgPF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4gZGVsZWdhdGUpCiAgICAgbV9kZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld0RpZEVudGVyRnVsbHNjcmVlbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuOildOwogICAgIG1fZGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsRXhpdEZ1bGxzY3JlZW4gPSBbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld1dpbGxFeGl0RnVsbHNjcmVlbjopXTsKICAg
ICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW4gPSBbZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuOild
OworICAgIG1fZGVsZWdhdGVNZXRob2RzLmZ1bGxzY3JlZW5XaW5kb3dGb3JXZWJWaWV3ID0gW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX2Z1bGxzY3JlZW5XaW5kb3dGb3JX
ZWJWaWV3OildOwogfQogCiB2b2lkIEZ1bGxzY3JlZW5DbGllbnQ6OndpbGxFbnRlckZ1bGxzY3Jl
ZW4oV2ViUGFnZVByb3h5KikKQEAgLTc2LDYgKzc3LDEzIEBAIHZvaWQgRnVsbHNjcmVlbkNsaWVu
dDo6ZGlkRXhpdEZ1bGxzY3JlZW4oV2ViUGFnZVByb3h5KikKICAgICAgICAgW21fZGVsZWdhdGUu
Z2V0KCkgX3dlYlZpZXdEaWRFeGl0RnVsbHNjcmVlbjptX3dlYlZpZXddOwogfQogCitOU1dpbmRv
dzxfV0tGdWxsc2NyZWVuV2luZG93PiAqRnVsbHNjcmVlbkNsaWVudDo6ZnVsbHNjcmVlbldpbmRv
d0ZvcldlYlZpZXcoV2ViUGFnZVByb3h5ICopCit7CisgICAgaWYgKG1fZGVsZWdhdGVNZXRob2Rz
LmZ1bGxzY3JlZW5XaW5kb3dGb3JXZWJWaWV3KQorICAgICAgICByZXR1cm4gW21fZGVsZWdhdGUu
Z2V0KCkgX2Z1bGxzY3JlZW5XaW5kb3dGb3JXZWJWaWV3Om1fd2ViVmlld107CisgICAgcmV0dXJu
IG5pbDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBXS19BUElfRU5B
QkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRl
eCBiODA2OTc4MzBlZGQ0NzMxNTI4ZmRkNDExOTcyYzYxZTBmYmYxNWM2Li41Zjg1YzY2ZWY0N2Fh
MzYzZDAxODJkMGYxNDA5MzBlYjRjY2MyNzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtNjUsNiArNjUsNyBAQCBPQkpDX0NMQVNTIFdLVGV4
dFRvdWNoQmFySXRlbUNvbnRyb2xsZXI7CiBPQkpDX0NMQVNTIFdlYlBsYXliYWNrQ29udHJvbHNN
YW5hZ2VyOwogI2VuZGlmIC8vIEhBVkUoVE9VQ0hfQkFSKQogCitAcHJvdG9jb2wgX1dLRnVsbHNj
cmVlbldpbmRvdzsKIEBwcm90b2NvbCBXZWJWaWV3SW1wbERlbGVnYXRlCiAKIC0gKE5TVGV4dElu
cHV0Q29udGV4dCAqKV93ZWJfc3VwZXJJbnB1dENvbnRleHQ7CkBAIC0yNzAsNyArMjcxLDcgQEAg
cHVibGljOgogICAgIHZvaWQgY2xvc2VGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigpOwogI2Vu
ZGlmCiAgICAgTlNWaWV3ICpmdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3KCk7Ci0gICAgTlNXaW5k
b3cgKmNyZWF0ZUZ1bGxTY3JlZW5XaW5kb3coKTsKKyAgICBOU1dpbmRvdzxfV0tGdWxsc2NyZWVu
V2luZG93PiAqY3JlYXRlRnVsbFNjcmVlbldpbmRvdygpOwogCiAgICAgYm9vbCBpc0VkaXRhYmxl
KCkgY29uc3Q7CiAgICAgYm9vbCBleGVjdXRlU2F2ZWRDb21tYW5kQnlTZWxlY3RvcihTRUwpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDkx
MTlmYmRmYTI3NmZmZWVmMDg2YWE4ZjQ2MTQwZDQ2MzQxYmNmNGEuLjA4NTE5NGIyNjU3NDkyYzJh
YWY4MTJkODIxZmNhOTI2MGZjMzQ0ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTMwLDYgKzMwLDcgQEAKIAogI2ltcG9ydCAiQVBJTGVn
YWN5Q29udGV4dEhpc3RvcnlDbGllbnQuaCIKICNpbXBvcnQgIkNvbG9yU3BhY2VEYXRhLmgiCisj
aW1wb3J0ICJGdWxsc2NyZWVuQ2xpZW50LmgiCiAjaW1wb3J0ICJHZW5lcmljQ2FsbGJhY2suaCIK
ICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk5hdGl2ZVdlYkdlc3R1cmVFdmVudC5oIgpA
QCAtNjMsNiArNjQsNyBAQAogI2ltcG9ydCAiV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5
LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5
LmgiCisjaW1wb3J0ICJfV0tGdWxsc2NyZWVuV2luZG93LmgiCiAjaW1wb3J0ICJfV0tSZW1vdGVP
YmplY3RSZWdpc3RyeUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tUaHVtYm5haWxWaWV3SW50ZXJu
YWwuaCIKICNpbXBvcnQgPEhJVG9vbGJveC9DYXJib25FdmVudHNDb3JlLmg+CkBAIC04MzksNiAr
ODQxLDE3IEBAIHN0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIG9yZGVyZWRMaXN0U2VnbWVudCA9IDI7
CiAKIEBlbmQKIAorQGludGVyZmFjZSBXS0Z1bGxzY3JlZW5XaW5kb3cgOiBXZWJDb3JlRnVsbFNj
cmVlbldpbmRvdzxfV0tGdWxsc2NyZWVuV2luZG93PgorQHByb3BlcnR5IChyZWFkb25seSwgbm9u
bnVsbCkgTlNWaWV3ICpwYXJlbnRWaWV3Rm9yV2ViVmlldzsKK0BlbmQKKworQGltcGxlbWVudGF0
aW9uIFdLRnVsbHNjcmVlbldpbmRvdworLSAoTlNWaWV3ICopcGFyZW50Vmlld0ZvcldlYlZpZXcK
K3sKKyAgICByZXR1cm4gKE5TVmlldyAqKXNlbGYuY29udGVudFZpZXc7Cit9CitAZW5kCisKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBOU1RvdWNoQmFyICpXZWJWaWV3SW1wbDo6bWFrZVRvdWNoQmFy
KCkKQEAgLTIzODMsMTAgKzIzOTYsMTIgQEAgTlNWaWV3ICpXZWJWaWV3SW1wbDo6ZnVsbFNjcmVl
blBsYWNlaG9sZGVyVmlldygpCiAgICAgcmV0dXJuIG5pbDsKIH0KIAotTlNXaW5kb3cgKldlYlZp
ZXdJbXBsOjpjcmVhdGVGdWxsU2NyZWVuV2luZG93KCkKK05TV2luZG93PF9XS0Z1bGxzY3JlZW5X
aW5kb3c+ICpXZWJWaWV3SW1wbDo6Y3JlYXRlRnVsbFNjcmVlbldpbmRvdygpCiB7CiAjaWYgRU5B
QkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIHJldHVybiBbW1tXZWJDb3JlRnVsbFNjcmVlbldpbmRv
dyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbW05TU2NyZWVuIG1haW5TY3JlZW5dIGZyYW1l
XSBzdHlsZU1hc2s6KE5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyB8IE5TV2luZG93U3R5bGVN
YXNrUmVzaXphYmxlKSBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dIGF1
dG9yZWxlYXNlXTsKKyAgICBpZiAoYXV0byB3aW5kb3cgPSBzdGF0aWNfY2FzdDxGdWxsc2NyZWVu
Q2xpZW50Jj4obV9wYWdlLT5mdWxsc2NyZWVuQ2xpZW50KCkpLmZ1bGxzY3JlZW5XaW5kb3dGb3JX
ZWJWaWV3KG1fcGFnZS5wdHIoKSkpCisgICAgICAgIHJldHVybiB3aW5kb3c7CisgICAgcmV0dXJu
IFtbW1dLRnVsbHNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbW05TU2Ny
ZWVuIG1haW5TY3JlZW5dIGZyYW1lXSBzdHlsZU1hc2s6KE5TV2luZG93U3R5bGVNYXNrQm9yZGVy
bGVzcyB8IE5TV2luZG93U3R5bGVNYXNrUmVzaXphYmxlKSBiYWNraW5nOk5TQmFja2luZ1N0b3Jl
QnVmZmVyZWQgZGVmZXI6Tk9dIGF1dG9yZWxlYXNlXTsKICNlbHNlCiAgICAgcmV0dXJuIG5pbDsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaAppbmRleCAzNGVjYmIwOWFmMjU1ZDI2Y2EwNDYy
ODAzOWE1YzU4MTE2YjE1MjQ4Li5kMjZkNzIwMTQyZmY1OWQ0YmU5MjI2ZDgzODZjZDJkM2M0ZjQw
ODQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaApAQCAtNDEsNiArNDEsOCBAQCBjbGFzcyBJbnRS
ZWN0OwogQGNsYXNzIFdLVmlldzsKIEBjbGFzcyBXZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVy
VmlldzsKIAorQHByb3RvY29sIF9XS0Z1bGxzY3JlZW5XaW5kb3c7CisKIHR5cGVkZWYgZW51bSBG
dWxsU2NyZWVuU3RhdGUgOiBOU0ludGVnZXIgRnVsbFNjcmVlblN0YXRlOwogCiBAaW50ZXJmYWNl
IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgOiBOU1dpbmRvd0NvbnRyb2xsZXI8TlNXaW5k
b3dEZWxlZ2F0ZT4gewpAQCAtNjUsOCArNjcsOSBAQCB0eXBlZGVmIGVudW0gRnVsbFNjcmVlblN0
YXRlIDogTlNJbnRlZ2VyIEZ1bGxTY3JlZW5TdGF0ZTsKIEBwcm9wZXJ0eSAocmVhZG9ubHkpIE5T
UmVjdCBpbml0aWFsRnJhbWU7CiBAcHJvcGVydHkgKHJlYWRvbmx5KSBOU1JlY3QgZmluYWxGcmFt
ZTsKIEBwcm9wZXJ0eSAoYXNzaWduKSBOU0FycmF5ICpzYXZlZENvbnN0cmFpbnRzOworQHByb3Bl
cnR5IChzdHJvbmcpIE5TV2luZG93PF9XS0Z1bGxzY3JlZW5XaW5kb3c+ICp3aW5kb3c7CiAKLS0g
KGlkKWluaXRXaXRoV2luZG93OihOU1dpbmRvdyAqKXdpbmRvdyB3ZWJWaWV3OihOU1ZpZXcgKil3
ZWJWaWV3IHBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlOworLSAoaWQpaW5pdFdpdGhX
aW5kb3c6KE5TV2luZG93PF9XS0Z1bGxzY3JlZW5XaW5kb3c+ICopd2luZG93IHdlYlZpZXc6KE5T
VmlldyAqKXdlYlZpZXcgcGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2U7CiAKIC0gKFdl
YkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3Kil3ZWJWaWV3UGxhY2Vob2xkZXI7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlci5tbQppbmRleCBlYTY0MzI3YjRjZWE2MmY2N2I1MTYzNWNkM2JiN2Zj
YTI4MDRlY2E2Li41MzQ0YjcyZTk4NjM5MDBhZjQ4ZWQzZDM1MzUyZjA5M2I4NGU4YjQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbXBvcnQgIldLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCIKIAorI2ltcG9ydCA8X1dLRnVsbHNjcmVlbldpbmRv
dy5oPgogI2ltcG9ydCAiTGF5ZXJUcmVlQ29udGV4dC5oIgogI2ltcG9ydCAiV0tBUElDYXN0Lmgi
CiAjaW1wb3J0ICJXS1ZpZXdJbnRlcm5hbC5oIgpAQCAtODYsNyArODcsNyBAQCBzdGF0aWMgdm9p
ZCBtYWtlUmVzcG9uZGVyRmlyc3RSZXNwb25kZXJJZkRlc2NlbmRhbnRPZlZpZXcoTlNXaW5kb3cg
KndpbmRvdywgTlNSZQogCiAjcHJhZ21hIG1hcmsgLQogI3ByYWdtYSBtYXJrIEluaXRpYWxpemF0
aW9uCi0tIChpZClpbml0V2l0aFdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cgd2ViVmlldzooTlNW
aWV3ICopd2ViVmlldyBwYWdlOihXZWJQYWdlUHJveHkmKXBhZ2UKKy0gKGlkKWluaXRXaXRoV2lu
ZG93OihOU1dpbmRvdzxfV0tGdWxsc2NyZWVuV2luZG93PiAqKXdpbmRvdyB3ZWJWaWV3OihOU1Zp
ZXcgKil3ZWJWaWV3IHBhZ2U6KFdlYlBhZ2VQcm94eSYpcGFnZQogewogICAgIHNlbGYgPSBbc3Vw
ZXIgaW5pdFdpdGhXaW5kb3c6d2luZG93XTsKICAgICBpZiAoIXNlbGYpCkBAIC05NCwxNyArOTUs
MTcgQEAgc3RhdGljIHZvaWQgbWFrZVJlc3BvbmRlckZpcnN0UmVzcG9uZGVySWZEZXNjZW5kYW50
T2ZWaWV3KE5TV2luZG93ICp3aW5kb3csIE5TUmUKICAgICBbd2luZG93IHNldERlbGVnYXRlOnNl
bGZdOwogICAgIFt3aW5kb3cgc2V0Q29sbGVjdGlvbkJlaGF2aW9yOihbd2luZG93IGNvbGxlY3Rp
b25CZWhhdmlvcl0gfCBOU1dpbmRvd0NvbGxlY3Rpb25CZWhhdmlvckZ1bGxTY3JlZW5QcmltYXJ5
KV07CiAKLSAgICBOU1ZpZXcgKmNvbnRlbnRWaWV3ID0gW3dpbmRvdyBjb250ZW50Vmlld107Ci0g
ICAgY29udGVudFZpZXcuaGlkZGVuID0gWUVTOwotICAgIGNvbnRlbnRWaWV3LmF1dG9yZXNpemVz
U3Vidmlld3MgPSBZRVM7CisgICAgTlNWaWV3ICpwYXJlbnRWaWV3ID0gd2luZG93LnBhcmVudFZp
ZXdGb3JXZWJWaWV3OworICAgIHBhcmVudFZpZXcuaGlkZGVuID0gWUVTOworICAgIHBhcmVudFZp
ZXcuYXV0b3Jlc2l6ZXNTdWJ2aWV3cyA9IFlFUzsKIAotICAgIF9iYWNrZ3JvdW5kVmlldyA9IGFk
b3B0TlMoW1tOU1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Y29udGVudFZpZXcuYm91bmRzXSk7
CisgICAgX2JhY2tncm91bmRWaWV3ID0gYWRvcHROUyhbW05TVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpwYXJlbnRWaWV3LmJvdW5kc10pOwogICAgIF9iYWNrZ3JvdW5kVmlldy5nZXQoKS5sYXll
ciA9IFtDQUxheWVyIGxheWVyXTsKICAgICBfYmFja2dyb3VuZFZpZXcuZ2V0KCkud2FudHNMYXll
ciA9IFlFUzsKICAgICBfYmFja2dyb3VuZFZpZXcuZ2V0KCkuYXV0b3Jlc2l6aW5nTWFzayA9IE5T
Vmlld1dpZHRoU2l6YWJsZSB8IE5TVmlld0hlaWdodFNpemFibGU7Ci0gICAgW2NvbnRlbnRWaWV3
IGFkZFN1YnZpZXc6X2JhY2tncm91bmRWaWV3LmdldCgpXTsKKyAgICBbcGFyZW50VmlldyBhZGRT
dWJ2aWV3Ol9iYWNrZ3JvdW5kVmlldy5nZXQoKV07CiAKLSAgICBfY2xpcFZpZXcgPSBhZG9wdE5T
KFtbTlNWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOmNvbnRlbnRWaWV3LmJvdW5kc10pOworICAg
IF9jbGlwVmlldyA9IGFkb3B0TlMoW1tOU1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6cGFyZW50
Vmlldy5ib3VuZHNdKTsKICAgICBbX2NsaXBWaWV3IHNldFdhbnRzTGF5ZXI6WUVTXTsKICAgICBb
X2NsaXBWaWV3IHNldEF1dG9yZXNpemluZ01hc2s6KE5TVmlld1dpZHRoU2l6YWJsZSB8IE5TVmll
d0hlaWdodFNpemFibGUpXTsKICAgICBbX2JhY2tncm91bmRWaWV3IGFkZFN1YnZpZXc6X2NsaXBW
aWV3LmdldCgpXTsKQEAgLTE0MSw2ICsxNDIsMTIgQEAgc3RhdGljIHZvaWQgbWFrZVJlc3BvbmRl
ckZpcnN0UmVzcG9uZGVySWZEZXNjZW5kYW50T2ZWaWV3KE5TV2luZG93ICp3aW5kb3csIE5TUmUK
IEBzeW50aGVzaXplIGluaXRpYWxGcmFtZT1faW5pdGlhbEZyYW1lOwogQHN5bnRoZXNpemUgZmlu
YWxGcmFtZT1fZmluYWxGcmFtZTsKIAorQGR5bmFtaWMgd2luZG93OworLSAoTlNXaW5kb3c8X1dL
RnVsbHNjcmVlbldpbmRvdz4gKil3aW5kb3cKK3sKKyAgICByZXR1cm4gKE5TV2luZG93PF9XS0Z1
bGxzY3JlZW5XaW5kb3c+ICopc3VwZXIud2luZG93OworfQorCiAtIChCT09MKWlzRnVsbFNjcmVl
bgogewogICAgIHJldHVybiBfZnVsbFNjcmVlblN0YXRlID09IFdhaXRpbmdUb0VudGVyRnVsbFNj
cmVlbgpAQCAtMjUyLDkgKzI1OSw5IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3Jl
YXRlSW1hZ2VXaXRoQ29waWVkRGF0YShDR0ltYWdlUmVmIHNvdXJjZUltYWdlKQogICAgIFtzZWxm
IF9yZXBsYWNlVmlldzpfd2ViVmlldyB3aXRoOl93ZWJWaWV3UGxhY2Vob2xkZXIuZ2V0KCldOwog
ICAgIAogICAgIC8vIFRoZW4gaW5zZXJ0IHRoZSBXZWJWaWV3IGludG8gdGhlIGZ1bGwgc2NyZWVu
IHdpbmRvdwotICAgIE5TVmlldyAqY29udGVudFZpZXcgPSBbW3NlbGYgd2luZG93XSBjb250ZW50
Vmlld107CisgICAgTlNWaWV3ICpwYXJlbnRWaWV3ID0gc2VsZi53aW5kb3cucGFyZW50Vmlld0Zv
cldlYlZpZXc7CiAgICAgW19jbGlwVmlldyBhZGRTdWJ2aWV3Ol93ZWJWaWV3IHBvc2l0aW9uZWQ6
TlNXaW5kb3dCZWxvdyByZWxhdGl2ZVRvOm5pbF07Ci0gICAgX3dlYlZpZXcuZnJhbWUgPSBOU0lu
c2V0UmVjdChjb250ZW50Vmlldy5ib3VuZHMsIDAsIC1fcGFnZS0+dG9wQ29udGVudEluc2V0KCkp
OworICAgIF93ZWJWaWV3LmZyYW1lID0gTlNJbnNldFJlY3QocGFyZW50Vmlldy5ib3VuZHMsIDAs
IC1fcGFnZS0+dG9wQ29udGVudEluc2V0KCkpOwogCiAgICAgbWFrZVJlc3BvbmRlckZpcnN0UmVz
cG9uZGVySWZEZXNjZW5kYW50T2ZWaWV3KHNlbGYud2luZG93LCB3ZWJXaW5kb3dGaXJzdFJlc3Bv
bmRlciwgX3dlYlZpZXcpOwogCkBAIC0zOTcsOCArNDA0LDggQEAgc3RhdGljIGNvbnN0IGZsb2F0
IG1pblZpZGVvV2lkdGggPSA0ODAgKyAyMCArIDIwOyAvLyBOb3RlOiBLZWVwIGluIHN5bmMgd2l0
aCBtZWQKICAgICBOU0Rpc2FibGVTY3JlZW5VcGRhdGVzKCk7CiAgICAgX3BhZ2UtPnNldFN1cHBy
ZXNzVmlzaWJpbGl0eVVwZGF0ZXModHJ1ZSk7CiAgICAgW1tzZWxmIHdpbmRvd10gb3JkZXJPdXQ6
c2VsZl07Ci0gICAgTlNWaWV3ICpjb250ZW50VmlldyA9IFtbc2VsZiB3aW5kb3ddIGNvbnRlbnRW
aWV3XTsKLSAgICBjb250ZW50Vmlldy5oaWRkZW4gPSBZRVM7CisgICAgTlNWaWV3ICpwYXJlbnRW
aWV3ID0gc2VsZi53aW5kb3cucGFyZW50Vmlld0ZvcldlYlZpZXc7CisgICAgcGFyZW50Vmlldy5o
aWRkZW4gPSBZRVM7CiAgICAgW19iYWNrZ3JvdW5kVmlldy5nZXQoKS5sYXllciByZW1vdmVBbGxB
bmltYXRpb25zXTsKICAgICBbW193ZWJWaWV3UGxhY2Vob2xkZXIgd2luZG93XSBzZXRBdXRvZGlz
cGxheTpOT107CiAKQEAgLTU5OSwxOCArNjA2LDE4IEBAIHN0YXRpYyBDQUFuaW1hdGlvbiAqZmFk
ZUFuaW1hdGlvbihDRlRpbWVJbnRlcnZhbCBkdXJhdGlvbiwgQW5pbWF0aW9uRGlyZWN0aW9uIGRp
CiAKIC0gKHZvaWQpX3N0YXJ0RW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOihO
U1RpbWVJbnRlcnZhbClkdXJhdGlvbgogewotICAgIE5TVmlldyogY29udGVudFZpZXcgPSBbW3Nl
bGYgd2luZG93XSBjb250ZW50Vmlld107CisgICAgTlNWaWV3KiBwYXJlbnRWaWV3ID0gc2VsZi53
aW5kb3cucGFyZW50Vmlld0ZvcldlYlZpZXc7CiAKICAgICBbW19jbGlwVmlldyBsYXllcl0gYWRk
QW5pbWF0aW9uOnpvb21BbmltYXRpb24oX2luaXRpYWxGcmFtZSwgX2ZpbmFsRnJhbWUsIHNlbGYu
d2luZG93LnNjcmVlbi5mcmFtZSwgZHVyYXRpb24sIEFuaW1hdGVJbikgZm9yS2V5OkAiZnVsbHNj
cmVlbiJdOwogICAgIENBTGF5ZXIgKm1hc2tMYXllciA9IFtDQUxheWVyIGxheWVyXTsKICAgICBt
YXNrTGF5ZXIuYW5jaG9yUG9pbnQgPSBDR1BvaW50WmVybzsKLSAgICBtYXNrTGF5ZXIuZnJhbWUg
PSBOU1JlY3RUb0NHUmVjdChjb250ZW50Vmlldy5ib3VuZHMpOworICAgIG1hc2tMYXllci5mcmFt
ZSA9IE5TUmVjdFRvQ0dSZWN0KHBhcmVudFZpZXcuYm91bmRzKTsKICAgICBtYXNrTGF5ZXIuYmFj
a2dyb3VuZENvbG9yID0gQ0dDb2xvckdldENvbnN0YW50Q29sb3Ioa0NHQ29sb3JCbGFjayk7CiAg
ICAgbWFza0xheWVyLmF1dG9yZXNpemluZ01hc2sgPSAoTlNWaWV3V2lkdGhTaXphYmxlIHwgTlNW
aWV3SGVpZ2h0U2l6YWJsZSk7CiAgICAgW21hc2tMYXllciBhZGRBbmltYXRpb246bWFza0FuaW1h
dGlvbihfaW5pdGlhbEZyYW1lLCBfZmluYWxGcmFtZSwgc2VsZi53aW5kb3cuc2NyZWVuLmZyYW1l
LCBkdXJhdGlvbiwgQW5pbWF0ZUluKSBmb3JLZXk6QCJmdWxsc2NyZWVuIl07CiAgICAgW19jbGlw
VmlldyBsYXllcl0ubWFzayA9IG1hc2tMYXllcjsKIAotICAgIGNvbnRlbnRWaWV3LmhpZGRlbiA9
IE5POworICAgIHBhcmVudFZpZXcuaGlkZGVuID0gTk87CiAgICAgW19iYWNrZ3JvdW5kVmlldy5n
ZXQoKS5sYXllciBhZGRBbmltYXRpb246ZmFkZUFuaW1hdGlvbihkdXJhdGlvbiwgQW5pbWF0ZUlu
KSBmb3JLZXk6QCJmdWxsc2NyZWVuIl07CiAKICAgICBOU1dpbmRvdyogd2luZG93ID0gW3NlbGYg
d2luZG93XTsKQEAgLTYzOCw4ICs2NDUsNyBAQCBzdGF0aWMgQ0FBbmltYXRpb24gKmZhZGVBbmlt
YXRpb24oQ0ZUaW1lSW50ZXJ2YWwgZHVyYXRpb24sIEFuaW1hdGlvbkRpcmVjdGlvbiBkaQogICAg
IFtbX2NsaXBWaWV3IGxheWVyXSBhZGRBbmltYXRpb246em9vbUFuaW1hdGlvbihfaW5pdGlhbEZy
YW1lLCBfZmluYWxGcmFtZSwgc2VsZi53aW5kb3cuc2NyZWVuLmZyYW1lLCBkdXJhdGlvbiwgQW5p
bWF0ZU91dCkgZm9yS2V5OkAiZnVsbHNjcmVlbiJdOwogICAgIFtbX2NsaXBWaWV3IGxheWVyXS5t
YXNrIGFkZEFuaW1hdGlvbjptYXNrQW5pbWF0aW9uKF9pbml0aWFsRnJhbWUsIF9maW5hbEZyYW1l
LCBzZWxmLndpbmRvdy5zY3JlZW4uZnJhbWUsIGR1cmF0aW9uLCBBbmltYXRlT3V0KSBmb3JLZXk6
QCJmdWxsc2NyZWVuIl07CiAKLSAgICBOU1ZpZXcqIGNvbnRlbnRWaWV3ID0gW1tzZWxmIHdpbmRv
d10gY29udGVudFZpZXddOwotICAgIGNvbnRlbnRWaWV3LmhpZGRlbiA9IE5POworICAgIHNlbGYu
d2luZG93LnBhcmVudFZpZXdGb3JXZWJWaWV3LmhpZGRlbiA9IE5POwogICAgIFtfYmFja2dyb3Vu
ZFZpZXcuZ2V0KCkubGF5ZXIgYWRkQW5pbWF0aW9uOmZhZGVBbmltYXRpb24oZHVyYXRpb24sIEFu
aW1hdGVPdXQpIGZvcktleTpAImZ1bGxzY3JlZW4iXTsKIAogICAgIF9wYWdlLT5zZXRTdXBwcmVz
c1Zpc2liaWxpdHlVcGRhdGVzKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhMTdhMTE0ZmIwN2E2MzBhYTE1NzY1OTNm
ODBiMmI5ODAyZDQ0MjUyLi4zZGU0NjU1OTMwMzBlMDAzMjY5MzliMjZhZDIxODZmMDQxYTZiMDA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xNzYxLDYgKzE3NjEsNyBAQAogCQlDRDAwM0E1MzE5RDQ5QjVEMDA1QUJDRTAgLyog
V2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0QwMDNBNTExOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5
U3RvcmFnZU1hbmFnZXIuaCAqLzsgfTsKIAkJQ0QxOUEyNkQxQTEzRTgyQTAwOEQ2NTBFIC8qIFdl
YkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlBMjY5MUExM0U4MjAwMDhENjUwRSAvKiBXZWJEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5jcHAgKi87IH07CiAJCUNEMTlBMjZFMUExM0U4MzQwMDhENjUwRSAv
KiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUEyNkExQTEzRTgyMTAwOEQ2NTBFIC8qIFdlYkRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LmggKi87IH07CisJCUNENTlFQURDMURGMEMxMDgwMDBGOTlBNSAv
KiBfV0tGdWxsc2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDU5RUFEQjFERjBDMEU0MDAwRjk5QTUgLyogX1dLRnVsbHNjcmVlbldp
bmRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUNENUM2NkEwMTM0QjlEMzgwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVu
Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENENUM2NjlFMTM0QjlEMzYwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVu
Q2xpZW50LmNwcCAqLzsgfTsKIAkJQ0Q1QzY2QTExMzRCOUQzODAwNEZFMkE4IC8qIEluamVjdGVk
QnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENENUM2NjlGMTM0QjlEMzcwMDRGRTJBOCAvKiBJbmplY3RlZEJ1
bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggKi87IH07CiAJCUNENjdEMzBFMTVDMDhGOUEwMDg0
M0FERiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDY3RDMwODE1QzA3
QkUwMDA4NDNBREYgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
Y3BwICovOyB9OwpAQCAtMzkxMSw2ICszOTEyLDcgQEAKIAkJQ0QwMDNBNTExOUQ0OUI1RDAwNUFC
Q0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oOyBwYXRoID0gTWVkaWFDYWNo
ZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNEMTlBMjY5MUExM0U4MjAwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMTlBMjZB
MUExM0U4MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDU5RUFEQjFERjBDMEU0MDAwRjk5QTUgLyog
X1dLRnVsbHNjcmVlbldpbmRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBf
V0tGdWxsc2NyZWVuV2luZG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENUM2
NjlFMTM0QjlEMzYwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxl
UGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDVDNjY5RjEzNEI5RDM3MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNs
aWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBh
Z2VGdWxsU2NyZWVuQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENjdE
MzA4MTVDMDdCRTAwMDg0M0FERiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3Rl
ZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC01MjE2LDYgKzUyMTgsNyBAQAogCQkJCTJFN0E5NDQ5MUJCRDk1QzYwMDk0
NTU0NyAvKiBfV0tGb2N1c2VkRWxlbWVudEluZm8uaCAqLywKIAkJCQkzN0E2NEU1NjE4RjM4RjQ2
MDBFQjMwRjEgLyogX1dLRm9ybUlucHV0U2Vzc2lvbi5oICovLAogCQkJCUNENzhFMTE4MURCN0U1
QUQwMDE0QTJERSAvKiBfV0tGdWxsc2NyZWVuRGVsZWdhdGUuaCAqLywKKwkJCQlDRDU5RUFEQjFE
RjBDMEU0MDAwRjk5QTUgLyogX1dLRnVsbHNjcmVlbldpbmRvdy5oICovLAogCQkJCTUxNDNCMjVF
MUREQ0RGRDEwMDE0RkFDNiAvKiBfV0tJY29uTG9hZGluZ0RlbGVnYXRlLmggKi8sCiAJCQkJMzdB
NjRFNTQxOEYzOEUzQzAwRUIzMEYxIC8qIF9XS0lucHV0RGVsZWdhdGUuaCAqLywKIAkJCQkyRDc5
MEE5QzFBRDcwNTBEMDBBQjkwQjMgLyogX1dLTGF5b3V0TW9kZS5oICovLApAQCAtNzc4Niw2ICs3
Nzg5LDcgQEAKIAkJCQlFNDJFMDYxMDFBQTc1MjNCMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlSU9D
aGFubmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDQzNkVDRTFBMEQwNDBCMDBFQUQyMDQgLyog
TmV0d29ya0NhY2hlS2V5LmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzFFRUJCRDFCRDg1QzQzMDBC
QjY0QzMgLyogTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlDRDU5RUFEQzFERjBDMTA4MDAwRjk5QTUgLyogX1dLRnVsbHNjcmVlbldpbmRvdy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODMyQUUyNTIxQkUyRThDRDAwRkFBRTEwIC8qIE5ldHdvcmtDYWNoZVNw
ZWN1bGF0aXZlTG9hZE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzNEIyNTEyMUE4NDJD
ODcwMENGQjE1MCAvKiBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFNDQzNkVDRjFBMEQwNDBCMDBFQUQyMDQgLyogTmV0d29ya0NhY2hlU3RvcmFnZS5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggMTFiNDBiYjVjYTc3YjBhNDYwNzBlYTMzNjg5ZWM0OWQ4ZDYzNjQyNi4uOWRmMzI4ZjJh
MjEzMzg0YTg2YzE3NmNiNDEyYjZlZTdjNDVkYjY3ZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE2LTEyLTAxICBK
ZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IGNsaWVudHMg
b2YgX1dLRnVsbHNjcmVlbkRlbGVnYXRlIHRvIHNwZWNpZnkgYSB3aW5kb3cgdG8gdXNlIGZvciBm
dWxsc2NyZWVuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjUyNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5t
bToKKyAgICAgICAgKC1bRnVsbHNjcmVlbkRlbGVnYXRlTWVzc2FnZUhhbmRsZXJXaXRoV2luZG93
IGluaXRXaXRoV2luZG93Ol0pOgorICAgICAgICAoLVtGdWxsc2NyZWVuRGVsZWdhdGVNZXNzYWdl
SGFuZGxlcldpdGhXaW5kb3cgX2Z1bGxzY3JlZW5XaW5kb3dGb3JXZWJWaWV3Ol0pOgorICAgICAg
ICAoLVtUZXN0RnVsbHNjcmVlbldpbmRvdyBpbml0V2l0aENvbnRlbnRSZWN0OnN0eWxlTWFzazpi
YWNraW5nOmRlZmVyOl0pOgorICAgICAgICAoLVtUZXN0RnVsbHNjcmVlbldpbmRvdyBwYXJlbnRW
aWV3Rm9yV2ViVmlld10pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTYt
MTEtMTggIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHNv
bWUgcGVyZm9ybWFuY2UgdGVzdHMgZm9yIHZhcmlvdXMgYXNwZWN0cyBvZiBtZWRpYSBsb2FkaW5n
IGFuZCBwbGF5YmFjay4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbQppbmRleCA4NGRjYmUyZjIyNTZj
ZTllZmRmMjhlY2FhZjQ4MzE1ZmQ0M2U2NTRjLi5lMzg1ZmE1MGQ2NDRmYjFkNWFmMjUzYTI1YmUz
MjU0MDFlZmVhNjNmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1tCkBAIC03Myw2ICs3Myw0OSBA
QCBzdGF0aWMgYm9vbCByZWNlaXZlZERpZEV4aXRGdWxsc2NyZWVuTWVzc2FnZTsKIH0KIEBlbmQK
IAorQGludGVyZmFjZSBGdWxsc2NyZWVuRGVsZWdhdGVNZXNzYWdlSGFuZGxlcldpdGhXaW5kb3cg
OiBGdWxsc2NyZWVuRGVsZWdhdGVNZXNzYWdlSGFuZGxlciB7CisgICAgUmV0YWluUHRyPE5TV2lu
ZG93PF9XS0Z1bGxzY3JlZW5XaW5kb3c+PiBfd2luZG93OworfQorLSAoaWQpaW5pdFdpdGhXaW5k
b3c6KE5TV2luZG93PF9XS0Z1bGxzY3JlZW5XaW5kb3c+ICopd2luZG93OworQGVuZAorCitAaW1w
bGVtZW50YXRpb24gRnVsbHNjcmVlbkRlbGVnYXRlTWVzc2FnZUhhbmRsZXJXaXRoV2luZG93Cist
IChpZClpbml0V2l0aFdpbmRvdzooTlNXaW5kb3c8X1dLRnVsbHNjcmVlbldpbmRvdz4gKil3aW5k
b3cKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlmIChzZWxmKQorICAgICAgICBf
d2luZG93ID0gd2luZG93OworICAgIHJldHVybiBzZWxmOworfQorLSAoTlNXaW5kb3c8X1dLRnVs
bHNjcmVlbldpbmRvdz4gKilfZnVsbHNjcmVlbldpbmRvd0ZvcldlYlZpZXc6KFdLV2ViVmlldyAq
KXZpZXcKK3sKKyAgICByZXR1cm4gX3dpbmRvdy5nZXQoKTsKK30KK0BlbmQKKworQGludGVyZmFj
ZSBUZXN0RnVsbHNjcmVlbldpbmRvdyA6IE5TV2luZG93PF9XS0Z1bGxzY3JlZW5XaW5kb3c+IHsK
KyAgICBSZXRhaW5QdHI8TlNWaWV3PiBfcGFyZW50VmlldzsKK30KK0BlbmQKKworQGltcGxlbWVu
dGF0aW9uIFRlc3RGdWxsc2NyZWVuV2luZG93CistIChpZClpbml0V2l0aENvbnRlbnRSZWN0OihO
U1JlY3QpY29udGVudFJlY3Qgc3R5bGVNYXNrOihOU1dpbmRvd1N0eWxlTWFzaylzdHlsZSBiYWNr
aW5nOihOU0JhY2tpbmdTdG9yZVR5cGUpYnVmZmVyaW5nVHlwZSBkZWZlcjooQk9PTClmbGFnCit7
CisgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aENvbnRlbnRSZWN0OmNvbnRlbnRSZWN0IHN0eWxl
TWFzazpzdHlsZSBiYWNraW5nOmJ1ZmZlcmluZ1R5cGUgZGVmZXI6ZmxhZ107CisgICAgaWYgKCFz
ZWxmKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX3BhcmVudFZpZXcgPSBhZG9wdE5TKFtb
TlNWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgY29udGVudFJlY3Qu
c2l6ZS53aWR0aCwgY29udGVudFJlY3Quc2l6ZS5oZWlnaHQpXSk7CisgICAgW3NlbGYuY29udGVu
dFZpZXcgYWRkU3VidmlldzpfcGFyZW50Vmlldy5nZXQoKV07CisgICAgcmV0dXJuIHNlbGY7Cit9
CisKKy0gKE5TVmlldyAqKXBhcmVudFZpZXdGb3JXZWJWaWV3Cit7CisgICAgcmV0dXJuIF9wYXJl
bnRWaWV3LmdldCgpOworfQorQGVuZAorCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRF
U1QoRnVsbHNjcmVlbiwgRGVsZWdhdGUpCkBAIC0xMDYsNiArMTQ5LDMzIEBAIFRFU1QoRnVsbHNj
cmVlbiwgRGVsZWdhdGUpCiAgICAgQVNTRVJUX0ZBTFNFKFt3ZWJWaWV3IF9pc0luRnVsbHNjcmVl
bl0pOwogfQogCitURVNUKEZ1bGxzY3JlZW4sIERlbGVnYXRlV2luZG93KQoreworICAgIFJldGFp
blB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBSZXRhaW5QdHI8V0tXZWJW
aWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIDEwMCwgMTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0
KCldKTsKKyAgICBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uX2Z1bGxTY3JlZW5FbmFibGVk
ID0gWUVTOworICAgIFJldGFpblB0cjxUZXN0RnVsbHNjcmVlbldpbmRvdz4gZnVsbHNjcmVlbldp
bmRvdyA9IGFkb3B0TlMoW1tUZXN0RnVsbHNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250
ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIDEwMCwgMTAwKSBzdHlsZU1hc2s6KE5TV2luZG93U3R5
bGVNYXNrQm9yZGVybGVzcyB8IE5TV2luZG93U3R5bGVNYXNrUmVzaXphYmxlKSBiYWNraW5nOk5T
QmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKKyAgICBSZXRhaW5QdHI8RnVsbHNjcmVl
bkRlbGVnYXRlTWVzc2FnZUhhbmRsZXJXaXRoV2luZG93PiBoYW5kbGVyID0gYWRvcHROUyhbW0Z1
bGxzY3JlZW5EZWxlZ2F0ZU1lc3NhZ2VIYW5kbGVyV2l0aFdpbmRvdyBhbGxvY10gaW5pdFdpdGhX
aW5kb3c6ZnVsbHNjcmVlbldpbmRvdy5nZXQoKV0pOworICAgIFtbY29uZmlndXJhdGlvbiB1c2Vy
Q29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkg
bmFtZTpAImZ1bGxzY3JlZW5DaGFuZ2VIYW5kbGVyIl07CisgICAgW3dlYlZpZXcgX3NldEZ1bGxz
Y3JlZW5EZWxlZ2F0ZTpoYW5kbGVyLmdldCgpXTsKKworICAgIFJldGFpblB0cjxOU1dpbmRvdz4g
d2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3
ZWJWaWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOworICAgIFtbd2luZG93IGNvbnRl
bnRWaWV3XSBhZGRTdWJ2aWV3OndlYlZpZXcuZ2V0KCldOworCisgICAgTlNVUkxSZXF1ZXN0ICpy
ZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5k
bGVdIFVSTEZvclJlc291cmNlOkAiRnVsbHNjcmVlbkRlbGVnYXRlIiB3aXRoRXh0ZW5zaW9uOkAi
aHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWNlaXZlZExvYWRlZE1lc3NhZ2UpOworCisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVu
dCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOk5T
TWFrZVBvaW50KDUsIDUpIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6
d2luZG93LmdldCgpLndpbmRvd051bWJlciBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlja0Nv
dW50OjAgcHJlc3N1cmU6MF07CisgICAgW3dlYlZpZXcgbW91c2VEb3duOmV2ZW50XTsKKworICAg
IEFTU0VSVF9GQUxTRShbd2ViVmlldyBfaXNJbkZ1bGxzY3JlZW5dKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkRGlkRW50ZXJGdWxsc2NyZWVuTWVzc2FnZSk7CisKKyAg
ICBBU1NFUlRfRVEoZnVsbHNjcmVlbldpbmRvdy5nZXQoKSwgd2ViVmlldy5nZXQoKS53aW5kb3cp
OworICAgIEFTU0VSVF9UUlVFKFt3ZWJWaWV3IGlzRGVzY2VuZGFudE9mOmZ1bGxzY3JlZW5XaW5k
b3cuZ2V0KCkucGFyZW50Vmlld0ZvcldlYlZpZXddKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSQogCiAjZW5kaWYK
</data>
<flag name="review"
          id="318403"
          type_id="1"
          status="-"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>