SlideShare una empresa de Scribd logo
1 de 20
Categorization
of C++ Classes
    in NS2
   N S 2   U l t i m a t e . c o m
                b y
T e e r a w a t I s s a r i y a k u l
OUTLINE


Conventional Class Categorization

Simulation Class Categorization

Example: Packet transmission




                                    www.ns2ultimate.com
Conventional Class
  categorization
 Two-language structure

 NS2 consists of two languages: C++ and OTcl

 The simplest form ➠ Standalone classes

      C                           O

C.1       C.2               O.1           O.2

 C++ classes                 OTcl classes
                                      www.ns2ultimate.com
Conventional class
  categorization
But clearly, there can be more than on class
hierarchy in both the domains




        C                             O

  C.1       C.2                 O.1        O.2


  C++ classes                   OTcl classes
                                          www.ns2ultimate.com
Conventional class
        categorization
      But clearly, there can be more than on class
      hierarchy in both the domains
      D                                                P

D.1         D.2                                 P.1        P.2


                C                           O

          C.1       C.2               O.1        O.2


          C++ classes                 OTcl classes
                                                www.ns2ultimate.com
Conventional object
        categorization
      Classes in the C++ domain can be bound to
      class in the OTcl domain
      D                                                       P

D.1        D.2                                        P.1         P.2


                        C                       O

                 C.1        C.2          O.1        O.2
                                  bind
          C++ classes                          OTcl classes
                                                      www.ns2ultimate.com
Conventional class
        categorization
      And, binding can be quite arbitrary


      D                                     P


D.1        D.2                       P.1           P.2
                        bind
                        C                         O

                 C.1        C.2            O.1           O.2
                                  bind
          C++ classes                            OTcl classes
                                                           www.ns2ultimate.com
Conventional class
         categorization
       Now we have two categories of classes:
       “bound” and “standalone”
       D                                   P


 D.1       D.2                      P.1         P.2         Standalone
                       bind                                 OTcl classes
                       C                        O
Standalone
C++ classes
                 C.1       C.2            O.1         O.2
                                 bind

                                                        www.ns2ultimate.com
Conventional class
         categorization
       Now we have two categories of classes:
       “bound” and “standalone”
       D                                    P


 D.1       D.2                      P.1          P.2         Standalone
                       bind                                  OTcl classes
                                 bound
                       C                         O
Standalone                       classes
C++ classes
                 C.1       C.2             O.1         O.2
                                 bind

                                                         www.ns2ultimate.com
Conventional class
        categorization
      Bound C++ = Compiled classes

      Bound OTcl = Interpreted classes

                                                     Standalone
                    bind                             OTcl classes
                    C                      O
Standalone
C++ classes
              C.1       C.2          O.1       O.2
                              bind

                                                 www.ns2ultimate.com
Conventional class
        categorization
      Bound C++ = Compiled classes

      Bound OTcl = Interpreted classes

                                                              Standalone
                    bind                                      OTcl classes
                    C                               O
Standalone
C++ classes
              C.1         C.2             O.1           O.2
                                   bind
                        Compiled      Interpreted
                         classes        classes
                                                          www.ns2ultimate.com
Conventional class
  categorization

                C++           OTcl

             Compiled      Interpreted
  Bound
              classes        classes

Standalone   C++ classes   OTcl classes

                                www.ns2ultimate.com
OUTLINE


Conventional Class Categorization

Simulation Class Categorization

Example: Packet transmission




                                    www.ns2ultimate.com
Simulation class
          categorization
    Six main categories

Base C++ Class                       Characteristic

  TclObject                        Compiled classes

   Handler                          Default actions

  NsObject                          Receive packets

    Packet                       Packet reception event

                 Event scheduler: put events on the simulation time line
  Scheduler
                     and execute default actions at the right time.

    Others            None of the above, e.g., Routing, timers, etc.
                                                            www.ns2ultimate.com
related objects were discussed in Chapter 4. The packet-related objects will


 Simulation class
 be discussed in Chapter 8. The main helper objects will be discussed in
 Chapter 15.


  categorization
 5.1.2 C++ Class Hierarchy

 This section gives an overview of C++ class hierarchies. The entire hierarchy
 consists of over 100 C++ classes and struct data types. Here, we only show
Six main categories
 a part of the hierarchy (in Fig. 5.1). The readers are referred to [18] for the
 complete class hierarchy.


                   OTcl Interface                                     Default Action

                                   TclObject                Handler



      Simulator                PacketQueue      NsObject      AtHandler       QueueHandler

            RoutingModule
                                                       Network Component


                  Classifier                    Connector                    LanRouter


                           Uni-directional Point-to-
                           point Object Connector


                   Queue           Agent       ErrorModel       LinkDelay          Trace

 Fig. 5.1. A part of NS2 C++ class hierarchy (this chapter emphasizes on classes
                                                                   www.ns2ultimate.com
 in boxes with thick solid lines).
Simulation class
         categorization
    Six main categories
Base C++ Class                     Characteristic

  TclObject                       Compiled classes

   Handler                         Default actions

  NsObject               Receive packets (= Default action)

   Packet                      Packet reception event

                 Event scheduler: put events on the simulation time
  Scheduler
                  line and execute default actions at the right time.

   Others           None of the above, e.g., Routing, timers, etc.
                                                         www.ns2ultimate.com
OUTLINE


Conventional Class Categorization

Simulation Class Categorization

Example: Packet transmission




                                    www.ns2ultimate.com
example: packet
     transmission
Sending a packet from an Agent object to a
Queue object




                   Packet
    Agent                          Queue
                                      www.ns2ultimate.com
example: packet
     transmission
Class hierarchy
 NsObject ➠ Agent and Queue
 Event ➠ Packet
                NsObject


                 Event



                Packet
   Agent                      Queue
                                www.ns2ultimate.com
For more
 information
  about NS2

   P l e a s        e   s e e
    t h i s         b o o k
         f r        o m
     S p r i        n g e r
T. Issaraiyakul and E. Hossain, “Introduction to Network Simulator NS2”, Springer 2009

 or visit www.ns2ultimate.com

Más contenido relacionado

Destacado

Destacado (17)

20111126 ns2 installation
20111126 ns2 installation20111126 ns2 installation
20111126 ns2 installation
 
NS2: Binding C++ and OTcl variables
NS2: Binding C++ and OTcl variablesNS2: Binding C++ and OTcl variables
NS2: Binding C++ and OTcl variables
 
Trump-Style Negotiation: Powerful Strategies and Tactics for Mastering Every ...
Trump-Style Negotiation: Powerful Strategies and Tactics for Mastering Every ...Trump-Style Negotiation: Powerful Strategies and Tactics for Mastering Every ...
Trump-Style Negotiation: Powerful Strategies and Tactics for Mastering Every ...
 
20100712-OTcl Command -- Getting Started
20100712-OTcl Command -- Getting Started20100712-OTcl Command -- Getting Started
20100712-OTcl Command -- Getting Started
 
NS2 Classifiers
NS2 ClassifiersNS2 Classifiers
NS2 Classifiers
 
Intelligent entrepreneurs by Bill Murphy Jr.
Intelligent entrepreneurs by Bill Murphy Jr.Intelligent entrepreneurs by Bill Murphy Jr.
Intelligent entrepreneurs by Bill Murphy Jr.
 
Ns-2.35 Installation
Ns-2.35 InstallationNs-2.35 Installation
Ns-2.35 Installation
 
C++ classes tutorials
C++ classes tutorialsC++ classes tutorials
C++ classes tutorials
 
C++ classes
C++ classesC++ classes
C++ classes
 
Network simulator 2
Network simulator 2Network simulator 2
Network simulator 2
 
Session 1 introduction to ns2
Session 1   introduction to ns2Session 1   introduction to ns2
Session 1 introduction to ns2
 
Introduction to NS2 - Cont..
Introduction to NS2 - Cont..Introduction to NS2 - Cont..
Introduction to NS2 - Cont..
 
Use of NS-2 to Simulate MANET Routing Algorithms
Use of NS-2 to Simulate MANET Routing AlgorithmsUse of NS-2 to Simulate MANET Routing Algorithms
Use of NS-2 to Simulate MANET Routing Algorithms
 
~Ns2~
~Ns2~~Ns2~
~Ns2~
 
Ns2
Ns2Ns2
Ns2
 
Ns2programs
Ns2programsNs2programs
Ns2programs
 
Manet ns2
Manet ns2Manet ns2
Manet ns2
 

Último

Dubai Call Girls Skinny Mandy O525547819 Call Girls Dubai
Dubai Call Girls Skinny Mandy O525547819 Call Girls DubaiDubai Call Girls Skinny Mandy O525547819 Call Girls Dubai
Dubai Call Girls Skinny Mandy O525547819 Call Girls Dubaikojalkojal131
 
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiNo.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiAmil Baba Naveed Bangali
 
Unity is Strength 2024 Peace Haggadah + Song List.pdf
Unity is Strength 2024 Peace Haggadah + Song List.pdfUnity is Strength 2024 Peace Haggadah + Song List.pdf
Unity is Strength 2024 Peace Haggadah + Song List.pdfRebeccaSealfon
 
Seerah un nabi Muhammad Quiz Part-1.pdf
Seerah un nabi  Muhammad Quiz Part-1.pdfSeerah un nabi  Muhammad Quiz Part-1.pdf
Seerah un nabi Muhammad Quiz Part-1.pdfAnsariB1
 
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiNo.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiAmil Baba Mangal Maseeh
 
Amil baba in uk amil baba in Australia amil baba in canada
Amil baba in uk amil baba in Australia amil baba in canadaAmil baba in uk amil baba in Australia amil baba in canada
Amil baba in uk amil baba in Australia amil baba in canadaamil baba kala jadu
 
Amil baba kala jadu expert asli ilm ka malik
Amil baba kala jadu expert asli ilm ka malikAmil baba kala jadu expert asli ilm ka malik
Amil baba kala jadu expert asli ilm ka malikamil baba kala jadu
 
Asli amil baba in Karachi Pakistan and best astrologer Black magic specialist
Asli amil baba in Karachi Pakistan and best astrologer Black magic specialistAsli amil baba in Karachi Pakistan and best astrologer Black magic specialist
Asli amil baba in Karachi Pakistan and best astrologer Black magic specialistAmil Baba Mangal Maseeh
 
原版1:1复刻莫纳什大学毕业证Monash毕业证留信学历认证
原版1:1复刻莫纳什大学毕业证Monash毕业证留信学历认证原版1:1复刻莫纳什大学毕业证Monash毕业证留信学历认证
原版1:1复刻莫纳什大学毕业证Monash毕业证留信学历认证jdkhjh
 
Deerfoot Church of Christ Bulletin 4 21 24
Deerfoot Church of Christ Bulletin 4 21 24Deerfoot Church of Christ Bulletin 4 21 24
Deerfoot Church of Christ Bulletin 4 21 24deerfootcoc
 
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiNo.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiAmil Baba Mangal Maseeh
 
Monthly Khazina-e-Ruhaniyaat April’2024 (Vol.14, Issue 12)
Monthly Khazina-e-Ruhaniyaat April’2024 (Vol.14, Issue 12)Monthly Khazina-e-Ruhaniyaat April’2024 (Vol.14, Issue 12)
Monthly Khazina-e-Ruhaniyaat April’2024 (Vol.14, Issue 12)Darul Amal Chishtia
 
The Chronological Life of Christ part 097 (Reality Check Luke 13 1-9).pptx
The Chronological Life of Christ part 097 (Reality Check Luke 13 1-9).pptxThe Chronological Life of Christ part 097 (Reality Check Luke 13 1-9).pptx
The Chronological Life of Christ part 097 (Reality Check Luke 13 1-9).pptxNetwork Bible Fellowship
 
Unity is Strength 2024 Peace Haggadah_For Digital Viewing.pdf
Unity is Strength 2024 Peace Haggadah_For Digital Viewing.pdfUnity is Strength 2024 Peace Haggadah_For Digital Viewing.pdf
Unity is Strength 2024 Peace Haggadah_For Digital Viewing.pdfRebeccaSealfon
 
Asli amil baba near you 100%kala ilm ka mahir
Asli amil baba near you 100%kala ilm ka mahirAsli amil baba near you 100%kala ilm ka mahir
Asli amil baba near you 100%kala ilm ka mahirAmil Baba Mangal Maseeh
 
Sawwaf Calendar, 2024
Sawwaf Calendar, 2024Sawwaf Calendar, 2024
Sawwaf Calendar, 2024Bassem Matta
 
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiNo.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiAmil Baba Mangal Maseeh
 
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiNo.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiAmil Baba Naveed Bangali
 

Último (20)

St. Louise de Marillac: Animator of the Confraternities of Charity
St. Louise de Marillac: Animator of the Confraternities of CharitySt. Louise de Marillac: Animator of the Confraternities of Charity
St. Louise de Marillac: Animator of the Confraternities of Charity
 
Dubai Call Girls Skinny Mandy O525547819 Call Girls Dubai
Dubai Call Girls Skinny Mandy O525547819 Call Girls DubaiDubai Call Girls Skinny Mandy O525547819 Call Girls Dubai
Dubai Call Girls Skinny Mandy O525547819 Call Girls Dubai
 
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiNo.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
 
young Whatsapp Call Girls in Adarsh Nagar🔝 9953056974 🔝 escort service
young Whatsapp Call Girls in Adarsh Nagar🔝 9953056974 🔝 escort serviceyoung Whatsapp Call Girls in Adarsh Nagar🔝 9953056974 🔝 escort service
young Whatsapp Call Girls in Adarsh Nagar🔝 9953056974 🔝 escort service
 
Unity is Strength 2024 Peace Haggadah + Song List.pdf
Unity is Strength 2024 Peace Haggadah + Song List.pdfUnity is Strength 2024 Peace Haggadah + Song List.pdf
Unity is Strength 2024 Peace Haggadah + Song List.pdf
 
Seerah un nabi Muhammad Quiz Part-1.pdf
Seerah un nabi  Muhammad Quiz Part-1.pdfSeerah un nabi  Muhammad Quiz Part-1.pdf
Seerah un nabi Muhammad Quiz Part-1.pdf
 
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiNo.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
 
Amil baba in uk amil baba in Australia amil baba in canada
Amil baba in uk amil baba in Australia amil baba in canadaAmil baba in uk amil baba in Australia amil baba in canada
Amil baba in uk amil baba in Australia amil baba in canada
 
Amil baba kala jadu expert asli ilm ka malik
Amil baba kala jadu expert asli ilm ka malikAmil baba kala jadu expert asli ilm ka malik
Amil baba kala jadu expert asli ilm ka malik
 
Asli amil baba in Karachi Pakistan and best astrologer Black magic specialist
Asli amil baba in Karachi Pakistan and best astrologer Black magic specialistAsli amil baba in Karachi Pakistan and best astrologer Black magic specialist
Asli amil baba in Karachi Pakistan and best astrologer Black magic specialist
 
原版1:1复刻莫纳什大学毕业证Monash毕业证留信学历认证
原版1:1复刻莫纳什大学毕业证Monash毕业证留信学历认证原版1:1复刻莫纳什大学毕业证Monash毕业证留信学历认证
原版1:1复刻莫纳什大学毕业证Monash毕业证留信学历认证
 
Deerfoot Church of Christ Bulletin 4 21 24
Deerfoot Church of Christ Bulletin 4 21 24Deerfoot Church of Christ Bulletin 4 21 24
Deerfoot Church of Christ Bulletin 4 21 24
 
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiNo.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
 
Monthly Khazina-e-Ruhaniyaat April’2024 (Vol.14, Issue 12)
Monthly Khazina-e-Ruhaniyaat April’2024 (Vol.14, Issue 12)Monthly Khazina-e-Ruhaniyaat April’2024 (Vol.14, Issue 12)
Monthly Khazina-e-Ruhaniyaat April’2024 (Vol.14, Issue 12)
 
The Chronological Life of Christ part 097 (Reality Check Luke 13 1-9).pptx
The Chronological Life of Christ part 097 (Reality Check Luke 13 1-9).pptxThe Chronological Life of Christ part 097 (Reality Check Luke 13 1-9).pptx
The Chronological Life of Christ part 097 (Reality Check Luke 13 1-9).pptx
 
Unity is Strength 2024 Peace Haggadah_For Digital Viewing.pdf
Unity is Strength 2024 Peace Haggadah_For Digital Viewing.pdfUnity is Strength 2024 Peace Haggadah_For Digital Viewing.pdf
Unity is Strength 2024 Peace Haggadah_For Digital Viewing.pdf
 
Asli amil baba near you 100%kala ilm ka mahir
Asli amil baba near you 100%kala ilm ka mahirAsli amil baba near you 100%kala ilm ka mahir
Asli amil baba near you 100%kala ilm ka mahir
 
Sawwaf Calendar, 2024
Sawwaf Calendar, 2024Sawwaf Calendar, 2024
Sawwaf Calendar, 2024
 
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiNo.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
 
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiNo.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
 

Categorization of C++ Classes in NS2

  • 1. Categorization of C++ Classes in NS2 N S 2 U l t i m a t e . c o m b y T e e r a w a t I s s a r i y a k u l
  • 2. OUTLINE Conventional Class Categorization Simulation Class Categorization Example: Packet transmission www.ns2ultimate.com
  • 3. Conventional Class categorization Two-language structure NS2 consists of two languages: C++ and OTcl The simplest form ➠ Standalone classes C O C.1 C.2 O.1 O.2 C++ classes OTcl classes www.ns2ultimate.com
  • 4. Conventional class categorization But clearly, there can be more than on class hierarchy in both the domains C O C.1 C.2 O.1 O.2 C++ classes OTcl classes www.ns2ultimate.com
  • 5. Conventional class categorization But clearly, there can be more than on class hierarchy in both the domains D P D.1 D.2 P.1 P.2 C O C.1 C.2 O.1 O.2 C++ classes OTcl classes www.ns2ultimate.com
  • 6. Conventional object categorization Classes in the C++ domain can be bound to class in the OTcl domain D P D.1 D.2 P.1 P.2 C O C.1 C.2 O.1 O.2 bind C++ classes OTcl classes www.ns2ultimate.com
  • 7. Conventional class categorization And, binding can be quite arbitrary D P D.1 D.2 P.1 P.2 bind C O C.1 C.2 O.1 O.2 bind C++ classes OTcl classes www.ns2ultimate.com
  • 8. Conventional class categorization Now we have two categories of classes: “bound” and “standalone” D P D.1 D.2 P.1 P.2 Standalone bind OTcl classes C O Standalone C++ classes C.1 C.2 O.1 O.2 bind www.ns2ultimate.com
  • 9. Conventional class categorization Now we have two categories of classes: “bound” and “standalone” D P D.1 D.2 P.1 P.2 Standalone bind OTcl classes bound C O Standalone classes C++ classes C.1 C.2 O.1 O.2 bind www.ns2ultimate.com
  • 10. Conventional class categorization Bound C++ = Compiled classes Bound OTcl = Interpreted classes Standalone bind OTcl classes C O Standalone C++ classes C.1 C.2 O.1 O.2 bind www.ns2ultimate.com
  • 11. Conventional class categorization Bound C++ = Compiled classes Bound OTcl = Interpreted classes Standalone bind OTcl classes C O Standalone C++ classes C.1 C.2 O.1 O.2 bind Compiled Interpreted classes classes www.ns2ultimate.com
  • 12. Conventional class categorization C++ OTcl Compiled Interpreted Bound classes classes Standalone C++ classes OTcl classes www.ns2ultimate.com
  • 13. OUTLINE Conventional Class Categorization Simulation Class Categorization Example: Packet transmission www.ns2ultimate.com
  • 14. Simulation class categorization Six main categories Base C++ Class Characteristic TclObject Compiled classes Handler Default actions NsObject Receive packets Packet Packet reception event Event scheduler: put events on the simulation time line Scheduler and execute default actions at the right time. Others None of the above, e.g., Routing, timers, etc. www.ns2ultimate.com
  • 15. related objects were discussed in Chapter 4. The packet-related objects will Simulation class be discussed in Chapter 8. The main helper objects will be discussed in Chapter 15. categorization 5.1.2 C++ Class Hierarchy This section gives an overview of C++ class hierarchies. The entire hierarchy consists of over 100 C++ classes and struct data types. Here, we only show Six main categories a part of the hierarchy (in Fig. 5.1). The readers are referred to [18] for the complete class hierarchy. OTcl Interface Default Action TclObject Handler Simulator PacketQueue NsObject AtHandler QueueHandler RoutingModule Network Component Classifier Connector LanRouter Uni-directional Point-to- point Object Connector Queue Agent ErrorModel LinkDelay Trace Fig. 5.1. A part of NS2 C++ class hierarchy (this chapter emphasizes on classes www.ns2ultimate.com in boxes with thick solid lines).
  • 16. Simulation class categorization Six main categories Base C++ Class Characteristic TclObject Compiled classes Handler Default actions NsObject Receive packets (= Default action) Packet Packet reception event Event scheduler: put events on the simulation time Scheduler line and execute default actions at the right time. Others None of the above, e.g., Routing, timers, etc. www.ns2ultimate.com
  • 17. OUTLINE Conventional Class Categorization Simulation Class Categorization Example: Packet transmission www.ns2ultimate.com
  • 18. example: packet transmission Sending a packet from an Agent object to a Queue object Packet Agent Queue www.ns2ultimate.com
  • 19. example: packet transmission Class hierarchy NsObject ➠ Agent and Queue Event ➠ Packet NsObject Event Packet Agent Queue www.ns2ultimate.com
  • 20. For more information about NS2 P l e a s e s e e t h i s b o o k f r o m S p r i n g e r T. Issaraiyakul and E. Hossain, “Introduction to Network Simulator NS2”, Springer 2009 or visit www.ns2ultimate.com

Notas del editor

  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