<?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>21279</bug_id>
          
          <creation_ts>2008-10-01 12:07:27 -0700</creation_ts>
          <short_desc>Support ime-mode (CSS property)</short_desc>
          <delta_ts>2026-03-03 14:26:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>525.x (Safari 3.1)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jungshik Shin">jshin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>50167214</cc>
    
    <cc>androidgao</cc>
    
    <cc>ap</cc>
    
    <cc>bashi</cc>
    
    <cc>bfulgham</cc>
    
    <cc>hamaji</cc>
    
    <cc>hbono</cc>
    
    <cc>jcraig</cc>
    
    <cc>joone</cc>
    
    <cc>kennyluck</cc>
    
    <cc>kochi</cc>
    
    <cc>mike</cc>
    
    <cc>samuel</cc>
    
    <cc>syoichi</cc>
    
    <cc>webkit.bugzilla</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>93571</commentid>
    <comment_count>0</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2008-10-01 12:07:27 -0700</bug_when>
    <thetext>IE and Firefox3 support ime-mode to control the activation of input method in some text input field.

http://developer.mozilla.org/en/CSS/ime-mode

For instance, Google Sites use it to limit the set of characters in URL fields (well, it&apos;s too restrictive, but that&apos;s a separate issue). 

1. Go to sites.google.com
2. Create or open an existing site
3. From Home page, click on &apos;More actions&apos; &gt; &apos;Page settings&apos;
4. Move focus to &apos;Page URL&apos; text box

In IE and FF3, you cannot activate an input method because the field is styled with &apos;ime-mode: disabled&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93572</commentid>
    <comment_count>1</comment_count>
      <attachid>23984</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2008-10-01 12:09:45 -0700</bug_when>
    <thetext>Created attachment 23984
a simple test file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114065</commentid>
    <comment_count>2</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2009-03-17 11:00:55 -0700</bug_when>
    <thetext>It&apos;s http://crbug.com/4490 as well. 
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125168</commentid>
    <comment_count>3</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2009-06-10 10:41:36 -0700</bug_when>
    <thetext>In IE, it&apos;s either -ime-mode or -ms-ime-mode. 

Related to (but separate from) this is &apos;Windows InputScope&apos; support ( http://blogs.msdn.com/tsfaware/archive/2007/07/10/input-scopes.aspx
http://msdn.microsoft.com/en-us/library/ms698133.aspx ), but I&apos;m not sure if that belongs to bugs.webkit.org (perhaps more likely to belong to each embedder&apos;s bug tracker). 


</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274836</commentid>
    <comment_count>4</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-09-06 20:55:04 -0700</bug_when>
    <thetext>Hi, I&apos;d like to implement CSS ime-mode property to WebKit. I started this on SnowLeopard. I&apos;m going to send a patch after this comment.

Here are some notes about the patch:
- The patch uses Text Input Source Services, which is a part of Carbon&apos;s HIToolbox. Actually, I don&apos;t like to use Carbon framework, but it seems that there is no APIs on Cocoa for handling input methods. (Please let me know if there are APIs for handling input methods in Cocoa. I&apos;ll be happy to re-implement by using it.)
- The patch will work on Mac OS v10.5 or later because the patch depends on the Text Input Source Services, which was introduced in Mac OS X v10.5
- The patch added a method into WebHTMLView class to force exposing input context because it is needed to make TSMGetActiveDocument() return non-nil, which is required to enable/disable input methods correctly. I&apos;m not sure this is the right way so I&apos;d like to ask some advice on this.
- I&apos;m also planning to implement the ime-mode property for Windows (and hopefully Linux) once I could successfully add supporting this property on Mac.

Thanks,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274837</commentid>
    <comment_count>5</comment_count>
      <attachid>66681</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-09-06 20:55:43 -0700</bug_when>
    <thetext>Created attachment 66681
Proposed Patch V0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274847</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-06 22:32:22 -0700</bug_when>
    <thetext>What is the use case for ime-mode? The one provided in bug description seems like a bad idea - I definitely don&apos;t want Web pages to disable input methods in URL fields. A page does not know what input method available on the platform do - for example, Kotoeri Romaji input mode on the Mac is used exactly to type Roman characters, as in URLs, and there is no reason to switch out of Kotoeri just for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274854</commentid>
    <comment_count>7</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-09-06 23:21:09 -0700</bug_when>
    <thetext>(In reply to comment #6)

Hi,

Thank you for your response. As you mentioned (and MDC&lt;https://developer.mozilla.org/en/CSS/ime-mode&gt; also noted), it&apos;s not appropriate in general to control the activation of input method. However, it would be helpful for developers who have to develop a web application which works as front end of a system that accepts only certain input(e.g. ASCII only or non-ASCII only text). In fact (and unfortunately), such systems are fairly common in Japan, at least as far as I know. Providing a common-used way for controling activation of input method (because IE and FF3 support this property) might be helpful for developing such web applications.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274862</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-07 00:06:53 -0700</bug_when>
    <thetext>OK, but doesn&apos;t preventing input methods mean that
1) Kotoeri Romaji won&apos;t work,
2) but other keyboard layouts (such as Russian) will still work?

Neither is desirable in your use case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274876</commentid>
    <comment_count>9</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-09-07 00:56:28 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; OK, but doesn&apos;t preventing input methods mean that
&gt; 1) Kotoeri Romaji won&apos;t work,
&gt; 2) but other keyboard layouts (such as Russian) will still work?
&gt; 
&gt; Neither is desirable in your use case.

Sorry for lack of description. The patch doesn&apos;t disable Kotoeri Romaji input mode even if a field is styled with &apos;ime-mode: disable&apos; since the input mode is so called &quot;ASCII-capable (This term used in the reference document on ADC) input mode,&quot; which behaves just like ASCII keyboard. The patch disables only non ASCII-capable input methods when the field is styled with &quot;ime-mode: disabled.&quot; So, in that case, Kotoeri Romaji input mode doesn&apos;t switch out while Russian input mode do (Russian input mode is not ASCII-capable).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274900</commentid>
    <comment_count>10</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-09-07 01:36:55 -0700</bug_when>
    <thetext>Yet another use case is an address book application on mobile phones. Typical address book applications on modern mobile phones for CJK people automatically enables/disables input mode depending on the input field. For example, input method is automatically enabled when the user should input the address, and is disabled automatically when the user should input the phone number. Once WebKit supports ime-mode property, mobile phones which uses WebKit as UI component such as iPhone or Android can provide easy way to implement this behavior. IMHO, since this behavior seems to be familiar with CJK people, supporting ime-mode property might be helpful for iPhone and Android developers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274952</commentid>
    <comment_count>11</comment_count>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2010-09-07 04:00:40 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; OK, but doesn&apos;t preventing input methods mean that
&gt; &gt; 1) Kotoeri Romaji won&apos;t work,
&gt; &gt; 2) but other keyboard layouts (such as Russian) will still work?
&gt; &gt; 
&gt; &gt; Neither is desirable in your use case.
&gt; 
&gt; Sorry for lack of description. The patch doesn&apos;t disable Kotoeri Romaji input mode even if a field is styled with &apos;ime-mode: disable&apos; since the input mode is so called &quot;ASCII-capable (This term used in the reference document on ADC) input mode,&quot; which behaves just like ASCII keyboard. The patch disables only non ASCII-capable input methods when the field is styled with &quot;ime-mode: disabled.&quot; So, in that case, Kotoeri Romaji input mode doesn&apos;t switch out while Russian input mode do (Russian input mode is not ASCII-capable).

Even though I&apos;m not a WebKit reviewer (just a claimer), I&apos;m interested in the behavior of your change when we use a JIS keyboard in an element which has &apos;ime-mode: disable;&apos; property.

Regards,

Hironori Bono</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274965</commentid>
    <comment_count>12</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-09-07 04:41:33 -0700</bug_when>
    <thetext>(In reply to comment #11)

Bono-san,

&gt; Even though I&apos;m not a WebKit reviewer (just a claimer), I&apos;m interested in the behavior of your change when we use a JIS keyboard in an element which has &apos;ime-mode: disable;&apos; property.

Thank you for the question. I also should mention that. Basically, the behavior of this change doesn&apos;t depend on the physical keyboard layout but on input mode that currently used because we can use any input mode regardless of the physical keyboard layout on Mac. In an element which has &apos;ime-mode: disabled&apos; property, the input mode will switch out when we use non ASCII-capable input mode (otherwise not), regardless of the keyboard layout that we use.

Regards,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275123</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-07 10:16:06 -0700</bug_when>
    <thetext>&gt; because IE and FF3 support this property

Are you aware of any Web sites that are misbehaving due to our lack of support for ime-mode?

&gt; e.g. ASCII only or non-ASCII only text

You are saying that this is a common issue in Japan. Could you please provide some examples? It doesn&apos;t seem i18n-friendly to provide a way to special case ASCII, and only ASCII. In fact, I can&apos;t think of many examples where text should be ASCII-only. Even when typing code in some programming language, there can be non-ASCII string literals, at least.

&gt; For example, input method is automatically enabled when the user should input the address, and is
&gt; disabled automatically when the user should input the phone number.

If the actual use case is switching to a numeric input mode in mobile devices, then it doesn&apos;t seem like we should be making any changes on desktop. And why forcefully disable Russian keyboard? It&apos;s perfectly good for phone numbers.

In HTML5, there is &lt;input type=tel&gt;, and a mobile browser should be able to recognize that, and set input mode accordingly if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275493</commentid>
    <comment_count>14</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-09-07 18:11:35 -0700</bug_when>
    <thetext>(In reply to comment #13)

Hi Alexey,

Thank you for your comments.

&gt; Are you aware of any Web sites that are misbehaving due to our lack of support for ime-mode?

Here is a web page that uses ime-mode property (it&apos;s written in Japanese, sorry for your inconvenience):

https://www.aeoncredit.co.jp/NetBranch/cardinit.do

This page is the registration form for becoming a member of a credit card club. Most of input elements in this page are styled with ime-mode property because the system requires users to provide information with certain format. For instance, name of the user must contain only Katakana (it is quite common to force providing one&apos;s name with Katakana or Hiragana in Japan to identify how to read his/her name). On the other hand, the card number and the phone number must provide as ASCII characters (I think it&apos;s not appropriate because they can automatically convert non-ASCII digits characters to ASCII digits characters, but unfortunately such restriction is also commonly used in Japanese pages).

&gt; You are saying that this is a common issue in Japan. Could you please provide some examples? It doesn&apos;t seem i18n-friendly to provide a way to special case ASCII, and only ASCII. In fact, I can&apos;t think of many examples where text should be ASCII-only. Even when typing code in some programming language, there can be non-ASCII string literals, at least.

I think above page is could be an example. Please note that ime-mode property not only for to force disabling input methods. IMHO, ime-mode property should be used for providing suitable input mode by default, rather than forcing enabling/disabling input methods. We can provide suitable default input mode by using &apos;ime-mode: active&apos; or &apos;ime-mode: inactive&apos; and even if these style are specified, the user can turn on/off the input method whenever the user want.

In addition, there are many demands on controlling input methods can be seen on the web. I&apos;ve searched with query &quot;html 入力制限&quot; (means &quot;html input restrict&quot;) and got about 2,800,000 results, and most of search results on the first page are related with controlling input methods.

&gt; If the actual use case is switching to a numeric input mode in mobile devices, then it doesn&apos;t seem like we should be making any changes on desktop. And why forcefully disable Russian keyboard? It&apos;s perfectly good for phone numbers.

Sorry for leading to misunderstanding, but mobile devices is one of an example. As mentioned above, there are also demands on desktop web applications.

&gt; In HTML5, there is &lt;input type=tel&gt;, and a mobile browser should be able to recognize that, and set input mode accordingly if needed.

&lt;input type=&quot;tel&quot;&gt; is very useful, but it&apos;s not a substitute of ime-mode property because ime-mode not only for inputting numbers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275588</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-07 20:36:06 -0700</bug_when>
    <thetext>&gt; name of the user must contain only Katakana

Thank you for the example!

How does one input Katakana without using an IM, if they have a U.S. keyboard? That&apos;s of course possible with Kotoeri IM, but only if input methods are not disabled.

&gt; providing suitable input mode by default

Is ime-mode capable of providing Russian keyboard layout by default, for fields that are expected to be in Russian?

&gt;&lt;input type=&quot;tel&quot;&gt; is very useful, but it&apos;s not a substitute of ime-mode property because ime-mode not only for inputting numbers.

I think that it also serves as an example of why ime-mode would be harmful. Although pages may want to disable input methods for telephone numbers, a better answer to this is the opposite - a browser would provide a custom input method, e.g. one that lets the user look up phone numbers in address book, or at least format them on the fly.

At this point, I think that this discussion should really go to WHATWG mailing list. I&apos;m almost certain that we don&apos;t want to provide an explict way to play with OS input method mechanisms, but there may be other ways to solve the problems that need solving.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275604</commentid>
    <comment_count>16</comment_count>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2010-09-07 21:58:50 -0700</bug_when>
    <thetext>These are just random thoughts of mine after reading the discussion in this page. Please feel free to ignore them.

As for the usage of this &quot;ime-mode&quot; property, I thought of a somewhat crazy scenario: using input methods on non-editable elements, such as &lt;canvas&gt; elements. For example, when implementing an on-line game with &lt;canvas&gt; elements, I would like to enable input methods and to receive composition events so we can print composed characters with fillText().

By the way, to test this &quot;ime-mode&quot; property on IE, it does not change the keyboard layout but it just disables the IMEs attached to the keyboard. That is, we can type Cyrillic characters even in an input elememt whose &quot;ime-mode&quot; value is &quot;disabled&quot; when we use Russian keyboards. To emulate this behavior, I&apos;m wondering if we should control TIS and change the keyboard layout as we do for password fields. (In terms of Cocoa, this &quot;ime-mode&quot; property just controls whether we should call [interpretKeyEvents:] in [WebHTMLView _interceptEditingKeyEvent:shouldSaveCommand:]?)

Regards,

Hironori Bono</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275623</commentid>
    <comment_count>17</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-09-07 23:12:34 -0700</bug_when>
    <thetext>Hi Alexey,

Thank you for discussing about this matter. I&apos;m grateful to you.

&gt; How does one input Katakana without using an IM, if they have a U.S. keyboard? That&apos;s of course possible with Kotoeri IM, but only if input methods are not disabled.

I might misunderstand your point, but IMs will not be disabled when the input element requires Katakana and they can use Kotoeri IM even if they use U.S. keyboard.

&gt; Is ime-mode capable of providing Russian keyboard layout by default, for fields that are expected to be in Russian?

Basically, ime-mode property just turn on/off input methods. When an element which is styled with &quot;ime-mode: active&quot; gets focus, the current implementation of the patch works as follows:
- if there is the previously-used input method, turn it on.
- otherwise, looking for an input method based on the languages that the system preferred.
Therefore, when the system prefers Russian than other languages, Russian keyboard layout would activate by default.

&gt; I think that it also serves as an example of why ime-mode would be harmful. Although pages may want to disable input methods for telephone numbers, a better answer to this is the opposite - a browser would provide a custom input method, e.g. one that lets the user look up phone numbers in address book, or at least format them on the fly.

I absolutely agree with you that we should use &lt;input type=&quot;tel&quot;&gt; rather than ime-mode property for that purpose. However, I think that providing custom input methods also harmful because it would increase the cost of developing web pages that I mentioned in the previous comment.

&gt; At this point, I think that this discussion should really go to WHATWG mailing list. I&apos;m almost certain that we don&apos;t want to provide an explict way to play with OS input method mechanisms, but there may be other ways to solve the problems that need solving.

Thank you for suggesting that. It might be better to follow your suggestion. I should post this matter to WHATWG.

Regards,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275628</commentid>
    <comment_count>18</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-09-07 23:22:14 -0700</bug_when>
    <thetext>(In reply to comment #16)

Bono-san,

&gt; As for the usage of this &quot;ime-mode&quot; property, I thought of a somewhat crazy scenario: using input methods on non-editable elements, such as &lt;canvas&gt; elements. For example, when implementing an on-line game with &lt;canvas&gt; elements, I would like to enable input methods and to receive composition events so we can print composed characters with fillText().

Thank you for providing another possible usage of ime-mode property. I didn&apos;t realize that, but it&apos;s definitely a good example of using ime-mode property!

&gt; By the way, to test this &quot;ime-mode&quot; property on IE, it does not change the keyboard layout but it just disables the IMEs attached to the keyboard. That is, we can type Cyrillic characters even in an input elememt whose &quot;ime-mode&quot; value is &quot;disabled&quot; when we use Russian keyboards. To emulate this behavior, I&apos;m wondering if we should control TIS and change the keyboard layout as we do for password fields. (In terms of Cocoa, this &quot;ime-mode&quot; property just controls whether we should call [interpretKeyEvents:] in [WebHTMLView _interceptEditingKeyEvent:shouldSaveCommand:]?)

Thank you for letting me know that. I&apos;m going to investigate it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275865</commentid>
    <comment_count>19</comment_count>
      <attachid>66681</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-08 08:58:04 -0700</bug_when>
    <thetext>Comment on attachment 66681
Proposed Patch V0

Marking r- to get the patch out of review queue while it&apos;s being discussed whether we want ime-mode support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283296</commentid>
    <comment_count>20</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2010-09-22 15:32:19 -0700</bug_when>
    <thetext>Just to help the discussion going:  

Mozilla&apos;s ime-mode was implemented by Masayuki Nakano. 

See https://bugzilla.mozilla.org/show_bug.cgi?id=279246</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414663</commentid>
    <comment_count>21</comment_count>
    <who name="">androidgao</who>
    <bug_when>2011-06-02 23:05:39 -0700</bug_when>
    <thetext>hi everyone

There will be an important defect on the keypress,keydown,keyup events , if users open their IMEs, because ime will eat  these key events. 
So please add it to Webkit.

Try this example on Webkit based browser:
If ime off, the example work well.
If ime on, the example can not work.


&lt;input id=&apos;castId&apos; size=&quot;6&quot; type=&quot;text&quot; maxlength=&quot;6&quot; onkeyup=&quot;checkCastId(this)&quot; style=&quot;ime-mode: disabled;&quot; /&gt;
&lt;button id=&quot;openCastIdBtn&quot; disabled=&quot;disabled&quot;&gt;Open Cast&lt;/button&gt;
&lt;script&gt;
		function checkCastId(me){
			console.log(me.value);
			if(/[6-9]{6}/.test(me.value)){
				document.getElementById(&quot;openCastIdBtn&quot;).disabled = &quot;&quot;;
			}
			else{
				document.getElementById(&quot;openCastIdBtn&quot;).disabled = &quot;disabled&quot;;
			}
		}
&lt;/script&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538277</commentid>
    <comment_count>22</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-01-18 15:47:54 -0800</bug_when>
    <thetext>http://www.w3.org/TR/2012/WD-css3-ui-20120117/#ime-mode

ime-mode is going to be standardized.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559763</commentid>
    <comment_count>23</comment_count>
    <who name="Kang-Hao (Kenny) Lu">kennyluck</who>
    <bug_when>2012-02-18 04:29:16 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; http://www.w3.org/TR/2012/WD-css3-ui-20120117/#ime-mode
&gt; 
&gt; ime-mode is going to be standardized.

Though that section is pretty much copied from MDN, and it even contains less info than the MDN entry for &apos;ime-mode&apos;.

Having said that, I just want to mention that I sent a review of this property to www-style[1]. Just in case anyone is interested in sending comments. I&apos;ll note that this is probably the first mail ever about &apos;ime-mode&apos; on www-style. So sad.

I read previous discussions on webkit-dev about this property[2] and it seems that there are two potential actionable items for WebKit people:

* Say WebKit&apos;s is never going to implement &apos;ime-mode&apos; and ask if Firefox and IE would drop it, or ask the editor to either drop this from css3-ui or postpone to the next level.
* Ask the editor to add a sentence in the description of &apos;disabled&apos;: &quot;UAs SHOULD/MAY treat this value as &apos;inactive&apos;&quot;. Whether that&apos;s a SHOULD or MAY is going to be debatable and I have no opinion because I don&apos;t know the use cases of this property (yet).

In any case, I can&apos;t speak for WebKit people so feel free to raise some discussions there!

[1] http://lists.w3.org/Archives/Public/www-style/2012Feb/0759
[2] https://lists.webkit.org/pipermail/webkit-dev/2010-October/014613.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>883921</commentid>
    <comment_count>24</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2013-05-02 14:44:36 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; http://www.w3.org/TR/2012/WD-css3-ui-20120117/#ime-mode
&gt; 
&gt; ime-mode is going to be standardized.

It&apos;s status is listed as &quot;at-risk&quot;, which means it may be dropped from the specification. Given the number of objections, it probably won&apos;t be standardized in its current form.

My $0.02 addition.
http://lists.w3.org/Archives/Public/www-style/2013May/0075.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891640</commentid>
    <comment_count>25</comment_count>
    <who name="Takayoshi Kochi">kochi</who>
    <bug_when>2013-05-21 01:20:05 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (In reply to comment #22)
&gt; &gt; http://www.w3.org/TR/2012/WD-css3-ui-20120117/#ime-mode
&gt; &gt; 
&gt; &gt; ime-mode is going to be standardized.
&gt; 
&gt; It&apos;s status is listed as &quot;at-risk&quot;, which means it may be dropped from the specification. Given the number of objections, it probably won&apos;t be standardized in its current form.
&gt; 
&gt; My $0.02 addition.
&gt; http://lists.w3.org/Archives/Public/www-style/2013May/0075.html

For the case that web pages want to *disable* IME may be covered by
other input form validation or HTML inputmode attribute, but is there
any good alternative to explicitly *enable* IME?

For example, a form has your email address and your name fields,
IME should be turned off for email and turned on for name.

One automatic mode change can save huge amount in total considering
the number of IME users, instead of imposing users on obvious and
tedious manual mode change on users.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891780</commentid>
    <comment_count>26</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-05-21 08:32:49 -0700</bug_when>
    <thetext>&gt; For example, a form has your email address and your name fields,
&gt; IME should be turned off for email and turned on for name.

This is incorrect. For example, there is absolutely no reason to disable handwriting input methods for e-mail field. In fact, even Asian input methods are appropriate for non-ASCII addresses, which are perfectly valid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892077</commentid>
    <comment_count>27</comment_count>
    <who name="Takayoshi Kochi">kochi</who>
    <bug_when>2013-05-21 18:36:23 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; &gt; For example, a form has your email address and your name fields,
&gt; &gt; IME should be turned off for email and turned on for name.
&gt; 
&gt; This is incorrect. For example, there is absolutely no reason to disable handwriting input methods for e-mail field. In fact, even Asian input methods are appropriate for non-ASCII addresses, which are perfectly valid.

In terms of &apos;validity&apos; you are correct, but if you consider actual usage
(if you count mobile users) People using handwriting or
Asian input methods for email address is pretty rare,
though I don&apos;t have concrete number handy.

ime-mode is not a property to both force a fixed mode
but it still allows user to change mode unless it is &apos;disabled&apos;.

This is about setting default modality hint for convenience for most users.

To count handwriting input methods as an IME is a separate issue.
On some mobile OS it may consider English keyboard is an IME, therefore
&apos;ime-mode:disabled&apos; does not make sense.

The original intention for this was for traditional CJK input methods
on desktop OSs.  So there are many counter examples for modern mobile OSs or
even desktop OSs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997553</commentid>
    <comment_count>28</comment_count>
    <who name="">samuel</who>
    <bug_when>2014-04-04 06:40:25 -0700</bug_when>
    <thetext>Has there been any developments in this context?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2186727</commentid>
    <comment_count>29</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2026-03-03 14:26:06 -0800</bug_when>
    <thetext>IME mode was deprecated long ago (https://udn.realityripple.com/docs/Web/CSS/ime-mode), so we will not be implementing this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>23984</attachid>
            <date>2008-10-01 12:09:45 -0700</date>
            <delta_ts>2008-10-01 12:09:45 -0700</delta_ts>
            <desc>a simple test file</desc>
            <filename>imemode.html</filename>
            <type>text/html</type>
            <size>464</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">PGh0bWw+DQogIDxoZWFkPg0KICAgIDx0aXRsZT5JTUUgTW9kZSB0ZXN0PC90aXRsZT4NCiAgPC9o
ZWFkPg0KICA8Ym9keT4NCiAgICA8Zm9ybT4NCiAgICAgIDx1bD4NCiAgICAgICAgPGxpPmltZS1t
b2RlOmFjdGl2ZSA6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgc3R5bGU9ImltZS1tb2Rl
OmFjdGl2ZTsiPg0KICAgICAgICA8bGk+aW1lLW1vZGU6YXV0byA6IDxpbnB1dCB0eXBlPSJ0ZXh0
IiBzaXplPSIyMCIgc3R5bGU9ImltZS1tb2RlOmF1dG87Ij4NCiAgICAgICAgPGxpPm5vIHN0eWxl
IDogPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjIwIj4NCiAgICAgICAgPGxpPmltZS1tb2RlOmRp
c2FibGVkIDogPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjIwIg0KICAgICAgICBzdHlsZT0iaW1l
LW1vZGU6ZGlzYWJsZWQ7Ij4NCiAgICAgIDwvdWw+DQogICAgPC9mb3JtPg0KICA8L2JvZHk+DQo8
L2h0bWw+DQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66681</attachid>
            <date>2010-09-06 20:55:43 -0700</date>
            <delta_ts>2010-09-08 08:58:03 -0700</delta_ts>
            <desc>Proposed Patch V0</desc>
            <filename>bug-21279-20100907125540.patch</filename>
            <type>text/plain</type>
            <size>35351</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2ZWNjOWYzOGM4OTgwYjNhNmQ0OWZlY2RlNmEyMTI2ZjM4NmRmYzRmLi43MTNkZmRl
NjBkZWM5MzA5NTM3Nzk1NTg1ZGZkNDM2OWJmZmRhMjVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTAtMDktMDYgIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IGltZS1t
b2RlIChDU1MgcHJvcGVydHkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTI3OQorCisgICAgICAgIEFkZCB0ZXN0cyBmb3IgQ1NTIGltZS1tb2RlIHBy
b3BlcnR5LgorCisgICAgICAgICogZmFzdC9jc3MvaW1lLW1vZGUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9pbWUtbW9kZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2Nzcy9zY3JpcHQtdGVzdHMvaW1lLW1vZGUuanM6IEFkZGVkLgorICAgICAgICAodGVzdENv
bXB1dGVkVmFsdWUpOgorICAgICAgICAodGVzdEF0dHJpYnV0ZVZhbHVlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvZWRpdGluZy9pbnB1dC9pbWUtbW9kZS1jb250cm9sLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvaW5wdXQvaW1lLW1vZGUtY29u
dHJvbC5odG1sOiBBZGRlZC4KKwogMjAxMC0wOS0wNiAgSnVzdGluIFNjaHVoICA8anNjaHVoQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLiBCdWlsZCBmaXguCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbWUtbW9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9pbWUtbW9kZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU0N2YwNTIxNDNj
NzY3MDIyMTQ5ODEwYTA5YmY5MTkwMWY3ZTRjYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzL2ltZS1tb2RlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACitUaGlz
IHRlc3QgZW5zdXJlcyB0aGF0IHRoZSBpbWUtbW9kZSBwcm9wZXJ0eSBpcyBwYXJzZWQgY29ycmVj
dGx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0Q29tcHV0ZWRW
YWx1ZSgidW5zcGVjaWZpZWQtZWxlbWVudCIpIGlzICJhdXRvIgorUEFTUyB0ZXN0Q29tcHV0ZWRW
YWx1ZSgiYXV0by1lbGVtZW50IikgaXMgImF1dG8iCitQQVNTIHRlc3RDb21wdXRlZFZhbHVlKCJu
b3JtYWwtZWxlbWVudCIpIGlzICJub3JtYWwiCitQQVNTIHRlc3RDb21wdXRlZFZhbHVlKCJhY3Rp
dmUtZWxlbWVudCIpIGlzICJhY3RpdmUiCitQQVNTIHRlc3RDb21wdXRlZFZhbHVlKCJpbmFjdGl2
ZS1lbGVtZW50IikgaXMgImluYWN0aXZlIgorUEFTUyB0ZXN0Q29tcHV0ZWRWYWx1ZSgiZGlzYWJs
ZWQtZWxlbWVudCIpIGlzICJkaXNhYmxlZCIKK1BBU1MgdGVzdEF0dHJpYnV0ZVZhbHVlKCIiKSBp
cyBudWxsCitQQVNTIHRlc3RBdHRyaWJ1dGVWYWx1ZSgiaW1lLW1vZGU6IGF1dG8iKSBpcyAiYXV0
byIKK1BBU1MgdGVzdEF0dHJpYnV0ZVZhbHVlKCJpbWUtbW9kZTogbm9ybWFsIikgaXMgIm5vcm1h
bCIKK1BBU1MgdGVzdEF0dHJpYnV0ZVZhbHVlKCJpbWUtbW9kZTogYWN0aXZlIikgaXMgImFjdGl2
ZSIKK1BBU1MgdGVzdEF0dHJpYnV0ZVZhbHVlKCJpbWUtbW9kZTogaW5hY3RpdmUiKSBpcyAiaW5h
Y3RpdmUiCitQQVNTIHRlc3RBdHRyaWJ1dGVWYWx1ZSgiaW1lLW1vZGU6IGRpc2FibGVkIikgaXMg
ImRpc2FibGVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisgICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW1lLW1vZGUuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ltZS1tb2RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdlZDRi
M2ExMzY4ODgzMDVhZDkxZjE3YjM3NjI4NjgxYWQwMmM0YwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2ltZS1tb2RlLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzdHlsZT4KKyAgICAuaW1lLWF1dG8geyBpbWUtbW9kZTogYXV0bzsgfQorICAg
IC5pbWUtbm9ybWFsIHsgaW1lLW1vZGU6IG5vcm1hbDsgfQorICAgIC5pbWUtYWN0aXZlIHsgaW1l
LW1vZGU6IGFjdGl2ZTsgfQorICAgIC5pbWUtaW5hY3RpdmUgeyBpbWUtbW9kZTogaW5hY3RpdmU7
IH0KKyAgICAuaW1lLWRpc2FibGVkIHsgaW1lLW1vZGU6IGRpc2FibGVkOyB9Cis8L3N0eWxlPgor
PHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8aW5wdXQgaWQ9InVuc3BlY2lmaWVkLWVsZW1lbnQiIHR5cGU9InRleHQiIC8+
Cis8aW5wdXQgaWQ9ImF1dG8tZWxlbWVudCIgY2xhc3M9ImltZS1hdXRvIiB0eXBlPSJ0ZXh0IiAv
PgorPGlucHV0IGlkPSJub3JtYWwtZWxlbWVudCIgY2xhc3M9ImltZS1ub3JtYWwiIHR5cGU9InRl
eHQiIC8+Cis8aW5wdXQgaWQ9ImFjdGl2ZS1lbGVtZW50IiBjbGFzcz0iaW1lLWFjdGl2ZSIgdHlw
ZT0idGV4dCIgLz4KKzxpbnB1dCBpZD0iaW5hY3RpdmUtZWxlbWVudCIgY2xhc3M9ImltZS1pbmFj
dGl2ZSIgdHlwZT0idGV4dCIgLz4KKzxpbnB1dCBpZD0iZGlzYWJsZWQtZWxlbWVudCIgY2xhc3M9
ImltZS1kaXNhYmxlZCIgdHlwZT0idGV4dCIgLz4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
aW1lLW1vZGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jc3Mvc2NyaXB0LXRlc3RzL2ltZS1tb2RlLmpzIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3Mvc2NyaXB0LXRlc3RzL2ltZS1tb2RlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5YjBmMGEyNTg0
ZjkxMDZiNmM0ZDcwMzM2YWQ1MTE2NmJjZGY2ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9zY3JpcHQtdGVzdHMvaW1lLW1vZGUuanMKQEAgLTAsMCArMSwzNSBAQAor
ZGVzY3JpcHRpb24oJ1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgdGhlIGltZS1tb2RlIHByb3BlcnR5
IGlzIHBhcnNlZCBjb3JyZWN0bHkuJyk7CisKK2Z1bmN0aW9uIHRlc3RDb21wdXRlZFZhbHVlKGVs
ZW1lbnRJRCkKK3sKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVs
ZW1lbnRJRCk7CisgICAgdmFyIHZhbHVlID0gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0
ZWRTdHlsZShlbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdpbWUtbW9kZScpOworICAg
IHJldHVybiB2YWx1ZTsKK30KKworZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZVZhbHVlKGRlY2xhcmF0
aW9uKQoreworICAgIHZhciB0ZXh0QXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRh
cmVhJyk7CisgICAgdGV4dEFyZWEuc2V0QXR0cmlidXRlKCdzdHlsZScsIGRlY2xhcmF0aW9uKTsK
KyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRleHRBcmVhKTsKKworICAgIHZhciB2YWx1
ZSA9IHRleHRBcmVhLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ2ltZS1tb2RlJyk7CisgICAgZG9j
dW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXh0QXJlYSk7CisgICAgcmV0dXJuIHZhbHVlOworfQor
CitzaG91bGRCZSgndGVzdENvbXB1dGVkVmFsdWUoInVuc3BlY2lmaWVkLWVsZW1lbnQiKScsICci
YXV0byInKTsKK3Nob3VsZEJlKCd0ZXN0Q29tcHV0ZWRWYWx1ZSgiYXV0by1lbGVtZW50IiknLCAn
ImF1dG8iJyk7CitzaG91bGRCZSgndGVzdENvbXB1dGVkVmFsdWUoIm5vcm1hbC1lbGVtZW50Iikn
LCAnIm5vcm1hbCInKTsKK3Nob3VsZEJlKCd0ZXN0Q29tcHV0ZWRWYWx1ZSgiYWN0aXZlLWVsZW1l
bnQiKScsICciYWN0aXZlIicpOworc2hvdWxkQmUoJ3Rlc3RDb21wdXRlZFZhbHVlKCJpbmFjdGl2
ZS1lbGVtZW50IiknLCAnImluYWN0aXZlIicpOworc2hvdWxkQmUoJ3Rlc3RDb21wdXRlZFZhbHVl
KCJkaXNhYmxlZC1lbGVtZW50IiknLCAnImRpc2FibGVkIicpOworCitzaG91bGRCZSgndGVzdEF0
dHJpYnV0ZVZhbHVlKCIiKScsICdudWxsJyk7CitzaG91bGRCZSgndGVzdEF0dHJpYnV0ZVZhbHVl
KCJpbWUtbW9kZTogYXV0byIpJywgJyJhdXRvIicpOworc2hvdWxkQmUoJ3Rlc3RBdHRyaWJ1dGVW
YWx1ZSgiaW1lLW1vZGU6IG5vcm1hbCIpJywgJyJub3JtYWwiJyk7CitzaG91bGRCZSgndGVzdEF0
dHJpYnV0ZVZhbHVlKCJpbWUtbW9kZTogYWN0aXZlIiknLCAnImFjdGl2ZSInKTsKK3Nob3VsZEJl
KCd0ZXN0QXR0cmlidXRlVmFsdWUoImltZS1tb2RlOiBpbmFjdGl2ZSIpJywgJyJpbmFjdGl2ZSIn
KTsKK3Nob3VsZEJlKCd0ZXN0QXR0cmlidXRlVmFsdWUoImltZS1tb2RlOiBkaXNhYmxlZCIpJywg
JyJkaXNhYmxlZCInKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9pbnB1dC9pbWUtbW9kZS1jb250
cm9sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2lucHV0
L2ltZS1tb2RlLWNvbnRyb2wtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiNmVlNWIwZWE1YjZk
MjdkZTdiZGU1MGIyZWEwMGIwMTAwYWYyYTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9pbnB1dC9pbWUtbW9kZS1jb250cm9sLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE0IEBACitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IHRoZSBDU1MgaW1lLW1v
ZGUgcHJvcGVydHkgd29ya3MgY29ycmVjdGx5LiBUaGlzIHRlc3Qgd2lsbCBmYWlsIGlmIHRoZSB0
ZXN0aW5nIG1hY2hpbmUgY291bGQgbm90IGVuYWJsZSBpbnB1dCBtZXRob2QuCisKK0lucHV0IG1l
dGhvZCBzaG91bGQgYmUgYWN0aXZhdGVkIHdoZW4gdGhlIGZvbGxvd2luZyB0ZXh0IGJveCBpcyBm
b2N1c2VkLiAKKworSW5wdXQgbWV0aG9kIHNob3VsZCBiZSBkZWFjdGl2YXRlZCB3aGVuIHRoZSBm
b2xsb3dpbmcgdGV4dCBib3ggaXMgZm9jdXNlZC4gCisKK0lucHV0IG1ldGhvZCBzaG91bGQgbm90
IGJlIGVuYWJsZWQgZHVyaW5nIHRoZSBmb2xsb3dpbmcgdGV4dCBib3ggaG9sZHMgZm9jdXMuIAor
CitpbnB1dC1hY3RpdmUgaXMgZm9jdXNlZCwgSU1FIG1vZGUgPSAxCitpbnB1dC1pbmFjdGl2ZSBp
cyBmb2N1c2VkLCBJTUUgbW9kZSA9IDAKK2lucHV0LWFjdGl2ZSBpcyBmb2N1c2VkLCBJTUUgbW9k
ZSA9IDEKK2lucHV0LWRpc2FibGVkIGlzIGZvY3VzZWQsIElNRSBtb2RlID0gMAoraW5wdXQtYWN0
aXZlIGlzIGZvY3VzZWQsIElNRSBtb2RlID0gMQoraW5wdXQtaW5hY3RpdmUgaXMgZm9jdXNlZCwg
SU1FIG1vZGUgPSAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9pbnB1dC9pbWUtbW9kZS1jb250cm9sLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZWRpdGluZy9pbnB1dC9pbWUtbW9kZS1jb250cm9sLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzA4YWI4NjVk
NmM3MTYzN2ViZWJlZDczMWFiMTRlNzU4ZDQwZjYzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2lucHV0L2ltZS1tb2RlLWNvbnRyb2wuaHRtbApA
QCAtMCwwICsxLDY1IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgorZnVuY3Rpb24gbG9nKHN0cikgeworICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2xpJyk7CisgICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoc3RyKSk7CisgICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29u
c29sZScpOworICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOworfQorPC9zY3JpcHQ+Cis8dGl0
bGU+PC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB0
aGUgQ1NTIGltZS1tb2RlIHByb3BlcnR5IHdvcmtzIGNvcnJlY3RseS4KK1RoaXMgdGVzdCB3aWxs
IGZhaWwgaWYgdGhlIHRlc3RpbmcgbWFjaGluZSBjb3VsZCBub3QgZW5hYmxlIGlucHV0IG1ldGhv
ZC4KKzwvcD4KKworPHA+SW5wdXQgbWV0aG9kIHNob3VsZCBiZSBhY3RpdmF0ZWQgd2hlbiB0aGUg
Zm9sbG93aW5nIHRleHQgYm94IGlzIGZvY3VzZWQuCis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9Imlu
cHV0LWFjdGl2ZSIgc3R5bGU9ImltZS1tb2RlOiBhY3RpdmU7IiAvPjwvcD4KKzxwPklucHV0IG1l
dGhvZCBzaG91bGQgYmUgZGVhY3RpdmF0ZWQgd2hlbiB0aGUgZm9sbG93aW5nIHRleHQgYm94IGlz
IGZvY3VzZWQuCis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0LWluYWN0aXZlIiBzdHlsZT0i
aW1lLW1vZGU6IGluYWN0aXZlOyIgLz48L3A+Cis8cD5JbnB1dCBtZXRob2Qgc2hvdWxkIG5vdCBi
ZSBlbmFibGVkIGR1cmluZyB0aGUgZm9sbG93aW5nIHRleHQgYm94IGhvbGRzIGZvY3VzLgorPGlu
cHV0IHR5cGU9InRleHQiIGlkPSJpbnB1dC1kaXNhYmxlZCIgc3R5bGU9ImltZS1tb2RlOiBkaXNh
YmxlZDsiIC8+PC9wPgorPHVsIGlkPSJjb25zb2xlIj48L3VsPgorCis8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+Cit2YXIgYWN0aXZlRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdpbnB1dC1hY3RpdmUnKTsKK3ZhciBpbmFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnaW5wdXQtaW5hY3RpdmUnKTsKK3ZhciBkaXNhYmxlZEVsZW1lbnQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtZGlzYWJsZWQnKTsKKworZnVuY3Rpb24gbG9nSW5w
dXRNZXRob2RTdGF0dXMoZWxlbWVudCkgeworICAgIGlmICh3aW5kb3cudGV4dElucHV0Q29udHJv
bGxlcikgeworICAgICAgICB2YXIgaW5wdXRNZXRob2RFbmFibGVkID0gdGV4dElucHV0Q29udHJv
bGxlci5pc0lucHV0TWV0aG9kRW5hYmxlZCgpOworICAgICAgICBsb2coZWxlbWVudC5pZCArICIg
aXMgZm9jdXNlZCwgSU1FIG1vZGUgPSAiICsgaW5wdXRNZXRob2RFbmFibGVkKTsKKyAgICB9Cit9
CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgLy8gV2UgZmlyc3QgbmVlZCB0byBhY3RpdmF0ZSBh
biBpbnB1dCBtZXRob2QgYmVjYXVzZSBEUlQgY2FuJ3QKKyAgICAvLyBkZXRlcm1pbmUgYXV0b21h
dGljYWxseSB3aGljaCBpbnB1dCBtZXRob2Qgc2hvdWxkIGJlIGFjdGl2YXRlZC4KKyAgICAvLyBV
c2luZyBKYXBhbmVzZSAnS290b2VyaScgaW5wdXQgbWV0aG9kIGZvciB0aGlzIHRlc3QuCisgICAg
aWYgKCF0ZXh0SW5wdXRDb250cm9sbGVyLnNldElucHV0U291cmNlTW9kZSgnY29tLmFwcGxlLmlu
cHV0bWV0aG9kLkphcGFuZXNlJykpIHsKKyAgICAgICAgbG9nKCdDYW5ub3QgYWN0aXZhdGUgaW5w
dXQgbWV0aG9kLicpOworICAgIH0KKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisgICAgYWN0aXZlRWxlbWVudC5mb2N1cygpOworICAgIGxvZ0lucHV0TWV0aG9kU3Rh
dHVzKGFjdGl2ZUVsZW1lbnQpOworICAgIGluYWN0aXZlRWxlbWVudC5mb2N1cygpOworICAgIGxv
Z0lucHV0TWV0aG9kU3RhdHVzKGluYWN0aXZlRWxlbWVudCk7CisgICAgYWN0aXZlRWxlbWVudC5m
b2N1cygpOworICAgIGxvZ0lucHV0TWV0aG9kU3RhdHVzKGFjdGl2ZUVsZW1lbnQpOworICAgIGRp
c2FibGVkRWxlbWVudC5mb2N1cygpOworICAgIGxvZ0lucHV0TWV0aG9kU3RhdHVzKGRpc2FibGVk
RWxlbWVudCk7CisgICAgYWN0aXZlRWxlbWVudC5mb2N1cygpOworICAgIGxvZ0lucHV0TWV0aG9k
U3RhdHVzKGFjdGl2ZUVsZW1lbnQpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUoKTsKKyAgICBpbmFjdGl2ZUVsZW1lbnQuZm9jdXMoKTsKKyAgICBsb2dJbnB1dE1ldGhvZFN0
YXR1cyhpbmFjdGl2ZUVsZW1lbnQpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUoKTsKK30KKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE2YTY0NTBiNGU4ZTUxMGIy
ZDkzNTM1NjU4NjYyYzUyM2Q0MDQ3YmMuLjY0NjA3Njc4NTM4MmJkMjMxNWM2YzUwMGZiMzY4MTlj
MjE5YWQzZjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTAtMDktMDYgIEtlbmljaGkgSXNoaWJhc2hpICA8
YmFzaGlAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTdXBwb3J0IGltZS1tb2RlIChDU1MgcHJvcGVydHkpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI3OQorCisgICAgICAgIEFkZCBw
YXJzaW5nIGFuZCBzdG9yaW5nIGluZm9ybWF0aW9uIGZ1bmN0aW9ucyBmb3Igc3VwcG9ydGluZwor
ICAgICAgICBDU1MgaW1lLW1vZGUgcHJvcGVydHkuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3Nz
L2ltZS1tb2RlLmh0bWwKKyAgICAgICAgICAgICAgIHBsYXRmb3JtL21hYy9lZGl0aW5nL2lucHV0
L2ltZS1tb2RlLWNvbnRyb2wuaHRtbAorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eU5h
bWVzLmluOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAgICAqIGNzcy9D
U1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGNzcy9TVkdDU1NQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVNWR1ZhbHVlKToKKyAgICAgICAgKiBlZGl0
aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVu
dHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhv
ZE1vZGUpOgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZE5vZGUpOgorICAgICAgICAqIHJlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxh
Z3M6OmltZU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OnNldEltZU1v
ZGUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKwogMjAxMC0wOS0wNiAgT2xpdmVyIEh1bnQgIDxvbGl2
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFdpbmRvd3MgYnVpbGQgZml4CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvV2ViQ29yZS9jc3Mv
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBiMWU4YWM0MDE1NGMwNDgyZTNi
ZTlkZTVjMDBkY2M3ZWY5MWFmMjc5Li41ZDU3MmE3OTFkYzRhMzlhMGFkMmQxYWE1ZmU5MzczOTU2
OTgyYjA3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAK
QEAgLTkxMCw2ICs5MTAsMjEgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKGludCBwcm9wZXIKICAgICAgICAgICAg
IGlmIChyZW5kZXJlcikKICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6
OmNyZWF0ZShzaXppbmdCb3gocmVuZGVyZXIpLmhlaWdodCgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX1BYKTsKICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHN0
eWxlLT5oZWlnaHQoKSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlJbWVNb2RlOgorICAgICAg
ICAgICAgc3dpdGNoIChzdHlsZS0+aW1lTW9kZSgpKSB7CisgICAgICAgICAgICBjYXNlIElNRV9N
T0RFX0FVVE86CisgICAgICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVh
dGVJZGVudGlmaWVyKENTU1ZhbHVlQXV0byk7CisgICAgICAgICAgICBjYXNlIElNRV9NT0RFX05P
Uk1BTDoKKyAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlk
ZW50aWZpZXIoQ1NTVmFsdWVOb3JtYWwpOworICAgICAgICAgICAgY2FzZSBJTUVfTU9ERV9BQ1RJ
VkU6CisgICAgICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVu
dGlmaWVyKENTU1ZhbHVlQWN0aXZlKTsKKyAgICAgICAgICAgIGNhc2UgSU1FX01PREVfSU5BQ1RJ
VkU6CisgICAgICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVu
dGlmaWVyKENTU1ZhbHVlSW5hY3RpdmUpOworICAgICAgICAgICAgY2FzZSBJTUVfTU9ERV9ESVNB
QkxFRDoKKyAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlk
ZW50aWZpZXIoQ1NTVmFsdWVEaXNhYmxlZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1
ZTo6Y3JlYXRlSWRlbnRpZmllcihDU1NWYWx1ZUF1dG8pOwogICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0SGlnaGxpZ2h0OgogICAgICAgICAgICAgaWYgKHN0eWxlLT5oaWdobGlnaHQoKSA9
PSBudWxsQXRvbSkKICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNy
ZWF0ZUlkZW50aWZpZXIoQ1NTVmFsdWVOb25lKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NT
U1Byb3BlcnR5TmFtZXMuaW4gYi9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4
IGEzMDYzZGI2YTQ2Y2NkYTkxY2RkYzg5YmJkODBmZWQ4NjNiOTJmN2YuLmVlZmQxZWIwYWQ1YmI3
MmE1ODJiZmQyYWRkYmNmOGU5YjA1OTc4YTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1By
b3BlcnR5TmFtZXMuaW4KKysrIGIvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAt
ODAsNiArODAsNyBAQCBlbXB0eS1jZWxscwogZmxvYXQKIGZvbnQtc3RyZXRjaAogaGVpZ2h0Citp
bWUtbW9kZQogbGVmdAogbGV0dGVyLXNwYWNpbmcKIGxpc3Qtc3R5bGUKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAKaW5kZXggZDZmMDRhYTZlMjJlNWMyZjk1YjMzYTUzNGFlYThhOWZhNWI3YWEzMC4u
OWE1YjQxZDExNjcyYWMzMjY1Zjc3OTNmYTY4OWQ4OTdkZGRkYjU4ZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTU3R5bGVT
ZWxlY3Rvci5jcHAKQEAgLTQxODMsNiArNDE4MywyOCBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6
OmFwcGx5UHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKKyAgICBjYXNlIENTU1Byb3BlcnR5SW1lTW9kZToKKyAgICAgICAgaWYgKCFwcmlt
aXRpdmVWYWx1ZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgc3dpdGNoIChwcmltaXRp
dmVWYWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAg
ICAgICAgIG1fc3R5bGUtPnNldEltZU1vZGUoSU1FX01PREVfQVVUTyk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKKyAgICAgICAgICAgIG1fc3R5bGUt
PnNldEltZU1vZGUoSU1FX01PREVfTk9STUFMKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIENTU1ZhbHVlQWN0aXZlOgorICAgICAgICAgICAgbV9zdHlsZS0+c2V0SW1lTW9kZShJ
TUVfTU9ERV9BQ1RJVkUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTVmFs
dWVJbmFjdGl2ZToKKyAgICAgICAgICAgIG1fc3R5bGUtPnNldEltZU1vZGUoSU1FX01PREVfSU5B
Q1RJVkUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVEaXNhYmxl
ZDoKKyAgICAgICAgICAgIG1fc3R5bGUtPnNldEltZU1vZGUoSU1FX01PREVfRElTQUJMRUQpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworCiAvLyByZWN0
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNsaXA6CiAgICAgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9j
c3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4K
aW5kZXggN2E5YjljNzc4YjNmODExNmUyZWY2ZmMzMWU2ZDU2ZDc1ODI0NTRhZC4uZTZjOGUwOTM3
MGJlY2E1YTkwN2ZhOGU1ZmNkNTg0YzBlNzM1YjQ5MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
CkBAIC03NDAsMyArNzQwLDEyIEBAIHdpbmRvd2VkCiAjIG5vbmUKIG1hbnVhbAogIyBhdXRvCisK
KyMKKyMgQ1NTX1BST1BfSU1FX01PREUKKyMKKyMgYXV0bworIyBub3JtYWwKK2FjdGl2ZQoraW5h
Y3RpdmUKK2Rpc2FibGVkCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9TVkdDU1NQYXJzZXIuY3Bw
IGIvV2ViQ29yZS9jc3MvU1ZHQ1NTUGFyc2VyLmNwcAppbmRleCA1MzViMjczZjE3MmI0NTZiY2Ez
YWQwZDdlNjVmOGVkYTg5MjcyOWI2Li42NjYzNDcyNTUxZGU5ZmM4ZDhjYmY1MDQzYTJkOWZkZmFm
OWNiNjZhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9TVkdDU1NQYXJzZXIuY3BwCisrKyBiL1dl
YkNvcmUvY3NzL1NWR0NTU1BhcnNlci5jcHAKQEAgLTI3MCw2ICsyNzAsMTEgQEAgYm9vbCBDU1NQ
YXJzZXI6OnBhcnNlU1ZHVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAg
ICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBy
ZXR1cm4gcGFyc2VTaGFkb3cocHJvcElkLCBpbXBvcnRhbnQpOworICAgIGNhc2UgQ1NTUHJvcGVy
dHlJbWVNb2RlOgorICAgICAgICAvLyBhdXRvIHwgbm9ybWFsIHwgYWN0aXZlIHwgaW5hY3RpdmUg
fCBkaXNhYmxlZAorICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvIHx8IGlkID09IENTU1Zh
bHVlTm9ybWFsIHx8IGlkID09IENTU1ZhbHVlQWN0aXZlIHx8IGlkID09IENTU1ZhbHVlSW5hY3Rp
dmUgfHwgaWQgPT0gQ1NTVmFsdWVEaXNhYmxlZCkKKyAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2
ZSA9IHRydWU7CisgICAgICAgIGJyZWFrOwogCiAgICAgLyogc2hvcnRoYW5kIHByb3BlcnRpZXMg
Ki8KICAgICBjYXNlIENTU1Byb3BlcnR5TWFya2VyOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0
aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNv
bnRyb2xsZXIuY3BwCmluZGV4IDk3ZGRlNTVlM2NkZTU0M2NjZjIzZWE2MzQ0ZGU0MjQ5ZWM4MzEx
ZWQuLjBlZWM2Mjg4YzExNjMzNWQwYThkYmYwMjVhNzNkNjExNGJkZDBmNzUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL2Vk
aXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRl
ICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJFZGl0b3IuaCIKKyNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29k
ZS5oIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCBkMWU0MDZjOWQ5NWIyYTYwZWEwNWNlMmQwMjNh
ZGFiOGIxMjViODA0Li4xYjhhYjI3ZTFjNzA4ZGZlMWE4NGJjMGE0Yjg3YzU3NDc5NmY4YTI0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaApAQCAtNDc1LDYgKzQ3NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4m
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sKSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgc2V0SW5wdXRNZXRob2RNb2RlKE5vZGUqKSB7IH0KIAogCiB9OwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250
cm9sbGVyLmNwcAppbmRleCBhODdkNmE2YjRlNzQ3MzRmODVmYjAwN2E5ZjVmYTMzZGRlODU1NWQw
Li5hYzliNjQ0NjIyOTUyNjgyMmVkM2E4OGQ2ZTZlZDQ0YjQzZmIxZTk1IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRm9jdXND
b250cm9sbGVyLmNwcApAQCAtNTg5LDcgKzU4OSw3IEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjpz
ZXRGb2N1c2VkTm9kZShOb2RlKiBub2RlLCBQYXNzUmVmUHRyPEZyYW1lPiBuZXdGb2N1c2VkRnJh
CiB7CiAgICAgUmVmUHRyPEZyYW1lPiBvbGRGb2N1c2VkRnJhbWUgPSBmb2N1c2VkRnJhbWUoKTsK
ICAgICBSZWZQdHI8RG9jdW1lbnQ+IG9sZERvY3VtZW50ID0gb2xkRm9jdXNlZEZyYW1lID8gb2xk
Rm9jdXNlZEZyYW1lLT5kb2N1bWVudCgpIDogMDsKLSAgICAKKwogICAgIE5vZGUqIG9sZEZvY3Vz
ZWROb2RlID0gb2xkRG9jdW1lbnQgPyBvbGREb2N1bWVudC0+Zm9jdXNlZE5vZGUoKSA6IDA7CiAg
ICAgaWYgKG9sZEZvY3VzZWROb2RlID09IG5vZGUpCiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggNDc3YTI1MjgwMmEwOGE5YTdhOTQz
MDc5ZDY0MGRlMWQ5MzVjODBjMi4uY2Q3OGU2N2U0NDhlMjdjNzA2YjllMGM1NmRmMzZhNWM4ZGI0
YjIyMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAor
KysgYi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC03MDIsNiArNzAy
LDcgQEAgcHVibGljOgogICAgIExlbmd0aCBwZXJzcGVjdGl2ZU9yaWdpblkoKSBjb25zdCB7IHJl
dHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9wZXJzcGVjdGl2ZU9yaWdpblk7IH0KICAgICBM
ZW5ndGhTaXplIHBhZ2VTaXplKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEt
Pm1fcGFnZVNpemU7IH0KICAgICBQYWdlU2l6ZVR5cGUgcGFnZVNpemVUeXBlKCkgY29uc3QgeyBy
ZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcGFnZVNpemVUeXBlOyB9CisgICAgSW1lTW9k
ZVR5cGUgaW1lTW9kZSgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2lt
ZU1vZGU7IH0KICAgICAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8g
V2hlbiBzZXQsIHRoaXMgZW5zdXJlcyB0aGF0IHN0eWxlcyBjb21wYXJlIGFzIGRpZmZlcmVudC4g
VXNlZCBkdXJpbmcgYWNjZWxlcmF0ZWQgYW5pbWF0aW9ucy4KQEAgLTEwMzIsNiArMTAzMyw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldFBhZ2VTaXplKExlbmd0aFNpemUgcykgeyBTRVRfVkFSKHJh
cmVOb25Jbmhlcml0ZWREYXRhLCBtX3BhZ2VTaXplLCBzKTsgfQogICAgIHZvaWQgc2V0UGFnZVNp
emVUeXBlKFBhZ2VTaXplVHlwZSB0KSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1f
cGFnZVNpemVUeXBlLCB0KTsgfQogICAgIHZvaWQgcmVzZXRQYWdlU2l6ZVR5cGUoKSB7IFNFVF9W
QVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fcGFnZVNpemVUeXBlLCBQQUdFX1NJWkVfQVVUTyk7
IH0KKyAgICB2b2lkIHNldEltZU1vZGUoSW1lTW9kZVR5cGUgbSkgeyBTRVRfVkFSKHJhcmVOb25J
bmhlcml0ZWREYXRhLCBtX2ltZU1vZGUsIG0pOyB9CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAgICAgdm9pZCBzZXRJc1J1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbihib29s
IGIgPSB0cnVlKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fcnVubmluZ0FjY2Vs
ZXJhdGVkQW5pbWF0aW9uLCBiKTsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCBlMjkzOTg0YTRiNDRlY2JkMjlk
MjY0N2EwOTYzNzNjNjI3ODhkNzYxLi4zZmZmNGVkNDIxYTg5YzEzNWRhNmJiNjBhMzMyZWRkZjM4
YTM2YzBlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhLmNwcApAQCAtNTgsNiArNTgsNyBAQCBTdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKCkKICAgICAsIG1fcGVyc3BlY3RpdmVP
cmlnaW5ZKFJlbmRlclN0eWxlOjppbml0aWFsUGVyc3BlY3RpdmVPcmlnaW5ZKCkpCiAgICAgLCBt
X3BhZ2VTaXplKCkKICAgICAsIG1fcGFnZVNpemVUeXBlKFBBR0VfU0laRV9BVVRPKQorICAgICwg
bV9pbWVNb2RlKElNRV9NT0RFX0FVVE8pCiB7CiB9CiAKQEAgLTk2LDYgKzk3LDcgQEAgU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShjb25zdCBTdHls
ZVJhcmVOb25Jbmhlcml0ZWQKICAgICAsIG1fcGVyc3BlY3RpdmVPcmlnaW5ZKG8ubV9wZXJzcGVj
dGl2ZU9yaWdpblkpCiAgICAgLCBtX3BhZ2VTaXplKG8ubV9wYWdlU2l6ZSkKICAgICAsIG1fcGFn
ZVNpemVUeXBlKG8ubV9wYWdlU2l6ZVR5cGUpCisgICAgLCBtX2ltZU1vZGUoby5tX2ltZU1vZGUp
CiB7CiB9CiAKQEAgLTE0MSw2ICsxNDMsNyBAQCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYgbykgYwogICAg
ICAgICAmJiAobV9wZXJzcGVjdGl2ZU9yaWdpblkgPT0gby5tX3BlcnNwZWN0aXZlT3JpZ2luWSkK
ICAgICAgICAgJiYgKG1fcGFnZVNpemUgPT0gby5tX3BhZ2VTaXplKQogICAgICAgICAmJiAobV9w
YWdlU2l6ZVR5cGUgPT0gby5tX3BhZ2VTaXplVHlwZSkKKyAgICAgICAgJiYgKG1faW1lTW9kZSA9
PSBvLm1faW1lTW9kZSkKICAgICAgICAgOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggYi9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggNjAwM2VhNGY2ZGRlYzFk
YWMzYjE3ZDJkODdmNzg3MGJiY2M2OTVkZS4uODY0Mjk2MTUyMWE1MzZlN2FiYmYxZDE2ODBhOTcx
MzMxZGJiYThmYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuaApAQCAtNjQsNiArNjQsMTQgQEAgZW51bSBQYWdlU2l6ZVR5cGUg
ewogICAgIFBBR0VfU0laRV9SRVNPTFZFRCAvLyBTaXplIGlzIGZ1bGx5IHJlc29sdmVkLgogfTsK
IAorZW51bSBJbWVNb2RlVHlwZSB7CisgICAgSU1FX01PREVfQVVUTywKKyAgICBJTUVfTU9ERV9O
T1JNQUwsCisgICAgSU1FX01PREVfQUNUSVZFLAorICAgIElNRV9NT0RFX0lOQUNUSVZFLAorICAg
IElNRV9NT0RFX0RJU0FCTEVECit9OworCiAvLyBUaGlzIHN0cnVjdCBpcyBmb3IgcmFyZWx5IHVz
ZWQgbm9uLWluaGVyaXRlZCBDU1MzLCBDU1MyLCBhbmQgV2ViS2l0LXNwZWNpZmljIHByb3BlcnRp
ZXMuCiAvLyBCeSBncm91cGluZyB0aGVtIHRvZ2V0aGVyLCB3ZSBzYXZlIHNwYWNlLCBhbmQgb25s
eSBhbGxvY2F0ZSB0aGlzIG9iamVjdCB3aGVuIHNvbWVvbmUKIC8vIGFjdHVhbGx5IHVzZXMgb25l
IG9mIHRoZXNlIHByb3BlcnRpZXMuCkBAIC0xMjgsNiArMTM2LDcgQEAgcHVibGljOgogCiAgICAg
TGVuZ3RoU2l6ZSBtX3BhZ2VTaXplOwogICAgIFBhZ2VTaXplVHlwZSBtX3BhZ2VTaXplVHlwZTsK
KyAgICBJbWVNb2RlVHlwZSBtX2ltZU1vZGU7CiAKIHByaXZhdGU6CiAgICAgU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YSgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJL
aXQvbWFjL0NoYW5nZUxvZwppbmRleCAwZjU4ZmQzNTVhNjY4OTg5NzU5NWExNTYwMzcyOWEyOWMw
OTQ1NWIzLi5iNjA5MzUwMTZkNWI3ZDZlNTRlYTU0ZjVjYWVkN2JkZTI3MjA0NWMyIDEwMDY0NAot
LS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM5IEBACisyMDEwLTA5LTA2ICBLZW5pY2hpIElzaGliYXNoaSAgPGJhc2hpQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3VwcG9ydCBpbWUtbW9kZSAoQ1NTIHByb3BlcnR5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNzkKKworICAgICAgICBBZGQgSW5wdXRNZXRob2RD
b250cm9sbGVyIGNsYXNzIHdoaWNoIHVzZXMgVGV4dCBJbnB1dCBTb3VyY2UKKyAgICAgICAgU2Vy
dmljZSB0byBwcm92aWRlIGlucHV0IG1ldGhvZCBoYW5kbGluZyBmZWF0dXJlcy4KKyAgICAgICAg
SW1wbGVtZW50IHNldElucHV0TWV0aG9kU3RhdGUoKSB0byBzdXBwb3J0IENTUyBpbWUtbW9kZSBw
cm9wZXJ0eS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAgICAgKGlz
SW5wdXRNZXRob2RFbmFibGVkSW5wdXRTb3VyY2UpOgorICAgICAgICAoaXNTZWxlY3RhYmxlSW5w
dXRTb3VyY2UpOgorICAgICAgICAoY29weVNlbGVjdGFibGVJbnB1dE1ldGhvZEZvckxhbmd1YWdl
KToKKyAgICAgICAgKGNvcHlTeXN0ZW1QcmVmZXJyZWRJbnB1dFNvdXJjZSk6CisgICAgICAgICgr
W0lucHV0TWV0aG9kQ29udHJvbGxlciBnZXRJbnN0YW5jZV0pOgorICAgICAgICAoK1tJbnB1dE1l
dGhvZENvbnRyb2xsZXIgYWxsb2NXaXRoWm9uZTpdKToKKyAgICAgICAgKC1bSW5wdXRNZXRob2RD
b250cm9sbGVyIGNvcHlXaXRoWm9uZTpdKToKKyAgICAgICAgKCtbSW5wdXRNZXRob2RDb250cm9s
bGVyIHJldGFpbkNvdW50XSk6CisgICAgICAgICgtW0lucHV0TWV0aG9kQ29udHJvbGxlciByZWxl
YXNlXSk6CisgICAgICAgICgtW0lucHV0TWV0aG9kQ29udHJvbGxlciBhdXRvcmVsZWFzZV0pOgor
ICAgICAgICAoLVtJbnB1dE1ldGhvZENvbnRyb2xsZXIgaW5pdF0pOgorICAgICAgICAoLVtJbnB1
dE1ldGhvZENvbnRyb2xsZXIgb25TZWxlY3RlZEtleWJvYXJkSW5wdXRTb3VyY2VDaGFuZ2VkOl0p
OgorICAgICAgICAoLVtJbnB1dE1ldGhvZENvbnRyb2xsZXIgc2V0TGFzdElucHV0U291cmNlOl0p
OgorICAgICAgICAoLVtJbnB1dE1ldGhvZENvbnRyb2xsZXIgYWN0aXZhdGVJbnB1dE1ldGhvZF0p
OgorICAgICAgICAoLVtJbnB1dE1ldGhvZENvbnRyb2xsZXIgZGVhY3RpdmF0ZUlucHV0TWV0aG9k
XSk6CisgICAgICAgICgtW0lucHV0TWV0aG9kQ29udHJvbGxlciBlbmFibGVJbnB1dE1ldGhvZHNd
KToKKyAgICAgICAgKC1bSW5wdXRNZXRob2RDb250cm9sbGVyIGRpc2FibGVJbnB1dE1ldGhvZHNd
KToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6V2ViRWRpdG9yQ2xpZW50KToKKyAgICAgICAg
KFdlYkVkaXRvckNsaWVudDo6c2V0SW5wdXRNZXRob2RTdGF0ZSk6CisgICAgICAgICogV2ViVmll
dy9XZWJIVE1MVmlldy5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAg
ICAgICgtW1dlYkhUTUxWaWV3IGV4cG9zZUlucHV0Q29udGV4dF0pOgorCiAyMDEwLTA5LTA2ICBB
ZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApp
bmRleCBmZTMzZTA1NDdmOWUzODRhZTRkMDEyZmQyNWUwNmZkNGM4ZjM3ZDE4Li5jM2M3ZTBhOWIz
NDRmZWE4YWI0NjM3ZmIyOTkwYzhhNzY3MTk4MjNjIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTM1LDYgKzM1LDcgQEAKIAogQGNsYXNzIFdlYlZp
ZXc7CiBAY2xhc3MgV2ViRWRpdG9yVW5kb1RhcmdldDsKK0BjbGFzcyBJbnB1dE1ldGhvZENvbnRy
b2xsZXI7CiAKIGNsYXNzIFdlYkVkaXRvckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0b3JD
bGllbnQgewogcHVibGljOgpAQCAtMTQxLDYgKzE0Miw3IEBAIHByaXZhdGU6CiAgICAgV2ViVmll
dyAqbV93ZWJWaWV3OwogICAgIFJldGFpblB0cjxXZWJFZGl0b3JVbmRvVGFyZ2V0PiBtX3VuZG9U
YXJnZXQ7CiAgICAgYm9vbCBtX2hhdmVVbmRvUmVkb09wZXJhdGlvbnM7CisgICAgUmV0YWluUHRy
PElucHV0TWV0aG9kQ29udHJvbGxlcj4gbV9pbnB1dE1ldGhvZENvbnRyb2xsZXI7CiAKICNpZiAh
ZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFS
RCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIE5TSW50ZWdlciBt
X2NvcnJlY3Rpb25QYW5lbFRhZzsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQubW0KaW5kZXggNDFjZmY2ODE1N2RmYzVjMzA2OTE2NTE2YTQwNzhmMWQwNDMyY2Fm
My4uNWQ0YzVhMzdlODRmZjkwNGNmM2U0YjBiODM3ODI0NTQ1OTUxNTExOCAxMDA2NDQKLS0tIGEv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTUyLDYgKzUyLDcgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRWRpdEFjdGlv
bi5oPgogI2ltcG9ydCA8V2ViQ29yZS9FZGl0Q29tbWFuZC5oPgorI2ltcG9ydCA8V2ViQ29yZS9G
cmFtZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MSW5wdXRFbGVtZW50Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0hUTUxOYW1lcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MVGV4dEFyZWFFbGVtZW50
Lmg+CkBAIC01OSw2ICs2MCw4IEBACiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUu
aD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1BsYXRmb3JtU3RyaW5nLmg+CisjaW1wb3J0IDxXZWJDb3JlL1JlbmRlck9iamVjdC5o
PgorI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJTdHlsZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Vc2Vy
VHlwaW5nR2VzdHVyZUluZGljYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4
dHJhcy5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CkBAIC0xNjUs
NiArMTY4LDE4NyBAQCBzdGF0aWMgV2ViVmlld0luc2VydEFjdGlvbiBraXQoRWRpdG9ySW5zZXJ0
QWN0aW9uIGNvcmVBY3Rpb24pCiAKIEBlbmQKIAorQGludGVyZmFjZSBJbnB1dE1ldGhvZENvbnRy
b2xsZXIgOiBOU09iamVjdAoreworICAgIFRJU0lucHV0U291cmNlUmVmIG1fbGFzdElucHV0U291
cmNlOworICAgIGJvb2wgbV9pbnB1dE1ldGhvZHNEaXNhYmxlZDsKK30KKy0odm9pZClzZXRMYXN0
SW5wdXRTb3VyY2U6KFRJU0lucHV0U291cmNlUmVmKXNvdXJjZTsKKy0odm9pZClhY3RpdmF0ZUlu
cHV0TWV0aG9kOworLSh2b2lkKWRlYWN0aXZhdGVJbnB1dE1ldGhvZDsKKy0odm9pZCllbmFibGVJ
bnB1dE1ldGhvZHM7CistKHZvaWQpZGlzYWJsZUlucHV0TWV0aG9kczsKK0BlbmQKKworQGltcGxl
bWVudGF0aW9uIElucHV0TWV0aG9kQ29udHJvbGxlcgorCitzdGF0aWMgYm9vbCBpc0lucHV0TWV0
aG9kRW5hYmxlZElucHV0U291cmNlKFRJU0lucHV0U291cmNlUmVmIHNvdXJjZSkKK3sKKyAgICBD
RlN0cmluZ1JlZiBpbnB1dE1vZGVJZCA9IChDRlN0cmluZ1JlZilUSVNHZXRJbnB1dFNvdXJjZVBy
b3BlcnR5KHNvdXJjZSwga1RJU1Byb3BlcnR5SW5wdXRNb2RlSUQpOworICAgIHJldHVybiBpbnB1
dE1vZGVJZCAhPSBOVUxMOworfQorCitzdGF0aWMgYm9vbCBpc1NlbGVjdGFibGVJbnB1dFNvdXJj
ZShUSVNJbnB1dFNvdXJjZVJlZiBzb3VyY2UpCit7CisgICAgQ0ZCb29sZWFuUmVmIHNlbGVjdGFi
bGUgPSAoQ0ZCb29sZWFuUmVmKVRJU0dldElucHV0U291cmNlUHJvcGVydHkoc291cmNlLCBrVElT
UHJvcGVydHlJbnB1dFNvdXJjZUlzU2VsZWN0Q2FwYWJsZSk7CisgICAgcmV0dXJuIENGQm9vbGVh
bkdldFZhbHVlKHNlbGVjdGFibGUpOworfQorCitzdGF0aWMgVElTSW5wdXRTb3VyY2VSZWYgY29w
eVNlbGVjdGFibGVJbnB1dE1ldGhvZEZvckxhbmd1YWdlKENGU3RyaW5nUmVmIGxhbmcpCit7Cisg
ICAgVElTSW5wdXRTb3VyY2VSZWYgc291cmNlID0gVElTQ29weUlucHV0U291cmNlRm9yTGFuZ3Vh
Z2UobGFuZyk7CisgICAgaWYgKGlzU2VsZWN0YWJsZUlucHV0U291cmNlKHNvdXJjZSkgJiYgaXNJ
bnB1dE1ldGhvZEVuYWJsZWRJbnB1dFNvdXJjZShzb3VyY2UpKQorICAgICAgICByZXR1cm4gc291
cmNlOworCisgICAgLy8gTG9va2luZyBmb3Igc2VsZWN0YWJsZSBhbiBpbnB1dCBzb3VyY2UgcmVn
YXJkaW5nIHRoZSBnaXZlbiBsYW5ndWFnZS4KKyAgICBDRlN0cmluZ1JlZiBidW5kbGVJZCA9IChD
RlN0cmluZ1JlZilUSVNHZXRJbnB1dFNvdXJjZVByb3BlcnR5KHNvdXJjZSwga1RJU1Byb3BlcnR5
QnVuZGxlSUQpOworICAgIGNvbnN0IHZvaWQgKmtleXNbXSA9IHsga1RJU1Byb3BlcnR5QnVuZGxl
SUQgfTsKKyAgICBjb25zdCB2b2lkICp2YWx1ZXNbXSA9IHsgYnVuZGxlSWQgfTsKKyAgICBDRkRp
Y3Rpb25hcnlSZWYgcHJvcGVydGllcyA9IENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBrZXlzLCB2YWx1ZXMsIDEsIE5VTEwsIE5VTEwpOworICAgIENGQXJyYXlSZWYgc291
cmNlcyA9IFRJU0NyZWF0ZUlucHV0U291cmNlTGlzdChwcm9wZXJ0aWVzLCBmYWxzZSk7CisgICAg
Q0ZJbmRleCBjb3VudCA9IENGQXJyYXlHZXRDb3VudChzb3VyY2VzKTsKKyAgICBDRlJlbGVhc2Uo
c291cmNlKTsKKyAgICBDRlJlbGVhc2UocHJvcGVydGllcyk7CisgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgIHNvdXJjZSA9IChUSVNJbnB1dFNvdXJjZVJlZilD
RkFycmF5R2V0VmFsdWVBdEluZGV4KHNvdXJjZXMsIGkpOworICAgICAgICBpZiAoaXNTZWxlY3Rh
YmxlSW5wdXRTb3VyY2Uoc291cmNlKSAmJiBpc0lucHV0TWV0aG9kRW5hYmxlZElucHV0U291cmNl
KHNvdXJjZSkpIHsKKyAgICAgICAgICAgIENGUmV0YWluKHNvdXJjZSk7CisgICAgICAgICAgICBD
RlJlbGVhc2Uoc291cmNlcyk7CisgICAgICAgICAgICByZXR1cm4gc291cmNlOworICAgICAgICB9
CisgICAgfQorICAgIENGUmVsZWFzZShzb3VyY2VzKTsKKyAgICByZXR1cm4gTlVMTDsKK30KKwor
c3RhdGljIFRJU0lucHV0U291cmNlUmVmIGNvcHlTeXN0ZW1QcmVmZXJyZWRJbnB1dFNvdXJjZSgp
Cit7CisgICAgTlNBcnJheSAqbGFuZ0xpc3QgPSBbTlNMb2NhbGUgcHJlZmVycmVkTGFuZ3VhZ2Vz
XTsKKyAgICBmb3IgKE5TVUludGVnZXIgaSA9IDA7IGkgPCBbbGFuZ0xpc3QgY291bnRdOyArK2kp
IHsKKyAgICAgICAgQ0ZTdHJpbmdSZWYgbGFuZyA9IChDRlN0cmluZ1JlZilbbGFuZ0xpc3Qgb2Jq
ZWN0QXRJbmRleDppXTsKKyAgICAgICAgVElTSW5wdXRTb3VyY2VSZWYgc291cmNlID0gY29weVNl
bGVjdGFibGVJbnB1dE1ldGhvZEZvckxhbmd1YWdlKGxhbmcpOworICAgICAgICBpZiAoc291cmNl
KQorICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTsKKyAgICB9CisgICAgcmV0dXJuIE5VTEw7Cit9
CisKKy8vIFRoZSBJbnB1dE1ldGhvZENvbnRyb2xsZXIgaXMgaW1wbGVtZW50ZWQgYXMgYSBzaW5n
bGV0b24gY2xhc3MuCitzdGF0aWMgSW5wdXRNZXRob2RDb250cm9sbGVyKiBpbnB1dE1ldGhvZENv
bnRyb2xsZXJJbnN0YW5jZSA9IE5VTEw7CisKKysoSW5wdXRNZXRob2RDb250cm9sbGVyKilnZXRJ
bnN0YW5jZQoreworICAgIGlmICghaW5wdXRNZXRob2RDb250cm9sbGVySW5zdGFuY2UpCisgICAg
ICAgIGlucHV0TWV0aG9kQ29udHJvbGxlckluc3RhbmNlID0gW1tzdXBlciBhbGxvY1dpdGhab25l
Ok5VTExdIGluaXRdOworICAgIHJldHVybiBpbnB1dE1ldGhvZENvbnRyb2xsZXJJbnN0YW5jZTsK
K30KKworKyhpZClhbGxvY1dpdGhab25lOihOU1pvbmUqKXpvbmUKK3sKKyAgICByZXR1cm4gW1tz
ZWxmIGdldEluc3RhbmNlXSByZXRhaW5dOworfQorCistKGlkKWNvcHlXaXRoWm9uZTooTlNab25l
Kil6b25lCit7CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKysoTlNVSW50ZWdlcilyZXRhaW5Db3Vu
dAoreworICAgIC8vIERvbmF0ZXMgYW4gb2JqZWN0IHRoYXQgY2Fubm90IGJlIHJlbGVhc2VkLgor
ICAgIHJldHVybiBOU1VJbnRlZ2VyTWF4OworfQorCistKHZvaWQpcmVsZWFzZQoreworfQorCist
KGlkKWF1dG9yZWxlYXNlCit7CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0oaWQpaW5pdAorewor
ICAgIFtzdXBlciBpbml0XTsKKyAgICBtX2xhc3RJbnB1dFNvdXJjZSA9IE5VTEw7CisgICAgbV9p
bnB1dE1ldGhvZHNEaXNhYmxlZCA9IGZhbHNlOworCisgICAgW1tOU0Rpc3RyaWJ1dGVkTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdCisgICAgICAgIGFkZE9ic2VydmVyOnNlbGYKKyAg
ICAgICAgc2VsZWN0b3I6QHNlbGVjdG9yKG9uU2VsZWN0ZWRLZXlib2FyZElucHV0U291cmNlQ2hh
bmdlZDopCisgICAgICAgIG5hbWU6KE5TU3RyaW5nKilrVElTTm90aWZ5U2VsZWN0ZWRLZXlib2Fy
ZElucHV0U291cmNlQ2hhbmdlZAorICAgICAgICBvYmplY3Q6TlVMTAorICAgICAgICBzdXNwZW5z
aW9uQmVoYXZpb3I6TlNOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZpb3JDb2FsZXNjZV07Cisg
ICAgcmV0dXJuIHNlbGY7Cit9CisKKy0odm9pZClvblNlbGVjdGVkS2V5Ym9hcmRJbnB1dFNvdXJj
ZUNoYW5nZWQ6KE5TTm90aWZpY2F0aW9uKilub3RpZmljYXRpb24KK3sKKyAgICBUSVNJbnB1dFNv
dXJjZVJlZiBzb3VyY2UgPSBUSVNDb3B5Q3VycmVudEtleWJvYXJkSW5wdXRTb3VyY2UoKTsKKyAg
ICBpZiAoaXNJbnB1dE1ldGhvZEVuYWJsZWRJbnB1dFNvdXJjZShzb3VyY2UpKQorICAgICAgICBb
c2VsZiBzZXRMYXN0SW5wdXRTb3VyY2U6c291cmNlXTsKKyAgICBlbHNlCisgICAgICAgIENGUmVs
ZWFzZShzb3VyY2UpOworfQorCistKHZvaWQpc2V0TGFzdElucHV0U291cmNlOihUSVNJbnB1dFNv
dXJjZVJlZilzb3VyY2UKK3sKKyAgICBpZiAobV9sYXN0SW5wdXRTb3VyY2UpCisgICAgICAgIENG
UmVsZWFzZShtX2xhc3RJbnB1dFNvdXJjZSk7CisgICAgbV9sYXN0SW5wdXRTb3VyY2UgPSBzb3Vy
Y2U7Cit9CisKKy0odm9pZClhY3RpdmF0ZUlucHV0TWV0aG9kCit7CisgICAgLy8gV2UgZG9uJ3Qg
bmVlZCBhY3RpdmF0ZSBpbnB1dCBtZXRob2Qgd2hlbiBpdCB3YXMgYWxyZWFkeSBhY3RpdmF0ZWQu
CisgICAgVElTSW5wdXRTb3VyY2VSZWYgc291cmNlID0gVElTQ29weUN1cnJlbnRLZXlib2FyZElu
cHV0U291cmNlKCk7CisgICAgaWYgKGlzSW5wdXRNZXRob2RFbmFibGVkSW5wdXRTb3VyY2Uoc291
cmNlKSkgeworICAgICAgICBbc2VsZiBzZXRMYXN0SW5wdXRTb3VyY2U6c291cmNlXTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBDRlJlbGVhc2Uoc291cmNlKTsKKworICAgIC8vIEF0dGVt
dHBzIGFjdGl2YXRpbmcgaW5wdXQgbWV0aG9kLiBVc2VzIHRoZSBwcmV2aW91c2x5IHVzZWQgaW5w
dXQgbWV0aG9kCisgICAgLy8gaWYgYXZhaWxhYmxlLiBPdGhlcndpc2UgbG9va2luZyBmb3IgdGhl
IHN5c3RlbSBwcmVmZXJyZWQgaW5wdXQgbWV0aG9kLgorICAgIHNvdXJjZSA9IG1fbGFzdElucHV0
U291cmNlOworICAgIGlmICghc291cmNlKSB7CisgICAgICAgIHNvdXJjZSA9IGNvcHlTeXN0ZW1Q
cmVmZXJyZWRJbnB1dFNvdXJjZSgpOworICAgICAgICBbc2VsZiBzZXRMYXN0SW5wdXRTb3VyY2U6
c291cmNlXTsKKyAgICB9CisgICAgaWYgKHNvdXJjZSkKKyAgICAgICAgVElTU2VsZWN0SW5wdXRT
b3VyY2Uoc291cmNlKTsKK30KKworLSh2b2lkKWRlYWN0aXZhdGVJbnB1dE1ldGhvZAoreworICAg
IFRJU0lucHV0U291cmNlUmVmIHNvdXJjZSA9IFRJU0NvcHlDdXJyZW50QVNDSUlDYXBhYmxlS2V5
Ym9hcmRMYXlvdXRJbnB1dFNvdXJjZSgpOworICAgIGlmIChzb3VyY2UpIHsKKyAgICAgICAgVElT
U2VsZWN0SW5wdXRTb3VyY2Uoc291cmNlKTsKKyAgICAgICAgQ0ZSZWxlYXNlKHNvdXJjZSk7Cisg
ICAgfQorfQorCistKHZvaWQpZW5hYmxlSW5wdXRNZXRob2RzCit7CisgICAgaWYgKCFtX2lucHV0
TWV0aG9kc0Rpc2FibGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBUU01SZW1vdmVEb2N1bWVu
dFByb3BlcnR5KFRTTUdldEFjdGl2ZURvY3VtZW50KCksIGtUU01Eb2N1bWVudEVuYWJsZWRJbnB1
dFNvdXJjZXNQcm9wZXJ0eVRhZyk7CisgICAgbV9pbnB1dE1ldGhvZHNEaXNhYmxlZCA9IGZhbHNl
OworfQorCistKHZvaWQpZGlzYWJsZUlucHV0TWV0aG9kcworeworICAgIGlmIChtX2lucHV0TWV0
aG9kc0Rpc2FibGVkKQorICAgICAgICByZXR1cm47CisgICAgQ0ZBcnJheVJlZiBzb3VyY2VzID0g
VElTQ3JlYXRlQVNDSUlDYXBhYmxlSW5wdXRTb3VyY2VMaXN0KCk7CisgICAgVFNNU2V0RG9jdW1l
bnRQcm9wZXJ0eShUU01HZXRBY3RpdmVEb2N1bWVudCgpLCBrVFNNRG9jdW1lbnRFbmFibGVkSW5w
dXRTb3VyY2VzUHJvcGVydHlUYWcsIHNpemVvZihDRkFycmF5UmVmKSwgJnNvdXJjZXMpOworICAg
IENGUmVsZWFzZShzb3VyY2VzKTsKKyAgICBtX2lucHV0TWV0aG9kc0Rpc2FibGVkID0gdHJ1ZTsK
K30KK0BlbmQKKwogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnBhZ2VEZXN0cm95ZWQoKQogewogICAg
IGRlbGV0ZSB0aGlzOwpAQCAtMTc0LDYgKzM1OCw3IEBAIFdlYkVkaXRvckNsaWVudDo6V2ViRWRp
dG9yQ2xpZW50KFdlYlZpZXcgKndlYlZpZXcpCiAgICAgOiBtX3dlYlZpZXcod2ViVmlldykKICAg
ICAsIG1fdW5kb1RhcmdldChbW1tXZWJFZGl0b3JVbmRvVGFyZ2V0IGFsbG9jXSBpbml0XSBhdXRv
cmVsZWFzZV0pCiAgICAgLCBtX2hhdmVVbmRvUmVkb09wZXJhdGlvbnMoZmFsc2UpCisgICAgLCBt
X2lucHV0TWV0aG9kQ29udHJvbGxlcihbSW5wdXRNZXRob2RDb250cm9sbGVyIGdldEluc3RhbmNl
XSkKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdf
T05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgICwg
bV9jb3JyZWN0aW9uUGFuZWxUYWcoLTEpCiAjZW5kaWYKQEAgLTg3NCw0ICsxMDU5LDM2IEBAIHZv
aWQgV2ViRWRpdG9yQ2xpZW50Ojp3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpCiAKIHZvaWQgV2Vi
RWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpCiB7CisgICAgRnJhbWUqIGZy
YW1lID0gY29yZShbbV93ZWJWaWV3IHNlbGVjdGVkRnJhbWVdKTsKKyAgICBEb2N1bWVudCogZG9j
dW1lbnQgPSBmcmFtZSA/IGZyYW1lLT5kb2N1bWVudCgpIDogMDsKKyAgICBOb2RlKiBmb2N1c2Vk
Tm9kZSA9IGRvY3VtZW50ID8gZG9jdW1lbnQtPmZvY3VzZWROb2RlKCkgOiAwOworICAgIFJlbmRl
ck9iamVjdCogcmVuZGVyZXIgPSBmb2N1c2VkTm9kZSA/IGZvY3VzZWROb2RlLT5yZW5kZXJlcigp
IDogMDsKKworICAgIC8vIE5lZWQgdG8gZXhwb3NlIHRoZSBpbnB1dCBjb250ZXh0IG9mIHRoZSB3
ZWJWaWV3IGZvciBlbmFibGluZy9kaXNhYmxpbmcKKyAgICAvLyBpbnB1dCBtZXRob2RzIGNvcnJl
Y3RseS4gSWYgdGhlIHdlYlZpZXcgZG9lc24ndCBleHBvc2UgdGhlIGlucHV0IGNvbnRleHQsCisg
ICAgLy8gVFNNR2V0QWN0aXZlRG9jdW1lbnQoKSB3aWxsIHJldHVybiBuaWwgYW5kIHRoZW4gaW5w
dXQgbWV0aG9kcyBhcmUgbm90CisgICAgLy8gZW5hYmxlZC9kaXNhYmxlZCBhcyB3ZSBleHBlY3Rl
ZC4KKyAgICBXZWJIVE1MVmlldyAqdmlldyA9IFtbW21fd2ViVmlldyBzZWxlY3RlZEZyYW1lXSBm
cmFtZVZpZXddIGRvY3VtZW50Vmlld107CisgICAgW3ZpZXcgZXhwb3NlSW5wdXRDb250ZXh0XTsK
KworICAgIGlmIChyZW5kZXJlcikgeworICAgICAgICBzd2l0Y2ggKHJlbmRlcmVyLT5zdHlsZSgp
LT5pbWVNb2RlKCkpIHsKKyAgICAgICAgY2FzZSBJTUVfTU9ERV9BVVRPOgorICAgICAgICBjYXNl
IElNRV9NT0RFX05PUk1BTDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIElNRV9N
T0RFX0FDVElWRToKKyAgICAgICAgICAgIFttX2lucHV0TWV0aG9kQ29udHJvbGxlci5nZXQoKSBh
Y3RpdmF0ZUlucHV0TWV0aG9kXTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIElN
RV9NT0RFX0lOQUNUSVZFOgorICAgICAgICAgICAgW21faW5wdXRNZXRob2RDb250cm9sbGVyLmdl
dCgpIGRlYWN0aXZhdGVJbnB1dE1ldGhvZF07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBJTUVfTU9ERV9ESVNBQkxFRDoKKyAgICAgICAgICAgIFttX2lucHV0TWV0aG9kQ29udHJv
bGxlci5nZXQoKSBkaXNhYmxlSW5wdXRNZXRob2RzXTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgfQorCisgICAgLy8gRW5hYmxlcyBpbnB1dCBtZXRob2RzIHVubGVzcyBpbnB1
dCBtZXRob2RzIHNob3VsZCBiZSBkaXNhYmxlZC4KKyAgICBpZiAoIXJlbmRlcmVyIHx8IHJlbmRl
cmVyLT5zdHlsZSgpLT5pbWVNb2RlKCkgIT0gSU1FX01PREVfRElTQUJMRUQpCisgICAgICAgIFtt
X2lucHV0TWV0aG9kQ29udHJvbGxlci5nZXQoKSBlbmFibGVJbnB1dE1ldGhvZHNdOwogfQpkaWZm
IC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3LmggYi9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViSFRNTFZpZXcuaAppbmRleCBhMTkxY2VmMmM1ODIzYWIzNjg3M2Y2MGJlNWY3MDU5
YjQzYjE0MDU5Li5mOTk3ODA0ZGE0MTBhMTFhMDZiMzM1MzJlNWM0YjdiZGZkMDE5OTIyIDEwMDY0
NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcuaAorKysgYi9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViSFRNTFZpZXcuaApAQCAtNTksNSArNTksNyBAQAogCiAtICh2b2lkKW91dGRl
bnQ6KGlkKXNlbmRlcjsKIAorLSAodm9pZClleHBvc2VJbnB1dENvbnRleHQ7CisKIEBlbmQKIApk
aWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDM0NzQ1YTFmODdiYTVlOTVmYmExNzY1MzEx
Y2JjODk1MDM3MTUzZTguLmNlYmI5NzEzZDk2MTI2Nzg0NTBhMDczMGNkMDkxMDNjMmI4Yzg1MzYg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTUwODAsNiArNTA4MCwxMiBAQCBzdGF0
aWMgQk9PTCB3cml0aW5nRGlyZWN0aW9uS2V5QmluZGluZ3NFbmFibGVkKCkKICAgICAgICAgW3N1
cGVyIG90aGVyTW91c2VVcDpldmVudF07CiB9CiAKKy0gKHZvaWQpZXhwb3NlSW5wdXRDb250ZXh0
Cit7CisgICAgX3ByaXZhdGUtPmV4cG9zZUlucHV0Q29udGV4dCA9IFlFUzsKKyAgICBbTlNBcHAg
dXBkYXRlV2luZG93c107Cit9CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIE5TQXJyYXkgKFdl
YkhUTUxWaWV3KQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDQyMzgyMzEzZDMxNDFjNzYyZmJiYTNkMDAzODYwNjkzN2MyMjAy
OTcuLmI1MTVmNTk2NTJmNGFmYzA3MWM3ODlkNjk1Nzg2MTIwYjQ0MTNmYzcgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxMC0wOS0wNiAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1
cHBvcnQgaW1lLW1vZGUgKENTUyBwcm9wZXJ0eSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjc5CisKKyAgICAgICAgQWRkIHRlc3RpbmcgZnVuY3Rp
b25zIHRoYXQgY2hlY2tzIHRoZSBzdGF0ZSBvZiBpbnB1dCBtZXRob2RzCisgICAgICAgIGludG8g
VGV4dElucHV0Q29udHJvbGxlci4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9UZXh0
SW5wdXRDb250cm9sbGVyLm06CisgICAgICAgICgrW1RleHRJbnB1dENvbnRyb2xsZXIgaXNTZWxl
Y3RvckV4Y2x1ZGVkRnJvbVdlYlNjcmlwdDpdKToKKyAgICAgICAgKCtbVGV4dElucHV0Q29udHJv
bGxlciB3ZWJTY3JpcHROYW1lRm9yU2VsZWN0b3I6XSk6CisgICAgICAgICgtW1RleHRJbnB1dENv
bnRyb2xsZXIgc2V0SW5wdXRTb3VyY2VNb2RlOl0pOgorICAgICAgICAoLVtUZXh0SW5wdXRDb250
cm9sbGVyIGlzSW5wdXRNZXRob2RFbmFibGVkXSk6CisKIDIwMTAtMDktMDYgIEVyaWMgU2VpZGVs
ICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGp1c3QgYWRkaW5nIHNv
bWUgZW1haWxzIGZyb20gbGlzdHMud2Via2l0Lm9yZy4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5wdXRDb250cm9sbGVyLm0gYi9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvVGV4dElucHV0Q29udHJvbGxlci5tCmluZGV4IGEwNDlhYzU5ZDhj
ZjA5MTU1OTI0Y2NhMzllYjc3OTYxNTY5ODY2NTQuLjg5ZGJlZjcxNTdhNTE1OTM3MTExMzlmMzg2
YTMzMTliZDgzNDJhZDYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9UZXh0SW5wdXRDb250cm9sbGVyLm0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL1RleHRJbnB1dENvbnRyb2xsZXIubQpAQCAtMjYsNiArMjYsOCBAQAogICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICAqLwogCisjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CisKICNpbXBvcnQgImNvbmZpZy5oIgog
I2ltcG9ydCAiVGV4dElucHV0Q29udHJvbGxlci5oIgogCkBAIC0xNzEsNyArMTczLDkgQEAgKyAo
Qk9PTClpc1NlbGVjdG9yRXhjbHVkZWRGcm9tV2ViU2NyaXB0OihTRUwpYVNlbGVjdG9yCiAgICAg
ICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHZhbGlkQXR0cmlidXRlc0Zvck1hcmtl
ZFRleHQpCiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGF0dHJpYnV0ZWRT
dHJpbmdXaXRoU3RyaW5nOikKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3Io
c2V0SW5wdXRNZXRob2RIYW5kbGVyOikKLSAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2Vs
ZWN0b3IoaGFzU3BlbGxpbmdNYXJrZXI6bGVuZ3RoOikpCisgICAgICAgICAgICB8fCBhU2VsZWN0
b3IgPT0gQHNlbGVjdG9yKGhhc1NwZWxsaW5nTWFya2VyOmxlbmd0aDopCisgICAgICAgICAgICB8
fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGlzSW5wdXRNZXRob2RFbmFibGVkKQorICAgICAgICAg
ICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihzZXRJbnB1dFNvdXJjZU1vZGU6KSkKICAgICAg
ICAgcmV0dXJuIE5POwogICAgIHJldHVybiBZRVM7CiB9CkBAIC0xOTUsOSArMTk5LDEzIEBAICsg
KE5TU3RyaW5nICopd2ViU2NyaXB0TmFtZUZvclNlbGVjdG9yOihTRUwpYVNlbGVjdG9yCiAgICAg
ZWxzZSBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihhdHRyaWJ1dGVkU3RyaW5nV2l0aFN0cmlu
ZzopKQogICAgICAgICByZXR1cm4gQCJtYWtlQXR0cmlidXRlZFN0cmluZyI7IC8vIGp1c3QgYSBm
YWN0b3J5IG1ldGhvZCwgZG9lc24ndCBjYWxsIGludG8gTlNUZXh0SW5wdXQKICAgICBlbHNlIGlm
IChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHNldElucHV0TWV0aG9kSGFuZGxlcjopKQotICAgICAg
ICByZXR1cm4gQCJzZXRJbnB1dE1ldGhvZEhhbmRsZXIiOyAKKyAgICAgICAgcmV0dXJuIEAic2V0
SW5wdXRNZXRob2RIYW5kbGVyIjsKICAgICBlbHNlIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9y
KGhhc1NwZWxsaW5nTWFya2VyOmxlbmd0aDopKQogICAgICAgICByZXR1cm4gQCJoYXNTcGVsbGlu
Z01hcmtlciI7CisgICAgZWxzZSBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3Rvcihpc0lucHV0TWV0
aG9kRW5hYmxlZCkpCisgICAgICAgIHJldHVybiBAImlzSW5wdXRNZXRob2RFbmFibGVkIjsKKyAg
ICBlbHNlIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHNldElucHV0U291cmNlTW9kZTopKQor
ICAgICAgICByZXR1cm4gQCJzZXRJbnB1dFNvdXJjZU1vZGUiOwogCiAgICAgcmV0dXJuIG5pbDsK
IH0KQEAgLTQzNiw0ICs0NDQsMzMgQEAgLSAoQk9PTCloYXNTcGVsbGluZ01hcmtlcjooaW50KWZy
b20gbGVuZ3RoOihpbnQpbGVuZ3RoCiAgICAgcmV0dXJuIFtbd2ViVmlldyBtYWluRnJhbWVdIGhh
c1NwZWxsaW5nTWFya2VyOmZyb20gbGVuZ3RoOmxlbmd0aF07CiB9CiAKKy0oQk9PTClzZXRJbnB1
dFNvdXJjZU1vZGU6KE5TT2JqZWN0Kiltb2RlSUQKK3sKKyAgICBCT09MIHN1Y2Nlc3MgPSBOTzsK
KyAgICBjb25zdCB2b2lkKiBrZXlzW10gPSB7IGtUSVNQcm9wZXJ0eUlucHV0TW9kZUlEIH07Cisg
ICAgY29uc3Qgdm9pZCogdmFsdWVzW10gPSB7IChDRlN0cmluZ1JlZiltb2RlSUQgfTsKKyAgICBD
RkRpY3Rpb25hcnlSZWYgcHJvcGVydGllcyA9IENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBrZXlzLCB2YWx1ZXMsIDEsIE5VTEwsIE5VTEwpOworICAgIENGQXJyYXlSZWYg
c291cmNlcyA9IFRJU0NyZWF0ZUlucHV0U291cmNlTGlzdChwcm9wZXJ0aWVzLCBmYWxzZSk7Cisg
ICAgaWYgKHNvdXJjZXMgJiYgQ0ZBcnJheUdldENvdW50KHNvdXJjZXMpID4gMCkgeworICAgICAg
ICBUSVNJbnB1dFNvdXJjZVJlZiBzb3VyY2UgPSAoVElTSW5wdXRTb3VyY2VSZWYpQ0ZBcnJheUdl
dFZhbHVlQXRJbmRleChzb3VyY2VzLCAwKTsKKyAgICAgICAgVElTU2VsZWN0SW5wdXRTb3VyY2Uo
c291cmNlKTsKKyAgICAgICAgc3VjY2VzcyA9IFlFUzsKKyAgICB9CisgICAgaWYgKHNvdXJjZXMp
CisgICAgICAgIENGUmVsZWFzZShzb3VyY2VzKTsKKyAgICBDRlJlbGVhc2UocHJvcGVydGllcyk7
CisgICAgcmV0dXJuIHN1Y2Nlc3M7Cit9CisKKy0oQk9PTClpc0lucHV0TWV0aG9kRW5hYmxlZAor
eworICAgIFRJU0lucHV0U291cmNlUmVmIHNvdXJjZSA9IFRJU0NvcHlDdXJyZW50S2V5Ym9hcmRJ
bnB1dFNvdXJjZSgpOworICAgIENGU3RyaW5nUmVmIGlucHV0TW9kZSA9IE5VTEw7CisgICAgaWYg
KHNvdXJjZSkgeworICAgICAgICBpbnB1dE1vZGUgPSAoQ0ZTdHJpbmdSZWYpVElTR2V0SW5wdXRT
b3VyY2VQcm9wZXJ0eShzb3VyY2UsIGtUSVNQcm9wZXJ0eUlucHV0TW9kZUlEKTsKKyAgICAgICAg
Q0ZSZWxlYXNlKHNvdXJjZSk7CisgICAgfQorICAgIHJldHVybiBpbnB1dE1vZGUgIT0gTlVMTDsK
K30KKwogQGVuZAo=
</data>
<flag name="review"
          id="55761"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>