SlideShare a Scribd company logo
1 of 118
Dive Into Javascript Event




      chengjing@taobao.com
Dive Into Javascript Event




      chengjing@taobao.com
Outline

Event Type
Event Mechanism
Implement an Event Library
Event Type
Event Type
Interface Events   scroll resize focus blue ...
Event Type
Interface Events   scroll resize focus blue ...
Mouse Events       mouseover mouseout ...
Event Type
Interface Events   scroll resize focus blue ...
Mouse Events       mouseover mouseout ...
Form Events        submit reset ...
Event Type
Interface Events   scroll resize focus blue ...
Mouse Events       mouseover mouseout ...
Form Events        submit reset ...
W3C Events         dom manipulation...
Event Type
Interface Events   scroll resize focus blue ...
Mouse Events       mouseover mouseout ...
Form Events        submit reset ...
W3C Events         dom manipulation...
Microsoft Events   mouseenter mouseleave...
Mouse Event
Mouse Event
      dblclick              click

mousedown mousemove mouseover mouseout
Mouse Event
      dblclick              click

mousedown mousemove mouseover mouseout




         mouseenter mouseleave
Mouse Event
Mouse Event
Event Mechanism
Event Mechanism
Event Mechanism

   Click
Event Mechanism
Event Mechanism
Event Mechanism
Event Mechanism
Event Mechanism
Event Mechanism
Event Mechanism
Event Mechanism
Event Mechanism
Event Registration
Event Mechanism
Event Registration
Event Mechanism
Event Registration
Event Mechanism
Event Registration
Event Mechanism
Event Registration
Event Mechanism
Event Registration
Event Mechanism
Event Registration
Event Mechanism
Event Mechanism
Event Registration
Event Mechanism
Event Registration
Event Mechanism
Event Mechanism
Attention!
Event Mechanism
Attention!
Event Mechanism
Attention!




Same Parameters?
Event Mechanism
Attention!




Same Parameters?
Event Mechanism
Attention!




Same Parameters?
Event Mechanism
Event Mechanism
Same Parameters?
Event Mechanism
Same Parameters?
Event Mechanism
Same Parameters?
Event Mechanism
Same Parameters?

                   ≠
Event Mechanism
Same Parameters?

                   ≠
Event Mechanism
Same Parameters?

                   ≠
Event Mechanism
Same Parameters?

                   ≠

                   ≠
Event Mechanism
Event Mechanism
Sequence of Multiple Listeners
Event Mechanism
Sequence of Multiple Listeners
Event Mechanism
Sequence of Multiple Listeners
Event Mechanism
Sequence of Multiple Listeners




  alert(1)


  alert(2)
Event Mechanism
Sequence of Multiple Listeners




  alert(1)

             Queue
  alert(2)
Event Mechanism
Sequence of Multiple Listeners




  alert(1)

             Queue
  alert(2)
Event Mechanism
Sequence of Multiple Listeners




                                 alert(2)
  alert(1)

             Queue               alert(1)
  alert(2)
Event Mechanism
Sequence of Multiple Listeners




                                 alert(2)
  alert(1)

             Queue      Stack    alert(1)
  alert(2)
Event Mechanism
Event Mechanism
Event Object
Event Mechanism
Event Object
Event Mechanism
Event Mechanism
Turn Bubbling Off
Event Mechanism
Turn Bubbling Off
Event Mechanism
Event Mechanism
Event Target
Event Mechanism
Event Target
Event Mechanism
Event Target
Event Mechanism
Event Target
Event Mechanism
Event Target




               Target will
               always be
               element2
Event Mechanism
Event Target




                  Target will
                  always be
                  element2


e.currentTarget
Event Mechanism
Event Target




                  Target will
                  always be
                  element2


e.currentTarget
Event Mechanism
Event Target




                  Target will
                  always be
                  element2


e.currentTarget
Event Mechanism
Event Mechanism
“This” in Event
Event Mechanism
   “This” in Event
In Javascript this always refers to the “owner” of
the function we’re executing, or rather, to the
object that a function is a method of
Event Mechanism
   “This” in Event
In Javascript this always refers to the “owner” of
the function we’re executing, or rather, to the
object that a function is a method of
   Example: Register click handler on div1
Event Mechanism
   “This” in Event
In Javascript this always refers to the “owner” of
the function we’re executing, or rather, to the
object that a function is a method of
   Example: Register click handler on div1
Event Mechanism
   “This” in Event
In Javascript this always refers to the “owner” of
the function we’re executing, or rather, to the
object that a function is a method of
   Example: Register click handler on div1
Event Mechanism
   “This” in Event
In Javascript this always refers to the “owner” of
the function we’re executing, or rather, to the
object that a function is a method of
   Example: Register click handler on div1
Event Mechanism
   “This” in Event
In Javascript this always refers to the “owner” of
the function we’re executing, or rather, to the
object that a function is a method of
   Example: Register click handler on div1
Event Mechanism
   “This” in Event
In Javascript this always refers to the “owner” of
the function we’re executing, or rather, to the
object that a function is a method of
   Example: Register click handler on div1
Event Mechanism
   “This” in Event
In Javascript this always refers to the “owner” of
the function we’re executing, or rather, to the
object that a function is a method of
   Example: Register click handler on div1
Event Mechanism
   “This” in Event
In Javascript this always refers to the “owner” of
the function we’re executing, or rather, to the
object that a function is a method of
   Example: Register click handler on div1
Event Mechanism
   “This” in Event
In Javascript this always refers to the “owner” of
the function we’re executing, or rather, to the
object that a function is a method of
   Example: Register click handler on div1
Event Mechanism
   “This” in Event
In Javascript this always refers to the “owner” of
the function we’re executing, or rather, to the
object that a function is a method of
   Example: Register click handler on div1
Event Mechanism
   “This” in Event
In Javascript this always refers to the “owner” of
the function we’re executing, or rather, to the
object that a function is a method of
   Example: Register click handler on div1
Event Mechanism
   “This” in Event
In Javascript this always refers to the “owner” of
the function we’re executing, or rather, to the
object that a function is a method of
   Example: Register click handler on div1
Event Mechanism
   “This” in Event
In Javascript this always refers to the “owner” of
the function we’re executing, or rather, to the
object that a function is a method of
   Example: Register click handler on div1
Event Mechanism
   “This” in Event
In Javascript this always refers to the “owner” of
the function we’re executing, or rather, to the
object that a function is a method of
   Example: Register click handler on div1
Event Mechanism
   “This” in Event
In Javascript this always refers to the “owner” of
the function we’re executing, or rather, to the
object that a function is a method of
   Example: Register click handler on div1
Implement an Event Library
Implement an Event Library
Version One
Implement an Event Library
Version One
Implement an Event Library
Implement an Event Library
Version Two: “this”
Implement an Event Library
Version Two: “this”
Implement an Event Library
Implement an Event Library
Version Three: e and data
Implement an Event Library
Version Three: e and data
Implement an Event Library
Version Three: e and data
Implement an Event Library
Implement an Event Library
Version Three: Combine e and data
Implement an Event Library
Version Three: Combine e and data
Implement an Event Library
Version Three: Combine e and data
Implement an Event Library
Version Three: Combine e and data
Implement an Event Library
Version Three: Combine e and data

              TODO:
              Encapsulate the original
              event object
Implement an Event Library
Version Three: Combine e and data

              TODO:
              Encapsulate the original
              event object
Acknowledge
Acknowledge

   PPK: http://www.quirksmode.org

   W3C: http://www.w3.org/TR/2000/REC-DOM-Level-2-

Events-20001113/

   YUI Source Code(v2.8.1): http://developer.yahoo.com/yui/2/

   JQuery Source Code(v1.4): http://jquery.com/

   Google Closure Library: http://code.google.com/closure/

library/
Thanks!

More Related Content

Similar to Dive into javascript event

Java gui event
Java gui eventJava gui event
Java gui eventSoftNutx
 
openFrameworks 007 - events
openFrameworks 007 - eventsopenFrameworks 007 - events
openFrameworks 007 - eventsroxlu
 
ITE 1122_ Event Handling.pptx
ITE 1122_ Event Handling.pptxITE 1122_ Event Handling.pptx
ITE 1122_ Event Handling.pptxudithaisur
 
Event driven application
Event driven applicationEvent driven application
Event driven applicationChris Saylor
 
Aaai 2011 event processing tutorial
Aaai 2011 event processing tutorialAaai 2011 event processing tutorial
Aaai 2011 event processing tutorialOpher Etzion
 
event-handling.pptx
event-handling.pptxevent-handling.pptx
event-handling.pptxGood657694
 
event-handling.pptx
event-handling.pptxevent-handling.pptx
event-handling.pptxusvirat1805
 
Lab #2: Introduction to Javascript
Lab #2: Introduction to JavascriptLab #2: Introduction to Javascript
Lab #2: Introduction to JavascriptWalid Ashraf
 
JavaScript_Events.pptx
JavaScript_Events.pptxJavaScript_Events.pptx
JavaScript_Events.pptxYagna15
 
Vldb 2010 event processing tutorial
Vldb 2010 event processing tutorialVldb 2010 event processing tutorial
Vldb 2010 event processing tutorialOpher Etzion
 
Advance Java Programming(CM5I) Event handling
Advance Java Programming(CM5I) Event handlingAdvance Java Programming(CM5I) Event handling
Advance Java Programming(CM5I) Event handlingPayal Dungarwal
 
PROGRAMMING IN JAVA- unit 4-part II
PROGRAMMING IN JAVA- unit 4-part IIPROGRAMMING IN JAVA- unit 4-part II
PROGRAMMING IN JAVA- unit 4-part IISivaSankari36
 
PATTERNS06 - The .NET Event Model
PATTERNS06 - The .NET Event ModelPATTERNS06 - The .NET Event Model
PATTERNS06 - The .NET Event ModelMichael Heron
 
A Deep Dive into Spring Application Events
A Deep Dive into Spring Application EventsA Deep Dive into Spring Application Events
A Deep Dive into Spring Application EventsVMware Tanzu
 
Introj Query Pt2
Introj Query Pt2Introj Query Pt2
Introj Query Pt2kshyju
 
Event and signal driven programming
Event and signal driven programmingEvent and signal driven programming
Event and signal driven programmingElizabeth Smith
 

Similar to Dive into javascript event (20)

Java gui event
Java gui eventJava gui event
Java gui event
 
openFrameworks 007 - events
openFrameworks 007 - eventsopenFrameworks 007 - events
openFrameworks 007 - events
 
ITE 1122_ Event Handling.pptx
ITE 1122_ Event Handling.pptxITE 1122_ Event Handling.pptx
ITE 1122_ Event Handling.pptx
 
Event driven application
Event driven applicationEvent driven application
Event driven application
 
Aaai 2011 event processing tutorial
Aaai 2011 event processing tutorialAaai 2011 event processing tutorial
Aaai 2011 event processing tutorial
 
event-handling.pptx
event-handling.pptxevent-handling.pptx
event-handling.pptx
 
Javascript Browser Events.pdf
Javascript Browser Events.pdfJavascript Browser Events.pdf
Javascript Browser Events.pdf
 
event-handling.pptx
event-handling.pptxevent-handling.pptx
event-handling.pptx
 
Lab #2: Introduction to Javascript
Lab #2: Introduction to JavascriptLab #2: Introduction to Javascript
Lab #2: Introduction to Javascript
 
JavaScript_Events.pptx
JavaScript_Events.pptxJavaScript_Events.pptx
JavaScript_Events.pptx
 
Vldb 2010 event processing tutorial
Vldb 2010 event processing tutorialVldb 2010 event processing tutorial
Vldb 2010 event processing tutorial
 
Advance Java Programming(CM5I) Event handling
Advance Java Programming(CM5I) Event handlingAdvance Java Programming(CM5I) Event handling
Advance Java Programming(CM5I) Event handling
 
PROGRAMMING IN JAVA- unit 4-part II
PROGRAMMING IN JAVA- unit 4-part IIPROGRAMMING IN JAVA- unit 4-part II
PROGRAMMING IN JAVA- unit 4-part II
 
PATTERNS06 - The .NET Event Model
PATTERNS06 - The .NET Event ModelPATTERNS06 - The .NET Event Model
PATTERNS06 - The .NET Event Model
 
A Deep Dive into Spring Application Events
A Deep Dive into Spring Application EventsA Deep Dive into Spring Application Events
A Deep Dive into Spring Application Events
 
WPF Fundamentals
WPF FundamentalsWPF Fundamentals
WPF Fundamentals
 
Javascript talk1
Javascript talk1Javascript talk1
Javascript talk1
 
Introj Query Pt2
Introj Query Pt2Introj Query Pt2
Introj Query Pt2
 
Event and signal driven programming
Event and signal driven programmingEvent and signal driven programming
Event and signal driven programming
 
JAVA PROGRAMMING- GUI Programming with Swing - The Swing Buttons
JAVA PROGRAMMING- GUI Programming with Swing - The Swing ButtonsJAVA PROGRAMMING- GUI Programming with Swing - The Swing Buttons
JAVA PROGRAMMING- GUI Programming with Swing - The Swing Buttons
 

Recently uploaded

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Recently uploaded (20)

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 

Dive into javascript event

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. \n
  100. \n
  101. \n
  102. \n
  103. \n
  104. \n
  105. \n
  106. \n
  107. \n
  108. \n
  109. \n
  110. \n
  111. \n
  112. \n
  113. \n
  114. \n
  115. \n
  116. \n
  117. \n
  118. \n
  119. \n
  120. \n
  121. \n
  122. \n
  123. \n
  124. \n
  125. \n
  126. \n
  127. \n
  128. \n
  129. \n
  130. \n
  131. \n
  132. \n
  133. \n
  134. \n
  135. \n
  136. \n
  137. \n
  138. \n
  139. \n
  140. \n
  141. \n
  142. \n
  143. \n
  144. \n
  145. \n
  146. \n
  147. \n
  148. \n
  149. \n
  150. \n