SlideShare ist ein Scribd-Unternehmen logo
1 von 28
uPortal Integration
                                  in Action
                                                Jim Helwig
                          University of Wisconsin-Madison




 June 10-15, 2012

Growing Community;
Growing Possibilities
Where I’m Coming From



                 2012 Jasig Sakai Conference   2
Me
   Not a developer :-(
   But I know a lot of developers
   Managing portal related team
   uPortal Steering Committee Chair




                                       2012 Jasig Sakai Conference   3
My UW-Madison/My UW System
   uPortal for 6+ years
   80,000 users
   13 campuses
   13 virtual portals in the same portal instance
   100+ portlets
   Dozens of backend systems





                                         2012 Jasig Sakai Conference   4
User Experience Options



                  2012 Jasig Sakai Conference   5
Links




        2012 Jasig Sakai Conference   6
Lists




        2012 Jasig Sakai Conference   7
Notifications




               2012 Jasig Sakai Conference   8
Dashboards




             2012 Jasig Sakai Conference   9
Embedded




           2012 Jasig Sakai Conference   10
Techniques



             2012 Jasig Sakai Conference   11
Bookmarks
   Quick configuration
   Aggregate from across
    campus




                            2012 Jasig Sakai Conference   12
Dynamic Menu Portlet
   Persisted in database
   Leverage groups/roles
   Allows for delegation




                            2012 Jasig Sakai Conference   13
Simple Content Management
   Quick configuration
   WYSIWYG editor
   Richer presentation




                          2012 Jasig Sakai Conference   14
RSS Feeds
   Quick configuration
   Reuse existing content
   Content managed remotely




                               2012 Jasig Sakai Conference   15
Notifications Portlet
   API for inserting notifications
   Aggregate from multiple sources




                                      2012 Jasig Sakai Conference   16
IFrames
   Quick configuration
   Works with SSO
   Content managed remotely




                               2012 Jasig Sakai Conference   17
Web Proxy Portlet
   Easy configuration
   Caching options
   Content remotely
    managed
   Pass along attributes
   AuthN options
   Statefull app
   Language flexibility




                            2012 Jasig Sakai Conference   18
Web Proxy Portlet




                    2012 Jasig Sakai Conference   19
Custom, Native Portlets
   Tailored, richer user experience
   Inter-portlet communication




                                       2012 Jasig Sakai Conference   20
Custom Native Portlets




                         2012 Jasig Sakai Conference   21
Data Sources



               2012 Jasig Sakai Conference   22
Data Access Object Layer
   Flexible                    App
                              Business
   Plug-able                 Objects
   Aggregate

                         Data Access Layer




                Datasource   Datasource       Datasource




                                          2012 Jasig Sakai Conference   23
Direct Database
   Known skill set      Complex queries
   Easy to manage       Security concerns
   Fast                 Various DB flavors
                         Upgrade impacts
                         Tied to source
                          availability




                                   2012 Jasig Sakai Conference   24
Web Services
   Standards            New skill set
   Documented data      More overhead
    model
   Versioned API
   AuthN/AuthZ
    options




                                   2012 Jasig Sakai Conference   25
Point-to-Point Web Services
   No middleman      Limited support by
                       source systems
                      Tied to source
                       availability
                      Complex data
                       model?
                      Scalable?
                      Harder upgrades?




                                 2012 Jasig Sakai Conference   26
Hubs and Web Services
   Better availability      Additional
   Better data model         implementation
   Better performance        layer
   Aggregate multiple       Time for thoughtful
    sources                   design
   Scalable
   Easier upgrades




                                        2012 Jasig Sakai Conference   27
Text


Questions?
Jim Helwig, jim.helwig@doit.wisc.edu




                                       2012 Jasig Sakai Conference   28

Weitere ähnliche Inhalte

Ähnlich wie uPortal Integration In Action

uPortal 4 in Action
uPortal 4 in ActionuPortal 4 in Action
uPortal 4 in ActionJim Helwig
 
OAE Developer Bootcamp
OAE Developer BootcampOAE Developer Bootcamp
OAE Developer BootcampBert Pareyn
 
Standard Issue: Preparing for the Future of Data Management
Standard Issue: Preparing for the Future of Data ManagementStandard Issue: Preparing for the Future of Data Management
Standard Issue: Preparing for the Future of Data ManagementInside Analysis
 
What's New in Bedework 3.8
What's New in Bedework 3.8What's New in Bedework 3.8
What's New in Bedework 3.8bleibson
 
Enterprise Mashups With Soa
Enterprise Mashups With SoaEnterprise Mashups With Soa
Enterprise Mashups With Soaumityalcinalp
 
ALM Integration in a Web 2.0 World
ALM Integration in a Web 2.0 WorldALM Integration in a Web 2.0 World
ALM Integration in a Web 2.0 Worldoslc
 
Why (most) softwareprojects fail silently
Why (most) softwareprojects fail silentlyWhy (most) softwareprojects fail silently
Why (most) softwareprojects fail silentlyHendrik Lösch
 
Novidades natural e adabas
Novidades natural e adabasNovidades natural e adabas
Novidades natural e adabasSoftware AG
 
I wanna' help but jira scares me....
I wanna' help but jira scares me....I wanna' help but jira scares me....
I wanna' help but jira scares me....Matt Clare
 
Open syllabusmobileraynauldatlanta2012
Open syllabusmobileraynauldatlanta2012Open syllabusmobileraynauldatlanta2012
Open syllabusmobileraynauldatlanta2012Raynauld Jacques
 
New & Emerging _ Mick Andrew _ Adding mobile and web 2.0 UIs to existing appl...
New & Emerging _ Mick Andrew _ Adding mobile and web 2.0 UIs to existing appl...New & Emerging _ Mick Andrew _ Adding mobile and web 2.0 UIs to existing appl...
New & Emerging _ Mick Andrew _ Adding mobile and web 2.0 UIs to existing appl...InSync2011
 
Cloud Modernization and Data as a Service Option
Cloud Modernization and Data as a Service OptionCloud Modernization and Data as a Service Option
Cloud Modernization and Data as a Service OptionDenodo
 
SAP Integration with Red Hat JBoss Technologies
SAP Integration with Red Hat JBoss TechnologiesSAP Integration with Red Hat JBoss Technologies
SAP Integration with Red Hat JBoss Technologieshwilming
 
Red Hat JBOSS Data Virtualization
Red Hat JBOSS Data VirtualizationRed Hat JBOSS Data Virtualization
Red Hat JBOSS Data VirtualizationDLT Solutions
 
Red Hat JBoss Data Virtualization
Red Hat JBoss Data VirtualizationRed Hat JBoss Data Virtualization
Red Hat JBoss Data VirtualizationDLT Solutions
 
Deliver Secure SQL Access for Enterprise APIs - August 29 2017
Deliver Secure SQL Access for Enterprise APIs - August 29 2017Deliver Secure SQL Access for Enterprise APIs - August 29 2017
Deliver Secure SQL Access for Enterprise APIs - August 29 2017Nishanth Kadiyala
 
Data Ninja Webinar Series: Realizing the Promise of Data Lakes
Data Ninja Webinar Series: Realizing the Promise of Data LakesData Ninja Webinar Series: Realizing the Promise of Data Lakes
Data Ninja Webinar Series: Realizing the Promise of Data LakesDenodo
 
Administration for Oracle ADF Applications
Administration for Oracle ADF ApplicationsAdministration for Oracle ADF Applications
Administration for Oracle ADF ApplicationsAndreas Koop
 
Administration von ADF Anwendungen
Administration von ADF AnwendungenAdministration von ADF Anwendungen
Administration von ADF Anwendungenenpit GmbH & Co. KG
 

Ähnlich wie uPortal Integration In Action (20)

uPortal 4 in Action
uPortal 4 in ActionuPortal 4 in Action
uPortal 4 in Action
 
OAE Developer Bootcamp
OAE Developer BootcampOAE Developer Bootcamp
OAE Developer Bootcamp
 
Standard Issue: Preparing for the Future of Data Management
Standard Issue: Preparing for the Future of Data ManagementStandard Issue: Preparing for the Future of Data Management
Standard Issue: Preparing for the Future of Data Management
 
What's New in Bedework 3.8
What's New in Bedework 3.8What's New in Bedework 3.8
What's New in Bedework 3.8
 
Enterprise Mashups With Soa
Enterprise Mashups With SoaEnterprise Mashups With Soa
Enterprise Mashups With Soa
 
ALM Integration in a Web 2.0 World
ALM Integration in a Web 2.0 WorldALM Integration in a Web 2.0 World
ALM Integration in a Web 2.0 World
 
Why (most) softwareprojects fail silently
Why (most) softwareprojects fail silentlyWhy (most) softwareprojects fail silently
Why (most) softwareprojects fail silently
 
Novidades natural e adabas
Novidades natural e adabasNovidades natural e adabas
Novidades natural e adabas
 
I wanna' help but jira scares me....
I wanna' help but jira scares me....I wanna' help but jira scares me....
I wanna' help but jira scares me....
 
Open syllabusmobileraynauldatlanta2012
Open syllabusmobileraynauldatlanta2012Open syllabusmobileraynauldatlanta2012
Open syllabusmobileraynauldatlanta2012
 
New & Emerging _ Mick Andrew _ Adding mobile and web 2.0 UIs to existing appl...
New & Emerging _ Mick Andrew _ Adding mobile and web 2.0 UIs to existing appl...New & Emerging _ Mick Andrew _ Adding mobile and web 2.0 UIs to existing appl...
New & Emerging _ Mick Andrew _ Adding mobile and web 2.0 UIs to existing appl...
 
Cloud Modernization and Data as a Service Option
Cloud Modernization and Data as a Service OptionCloud Modernization and Data as a Service Option
Cloud Modernization and Data as a Service Option
 
SAP Integration with Red Hat JBoss Technologies
SAP Integration with Red Hat JBoss TechnologiesSAP Integration with Red Hat JBoss Technologies
SAP Integration with Red Hat JBoss Technologies
 
DataWiki Semantic Enterprise Wiki v1.7.1
DataWiki Semantic Enterprise Wiki v1.7.1DataWiki Semantic Enterprise Wiki v1.7.1
DataWiki Semantic Enterprise Wiki v1.7.1
 
Red Hat JBOSS Data Virtualization
Red Hat JBOSS Data VirtualizationRed Hat JBOSS Data Virtualization
Red Hat JBOSS Data Virtualization
 
Red Hat JBoss Data Virtualization
Red Hat JBoss Data VirtualizationRed Hat JBoss Data Virtualization
Red Hat JBoss Data Virtualization
 
Deliver Secure SQL Access for Enterprise APIs - August 29 2017
Deliver Secure SQL Access for Enterprise APIs - August 29 2017Deliver Secure SQL Access for Enterprise APIs - August 29 2017
Deliver Secure SQL Access for Enterprise APIs - August 29 2017
 
Data Ninja Webinar Series: Realizing the Promise of Data Lakes
Data Ninja Webinar Series: Realizing the Promise of Data LakesData Ninja Webinar Series: Realizing the Promise of Data Lakes
Data Ninja Webinar Series: Realizing the Promise of Data Lakes
 
Administration for Oracle ADF Applications
Administration for Oracle ADF ApplicationsAdministration for Oracle ADF Applications
Administration for Oracle ADF Applications
 
Administration von ADF Anwendungen
Administration von ADF AnwendungenAdministration von ADF Anwendungen
Administration von ADF Anwendungen
 

Kürzlich hochgeladen

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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
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
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
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
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
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
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
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
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 

Kürzlich hochgeladen (20)

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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
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
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
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...
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
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
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

uPortal Integration In Action

  • 1. uPortal Integration in Action Jim Helwig University of Wisconsin-Madison June 10-15, 2012 Growing Community; Growing Possibilities
  • 2. Where I’m Coming From 2012 Jasig Sakai Conference 2
  • 3. Me  Not a developer :-(  But I know a lot of developers  Managing portal related team  uPortal Steering Committee Chair 2012 Jasig Sakai Conference 3
  • 4. My UW-Madison/My UW System  uPortal for 6+ years  80,000 users  13 campuses  13 virtual portals in the same portal instance  100+ portlets  Dozens of backend systems  2012 Jasig Sakai Conference 4
  • 5. User Experience Options 2012 Jasig Sakai Conference 5
  • 6. Links 2012 Jasig Sakai Conference 6
  • 7. Lists 2012 Jasig Sakai Conference 7
  • 8. Notifications 2012 Jasig Sakai Conference 8
  • 9. Dashboards 2012 Jasig Sakai Conference 9
  • 10. Embedded 2012 Jasig Sakai Conference 10
  • 11. Techniques 2012 Jasig Sakai Conference 11
  • 12. Bookmarks  Quick configuration  Aggregate from across campus 2012 Jasig Sakai Conference 12
  • 13. Dynamic Menu Portlet  Persisted in database  Leverage groups/roles  Allows for delegation 2012 Jasig Sakai Conference 13
  • 14. Simple Content Management  Quick configuration  WYSIWYG editor  Richer presentation 2012 Jasig Sakai Conference 14
  • 15. RSS Feeds  Quick configuration  Reuse existing content  Content managed remotely 2012 Jasig Sakai Conference 15
  • 16. Notifications Portlet  API for inserting notifications  Aggregate from multiple sources 2012 Jasig Sakai Conference 16
  • 17. IFrames  Quick configuration  Works with SSO  Content managed remotely 2012 Jasig Sakai Conference 17
  • 18. Web Proxy Portlet  Easy configuration  Caching options  Content remotely managed  Pass along attributes  AuthN options  Statefull app  Language flexibility 2012 Jasig Sakai Conference 18
  • 19. Web Proxy Portlet 2012 Jasig Sakai Conference 19
  • 20. Custom, Native Portlets  Tailored, richer user experience  Inter-portlet communication 2012 Jasig Sakai Conference 20
  • 21. Custom Native Portlets 2012 Jasig Sakai Conference 21
  • 22. Data Sources 2012 Jasig Sakai Conference 22
  • 23. Data Access Object Layer  Flexible App Business  Plug-able Objects  Aggregate Data Access Layer Datasource Datasource Datasource 2012 Jasig Sakai Conference 23
  • 24. Direct Database  Known skill set  Complex queries  Easy to manage  Security concerns  Fast  Various DB flavors  Upgrade impacts  Tied to source availability 2012 Jasig Sakai Conference 24
  • 25. Web Services  Standards  New skill set  Documented data  More overhead model  Versioned API  AuthN/AuthZ options 2012 Jasig Sakai Conference 25
  • 26. Point-to-Point Web Services  No middleman  Limited support by source systems  Tied to source availability  Complex data model?  Scalable?  Harder upgrades? 2012 Jasig Sakai Conference 26
  • 27. Hubs and Web Services  Better availability  Additional  Better data model implementation  Better performance layer  Aggregate multiple  Time for thoughtful sources design  Scalable  Easier upgrades 2012 Jasig Sakai Conference 27

Hinweis der Redaktion

  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