To be continued... Completing the lifecycle of innovation - TNC2013, 5 june 2013

453 views
390 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
453
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

To be continued... Completing the lifecycle of innovation - TNC2013, 5 june 2013

  1. 1. To be Continued…Frans WardSURFnet | MediaMosa FoundationMaastricht, 5 June 2013Completing the Lifecycle of InnovationThink Different
  2. 2. 2About me...TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsHello,my name isFrans
  3. 3. 3About me...TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands,I work atSURFnet
  4. 4. 3About me...TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands,nl.linkedin.com/in/fransward/I work atSURFnet
  5. 5. 4TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlandsthe Lifecycle of Innovation
  6. 6. 4TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsCompleting the Lifecycle of Innovation
  7. 7. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLifecycle may refer to....5(from an NREN’s standpoint)LifeCycle- and PortfolioManagement - LCPMProduct Lifecycle Management - PLMApplication LifecycleManagement - ALMSystems Development Life-Cycle - SDLC
  8. 8. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLifecycle may refer to lots of cool images6(from an NREN’s standpoint)
  9. 9. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLifecycle may refer to lots of cool images6(from an NREN’s standpoint)
  10. 10. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLifecycle may refer to lots of cool images6(from an NREN’s standpoint)
  11. 11. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLifecycle may refer to lots of cool images6(from an NREN’s standpoint)
  12. 12. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLifecycle may refer to lots of cool images6(from an NREN’s standpoint)
  13. 13. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLifecycle may refer to lots of cool images6(from an NREN’s standpoint)
  14. 14. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsToday, lifecycle refers to....7THE INNOVATION PROJECTLIFECYCLE
  15. 15. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsToday, lifecycle refers to....7THE INNOVATION PROJECTLIFECYCLE...from an NREN’spoint of view
  16. 16. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsToday, lifecycle refers to....7THE INNOVATION PROJECTLIFECYCLE...from an NREN’spoint of view...dealing with anOPEN SOURCEinnovation project
  17. 17. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLifecycle of Innovation - SURFnet style8
  18. 18. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLifecycle of Innovation - SURFnet style8Innovation phase
  19. 19. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLifecycle of Innovation - SURFnet style8Innovation phaseTechnologyAssessmentsCustomerrequirements
  20. 20. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLifecycle of Innovation - SURFnet style8Innovation phaseProof ofConceptTechnologyAssessmentsCustomerrequirements
  21. 21. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLifecycle of Innovation - SURFnet style8Innovation phaseImpactAnalysisProof ofConceptTechnologyAssessmentsCustomerrequirements
  22. 22. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLifecycle of Innovation - SURFnet style8Innovation phaseImpactAnalysisProof ofConceptTechnologyAssessmentsCustomerrequirementsServiceDevelopment
  23. 23. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLifecycle of Innovation - SURFnet style8Innovation phaseImpactAnalysisProof ofConceptServiceProductionTechnologyAssessmentsCustomerrequirementsServiceDevelopment
  24. 24. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLifecycle of Innovation - SURFnet style8Innovation phaseImpactAnalysisProof ofConceptServiceProductionServiceShutdownTechnologyAssessmentsCustomerrequirementsServiceDevelopment
  25. 25. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLifecycle of Innovation - SURFnet style8Innovation phaseImpactAnalysisProof ofConceptServiceProductionServiceShutdownTechnologyAssessmentsOperational phaseCustomerrequirementsServiceDevelopment
  26. 26. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLifecycle of Innovation - SURFnet style9Innovation phaseImpactAnalysisProof ofConceptTechnologyAssessmentsOperational phaseCustomerrequirementsServiceDevelopmentServiceShutdownServiceProductionand with some open source development added...
  27. 27. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLifecycle of Innovation - SURFnet style9Innovation phaseImpactAnalysisProof ofConceptTechnologyAssessmentsOperational phaseCustomerrequirementsServiceDevelopmentSoftwareDevelopmentServiceShutdownServiceProductionand with some open source development added...
  28. 28. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLifecycle of Innovation - SURFnet style9Innovation phaseImpactAnalysisProof ofConceptTechnologyAssessmentsOperational phaseCustomerrequirementsServiceDevelopmentSoftwareDevelopmentServiceShutdownServiceProductionSoftwareMaintenanceand with some open source development added...
  29. 29. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLifecycle of Innovation - SURFnet style9Innovation phaseImpactAnalysisProof ofConceptTechnologyAssessmentsOperational phaseCustomerrequirementsServiceDevelopmentSoftwareDevelopmentServiceShutdownSoftwareShutdown?ServiceProductionSoftwareMaintenanceand with some open source development added...
  30. 30. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLifecycle of Innovation - SURFnet style9Innovation phaseImpactAnalysisProof ofConceptTechnologyAssessmentsOperational phaseCustomerrequirementsServiceDevelopmentSoftwareDevelopmentServiceShutdownSoftwareShutdown?ServiceProductionSoftwareMaintenanceand with some open source development added...R.I.P
  31. 31. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsOpen Source Challenges10...in relation to an innovation project based lifecycleService shutdown when services becomesgenerally available in the public or commercialdomain is typical behavior for an NREN
  32. 32. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsOpen Source Challenges10...in relation to an innovation project based lifecycleService shutdown when services becomesgenerally available in the public or commercialdomain is typical behavior for an NREN‣ What to do with the open source softwarethat was developed for this service?
  33. 33. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsOpen Source Challenges10...in relation to an innovation project based lifecycleService shutdown when services becomesgenerally available in the public or commercialdomain is typical behavior for an NREN‣ What to do with the open source softwarethat was developed for this service?‣ What do you do with the intellectual propertyrights when you decide not to invest in thissoftware anymore?
  34. 34. About SURFnet...REAL LIFEEXAMPLE
  35. 35. 12Introducing MediaMosa...‣ Open Source (GPLv2)software to build aDigital Asset (=Media)Management platform (DAM)TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  36. 36. 12Introducing MediaMosa...‣ Open Source (GPLv2)software to build aDigital Asset (=Media)Management platform (DAM)TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands‣ Innovation project of theSURFnet/KennisnetInnovation program2006-2012
  37. 37. 12Introducing MediaMosa...‣ Open Source (GPLv2)software to build aDigital Asset (=Media)Management platform (DAM)TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands‣ Innovation project of theSURFnet/KennisnetInnovation program2006-2012‣ Since 2008, MediaMosa isthe basis for varioussuccessful video servicesthat SURFnet provide(d) tothe Dutch educationalsector
  38. 38. 13Media + Mosa = MediaMosaTNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  39. 39. 13Media + Mosa = MediaMosaTNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsMedia
  40. 40. 13Media + Mosa = MediaMosaThe MosasaurusTNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsMedia
  41. 41. 14MediaMosa is based on a Service Oriented ArchitectureMediaMosai.e. SURFmediaMedia Frontend Media BackendREST callsin XMLUserREST callsin XMLTNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  42. 42. 14MediaMosa is based on a Service Oriented ArchitectureMediaMosai.e. SURFmediaMedia Frontend Media BackendREST callsin XMLUserREST callsin XML➡ Common base forMediaMosa is Drupal 7TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  43. 43. 14MediaMosa is based on a Service Oriented Architecture• Flexibility by combining components• Open source and using open sourcecomponents• Scalable for future expansionMediaMosai.e. SURFmediaMedia Frontend Media BackendREST callsin XMLUserREST callsin XML➡ Common base forMediaMosa is Drupal 7TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  44. 44. 15Can haz API? YES!TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  45. 45. 15Can haz API? YES!REST based webservicesover 185, for services like...TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  46. 46. 15Can haz API? YES!• Play video• Authentication• Authorization (Play restriction)• Upload (PUT, POST, FTP)• Transcoding• Media Management: mediafiles, assets and collections• Search• Jobs• Metadata and OAI/PMH• Notification• Logging and Statistics• Stills• ....REST based webservicesover 185, for services like...TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlandshttp://mediamosa.org/api
  47. 47. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsOpen & public from the start...16(regarding an open sourceinnovation project...)https://github.com/mediamosa
  48. 48. 17Open Source is...TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlandshttp://www.flickr.com/photos/rooreynolds/8574509123/LicenseProductCommunity
  49. 49. 18Community Website & Online Demohttp://mediamosa.orgTNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  50. 50. 18Community Website & Online Demohttp://demo.mediamosa.orghttp://mediamosa.orgTNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  51. 51. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsA growing community19(from an NREN’s standpoint)Community of developersCommunity of users
  52. 52. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsRemember the Challenges?20Service shutdown when services becomes generally available in thepublic or commercial domain is typical behavior for an NREN‣ What to do with the open source softwarethat was developed for this service?‣ What do you do with the intellectualproperty rights when you decide not toinvest in this software anymore?
  53. 53. 21What are the options?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  54. 54. 21What are the options?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands‣ Do nothing
  55. 55. 21What are the options?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands‣ Do nothing‣ Store the code atSourceForge or other repo
  56. 56. 21What are the options?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands‣ Do nothing‣ Store the code atSourceForge or other repo‣ Transfer the code toDrupal/Aquia or anyother consortium
  57. 57. 21What are the options?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands‣ Do nothing‣ Store the code atSourceForge or other repo‣ Create an independent entity‣ Transfer the code toDrupal/Aquia or anyother consortium
  58. 58. 21What are the options?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands‣ Do nothing‣ Store the code atSourceForge or other repo‣ any other options?‣ Create an independent entity‣ Transfer the code toDrupal/Aquia or anyother consortium
  59. 59. 22Did we have options?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands‣ Do nothing‣ Store the code atSourceForge or other repo‣ Transfer the code toDrupal/Aquia or anyother consortium‣ Create an independent entity‣ any other options?
  60. 60. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsOur solution!23
  61. 61. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsOur solution!23Make itsustainable!
  62. 62. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsOur solution!23“An open source projectthat can support itself issustainable open source”Make itsustainable!
  63. 63. About SURFnet...MediaMosaFoundation
  64. 64. 25Founded: the MediaMosa FoundationTNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  65. 65. 26MediaMosa FoundationSteps were taken to make an independent FoundationTNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  66. 66. 26MediaMosa FoundationSteps were taken to make an independent Foundation‣ Popularity of MediaMosaa mature open source projectWhy?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  67. 67. 26MediaMosa FoundationSteps were taken to make an independent Foundation‣ Popularity of MediaMosaa mature open source projectWhy?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands‣ Making MediaMosa sustainablereaches beyond the lifecycle of innovation
  68. 68. 26MediaMosa FoundationSteps were taken to make an independent Foundation‣ Popularity of MediaMosaa mature open source projectWhy?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands‣ Continued involvement of(international) EducationalInstitutions‣ Making MediaMosa sustainablereaches beyond the lifecycle of innovation
  69. 69. 27MediaMosa Foundation‣ to guarantee the future of MediaMosa‣ to represent the interest of its users‣ to promote the use of MediaMosa‣ to bring together the international community‣ to facilitate the continued development of theplatformCore Activities:TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  70. 70. MediaMosa Community28MediaMosa Foundation GovernanceTNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  71. 71. MediaMosa Community28MediaMosa Foundation Governance...bring Time, Money or ResourcesTNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  72. 72. MediaMosa Community28MediaMosa Foundation GovernanceMediaMosa Members...bring Time, Money or ResourcesTNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  73. 73. MediaMosa Community28MediaMosa Foundation GovernanceMediaMosa MembersMediaMosaBoard• Chairman• Secretary• TreasurerCeremonial role andFinancial responsibility...bring Time, Money or ResourcesTNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  74. 74. MediaMosa Community28MediaMosa Foundation GovernanceMediaMosa MembersMediaMosaBoard• Chairman• Secretary• TreasurerMemberCouncil• Chairman• Secretary• Master CommitterCeremonial role andFinancial responsibility...bring Time, Money or ResourcesTNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  75. 75. MediaMosa Community28MediaMosa Foundation GovernanceMediaMosa MembersMediaMosaBoard• Chairman• Secretary• TreasurerMemberCouncil• Chairman• Secretary• Master CommitterCeremonial role andFinancial responsibilityOperational activities.Elected by community membersfrom community members...bring Time, Money or ResourcesCommitters• Master Committer• Backup MC• CommittersTNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  76. 76. 29Lessons (to be) LearnedLearned Lessons:✓ What are the organisational issues that need tobe addressed?✓ What does it take to successfully build an activeopen source community?✓ How can you address the internationalcommunity members?✓ How can you guarantee future commitments?✓ How do you secure financial independence andassurance?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLessonsLearned
  77. 77. 30Lessons (to be) Learned✓What are the organisational issuesthat need to be addressed?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  78. 78. 30Lessons (to be) Learned✓What are the organisational issuesthat need to be addressed?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands‣ Politics, politics, politics...
  79. 79. 30Lessons (to be) Learned✓What are the organisational issuesthat need to be addressed?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands‣ Juridical, juridical, juridical..‣ Politics, politics, politics...
  80. 80. 31Lessons (to be) LearnedTNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands✓What does it take tosuccessfully build anactive open sourcecommunity?
  81. 81. 31Lessons (to be) LearnedTNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands✓What does it take tosuccessfully build anactive open sourcecommunity?‣ You have to bewilling to invest inthe community
  82. 82. 31Lessons (to be) LearnedTNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands✓What does it take tosuccessfully build anactive open sourcecommunity?‣ You have to set thewheels in motion‣ You have to bewilling to invest inthe community
  83. 83. 31Lessons (to be) LearnedTNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands“The realization of anopen sourceproject does notguarantee thecreation of a community”✓What does it take tosuccessfully build anactive open sourcecommunity?‣ You have to set thewheels in motion‣ You have to bewilling to invest inthe community
  84. 84. 32Lessons (to be) Learned✓How can you address theinternational community members?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  85. 85. 32Lessons (to be) Learned✓How can you address theinternational community members?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands‣ Give a talk at TNC and find out
  86. 86. 33Lessons (to be) Learned✓How can you guarantee futurecommitments?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  87. 87. 33Lessons (to be) Learned✓How can you guarantee futurecommitments?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands‣ Make sure your product is being used
  88. 88. 33Lessons (to be) Learned✓How can you guarantee futurecommitments?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands‣ Make sure your product is being usedRecently added to the list of MediaMosa adopters
  89. 89. 33Lessons (to be) Learned✓How can you guarantee futurecommitments?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands‣ Make ppl understand what opensource is all about. And thatcontributing is for your own good‣ Make sure your product is being usedRecently added to the list of MediaMosa adopters
  90. 90. 34Lessons (to be) Learned✓How do you secure financialindependence and assurance?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLessons (to be) Learned
  91. 91. 34Lessons (to be) Learned✓How do you secure financialindependence and assurance?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLessons (to be) Learned‣ Donations to MediaMosaAll persons engaging with MediaMosa and contributing to it in time, money orresources are eligible to become members of the foundation.
  92. 92. 34Lessons (to be) Learned✓How do you secure financialindependence and assurance?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLessons (to be) Learned‣ Donations to MediaMosaAll persons engaging with MediaMosa and contributing to it in time, money orresources are eligible to become members of the foundation.‣ The founders SURFnet, Kennisnet and Inuits:initial start donation
  93. 93. 34Lessons (to be) Learned✓How do you secure financialindependence and assurance?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLessons (to be) Learned‣ Donations to MediaMosaAll persons engaging with MediaMosa and contributing to it in time, money orresources are eligible to become members of the foundation.‣ ‘Labeled’ Funding‣ The founders SURFnet, Kennisnet and Inuits:initial start donation
  94. 94. 34Lessons (to be) Learned✓How do you secure financialindependence and assurance?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLessons (to be) Learned‣ Donations to MediaMosaAll persons engaging with MediaMosa and contributing to it in time, money orresources are eligible to become members of the foundation.‣ Crowdbased funding‘Kickstarter’‣ ‘Labeled’ Funding‣ The founders SURFnet, Kennisnet and Inuits:initial start donation
  95. 95. 34Lessons (to be) Learned✓How do you secure financialindependence and assurance?TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsLessons (to be) Learned‣ Donations to MediaMosaAll persons engaging with MediaMosa and contributing to it in time, money orresources are eligible to become members of the foundation.‣ Crowdbased funding‘Kickstarter’‣ ‘Labeled’ Funding‣ The founders SURFnet, Kennisnet and Inuits:initial start donation
  96. 96. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsCome in... donate and join35Because -We need to do this together!
  97. 97. TNC2013 - Innovating Together - 3-6 June 2013, Maastricht, NetherlandsCome in... donate and join35Because -We need to do this together!Thank You
  98. 98. 36MediaMosa Directions and Q&AMediaMosaMediaMosaMediaMosaWWWhttp://mediamosa.orghttp://foundation.mediamosa.orgTwitterhttp://twitter.com/mediamosaOnline Demohttp://demo.mediamosa.orgForumhttp://mediamosa.org/forumSource Codehttps://github.com/mediamosaSlidesharehttp://www.slideshare.net/mediamosaTNC2013 - Innovating Together - 3-6 June 2013, Maastricht, Netherlands
  99. 99. Frans.Ward@surfnet.nlFor asustainable future...

×