<?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>42805</bug_id>
          
          <creation_ts>2010-07-21 21:52:57 -0700</creation_ts>
          <short_desc>TextEvent should have inputMode property</short_desc>
          <delta_ts>2011-11-22 00:57:09 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          
          <blocked>42957</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>ojan</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>254655</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-07-21 21:52:57 -0700</bug_when>
    <thetext>DOM Level3 standard defines inputMode property on TextEvent object.
http://www.w3.org/TR/DOM-Level-3-Events/#events-textevents
So we should have it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255063</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-22 16:46:05 -0700</bug_when>
    <thetext>Hmm. Is there any way we could possibly implement it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255135</commentid>
    <comment_count>2</comment_count>
      <attachid>62370</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-07-22 18:31:19 -0700</bug_when>
    <thetext>Created attachment 62370
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255137</commentid>
    <comment_count>3</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-07-22 18:34:44 -0700</bug_when>
    <thetext>&gt; Hmm. Is there any way we could possibly implement it?
Sure, there is some limitation actually because our browsers has no way to 
distinguish voice/hand-writing based input from normal IME-based input like kotoeri.
I&apos;m doing this because we have a plan to fire textInput event for pasting and dropping,
and we would like to distinguish them from key input / ime input.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255147</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-22 18:52:04 -0700</bug_when>
    <thetext>I don&apos;t see how such a distinction makes sense. Specifically, on a Mac there is no way to tell that input comes from an input method (a custom key binding can send insertText: just as well).

What is the high level goal here? Maybe it can be achieved in a different way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255161</commentid>
    <comment_count>5</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-07-22 19:16:21 -0700</bug_when>
    <thetext>Thank you sharing your thought.
&gt; I don&apos;t see how such a distinction makes sense. Specifically, on a Mac there is no way to tell that input comes from an input method (a custom key binding can send insertText: just as well).
&gt; 
&gt; What is the high level goal here? Maybe it can be achieved in a different way.
One of our goal is to support rich-text editor implementation 
and to do so, we&apos;d like to provide a way to hook text inputs that is allowed by WebKit currently, 
i.e. pasting and dropping. 
Because pasting/dropping would have HTML fragment, it might be helpful to 
distinguish them from  plain text input.

(BTW, the standard says nothing how we should handle such HTML fragment in TextEvent.data property
so we need discuss it anyway.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255185</commentid>
    <comment_count>6</comment_count>
      <attachid>62370</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-22 20:29:29 -0700</bug_when>
    <thetext>Comment on attachment 62370
Patch

Pasting and dropping can be distinguished from other input - in fact, we already have such a distinction, see EditorInsertAction.h in WebCore. We don&apos;t expose that to JS code as far as I know, and it may be useful indeed.

However, please note that text added via insertText: can also be styled - the caller can always pass an NSAttributedString there.

I&apos;m marking the patch r-, as I don&apos;t see why we would want to expose all the other options currently in DOM 3 events.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255206</commentid>
    <comment_count>7</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-07-22 21:59:30 -0700</bug_when>
    <thetext>Hi, thank you for taking a look!

&gt; Pasting and dropping can be distinguished from other input - in fact, we already have such a distinction, see EditorInsertAction.h in WebCore. We don&apos;t expose that to JS code as far as I know, and it may be useful indeed.
Sure, we&apos;d like to distinguish them from JS world because our goal is
implementing rich text editors in JavaScript. So distinguish them in WebCore isn&apos;t enough.
Thank you for letting me know. I should refer there to add paste/drop events.

&gt; 
&gt; However, please note that text added via insertText: can also be styled - the caller can always pass an NSAttributedString there.
Wow, I didn&apos;t notice tha so I&apos;m taking a look. 
It looks that current implementation only handles a specific type of attributed string
that is given by an IME implementation (according to a comment there).
So It looks we don&apos;t need to handle a generic case.
(What I checked is [WebHTMLView insertText].)

&gt; 
&gt; I&apos;m marking the patch r-, as I don&apos;t see why we would want to expose all the other options currently in DOM 3 events.
OK. I&apos;ll ask some webdev people what they exactly want.
And try to add pasting/dropping event at first, which are required anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256354</commentid>
    <comment_count>8</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-07-26 17:37:38 -0700</bug_when>
    <thetext>&gt; &gt; I&apos;m marking the patch r-, as I don&apos;t see why we would want to expose all the other options currently in DOM 3 events.
&gt; OK. I&apos;ll ask some webdev people what they exactly want.
&gt; And try to add pasting/dropping event at first, which are required anyway.

I agree with Alexey, the other inputModes are not very useful and likely hard to implement. I think we should go ahead just with paste and drop. We should also make a proposal for more reasonable list of inputModes, but we should wait until the current discussion on www-dom about converting textInput to beforeInput is resolved since that greatly affects what should go on that list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507449</commentid>
    <comment_count>9</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-11-22 00:57:09 -0800</bug_when>
    <thetext>Closing this since DOM3 evolution is fading out and DOM4 is coming. 
And we don&apos;t have any consensus to implement this.

Someone may reopen this when there is clear demand for the feature.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62370</attachid>
            <date>2010-07-22 18:31:19 -0700</date>
            <delta_ts>2010-07-22 20:29:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42805-20100723103118.patch</filename>
            <type>text/plain</type>
            <size>15737</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMTE0MTNkZGVhYjQ1NGFmYTE1ZWU5NmMyY2JhOThjNjdkY2JjODRmLi45ZDg5MTJm
ZDk3MzhlM2FmZWVkZjgyN2IyYjRhOWQyNjM5Zjk0MzE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMDctMjIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGV4dEV2ZW50IHNob3Vs
ZCBoYXZlIGlucHV0TW9kZSBwcm9wZXJ0eS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQyODA1CisgICAgICAgIAorICAgICAgICAqIGVkaXRpbmcvaW5z
ZXJ0aW5nL3NjcmlwdC10ZXN0cy90ZXh0LWV2ZW50LWlucHV0LW1vZGUuanM6IEFkZGVkLgorICAg
ICAgICAoc2V0dXBUYXJnZXRFbGVtZW50KToKKyAgICAgICAgKHRleHRFdmVudHNTaG91bGRCZURp
c3BhdGNoZWQpOgorICAgICAgICAqIGVkaXRpbmcvaW5zZXJ0aW5nL3RleHQtZXZlbnQtaW5wdXQt
bW9kZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2luc2VydGluZy90ZXh0LWV2ZW50
LWlucHV0LW1vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMC0wNy0yMiAgQ29zbWluIFRy
dXRhICA8Y3RydXRhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvaW5zZXJ0aW5nL3NjcmlwdC10
ZXN0cy90ZXh0LWV2ZW50LWlucHV0LW1vZGUuanMgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2luc2Vy
dGluZy9zY3JpcHQtdGVzdHMvdGV4dC1ldmVudC1pbnB1dC1tb2RlLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1
MTVhOThlNmZlMzllNWEzMWNiYWJhNTA1OWMxNDBhZmIwOWFiMjQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL2luc2VydGluZy9zY3JpcHQtdGVzdHMvdGV4dC1ldmVudC1p
bnB1dC1tb2RlLmpzCkBAIC0wLDAgKzEsNDQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0cyBUZXh0RXZl
bnQgb2JqZWN0cyBoYXZlIGFwcHJvcHJpYXRlIGlucHV0TW9kZSBwcm9wZXJ0eSIpOworCit2YXIg
dGVzdFJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQodGVzdFJvb3QpOworCitmdW5jdGlvbiBzZXR1cFRhcmdldEVsZW1lbnQoaW5u
ZXJIVE1MKSB7CisgICAgdGVzdFJvb3QuaW5uZXJIVE1MID0gaW5uZXJIVE1MOworICAgIHZhciB0
YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CisgICAgdGFyZ2V0LmFk
ZEV2ZW50TGlzdGVuZXIoInRleHRJbnB1dCIsIGZ1bmN0aW9uKGV2dCkgeworICAgICAgICB3aW5k
b3cubGFzdEV2ZW50ID0gZXZ0OworICAgIH0pOworICAgIHJldHVybiB0YXJnZXQ7Cit9CisKK2Z1
bmN0aW9uIHRleHRFdmVudHNTaG91bGRCZURpc3BhdGNoZWQoKQoreworICAgIC8vIFdpdGggdHlw
aW5nIGtleWJvYXJkIGRpcmVjdGx5LgorICAgIHdpbmRvdy5sYXN0RXZlbnQgPSBudWxsOyAgICAK
KyAgICBldmVudFNlbmRlci5rZXlEb3duKCJhIik7CisgICAgc2hvdWxkQmUoIndpbmRvdy5sYXN0
RXZlbnQuZGF0YSIsICInYSciKTsKKyAgICBzaG91bGRCZSgid2luZG93Lmxhc3RFdmVudC5pbnB1
dE1vZGUiLCAiVGV4dEV2ZW50LkRPTV9JTlBVVF9NRVRIT0RfS0VZQk9BUkQiKTsKKyAgICAvLyBX
aXRoIElNRS4KKyAgICB0ZXh0SW5wdXRDb250cm9sbGVyLnNldE1hcmtlZFRleHQoImhlbGxvIiwg
NSwgMCk7CisgICAgdGV4dElucHV0Q29udHJvbGxlci5pbnNlcnRUZXh0KCJIRUxMTyIpOworICAg
IHNob3VsZEJlKCJ3aW5kb3cubGFzdEV2ZW50LmRhdGEiLCAiJ0hFTExPJyIpOworICAgIHNob3Vs
ZEJlKCJ3aW5kb3cubGFzdEV2ZW50LmlucHV0TW9kZSIsICJUZXh0RXZlbnQuRE9NX0lOUFVUX01F
VEhPRF9JTUUiKTsKK30KKworLy8gRXZlbnQgYWdhaW50IGNvbnRlbnRFZGl0YWJsZQordGFyZ2V0
ID0gc2V0dXBUYXJnZXRFbGVtZW50KCI8c3BhbiBpZD0ndGFyZ2V0JyBjb250ZW50RWRpdGFibGU+
aGVsbG88L3NwYW4+Iik7Citkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50
KHRhcmdldC5maXJzdENoaWxkLCAwLCB0YXJnZXQuZmlyc3RDaGlsZCwgMCk7Cit0ZXh0RXZlbnRz
U2hvdWxkQmVEaXNwYXRjaGVkKCk7CisvLyBFdmVudCBhZ2FpbnQgPGlucHV0PgordGFyZ2V0ID0g
c2V0dXBUYXJnZXRFbGVtZW50KCI8aW5wdXQgaWQ9J3RhcmdldCcgdHlwZT0ndGV4dCcgPjwvaW5w
dXQ+Iik7Cit0YXJnZXQuZm9jdXMoKTsKK3RleHRFdmVudHNTaG91bGRCZURpc3BhdGNoZWQoKTsK
Ky8vIEV2ZW50IGFnYWludCA8dGV4dGFyZWE+Cit0YXJnZXQgPSBzZXR1cFRhcmdldEVsZW1lbnQo
Ijx0ZXh0YXJlYSBpZD0ndGFyZ2V0Jz5IZWxsbzwvdGV4dGFyZWE+Iik7Cit0YXJnZXQuZm9jdXMo
KTsKK3RleHRFdmVudHNTaG91bGRCZURpc3BhdGNoZWQoKTsKKwordGVzdFJvb3Quc3R5bGUuZGlz
cGxheSA9ICJub25lIjsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2luc2VydGluZy90ZXh0LWV2ZW50LWlucHV0LW1vZGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9pbnNlcnRpbmcvdGV4dC1ldmVudC1p
bnB1dC1tb2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hODA1YzhhYWJiZjVjNGJjNTg2Yzg1
MzdjMTZiMDMyZGZiNjJiMGZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9pbnNlcnRpbmcvdGV4dC1ldmVudC1pbnB1dC1tb2RlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDIxIEBACitUZXN0cyBUZXh0RXZlbnQgb2JqZWN0cyBoYXZlIGFwcHJvcHJpYXRlIGlucHV0TW9k
ZSBwcm9wZXJ0eQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB3aW5kb3cu
bGFzdEV2ZW50LmRhdGEgaXMgJ2EnCitQQVNTIHdpbmRvdy5sYXN0RXZlbnQuaW5wdXRNb2RlIGlz
IFRleHRFdmVudC5ET01fSU5QVVRfTUVUSE9EX0tFWUJPQVJECitQQVNTIHdpbmRvdy5sYXN0RXZl
bnQuZGF0YSBpcyAnSEVMTE8nCitQQVNTIHdpbmRvdy5sYXN0RXZlbnQuaW5wdXRNb2RlIGlzIFRl
eHRFdmVudC5ET01fSU5QVVRfTUVUSE9EX0lNRQorUEFTUyB3aW5kb3cubGFzdEV2ZW50LmRhdGEg
aXMgJ2EnCitQQVNTIHdpbmRvdy5sYXN0RXZlbnQuaW5wdXRNb2RlIGlzIFRleHRFdmVudC5ET01f
SU5QVVRfTUVUSE9EX0tFWUJPQVJECitQQVNTIHdpbmRvdy5sYXN0RXZlbnQuZGF0YSBpcyAnSEVM
TE8nCitQQVNTIHdpbmRvdy5sYXN0RXZlbnQuaW5wdXRNb2RlIGlzIFRleHRFdmVudC5ET01fSU5Q
VVRfTUVUSE9EX0lNRQorUEFTUyB3aW5kb3cubGFzdEV2ZW50LmRhdGEgaXMgJ2EnCitQQVNTIHdp
bmRvdy5sYXN0RXZlbnQuaW5wdXRNb2RlIGlzIFRleHRFdmVudC5ET01fSU5QVVRfTUVUSE9EX0tF
WUJPQVJECitQQVNTIHdpbmRvdy5sYXN0RXZlbnQuZGF0YSBpcyAnSEVMTE8nCitQQVNTIHdpbmRv
dy5sYXN0RXZlbnQuaW5wdXRNb2RlIGlzIFRleHRFdmVudC5ET01fSU5QVVRfTUVUSE9EX0lNRQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvaW5zZXJ0aW5nL3RleHQtZXZlbnQtaW5wdXQtbW9k
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9pbnNlcnRpbmcvdGV4dC1ldmVudC1pbnB1dC1t
b2RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMGIyMWNlZGFmYmVlZjExZWMxZDhlYmY3NGQ4MWU5OWUwNjQy
ZDJiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvaW5zZXJ0aW5nL3Rl
eHQtZXZlbnQtaW5wdXQtbW9kZS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Rl
eHQtZXZlbnQtaW5wdXQtbW9kZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggNGFmMzYwOGQyODA5YTI0Y2I0YzRiMjc2OGUwYWZlZWUzZWUyZTFjYi4uMzQwMjNlMzBkYTQx
ZmU4MzE1MDY2ZWZjYmRiMGM1NWI5YmYzZmZkNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0wNy0yMiAg
TU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXh0RXZlbnQgc2hvdWxkIGhhdmUgaW5wdXRN
b2RlIHByb3BlcnR5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDI4MDUKKyAgICAgICAgCisgICAgICAgIEFkZGVkIFRleHRFdmVudC5pbnB1dE1vZGUg
YW5kIGRpc3BhdGNoIGl0IGZyb20gdGhlIEVkaXRvci4KKyAgICAgICAgQ3VycmVudGx5IERPTV9J
TlBVVF9NRVRIT0RfS0VZQk9BUkQgYW5kIERPTV9JTlBVVF9NRVRIT0RfSU1FIAorICAgICAgICBp
cyBzdXBwb3J0ZWQuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9pbnNlcnRpbmcvdGV4dC1ldmVu
dC1pbnB1dC1tb2RlLmh0bWwKKworICAgICAgICAqIGRvbS9UZXh0RXZlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dEV2ZW50OjpUZXh0RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dEV2ZW50Ojppbml0VGV4dEV2ZW50KToKKyAgICAgICAgKiBkb20vVGV4dEV2ZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0RXZlbnQ6Oik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RXZlbnQ6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RXZlbnQ6OmlucHV0TW9kZSk6CisgICAg
ICAgICogZG9tL1RleHRFdmVudC5pZGw6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjppbnNlcnRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvcjo6Y29uZmlybUNvbXBvc2l0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5o
OgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6aGFuZGxlVGV4dElucHV0RXZlbnQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRI
YW5kbGVyLmg6CisKIDIwMTAtMDctMjIgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWkuCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2RvbS9UZXh0RXZlbnQuY3BwIGIvV2ViQ29yZS9kb20vVGV4dEV2ZW50LmNwcAppbmRleCBkMjgy
YzEzYzQxYmQ1ZDMxMWQwYTEwYWI1YTcxOGY0NmUxN2IyODM3Li5mMWEwMWJiN2E0ZDMwMTk5MThi
MTliZmQyOWI5NzU3YjgwMjJmMzYxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9UZXh0RXZlbnQu
Y3BwCisrKyBiL1dlYkNvcmUvZG9tL1RleHRFdmVudC5jcHAKQEAgLTM3LDkgKzM3LDEwIEBAIFRl
eHRFdmVudDo6VGV4dEV2ZW50KCkKIHsKIH0KIAotVGV4dEV2ZW50OjpUZXh0RXZlbnQoUGFzc1Jl
ZlB0cjxBYnN0cmFjdFZpZXc+IHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0YSkKK1RleHRFdmVudDo6
VGV4dEV2ZW50KFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBjb25zdCBTdHJpbmcmIGRh
dGEsIElucHV0TW9kZSBpbnB1dE1vZGUpCiAgICAgOiBVSUV2ZW50KGV2ZW50TmFtZXMoKS50ZXh0
SW5wdXRFdmVudCwgdHJ1ZSwgdHJ1ZSwgdmlldywgMCkKICAgICAsIG1fZGF0YShkYXRhKQorICAg
ICwgbV9pbnB1dE1vZGUoaW5wdXRNb2RlKQogICAgICwgbV9pc0xpbmVCcmVhayhmYWxzZSkKICAg
ICAsIG1faXNCYWNrVGFiKGZhbHNlKQogewpAQCAtNDksNyArNTAsOCBAQCBUZXh0RXZlbnQ6On5U
ZXh0RXZlbnQoKQogewogfQogCi12b2lkIFRleHRFdmVudDo6aW5pdFRleHRFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFBhc3NS
ZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBjb25zdCBTdHJpbmcmIGRhdGEpCisvLyBpbnB1dE1v
ZGUgaXMgaW50IGluc3RlYWQgb2YgSW5wdXRNb2RlIGR1ZSB0byBjb21wYXRpYmlsaXR5IGFnYWlu
c3QgYXV0by1nZW5lcmF0ZWQgYmluZGluZyBjb2RlLgordm9pZCBUZXh0RXZlbnQ6OmluaXRUZXh0
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5j
ZWxhYmxlLCBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4gdmlldywgY29uc3QgU3RyaW5nJiBkYXRh
LCBpbnQgaW5wdXRNb2RlKQogewogICAgIGlmIChkaXNwYXRjaGVkKCkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTU3LDYgKzU5LDcgQEAgdm9pZCBUZXh0RXZlbnQ6OmluaXRUZXh0RXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW4KICAgICBpbml0VUlF
dmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIHZpZXcsIDApOwogCiAgICAgbV9kYXRh
ID0gZGF0YTsKKyAgICBtX2lucHV0TW9kZSA9IHN0YXRpY19jYXN0PElucHV0TW9kZT4oaW5wdXRN
b2RlKTsKIH0KIAogYm9vbCBUZXh0RXZlbnQ6OmlzVGV4dEV2ZW50KCkgY29uc3QKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvZG9tL1RleHRFdmVudC5oIGIvV2ViQ29yZS9kb20vVGV4dEV2ZW50LmgKaW5k
ZXggOWY5M2ZkYjM3ZjUyMzdlMGQxN2U4OTcxYTg0ZTg2MTdmNGJiMDM0OS4uOGQ4NGJhMGNjNDY1
MzA0YTAwZjI0NjE2MjBlNWNkNjYyOGUyYTMwOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vVGV4
dEV2ZW50LmgKKysrIGIvV2ViQ29yZS9kb20vVGV4dEV2ZW50LmgKQEAgLTMzLDE5ICszMywzNCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBUZXh0RXZlbnQgOiBwdWJsaWMgVUlF
dmVudCB7CiAgICAgcHVibGljOgorCisgICAgICAgIGVudW0gSW5wdXRNb2RlIHsKKyAgICAgICAg
ICAgIERPTV9JTlBVVF9NRVRIT0RfVU5LTk9XTiA9IDAsCisgICAgICAgICAgICBET01fSU5QVVRf
TUVUSE9EX0tFWUJPQVJEID0gMSwKKyAgICAgICAgICAgIERPTV9JTlBVVF9NRVRIT0RfUEFTVEUg
PSAyLAorICAgICAgICAgICAgRE9NX0lOUFVUX01FVEhPRF9EUk9QID0gMywKKyAgICAgICAgICAg
IERPTV9JTlBVVF9NRVRIT0RfSU1FID0gNCwKKyAgICAgICAgICAgIERPTV9JTlBVVF9NRVRIT0Rf
T1BUSU9OID0gNSwKKyAgICAgICAgICAgIERPTV9JTlBVVF9NRVRIT0RfSEFORFdSSVRJTkcgPSA2
LAorICAgICAgICAgICAgRE9NX0lOUFVUX01FVEhPRF9WT0lDRSA9IDcsCisgICAgICAgICAgICBE
T01fSU5QVVRfTUVUSE9EX01VTFRJTU9EQUwgPSA4LAorICAgICAgICAgICAgRE9NX0lOUFVUX01F
VEhPRF9TQ1JJUFQgPSA5CisgICAgICAgIH07CisKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
VGV4dEV2ZW50PiBjcmVhdGUoKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFRleHRFdmVudCk7CiAgICAgICAgIH0KLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
VGV4dEV2ZW50PiBjcmVhdGUoUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZpZXcsIGNvbnN0IFN0
cmluZyYgZGF0YSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dEV2ZW50PiBjcmVhdGUo
UGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0YSwgSW5wdXRN
b2RlIGlucHV0TW9kZSA9IERPTV9JTlBVVF9NRVRIT0RfVU5LTk9XTikKICAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0RXZlbnQodmlldywgZGF0YSkpOworICAg
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0RXZlbnQodmlldywgZGF0YSwgaW5wdXRN
b2RlKSk7CiAgICAgICAgIH0KICAgICAgICAgdmlydHVhbCB+VGV4dEV2ZW50KCk7CiAgICAgCi0g
ICAgICAgIHZvaWQgaW5pdFRleHRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiwgY29u
c3QgU3RyaW5nJiBkYXRhKTsKKyAgICAgICAgdm9pZCBpbml0VGV4dEV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUGFzc1JlZlB0
cjxBYnN0cmFjdFZpZXc+LCBjb25zdCBTdHJpbmcmIGRhdGEsIGludCBJbnB1dE1vZGUgPSBET01f
SU5QVVRfTUVUSE9EX1VOS05PV04pOwogICAgIAogICAgICAgICBTdHJpbmcgZGF0YSgpIGNvbnN0
IHsgcmV0dXJuIG1fZGF0YTsgfQorICAgICAgICBJbnB1dE1vZGUgaW5wdXRNb2RlKCkgY29uc3Qg
eyByZXR1cm4gbV9pbnB1dE1vZGU7IH0KIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0RXZl
bnQoKSBjb25zdDsKIApAQCAtNTksOSArNzQsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgVGV4dEV2ZW50KCk7Ci0gICAgICAgIFRleHRFdmVudChQYXNz
UmVmUHRyPEFic3RyYWN0Vmlldz4sIGNvbnN0IFN0cmluZyYgZGF0YSk7CisgICAgICAgIFRleHRF
dmVudChQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4sIGNvbnN0IFN0cmluZyYgZGF0YSwgSW5wdXRN
b2RlKTsKIAogICAgICAgICBTdHJpbmcgbV9kYXRhOworICAgICAgICBJbnB1dE1vZGUgbV9pbnB1
dE1vZGU7CiAgICAgICAgIGJvb2wgbV9pc0xpbmVCcmVhazsKICAgICAgICAgYm9vbCBtX2lzQmFj
a1RhYjsKICAgICB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vVGV4dEV2ZW50LmlkbCBiL1dl
YkNvcmUvZG9tL1RleHRFdmVudC5pZGwKaW5kZXggODNiMGUzYmIzNzFmMTlhYTA4Y2JiODhlZTg5
YjdkM2Y0OTI0ZjFhZC4uNzc2NjZjMmMzZGU1NzFiZDgxMDYyMDc2NjllMTNhNjE1ZGUxNWNlOCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vVGV4dEV2ZW50LmlkbAorKysgYi9XZWJDb3JlL2RvbS9U
ZXh0RXZlbnQuaWRsCkBAIC0yOCw3ICsyOCwxOSBAQCBtb2R1bGUgZXZlbnRzIHsKICAgICAvLyBJ
bnRyb2R1Y2VkIGluIERPTSBMZXZlbCAzOgogICAgIGludGVyZmFjZSBUZXh0RXZlbnQgOiBVSUV2
ZW50IHsKIAorICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nICAgICAgIERPTV9JTlBVVF9NRVRI
T0RfVU5LTk9XTiAgICAgICA9IDA7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgICAgICAg
RE9NX0lOUFVUX01FVEhPRF9LRVlCT0FSRCAgICAgID0gMTsKKyAgICAgICAgY29uc3QgdW5zaWdu
ZWQgbG9uZyAgICAgICBET01fSU5QVVRfTUVUSE9EX1BBU1RFICAgICAgICAgPSAyOworICAgICAg
ICBjb25zdCB1bnNpZ25lZCBsb25nICAgICAgIERPTV9JTlBVVF9NRVRIT0RfRFJPUCAgICAgICAg
ICA9IDM7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgICAgICAgRE9NX0lOUFVUX01FVEhP
RF9JTUUgICAgICAgICAgID0gNDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyAgICAgICBE
T01fSU5QVVRfTUVUSE9EX09QVElPTiAgICAgICAgPSA1OworICAgICAgICBjb25zdCB1bnNpZ25l
ZCBsb25nICAgICAgIERPTV9JTlBVVF9NRVRIT0RfSEFORFdSSVRJTkcgICA9IDY7CisgICAgICAg
IGNvbnN0IHVuc2lnbmVkIGxvbmcgICAgICAgRE9NX0lOUFVUX01FVEhPRF9WT0lDRSAgICAgICAg
ID0gNzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyAgICAgICBET01fSU5QVVRfTUVUSE9E
X01VTFRJTU9EQUwgICAgPSA4OworICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nICAgICAgIERP
TV9JTlBVVF9NRVRIT0RfU0NSSVBUICAgICAgICA9IDk7CisKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyBkYXRhOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyAgIGlucHV0TW9kZTsKIAogICAgICAgICB2b2lkIGluaXRUZXh0RXZlbnQoaW4gRE9N
U3RyaW5nIHR5cGVBcmcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBj
YW5CdWJibGVBcmcsIApAQCAtMzYsNiArNDgsMTMgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBET01XaW5kb3cgdmlld0FyZywgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBET01TdHJpbmcgZGF0YUFyZyk7CiAKKyAgICAgICAgdm9pZCBpbml0
VGV4dEV2ZW50KGluIERPTVN0cmluZyB0eXBlQXJnLCAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIGJvb2xlYW4gY2FuQnViYmxlQXJnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIGJvb2xlYW4gY2FuY2VsYWJsZUFyZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBET01XaW5kb3cgdmlld0FyZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01T
dHJpbmcgZGF0YUFyZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxv
bmcgaW5wdXRNb2RlKTsKKwogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggNzZiNWE5MDMz
MGQ1NDZlYWRiOTE4Y2UxZTgxOWNjNzg0NDVkM2FjMS4uYmFkYmVmMjU3OGRlMTY2NTM0ZWJkYmU2
ZGU4Njg2OWNmNTg4MTMwZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAK
KysrIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTY2LDYgKzY2LDcgQEAKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNvdW5kLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgor
I2luY2x1ZGUgIlRleHRFdmVudC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1
ZGUgIlR5cGluZ0NvbW1hbmQuaCIKICNpbmNsdWRlICJVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRv
ci5oIgpAQCAtOTU1LDkgKzk1NiwxNCBAQCB2b2lkIEVkaXRvcjo6Y2xlYXIoKQogICAgIG1fc2hv
dWxkU3R5bGVXaXRoQ1NTID0gZmFsc2U7CiB9CiAKK2Jvb2wgRWRpdG9yOjppbnNlcnRUZXh0KGNv
bnN0IFN0cmluZyYgdGV4dCwgaW50IGlucHV0TW9kZSwgRXZlbnQqIHRyaWdnZXJpbmdFdmVudCkK
K3sKKyAgICByZXR1cm4gbV9mcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZVRleHRJbnB1dEV2
ZW50KHRleHQsIGlucHV0TW9kZSwgdHJpZ2dlcmluZ0V2ZW50KTsKK30KKwogYm9vbCBFZGl0b3I6
Omluc2VydFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBFdmVudCogdHJpZ2dlcmluZ0V2ZW50KQog
ewotICAgIHJldHVybiBtX2ZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlVGV4dElucHV0RXZl
bnQodGV4dCwgdHJpZ2dlcmluZ0V2ZW50KTsKKyAgICByZXR1cm4gaW5zZXJ0VGV4dCh0ZXh0LCBU
ZXh0RXZlbnQ6OkRPTV9JTlBVVF9NRVRIT0RfS0VZQk9BUkQsIHRyaWdnZXJpbmdFdmVudCk7CiB9
CiAKIGJvb2wgRWRpdG9yOjppbnNlcnRUZXh0V2l0aG91dFNlbmRpbmdUZXh0RXZlbnQoY29uc3Qg
U3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgRXZlbnQqIHRyaWdnZXJpbmdF
dmVudCkKQEAgLTE0MDIsNyArMTQwOCw3IEBAIHZvaWQgRWRpdG9yOjpjb25maXJtQ29tcG9zaXRp
b24oY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHByZXNlcnZlU2VsZWN0aW9uKQogICAgIG1fY29t
cG9zaXRpb25Ob2RlID0gMDsKICAgICBtX2N1c3RvbUNvbXBvc2l0aW9uVW5kZXJsaW5lcy5jbGVh
cigpOwogCi0gICAgaW5zZXJ0VGV4dCh0ZXh0LCAwKTsKKyAgICBpbnNlcnRUZXh0KHRleHQsIFRl
eHRFdmVudDo6RE9NX0lOUFVUX01FVEhPRF9JTUUsIDApOwogCiAgICAgaWYgKHByZXNlcnZlU2Vs
ZWN0aW9uKSB7CiAgICAgICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24ob2xk
U2VsZWN0aW9uLCBmYWxzZSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IGNkMWIyMDQxNmYyYzIxNjdk
NzNjYzE5OTZmZDZkYTk3ZTc0ZmM1NmYuLjdlMjUyOWEwYjBjODc4YmM0MWM0ZGZjYzMyNjVkNzBh
NWM0NmUwZGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTE4Miw2ICsxODIsNyBAQCBwdWJsaWM6CiAgICAgQ29t
bWFuZCBjb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUsIEVkaXRvckNvbW1hbmRTb3Vy
Y2UpOwogCiAgICAgYm9vbCBpbnNlcnRUZXh0KGNvbnN0IFN0cmluZyYsIEV2ZW50KiB0cmlnZ2Vy
aW5nRXZlbnQpOworICAgIGJvb2wgaW5zZXJ0VGV4dChjb25zdCBTdHJpbmcmLCBpbnQgaW5wdXRN
b2RlLCBFdmVudCogdHJpZ2dlcmluZ0V2ZW50KTsKICAgICBib29sIGluc2VydFRleHRXaXRob3V0
U2VuZGluZ1RleHRFdmVudChjb25zdCBTdHJpbmcmLCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwg
RXZlbnQqIHRyaWdnZXJpbmdFdmVudCk7CiAgICAgYm9vbCBpbnNlcnRMaW5lQnJlYWsoKTsKICAg
ICBib29sIGluc2VydFBhcmFncmFwaFNlcGFyYXRvcigpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRl
eCAyYjEwYzZkNTljZTlhYjRiOThmMDM0OGQ3MWI0YWEzNjMwN2E1MTA5Li44ZjNjNTgxY2Q3ODE4
OWExMTI5MDBjODkxNGIyOTMyZDc5MjdkZjE4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjYy
NCw4ICsyNjI0LDE4IEBAIGNsZWFudXBEcmFnOgogfQogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NV
UFBPUlQpCiAgIAorYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRleHRJbnB1dEV2ZW50KGNvbnN0
IFN0cmluZyYgdGV4dCwgaW50IGlucHV0TW9kZSwgRXZlbnQqIHVuZGVybHlpbmdFdmVudCkKK3sK
KyAgICByZXR1cm4gaGFuZGxlVGV4dElucHV0RXZlbnQodGV4dCwgaW5wdXRNb2RlLCB1bmRlcmx5
aW5nRXZlbnQsIGZhbHNlLCBmYWxzZSk7Cit9CisKIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVU
ZXh0SW5wdXRFdmVudChjb25zdCBTdHJpbmcmIHRleHQsIEV2ZW50KiB1bmRlcmx5aW5nRXZlbnQs
IGJvb2wgaXNMaW5lQnJlYWssIGJvb2wgaXNCYWNrVGFiKQogeworICAgIHJldHVybiBoYW5kbGVU
ZXh0SW5wdXRFdmVudCh0ZXh0LCBUZXh0RXZlbnQ6OkRPTV9JTlBVVF9NRVRIT0RfS0VZQk9BUkQs
IHVuZGVybHlpbmdFdmVudCwgaXNMaW5lQnJlYWssIGlzQmFja1RhYik7Cit9CisKK2Jvb2wgRXZl
bnRIYW5kbGVyOjpoYW5kbGVUZXh0SW5wdXRFdmVudChjb25zdCBTdHJpbmcmIHRleHQsIGludCBp
bnB1dE1vZGUsIEV2ZW50KiB1bmRlcmx5aW5nRXZlbnQsIGJvb2wgaXNMaW5lQnJlYWssIGJvb2wg
aXNCYWNrVGFiKQorewogICAgIC8vIFBsYXRmb3JtcyBzaG91bGQgZGlmZmVyZW50aWF0ZSByZWFs
IGNvbW1hbmRzIGxpa2Ugc2VsZWN0QWxsIGZyb20gdGV4dCBpbnB1dCBpbiBkaXNndWlzZSAobGlr
ZSBpbnNlcnROZXdsaW5lKSwKICAgICAvLyBhbmQgYXZvaWQgZGlzcGF0Y2hpbmcgdGV4dCBpbnB1
dCBldmVudHMgZnJvbSBrZXlkb3duIGRlZmF1bHQgaGFuZGxlcnMuCiAgICAgQVNTRVJUKCF1bmRl
cmx5aW5nRXZlbnQgfHwgIXVuZGVybHlpbmdFdmVudC0+aXNLZXlib2FyZEV2ZW50KCkgfHwgc3Rh
dGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KHVuZGVybHlpbmdFdmVudCktPnR5cGUoKSA9PSBldmVu
dE5hbWVzKCkua2V5cHJlc3NFdmVudCk7CkBAIC0yNjQ0LDcgKzI2NTQsNyBAQCBib29sIEV2ZW50
SGFuZGxlcjo6aGFuZGxlVGV4dElucHV0RXZlbnQoY29uc3QgU3RyaW5nJiB0ZXh0LCBFdmVudCog
dW5kZXJseWluZ0V2ZQogICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLT52aWV3KCkp
CiAgICAgICAgIHZpZXctPnJlc2V0RGVmZXJyZWRSZXBhaW50RGVsYXkoKTsKIAotICAgIFJlZlB0
cjxUZXh0RXZlbnQ+IGV2ZW50ID0gVGV4dEV2ZW50OjpjcmVhdGUobV9mcmFtZS0+ZG9tV2luZG93
KCksIHRleHQpOworICAgIFJlZlB0cjxUZXh0RXZlbnQ+IGV2ZW50ID0gVGV4dEV2ZW50OjpjcmVh
dGUobV9mcmFtZS0+ZG9tV2luZG93KCksIHRleHQsIHN0YXRpY19jYXN0PFRleHRFdmVudDo6SW5w
dXRNb2RlPihpbnB1dE1vZGUpKTsKICAgICBldmVudC0+c2V0VW5kZXJseWluZ0V2ZW50KHVuZGVy
bHlpbmdFdmVudCk7CiAgICAgZXZlbnQtPnNldElzTGluZUJyZWFrKGlzTGluZUJyZWFrKTsKICAg
ICBldmVudC0+c2V0SXNCYWNrVGFiKGlzQmFja1RhYik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmggYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggYTQ3
MzBiYmYxNzczNmEwMTAwNWU4NmM1NGFjODNjYWY2ZTRhZGEwZi4uYTI1MzQ3ZmZjNGE3MTg1NmIz
OTkxNjM2M2UyNWZmMmRmNWNkYWE0NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5oCisrKyBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMTcyLDYgKzE3Miwx
MCBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhbmRsZVRleHRJbnB1dEV2ZW50KGNvbnN0IFN0cmlu
ZyYgdGV4dCwgRXZlbnQqIHVuZGVybHlpbmdFdmVudCA9IDAsCiAgICAgICAgIGJvb2wgaXNMaW5l
QnJlYWsgPSBmYWxzZSwgYm9vbCBpc0JhY2tUYWIgPSBmYWxzZSk7CisgICAgYm9vbCBoYW5kbGVU
ZXh0SW5wdXRFdmVudChjb25zdCBTdHJpbmcmIHRleHQsIGludCBpbnB1dE1vZGUsIEV2ZW50KiB1
bmRlcmx5aW5nRXZlbnQpOworICAgIGJvb2wgaGFuZGxlVGV4dElucHV0RXZlbnQoY29uc3QgU3Ry
aW5nJiB0ZXh0LCBpbnQgaW5wdXRNb2RlLCBFdmVudCogdW5kZXJseWluZ0V2ZW50LAorICAgICAg
ICBib29sIGlzTGluZUJyZWFrLCBib29sIGlzQmFja1RhYik7CisKICAgICB2b2lkIGRlZmF1bHRU
ZXh0SW5wdXRFdmVudEhhbmRsZXIoVGV4dEV2ZW50Kik7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQ
T1JUKQo=
</data>
<flag name="review"
          id="50552"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>