Remove trailing whitespace
authorMichael McMahon <michael@fsf.org>
Wed, 27 Mar 2024 19:50:15 +0000 (15:50 -0400)
committerMichael McMahon <michael@fsf.org>
Wed, 27 Mar 2024 19:50:15 +0000 (15:50 -0400)
286 files changed:
2009/index.html
2010/friday/index.html
2010/index.html
2010/saturday/index.html
2010/sunday/index.html
2011/OpenLayers.js
2011/index.html
2011/js
2011/screen.css
2011/skins/CologneBlue.php
2011/skins/Modern.php
2011/skins/Standard.php
2011/skins/chick/IE50Fixes.css
2011/skins/chick/IE55Fixes.css
2011/skins/chick/IE60Fixes.css
2011/skins/chick/main.css
2011/skins/common/IEFixes.js
2011/skins/common/ajax.js
2011/skins/common/ajaxwatch.js
2011/skins/common/block.js
2011/skins/common/commonPrint.css
2011/skins/common/common_rtl.css
2011/skins/common/diff.css
2011/skins/common/edit.js
2011/skins/common/enhancedchanges.js
2011/skins/common/oldshared.css
2011/skins/common/preview.js
2011/skins/common/protect.js
2011/skins/common/shared.css
2011/skins/common/sticky.js
2011/skins/common/upload.js
2011/skins/common/wikibits.js
2011/skins/disabled/MonoBook.tpl
2011/skins/disabled/MonoBookCBT.php
2011/skins/monobook/IE50Fixes.css
2011/skins/monobook/IE55Fixes.css
2011/skins/monobook/IE60Fixes.css
2011/skins/monobook/IE70Fixes.css
2011/skins/monobook/IEMacFixes.css
2011/skins/monobook/main.css
2011/skins/monobook/rtl.css
2011/skins/simple/rtl.css
2011/wiki.css
2014/assets/css/custom.css
2014/assets/fonts/glyphicons-halflings-regular.svg
2014/assets/js/Common.js
2014/assets/js/jquery.autocomplete.js
2014/assets/js/jquery.blockUI.js
2014/assets/js/jquery.crmasmselect.js
2014/assets/js/jquery.crmeditable.js
2014/assets/js/jquery.dataTables.min.js
2014/assets/js/jquery.form.js
2014/assets/js/jquery.tableHeader.js
2014/assets/js/jquery.tokeninput.js
2015/assets/css/jquery-ui-1.9.0.custom.css
2015/assets/fonts/glyphicons-halflings-regular.svg
2015/assets/js/jquery-ui-1.9.0.custom.js
2015/assets/js/jquery.feeds.js
2015/assets/js/jquery.feeds.min.js
2015/assets/js/jquery.form-3.25.0.js
2015/assets/js/mithril.js
2015/assets/js/tweetie/api/config.php
2015/assets/js/tweetie/api/tweet.php
2015/assets/js/tweetie/api/twitteroauth/OAuth.php
2015/assets/js/tweetie/api/twitteroauth/twitteroauth.php
2016/assets/css/jquery-ui-1.9.0.custom.css
2016/assets/fonts/glyphicons-halflings-regular.svg
2016/assets/js/engine.io.bundle.js
2016/assets/js/jquery-ui-1.9.0.custom.js
2016/assets/js/jquery.feeds.js
2016/assets/js/jquery.feeds.min.js
2016/assets/js/jquery.form-3.25.0.js
2016/assets/js/kiwi.js
2016/assets/js/mithril.js
2016/assets/js/stream.js
2016/assets/js/tweetie/api/config.php
2016/assets/js/tweetie/api/tweet.php
2016/assets/js/tweetie/api/twitteroauth/OAuth.php
2016/assets/js/tweetie/api/twitteroauth/twitteroauth.php
2016/includes/live_sidebar.html
2016/index.html
2016/js-labels/index.html
2016/speakers.ids
2016/speakers.noids
2017/assets/css/jquery-ui-1.9.0.custom.css
2017/assets/fonts/glyphicons-halflings-regular.svg
2017/assets/js/engine.io.bundle.js
2017/assets/js/jquery-ui-1.9.0.custom.js
2017/assets/js/jquery.feeds.js
2017/assets/js/jquery.feeds.min.js
2017/assets/js/jquery.form-3.25.0.js
2017/assets/js/mithril.js
2017/assets/js/tweetie/api/config.php
2017/assets/js/tweetie/api/tweet.php
2017/assets/js/tweetie/api/twitteroauth/OAuth.php
2017/assets/js/tweetie/api/twitteroauth/twitteroauth.php
2017/program/generated-bios.html
2017/speakers.ids
2018/assets/css/jquery-ui-1.9.0.custom.css
2018/assets/fonts/glyphicons-halflings-regular.svg
2018/assets/js/engine.io.bundle.js
2018/assets/js/jquery-ui-1.9.0.custom.js
2018/assets/js/jquery.feeds.js
2018/assets/js/jquery.feeds.min.js
2018/assets/js/jquery.form-3.25.0.js
2018/assets/js/mithril.js
2018/assets/js/tweetie/api/config.php
2018/assets/js/tweetie/api/tweet.php
2018/assets/js/tweetie/api/twitteroauth/OAuth.php
2018/assets/js/tweetie/api/twitteroauth/twitteroauth.php
2018/includes/sidebar.html
2018/includes/speakers.ids
2018/index.html
2018/social/index.html
2018/speakers/speakers.ids
2018/sponsors/index.html
2019/assets/css/jquery-ui-1.9.0.custom.css
2019/assets/fonts/glyphicons-halflings-regular.svg
2019/assets/js/engine.io.bundle.js
2019/assets/js/jquery-ui-1.9.0.custom.js
2019/assets/js/jquery.feeds.js
2019/assets/js/jquery.feeds.min.js
2019/assets/js/jquery.form-3.25.0.js
2019/assets/js/mithril.js
2019/assets/js/tweetie/api/config.php
2019/assets/js/tweetie/api/tweet.php
2019/assets/js/tweetie/api/twitteroauth/OAuth.php
2019/assets/js/tweetie/api/twitteroauth/twitteroauth.php
2019/includes/generated-sessions.html
2019/index.html
2019/program/grid-schedule.html
2019/raffle/index.html
2019/speakers/speakers.ids
2019/sponsors/index.html
2020/assets/css/custom.css
2020/assets/css/jquery-ui-1.9.0.custom.css
2020/assets/fonts/glyphicons-halflings-regular.svg
2020/assets/js/engine.io.bundle.js
2020/assets/js/jquery-ui-1.9.0.custom.js
2020/assets/js/jquery.feeds.js
2020/assets/js/jquery.feeds.min.js
2020/assets/js/jquery.form-3.25.0.js
2020/assets/js/mithril.js
2020/assets/js/tweetie/api/config.php
2020/assets/js/tweetie/api/tweet.php
2020/assets/js/tweetie/api/twitteroauth/OAuth.php
2020/assets/js/tweetie/api/twitteroauth/twitteroauth.php
2020/confirmation.mdwn
2020/feedback-closed.mdwn
2020/feedback-confirmation.mdwn
2020/fun/index.html
2020/fun/index.mdwn
2020/getting-around/index.html
2020/includes/generated-bios.html
2020/includes/generated-sessions.html
2020/index.html
2020/live/index.html
2020/raffle/index.html
2020/sponsors/index.html
2020/walkup-registration.html
2020/walkup-registration.mdwn
2021/assets/css/custom.css
2021/assets/css/jquery-ui-1.9.0.custom.css
2021/assets/fonts/glyphicons-halflings-regular.svg
2021/assets/js/engine.io.bundle.js
2021/assets/js/jquery-ui-1.9.0.custom.js
2021/assets/js/jquery.feeds.js
2021/assets/js/jquery.feeds.min.js
2021/assets/js/jquery.form-3.25.0.js
2021/assets/js/mithril.js
2021/assets/js/tweetie/api/config.php
2021/assets/js/tweetie/api/tweet.php
2021/assets/js/tweetie/api/twitteroauth/OAuth.php
2021/assets/js/tweetie/api/twitteroauth/twitteroauth.php
2021/getting-around/index.html
2021/includes/footer.html
2021/includes/generated-bios.html
2021/includes/generated-sessions.html
2021/includes/join-list.html
2021/index.html
2021/lp2021-schedule.xml
2021/raffle/index.html
2021/registered/chill/index.html
2021/registered/exhibitors/eff/index.html
2021/registered/exhibitors/index.html
2021/registered/workshops/index.html
2021/sponsors/index.html
2021/walkup-registration.html
2021/workshops/index.html
2022/assets/css/custom.css
2022/assets/css/jquery-ui-1.9.0.custom.css
2022/assets/fonts/glyphicons-halflings-regular.svg
2022/assets/js/engine.io.bundle.js
2022/assets/js/jquery-ui-1.9.0.custom.js
2022/assets/js/jquery.feeds.js
2022/assets/js/jquery.feeds.min.js
2022/assets/js/jquery.form-3.25.0.js
2022/assets/js/mithril.js
2022/assets/js/tweetie/api/config.php
2022/assets/js/tweetie/api/tweet.php
2022/assets/js/tweetie/api/twitteroauth/OAuth.php
2022/assets/js/tweetie/api/twitteroauth/twitteroauth.php
2022/feedback-closed.mdwn
2022/feedback-confirmation.mdwn
2022/fun/index.html
2022/getting-around/index.html
2022/includes/generated-bios.html
2022/includes/generated-sessions.html
2022/includes/home-content.html
2022/includes/nav-list-1.html
2022/includes/nav-list-2.html
2022/index.html
2022/raffle/index.html
2022/sponsors/index.html
2022/sponsors/spruce/index.html
2022/walkup-registration.html
2022/walkup-registration.mdwn
2023/assets/css/custom.css
2023/assets/css/jquery-ui-1.9.0.custom.css
2023/assets/fonts/glyphicons-halflings-regular.svg
2023/assets/js/engine.io.bundle.js
2023/assets/js/jquery-ui-1.9.0.custom.js
2023/assets/js/jquery.feeds.js
2023/assets/js/jquery.feeds.min.js
2023/assets/js/jquery.form-3.25.0.js
2023/assets/js/mithril.js
2023/assets/js/tweetie/api/config.php
2023/assets/js/tweetie/api/tweet.php
2023/assets/js/tweetie/api/twitteroauth/OAuth.php
2023/assets/js/tweetie/api/twitteroauth/twitteroauth.php
2023/confirmation.mdwn
2023/feedback-closed.mdwn
2023/feedback-confirmation.mdwn
2023/fun/index.html
2023/getting-around/index.html
2023/includes/generated-bios.html
2023/includes/generated-sessions.html
2023/includes/home-content.html
2023/includes/live_sidebar.html
2023/includes/nav-list-2.html
2023/includes/recent-updates.html
2023/index.html
2023/live/index.html
2023/raffle/index.html
2023/sponsors/index.html
2023/walkup-registration.html
2023/walkup-registration.mdwn
2024/assets/css/custom.css
2024/assets/css/jquery-ui-1.9.0.custom.css
2024/assets/fonts/glyphicons-halflings-regular.svg
2024/assets/img/logo.svg
2024/assets/img/pattern-1.svg
2024/assets/js/engine.io.bundle.js
2024/assets/js/jquery-ui-1.9.0.custom.js
2024/assets/js/jquery.feeds.js
2024/assets/js/jquery.feeds.min.js
2024/assets/js/jquery.form-3.25.0.js
2024/assets/js/mithril.js
2024/assets/js/tweetie/api/config.php
2024/assets/js/tweetie/api/tweet.php
2024/assets/js/tweetie/api/twitteroauth/OAuth.php
2024/assets/js/tweetie/api/twitteroauth/twitteroauth.php
2024/assets/pattern-1.svg
2024/confirmation.mdwn
2024/feedback-closed.mdwn
2024/feedback-confirmation.mdwn
2024/getting-around/index.html
2024/includes/live_sidebar.html
2024/includes/nav-list-1.html
2024/includes/nav-list-2.html
2024/includes/recent-updates.html
2024/index.html
2024/live/index.html
2024/other-activities/index.html
2024/raffle/index.html
2024/sponsors/index.html
2024/walkup-registration.html
2024/walkup-registration.mdwn
events.php
server/staging/lpc14/custom.css
server/staging/lpc14/goblintest.html
server/staging/lpc14/index.html
server/staging/lpc14/index.logo.nav.html
server/staging/lpc14/program/index.html
server/staging/lpc14/speakers/index.html
server/staging/ssi/index.html

index 1a8b03c7dc700b5ae75910078dd65c50d97aecae..af1ba65aafdcaf306cfaf6fea23e9e1333217a8d 100644 (file)
@@ -29,7 +29,7 @@
 
 </div>
 
-<a name="Event_schedule"></a><h2> Event schedule </h2>  
+<a name="Event_schedule"></a><h2> Event schedule </h2>
 <a name="Lecture_Hall_A"></a><h4> Lecture Hall A </h4>
 
 <ul><li> 9:30 - 10:00 Breakfast and registration
 
 <p>Saturday 18:00 - 21:00 -- FSF Social, at Redline pub in Harvard Square
 </p>
-<a name="Sunday.2C_March_22nd"></a><h3>Sunday, March 22nd</h3>  
+<a name="Sunday.2C_March_22nd"></a><h3>Sunday, March 22nd</h3>
 
-<ul><li>  9:30-10:00 -- Welcome and Breakfast  
+<ul><li>  9:30-10:00 -- Welcome and Breakfast
 </li><li>  <a href="http://static.fsf.org/nosvn/Matt_Lee,_Deborah_Nicholson,_Rob_Myers_-_LibrePlanet_Unconference_Start_-_LibrePlanet_2009.ogg">10:00-11:00 -- Routing for the day</a>
-</li><li>  11:00-5:00 -- Lunch and <a href="http://groups.fsf.org/index.php/LibrePlanet2009/OpenConference" title="LibrePlanet2009/OpenConference">Open Conference</a>, feel free to edit the wiki with stuff you are thinking of doing.  
+</li><li>  11:00-5:00 -- Lunch and <a href="http://groups.fsf.org/index.php/LibrePlanet2009/OpenConference" title="LibrePlanet2009/OpenConference">Open Conference</a>, feel free to edit the wiki with stuff you are thinking of doing.
 </li>
 <li>5:30 -- <a href="http://static.fsf.org/nosvn/Matt_Lee,_Deborah_Nicholson,_Rob_Myers_-_LibrePlanet_End_of_Unconference_-_LibrePlanet_2009.ogg">End of Unconference (with special musical guest, Kat Walsh)</a></li></ul>
 <p></p><h4>Room 113 and 112 Floss Manuals</h4>
index 249e0f372b16185d2fc0406993d047cfc439aaca..8abce6b5672a3247266893d560f510ce56a04028 100644 (file)
@@ -2,7 +2,7 @@
 <html>
 <head>
    <title>LibrePlanet 2010</title>
-   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
+   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css" media="screen">
 
    @import url('http://static.fsf.org/combo.css');
@@ -54,7 +54,7 @@ body,html { margin: 0 !important; padding: 0 !important;}
    </style>
 </head>
 <body>
-<div id="doc2" class="yui-t7"> 
+<div id="doc2" class="yui-t7">
 <div id="hd">
 <h1><img src="/2010/i/lp2010.png" alt="LibrePlanet" /></h1>
 </div>
@@ -65,10 +65,10 @@ body,html { margin: 0 !important; padding: 0 !important;}
 
        <div class="yui-g">
 <h2><img src="/2010/i/threedays.png" alt="Three days of free software activism"/></h2>
-         
+
        </div>
     <div class="yui-g" id="days">
-      
+
          <h3>Friday</h3>
 <ul>
 <li>Intro to the<br>command line</li>
index fb4e0f7ebc40f0be18a775fc31669c2c92aebe5a..839312a9813ed827cebed7a8a020964939adaef4 100644 (file)
@@ -2,7 +2,7 @@
 <html>
 <head>
    <title>LibrePlanet 2010</title>
-   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
+   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css" media="screen">
 
    @import url('http://static.fsf.org/combo.css');
@@ -47,12 +47,12 @@ body,html { margin: 0 !important; padding: 0 !important;}
 
 #saturday {background-color: #aaccee;}
 
-#sunday {background-color: #98fc66;}  
+#sunday {background-color: #98fc66;}
 
    </style>
 </head>
 <body>
-<div id="doc2" class="yui-t7"> 
+<div id="doc2" class="yui-t7">
 <div id="hd">
 <h1><img src="i/lp2010.png" alt="LibrePlanet" /></h1>
 </div>
@@ -63,7 +63,7 @@ body,html { margin: 0 !important; padding: 0 !important;}
 
        <div class="yui-g">
 <h2><img src="i/threedays.png" alt="Three days of free software activism"/></h2>
-         
+
        </div>
     <div class="yui-gb" id="days">
         <div class="yui-u first" id="friday">
@@ -92,8 +92,8 @@ body,html { margin: 0 !important; padding: 0 !important;}
 <li>Max Shinn/Steve DuBois (GNU Generation)</li>
 <li>Marina Zhurakhinskaya (GNOME shell)</li>
 <li>Richard Stallman</li>
-</ul> 
-         
+</ul>
+
                </div>
         <div class="yui-u" id="sunday">
 
@@ -109,7 +109,7 @@ body,html { margin: 0 !important; padding: 0 !important;}
 <li>Ogg Vorbis/Theora</li>
 <li>Mozilla</li>
 </ul>
-         
+
                </div>
     </div>
 
index c4f8f9534ae77f9cba2fc68e084ea730cad4e004..1b13dfd23efc4a186e77803326eefaec168b1853 100644 (file)
@@ -2,7 +2,7 @@
 <html>
 <head>
    <title>LibrePlanet 2010</title>
-   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
+   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css" media="screen">
 
    @import url('http://static.fsf.org/combo.css');
@@ -47,12 +47,12 @@ body,html { margin: 0 !important; padding: 0 !important;}
 
 #saturday {background-color: #aaccee;}
 
-#sunday {background-color: #98fc66;}  
+#sunday {background-color: #98fc66;}
 
    </style>
 </head>
 <body>
-<div id="doc2" class="yui-t7"> 
+<div id="doc2" class="yui-t7">
 <div id="hd">
 <h1><img src="/2010/i/lp2010.png" alt="LibrePlanet" /></h1>
 </div>
@@ -63,7 +63,7 @@ body,html { margin: 0 !important; padding: 0 !important;}
 
        <div class="yui-g">
 <h2><img src="/2010/i/threedays.png" alt="Three days of free software activism"/></h2>
-         
+
        </div>
     <div class="yui-gb" id="days">
         <div class="yui-u first" id="friday">
@@ -92,8 +92,8 @@ body,html { margin: 0 !important; padding: 0 !important;}
 <li>Max Shinn/Steve DuBois (GNU Generation)</li>
 <li>Marina Zhurakhinskaya (GNOME shell)</li>
 <li>Richard Stallman</li>
-</ul> 
-         
+</ul>
+
                </div>
         <div class="yui-u" id="sunday">
 
@@ -109,7 +109,7 @@ body,html { margin: 0 !important; padding: 0 !important;}
 <li>Ogg Vorbis/Theora</li>
 <li>Mozilla</li>
 </ul>
-         
+
                </div>
     </div>
 
index c4f8f9534ae77f9cba2fc68e084ea730cad4e004..1b13dfd23efc4a186e77803326eefaec168b1853 100644 (file)
@@ -2,7 +2,7 @@
 <html>
 <head>
    <title>LibrePlanet 2010</title>
-   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
+   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css" media="screen">
 
    @import url('http://static.fsf.org/combo.css');
@@ -47,12 +47,12 @@ body,html { margin: 0 !important; padding: 0 !important;}
 
 #saturday {background-color: #aaccee;}
 
-#sunday {background-color: #98fc66;}  
+#sunday {background-color: #98fc66;}
 
    </style>
 </head>
 <body>
-<div id="doc2" class="yui-t7"> 
+<div id="doc2" class="yui-t7">
 <div id="hd">
 <h1><img src="/2010/i/lp2010.png" alt="LibrePlanet" /></h1>
 </div>
@@ -63,7 +63,7 @@ body,html { margin: 0 !important; padding: 0 !important;}
 
        <div class="yui-g">
 <h2><img src="/2010/i/threedays.png" alt="Three days of free software activism"/></h2>
-         
+
        </div>
     <div class="yui-gb" id="days">
         <div class="yui-u first" id="friday">
@@ -92,8 +92,8 @@ body,html { margin: 0 !important; padding: 0 !important;}
 <li>Max Shinn/Steve DuBois (GNU Generation)</li>
 <li>Marina Zhurakhinskaya (GNOME shell)</li>
 <li>Richard Stallman</li>
-</ul> 
-         
+</ul>
+
                </div>
         <div class="yui-u" id="sunday">
 
@@ -109,7 +109,7 @@ body,html { margin: 0 !important; padding: 0 !important;}
 <li>Ogg Vorbis/Theora</li>
 <li>Mozilla</li>
 </ul>
-         
+
                </div>
     </div>
 
index 87cc72df1f6c8328b72ac5774275c3868ca8109f..be49dc60ff48e178e0b5429ba824c28189d1c2fd 100644 (file)
  *
  *--------------------------------------------------------------------------*/
 
-/**  
-*  
+/**
+*
 *  Contains portions of Rico <http://openrico.org/>
-* 
-*  Copyright 2005 Sabre Airline Solutions  
-*  
+*
+*  Copyright 2005 Sabre Airline Solutions
+*
 *  Licensed under the Apache License, Version 2.0 (the "License"); you
 *  may not use this file except in compliance with the License. You
 *  may obtain a copy of the License at
-*  
-*         http://www.apache.org/licenses/LICENSE-2.0  
-*  
+*
+*         http://www.apache.org/licenses/LICENSE-2.0
+*
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 *  implied. See the License for the specific language governing
-*  permissions and limitations under the License. 
+*  permissions and limitations under the License.
 *
 **/
 
index 19019751064c56193e40931561104f522e69b447..542ce7544147333b9c8a2204d8c8e728b00dee4e 100644 (file)
@@ -3,7 +3,7 @@
 <head>
    <title>LibrePlanet &mdash; acting locally for global free software adoption.</title>
    <style type="text/css" media="screen">
-     
+
      @import url('http://static.fsf.org/combo.css');
      @import url('screen.css?20100908');
 
     <div class="yui-u first">
 
               <h3>Upcoming: LibrePlanet 2011 conference.</h3>
-      
+
               <p class="c"><a href="/wiki/LibrePlanet2011"><img src="http://static.fsf.org/nosvn/lp2011.png" alt="March 19th 2011, Boston, Massachusetts" /></a></p>
               <p>March 19th, 2011 &mdash; <a href="/wiki/LibrePlanet2011">more information</a></p>
-       
+
            </div>
     <div class="yui-u">
 
@@ -46,7 +46,7 @@
 
    <li>Previous LibrePlanet conferences: <a href="/2010">2010</a>, <a href="/2009">2009</a></li>
    </ul>
-      
+
 
            </div>
 </div>
diff --git a/2011/js b/2011/js
index 61999f34b0dd26214e9c940e27b682bca62a9048..c1dea3138cffeac0f94ff3027ea5c09ea2f18a4f 100644 (file)
--- a/2011/js
+++ b/2011/js
@@ -8,12 +8,12 @@
          (here we bring it from the remote site, but you could
          easily serve up this javascript yourself) -->
     <script src="http://www.openlayers.org/api/OpenLayers.js"></script>
+
     <!-- bring in the OpenStreetMap OpenLayers layers.
          Using this hosted file will make sure we are kept up
          to date with any necessary changes -->
     <script src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js"></script>
+
     <script type="text/javascript">
         // Start position for the map (hardcoded here for simplicity,
         // but maybe you want to get from URL params)
@@ -21,7 +21,7 @@
         var lat=43
         var lon=-0
         var zoom=3
+
         var map; //complex object of type OpenLayers.Map
 
 
@@ -37,8 +37,8 @@
                 projection: new OpenLayers.Projection("EPSG:900913"),
                 displayProjection: new OpenLayers.Projection("EPSG:4326")
             } );
+
+
             // Define the map layer
             // Note that we use a predefined layer that will be
             // kept up to date with URL changes
             // Other defined layers are OpenLayers.Layer.OSM.Mapnik, OpenLayers.Layer.OSM.Maplint and OpenLayers.Layer.OSM.CycleMap
             layerTilesAtHome = new OpenLayers.Layer.OSM.Osmarender("Osmarender");
             map.addLayer(layerTilesAtHome);
+
             if( ! map.getCenter() ){
                 var lonLat = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
                 map.setCenter (lonLat, zoom);
             }
-        
+
+
     </script>
index e2b4580aed5b3dd3c5c4c4a7664f7df94c359e8c..042fc9ee1d18f493029c4ae59c8ddbaa6cbdbde9 100644 (file)
@@ -52,7 +52,7 @@
 
      .texty h2{text-align: center; text-transform: uppercase; color: maroon; font-size: 20px; padding: 0; margin: 0}
 
-     
+
 
      #OpenLayers.Control.Attribution_3{background-color: black;}
 
@@ -70,7 +70,7 @@
      #featured-boxes p, #lp-resources li {font-size: 20px;}
 
 
-     
+
 
      .middlebox{background-color: #ddd !important;}
 
@@ -92,7 +92,7 @@ img { padding-bottom: 15px; }
      color: #000000;
      line-height:34px;
      letter-spacing:-2px;
- } 
+ }
 
 #hd p a { display: block; margin: 0; }
 
index f3806dc9980b9d46e4f4aa1fb936d86eb448327f..aa74624c531c139ad65b4ecefbccb4f57a723010 100644 (file)
@@ -146,7 +146,7 @@ class SkinCologneBlue extends Skin {
                /* show links to different language variants */
                $s .= $this->variantLinks();
                $s .= $this->extensionTabLinks();
-               
+
                $s .= " | ";
                if ( $wgUser->isLoggedIn() ) {
                        $s .=  $this->makeKnownLink( $lo, wfMsg( "logout" ), $q );
index cb24bafaef2736929c8d79347b19f6a58f7bf7f2..a1dadeea0148c09af35f6249bec1c5e19c25a619 100644 (file)
@@ -17,7 +17,7 @@ if( !defined( 'MEDIAWIKI' ) )
  */
 class SkinModern extends SkinTemplate {
        /*
-        * We don't like the default getPoweredBy, the icon clashes with the 
+        * We don't like the default getPoweredBy, the icon clashes with the
         * skin L&F.
         */
        function getPoweredBy() {
@@ -31,7 +31,7 @@ class SkinModern extends SkinTemplate {
                $this->stylename = 'modern';
                $this->template  = 'ModernTemplate';
        }
-       
+
        function setupSkinUserCss( OutputPage $out ){
                // Do not call parent::setupSkinUserCss(), we have our own print style
                $out->addStyle( 'common/shared.css', 'screen' );
@@ -64,7 +64,7 @@ class ModernTemplate extends QuickTemplate {
                wfSuppressWarnings();
 
 ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="<?php $this->text('xhtmldefaultnamespace') ?>" <?php 
+<html xmlns="<?php $this->text('xhtmldefaultnamespace') ?>" <?php
        foreach($this->data['xhtmlnamespaces'] as $tag => $ns) {
                ?>xmlns:<?php echo "{$tag}=\"{$ns}\" ";
        } ?>xml:lang="<?php $this->text('lang') ?>" lang="<?php $this->text('lang') ?>" dir="<?php $this->text('dir') ?>">
@@ -74,9 +74,9 @@ class ModernTemplate extends QuickTemplate {
                <title><?php $this->text('pagetitle') ?></title>
                <?php $this->html('csslinks') ?>
                <!--[if lt IE 7]><meta http-equiv="imagetoolbar" content="no" /><![endif]-->
-               
+
                <?php print Skin::makeGlobalVariablesScript( $this->data ); ?>
-                
+
                <script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('stylepath' ) ?>/common/wikibits.js?<?php echo $GLOBALS['wgStyleVersion'] ?>"><!-- wikibits js --></script>
                <!-- Head Scripts -->
 <?php $this->html('headscripts') ?>
@@ -169,8 +169,8 @@ class ModernTemplate extends QuickTemplate {
        <div id="mw_portlets">
 
        <!-- portlets -->
-       <?php 
-               $sidebar = $this->data['sidebar'];              
+       <?php
+               $sidebar = $this->data['sidebar'];
                if ( !isset( $sidebar['SEARCH'] ) ) $sidebar['SEARCH'] = true;
                if ( !isset( $sidebar['TOOLBOX'] ) ) $sidebar['TOOLBOX'] = true;
                if ( !isset( $sidebar['LANGUAGES'] ) ) $sidebar['LANGUAGES'] = true;
@@ -213,7 +213,7 @@ class ModernTemplate extends QuickTemplate {
        </div>
 
 
-       <!-- footer --> 
+       <!-- footer -->
        <div id="footer">
                        <ul id="f-list">
 <?php
@@ -359,7 +359,7 @@ class ModernTemplate extends QuickTemplate {
 <?php   } else {
                        # allow raw HTML block to be defined by extensions
                        print $cont;
-               } 
+               }
 ?>
                </div><!-- pBody -->
        </div><!-- portlet -->
index 1f3cab95871e2dafd0912106e7781ec5cdc16600..cde25af52431ec12cc1504e1709bf2af98170828 100644 (file)
@@ -227,7 +227,7 @@ class SkinStandard extends Skin {
                        # "Post a comment" link
                        if( ( $wgTitle->isTalkPage() || $wgOut->showNewSectionLink() ) && $action != 'edit' && !$wpPreview )
                                $s .= '<br />' . $this->makeKnownLinkObj( $wgTitle, wfMsg( 'postcomment' ), 'action=edit&section=new' );
-                       
+
                        #if( $tns%2 && $action!='edit' && !$wpPreview) {
                                #$s.= '<br />'.$this->makeKnownLink($wgTitle->getPrefixedText(),wfMsg('postcomment'),'action=edit&section=new');
                        #}
index 4a193e943de73c230663682fb4992ac49231db88..6e8880e6814f7bc4755f2f9e6412d016977eedb5 100644 (file)
@@ -6,8 +6,8 @@
     margin: 0 !important;
     float: none;
 }
-#column-content #content { 
-    margin-top: 3em; 
+#column-content #content {
+    margin-top: 3em;
     height: 1%;
 }
 #column-one {
index 2f7856123ad4e255b0fd8ff11889f872bb3cfcee..6fb44aaad58936c7e967484cee59df6a587778ae 100644 (file)
@@ -1,7 +1,7 @@
 /* IE5.5/win- only fixes */
 
-#column-content { 
-    float: none; 
+#column-content {
+    float: none;
     margin-left: 0;
     height: 1%;
 }
index feec15f166e6c6a0206bf5977f75a2ce655a26ea..18e9655d932ec43a51053102811efed28763a97a 100644 (file)
@@ -1,8 +1,8 @@
 /* 6.0 - only fixes */
-/* content area */ 
+/* content area */
 /* workaround for various ie float bugs */
-#column-content { 
-    float: none; 
+#column-content {
+    float: none;
     margin-left: 0;
     height: 1%;
 }
index fde0330141e3483de5eef0fe8a301f3938339a23..9f9735003a2a8ce9565abe2296bb1aa070dd657a 100644 (file)
@@ -392,7 +392,7 @@ table.gallery {
         background-color:#ffffff;
 }
 
-table.gallery tr { 
+table.gallery tr {
         vertical-align:top;
 }
 
@@ -411,13 +411,13 @@ div.gallerybox div.thumb {
         text-align: center;
         border: 1px solid #cccccc;
         margin: 2px;
-}       
+}
 
 div.gallerytext {
        overflow: hidden;
         font-size: 94%;
         padding: 2px 4px;
-}       
+}
 
 #xjump-to-nav {
   display: none;
index f85f506c836cba3f82dc0d8ea9f5ecf9c65711c0..0fe03eb8436dd43ee5552abb7fdc43bccef573f5 100644 (file)
@@ -77,7 +77,7 @@ function setrelative (nodes) {
     while (i < nodes.length) {
         if(((nodes[i].style.float && nodes[i].style.float != ('none') ||
         (nodes[i].align && nodes[i].align != ('none'))) &&
-        (!nodes[i].style.position || nodes[i].style.position != 'relative'))) 
+        (!nodes[i].style.position || nodes[i].style.position != 'relative')))
         {
             nodes[i].style.position = 'relative';
         }
@@ -98,7 +98,7 @@ String.prototype.hasClass = function(classWanted)
 
 var expandedURLs;
 
-onbeforeprint = function() { 
+onbeforeprint = function() {
     expandedURLs = [];
 
     var contentEl = document.getElementById("content");
index afcfa70895eaee48a678bbcc09b1c2d4b2c12fab..ff285916276c852d8a366d4b58550e8f27e5247f 100644 (file)
@@ -4,8 +4,8 @@ var sajax_debug_mode = false;
 var sajax_request_type = "GET";
 
 /**
-* if sajax_debug_mode is true, this function outputs given the message into 
-* the element with id = sajax_debug; if no such element exists in the document, 
+* if sajax_debug_mode is true, this function outputs given the message into
+* the element with id = sajax_debug; if no such element exists in the document,
 * it is injected.
 */
 function sajax_debug(text) {
index c8d90b80902ed45eba37889fe16187e8ce0868ae..8dead16dca16bb8efda0f1a99a597462361fb930 100644 (file)
@@ -65,7 +65,7 @@ wgAjaxWatch.ajaxCall = function() {
                ? wgAjaxWatch.unwatchingMsg : wgAjaxWatch.watchingMsg);
        sajax_do_call(
                "wfAjaxWatch",
-               [wgPageName, (wgAjaxWatch.watching ? "u" : "w")], 
+               [wgPageName, (wgAjaxWatch.watching ? "u" : "w")],
                wgAjaxWatch.processResult
        );
        // if the request isn't done in 10 seconds, allow user to try again
index 6f7be0cd7b209ade9f9b3682369d09f53d72106b..fd9d5d1d8bee3134ac59368b2bad2c55d86d4f45 100644 (file)
@@ -46,7 +46,7 @@ function updateBlockOptions() {
        if( emailblockRow ) {
                emailblockRow.style.display = isIp && !isEmpty ? 'none' : '';
        }
-       
+
        var hideuserRow = document.getElementById('wpEnableHideUser');
        if( hideuserRow ) {
                hideuserRow.style.display = isIp && !isEmpty ? 'none' : '';
index ecf146deefd3472e21ea685ea1de62b74615a35b..fe277f01b498225249af8f334b0d9ed9e4444597 100644 (file)
@@ -10,7 +10,7 @@
 a.stub,
 a.new{ color:#ba0000; text-decoration:none; }
 
-#toc { 
+#toc {
     /*border:1px solid #2f6fab;*/
     border:1px solid #aaaaaa;
     background-color:#f9f9f9;
@@ -24,7 +24,7 @@ a.new{ color:#ba0000; text-decoration:none; }
 }
 
 /* images */
-div.floatright { 
+div.floatright {
     float: right;
     clear: right;
     margin: 0;
@@ -32,15 +32,15 @@ div.floatright {
     border: 0.5em solid White;
     border-width: 0.5em 0 0.8em 1.4em;
 }
-div.floatright p { font-style: italic;} 
-div.floatleft { 
-    float: left; 
+div.floatright p { font-style: italic;}
+div.floatleft {
+    float: left;
     margin: 0.3em 0.5em 0.5em 0;
     position:relative;
     border: 0.5em solid White;
     border-width: 0.5em 1.4em 0.8em 0;
 }
-div.floatleft p { font-style: italic; } 
+div.floatleft p { font-style: italic; }
 /* thumbnails */
 div.thumb {
     margin-bottom: 0.5em;
@@ -79,10 +79,10 @@ img.thumbborder {
 
 /* table standards */
 table.rimage {
-    float:right; 
-    width:1pt; 
+    float:right;
+    width:1pt;
     position:relative;
-    margin-left:1em; 
+    margin-left:1em;
     margin-bottom:1em;
     text-align:center;
 }
@@ -113,7 +113,7 @@ li#privacy {
     display: none;
 }
 
-ul { 
+ul {
     list-style-type: square;
 }
 
@@ -218,7 +218,7 @@ table.gallery {
         background-color:#ffffff;
 }
 
-table.gallery tr { 
+table.gallery tr {
         vertical-align:top;
 }
 
@@ -233,12 +233,12 @@ div.gallerybox div.thumb {
         text-align: center;
         border: 1px solid #cccccc;
         margin: 2px;
-}       
+}
 
 div.gallerytext {
         font-size: 94%;
         padding: 2px 4px;
-}       
+}
 
 /*
 ** Diff rendering
index 11fc995b3885e293f2f334b3f2c6fb6fe9c395a4..9dddbea5dd18871b2273ff3fbcd1b07e65b45ac1 100644 (file)
@@ -9,12 +9,12 @@
 #preftoc li { list-style: none; }
 #prefcontrol { float: right; }
 fieldset.prefsection,
-fieldset.operaprefsection { 
+fieldset.operaprefsection {
     margin-left: 0;
     margin-right: 18em;
 }
 /* page history */
-#pagehistory .history-user { 
+#pagehistory .history-user {
     margin-right: 1.4em;
     margin-left: 0.4em;
 }
index 6afa3734d53fef93c39bd7924b4093f48a4629a0..dfad7104fdd036454a57b95cf1964576d387b50a 100644 (file)
@@ -41,7 +41,7 @@ table.diff {
        border: none;
        width: 98%;
        border-spacing: 4px;
-       
+
        /* Fixed layout is required to ensure that cells containing long URLs
           don't widen in Safari, Internet Explorer, or iCab */
        table-layout: fixed;
@@ -60,14 +60,14 @@ table.diff td div {
           CSS 3 draft..., but Gecko doesn't support it yet:
           https://bugzilla.mozilla.org/show_bug.cgi?id=99457 */
        word-wrap: break-word;
-       
+
        /* As fallback, scrollbars will be added for very wide cells
           instead of text overflowing or widening */
        overflow: auto;
-       
+
        /* The above rule breaks on very old versions of Mozilla due
           to a bug which collapses the table cells to a single line.
-          
+
           In Mozilla 1.1 and below with JavaScript enabled, the rule
           will be overridden with this by diff.js; wide cell contents
           then spill horizontally without widening the rest of the
@@ -111,20 +111,20 @@ span.diff-html-removed img{
 
 span.diff-html-changed img{
  border: 5px dotted #000099;
+
 }
 
 span.diff-html-changed  {
   position: relative;   /* this is key */
   cursor: help;
 }
+
 span.diff-html-changed span.tip {
   display: none;        /* so is this */
 }
 
 /* tooltip will display on :hover event */
+
 span.diff-html-changed:hover span.tip {
   display: block;
   z-index: 95;
index 945059e07b5ba31fb83e95273ebece0cf8e01012..972e5f558d0a9dfbdc8966a91585fcacdfc69b0e 100644 (file)
@@ -77,7 +77,7 @@ function insertTags(tagOpen, tagClose, sampleText) {
                        var winScroll = document.documentElement.scrollTop
                else if (document.body)
                        var winScroll = document.body.scrollTop;
-               //get current selection  
+               //get current selection
                txtarea.focus();
                var range = document.selection.createRange();
                selText = range.text;
@@ -88,10 +88,10 @@ function insertTags(tagOpen, tagClose, sampleText) {
                if (isSample && range.moveStart) {
                        if (window.opera)
                                tagClose = tagClose.replace(/\n/g,'');
-                       range.moveStart('character', - tagClose.length - selText.length); 
-                       range.moveEnd('character', - tagClose.length); 
+                       range.moveStart('character', - tagClose.length - selText.length);
+                       range.moveEnd('character', - tagClose.length);
                }
-               range.select();   
+               range.select();
                //restore window scroll position
                if (document.documentElement && document.documentElement.scrollTop)
                        document.documentElement.scrollTop = winScroll
@@ -122,7 +122,7 @@ function insertTags(tagOpen, tagClose, sampleText) {
                }
                //restore textarea scroll position
                txtarea.scrollTop = textScroll;
-       } 
+       }
 
        function checkSelectedText(){
                if (!selText) {
@@ -131,7 +131,7 @@ function insertTags(tagOpen, tagClose, sampleText) {
                } else if (selText.charAt(selText.length - 1) == ' ') { //exclude ending space char
                        selText = selText.substring(0, selText.length - 1);
                        tagClose += ' '
-               } 
+               }
        }
 
 }
@@ -148,7 +148,7 @@ function scrollEditBox() {
                if( scrollTop.value )
                        editBox.scrollTop = scrollTop.value;
                addHandler( editForm, 'submit', function() {
-                       document.getElementById( 'wpScrolltop' ).value = document.getElementById( 'wpTextbox1' ).scrollTop; 
+                       document.getElementById( 'wpScrolltop' ).value = document.getElementById( 'wpTextbox1' ).scrollTop;
                } );
        }
 }
index b1789c9e06e5d1cb39183eb2ebc05298053d0ff7..646bf7050440f7b9a068b34b2579ca4689689c13 100644 (file)
@@ -1,7 +1,7 @@
-/* 
+/*
   JavaScript file for enhanced recentchanges
  */
+
 /*
   * Add the CSS to hide parts that should be collapsed
   *
@@ -23,7 +23,7 @@ appendCSS('.mw-changeslist-hidden {'+
 /*
  * Switch an RC line between hidden/shown
  * @param int idNumber : the id number of the RC group
-*/ 
+*/
 function toggleVisibility(idNumber) {
        var openarrow = document.getElementById("mw-rc-openarrow-"+idNumber);
        var closearrow = document.getElementById("mw-rc-closearrow-"+idNumber);
index 3acd5e230d111ef6922c27eecd1d244d4763c09e..192e6139e78240193345180870440cd1bbee834d 100644 (file)
@@ -387,7 +387,7 @@ table.multipageimage td {
 */
 .TablePager_nav a { text-decoration: none; }
 .TablePager { border-collapse: collapse; }
-.TablePager, .TablePager td, .TablePager th { 
+.TablePager, .TablePager td, .TablePager th {
        border: 0.15em solid #777777;
        padding: 0 0.15em 0 0.15em;
 }
index faf611f071c012194fec13eebae1997ab5274b91..6b92a429f972e2cc39478ffc20800525a56ead3f 100644 (file)
@@ -67,7 +67,7 @@ function lpStatusUpdate() {
        /* All good */
        dismissNotify(i18n(wgLivepreviewMessageReady), 750);
 
-       
+
        var XMLObject = lpRequest.responseXML.documentElement;
 
 
@@ -94,7 +94,7 @@ function lpStatusUpdate() {
                lpShowNormalPreview();
                return;
        }
-               
+
 
        /* Inject categories */
        var categoryContainer  = document.getElementById( lpIdCategories );
index d9650c829ac3892ee7dbd7784bda823bfb34988d..b935f114dc6923fc57d14a1682d7bed4cbf56603 100644 (file)
@@ -19,7 +19,7 @@ var ProtectionForm = {
                var box = document.getElementById( opts.tableId );
                if( !box )
                        return false;
-               
+
                var boxbody = box.getElementsByTagName('tbody')[0]
                var row = document.createElement( 'tr' );
                boxbody.insertBefore( row, boxbody.firstChild );
index bd3061674015e860d6de560fa250263669230b66..f239158eb0a9f37b2f7862b1fd21ed77252e3244 100644 (file)
@@ -175,29 +175,29 @@ table.mw-userrights-groups * td,table.mw-userrights-groups * th {
        padding-right: 1.5em;
 }
 
-/* 
+/*
  * OpenSearch ajax suggestions
  */
 .os-suggest {
-       overflow: auto; 
-       overflow-x: hidden; 
+       overflow: auto;
+       overflow-x: hidden;
        position: absolute;
        top: 0px;
        left: 0px;
        width: 0px;
-       background-color: white; 
+       background-color: white;
        background-color: Window;
        border-style: solid;
        border-color: #AAAAAA;
        border-width: 1px;
-       z-index:99; 
-       visibility:hidden; 
-       font-size:95%;  
+       z-index:99;
+       visibility:hidden;
+       font-size:95%;
 }
 
 table.os-suggest-results {
        font-size: 95%;
-       cursor: pointer; 
+       cursor: pointer;
        border: 0;
        border-collapse: collapse;
        width: 100%;
@@ -205,7 +205,7 @@ table.os-suggest-results {
 
 td.os-suggest-result, td.os-suggest-result-hl {
        white-space: nowrap;
-       background-color: white; 
+       background-color: white;
        background-color: Window;
        color: black;
        color: WindowText;
@@ -213,7 +213,7 @@ td.os-suggest-result, td.os-suggest-result-hl {
 }
 td.os-suggest-result-hl,
 td.os-suggest-result-hl-webkit {
-       background-color: #4C59A6; 
+       background-color: #4C59A6;
        color: white;
 }
 td.os-suggest-result-hl {
@@ -224,7 +224,7 @@ td.os-suggest-result-hl {
 }
 
 .os-suggest-toggle {
-       position: relative; 
+       position: relative;
        left: 1ex;
        font-size: 65%;
 }
@@ -252,7 +252,7 @@ td.os-suggest-result-hl {
 
 /*
  * Special:ListGroupRights styling
- * Special:Statistics styling 
+ * Special:Statistics styling
 */
 
 table.mw-listgrouprights-table,
index a4904c03ffd6ffffa87c7aca8c0a11389e79eb2c..d1f84e8d93aae7ca80fda25bb7cca071cdb1e766 100644 (file)
@@ -17,7 +17,7 @@ lastY=10;YOffset=0;staticYOffset=10;refreshMS=25;
                if(bw.ns4||bw.opera){MM_reloadPage(true);}
                var noFix=bw.ie4||bw.ns4||(bw.macie50)?true:false;
                if (window.attachEvent){fix_bind()}
-               else if(noFix){ 
+               else if(noFix){
                        if(bw.ns6){document.getElementById(eID).style.position="absolute";}
                        if(bw.macie50){document.getElementById(eID).style.position="absolute";document.getElementById(eID).style.backgroundColor="#ccffcc";}
                        if(bw.ns6&&YOffset==0){YOffset=-15}
@@ -55,7 +55,7 @@ lastY=10;YOffset=0;staticYOffset=10;refreshMS=25;
                                fix_elements[fix_elements.length] = document.all[i];
                                window.attachEvent('onscroll', fix_event);
                                window.attachEvent('onresize', fix_event);
-                       } 
+                       }
                }
        }
 // -------------------------
index d1cf4b3ee718ede485223f78621afed3b1e78cd4..5b87868b4fe8ba7c62175982c334a5be081c71be 100644 (file)
@@ -43,7 +43,7 @@ var wgUploadWarningObj = {
 
                this.nameToCheck = destFile.value ;
 
-               // Clear timer 
+               // Clear timer
                if ( this.timeoutID ) {
                        window.clearTimeout( this.timeoutID );
                }
@@ -66,17 +66,17 @@ var wgUploadWarningObj = {
                this.nameToCheck = fname;
                this.timeout();
        },
-       
+
        'timeout' : function() {
                if ( !wgAjaxUploadDestCheck || !sajax_init_object() ) return;
                injectSpinner( document.getElementById( 'wpDestFile' ), 'destcheck' );
 
-               // Get variables into local scope so that they will be preserved for the 
-               // anonymous callback. fileName is copied so that multiple overlapping 
+               // Get variables into local scope so that they will be preserved for the
+               // anonymous callback. fileName is copied so that multiple overlapping
                // ajax requests can be supported.
                var obj = this;
                var fileName = this.nameToCheck;
-               sajax_do_call( 'UploadForm::ajaxGetExistsWarning', [this.nameToCheck], 
+               sajax_do_call( 'UploadForm::ajaxGetExistsWarning', [this.nameToCheck],
                        function (result) {
                                obj.processResult(result, fileName)
                        }
@@ -94,7 +94,7 @@ var wgUploadWarningObj = {
                var ackElt = document.getElementById( 'wpDestFileWarningAck' );
                this.setInnerHTML(warningElt, warning);
 
-               // Set a value in the form indicating that the warning is acknowledged and 
+               // Set a value in the form indicating that the warning is acknowledged and
                // doesn't need to be redisplayed post-upload
                if ( warning == '' || warning == '&nbsp;' ) {
                        ackElt.value = '';
@@ -154,7 +154,7 @@ function toggleFilenameFiller() {
 }
 
 var wgUploadLicenseObj = {
-       
+
        'responseCache' : { '' : '' },
 
        'fetchPreview': function( license ) {
@@ -184,7 +184,7 @@ var wgUploadLicenseObj = {
                if( previewPanel.innerHTML != preview )
                        previewPanel.innerHTML = preview;
        }
-       
+
 }
 
 addOnloadHook( licenseSelectorFixup );
\ No newline at end of file
index 089d22d76b5adbe8108c2c78c3f28dd303a483a0..ecb7dac508ebcc27f7ffa4f0402238513295fb1d 100644 (file)
@@ -53,7 +53,7 @@ function importScript(page) {
                '&action=raw&ctype=text/javascript';
        return importScriptURI(uri);
 }
+
 var loadedScripts = {}; // included-scripts tracker
 function importScriptURI(url) {
        if (loadedScripts[url]) {
@@ -66,15 +66,15 @@ function importScriptURI(url) {
        document.getElementsByTagName('head')[0].appendChild(s);
        return s;
 }
+
 function importStylesheet(page) {
        return importStylesheetURI(wgScript + '?action=raw&ctype=text/css&title=' + encodeURIComponent(page.replace(/ /g,'_')));
 }
+
 function importStylesheetURI(url) {
        return document.createStyleSheet ? document.createStyleSheet(url) : appendCSS('@import "' + url + '";');
 }
+
 function appendCSS(text) {
        var s = document.createElement('style');
        s.type = 'text/css';
@@ -702,13 +702,13 @@ function ts_initTransformTable() {
                // Separators
                ascii = wgSeparatorTransformTable[0].split("\t");
                localised = wgSeparatorTransformTable[1].split("\t");
-               for ( var i = 0; i < ascii.length; i++ ) { 
+               for ( var i = 0; i < ascii.length; i++ ) {
                        ts_number_transform_table[localised[i]] = ascii[i];
                }
                // Digits
                ascii = wgDigitTransformTable[0].split("\t");
                localised = wgDigitTransformTable[1].split("\t");
-               for ( var i = 0; i < ascii.length; i++ ) { 
+               for ( var i = 0; i < ascii.length; i++ ) {
                        ts_number_transform_table[localised[i]] = ascii[i];
                }
 
@@ -717,7 +717,7 @@ function ts_initTransformTable() {
                maxDigitLength = 1;
                for ( var digit in ts_number_transform_table ) {
                        // Escape regex metacharacters
-                       digits.push( 
+                       digits.push(
                                digit.replace( /[\\\\$\*\+\?\.\(\)\|\{\}\[\]\-]/,
                                        function( s ) { return '\\' + s; } )
                        );
@@ -747,7 +747,7 @@ function ts_toLowerCase( s ) {
        return s.toLowerCase();
 }
 
-function ts_dateToSortKey(date) {      
+function ts_dateToSortKey(date) {
        // y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX
        if (date.length == 11) {
                switch (date.substr(3,3).toLowerCase()) {
@@ -774,10 +774,10 @@ function ts_dateToSortKey(date) {
                }
        } else if (date.length == 8) {
                yr = date.substr(6,2);
-               if (parseInt(yr) < 50) { 
-                       yr = '20'+yr; 
-               } else { 
-                       yr = '19'+yr; 
+               if (parseInt(yr) < 50) {
+                       yr = '20'+yr;
+               } else {
+                       yr = '19'+yr;
                }
                if (ts_europeandate == true) {
                        return yr+date.substr(3,2)+date.substr(0,2);
@@ -794,7 +794,7 @@ function ts_parseFloat( s ) {
        }
        if (ts_number_transform_table != false) {
                var newNum = '', c;
-               
+
                for ( var p = 0; p < s.length; p++ ) {
                        c = s.charAt( p );
                        if (c in ts_number_transform_table) {
@@ -843,8 +843,8 @@ function ts_alternate(table) {
 /*
  * End of table sorting code
  */
+
+
 /**
  * Add a cute little box at the top of the screen to inform the user of
  * something, replacing any preexisting message.
@@ -888,7 +888,7 @@ function jsMsg( message, className ) {
        if( className ) {
                messageDiv.setAttribute( 'class', 'mw-js-message-'+className );
        }
-       
+
        if (typeof message === 'object') {
                while (messageDiv.hasChildNodes()) // Remove old content
                        messageDiv.removeChild(messageDiv.firstChild);
index 58bc4f5cebb159c46490775951d4f3c177aae43e..00349595b42676531886c88020c9cc9c26ff74d7 100644 (file)
@@ -37,8 +37,8 @@
                                {if undelete {<div id="contentSub2"><span class="subpages">{undelete}</span></div> }}
                                {if newtalk {<div class="usermessage">{newtalk}</div> }}
                                {if showjumplinks {
-                                       <div id="jump-to-nav">{msg {jumpto}} <a href="#column-one">{msg {jumptonavigation}}</a>, 
-                                       <a href="#searchInput">{msg {jumptosearch}}</a></div> 
+                                       <div id="jump-to-nav">{msg {jumpto}} <a href="#column-one">{msg {jumptonavigation}}</a>,
+                                       <a href="#searchInput">{msg {jumptosearch}}</a></div>
                                }}
                                <!-- start content -->
                                {bodytext}
@@ -79,7 +79,7 @@
                                                                }}
                                                        }}
                                                }}
-                                               
+
                                                {if {{ is_allowed {delete} }} {
                                                                <li id="ca-delete" {selecttab {delete}}><a href="{localurl {action=delete}}">{msg {delete}}</a></li>
                                                }}
                <div class="portlet" id="p-personal">
                        <h5>{msg {personaltools}}</h5>
                        <div class="pBody">
-                               <ul>                                            
+                               <ul>
                                        {personal_urls { <li id="pt-$key" $classactive ><a href="$href" $class>$text</a></li> }}
                                </ul>
                        </div>
                        </div>
                } {
                        <li class="$class"><a href="$href">$text</a></li>
-               }}      
+               }}
        </div><!-- end of the left (by default at least) column -->
        <div class="visualClear"></div>
        <div id="footer">
index 0d693a86183ab9ffb8653c6c4c5d8cd2d6b8bef1..d7b877d8ca13e0fb6381340321e83da1004279f6 100644 (file)
@@ -23,11 +23,11 @@ require_once( 'includes/SkinTemplate.php' );
  * The other thing is that lots of dependencies that are declared in the callbacks
  * are not intelligently handled. There's some room for improvement there.
  *
- * The class is derived from SkinTemplate, but that's only temporary. Eventually 
- * it'll be derived from Skin, and I've avoided using SkinTemplate functions as 
- * much as possible. In fact, the only SkinTemplate dependencies I know of at the 
- * moment are the functions to generate the gen=css and gen=js files. 
- * 
+ * The class is derived from SkinTemplate, but that's only temporary. Eventually
+ * it'll be derived from Skin, and I've avoided using SkinTemplate functions as
+ * much as possible. In fact, the only SkinTemplate dependencies I know of at the
+ * moment are the functions to generate the gen=css and gen=js files.
+ *
  */
 class SkinMonoBookCBT extends SkinTemplate {
        var $mOut, $mTitle;
@@ -38,7 +38,7 @@ class SkinMonoBookCBT extends SkinTemplate {
        /******************************************************
         * General functions                                  *
         ******************************************************/
-       
+
        /** Execute the template and write out the result */
        function outputPage( &$out ) {
                echo $this->execute( $out );
@@ -50,20 +50,20 @@ class SkinMonoBookCBT extends SkinTemplate {
                wfProfileIn( $fname );
                wfProfileIn( "$fname-setup" );
                Skin::initPage( $out );
-               
+
                $this->mOut =&  $out;
                $this->mTitle =& $wgTitle;
 
                $sourceFile = "$wgStyleDirectory/MonoBook.tpl";
 
                wfProfileOut( "$fname-setup" );
-       
+
                if ( $wgParserCacheType == CACHE_NONE ) {
                        $template = file_get_contents( $sourceFile );
                        $text = $this->executeTemplate( $template );
                } else {
                        $compiled = $this->getCompiledTemplate( $sourceFile );
-                       
+
                        wfProfileIn( "$fname-eval" );
                        $text = eval( $compiled );
                        wfProfileOut( "$fname-eval" );
@@ -77,17 +77,17 @@ class SkinMonoBookCBT extends SkinTemplate {
                $fname = 'SkinMonoBookCBT::getCompiledTemplate';
 
                $expiry = 3600;
-               
+
                // Sandbox template execution
                if ( $this->mCompiling ) {
                        return;
                }
-               
+
                wfProfileIn( $fname );
 
                // Is the request an ordinary page view?
-               if ( $wgRequest->wasPosted() || 
-                               count( array_diff( array_keys( $_GET ), array( 'title', 'useskin', 'recompile' ) ) ) != 0 ) 
+               if ( $wgRequest->wasPosted() ||
+                               count( array_diff( array_keys( $_GET ), array( 'title', 'useskin', 'recompile' ) ) ) != 0 )
                {
                        $type = 'nonview';
                } else {
@@ -109,8 +109,8 @@ class SkinMonoBookCBT extends SkinTemplate {
                        $recompileUser = false;
                        $recompileGeneric = false;
                }
-               
-               if ( !$recompileUser ) { 
+
+               if ( !$recompileUser ) {
                        $php = $parserMemc->get( $cacheKey );
                }
                if ( $recompileUser || !$php ) {
@@ -146,7 +146,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                        $compiled = $this->compileTemplate( $template, $ignore );
 
                        // Reduce whitespace
-                       // This is done here instead of in CBTProcessor because we can be 
+                       // This is done here instead of in CBTProcessor because we can be
                        // more sure it is safe here.
                        $compiled = preg_replace( '/^[ \t]+/m', '', $compiled );
                        $compiled = preg_replace( '/[\r\n]+/', "\n", $compiled );
@@ -189,7 +189,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                wfProfileIn( $fname );
                $tp = new CBTProcessor( $template, $this );
                $tp->mFunctionCache = $this->mFunctionCache;
-               
+
                $this->mCompiling = true;
                $text = $tp->execute();
                $this->mCompiling = false;
@@ -198,7 +198,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                wfProfileOut( $fname );
                return $text;
        }
-       
+
        /******************************************************
         * Callbacks                                          *
         ******************************************************/
@@ -209,34 +209,34 @@ class SkinMonoBookCBT extends SkinTemplate {
                global $wgContLang;
                return $wgContLang->isRTL() ? 'rtl' : 'ltr';
        }
-       
+
        function mimetype() { return $GLOBALS['wgMimeType']; }
        function charset() { return $GLOBALS['wgOutputEncoding']; }
-       function headlinks() { 
+       function headlinks() {
                return cbt_value( $this->mOut->getHeadLinks(), 'dynamic' );
        }
-       function headscripts() { 
+       function headscripts() {
                return cbt_value( $this->mOut->getScript(), 'dynamic' );
        }
-       
-       function pagetitle() { 
-               return cbt_value( $this->mOut->getHTMLTitle(), array( 'title', 'lang' ) ); 
+
+       function pagetitle() {
+               return cbt_value( $this->mOut->getHTMLTitle(), array( 'title', 'lang' ) );
        }
-       
+
        function stylepath() { return $GLOBALS['wgStylePath']; }
        function stylename() { return $this->mStyleName; }
-       
+
        function notprintable() {
                global $wgRequest;
                return cbt_value( !$wgRequest->getBool( 'printable' ), 'nonview dynamic' );
        }
-       
+
        function jsmimetype() { return $GLOBALS['wgJsMimeType']; }
-       
+
        function jsvarurl() {
                global $wgUseSiteJs, $wgUser;
                if ( !$wgUseSiteJs ) return '';
-               
+
                if ( $wgUser->isLoggedIn() ) {
                        $url = self::makeUrl( '-','action=raw&smaxage=0&gen=js' );
                } else {
@@ -244,30 +244,30 @@ class SkinMonoBookCBT extends SkinTemplate {
                }
                return cbt_value( $url, 'loggedin' );
        }
-       
+
        function pagecss() {
                global $wgHooks;
-               
+
                $out = false;
                wfRunHooks( 'SkinTemplateSetupPageCss', array( &$out ) );
 
                // Unknown dependencies
                return cbt_value( $out, 'dynamic' );
        }
-       
+
        function usercss() {
                if ( $this->isCssPreview() ) {
                        global $wgRequest;
                        $usercss = $this->makeStylesheetCdata( $wgRequest->getText('wpTextbox1') );
                } else {
-                       $usercss = $this->makeStylesheetLink( self::makeUrl($this->getUserPageText() . 
+                       $usercss = $this->makeStylesheetLink( self::makeUrl($this->getUserPageText() .
                                '/'.$this->mStyleName.'.css', 'action=raw&ctype=text/css' ) );
                }
 
                // Dynamic when not an ordinary page view, also depends on the username
                return cbt_value( $usercss, array( 'nonview dynamic', 'user' ) );
        }
-       
+
        function sitecss() {
                global $wgUseSiteCss;
                if ( !$wgUseSiteCss ) {
@@ -275,9 +275,9 @@ class SkinMonoBookCBT extends SkinTemplate {
                }
 
                global $wgSquidMaxage, $wgContLang, $wgStylePath;
-                       
+
                $query = "action=raw&ctype=text/css&smaxage=$wgSquidMaxage";
-               
+
                $sitecss = '';
                if ( $wgContLang->isRTL() ) {
                        $sitecss .= $this->makeStylesheetLink( $wgStylePath . '/' . $this->mStyleName . '/rtl.css' ) . "\n";
@@ -293,7 +293,7 @@ class SkinMonoBookCBT extends SkinTemplate {
        function gencss() {
                global $wgUseSiteCss;
                if ( !$wgUseSiteCss ) return '';
-               
+
                global $wgSquidMaxage, $wgUser, $wgAllowUserCss;
                if ( $this->isCssPreview() ) {
                        $siteargs = '&smaxage=0&maxage=0';
@@ -306,26 +306,26 @@ class SkinMonoBookCBT extends SkinTemplate {
                } else {
                        $isTemplate = false;
                }
-               
+
                $link = $this->makeStylesheetLink( self::makeUrl('-','action=raw&gen=css' . $siteargs) ) . "\n";
 
                if ( $wgAllowUserCss ) {
                        $deps = 'loggedin';
-               } else { 
+               } else {
                        $deps = array();
                }
                return cbt_value( $link, $deps, $isTemplate );
        }
-       
+
        function user_touched() {
                global $wgUser;
                return cbt_value( $wgUser->mTouched, 'dynamic' );
        }
-               
+
        function userjs() {
                global $wgAllowUserJs, $wgJsMimeType;
                if ( !$wgAllowUserJs ) return '';
-               
+
                if ( $this->isJsPreview() ) {
                        $url = '';
                } else {
@@ -333,7 +333,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                }
                return cbt_value( $url, array( 'nonview dynamic', 'user' ) );
        }
-       
+
        function userjsprev() {
                global $wgAllowUserJs, $wgRequest;
                if ( !$wgAllowUserJs ) return '';
@@ -344,7 +344,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                }
                return cbt_value( $js, array( 'nonview dynamic' ) );
        }
-       
+
        function trackbackhtml() {
                global $wgUseTrackbacks;
                if ( !$wgUseTrackbacks ) return '';
@@ -356,7 +356,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                }
                return cbt_value( $tb, 'dynamic' );
        }
-       
+
        function body_ondblclick() {
                global $wgUser;
                if( $this->isEditable() && $wgUser->getOption("editondblclick") ) {
@@ -372,7 +372,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                        return cbt_value( $js, 'loggedin dynamic' );
                }
        }
-       
+
        function body_onload() {
                global $wgUser;
                if ( $this->isEditable() && $wgUser->getOption( 'editsectiononrightclick' ) ) {
@@ -382,17 +382,17 @@ class SkinMonoBookCBT extends SkinTemplate {
                }
                return cbt_value( $js, 'loggedin dynamic' );
        }
-       
+
        function nsclass() {
                return cbt_value( 'ns-' . $this->mTitle->getNamespace(), 'title' );
        }
-       
+
        function sitenotice() {
-               // Perhaps this could be given special dependencies using our knowledge of what 
+               // Perhaps this could be given special dependencies using our knowledge of what
                // wfGetSiteNotice() depends on.
                return cbt_value( wfGetSiteNotice(), 'dynamic' );
        }
-       
+
        function title() {
                return cbt_value( $this->mOut->getPageTitle(), array( 'title', 'lang' ) );
        }
@@ -414,11 +414,11 @@ class SkinMonoBookCBT extends SkinTemplate {
                }
                return cbt_value( $s, array( 'title', 'nonview dynamic' ) );
        }
-       
+
        function undelete() {
                return cbt_value( $this->getUndeleteLink(), array( 'title', 'lang' ) );
        }
-       
+
        function newtalk() {
                global $wgUser, $wgDBname;
                $newtalks = $wgUser->getNewMessageLinks();
@@ -446,7 +446,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                        $sep = str_replace("_", " ", wfMsgHtml("newtalkseparator"));
                        $msgs = array();
                        foreach ($newtalks as $newtalk) {
-                               $msgs[] = wfElement("a", 
+                               $msgs[] = wfElement("a",
                                        array('href' => $newtalk["link"]), $newtalk["wiki"]);
                        }
                        $parts = implode($sep, $msgs);
@@ -457,26 +457,26 @@ class SkinMonoBookCBT extends SkinTemplate {
                }
                return cbt_value( $ntl, 'dynamic' );
        }
-       
+
        function showjumplinks() {
                global $wgUser;
                return cbt_value( $wgUser->getOption( 'showjumplinks' ) ? 'true' : '', 'user' );
        }
-       
+
        function bodytext() {
                return cbt_value( $this->mOut->getHTML(), 'dynamic' );
        }
-       
+
        function catlinks() {
                if ( !isset( $this->mCatlinks ) ) {
                        $this->mCatlinks = $this->getCategories();
                }
                return cbt_value( $this->mCatlinks, 'dynamic' );
        }
-       
+
        function extratabs( $itemTemplate ) {
                global $wgContLang, $wgDisableLangConversion;
-               
+
                $etpl = cbt_escape( $itemTemplate );
 
                /* show links to different language variants */
@@ -510,14 +510,14 @@ class SkinMonoBookCBT extends SkinTemplate {
                return cbt_value( $wgRequest->getRequestURL(), 'dynamic' );
        }
 
-       function subject_url() { 
+       function subject_url() {
                $title = $this->getSubjectPage();
                if ( $title->exists() ) {
                        $url = $title->getLocalUrl();
                } else {
                        $url = $title->getLocalUrl( 'action=edit' );
                }
-               return cbt_value( $url, 'title' ); 
+               return cbt_value( $url, 'title' );
        }
 
        function talk_url() {
@@ -562,7 +562,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                        } else {
                                $action = $this->getAction();
                                $section = $this->getSection();
-                               
+
                                if ( isset( $actionTabs[$action] ) ) {
                                        $this->mSelectedTab = $actionTabs[$action];
 
@@ -581,7 +581,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                                $s = 'class="selected ' . htmlspecialchars( $extraclass ) . '"';
                        } else {
                                $s = 'class="' . htmlspecialchars( $extraclass ) . '"';
-                       }                       
+                       }
                } else {
                        if ( $this->mSelectedTab == $tab ) {
                                $s = 'class="selected"';
@@ -602,7 +602,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                $title = $this->getTalkPage();
                $class = $title->exists() ? '' : 'new';
                return cbt_value( $class, 'dynamic' );
-       }       
+       }
 
        function ca_variant( $code, $name, $index, $template ) {
                global $wgContLang;
@@ -611,7 +611,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                $actstr = '';
                if( $action )
                        $actstr = 'action=' . $action . '&';
-               $s = strtr( $template, array( 
+               $s = strtr( $template, array(
                        '$id' => htmlspecialchars( 'varlang-' . $index ),
                        '$class' => $selected ? 'class="selected"' : '',
                        '$text' => $name,
@@ -624,12 +624,12 @@ class SkinMonoBookCBT extends SkinTemplate {
                return cbt_value( (string)$this->mTitle->userIsWatching(), array( 'dynamic' ) );
        }
 
-       
+
        function personal_urls( $itemTemplate ) {
                global $wgShowIPinHeader, $wgContLang;
 
                # Split this function up into many small functions, to obtain the
-               # best specificity in the dependencies of each one. The template below 
+               # best specificity in the dependencies of each one. The template below
                # has no dependencies, so its generation, and any static subfunctions,
                # can be optimised away.
                $etpl = cbt_escape( $itemTemplate );
@@ -665,7 +665,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                }
                return cbt_value( $s, 'user' );
        }
-       
+
        function mytalk( $itemTemplate ) {
                global $wgUser;
                if ( $this->isLoggedIn() ) {
@@ -677,50 +677,50 @@ class SkinMonoBookCBT extends SkinTemplate {
                }
                return cbt_value( $s, 'user' );
        }
-       
+
        function preferences( $itemTemplate ) {
                if ( $this->isLoggedIn() ) {
-                       $s = $this->makeSpecialTemplateLink( $itemTemplate, 'preferences', 
+                       $s = $this->makeSpecialTemplateLink( $itemTemplate, 'preferences',
                                'Preferences', wfMsg( 'preferences' ) );
                } else {
                        $s = '';
                }
                return cbt_value( $s, array( 'loggedin', 'lang' ) );
        }
-       
+
        function watchlist( $itemTemplate ) {
                if ( $this->isLoggedIn() ) {
-                       $s = $this->makeSpecialTemplateLink( $itemTemplate, 'watchlist', 
+                       $s = $this->makeSpecialTemplateLink( $itemTemplate, 'watchlist',
                                'Watchlist', wfMsg( 'watchlist' ) );
                } else {
                        $s = '';
                }
                return cbt_value( $s, array( 'loggedin', 'lang' ) );
        }
-       
+
        function mycontris( $itemTemplate ) {
                if ( $this->isLoggedIn() ) {
                        global $wgUser;
-                       $s = $this->makeSpecialTemplateLink( $itemTemplate, 'mycontris', 
+                       $s = $this->makeSpecialTemplateLink( $itemTemplate, 'mycontris',
                                "Contributions/" . $wgUser->getTitleKey(), wfMsg('mycontris') );
                } else {
                        $s = '';
                }
                return cbt_value( $s, 'user' );
        }
-       
+
        function logout( $itemTemplate ) {
                if ( $this->isLoggedIn() ) {
-                       $s = $this->makeSpecialTemplateLink( $itemTemplate, 'logout', 
-                               'Userlogout', wfMsg( 'userlogout' ), 
-                                       $this->mTitle->getNamespace() === NS_SPECIAL && $this->mTitle->getText() === 'Preferences' 
+                       $s = $this->makeSpecialTemplateLink( $itemTemplate, 'logout',
+                               'Userlogout', wfMsg( 'userlogout' ),
+                                       $this->mTitle->getNamespace() === NS_SPECIAL && $this->mTitle->getText() === 'Preferences'
                                        ? '' : "returnto=" . $this->mTitle->getPrefixedURL() );
                } else {
                        $s = '';
                }
                return cbt_value( $s, 'loggedin dynamic' );
        }
-       
+
        function anonuserpage( $itemTemplate ) {
                if ( $this->isLoggedIn() ) {
                        $s = '';
@@ -731,7 +731,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                }
                return cbt_value( $s, '!loggedin dynamic' );
        }
-       
+
        function anontalk( $itemTemplate ) {
                if ( $this->isLoggedIn() ) {
                        $s = '';
@@ -742,30 +742,30 @@ class SkinMonoBookCBT extends SkinTemplate {
                }
                return cbt_value( $s, '!loggedin dynamic' );
        }
-       
+
        function anonlogin( $itemTemplate ) {
                if ( $this->isLoggedIn() ) {
                        $s = '';
                } else {
-                       $s = $this->makeSpecialTemplateLink( $itemTemplate, 'anonlogin', 'Userlogin', 
+                       $s = $this->makeSpecialTemplateLink( $itemTemplate, 'anonlogin', 'Userlogin',
                                wfMsg( 'userlogin' ), 'returnto=' . urlencode( $this->getThisPDBK() ) );
                }
                return cbt_value( $s, '!loggedin dynamic' );
        }
-       
+
        function login( $itemTemplate ) {
                if ( $this->isLoggedIn() ) {
                        $s = '';
                } else {
-                       $s = $this->makeSpecialTemplateLink( $itemTemplate, 'login', 'Userlogin', 
+                       $s = $this->makeSpecialTemplateLink( $itemTemplate, 'login', 'Userlogin',
                                wfMsg( 'userlogin' ), 'returnto=' . urlencode( $this->getThisPDBK() ) );
                }
                return cbt_value( $s, '!loggedin dynamic' );
        }
-       
+
        function logopath() { return $GLOBALS['wgLogo']; }
        function mainpage() { return self::makeMainPageUrl(); }
-       
+
        function sidebar( $startSection, $endSection, $innerTpl ) {
                $s = '';
                $lines = explode( "\n", wfMsgForContent( 'sidebar' ) );
@@ -775,7 +775,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                                continue;
                        if (strpos($line, '**') !== 0) {
                                $bar = trim($line, '* ');
-                               $name = wfMsg( $bar ); 
+                               $name = wfMsg( $bar );
                                if (wfEmptyMsg($bar, $name)) {
                                        $name = $bar;
                                }
@@ -785,7 +785,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                                        $s .= $endSection;
                                }
                                $s .= strtr( $startSection,
-                                       array( 
+                                       array(
                                                '$bar' => htmlspecialchars( $bar ),
                                                '$barname' => $name
                                        ) );
@@ -800,7 +800,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                                        if (wfEmptyMsg($line[0], $link))
                                                $link = $line[0];
                                        $href = self::makeInternalOrExternalUrl( $link );
-                                       
+
                                        $s .= strtr( $innerTpl,
                                                array(
                                                        '$text' => htmlspecialchars( $text ),
@@ -818,21 +818,21 @@ class SkinMonoBookCBT extends SkinTemplate {
                // Depends on user language only
                return cbt_value( $s, 'lang' );
        }
-       
+
        function searchaction() {
                // Static link
                return $this->getSearchLink();
        }
-       
+
        function search() {
                global $wgRequest;
                return cbt_value( trim( $this->getSearch() ), 'special dynamic' );
        }
-       
+
        function notspecialpage() {
                return cbt_value( $this->mTitle->getNamespace() != NS_SPECIAL, 'special' );
        }
-       
+
        function nav_whatlinkshere() {
                return cbt_value( $this->makeSpecialParamUrl('Whatlinkshere' ), array(), true );
        }
@@ -840,11 +840,11 @@ class SkinMonoBookCBT extends SkinTemplate {
        function article_exists() {
                return cbt_value( (string)($this->mTitle->getArticleId() !== 0), 'title' );
        }
-       
+
        function nav_recentchangeslinked() {
                return cbt_value( $this->makeSpecialParamUrl('Recentchangeslinked' ), array(), true );
        }
-       
+
        function feeds( $itemTemplate = '' ) {
                if ( !$this->mOut->isSyndicated() ) {
                        $feeds = '';
@@ -856,7 +856,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                        global $wgFeedClasses, $wgRequest;
                        foreach( $wgFeedClasses as $format => $class ) {
                                $feeds .= strtr( $itemTemplate,
-                                       array( 
+                                       array(
                                                '$key' => htmlspecialchars( $format ),
                                                '$text' => $format,
                                                '$href' => $wgRequest->appendQuery( "feed=$format" )
@@ -889,23 +889,23 @@ class SkinMonoBookCBT extends SkinTemplate {
                global $wgUser;
                return cbt_value( (string)$wgUser->isAllowed( $right ), 'user' );
        }
-       
+
        function nav_blockip() {
                $url = $this->makeSpecialParamUrl( 'Blockip', '', '{title_userurl}' );
                return cbt_value( $url, array(), true );
        }
-       
+
        function nav_emailuser() {
                global $wgEnableEmail, $wgEnableUserEmail, $wgUser;
                if ( !$wgEnableEmail || !$wgEnableUserEmail ) return '';
-               
+
                $url = $this->makeSpecialParamUrl( 'Emailuser', '', '{title_userurl}' );
                return cbt_value( $url, array(), true );
        }
-       
+
        function nav_upload() {
                global $wgEnableUploads, $wgUploadNavigationUrl;
-               if ( !$wgEnableUploads ) { 
+               if ( !$wgEnableUploads ) {
                        return '';
                } elseif ( $wgUploadNavigationUrl ) {
                        return $wgUploadNavigationUrl;
@@ -913,17 +913,17 @@ class SkinMonoBookCBT extends SkinTemplate {
                        return self::makeSpecialUrl('Upload');
                }
        }
-       
+
        function nav_specialpages() {
                return self::makeSpecialUrl('Specialpages');
        }
-       
+
        function nav_print() {
                global $wgRequest, $wgArticle;
                $action = $this->getAction();
                $url = '';
-               if( $this->mTitle->getNamespace() !== NS_SPECIAL 
-                               && ($action == '' || $action == 'view' || $action == 'purge' ) ) 
+               if( $this->mTitle->getNamespace() !== NS_SPECIAL
+                               && ($action == '' || $action == 'view' || $action == 'purge' ) )
                {
                        $revid = $wgArticle->getLatest();
                        if ( $revid != 0 ) {
@@ -932,7 +932,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                }
                return cbt_value( $url, array( 'nonview dynamic', 'title' ) );
        }
-       
+
        function nav_permalink() {
                $url = (string)$this->getPermalink();
                return cbt_value( $url, 'dynamic' );
@@ -944,16 +944,16 @@ class SkinMonoBookCBT extends SkinTemplate {
 
                return cbt_value( $this->mTitle->trackbackURL(), 'title' );
        }
-       
+
        function is_permalink() {
                return cbt_value( (string)($this->getPermalink() === false), 'nonview dynamic' );
        }
-       
+
        function toolboxend() {
                // This is where the MonoBookTemplateToolboxEnd hook went in the old skin
                return '';
        }
-       
+
        function language_urls( $outer, $inner ) {
                global $wgHideInterlanguageLinks, $wgOut, $wgContLang;
                if ( $wgHideInterlanguageLinks ) return '';
@@ -977,28 +977,28 @@ class SkinMonoBookCBT extends SkinTemplate {
                }
                return cbt_value( $s, 'dynamic' );
        }
-       
+
        function poweredbyico() { return $this->getPoweredBy(); }
        function copyrightico() { return $this->getCopyrightIcon(); }
 
-       function lastmod() { 
+       function lastmod() {
                global $wgMaxCredits;
                if ( $wgMaxCredits ) return '';
 
                if ( !isset( $this->mLastmod ) ) {
                        if ( $this->isCurrentArticleView() ) {
-                               $this->mLastmod = $this->lastModified(); 
+                               $this->mLastmod = $this->lastModified();
                        } else {
                                $this->mLastmod = '';
                        }
                }
                return cbt_value( $this->mLastmod, 'dynamic' );
        }
-       
+
        function viewcount() {
                global $wgDisableCounters;
                if ( $wgDisableCounters ) return '';
-               
+
                global $wgLang, $wgArticle;
                if ( is_object( $wgArticle ) ) {
                        $viewcount = $wgLang->formatNum( $wgArticle->getCount() );
@@ -1012,7 +1012,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                }
                return cbt_value( $viewcount, 'dynamic' );
        }
-       
+
        function numberofwatchingusers() {
                global $wgPageShowWatchingUsers;
                if ( !$wgPageShowWatchingUsers ) return '';
@@ -1032,11 +1032,11 @@ class SkinMonoBookCBT extends SkinTemplate {
                }
                return cbt_value( $s, 'dynamic' );
        }
-       
+
        function credits() {
                global $wgMaxCredits;
                if ( !$wgMaxCredits ) return '';
-               
+
                if ( $this->isCurrentArticleView() ) {
                        require_once("Credits.php");
                        global $wgArticle, $wgShowCreditsIfMax;
@@ -1046,7 +1046,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                }
                return cbt_value( $credits, 'view dynamic' );
        }
-       
+
        function normalcopyright() {
                return $this->getCopyright( 'normal' );
        }
@@ -1063,13 +1063,13 @@ class SkinMonoBookCBT extends SkinTemplate {
        function usehistorycopyright() {
                global $wgRequest;
                if ( wfMsgForContent( 'history_copyright' ) == '-' ) return '';
-               
+
                $oldid = $this->getOldId();
                $diff = $this->getDiff();
                $use = (string)(!is_null( $oldid ) && is_null( $diff ));
                return cbt_value( $use, 'nonview dynamic' );
        }
-       
+
        function privacy() {
                return cbt_value( $this->privacyLink(), 'lang' );
        }
@@ -1079,19 +1079,19 @@ class SkinMonoBookCBT extends SkinTemplate {
        function disclaimer() {
                return cbt_value( $this->disclaimerLink(), 'lang' );
        }
-       function tagline() { 
+       function tagline() {
                # A reference to this tag existed in the old MonoBook.php, but the
                # template data wasn't set anywhere
-               return ''; 
+               return '';
        }
        function reporttime() {
                return cbt_value( $this->mOut->reportTime(), 'dynamic' );
        }
-       
+
        function msg( $name ) {
                return cbt_value( wfMsg( $name ), 'lang' );
        }
-       
+
        function fallbackmsg( $name, $fallback ) {
                $text = wfMsg( $name );
                if ( wfEmptyMsg( $name, $text ) ) {
@@ -1108,10 +1108,10 @@ class SkinMonoBookCBT extends SkinTemplate {
        function isCssPreview() {
                if ( !isset( $this->mCssPreview ) ) {
                        global $wgRequest, $wgAllowUserCss, $wgUser;
-                       $this->mCssPreview = 
+                       $this->mCssPreview =
                                $wgAllowUserCss &&
                                $wgUser->isLoggedIn() &&
-                               $this->mTitle->isCssSubpage() && 
+                               $this->mTitle->isCssSubpage() &&
                                $this->userCanPreview( $this->getAction() );
                }
                return $this->mCssPreview;
@@ -1121,10 +1121,10 @@ class SkinMonoBookCBT extends SkinTemplate {
        function isJsPreview() {
                if ( !isset( $this->mJsPreview ) ) {
                        global $wgRequest, $wgAllowUserJs, $wgUser;
-                       $this->mJsPreview = 
+                       $this->mJsPreview =
                                $wgAllowUserJs &&
                                $wgUser->isLoggedIn() &&
-                               $this->mTitle->isJsSubpage() && 
+                               $this->mTitle->isJsSubpage() &&
                                $this->userCanPreview( $this->getAction() );
                }
                return $this->mJsPreview;
@@ -1181,7 +1181,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                return $this->mThisTitleUrlForm;
        }
 
-       /** 
+       /**
         * If the current page is a user page, get the user's ID and IP. Otherwise return array(0,false)
         */
        function getUserPageIdIp() {
@@ -1196,9 +1196,9 @@ class SkinMonoBookCBT extends SkinTemplate {
                }
                return array( $this->mUserPageId, $this->mUserPageIp );
        }
-       
+
        /**
-        * Returns a permalink URL, or false if the current page is already a 
+        * Returns a permalink URL, or false if the current page is already a
         * permalink, or blank if a permalink shouldn't be displayed
         */
        function getPermalink() {
@@ -1207,12 +1207,12 @@ class SkinMonoBookCBT extends SkinTemplate {
                        $action = $this->getAction();
                        $oldid = $this->getOldId();
                        $url = '';
-                       if( $this->mTitle->getNamespace() !== NS_SPECIAL 
+                       if( $this->mTitle->getNamespace() !== NS_SPECIAL
                                        && $this->mTitle->getArticleId() != 0
-                                       && ($action == '' || $action == 'view' || $action == 'purge' ) ) 
+                                       && ($action == '' || $action == 'view' || $action == 'purge' ) )
                        {
                                if ( !$oldid ) {
-                                       $revid = $wgArticle->getLatest();                       
+                                       $revid = $wgArticle->getLatest();
                                        $url = $this->mTitle->getLocalURL( "oldid=$revid" );
                                } else {
                                        $url = false;
@@ -1233,7 +1233,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                if ( !isset( $this->mIsArticleView ) ) {
                        $oldid = $this->getOldId();
                        $diff = $this->getDiff();
-                       $this->mIsArticleView = $wgOut->isArticle() and 
+                       $this->mIsArticleView = $wgOut->isArticle() and
                                (!is_null( $oldid ) or is_null( $diff )) and 0 != $wgArticle->getID();
                }
                return $this->mIsArticleView;
@@ -1250,7 +1250,7 @@ class SkinMonoBookCBT extends SkinTemplate {
 
 
        /**
-        * Return true if the current page is editable; if edit section on right 
+        * Return true if the current page is editable; if edit section on right
         * click should be enabled.
         */
        function isEditable() {
@@ -1269,18 +1269,18 @@ class SkinMonoBookCBT extends SkinTemplate {
        function getPageUrl() {
                if ( !isset( $this->mPageUrl ) ) {
                        $this->mPageUrl = $this->mTitle->getLocalURL();
-               } 
+               }
                return $this->mPageUrl;
        }
 
        /** Make a link to a title using a template */
        function makeTemplateLink( $template, $key, $title, $text ) {
                $url = $title->getLocalUrl();
-               return strtr( $template, 
-                       array( 
+               return strtr( $template,
+                       array(
                                '$key' => $key,
                                '$classactive' => ($url == $this->getPageUrl()) ? 'class="active"' : '',
-                               '$class' => $title->getArticleID() == 0 ? 'class="new"' : '', 
+                               '$class' => $title->getArticleID() == 0 ? 'class="new"' : '',
                                '$href' => htmlspecialchars( $url ),
                                '$text' => $text
                         ) );
@@ -1288,11 +1288,11 @@ class SkinMonoBookCBT extends SkinTemplate {
 
        /** Make a link to a URL using a template */
        function makeTemplateLinkUrl( $template, $key, $url, $text ) {
-               return strtr( $template, 
-                       array( 
+               return strtr( $template,
+                       array(
                                '$key' => $key,
                                '$classactive' => ($url == $this->getPageUrl()) ? 'class="active"' : '',
-                               '$class' => '', 
+                               '$class' => '',
                                '$href' => htmlspecialchars( $url ),
                                '$text' => $text
                         ) );
@@ -1303,11 +1303,11 @@ class SkinMonoBookCBT extends SkinTemplate {
                $url = self::makeSpecialUrl( $specialName, $query );
                // Ignore the query when comparing
                $active = ($this->mTitle->getNamespace() == NS_SPECIAL && $this->mTitle->getDBkey() == $specialName);
-               return strtr( $template, 
-                       array( 
+               return strtr( $template,
+                       array(
                                '$key' => $key,
                                '$classactive' => $active ? 'class="active"' : '',
-                               '$class' => '', 
+                               '$class' => '',
                                '$href' => htmlspecialchars( $url ),
                                '$text' => $text
                         ) );
@@ -1322,7 +1322,7 @@ class SkinMonoBookCBT extends SkinTemplate {
                $this->mSearch = $wgRequest->getVal( 'search' );
                $this->mRequestValuesLoaded = true;
        }
-               
+
 
 
        /** Get the action parameter of the request */
index 26c3dc975f34c5a8d4a6d06eb50c0dc7b3926227..bd7d3e4ff057748bd6748fc481ad52335d1019d3 100644 (file)
@@ -6,8 +6,8 @@
        margin: 0 !important;
        float: none;
 }
-#column-content #content { 
-       margin-top: 3em; 
+#column-content #content {
+       margin-top: 3em;
        height: 1%;
 }
 #column-one {
index 637daae17fbbf555ad0d79d42f7bdbeb7eab0774..5aa465caf22e5dea13b4cd6618c5fc5eddcbbda7 100644 (file)
@@ -1,7 +1,7 @@
 /* IE5.5/win- only fixes */
 
-#column-content { 
-       float: none; 
+#column-content {
+       float: none;
        margin-left: 0;
        height: 1%;
 }
index bf78413d8bba6512f9e254a9162f904f296780f8..2387c8c69f00d73bbf4d31a72b8e4e363c369584 100644 (file)
@@ -1,8 +1,8 @@
 /* 6.0 - only fixes */
-/* content area */ 
+/* content area */
 /* workaround for various ie float bugs */
-#column-content { 
-       float: none; 
+#column-content {
+       float: none;
        margin-left: 0;
        height: 1%;
 }
index 43ff7076d5e8e2dd10fefa7b458f88353ca37b11..05206e113290c7b56419ad282822a63239336f72 100644 (file)
@@ -1,5 +1,5 @@
 /* 7.0 - only fixes */
-/* content area */ 
+/* content area */
 /* workaround for various ie float bugs */
 
 /* This bit is needed to make links clickable... WTF */
index f1b0571953055f755fb2b303884a1b71a853ddb0..22abaecb818e76b5f893154448bdf80d38e8688e 100644 (file)
@@ -13,7 +13,7 @@
        z-index: 3;
 }
 #portal-footer {
-       margin-left: 12em; 
+       margin-left: 12em;
 }
 /*
 #portlet-contentViews {
index 7e5809b55a64bdd07206ce007150bce602d2b4ba..3bea64f10c0def0aad188a0da7077474120bd912 100644 (file)
@@ -1004,7 +1004,7 @@ li#ca-watch, li#ca-unwatch, li#ca-varlang-0, li#ca-print {
        margin-right: 2em;
 }
 .prefsection legend {
-       font-weight: bold;   
+       font-weight: bold;
 }
 .prefsection table, .prefsection legend {
        background-color: #F9F9F9;
@@ -1468,7 +1468,7 @@ tr.sv-space td { display: none; }
 .TablePager { min-width: 80%; }
 .TablePager_nav a { text-decoration: none; }
 .TablePager { border-collapse: collapse; }
-.TablePager, .TablePager td, .TablePager th { 
+.TablePager, .TablePager td, .TablePager th {
        border: 1px solid #aaaaaa;
        padding: 0 0.15em 0 0.15em;
 }
index fbd5ab35eafb4447c31d68d2448e7a79afcd2b7d..24d48bc71d48420f359f07d79abeca3d031b9d50 100644 (file)
@@ -160,8 +160,8 @@ li#ca-watch {
        margin-right: 13.6em;
        border-left: 0;
        border-right: 1px solid #fabd23;
-} 
-* html #column-content { 
+}
+* html #column-content {
        float: none;
        margin-left: 0;
        margin-right: 0;
index 1ba1431df00fb021b80fb025eca26bdd9f3a21bc..b4f95a66df5012550db4646318114408a8a1ed4d 100644 (file)
@@ -106,8 +106,8 @@ div.tleft, div.floatleft, table.floatleft {
        margin-right: 13.6em;
        border-left: 0;
        border-right: 1px solid #fabd23;
-} 
-* html #column-content { 
+}
+* html #column-content {
        float: none;
        margin-left: 0;
        margin-right: 0;
index 0e01a1df615000fcbf686dc16581d1e9c4ddb96b..626768d49527407b4543c698a28ec74698551c2e 100644 (file)
@@ -94,7 +94,7 @@
 
      .texty h2{text-align: center; text-transform: uppercase; color: maroon; font-size: 20px; padding: 0; margin: 0}
 
-     
+
 
      #OpenLayers.Control.Attribution_3{background-color: black;}
 
 
      .middlebox{background-color: #ddd !important;}
 
-     #tab-projects #content li{font-size: 18px !important; line-height: 26px;}    
+     #tab-projects #content li{font-size: 18px !important; line-height: 26px;}
index 70f98d4629d0707a9fcac763afee4638bb47344b..14866ba0386427050e3bf6bd9341ffd7852defc8 100644 (file)
@@ -6,9 +6,9 @@ body {
 }
 
 h3 {
-  font-size: 20px; 
+  font-size: 20px;
 }
-  
+
 .lp-banner {
   box-shadow: 0px 1px 5px rgba(255, 255, 255, 0.7);
   margin-bottom: 20px;
@@ -135,11 +135,11 @@ h3 {
 
 
 .fsf-donate-button {
-  margin-left: 24%; 
+  margin-left: 24%;
   margin-top: 5px;
   margin-bottom: 10px;
   width:56%;
-}      
+}
 
 @media (max-width:768px) {
        .fsf-donate-button {
@@ -147,7 +147,7 @@ h3 {
          margin-top: 5px;
          margin-bottom: 10px;
          width:22%;
-       }       
+       }
 }
 
 @media (min-width:320px) and (max-width:360px) {
index 5fee0685496c143a002985cdfb832dfd3001e6fc..b783061e6dbcb38762696d9bce312e70851cff89 100644 (file)
 <glyph unicode="&#x1f525;" d="M400 755q2 -12 8 -41.5t8 -43t6 -39.5t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85t5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5 q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129 q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5z" />
 <glyph unicode="&#x1f527;" d="M948 778l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138z" />
 </font>
-</defs></svg> 
\ No newline at end of file
+</defs></svg>
\ No newline at end of file
index 2753a0664d3f98e7e6ffd8a0e12ae7e8b42b24bc..c3450cc3239b8e5e8493812ee35096427b89e48b 100644 (file)
@@ -537,7 +537,7 @@ CRM.validate = CRM.validate || {
       $('#crm-container #mainTabContainer.narrowpage #contactTopBar tr.added').detach();
     }
     var cformwidth = $('#crm-container #Contact .contact_basic_information-section').width();
-  
+
     if (cformwidth < 720) {
       $('#crm-container .contact_basic_information-section').addClass('narrowform');
       $('#crm-container .contact_basic_information-section table.form-layout-compressed td .helpicon').parent().addClass('hashelpicon');
index 15850528c54f1f4b56dd85cb8a644854229139fd..a831c777bd07d206e659da12321c9a0ceb501940 100644 (file)
@@ -12,7 +12,7 @@
  */
 
 ;(function($) {
-       
+
 $.fn.extend({
        autocomplete: function(urlOrData, options) {
                var isUrl = typeof urlOrData == "string";
@@ -22,13 +22,13 @@ $.fn.extend({
                        delay: isUrl ? $.Autocompleter.defaults.delay : 10,
                        max: options && !options.scroll ? 10 : 150
                }, options);
-               
+
                // if highlight is set to false, replace it with a do-nothing function
                options.highlight = options.highlight || function(value) { return value; };
-               
+
                // if the formatMatch option is not specified, then use formatItem for backwards compatibility
                options.formatMatch = options.formatMatch || options.formatItem;
-               
+
                return this.each(function() {
                        new $.Autocompleter(this, options);
                });
@@ -77,9 +77,9 @@ $.Autocompleter = function(input, options) {
                mouseDownOnSelect: false
        };
        var select = $.Autocompleter.Select(options, input, selectCurrent, config);
-       
+
        var blockSubmit;
-       
+
        // prevent form submit in opera when selecting with return key
        $.browser.opera && $(input.form).bind("submit.autocomplete", function() {
                if (blockSubmit) {
@@ -87,13 +87,13 @@ $.Autocompleter = function(input, options) {
                        return false;
                }
        });
-       
+
        // only opera doesn't trigger keydown multiple times while pressed, others don't work with keypress at all
        $input.bind(($.browser.opera ? "keypress" : "keydown") + ".autocomplete", function(event) {
                // track last key pressed
                lastKeyPressCode = event.keyCode;
                switch(event.keyCode) {
-               
+
                        case KEY.UP:
                                event.preventDefault();
                                if ( select.visible() ) {
@@ -102,7 +102,7 @@ $.Autocompleter = function(input, options) {
                                        onChange(0, true);
                                }
                                break;
-                               
+
                        case KEY.DOWN:
                                event.preventDefault();
                                if ( select.visible() ) {
@@ -111,7 +111,7 @@ $.Autocompleter = function(input, options) {
                                        onChange(0, true);
                                }
                                break;
-                               
+
                        case KEY.PAGEUP:
                                event.preventDefault();
                                if ( select.visible() ) {
@@ -120,7 +120,7 @@ $.Autocompleter = function(input, options) {
                                        onChange(0, true);
                                }
                                break;
-                               
+
                        case KEY.PAGEDOWN:
                                event.preventDefault();
                                if ( select.visible() ) {
@@ -129,7 +129,7 @@ $.Autocompleter = function(input, options) {
                                        onChange(0, true);
                                }
                                break;
-                       
+
                        // matches also semicolon
                        case options.multiple && $.trim(options.multipleSeparator) == "," && KEY.COMMA:
                        case KEY.TAB:
@@ -141,11 +141,11 @@ $.Autocompleter = function(input, options) {
                                        return false;
                                }
                                break;
-                               
+
                        case KEY.ESC:
                                select.hide();
                                break;
-                               
+
                        default:
                                clearTimeout(timeout);
                                timeout = setTimeout(onChange, options.delay);
@@ -196,21 +196,21 @@ $.Autocompleter = function(input, options) {
                $input.unbind();
                $(input.form).unbind(".autocomplete");
        }).bind("input", function() {
-        // needed for chinese input? see CRM-6135 and http://plugins.jquery.com/node/14682 
-        // this breaks "delay" though, so lets only use it with chinese minChars setting 
-        if (options.minChars <= 1) { 
-            onChange(0, true); 
-        } 
+        // needed for chinese input? see CRM-6135 and http://plugins.jquery.com/node/14682
+        // this breaks "delay" though, so lets only use it with chinese minChars setting
+        if (options.minChars <= 1) {
+            onChange(0, true);
+        }
   });
-       
+
        function selectCurrent() {
                var selected = select.selected();
                if( !selected )
                        return false;
-               
+
                var v = selected.result;
                previousValue = v;
-               
+
                if ( options.multiple ) {
                        var words = trimWords($input.val());
                        if ( words.length > 1 ) {
@@ -218,26 +218,26 @@ $.Autocompleter = function(input, options) {
                        }
                        v += options.multipleSeparator;
                }
-               
+
                $input.val(v);
                hideResultsNow();
                $input.trigger("result", [selected.data, selected.value]);
                return true;
        }
-       
+
        function onChange(crap, skipPrevCheck) {
                if( lastKeyPressCode == KEY.DEL ) {
                        select.hide();
                        return;
                }
-               
+
                var currentValue = $input.val();
-               
+
                if ( !skipPrevCheck && currentValue == previousValue )
                        return;
-               
+
                previousValue = currentValue;
-               
+
                currentValue = lastWord(currentValue);
                if ( currentValue.length >= options.minChars) {
                        $input.addClass(options.loadingClass);
@@ -249,7 +249,7 @@ $.Autocompleter = function(input, options) {
                        select.hide();
                }
        };
-       
+
        function trimWords(value) {
                if ( !value ) {
                        return [""];
@@ -262,14 +262,14 @@ $.Autocompleter = function(input, options) {
                });
                return result;
        }
-       
+
        function lastWord(value) {
                if ( !options.multiple )
                        return value;
                var words = trimWords(value);
                return words[words.length - 1];
        }
-       
+
        // fills in the input box w/the first match (assumed to be the best match)
        // q: the term entered
        // sValue: the first matching result
@@ -335,14 +335,14 @@ $.Autocompleter = function(input, options) {
                        success(term, data);
                // if an AJAX url has been supplied, try loading the data now
                } else if( (typeof options.url == "string") && (options.url.length > 0) ){
-                       
+
                        var extraParams = {
                                timestamp: +new Date()
                        };
                        $.each(options.extraParams, function(key, param) {
                                extraParams[key] = typeof param == "function" ? param() : param;
                        });
-                       
+
                        $.ajax({
                                // try to leverage ajaxQueue plugin to abort previous requests
                                mode: "abort",
@@ -366,7 +366,7 @@ $.Autocompleter = function(input, options) {
                        failure(term);
                }
        };
-       
+
        function parse(data) {
                var parsed = [];
                var rows = data.split("\n");
@@ -421,25 +421,25 @@ $.Autocompleter.Cache = function(options) {
 
        var data = {};
        var length = 0;
-       
+
        function matchSubset(s, sub) {
-               if (!options.matchCase) 
+               if (!options.matchCase)
                        s = s.toLowerCase();
                var i = s.indexOf(sub);
                if (i == -1) return false;
                return i == 0 || options.matchContains;
        };
-       
+
        function add(q, value) {
                if (length > options.cacheLength){
                        flush();
                }
-               if (!data[q]){ 
+               if (!data[q]){
                        length++;
                }
                data[q] = value;
        }
-       
+
        function populate(){
                if( !options.data ) return false;
                // track the matches
@@ -448,23 +448,23 @@ $.Autocompleter.Cache = function(options) {
 
                // no url was specified, we need to adjust the cache length to make sure it fits the local data store
                if( !options.url ) options.cacheLength = 1;
-               
+
                // track all options for minChars = 0
                stMatchSets[""] = [];
-               
+
                // loop through the array and create a lookup structure
                for ( var i = 0, ol = options.data.length; i < ol; i++ ) {
                        var rawValue = options.data[i];
                        // if rawValue is a string, make an array otherwise just reference the array
                        rawValue = (typeof rawValue == "string") ? [rawValue] : rawValue;
-                       
+
                        var value = options.formatMatch(rawValue, i+1, options.data.length);
                        if ( value === false )
                                continue;
-                               
+
                        var firstChar = value.charAt(0).toLowerCase();
                        // if no lookup array for this character exists, look it up now
-                       if( !stMatchSets[firstChar] ) 
+                       if( !stMatchSets[firstChar] )
                                stMatchSets[firstChar] = [];
 
                        // if the match is a string
@@ -473,7 +473,7 @@ $.Autocompleter.Cache = function(options) {
                                data: rawValue,
                                result: options.formatResult && options.formatResult(rawValue) || value
                        };
-                       
+
                        // push the current match into the set list
                        stMatchSets[firstChar].push(row);
 
@@ -491,15 +491,15 @@ $.Autocompleter.Cache = function(options) {
                        add(i, value);
                });
        }
-       
+
        // populate any existing data
        setTimeout(populate, 25);
-       
+
        function flush(){
                data = {};
                length = 0;
        }
-       
+
        return {
                flush: flush,
                add: add,
@@ -507,7 +507,7 @@ $.Autocompleter.Cache = function(options) {
                load: function(q) {
                        if (!options.cacheLength || !length)
                                return null;
-                       /* 
+                       /*
                         * if dealing w/local data and matchContains than we must make sure
                         * to loop through all the data collections looking for matches
                         */
@@ -527,9 +527,9 @@ $.Autocompleter.Cache = function(options) {
                                                        }
                                                });
                                        }
-                               }                               
+                               }
                                return csub;
-                       } else 
+                       } else
                        // if the exact item exists, use it
                        if (data[q]){
                                return data[q];
@@ -557,7 +557,7 @@ $.Autocompleter.Select = function (options, input, select, config) {
        var CLASSES = {
                ACTIVE: "ac_over"
        };
-       
+
        var listItems,
                active = -1,
                data,
@@ -565,7 +565,7 @@ $.Autocompleter.Select = function (options, input, select, config) {
                needsInit = true,
                element,
                list;
-       
+
        // Create results
        function init() {
                if (!needsInit)
@@ -576,15 +576,15 @@ $.Autocompleter.Select = function (options, input, select, config) {
                .addClass(options.resultsClass)
                .css("position", "absolute")
                .appendTo(document.body);
-                
+
                innerElement = $("<div/>")
                .addClass('ac_results-inner')
                .appendTo(element);
-       
+
                list = $("<ul/>").appendTo(innerElement).mouseover( function(event) {
                        if(target(event).nodeName && target(event).nodeName.toUpperCase() == 'LI') {
                    active = $("li", list).removeClass(CLASSES.ACTIVE).index(target(event));
-                           $(target(event)).addClass(CLASSES.ACTIVE);            
+                           $(target(event)).addClass(CLASSES.ACTIVE);
                }
                }).click(function(event) {
                        $(target(event)).addClass(CLASSES.ACTIVE);
@@ -597,13 +597,13 @@ $.Autocompleter.Select = function (options, input, select, config) {
                }).mouseup(function() {
                        config.mouseDownOnSelect = false;
                });
-               
+
                if( options.width > 0 )
                        element.css("width", options.width);
-                       
+
                needsInit = false;
-       } 
-       
+       }
+
        function target(event) {
                var element = event.target;
                while(element && element.tagName != "LI")
@@ -630,7 +630,7 @@ $.Autocompleter.Select = function (options, input, select, config) {
             }
         }
        };
-       
+
        function movePosition(step) {
                active += step;
                if (active < 0) {
@@ -639,13 +639,13 @@ $.Autocompleter.Select = function (options, input, select, config) {
                        active = 0;
                }
        }
-       
+
        function limitNumberOfItems(available) {
                return options.max && options.max < available
                        ? options.max
                        : available;
        }
-       
+
        function fillList() {
                list.empty();
                var max = limitNumberOfItems(data.length);
@@ -667,7 +667,7 @@ $.Autocompleter.Select = function (options, input, select, config) {
                if ( $.fn.bgiframe )
                        list.bgiframe();
        }
-       
+
        return {
                display: function(d, q) {
                        init();
@@ -719,7 +719,7 @@ $.Autocompleter.Select = function (options, input, select, config) {
                                        maxHeight: options.scrollHeight,
                                        overflow: 'auto'
                                });
-                               
+
                 if($.browser.msie && typeof document.body.style.maxHeight === "undefined") {
                                        var listHeight = 0;
                                        listItems.each(function() {
@@ -732,7 +732,7 @@ $.Autocompleter.Select = function (options, input, select, config) {
                                                listItems.width( list.width() - parseInt(listItems.css("padding-left")) - parseInt(listItems.css("padding-right")) );
                                        }
                 }
-                
+
             }
                },
                selected: function() {
index 9663749dff9bc4de351e3a501e73cd5898b163a2..f1c4e8e19128e324c6fd30474767c81441bd319e 100644 (file)
                                s = '<div class="blockUI ' + opts.blockMsgClass + ' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:'+(z+10)+';display:none;position:absolute">';
                                if ( opts.title ) {
                                        s += '<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(opts.title || '&nbsp;')+'</div>';
-                               }  
+                               }
                                s += '<div class="ui-widget-content ui-dialog-content"></div>';
                                s += '</div>';
                        }
index 2fd084cbd4509883e6ee6e65aa9f32f62596d180..9364fddd4038599bafa0c344a5362f019c35f73d 100644 (file)
@@ -1,9 +1,9 @@
 /*
  * Alternate Select Multiple (asmSelect) 1.0.4a beta - jQuery Plugin
  * http://www.ryancramer.com/projects/asmselect/
- * 
+ *
  * Copyright (c) 2009 by Ryan Cramer - http://www.ryancramer.com
- * 
+ *
  * Dual licensed under the MIT (MIT-LICENSE.txt)
  * and GPL (GPL-LICENSE.txt) licenses.
  *
 
                        listType: 'ul',                                         // Ordered list 'ol', or unordered list 'ul'
                        sortable: false,                                        // Should the list be sortable?
-                       highlight: false,                                       // Use the highlight feature? 
+                       highlight: false,                                       // Use the highlight feature?
                        animate: false,                                         // Animate the the adding/removing of items in the list?
                        addItemTarget: 'bottom',                                // Where to place new selected items in list: top or bottom
                        hideWhenAdded: false,                                   // Hide the option when added to the list? works only in FF
-                       debugMode: false,                                       // Debug mode keeps original select visible 
+                       debugMode: false,                                       // Debug mode keeps original select visible
 
                        removeLabel: 'X',                                       // Text used in the "remove" link
                        highlightAddedLabel: 'Added: ',                         // Text that precedes highlight of added item
@@ -40,7 +40,7 @@
                        respectParents: false                           // Force selection of "parent" option items
                        };
 
-               $.extend(options, customOptions); 
+               $.extend(options, customOptions);
 
                return this.each(function(index) {
 
                                // initialize the alternate select multiple
 
                                // this loop ensures uniqueness, in case of existing crmasmSelects placed by ajax (1.0.3)
-                               while($("#" + options.containerClass + index).size() > 0) index++; 
+                               while($("#" + options.containerClass + index).size() > 0) index++;
 
                                $select = $("<select></select>")
                                        .addClass(options.selectClass)
                                        .attr('name', options.selectClass + index)
-                                       .attr('id', options.selectClass + index); 
+                                       .attr('id', options.selectClass + index);
 
-                               $selectRemoved = $("<select></select>"); 
+                               $selectRemoved = $("<select></select>");
 
                                $ol = $("<" + options.listType + "></" + options.listType + ">")
                                        .addClass(options.listClass)
-                                       .attr('id', options.listClass + index); 
+                                       .attr('id', options.listClass + index);
 
                                $container = $("<div></div>")
-                                       .addClass(options.containerClass) 
-                                       .attr('id', options.containerClass + index); 
+                                       .addClass(options.containerClass)
+                                       .attr('id', options.containerClass + index);
 
                                buildSelect();
 
                                $select.change(selectChangeEvent)
-                                       .click(selectClickEvent); 
+                                       .click(selectClickEvent);
 
                                $original.change(originalChangeEvent)
                                        .wrap($container).before($select).before($ol);
 
                                                $(this).children("li").each(function(n) {
 
-                                                       $option = $('#' + $(this).attr('rel')); 
+                                                       $option = $('#' + $(this).attr('rel'));
 
                                                        if($(this).is(".ui-sortable-helper")) {
-                                                               updatedOptionId = $option.attr('id'); 
+                                                               updatedOptionId = $option.attr('id');
                                                                return;
                                                        }
 
-                                                       $original.append($option); 
-                                               }); 
+                                                       $original.append($option);
+                                               });
 
-                                               if(updatedOptionId) triggerOriginalChange(updatedOptionId, 'sort'); 
+                                               if(updatedOptionId) triggerOriginalChange(updatedOptionId, 'sort');
                                        }
 
-                               }).addClass(options.listSortableClass); 
+                               }).addClass(options.listSortableClass);
                        }
 
                        function selectChangeEvent(e) {
-                               
+
                                // an item has been selected on the regular select we created
                                // check to make sure it's not an IE screwup, and add it to the list
 
                                if($.browser.msie && $.browser.version < 7 && !ieClick) return;
-                               var id = $(this).children("option:selected").slice(0,1).attr('rel'); 
-                               addListItem(id);        
-                               ieClick = false; 
+                               var id = $(this).children("option:selected").slice(0,1).attr('rel');
+                               addListItem(id);
+                               ieClick = false;
                                triggerOriginalChange(id, 'add'); // for use by user-defined callbacks
                        }
 
                                // making sure a click preceded the change() event reduces the chance
                                // if unintended items being added. there may be a better solution?
 
-                               ieClick = true; 
+                               ieClick = true;
                        }
 
                        function originalChangeEvent(e) {
                                // on the original <select multiple>, so rebuild ours
 
                                if(ignoreOriginalChangeEvent) {
-                                       ignoreOriginalChangeEvent = false; 
-                                       return; 
+                                       ignoreOriginalChangeEvent = false;
+                                       return;
                                }
 
                                $select.empty();
                                // build or rebuild the new select that the user
                                // will select items from
 
-                               buildingSelect = true; 
+                               buildingSelect = true;
 
                                // add a first option to be the home option / default selectLabel
-                               $select.prepend("<option>" + $original.attr('title') + "</option>"); 
+                               $select.prepend("<option>" + $original.attr('title') + "</option>");
 
                                $original.children("option").each(function(n) {
 
-                                       var $t = $(this); 
-                                       var id; 
+                                       var $t = $(this);
+                                       var id;
 
-                                       if(!$t.attr('id')) $t.attr('id', 'asm' + index + 'option' + n); 
+                                       if(!$t.attr('id')) $t.attr('id', 'asm' + index + 'option' + n);
                                        id = $t.attr('id');
-                                       classes = $t.attr('class'); 
+                                       classes = $t.attr('class');
 
                                        if($t.is(":selected")) {
-                                               addListItem(id); 
-                                               addSelectOption(id, classes, true);                                             
+                                               addListItem(id);
+                                               addSelectOption(id, classes, true);
                                        } else {
-                                               addSelectOption(id,classes); 
+                                               addSelectOption(id,classes);
                                        }
                                });
 
                                if(!options.debugMode) $original.hide(); // IE6 requires this on every buildSelect()
                                selectFirstItem();
-                               buildingSelect = false; 
+                               buildingSelect = false;
                        }
 
                        function addSelectOption(optionId, optionClasses, disabled) {
                                // add an <option> to the <select>
                                // used only by buildSelect()
 
-                               if(disabled == undefined) var disabled = false; 
+                               if(disabled == undefined) var disabled = false;
 
-                               var $O = $('#' + optionId); 
+                               var $O = $('#' + optionId);
                                var $option = $("<option>" + $O.text() + "</option>")
                                        .val($O.val())
                                        .attr('rel', optionId)
                                        .addClass(optionClasses);
 
-                               if(disabled) disableSelectOption($option); 
+                               if(disabled) disableSelectOption($option);
 
-                               $select.append($option); 
+                               $select.append($option);
                        }
 
                        function selectFirstItem() {
 
                                // select the firm item from the regular select that we created
 
-                               $select.children(":eq(0)").attr("selected", true); 
+                               $select.children(":eq(0)").attr("selected", true);
                        }
 
                        function disableSelectOption($option) {
 
                                // add a new item to the html list
 
-                               var $O = $('#' + optionId); 
+                               var $O = $('#' + optionId);
 
                                if(!$O) return; // this is the first item, selectLabel
 
                                        .attr("href", "#")
                                        .addClass(options.removeClass)
                                        .prepend(options.removeLabel)
-                                       .click(function() { 
-                                               dropListItem($(this).parent('li').attr('rel')); 
-                                               return false; 
-                                       }); 
+                                       .click(function() {
+                                               dropListItem($(this).parent('li').attr('rel'));
+                                               return false;
+                                       });
 
                                var $itemLabel = $("<span></span>")
                                        .addClass(options.listItemLabelClass)
-                                       .html($O.html()); 
+                                       .html($O.html());
 
                                var $item = $("<li></li>")
                                        .attr('rel', optionId)
 
                                if(!buildingSelect) {
                                        if($O.is(":selected")) return; // already have it
-                                       $O.attr('selected', true); 
+                                       $O.attr('selected', true);
                                }
 
                                if(options.addItemTarget == 'top' && !buildingSelect) {
-                                       $ol.prepend($item); 
-                                       if(options.sortable) $original.prepend($O); 
+                                       $ol.prepend($item);
+                                       if(options.sortable) $original.prepend($O);
                                } else {
-                                       $ol.append($item); 
-                                       if(options.sortable) $original.append($O); 
+                                       $ol.append($item);
+                                       if(options.sortable) $original.append($O);
                                }
 
-                               addListItemShow($item); 
+                               addListItemShow($item);
 
                                disableSelectOption($("[rel=" + optionId + "]", $select));
 
                                if(!buildingSelect) {
-                                       setHighlight($item, options.highlightAddedLabel); 
+                                       setHighlight($item, options.highlightAddedLabel);
                                        selectFirstItem();
-                                       if(options.sortable) $ol.sortable("refresh");   
+                                       if(options.sortable) $ol.sortable("refresh");
                                }
-                               
+
                                if(options.respectParents) {
-                               
+
                                if($O.hasClass('child')) {
                                        parentName = $O.attr('class').split('parent-')[1];
                                        parentName = parentName.split(' ')[0];
                                        $item.animate({
                                                opacity: "show",
                                                height: "show"
-                                       }, 100, "swing", function() { 
+                                       }, 100, "swing", function() {
                                                $item.animate({
                                                        height: "+=2px"
                                                }, 50, "swing", function() {
                                                        $item.animate({
                                                                height: "-=2px"
-                                                       }, 25, "swing"); 
-                                               }); 
-                                       }); 
+                                                       }, 25, "swing");
+                                               });
+                                       });
                                } else {
                                        $item.show();
                                }
 
                                // remove an item from the html list
 
-                               if(highlightItem == undefined) var highlightItem = true; 
-                               var $O = $('#' + optionId); 
+                               if(highlightItem == undefined) var highlightItem = true;
+                               var $O = $('#' + optionId);
 
-                               $O.attr('selected', false); 
+                               $O.attr('selected', false);
                                $item = $ol.children("li[rel=" + optionId + "]");
 
-                               dropListItemHide($item); 
+                               dropListItemHide($item);
                                enableSelectOption($("[rel=" + optionId + "]", options.removeWhenAdded ? $selectRemoved : $select));
 
-                               if(highlightItem) setHighlight($item, options.highlightRemovedLabel); 
+                               if(highlightItem) setHighlight($item, options.highlightRemovedLabel);
+
+                               triggerOriginalChange(optionId, 'drop');
 
-                               triggerOriginalChange(optionId, 'drop'); 
-                               
                        }
 
                        function dropListItemHide($item) {
                                                }, 50, "swing", function() {
                                                        $prevItem.animate({
                                                                height: "+=2px"
-                                                       }, 100, "swing"); 
-                                               }); 
-                                               $item.remove(); 
-                                       }); 
-                                       
+                                                       }, 100, "swing");
+                                               });
+                                               $item.remove();
+                                       });
+
                                } else {
-                                       $item.remove(); 
+                                       $item.remove();
                                }
                        }
 
                                // directly after the <select> single
                                // fade it in quickly, then fade it out
 
-                               if(!options.highlight) return; 
+                               if(!options.highlight) return;
 
                                $select.next("#" + options.highlightClass + index).remove();
 
                                        .hide()
                                        .addClass(options.highlightClass)
                                        .attr('id', options.highlightClass + index)
-                                       .html(label + $item.children("." + options.listItemLabelClass).slice(0,1).text()); 
-                                       
-                               $select.after($highlight); 
+                                       .html(label + $item.children("." + options.listItemLabelClass).slice(0,1).text());
+
+                               $select.after($highlight);
 
                                $highlight.fadeIn("fast", function() {
-                                       setTimeout(function() { $highlight.fadeOut("slow"); }, 50); 
-                               }); 
+                                       setTimeout(function() { $highlight.fadeOut("slow"); }, 50);
+                               });
                        }
 
                        function triggerOriginalChange(optionId, type) {
                                // trigger a change event on the original select multiple
                                // so that other scripts can pick them up
 
-                               ignoreOriginalChangeEvent = true; 
-                               $option = $("#" + optionId); 
+                               ignoreOriginalChangeEvent = true;
+                               $option = $("#" + optionId);
 
                                $original.trigger('change', [{
                                        'option': $option,
                                        'id': optionId,
                                        'item': $ol.children("[rel=" + optionId + "]"),
                                        'type': type
-                               }]); 
+                               }]);
                        }
 
                        init();
                });
        };
 
-})(jQuery); 
+})(jQuery);
index a963a36eabc4238ef10a1b6f1a205827dab7be47..80b90c7f6240d3cb99d18f4bb13032c5cf712fd8 100644 (file)
@@ -27,7 +27,7 @@
 *
 *
 * This offers two features:
-* - crmEditable() edit in place of a single field 
+* - crmEditable() edit in place of a single field
 *  (mostly a wrapper that binds jeditable features with the ajax api and replies on crm-entity crmf-{field} html conventions)
 *  if you want to add an edit in place on a template:
 *  - add a class crm-entity and id {EntityName}-{Entityid} higher in the dom
@@ -35,7 +35,7 @@
 *  - add data-action=create if you need to specify the api action to call (default setvalue)
 *  crmf- stands for crm field
 * - crmForm()
-*   this embed a civicrm form and make it in place (load+ajaxForm) 
+*   this embed a civicrm form and make it in place (load+ajaxForm)
 *   to make it easier to customize the form (eg. hide a button...) it triggers a 'load' event on the form. you can then catch the load on your code (using the $('#id_of_the_form').on(function(){//do something
 */
 
@@ -72,8 +72,8 @@
       // param in : a dom object that contains the field name as a class crmf-xxx
       var getFieldName = function (field) {
         if ($(field).data('field')) {
-           return $(field).data('field');   
-        }  
+           return $(field).data('field');
+        }
         var fieldName=field.className.match(/crmf-(\S*)/)[1];
         if (!fieldName) {
           console && console.log && console.log("Couldn't get the crm-editable field name to modify. You need to set crmf-{field_name} or data-{field_name}");
@@ -90,7 +90,7 @@
           if  (!getEntityID (this,function (e,id) {
             entity=e;
             params.id = id;
-            
+
           })) { return };
 
           params['field']=getFieldName(this);
       return this.each(function() {
         var $i = $(this);
         var fieldName = "";
-      
+
         if (this.nodeName == "INPUT" && this.type=="checkbox") {
           checkable.call(this,this);
           return;
               ,success: function (result) {
                 if ($i.hasClass('crm-dialog')) {
                   $('.ui-dialog').dialog('close').remove();
-                } else 
+                } else
                   $i.next().slideUp().remove();
                 $i.trigger('success',result);
               }
             var id= $i.closest('.crm-entity').attr('id');
             if (id) {
               var e=id.match(/(\S*)-(\S*)/);
-               if (!e) 
+               if (!e)
                  console && console.log && console.log("Couldn't get the entity id. You need to set class='crm-entity' id='{entityName}-{id}'");
               formSettings.entity=e[1];
               formSettings.id=e[2];
-            } 
+            }
             if ($i.hasClass('crm-dialog')) {
               $i.click (function () {
                 var $n=$('<div>Loading</div>').appendTo('body');
                 $n.dialog ({modal:true,width:500});
                 $n.crmForm (formSettings);
-                return false; 
+                return false;
               });
             } else {
               $i.click (function () {
                   return false;
                 };
                 $n.crmForm (formSettings);
-                return false; 
+                return false;
               });
             }
             return;
             $this.html("<div class='crm-editable-saving'>Saving...</div>");
             return true;
           },
-          success:function(response) { 
+          success:function(response) {
             if (response.indexOf('crm-error') >= 0) { // we got an error, re-display the page
               $this.html(response);
               formLoaded(target);
                 settings.success(response);
             }
           }
-        }).append('<input type="hidden" name="snippet" value="1"/>'+destination).trigger('load'); 
+        }).append('<input type="hidden" name="snippet" value="1"/>'+destination).trigger('load');
 
         settings.load(target);
       };
index 4280c6d631ed6338bb330d3a346aeb295016bd28..e6595da0e7af1c8442bbc15c3f058d671aba1346 100644 (file)
@@ -3,14 +3,14 @@
  * Version:     1.8.2
  * Author:      Allan Jardine (www.sprymedia.co.uk)
  * Info:        www.datatables.net
- * 
+ *
  * Copyright 2008-2011 Allan Jardine, all rights reserved.
  *
  * This source file is free software, under either the GPL v2 license or a
  * BSD style license, as supplied with this software.
- * 
- * This source file is distributed in the hope that it will be useful, but 
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
+ *
+ * This source file is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
  */
 (function(i,za,p){i.fn.dataTableSettings=[];var D=i.fn.dataTableSettings;i.fn.dataTableExt={};var n=i.fn.dataTableExt;n.sVersion="1.8.2";n.sErrMode="alert";n.iApiIndex=0;n.oApi={};n.afnFiltering=[];n.aoFeatures=[];n.ofnSearch={};n.afnSortData=[];n.oStdClasses={sPagePrevEnabled:"paginate_enabled_previous",sPagePrevDisabled:"paginate_disabled_previous",sPageNextEnabled:"paginate_enabled_next",sPageNextDisabled:"paginate_disabled_next",sPageJUINext:"",sPageJUIPrev:"",sPageButton:"paginate_button",sPageButtonActive:"paginate_active",
index b244f7e388408db7f1026446544266d297c7b58c..52a3276668083a5358074e64e94710e2d845d3e4 100644 (file)
@@ -39,7 +39,7 @@
                        target: '#output'
                });
        });
-       
+
        You can also use ajaxForm with delegation (requires jQuery v1.7+), so the
        form does not have to exist when you invoke ajaxForm:
 
@@ -47,7 +47,7 @@
                delegation: true,
                target: '#output'
        });
-       
+
        When using ajaxForm, the ajaxSubmit function will be invoked for you
        at the appropriate time.
 */
@@ -71,7 +71,7 @@ $.fn.ajaxSubmit = function(options) {
                log('ajaxSubmit: skipping submit process - no element selected');
                return this;
        }
-       
+
        var method, action, url, $form = this;
 
        if (typeof options == 'function') {
@@ -113,7 +113,7 @@ $.fn.ajaxSubmit = function(options) {
        if ( traditional === undefined ) {
                traditional = $.ajaxSettings.traditional;
        }
-       
+
     var elements = [];
     var qx, a = this.formToArray(options.semantic, elements);
        if (options.data) {
@@ -137,7 +137,7 @@ $.fn.ajaxSubmit = function(options) {
        var q = $.param(a, traditional);
        if (qx) {
                q = ( q ? (q + '&' + qx) : qx );
-       }       
+       }
        if (options.type.toUpperCase() == 'GET') {
                options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
                options.data = null;  // data is null for 'get'
@@ -167,7 +167,7 @@ $.fn.ajaxSubmit = function(options) {
        }
 
        options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
-        var context = options.context || this ;    // jQuery 1.4+ supports scope context 
+        var context = options.context || this ;    // jQuery 1.4+ supports scope context
                for (var i=0, max=callbacks.length; i < max; i++) {
                        callbacks[i].apply(context, [data, status, xhr || $form, $form]);
                }
@@ -177,7 +177,7 @@ $.fn.ajaxSubmit = function(options) {
 
     // [value] (issue #113), also see comment:
     // https://github.com/malsup/form/commit/588306aedba1de01388032d5f42a60159eea9228#commitcomment-2180219
-    var fileInputs = $('input[type=file]:enabled[value!=""]', this); 
+    var fileInputs = $('input[type=file]:enabled[value!=""]', this);
 
        var hasFileInputs = fileInputs.length > 0;
        var mp = 'multipart/form-data';
@@ -301,7 +301,7 @@ $.fn.ajaxSubmit = function(options) {
             deferred.reject();
             return deferred;
         }
-        
+
                if (a) {
                                // ensure that every serialized input is still enabled
             for (i=0; i < elements.length; i++) {
@@ -349,7 +349,7 @@ $.fn.ajaxSubmit = function(options) {
                 if (io.contentWindow.document.execCommand) {
                         io.contentWindow.document.execCommand('Stop');
                 }
-                } 
+                }
                 catch(ignore) {}
 
                                $io.attr('src', s.iframeSrc); // abort op in progress
@@ -397,7 +397,7 @@ $.fn.ajaxSubmit = function(options) {
                                }
                        }
                }
-               
+
                var CLIENT_TIMEOUT_ABORT = 1;
                var SERVER_ABORT = 2;
 
@@ -405,7 +405,7 @@ $.fn.ajaxSubmit = function(options) {
                        var doc = frame.contentWindow ? frame.contentWindow.document : frame.contentDocument ? frame.contentDocument : frame.document;
                        return doc;
                }
-               
+
                // Rails CSRF hack (thanks to Yvan Barthelemy)
                var csrf_token = $('meta[name=csrf-token]').attr('content');
                var csrf_param = $('meta[name=csrf-param]').attr('content');
@@ -440,7 +440,7 @@ $.fn.ajaxSubmit = function(options) {
                        if (s.timeout) {
                                timeoutHandle = setTimeout(function() { timedOut = true; cb(CLIENT_TIMEOUT_ABORT); }, s.timeout);
                        }
-                       
+
                        // look for server aborts
                        function checkState() {
                                try {
@@ -539,7 +539,7 @@ $.fn.ajaxSubmit = function(options) {
                        }
             if (io.detachEvent)
                 io.detachEvent('onload', cb);
-            else    
+            else
                 io.removeEventListener('load', cb, false);
 
                        var status = 'success', errMsg;
@@ -595,7 +595,7 @@ $.fn.ajaxSubmit = function(options) {
                                                var pre = doc.getElementsByTagName('pre')[0];
                                                var b = doc.getElementsByTagName('body')[0];
                                                if (pre) {
-                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;  
+                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;
                                                }
                                                else if (b) {
                           xhr.responseText = b.innerHTML ? b.innerHTML : b.textContent;
@@ -718,7 +718,7 @@ $.fn.ajaxSubmit = function(options) {
 $.fn.ajaxForm = function(options) {
        options = options || {};
        options.delegation = options.delegation && $.isFunction($.fn.on);
-       
+
        // in jQuery 1.3+ we can fix mistakes with the ready state
        if (!options.delegation && this.length === 0) {
                var o = { s: this.selector, c: this.context };
@@ -748,7 +748,7 @@ $.fn.ajaxForm = function(options) {
                .bind('click.form-plugin', options, captureSubmittingElement);
 };
 
-// private event handlers      
+// private event handlers
 function doAjaxSubmit(e) {
     /*jshint validthis:true */
        var options = e.data;
@@ -757,7 +757,7 @@ function doAjaxSubmit(e) {
                $(this).ajaxSubmit(options);
        }
 }
-       
+
 function captureSubmittingElement(e) {
     /*jshint validthis:true */
        var target = e.target;
@@ -837,14 +837,14 @@ $.fn.formToArray = function(semantic, elements) {
 
                v = $.fieldValue(el, true);
                if (v && v.constructor == Array) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
                        for(j=0, jmax=v.length; j < jmax; j++) {
                                a.push({name: n, value: v[j]});
                        }
                }
         else if (feature.fileapi && el.type == 'file' && !el.disabled) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             var files = el.files;
             if (files.length) {
@@ -858,7 +858,7 @@ $.fn.formToArray = function(semantic, elements) {
             }
         }
                else if (v !== null && typeof v != 'undefined') {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             a.push({name: n, value: v, type: el.type, required: el.required});
                }
@@ -1108,7 +1108,7 @@ $.fn.ajaxSubmit.debug = false;
 
 // helper fn for console logging
 function log() {
-       if (!$.fn.ajaxSubmit.debug) 
+       if (!$.fn.ajaxSubmit.debug)
                return;
        var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
        if (window.console && window.console.log) {
index 1aad945c0846f6153af3dda7bb68f260fde96386..a6ba59418a44fa0a613e05c61b6fad53b84a3b4f 100644 (file)
@@ -31,10 +31,10 @@ $(document).ready(function() {
   $('table thead.sticky').each(function () {
     // Make all absolute positioned elements relative to the table.
     var height = $(this).parent('table').css('position', 'relative').height();
-    
+
     // Find all header cells.
     $('th', this).each(function () {
-      
+
       // Ensure each cell has an element in it.
       var html = $(this).html();
       if (html == ' ') {
@@ -43,7 +43,7 @@ $(document).ready(function() {
       if ($(this).children().size() == 0) {
        html = '<span>'+ html +'</span>';
       }
-      
+
       // Clone and wrap cell contents in sticky wrapper that overlaps the cell's padding.
       $('<div class="sticky-header" style="position: fixed; display: none; top: 0px;">'+ html +'</div>').prependTo(this);
       var div = $('div.sticky-header', this).css({
@@ -55,14 +55,14 @@ $(document).ready(function() {
           'paddingBottom': $(this).css('paddingBottom')
        })[0];
       // Adjust width to fit cell and hide.
-      
+
       //CRM-6467
       var length = $(this).width() - $(div).width();
       if ( length < 0 ) length = $(div).width() - $(this).width();
       $(div).css('paddingRight', parseInt($(div).css('paddingRight')) + length +'px');
 
       cells.push(div);
-      
+
       // Get position.
       div.cell = this;
       div.table = $(this).parent('table')[0];
index 55f746bda9d067b4d25c4e0698e142dbd00bc5ff..176b67a06a03af80722270949398511339676042 100644 (file)
@@ -413,7 +413,7 @@ $.TokenList = function (input, url_or_data, settings) {
             }
         });
     }
-    
+
     this.getTokens = function() {
                return saved_tokens;
        }
@@ -657,7 +657,7 @@ $.TokenList = function (input, url_or_data, settings) {
     function highlight_term(value, term) {
         return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + term + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<b>$1</b>");
     }
-    
+
     function find_value_and_highlight_term(template, value, term) {
         return template.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + value + ")(?![^<>]*>)(?![^&;]+;)", "g"), highlight_term(value, term));
     }
@@ -680,11 +680,11 @@ $.TokenList = function (input, url_or_data, settings) {
 
             $.each(results, function(index, value) {
                 var this_li = settings.resultsFormatter(value);
-                
-                this_li = find_value_and_highlight_term(this_li ,value[settings.propertyToSearch], query);            
-                
+
+                this_li = find_value_and_highlight_term(this_li ,value[settings.propertyToSearch], query);
+
                 this_li = $(this_li).appendTo(dropdown_ul);
-                
+
                 if(index % 2) {
                     this_li.addClass(settings.classes.dropdownItem);
                 } else {
index 7166c1681428d2f4828ad08f6b3f96cd3f0c5607..4ee39efa7cd1ddfeec5ceed329b10174f6088c60 100644 (file)
@@ -49,7 +49,7 @@
 .ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; }
 .ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
 .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; zoom: 1; }
-.ui-autocomplete { position: absolute; cursor: default; }      
+.ui-autocomplete { position: absolute; cursor: default; }
 
 /* workarounds */
 * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
@@ -57,8 +57,8 @@
 .ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; }
 .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
 button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
+.ui-button-icons-only { width: 3.4em; }
+button.ui-button-icons-only { width: 3.7em; }
 
 /*button text element */
 .ui-button .ui-button-text { display: block; line-height: 1.4;  }
@@ -95,7 +95,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
 .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
 .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
 .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
+.ui-datepicker select.ui-datepicker-month,
 .ui-datepicker select.ui-datepicker-year { width: 49%;}
 .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
 .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
index e3e2dc739dd851f2d7d291be032e30b909e3e95f..25691af8f193a67185a696cb6626ea6418ff6a20 100644 (file)
 <glyph unicode="&#xe199;" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
 <glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -11.5t1 -11.5q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
 </font>
-</defs></svg> 
\ No newline at end of file
+</defs></svg>
\ No newline at end of file
index ab76d3a76719287a317b694d276be1b1cd0b2fa5..8ef5770a9eaef4a9de2c6479746ed6b133739393 100644 (file)
@@ -915,7 +915,7 @@ $.widget("ui.mouse", {
                        .bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
 
                event.preventDefault();
-               
+
                mouseHandled = true;
                return true;
        },
@@ -1545,7 +1545,7 @@ $.widget("ui.draggable", $.ui.mouse, {
                this.handle = this._getHandle(event);
                if (!this.handle)
                        return false;
-               
+
                $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
                        $('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')
                        .css({
@@ -1629,12 +1629,12 @@ $.widget("ui.draggable", $.ui.mouse, {
                if ($.ui.ddmanager && !o.dropBehaviour)
                        $.ui.ddmanager.prepareOffsets(this, event);
 
-               
+
                this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
-               
+
                //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)
                if ( $.ui.ddmanager ) $.ui.ddmanager.dragStart(this, event);
-               
+
                return true;
        },
 
@@ -1673,7 +1673,7 @@ $.widget("ui.draggable", $.ui.mouse, {
                        dropped = this.dropped;
                        this.dropped = false;
                }
-               
+
                //if the original element is no longer in the DOM don't bother to continue (see #8269)
                var element = this.element[0], elementInDom = false;
                while ( element && (element = element.parentNode) ) {
@@ -1699,29 +1699,29 @@ $.widget("ui.draggable", $.ui.mouse, {
 
                return false;
        },
-       
+
        _mouseUp: function(event) {
                //Remove frame helpers
-               $("div.ui-draggable-iframeFix").each(function() { 
-                       this.parentNode.removeChild(this); 
+               $("div.ui-draggable-iframeFix").each(function() {
+                       this.parentNode.removeChild(this);
                });
-               
+
                //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)
                if( $.ui.ddmanager ) $.ui.ddmanager.dragStop(this, event);
-               
+
                return $.ui.mouse.prototype._mouseUp.call(this, event);
        },
-       
+
        cancel: function() {
-               
+
                if(this.helper.is(".ui-draggable-dragging")) {
                        this._mouseUp({});
                } else {
                        this._clear();
                }
-               
+
                return this;
-               
+
        },
 
        _getHandle: function(event) {
@@ -2042,12 +2042,12 @@ $.ui.plugin.add("draggable", "connectToSortable", {
                };
 
                $.each(inst.sortables, function(i) {
-                       
+
                        //Copy over some variables to allow calling the sortable's native _intersectsWith
                        this.instance.positionAbs = inst.positionAbs;
                        this.instance.helperProportions = inst.helperProportions;
                        this.instance.offset.click = inst.offset.click;
-                       
+
                        if(this.instance._intersectsWith(this.instance.containerCache)) {
 
                                //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once
@@ -2090,13 +2090,13 @@ $.ui.plugin.add("draggable", "connectToSortable", {
 
                                        this.instance.isOver = 0;
                                        this.instance.cancelHelperRemoval = true;
-                                       
+
                                        //Prevent reverting on this forced stop
                                        this.instance.options.revert = false;
-                                       
+
                                        // The out event needs to be triggered independently
                                        this.instance._trigger('out', event, this.instance._uiHash(this.instance));
-                                       
+
                                        this.instance._mouseStop(event, true);
                                        this.instance.options.helper = this.instance.options._helper;
 
@@ -2266,7 +2266,7 @@ $.ui.plugin.add("draggable", "stack", {
                        return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);
                });
                if (!group.length) { return; }
-               
+
                var min = parseInt(group[0].style.zIndex) || 0;
                $(group).each(function(i) {
                        this.style.zIndex = min + i;
@@ -3130,7 +3130,7 @@ $.ui.plugin.add("resizable", "alsoResize", {
 
                _alsoResize = function (exp, c) {
                        $(exp).each(function() {
-                               var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, 
+                               var el = $(this), start = $(this).data("resizable-alsoresize"), style = {},
                                        css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left'];
 
                                $.each(css, function (i, prop) {
@@ -6488,7 +6488,7 @@ function Datepicker() {
 $.extend(Datepicker.prototype, {
        /* Class name added to elements to indicate already configured with a date picker. */
        markerClassName: 'hasDatepicker',
-       
+
        //Keep track of the maximum number of rows displayed (see #7043)
        maxRows: 4,
 
@@ -6497,7 +6497,7 @@ $.extend(Datepicker.prototype, {
                if (this.debug)
                        console.log.apply('', arguments);
        },
-       
+
        // TODO rename to "widget" when switching to widget factory
        _widgetDatepicker: function() {
                return this.dpDiv;
@@ -6607,7 +6607,7 @@ $.extend(Datepicker.prototype, {
                                if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
                                        $.datepicker._hideDatepicker();
                                else if ($.datepicker._datepickerShowing && $.datepicker._lastInput != input[0]) {
-                                       $.datepicker._hideDatepicker(); 
+                                       $.datepicker._hideDatepicker();
                                        $.datepicker._showDatepicker(input[0]);
                                } else
                                        $.datepicker._showDatepicker(input[0]);
@@ -6903,7 +6903,7 @@ $.extend(Datepicker.prototype, {
                                case 9: $.datepicker._hideDatepicker();
                                                handled = false;
                                                break; // hide on tab out
-                               case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + 
+                               case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' +
                                                                        $.datepicker._currentClass + ')', inst.dpDiv);
                                                if (sel[0])
                                                        $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
@@ -7001,7 +7001,7 @@ $.extend(Datepicker.prototype, {
        },
 
        /* Pop-up the date picker for a given input field.
-          If false returned from beforeShow event handler do not show. 
+          If false returned from beforeShow event handler do not show.
           @param  input  element - the input field attached to the date picker or
                          event - if triggered by focus */
        _showDatepicker: function(input) {
@@ -7105,7 +7105,7 @@ $.extend(Datepicker.prototype, {
                                // this breaks the change event in IE
                                inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement)
                        inst.input.focus();
-               // deffered render of the years select (to avoid flashes on Firefox) 
+               // deffered render of the years select (to avoid flashes on Firefox)
                if( inst.yearshtml ){
                        var origyearshtml = inst.yearshtml;
                        setTimeout(function(){
@@ -7814,7 +7814,7 @@ $.extend(Datepicker.prototype, {
                        $(this).bind(this.getAttribute('data-event'), handler[this.getAttribute('data-handler')]);
                });
        },
-       
+
        /* Generate the HTML for the current state of the date picker. */
        _generateHTML: function(inst) {
                var today = new Date();
@@ -7971,7 +7971,7 @@ $.extend(Datepicker.prototype, {
                                        drawMonth = 0;
                                        drawYear++;
                                }
-                               calender += '</tbody></table>' + (isMultiMonth ? '</div>' + 
+                               calender += '</tbody></table>' + (isMultiMonth ? '</div>' +
                                                        ((numMonths[0] > 0 && col == numMonths[1]-1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
                                group += calender;
                        }
@@ -8035,7 +8035,7 @@ $.extend(Datepicker.prototype, {
                                                '>' + year + '</option>';
                                }
                                inst.yearshtml += '</select>';
-                               
+
                                html += inst.yearshtml;
                                inst.yearshtml = null;
                        }
@@ -8146,7 +8146,7 @@ $.extend(Datepicker.prototype, {
  * Bind hover events for datepicker elements.
  * Done via delegate so the binding only occurs once in the lifetime of the parent div.
  * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
- */ 
+ */
 function bindHover(dpDiv) {
        var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';
        return dpDiv.delegate(selector, 'mouseout', function() {
@@ -8178,12 +8178,12 @@ function extendRemove(target, props) {
                        Object - settings for attaching new datepicker functionality
    @return  jQuery object */
 $.fn.datepicker = function(options){
-       
+
        /* Verify an empty collection wasn't passed - Fixes #6976 */
        if ( !this.length ) {
                return this;
        }
-       
+
        /* Initialise the date picker. */
        if (!$.datepicker.initialized) {
                $(document).mousedown($.datepicker._checkExternalClick).
@@ -14211,7 +14211,7 @@ $.effects.effect.highlight = function( o, done ) {
        }
 
        $.effects.save( elem, props );
-       
+
        elem
                .show()
                .css({
index 31de7b0d51444ca9ce3a50d71892845f2d88ce57..3603058bcb76086a847f5726846af1a4399bac24 100644 (file)
@@ -1,17 +1,17 @@
 /*!
  * jQuery Feeds v0.5
  * https://camagu.github.com/jquery-feeds
- * 
+ *
  * Copyright (c) 2013, Camilo Aguilar
  * Dual licensed under the MIT and GPL licenses:
  *     http://www.opensource.org/licenses/mit-license.php
  *     http://www.gnu.org/licenses/gpl.html
- * 
+ *
  * Includes a modified version of Simple JavaScript Templating
  * http://ejohn.org/blog/javascript-micro-templating/
  * Copyright (c) John Resig (http://ejohn.org)
  * MIT licensed
- * 
+ *
  * Date: 2013-02-18
  */
 
index 305f66b2d839887a6bc837ac1b56aa71c3dbc342..276cdeeb80efee20e375bcbb1fcd00bb82e62b74 100644 (file)
@@ -1,17 +1,17 @@
 /*!
  * jQuery Feeds v0.5
  * https://camagu.github.com/jquery-feeds
- * 
+ *
  * Copyright (c) 2013, Camilo Aguilar
  * Dual licensed under the MIT and GPL licenses:
  *     http://www.opensource.org/licenses/mit-license.php
  *     http://www.gnu.org/licenses/gpl.html
- * 
+ *
  * Includes a modified version of Simple JavaScript Templating
  * http://ejohn.org/blog/javascript-micro-templating/
  * Copyright (c) John Resig (http://ejohn.org)
  * MIT licensed
- * 
+ *
  * Date: 2013-02-18
  */
 (function(e){var t={};e.fn.feeds=function(n){var r={service:"//ajax.googleapis.com/ajax/services/feed/load?v=1.0",settings:{loadingTemplate:'<div class="feeds-loader">Loading entries ...</div>',entryTemplate:'<div class="feeds-entry feeds-source-<!=source!>"><a class="feeds-entry-title" target="_blank" href="<!=link!>" title="<!=title!>"><!=title!></a><div class="feeds-entry-date"><!=publishedDate!></div><div class="feeds-entry-contentSnippet"><!=contentSnippet!></div></div>',feeds:{},max:-1,xml:!1,ssl:"auto",onComplete:function(e){},preprocess:function(e){}},feeds:{},entries:[],feedsLength:0,feedsLoaded:0,$element:null,$loader:null,init:function(t,n){this.settings=e.extend(this.settings,n),this.feeds=this.settings.feeds;for(var r in this.feeds)this.feeds.hasOwnProperty(r)&&this.feedsLength++;var i=this.settings.ssl==="auto"?document.location.protocol:this.settings.ssl?"https:":"http:";e.inArray(i,["http:","https"])===-1&&(i="https:"),this.service=i+this.service,this.$element=e(t);var s=typeof this.settings.loadingTemplate=="function"?this.settings.loadingTemplate:this.tmpl(this.settings.loadingTemplate);this.$loader=e(s.call(this,{})),this.$element.html(this.$loader);var o=this.settings.xml?"json_xml":"json";for(var u in this.feeds)this.fetchFeed(u,this.feeds[u],this.settings.max,o)},fetchFeed:function(n,r,i,s){var o=this,u=r+"**"+i+"**"+s;if(typeof t[u]!="undefined"){o.processResponse(t[u],n,r);return}e.ajax({url:this.service,dataType:"jsonp",data:{q:r,num:i,output:s},beforeSend:function(){this.feed=r,this.key=n},success:function(e){t[u]=e,o.processResponse(e,this.key,this.feed)}})},processResponse:function(t,n,r){if(t.responseStatus!==200)window.console&&window.console.log&&console.log("Unable to load feed "+r+": ("+t.responseStatus+") "+t.responseDetails);else{var i=t.responseData.feed,s=i.entries,o=t.responseData.feed.type;if(this.settings.xml){var u=e(t.responseData.xmlString);o.match(/^rss.*/)?u=u.filter("rss").find("channel"):o.match(/^atom.*/)&&(u=u.filter("feed")),i.xml=u}for(var a in s){var f=e.extend({},s[a]);f.source=n,f.publishedDateRaw=f.publishedDate,f.feedUrl=i.feedUrl,f.feedTitle=i.title,f.feedLink=i.link,f.feedDescription=i.description,f.feedAuthor=i.author,this.settings.xml&&(o.match(/^rss.*/)?f.xml=i.xml.find("item").eq(a):o.match(/^atom.*/)?f.xml=i.xml.find("entry").eq(a):f.xml={}),this.settings.preprocess.call(f,i)!==!1&&this.entries.push(f)}}this.feedsLoaded++,this.checkComplete()},checkComplete:function(){if(this.feedsLoaded===this.feedsLength){this.$loader.remove(),this.entries.sort(function(e,t){var n=(new Date(e.publishedDateRaw)).getTime(),r=(new Date(t.publishedDateRaw)).getTime();return r-n});var e=typeof this.settings.entryTemplate=="function"?this.settings.entryTemplate:this.tmpl(this.settings.entryTemplate);for(var t in this.entries){var n=this.entries[t],r=e.call(this,n);this.$element.append(r)}this.settings.onComplete.call(this.$element[0],this.entries)}},tmplCache:{},tmpl:function(t,n){var r=/\W/.test(t)?new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+t.replace(/[\r\t\n]/g," ").split("<!").join(" ").replace(/((^|!>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)!>/g,"',typeof $1 != 'undefined' ? $1 : '','").split("   ").join("');").split("!>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');"):this.tmplCache[t]=this.tmplCache[t]||this.tmpl(document.getElementById(t).innerHTML);return n?r(n):r}};return e(this).each(function(){r.init(this,n)})}})(jQuery);
\ No newline at end of file
index a094a70d01bdf8d31a8627a733321d4616440583..311a57b10d035f9ac5f3f0962a25bfbd2efe6ef9 100644 (file)
@@ -37,7 +37,7 @@
                        target: '#output'
                });
        });
-       
+
        You can also use ajaxForm with delegation (requires jQuery v1.7+), so the
        form does not have to exist when you invoke ajaxForm:
 
@@ -45,7 +45,7 @@
                delegation: true,
                target: '#output'
        });
-       
+
        When using ajaxForm, the ajaxSubmit function will be invoked for you
        at the appropriate time.
 */
@@ -69,7 +69,7 @@ $.fn.ajaxSubmit = function(options) {
                log('ajaxSubmit: skipping submit process - no element selected');
                return this;
        }
-       
+
        var method, action, url, $form = this;
 
        if (typeof options == 'function') {
@@ -111,7 +111,7 @@ $.fn.ajaxSubmit = function(options) {
        if ( traditional === undefined ) {
                traditional = $.ajaxSettings.traditional;
        }
-       
+
     var elements = [];
     var qx, a = this.formToArray(options.semantic, elements);
        if (options.data) {
@@ -135,7 +135,7 @@ $.fn.ajaxSubmit = function(options) {
        var q = $.param(a, traditional);
        if (qx) {
                q = ( q ? (q + '&' + qx) : qx );
-       }       
+       }
        if (options.type.toUpperCase() == 'GET') {
                options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
                options.data = null;  // data is null for 'get'
@@ -165,7 +165,7 @@ $.fn.ajaxSubmit = function(options) {
        }
 
        options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
-        var context = options.context || this ;    // jQuery 1.4+ supports scope context 
+        var context = options.context || this ;    // jQuery 1.4+ supports scope context
                for (var i=0, max=callbacks.length; i < max; i++) {
                        callbacks[i].apply(context, [data, status, xhr || $form, $form]);
                }
@@ -175,7 +175,7 @@ $.fn.ajaxSubmit = function(options) {
 
     // [value] (issue #113), also see comment:
     // https://github.com/malsup/form/commit/588306aedba1de01388032d5f42a60159eea9228#commitcomment-2180219
-    var fileInputs = $('input[type=file]:enabled[value!=""]', this); 
+    var fileInputs = $('input[type=file]:enabled[value!=""]', this);
 
        var hasFileInputs = fileInputs.length > 0;
        var mp = 'multipart/form-data';
@@ -299,7 +299,7 @@ $.fn.ajaxSubmit = function(options) {
             deferred.reject();
             return deferred;
         }
-        
+
                if (a) {
                                // ensure that every serialized input is still enabled
             for (i=0; i < elements.length; i++) {
@@ -347,7 +347,7 @@ $.fn.ajaxSubmit = function(options) {
                 if (io.contentWindow.document.execCommand) {
                         io.contentWindow.document.execCommand('Stop');
                 }
-                } 
+                }
                 catch(ignore) {}
 
                                $io.attr('src', s.iframeSrc); // abort op in progress
@@ -395,7 +395,7 @@ $.fn.ajaxSubmit = function(options) {
                                }
                        }
                }
-               
+
                var CLIENT_TIMEOUT_ABORT = 1;
                var SERVER_ABORT = 2;
 
@@ -403,7 +403,7 @@ $.fn.ajaxSubmit = function(options) {
                        var doc = frame.contentWindow ? frame.contentWindow.document : frame.contentDocument ? frame.contentDocument : frame.document;
                        return doc;
                }
-               
+
                // Rails CSRF hack (thanks to Yvan Barthelemy)
                var csrf_token = $('meta[name=csrf-token]').attr('content');
                var csrf_param = $('meta[name=csrf-param]').attr('content');
@@ -438,7 +438,7 @@ $.fn.ajaxSubmit = function(options) {
                        if (s.timeout) {
                                timeoutHandle = setTimeout(function() { timedOut = true; cb(CLIENT_TIMEOUT_ABORT); }, s.timeout);
                        }
-                       
+
                        // look for server aborts
                        function checkState() {
                                try {
@@ -537,7 +537,7 @@ $.fn.ajaxSubmit = function(options) {
                        }
             if (io.detachEvent)
                 io.detachEvent('onload', cb);
-            else    
+            else
                 io.removeEventListener('load', cb, false);
 
                        var status = 'success', errMsg;
@@ -593,7 +593,7 @@ $.fn.ajaxSubmit = function(options) {
                                                var pre = doc.getElementsByTagName('pre')[0];
                                                var b = doc.getElementsByTagName('body')[0];
                                                if (pre) {
-                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;  
+                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;
                                                }
                                                else if (b) {
                           xhr.responseText = b.innerHTML ? b.innerHTML : b.textContent;
@@ -716,7 +716,7 @@ $.fn.ajaxSubmit = function(options) {
 $.fn.ajaxForm = function(options) {
        options = options || {};
        options.delegation = options.delegation && $.isFunction($.fn.on);
-       
+
        // in jQuery 1.3+ we can fix mistakes with the ready state
        if (!options.delegation && this.length === 0) {
                var o = { s: this.selector, c: this.context };
@@ -746,7 +746,7 @@ $.fn.ajaxForm = function(options) {
                .bind('click.form-plugin', options, captureSubmittingElement);
 };
 
-// private event handlers      
+// private event handlers
 function doAjaxSubmit(e) {
     /*jshint validthis:true */
        var options = e.data;
@@ -755,7 +755,7 @@ function doAjaxSubmit(e) {
                $(this).ajaxSubmit(options);
        }
 }
-       
+
 function captureSubmittingElement(e) {
     /*jshint validthis:true */
        var target = e.target;
@@ -835,14 +835,14 @@ $.fn.formToArray = function(semantic, elements) {
 
                v = $.fieldValue(el, true);
                if (v && v.constructor == Array) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
                        for(j=0, jmax=v.length; j < jmax; j++) {
                                a.push({name: n, value: v[j]});
                        }
                }
         else if (feature.fileapi && el.type == 'file' && !el.disabled) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             var files = el.files;
             if (files.length) {
@@ -856,7 +856,7 @@ $.fn.formToArray = function(semantic, elements) {
             }
         }
                else if (v !== null && typeof v != 'undefined') {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             a.push({name: n, value: v, type: el.type, required: el.required});
                }
@@ -1106,7 +1106,7 @@ $.fn.ajaxSubmit.debug = false;
 
 // helper fn for console logging
 function log() {
-       if (!$.fn.ajaxSubmit.debug) 
+       if (!$.fn.ajaxSubmit.debug)
                return;
        var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
        if (window.console && window.console.log) {
index 29082ca9647b864d3f0f254fa25a6a6bcc22b232..bcb4a27b7a532c4bcd6bb910a1010776fb97ce1a 100644 (file)
@@ -119,7 +119,7 @@ var m = (function app(window, undefined) {
                                        i-- //check current index again and flatten until there are no more nested arrays at that index
                                }
                        }
-                       
+
                        var nodes = [], intact = cached.length === data.length, subArrayCount = 0;
 
                        //keys algorithm: sort elements without recreating them if keys are present
@@ -138,7 +138,7 @@ var m = (function app(window, undefined) {
                        }
                        if (shouldMaintainIdentities) {
                                if (data.indexOf(null) > -1) data = data.filter(function(x) {return x != null})
-                               
+
                                var keysDiffer = false
                                if (data.length != cached.length) keysDiffer = true
                                else for (var i = 0, cachedCell, dataCell; cachedCell = cached[i], dataCell = data[i]; i++) {
@@ -147,7 +147,7 @@ var m = (function app(window, undefined) {
                                                break
                                        }
                                }
-                               
+
                                if (keysDiffer) {
                                        for (var i = 0, len = data.length; i < len; i++) {
                                                if (data[i] && data[i].attrs) {
@@ -216,7 +216,7 @@ var m = (function app(window, undefined) {
                        }
                        if (!intact) {
                                //diff the array itself
-                               
+
                                //update the list of DOM nodes by collecting the nodes from each item
                                for (var i = 0, len = data.length; i < len; i++) {
                                        if (cached[i] != null) nodes.push.apply(nodes, cached[i].nodes)
@@ -699,7 +699,7 @@ var m = (function app(window, undefined) {
                }
                return str.join("&")
        }
-       
+
        function parseQueryString(str) {
                var pairs = str.split("&"), params = {};
                for (var i = 0, len = pairs.length; i < len; i++) {
index d48daafdea6ce07d5d495a18172b7bb1bf8e7328..d3115512a757e489d0c0fe8cfad0f9f2dc099e4c 100644 (file)
@@ -2,7 +2,7 @@
     /**
      * Your Twitter App Info
      */
-    
+
     // Consumer Key
     define('CONSUMER_KEY', 'yxmC3rFOrr1xRGbCo3J6QNkKW');
     define('CONSUMER_SECRET', 'rqI9V5lPttEhNeOwBl14Jn6ryCU5MRBJQ5J6j8OEgaXwekeZM2');
@@ -10,7 +10,7 @@
     // User Access Token
     define('ACCESS_TOKEN', '2972347515-LCsxZafDTPd8hPCpWfewRVCEqgkHysKqB97x1bc');
     define('ACCESS_SECRET', 'Od3GSWu8iVW6x03YfTtDXVY48ewB315FkSrb3HQgi8Tx7');
-       
+
        // Cache Settings
        define('CACHE_ENABLED', false);
        define('CACHE_LIFETIME', 3600); // in seconds
index d02b7aebae3fd08d189f7127946fb47390815665..67800781e666ce3e22934dcc6a2852f61e77e785 100644 (file)
@@ -12,7 +12,7 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     // Check if keys are in place
     if (CONSUMER_KEY === '' || CONSUMER_SECRET === '' || CONSUMER_KEY === 'CONSUMER_KEY_HERE' || CONSUMER_SECRET === 'CONSUMER_SECRET_HERE') {
         echo 'You need a consumer key and secret keys. Get one from <a href="https://dev.twitter.com/apps">dev.twitter.com/apps</a>';
-      
+
         exit;
     }
 
@@ -22,13 +22,13 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     $exclude_replies = filter_input(INPUT_GET, 'exclude_replies', FILTER_SANITIZE_SPECIAL_CHARS);
     $list_slug = filter_input(INPUT_GET, 'list_slug', FILTER_SANITIZE_SPECIAL_CHARS);
     $hashtag = filter_input(INPUT_GET, 'hashtag', FILTER_SANITIZE_SPECIAL_CHARS);
-    
+
        if(CACHE_ENABLED) {
         // Generate cache key from query data
         $cache_key = md5(
             var_export(array($username, $number, $exclude_replies, $list_slug, $hashtag), true) . HASH_SALT
         );
-    
+
         // Remove old files from cache dir
         $cache_path  = dirname(__FILE__) . '/cache/';
         foreach (glob($cache_path . '*') as $file) {
@@ -36,16 +36,16 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
                 unlink($file);
             }
         }
-    
+
         // If cache file exists - return it
         if(file_exists($cache_path . $cache_key)) {
             header('Content-Type: application/json');
-    
+
             echo file_get_contents($cache_path . $cache_key);
             exit;
         }
     }
-       
+
     /**
      * Gets connection with user Twitter account
      * @param  String $cons_key     Consumer Key
@@ -57,13 +57,13 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     function getConnectionWithToken($cons_key, $cons_secret, $oauth_token, $oauth_secret)
     {
         $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_secret);
-      
+
         return $connection;
     }
-    
+
     // Connect
     $connection = getConnectionWithToken(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_SECRET);
-    
+
     // Get Tweets
     if (!empty($list_slug)) {
       $params = array(
index 4570013b80f59fc225aa9b4b695b873198143587..d31451ac61f694f058df6309b2107bcc10c8e6a0 100644 (file)
@@ -92,9 +92,9 @@ abstract class OAuthSignatureMethod {
 }
 
 /**
- * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104] 
- * where the Signature Base String is the text and the key is the concatenated values (each first 
- * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&' 
+ * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104]
+ * where the Signature Base String is the text and the key is the concatenated values (each first
+ * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&'
  * character (ASCII code 38) even if empty.
  *   - Chapter 9.2 ("HMAC-SHA1")
  */
@@ -120,7 +120,7 @@ class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod {
 }
 
 /**
- * The PLAINTEXT method does not provide any security protection and SHOULD only be used 
+ * The PLAINTEXT method does not provide any security protection and SHOULD only be used
  * over a secure channel such as HTTPS. It does not use the Signature Base String.
  *   - Chapter 9.4 ("PLAINTEXT")
  */
@@ -130,8 +130,8 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
   }
 
   /**
-   * oauth_signature is set to the concatenated encoded values of the Consumer Secret and 
-   * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is 
+   * oauth_signature is set to the concatenated encoded values of the Consumer Secret and
+   * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is
    * empty. The result MUST be encoded again.
    *   - Chapter 9.4.1 ("Generating Signatures")
    *
@@ -153,10 +153,10 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
 }
 
 /**
- * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in 
- * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for 
- * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a 
- * verified way to the Service Provider, in a manner which is beyond the scope of this 
+ * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in
+ * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for
+ * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a
+ * verified way to the Service Provider, in a manner which is beyond the scope of this
  * specification.
  *   - Chapter 9.3 ("RSA-SHA1")
  */
@@ -558,7 +558,7 @@ class OAuthServer {
   private function get_version(&$request) {
     $version = $request->get_parameter("oauth_version");
     if (!$version) {
-      // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present. 
+      // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present.
       // Chapter 7.0 ("Accessing Protected Ressources")
       $version = '1.0';
     }
@@ -658,7 +658,7 @@ class OAuthServer {
       throw new OAuthException(
         'Missing timestamp parameter. The parameter is required'
       );
-    
+
     // verify that timestamp is recentish
     $now = time();
     if (abs($now - $timestamp) > $this->timestamp_threshold) {
index 7ed5ef98a738a54ac1696b545e065ff0e580b727..68c99fe9767b6fc1609170791aa36ecd35641359 100644 (file)
@@ -29,7 +29,7 @@ class TwitterOAuth {
   /* Set timeout default. */
   public $timeout = 30;
   /* Set connect timeout. */
-  public $connecttimeout = 30; 
+  public $connecttimeout = 30;
   /* Verify SSL Cert. */
   public $ssl_verifypeer = FALSE;
   /* Respons format. */
@@ -81,7 +81,7 @@ class TwitterOAuth {
    */
   function getRequestToken($oauth_callback) {
     $parameters = array();
-    $parameters['oauth_callback'] = $oauth_callback; 
+    $parameters['oauth_callback'] = $oauth_callback;
     $request = $this->oAuthRequest($this->requestTokenURL(), 'GET', $parameters);
     $token = OAuthUtil::parse_parameters($request);
     $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
@@ -130,7 +130,7 @@ class TwitterOAuth {
    *                "user_id" => "9436992",
    *                "screen_name" => "abraham",
    *                "x_auth_expires" => "0")
-   */  
+   */
   function getXAuthToken($username, $password) {
     $parameters = array();
     $parameters['x_auth_username'] = $username;
@@ -152,7 +152,7 @@ class TwitterOAuth {
     }
     return $response;
   }
-  
+
   /**
    * POST wrapper for oAuthRequest.
    */
index 7166c1681428d2f4828ad08f6b3f96cd3f0c5607..4ee39efa7cd1ddfeec5ceed329b10174f6088c60 100644 (file)
@@ -49,7 +49,7 @@
 .ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; }
 .ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
 .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; zoom: 1; }
-.ui-autocomplete { position: absolute; cursor: default; }      
+.ui-autocomplete { position: absolute; cursor: default; }
 
 /* workarounds */
 * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
@@ -57,8 +57,8 @@
 .ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; }
 .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
 button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
+.ui-button-icons-only { width: 3.4em; }
+button.ui-button-icons-only { width: 3.7em; }
 
 /*button text element */
 .ui-button .ui-button-text { display: block; line-height: 1.4;  }
@@ -95,7 +95,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
 .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
 .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
 .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
+.ui-datepicker select.ui-datepicker-month,
 .ui-datepicker select.ui-datepicker-year { width: 49%;}
 .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
 .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
index 94fb5490a2ed10b2c69a4a567a4fd2e4f706d841..f155876e1b9cf712c81dd78eac057c5629343b9b 100644 (file)
 <glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
 <glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
 </font>
-</defs></svg> 
\ No newline at end of file
+</defs></svg>
\ No newline at end of file
index 9dcbc53860673be65350d4c2cfeb2b492a033928..5bd130e6bac363ad91c22aa9b479779e41560cc2 100644 (file)
@@ -1014,7 +1014,7 @@ JSONPPolling.prototype.doPoll = function () {
   this.script = script;
 
   var isUAgecko = 'undefined' != typeof navigator && /gecko/i.test(navigator.userAgent);
-  
+
   if (isUAgecko) {
     setTimeout(function () {
       var iframe = document.createElement('iframe');
index ab76d3a76719287a317b694d276be1b1cd0b2fa5..8ef5770a9eaef4a9de2c6479746ed6b133739393 100644 (file)
@@ -915,7 +915,7 @@ $.widget("ui.mouse", {
                        .bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
 
                event.preventDefault();
-               
+
                mouseHandled = true;
                return true;
        },
@@ -1545,7 +1545,7 @@ $.widget("ui.draggable", $.ui.mouse, {
                this.handle = this._getHandle(event);
                if (!this.handle)
                        return false;
-               
+
                $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
                        $('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')
                        .css({
@@ -1629,12 +1629,12 @@ $.widget("ui.draggable", $.ui.mouse, {
                if ($.ui.ddmanager && !o.dropBehaviour)
                        $.ui.ddmanager.prepareOffsets(this, event);
 
-               
+
                this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
-               
+
                //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)
                if ( $.ui.ddmanager ) $.ui.ddmanager.dragStart(this, event);
-               
+
                return true;
        },
 
@@ -1673,7 +1673,7 @@ $.widget("ui.draggable", $.ui.mouse, {
                        dropped = this.dropped;
                        this.dropped = false;
                }
-               
+
                //if the original element is no longer in the DOM don't bother to continue (see #8269)
                var element = this.element[0], elementInDom = false;
                while ( element && (element = element.parentNode) ) {
@@ -1699,29 +1699,29 @@ $.widget("ui.draggable", $.ui.mouse, {
 
                return false;
        },
-       
+
        _mouseUp: function(event) {
                //Remove frame helpers
-               $("div.ui-draggable-iframeFix").each(function() { 
-                       this.parentNode.removeChild(this); 
+               $("div.ui-draggable-iframeFix").each(function() {
+                       this.parentNode.removeChild(this);
                });
-               
+
                //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)
                if( $.ui.ddmanager ) $.ui.ddmanager.dragStop(this, event);
-               
+
                return $.ui.mouse.prototype._mouseUp.call(this, event);
        },
-       
+
        cancel: function() {
-               
+
                if(this.helper.is(".ui-draggable-dragging")) {
                        this._mouseUp({});
                } else {
                        this._clear();
                }
-               
+
                return this;
-               
+
        },
 
        _getHandle: function(event) {
@@ -2042,12 +2042,12 @@ $.ui.plugin.add("draggable", "connectToSortable", {
                };
 
                $.each(inst.sortables, function(i) {
-                       
+
                        //Copy over some variables to allow calling the sortable's native _intersectsWith
                        this.instance.positionAbs = inst.positionAbs;
                        this.instance.helperProportions = inst.helperProportions;
                        this.instance.offset.click = inst.offset.click;
-                       
+
                        if(this.instance._intersectsWith(this.instance.containerCache)) {
 
                                //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once
@@ -2090,13 +2090,13 @@ $.ui.plugin.add("draggable", "connectToSortable", {
 
                                        this.instance.isOver = 0;
                                        this.instance.cancelHelperRemoval = true;
-                                       
+
                                        //Prevent reverting on this forced stop
                                        this.instance.options.revert = false;
-                                       
+
                                        // The out event needs to be triggered independently
                                        this.instance._trigger('out', event, this.instance._uiHash(this.instance));
-                                       
+
                                        this.instance._mouseStop(event, true);
                                        this.instance.options.helper = this.instance.options._helper;
 
@@ -2266,7 +2266,7 @@ $.ui.plugin.add("draggable", "stack", {
                        return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);
                });
                if (!group.length) { return; }
-               
+
                var min = parseInt(group[0].style.zIndex) || 0;
                $(group).each(function(i) {
                        this.style.zIndex = min + i;
@@ -3130,7 +3130,7 @@ $.ui.plugin.add("resizable", "alsoResize", {
 
                _alsoResize = function (exp, c) {
                        $(exp).each(function() {
-                               var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, 
+                               var el = $(this), start = $(this).data("resizable-alsoresize"), style = {},
                                        css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left'];
 
                                $.each(css, function (i, prop) {
@@ -6488,7 +6488,7 @@ function Datepicker() {
 $.extend(Datepicker.prototype, {
        /* Class name added to elements to indicate already configured with a date picker. */
        markerClassName: 'hasDatepicker',
-       
+
        //Keep track of the maximum number of rows displayed (see #7043)
        maxRows: 4,
 
@@ -6497,7 +6497,7 @@ $.extend(Datepicker.prototype, {
                if (this.debug)
                        console.log.apply('', arguments);
        },
-       
+
        // TODO rename to "widget" when switching to widget factory
        _widgetDatepicker: function() {
                return this.dpDiv;
@@ -6607,7 +6607,7 @@ $.extend(Datepicker.prototype, {
                                if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
                                        $.datepicker._hideDatepicker();
                                else if ($.datepicker._datepickerShowing && $.datepicker._lastInput != input[0]) {
-                                       $.datepicker._hideDatepicker(); 
+                                       $.datepicker._hideDatepicker();
                                        $.datepicker._showDatepicker(input[0]);
                                } else
                                        $.datepicker._showDatepicker(input[0]);
@@ -6903,7 +6903,7 @@ $.extend(Datepicker.prototype, {
                                case 9: $.datepicker._hideDatepicker();
                                                handled = false;
                                                break; // hide on tab out
-                               case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + 
+                               case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' +
                                                                        $.datepicker._currentClass + ')', inst.dpDiv);
                                                if (sel[0])
                                                        $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
@@ -7001,7 +7001,7 @@ $.extend(Datepicker.prototype, {
        },
 
        /* Pop-up the date picker for a given input field.
-          If false returned from beforeShow event handler do not show. 
+          If false returned from beforeShow event handler do not show.
           @param  input  element - the input field attached to the date picker or
                          event - if triggered by focus */
        _showDatepicker: function(input) {
@@ -7105,7 +7105,7 @@ $.extend(Datepicker.prototype, {
                                // this breaks the change event in IE
                                inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement)
                        inst.input.focus();
-               // deffered render of the years select (to avoid flashes on Firefox) 
+               // deffered render of the years select (to avoid flashes on Firefox)
                if( inst.yearshtml ){
                        var origyearshtml = inst.yearshtml;
                        setTimeout(function(){
@@ -7814,7 +7814,7 @@ $.extend(Datepicker.prototype, {
                        $(this).bind(this.getAttribute('data-event'), handler[this.getAttribute('data-handler')]);
                });
        },
-       
+
        /* Generate the HTML for the current state of the date picker. */
        _generateHTML: function(inst) {
                var today = new Date();
@@ -7971,7 +7971,7 @@ $.extend(Datepicker.prototype, {
                                        drawMonth = 0;
                                        drawYear++;
                                }
-                               calender += '</tbody></table>' + (isMultiMonth ? '</div>' + 
+                               calender += '</tbody></table>' + (isMultiMonth ? '</div>' +
                                                        ((numMonths[0] > 0 && col == numMonths[1]-1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
                                group += calender;
                        }
@@ -8035,7 +8035,7 @@ $.extend(Datepicker.prototype, {
                                                '>' + year + '</option>';
                                }
                                inst.yearshtml += '</select>';
-                               
+
                                html += inst.yearshtml;
                                inst.yearshtml = null;
                        }
@@ -8146,7 +8146,7 @@ $.extend(Datepicker.prototype, {
  * Bind hover events for datepicker elements.
  * Done via delegate so the binding only occurs once in the lifetime of the parent div.
  * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
- */ 
+ */
 function bindHover(dpDiv) {
        var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';
        return dpDiv.delegate(selector, 'mouseout', function() {
@@ -8178,12 +8178,12 @@ function extendRemove(target, props) {
                        Object - settings for attaching new datepicker functionality
    @return  jQuery object */
 $.fn.datepicker = function(options){
-       
+
        /* Verify an empty collection wasn't passed - Fixes #6976 */
        if ( !this.length ) {
                return this;
        }
-       
+
        /* Initialise the date picker. */
        if (!$.datepicker.initialized) {
                $(document).mousedown($.datepicker._checkExternalClick).
@@ -14211,7 +14211,7 @@ $.effects.effect.highlight = function( o, done ) {
        }
 
        $.effects.save( elem, props );
-       
+
        elem
                .show()
                .css({
index 31de7b0d51444ca9ce3a50d71892845f2d88ce57..3603058bcb76086a847f5726846af1a4399bac24 100644 (file)
@@ -1,17 +1,17 @@
 /*!
  * jQuery Feeds v0.5
  * https://camagu.github.com/jquery-feeds
- * 
+ *
  * Copyright (c) 2013, Camilo Aguilar
  * Dual licensed under the MIT and GPL licenses:
  *     http://www.opensource.org/licenses/mit-license.php
  *     http://www.gnu.org/licenses/gpl.html
- * 
+ *
  * Includes a modified version of Simple JavaScript Templating
  * http://ejohn.org/blog/javascript-micro-templating/
  * Copyright (c) John Resig (http://ejohn.org)
  * MIT licensed
- * 
+ *
  * Date: 2013-02-18
  */
 
index 305f66b2d839887a6bc837ac1b56aa71c3dbc342..276cdeeb80efee20e375bcbb1fcd00bb82e62b74 100644 (file)
@@ -1,17 +1,17 @@
 /*!
  * jQuery Feeds v0.5
  * https://camagu.github.com/jquery-feeds
- * 
+ *
  * Copyright (c) 2013, Camilo Aguilar
  * Dual licensed under the MIT and GPL licenses:
  *     http://www.opensource.org/licenses/mit-license.php
  *     http://www.gnu.org/licenses/gpl.html
- * 
+ *
  * Includes a modified version of Simple JavaScript Templating
  * http://ejohn.org/blog/javascript-micro-templating/
  * Copyright (c) John Resig (http://ejohn.org)
  * MIT licensed
- * 
+ *
  * Date: 2013-02-18
  */
 (function(e){var t={};e.fn.feeds=function(n){var r={service:"//ajax.googleapis.com/ajax/services/feed/load?v=1.0",settings:{loadingTemplate:'<div class="feeds-loader">Loading entries ...</div>',entryTemplate:'<div class="feeds-entry feeds-source-<!=source!>"><a class="feeds-entry-title" target="_blank" href="<!=link!>" title="<!=title!>"><!=title!></a><div class="feeds-entry-date"><!=publishedDate!></div><div class="feeds-entry-contentSnippet"><!=contentSnippet!></div></div>',feeds:{},max:-1,xml:!1,ssl:"auto",onComplete:function(e){},preprocess:function(e){}},feeds:{},entries:[],feedsLength:0,feedsLoaded:0,$element:null,$loader:null,init:function(t,n){this.settings=e.extend(this.settings,n),this.feeds=this.settings.feeds;for(var r in this.feeds)this.feeds.hasOwnProperty(r)&&this.feedsLength++;var i=this.settings.ssl==="auto"?document.location.protocol:this.settings.ssl?"https:":"http:";e.inArray(i,["http:","https"])===-1&&(i="https:"),this.service=i+this.service,this.$element=e(t);var s=typeof this.settings.loadingTemplate=="function"?this.settings.loadingTemplate:this.tmpl(this.settings.loadingTemplate);this.$loader=e(s.call(this,{})),this.$element.html(this.$loader);var o=this.settings.xml?"json_xml":"json";for(var u in this.feeds)this.fetchFeed(u,this.feeds[u],this.settings.max,o)},fetchFeed:function(n,r,i,s){var o=this,u=r+"**"+i+"**"+s;if(typeof t[u]!="undefined"){o.processResponse(t[u],n,r);return}e.ajax({url:this.service,dataType:"jsonp",data:{q:r,num:i,output:s},beforeSend:function(){this.feed=r,this.key=n},success:function(e){t[u]=e,o.processResponse(e,this.key,this.feed)}})},processResponse:function(t,n,r){if(t.responseStatus!==200)window.console&&window.console.log&&console.log("Unable to load feed "+r+": ("+t.responseStatus+") "+t.responseDetails);else{var i=t.responseData.feed,s=i.entries,o=t.responseData.feed.type;if(this.settings.xml){var u=e(t.responseData.xmlString);o.match(/^rss.*/)?u=u.filter("rss").find("channel"):o.match(/^atom.*/)&&(u=u.filter("feed")),i.xml=u}for(var a in s){var f=e.extend({},s[a]);f.source=n,f.publishedDateRaw=f.publishedDate,f.feedUrl=i.feedUrl,f.feedTitle=i.title,f.feedLink=i.link,f.feedDescription=i.description,f.feedAuthor=i.author,this.settings.xml&&(o.match(/^rss.*/)?f.xml=i.xml.find("item").eq(a):o.match(/^atom.*/)?f.xml=i.xml.find("entry").eq(a):f.xml={}),this.settings.preprocess.call(f,i)!==!1&&this.entries.push(f)}}this.feedsLoaded++,this.checkComplete()},checkComplete:function(){if(this.feedsLoaded===this.feedsLength){this.$loader.remove(),this.entries.sort(function(e,t){var n=(new Date(e.publishedDateRaw)).getTime(),r=(new Date(t.publishedDateRaw)).getTime();return r-n});var e=typeof this.settings.entryTemplate=="function"?this.settings.entryTemplate:this.tmpl(this.settings.entryTemplate);for(var t in this.entries){var n=this.entries[t],r=e.call(this,n);this.$element.append(r)}this.settings.onComplete.call(this.$element[0],this.entries)}},tmplCache:{},tmpl:function(t,n){var r=/\W/.test(t)?new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+t.replace(/[\r\t\n]/g," ").split("<!").join(" ").replace(/((^|!>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)!>/g,"',typeof $1 != 'undefined' ? $1 : '','").split("   ").join("');").split("!>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');"):this.tmplCache[t]=this.tmplCache[t]||this.tmpl(document.getElementById(t).innerHTML);return n?r(n):r}};return e(this).each(function(){r.init(this,n)})}})(jQuery);
\ No newline at end of file
index a094a70d01bdf8d31a8627a733321d4616440583..311a57b10d035f9ac5f3f0962a25bfbd2efe6ef9 100644 (file)
@@ -37,7 +37,7 @@
                        target: '#output'
                });
        });
-       
+
        You can also use ajaxForm with delegation (requires jQuery v1.7+), so the
        form does not have to exist when you invoke ajaxForm:
 
@@ -45,7 +45,7 @@
                delegation: true,
                target: '#output'
        });
-       
+
        When using ajaxForm, the ajaxSubmit function will be invoked for you
        at the appropriate time.
 */
@@ -69,7 +69,7 @@ $.fn.ajaxSubmit = function(options) {
                log('ajaxSubmit: skipping submit process - no element selected');
                return this;
        }
-       
+
        var method, action, url, $form = this;
 
        if (typeof options == 'function') {
@@ -111,7 +111,7 @@ $.fn.ajaxSubmit = function(options) {
        if ( traditional === undefined ) {
                traditional = $.ajaxSettings.traditional;
        }
-       
+
     var elements = [];
     var qx, a = this.formToArray(options.semantic, elements);
        if (options.data) {
@@ -135,7 +135,7 @@ $.fn.ajaxSubmit = function(options) {
        var q = $.param(a, traditional);
        if (qx) {
                q = ( q ? (q + '&' + qx) : qx );
-       }       
+       }
        if (options.type.toUpperCase() == 'GET') {
                options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
                options.data = null;  // data is null for 'get'
@@ -165,7 +165,7 @@ $.fn.ajaxSubmit = function(options) {
        }
 
        options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
-        var context = options.context || this ;    // jQuery 1.4+ supports scope context 
+        var context = options.context || this ;    // jQuery 1.4+ supports scope context
                for (var i=0, max=callbacks.length; i < max; i++) {
                        callbacks[i].apply(context, [data, status, xhr || $form, $form]);
                }
@@ -175,7 +175,7 @@ $.fn.ajaxSubmit = function(options) {
 
     // [value] (issue #113), also see comment:
     // https://github.com/malsup/form/commit/588306aedba1de01388032d5f42a60159eea9228#commitcomment-2180219
-    var fileInputs = $('input[type=file]:enabled[value!=""]', this); 
+    var fileInputs = $('input[type=file]:enabled[value!=""]', this);
 
        var hasFileInputs = fileInputs.length > 0;
        var mp = 'multipart/form-data';
@@ -299,7 +299,7 @@ $.fn.ajaxSubmit = function(options) {
             deferred.reject();
             return deferred;
         }
-        
+
                if (a) {
                                // ensure that every serialized input is still enabled
             for (i=0; i < elements.length; i++) {
@@ -347,7 +347,7 @@ $.fn.ajaxSubmit = function(options) {
                 if (io.contentWindow.document.execCommand) {
                         io.contentWindow.document.execCommand('Stop');
                 }
-                } 
+                }
                 catch(ignore) {}
 
                                $io.attr('src', s.iframeSrc); // abort op in progress
@@ -395,7 +395,7 @@ $.fn.ajaxSubmit = function(options) {
                                }
                        }
                }
-               
+
                var CLIENT_TIMEOUT_ABORT = 1;
                var SERVER_ABORT = 2;
 
@@ -403,7 +403,7 @@ $.fn.ajaxSubmit = function(options) {
                        var doc = frame.contentWindow ? frame.contentWindow.document : frame.contentDocument ? frame.contentDocument : frame.document;
                        return doc;
                }
-               
+
                // Rails CSRF hack (thanks to Yvan Barthelemy)
                var csrf_token = $('meta[name=csrf-token]').attr('content');
                var csrf_param = $('meta[name=csrf-param]').attr('content');
@@ -438,7 +438,7 @@ $.fn.ajaxSubmit = function(options) {
                        if (s.timeout) {
                                timeoutHandle = setTimeout(function() { timedOut = true; cb(CLIENT_TIMEOUT_ABORT); }, s.timeout);
                        }
-                       
+
                        // look for server aborts
                        function checkState() {
                                try {
@@ -537,7 +537,7 @@ $.fn.ajaxSubmit = function(options) {
                        }
             if (io.detachEvent)
                 io.detachEvent('onload', cb);
-            else    
+            else
                 io.removeEventListener('load', cb, false);
 
                        var status = 'success', errMsg;
@@ -593,7 +593,7 @@ $.fn.ajaxSubmit = function(options) {
                                                var pre = doc.getElementsByTagName('pre')[0];
                                                var b = doc.getElementsByTagName('body')[0];
                                                if (pre) {
-                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;  
+                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;
                                                }
                                                else if (b) {
                           xhr.responseText = b.innerHTML ? b.innerHTML : b.textContent;
@@ -716,7 +716,7 @@ $.fn.ajaxSubmit = function(options) {
 $.fn.ajaxForm = function(options) {
        options = options || {};
        options.delegation = options.delegation && $.isFunction($.fn.on);
-       
+
        // in jQuery 1.3+ we can fix mistakes with the ready state
        if (!options.delegation && this.length === 0) {
                var o = { s: this.selector, c: this.context };
@@ -746,7 +746,7 @@ $.fn.ajaxForm = function(options) {
                .bind('click.form-plugin', options, captureSubmittingElement);
 };
 
-// private event handlers      
+// private event handlers
 function doAjaxSubmit(e) {
     /*jshint validthis:true */
        var options = e.data;
@@ -755,7 +755,7 @@ function doAjaxSubmit(e) {
                $(this).ajaxSubmit(options);
        }
 }
-       
+
 function captureSubmittingElement(e) {
     /*jshint validthis:true */
        var target = e.target;
@@ -835,14 +835,14 @@ $.fn.formToArray = function(semantic, elements) {
 
                v = $.fieldValue(el, true);
                if (v && v.constructor == Array) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
                        for(j=0, jmax=v.length; j < jmax; j++) {
                                a.push({name: n, value: v[j]});
                        }
                }
         else if (feature.fileapi && el.type == 'file' && !el.disabled) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             var files = el.files;
             if (files.length) {
@@ -856,7 +856,7 @@ $.fn.formToArray = function(semantic, elements) {
             }
         }
                else if (v !== null && typeof v != 'undefined') {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             a.push({name: n, value: v, type: el.type, required: el.required});
                }
@@ -1106,7 +1106,7 @@ $.fn.ajaxSubmit.debug = false;
 
 // helper fn for console logging
 function log() {
-       if (!$.fn.ajaxSubmit.debug) 
+       if (!$.fn.ajaxSubmit.debug)
                return;
        var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
        if (window.console && window.console.log) {
index 26e026a564210fa85938bf0aefe1994487a57ed9..5fafa3318f62d9bb0d55944635673f30ea19d42f 100644 (file)
@@ -1,5 +1,5 @@
-        /*    
-        @licstart  The following is the entire license notice for the 
+        /*
+        @licstart  The following is the entire license notice for the
         JavaScript code in this page.
 
         Copyright (C) 2014  Loic J. Duros
@@ -16,7 +16,7 @@
         may distribute non-source (e.g., minimized or compacted) forms of
         that code without the copy of the GNU GPL normally required by
         section 4, provided you include this license notice and a URL
-        through which recipients can access the Corresponding Source.   
+        through which recipients can access the Corresponding Source.
 
 
         @licend  The above is the entire license notice
@@ -2652,7 +2652,7 @@ _kiwi.model.NetworkPanelList = Backbone.Collection.extend({
 
     initialize: function() {
         this.view = new _kiwi.view.NetworkTabs({model: this});
-        
+
         this.on('add', this.onNetworkAdd, this);
         this.on('remove', this.onNetworkRemove, this);
 
@@ -4603,7 +4603,7 @@ _kiwi.view.Favicon = Backbone.View.extend({
             canvas_width = canvas.width,
             canvas_height = canvas.height;
 
-        // Different letter spacing for MacOS 
+        // Different letter spacing for MacOS
         if (navigator.appVersion.indexOf("Mac") !== -1) {
             letter_spacing = -1.5;
         }
@@ -4643,7 +4643,7 @@ _kiwi.view.Favicon = Backbone.View.extend({
         var canvas = document.createElement('canvas');
             canvas.width = 16;
             canvas.height = 16;
-        
+
         this.canvas = canvas;
     },
 
index 29082ca9647b864d3f0f254fa25a6a6bcc22b232..bcb4a27b7a532c4bcd6bb910a1010776fb97ce1a 100644 (file)
@@ -119,7 +119,7 @@ var m = (function app(window, undefined) {
                                        i-- //check current index again and flatten until there are no more nested arrays at that index
                                }
                        }
-                       
+
                        var nodes = [], intact = cached.length === data.length, subArrayCount = 0;
 
                        //keys algorithm: sort elements without recreating them if keys are present
@@ -138,7 +138,7 @@ var m = (function app(window, undefined) {
                        }
                        if (shouldMaintainIdentities) {
                                if (data.indexOf(null) > -1) data = data.filter(function(x) {return x != null})
-                               
+
                                var keysDiffer = false
                                if (data.length != cached.length) keysDiffer = true
                                else for (var i = 0, cachedCell, dataCell; cachedCell = cached[i], dataCell = data[i]; i++) {
@@ -147,7 +147,7 @@ var m = (function app(window, undefined) {
                                                break
                                        }
                                }
-                               
+
                                if (keysDiffer) {
                                        for (var i = 0, len = data.length; i < len; i++) {
                                                if (data[i] && data[i].attrs) {
@@ -216,7 +216,7 @@ var m = (function app(window, undefined) {
                        }
                        if (!intact) {
                                //diff the array itself
-                               
+
                                //update the list of DOM nodes by collecting the nodes from each item
                                for (var i = 0, len = data.length; i < len; i++) {
                                        if (cached[i] != null) nodes.push.apply(nodes, cached[i].nodes)
@@ -699,7 +699,7 @@ var m = (function app(window, undefined) {
                }
                return str.join("&")
        }
-       
+
        function parseQueryString(str) {
                var pairs = str.split("&"), params = {};
                for (var i = 0, len = pairs.length; i < len; i++) {
index d50192b2c14c308a7b21222d7aaf12c2832e057e..b03c23129b3bd3b194a49d9384425c7b41184a30 100644 (file)
@@ -147,7 +147,7 @@ app.streams = [
 
 
 
-    
+
 ];
 
 app.controller = function() {
index d48daafdea6ce07d5d495a18172b7bb1bf8e7328..d3115512a757e489d0c0fe8cfad0f9f2dc099e4c 100644 (file)
@@ -2,7 +2,7 @@
     /**
      * Your Twitter App Info
      */
-    
+
     // Consumer Key
     define('CONSUMER_KEY', 'yxmC3rFOrr1xRGbCo3J6QNkKW');
     define('CONSUMER_SECRET', 'rqI9V5lPttEhNeOwBl14Jn6ryCU5MRBJQ5J6j8OEgaXwekeZM2');
@@ -10,7 +10,7 @@
     // User Access Token
     define('ACCESS_TOKEN', '2972347515-LCsxZafDTPd8hPCpWfewRVCEqgkHysKqB97x1bc');
     define('ACCESS_SECRET', 'Od3GSWu8iVW6x03YfTtDXVY48ewB315FkSrb3HQgi8Tx7');
-       
+
        // Cache Settings
        define('CACHE_ENABLED', false);
        define('CACHE_LIFETIME', 3600); // in seconds
index d02b7aebae3fd08d189f7127946fb47390815665..67800781e666ce3e22934dcc6a2852f61e77e785 100644 (file)
@@ -12,7 +12,7 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     // Check if keys are in place
     if (CONSUMER_KEY === '' || CONSUMER_SECRET === '' || CONSUMER_KEY === 'CONSUMER_KEY_HERE' || CONSUMER_SECRET === 'CONSUMER_SECRET_HERE') {
         echo 'You need a consumer key and secret keys. Get one from <a href="https://dev.twitter.com/apps">dev.twitter.com/apps</a>';
-      
+
         exit;
     }
 
@@ -22,13 +22,13 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     $exclude_replies = filter_input(INPUT_GET, 'exclude_replies', FILTER_SANITIZE_SPECIAL_CHARS);
     $list_slug = filter_input(INPUT_GET, 'list_slug', FILTER_SANITIZE_SPECIAL_CHARS);
     $hashtag = filter_input(INPUT_GET, 'hashtag', FILTER_SANITIZE_SPECIAL_CHARS);
-    
+
        if(CACHE_ENABLED) {
         // Generate cache key from query data
         $cache_key = md5(
             var_export(array($username, $number, $exclude_replies, $list_slug, $hashtag), true) . HASH_SALT
         );
-    
+
         // Remove old files from cache dir
         $cache_path  = dirname(__FILE__) . '/cache/';
         foreach (glob($cache_path . '*') as $file) {
@@ -36,16 +36,16 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
                 unlink($file);
             }
         }
-    
+
         // If cache file exists - return it
         if(file_exists($cache_path . $cache_key)) {
             header('Content-Type: application/json');
-    
+
             echo file_get_contents($cache_path . $cache_key);
             exit;
         }
     }
-       
+
     /**
      * Gets connection with user Twitter account
      * @param  String $cons_key     Consumer Key
@@ -57,13 +57,13 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     function getConnectionWithToken($cons_key, $cons_secret, $oauth_token, $oauth_secret)
     {
         $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_secret);
-      
+
         return $connection;
     }
-    
+
     // Connect
     $connection = getConnectionWithToken(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_SECRET);
-    
+
     // Get Tweets
     if (!empty($list_slug)) {
       $params = array(
index 4570013b80f59fc225aa9b4b695b873198143587..d31451ac61f694f058df6309b2107bcc10c8e6a0 100644 (file)
@@ -92,9 +92,9 @@ abstract class OAuthSignatureMethod {
 }
 
 /**
- * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104] 
- * where the Signature Base String is the text and the key is the concatenated values (each first 
- * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&' 
+ * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104]
+ * where the Signature Base String is the text and the key is the concatenated values (each first
+ * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&'
  * character (ASCII code 38) even if empty.
  *   - Chapter 9.2 ("HMAC-SHA1")
  */
@@ -120,7 +120,7 @@ class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod {
 }
 
 /**
- * The PLAINTEXT method does not provide any security protection and SHOULD only be used 
+ * The PLAINTEXT method does not provide any security protection and SHOULD only be used
  * over a secure channel such as HTTPS. It does not use the Signature Base String.
  *   - Chapter 9.4 ("PLAINTEXT")
  */
@@ -130,8 +130,8 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
   }
 
   /**
-   * oauth_signature is set to the concatenated encoded values of the Consumer Secret and 
-   * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is 
+   * oauth_signature is set to the concatenated encoded values of the Consumer Secret and
+   * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is
    * empty. The result MUST be encoded again.
    *   - Chapter 9.4.1 ("Generating Signatures")
    *
@@ -153,10 +153,10 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
 }
 
 /**
- * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in 
- * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for 
- * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a 
- * verified way to the Service Provider, in a manner which is beyond the scope of this 
+ * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in
+ * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for
+ * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a
+ * verified way to the Service Provider, in a manner which is beyond the scope of this
  * specification.
  *   - Chapter 9.3 ("RSA-SHA1")
  */
@@ -558,7 +558,7 @@ class OAuthServer {
   private function get_version(&$request) {
     $version = $request->get_parameter("oauth_version");
     if (!$version) {
-      // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present. 
+      // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present.
       // Chapter 7.0 ("Accessing Protected Ressources")
       $version = '1.0';
     }
@@ -658,7 +658,7 @@ class OAuthServer {
       throw new OAuthException(
         'Missing timestamp parameter. The parameter is required'
       );
-    
+
     // verify that timestamp is recentish
     $now = time();
     if (abs($now - $timestamp) > $this->timestamp_threshold) {
index 7ed5ef98a738a54ac1696b545e065ff0e580b727..68c99fe9767b6fc1609170791aa36ecd35641359 100644 (file)
@@ -29,7 +29,7 @@ class TwitterOAuth {
   /* Set timeout default. */
   public $timeout = 30;
   /* Set connect timeout. */
-  public $connecttimeout = 30; 
+  public $connecttimeout = 30;
   /* Verify SSL Cert. */
   public $ssl_verifypeer = FALSE;
   /* Respons format. */
@@ -81,7 +81,7 @@ class TwitterOAuth {
    */
   function getRequestToken($oauth_callback) {
     $parameters = array();
-    $parameters['oauth_callback'] = $oauth_callback; 
+    $parameters['oauth_callback'] = $oauth_callback;
     $request = $this->oAuthRequest($this->requestTokenURL(), 'GET', $parameters);
     $token = OAuthUtil::parse_parameters($request);
     $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
@@ -130,7 +130,7 @@ class TwitterOAuth {
    *                "user_id" => "9436992",
    *                "screen_name" => "abraham",
    *                "x_auth_expires" => "0")
-   */  
+   */
   function getXAuthToken($username, $password) {
     $parameters = array();
     $parameters['x_auth_username'] = $username;
@@ -152,7 +152,7 @@ class TwitterOAuth {
     }
     return $response;
   }
-  
+
   /**
    * POST wrapper for oAuthRequest.
    */
index 3b51f431b5186d64c67232f3df817c8275507cd3..74ce067f8deca2489d4e68defc4c1b9adbc2edcd 100755 (executable)
@@ -14,8 +14,8 @@
       https is available for any of them!
   </div>
 
-  
-  
+
+
 
   <div class="panel-heading">
        <h3 class="panel-title">Support the FSF!</h3>
index ccb9b4f215f2cd3bd7bd808b3086f076b792a715..0ba749329de40aa7d717ac7266423e39a2885738 100755 (executable)
@@ -25,7 +25,7 @@
 
                        <li class="item">
                        <img src="//static.fsf.org/nosvn/libreplanet/2014/site/carousel/gnu30_hackers.jpg"
-                       alt="[ Apply for a scholarship ]">              
+                       alt="[ Apply for a scholarship ]">
                        <p class="carousel-caption-bottom"><a href="https://www.libreplanet.org/2016/scholarship_donation">Donate to the scholarship fund</a> to help us bring new people to LibrePlanet.
                </p>
        </li>
index 6b7ff6585ba48ede5f566f868c08082c970ecc3e..a93ece529234605cf24d236b2fd9eeb16134e03d 100755 (executable)
                <td><a href="/2016/assets/js/lodash.js">load.js</a></td>
          </tr>
 
-         
+
          <tr>
            <td><a href="/2016/assets/js/engine.io.bundle.min.js">engine.io.bundle.min.js</a></td>
            <td><a href="http://www.gnu.org/licenses/agpl-3.0.html">GNU Affero General Public License version 3</a></td>
            <td><a href="/2016/assets/js/engine.io.bundle.js">engine.io.bundle.js</a></td>
          </tr>
-         
+
           <tr>
            <td><a href="/2016/assets/js/kiwi.min.js">kiwi.min.js</a></td>
            <td><a href="http://www.gnu.org/licenses/agpl-3.0.html">GNU Affero General Public License version 3</a></td>
            <td><a href="/2016/assets/js/kiwi.js">kiwi.js</a></td>
          </tr>
 
-         
+
          <tr>
                <td><a href="/2016/assets/js/jquery-1.11.3.min.js">jquery-1.11.3.min.js</a></td>
                <td><a href="http://www.jclark.com/xml/copying.txt">Expat</a></td>
index 02541f7f6f78f0eb88c35e2b08a82a2178f46bf7..3cba1e550c5db55d2c9c515b838d17fa503c0b73 100644 (file)
@@ -46,7 +46,7 @@
     "Zak Rogoff": "rogoff",
     "Guillaume Roguez": "roguez",
     "Enrique Rosas": "rosas",
-    "Leah Rowe": "rowe", 
+    "Leah Rowe": "rowe",
     "Felipe Correa da Silva Sanches": "sanches",
     "Eric Schultz": "schultz",
     "Andrew Seeder": "seeder",
index 7f5e0004991abe3f16c34ce2671c64e0f107613e..bf0eb8a48e11ec2ed6e34cc6bbc926399c8c4b2a 100644 (file)
@@ -1,5 +1,5 @@
 [
-    "Donald Robertson", 
-    "Donald Robertson", 
+    "Donald Robertson",
+    "Donald Robertson",
     "Kat Walsh"
 ]
\ No newline at end of file
index 7166c1681428d2f4828ad08f6b3f96cd3f0c5607..4ee39efa7cd1ddfeec5ceed329b10174f6088c60 100644 (file)
@@ -49,7 +49,7 @@
 .ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; }
 .ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
 .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; zoom: 1; }
-.ui-autocomplete { position: absolute; cursor: default; }      
+.ui-autocomplete { position: absolute; cursor: default; }
 
 /* workarounds */
 * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
@@ -57,8 +57,8 @@
 .ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; }
 .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
 button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
+.ui-button-icons-only { width: 3.4em; }
+button.ui-button-icons-only { width: 3.7em; }
 
 /*button text element */
 .ui-button .ui-button-text { display: block; line-height: 1.4;  }
@@ -95,7 +95,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
 .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
 .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
 .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
+.ui-datepicker select.ui-datepicker-month,
 .ui-datepicker select.ui-datepicker-year { width: 49%;}
 .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
 .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
index 94fb5490a2ed10b2c69a4a567a4fd2e4f706d841..f155876e1b9cf712c81dd78eac057c5629343b9b 100644 (file)
 <glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
 <glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
 </font>
-</defs></svg> 
\ No newline at end of file
+</defs></svg>
\ No newline at end of file
index 9dcbc53860673be65350d4c2cfeb2b492a033928..5bd130e6bac363ad91c22aa9b479779e41560cc2 100644 (file)
@@ -1014,7 +1014,7 @@ JSONPPolling.prototype.doPoll = function () {
   this.script = script;
 
   var isUAgecko = 'undefined' != typeof navigator && /gecko/i.test(navigator.userAgent);
-  
+
   if (isUAgecko) {
     setTimeout(function () {
       var iframe = document.createElement('iframe');
index ab76d3a76719287a317b694d276be1b1cd0b2fa5..8ef5770a9eaef4a9de2c6479746ed6b133739393 100644 (file)
@@ -915,7 +915,7 @@ $.widget("ui.mouse", {
                        .bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
 
                event.preventDefault();
-               
+
                mouseHandled = true;
                return true;
        },
@@ -1545,7 +1545,7 @@ $.widget("ui.draggable", $.ui.mouse, {
                this.handle = this._getHandle(event);
                if (!this.handle)
                        return false;
-               
+
                $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
                        $('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')
                        .css({
@@ -1629,12 +1629,12 @@ $.widget("ui.draggable", $.ui.mouse, {
                if ($.ui.ddmanager && !o.dropBehaviour)
                        $.ui.ddmanager.prepareOffsets(this, event);
 
-               
+
                this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
-               
+
                //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)
                if ( $.ui.ddmanager ) $.ui.ddmanager.dragStart(this, event);
-               
+
                return true;
        },
 
@@ -1673,7 +1673,7 @@ $.widget("ui.draggable", $.ui.mouse, {
                        dropped = this.dropped;
                        this.dropped = false;
                }
-               
+
                //if the original element is no longer in the DOM don't bother to continue (see #8269)
                var element = this.element[0], elementInDom = false;
                while ( element && (element = element.parentNode) ) {
@@ -1699,29 +1699,29 @@ $.widget("ui.draggable", $.ui.mouse, {
 
                return false;
        },
-       
+
        _mouseUp: function(event) {
                //Remove frame helpers
-               $("div.ui-draggable-iframeFix").each(function() { 
-                       this.parentNode.removeChild(this); 
+               $("div.ui-draggable-iframeFix").each(function() {
+                       this.parentNode.removeChild(this);
                });
-               
+
                //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)
                if( $.ui.ddmanager ) $.ui.ddmanager.dragStop(this, event);
-               
+
                return $.ui.mouse.prototype._mouseUp.call(this, event);
        },
-       
+
        cancel: function() {
-               
+
                if(this.helper.is(".ui-draggable-dragging")) {
                        this._mouseUp({});
                } else {
                        this._clear();
                }
-               
+
                return this;
-               
+
        },
 
        _getHandle: function(event) {
@@ -2042,12 +2042,12 @@ $.ui.plugin.add("draggable", "connectToSortable", {
                };
 
                $.each(inst.sortables, function(i) {
-                       
+
                        //Copy over some variables to allow calling the sortable's native _intersectsWith
                        this.instance.positionAbs = inst.positionAbs;
                        this.instance.helperProportions = inst.helperProportions;
                        this.instance.offset.click = inst.offset.click;
-                       
+
                        if(this.instance._intersectsWith(this.instance.containerCache)) {
 
                                //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once
@@ -2090,13 +2090,13 @@ $.ui.plugin.add("draggable", "connectToSortable", {
 
                                        this.instance.isOver = 0;
                                        this.instance.cancelHelperRemoval = true;
-                                       
+
                                        //Prevent reverting on this forced stop
                                        this.instance.options.revert = false;
-                                       
+
                                        // The out event needs to be triggered independently
                                        this.instance._trigger('out', event, this.instance._uiHash(this.instance));
-                                       
+
                                        this.instance._mouseStop(event, true);
                                        this.instance.options.helper = this.instance.options._helper;
 
@@ -2266,7 +2266,7 @@ $.ui.plugin.add("draggable", "stack", {
                        return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);
                });
                if (!group.length) { return; }
-               
+
                var min = parseInt(group[0].style.zIndex) || 0;
                $(group).each(function(i) {
                        this.style.zIndex = min + i;
@@ -3130,7 +3130,7 @@ $.ui.plugin.add("resizable", "alsoResize", {
 
                _alsoResize = function (exp, c) {
                        $(exp).each(function() {
-                               var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, 
+                               var el = $(this), start = $(this).data("resizable-alsoresize"), style = {},
                                        css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left'];
 
                                $.each(css, function (i, prop) {
@@ -6488,7 +6488,7 @@ function Datepicker() {
 $.extend(Datepicker.prototype, {
        /* Class name added to elements to indicate already configured with a date picker. */
        markerClassName: 'hasDatepicker',
-       
+
        //Keep track of the maximum number of rows displayed (see #7043)
        maxRows: 4,
 
@@ -6497,7 +6497,7 @@ $.extend(Datepicker.prototype, {
                if (this.debug)
                        console.log.apply('', arguments);
        },
-       
+
        // TODO rename to "widget" when switching to widget factory
        _widgetDatepicker: function() {
                return this.dpDiv;
@@ -6607,7 +6607,7 @@ $.extend(Datepicker.prototype, {
                                if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
                                        $.datepicker._hideDatepicker();
                                else if ($.datepicker._datepickerShowing && $.datepicker._lastInput != input[0]) {
-                                       $.datepicker._hideDatepicker(); 
+                                       $.datepicker._hideDatepicker();
                                        $.datepicker._showDatepicker(input[0]);
                                } else
                                        $.datepicker._showDatepicker(input[0]);
@@ -6903,7 +6903,7 @@ $.extend(Datepicker.prototype, {
                                case 9: $.datepicker._hideDatepicker();
                                                handled = false;
                                                break; // hide on tab out
-                               case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + 
+                               case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' +
                                                                        $.datepicker._currentClass + ')', inst.dpDiv);
                                                if (sel[0])
                                                        $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
@@ -7001,7 +7001,7 @@ $.extend(Datepicker.prototype, {
        },
 
        /* Pop-up the date picker for a given input field.
-          If false returned from beforeShow event handler do not show. 
+          If false returned from beforeShow event handler do not show.
           @param  input  element - the input field attached to the date picker or
                          event - if triggered by focus */
        _showDatepicker: function(input) {
@@ -7105,7 +7105,7 @@ $.extend(Datepicker.prototype, {
                                // this breaks the change event in IE
                                inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement)
                        inst.input.focus();
-               // deffered render of the years select (to avoid flashes on Firefox) 
+               // deffered render of the years select (to avoid flashes on Firefox)
                if( inst.yearshtml ){
                        var origyearshtml = inst.yearshtml;
                        setTimeout(function(){
@@ -7814,7 +7814,7 @@ $.extend(Datepicker.prototype, {
                        $(this).bind(this.getAttribute('data-event'), handler[this.getAttribute('data-handler')]);
                });
        },
-       
+
        /* Generate the HTML for the current state of the date picker. */
        _generateHTML: function(inst) {
                var today = new Date();
@@ -7971,7 +7971,7 @@ $.extend(Datepicker.prototype, {
                                        drawMonth = 0;
                                        drawYear++;
                                }
-                               calender += '</tbody></table>' + (isMultiMonth ? '</div>' + 
+                               calender += '</tbody></table>' + (isMultiMonth ? '</div>' +
                                                        ((numMonths[0] > 0 && col == numMonths[1]-1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
                                group += calender;
                        }
@@ -8035,7 +8035,7 @@ $.extend(Datepicker.prototype, {
                                                '>' + year + '</option>';
                                }
                                inst.yearshtml += '</select>';
-                               
+
                                html += inst.yearshtml;
                                inst.yearshtml = null;
                        }
@@ -8146,7 +8146,7 @@ $.extend(Datepicker.prototype, {
  * Bind hover events for datepicker elements.
  * Done via delegate so the binding only occurs once in the lifetime of the parent div.
  * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
- */ 
+ */
 function bindHover(dpDiv) {
        var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';
        return dpDiv.delegate(selector, 'mouseout', function() {
@@ -8178,12 +8178,12 @@ function extendRemove(target, props) {
                        Object - settings for attaching new datepicker functionality
    @return  jQuery object */
 $.fn.datepicker = function(options){
-       
+
        /* Verify an empty collection wasn't passed - Fixes #6976 */
        if ( !this.length ) {
                return this;
        }
-       
+
        /* Initialise the date picker. */
        if (!$.datepicker.initialized) {
                $(document).mousedown($.datepicker._checkExternalClick).
@@ -14211,7 +14211,7 @@ $.effects.effect.highlight = function( o, done ) {
        }
 
        $.effects.save( elem, props );
-       
+
        elem
                .show()
                .css({
index 31de7b0d51444ca9ce3a50d71892845f2d88ce57..3603058bcb76086a847f5726846af1a4399bac24 100644 (file)
@@ -1,17 +1,17 @@
 /*!
  * jQuery Feeds v0.5
  * https://camagu.github.com/jquery-feeds
- * 
+ *
  * Copyright (c) 2013, Camilo Aguilar
  * Dual licensed under the MIT and GPL licenses:
  *     http://www.opensource.org/licenses/mit-license.php
  *     http://www.gnu.org/licenses/gpl.html
- * 
+ *
  * Includes a modified version of Simple JavaScript Templating
  * http://ejohn.org/blog/javascript-micro-templating/
  * Copyright (c) John Resig (http://ejohn.org)
  * MIT licensed
- * 
+ *
  * Date: 2013-02-18
  */
 
index 305f66b2d839887a6bc837ac1b56aa71c3dbc342..276cdeeb80efee20e375bcbb1fcd00bb82e62b74 100644 (file)
@@ -1,17 +1,17 @@
 /*!
  * jQuery Feeds v0.5
  * https://camagu.github.com/jquery-feeds
- * 
+ *
  * Copyright (c) 2013, Camilo Aguilar
  * Dual licensed under the MIT and GPL licenses:
  *     http://www.opensource.org/licenses/mit-license.php
  *     http://www.gnu.org/licenses/gpl.html
- * 
+ *
  * Includes a modified version of Simple JavaScript Templating
  * http://ejohn.org/blog/javascript-micro-templating/
  * Copyright (c) John Resig (http://ejohn.org)
  * MIT licensed
- * 
+ *
  * Date: 2013-02-18
  */
 (function(e){var t={};e.fn.feeds=function(n){var r={service:"//ajax.googleapis.com/ajax/services/feed/load?v=1.0",settings:{loadingTemplate:'<div class="feeds-loader">Loading entries ...</div>',entryTemplate:'<div class="feeds-entry feeds-source-<!=source!>"><a class="feeds-entry-title" target="_blank" href="<!=link!>" title="<!=title!>"><!=title!></a><div class="feeds-entry-date"><!=publishedDate!></div><div class="feeds-entry-contentSnippet"><!=contentSnippet!></div></div>',feeds:{},max:-1,xml:!1,ssl:"auto",onComplete:function(e){},preprocess:function(e){}},feeds:{},entries:[],feedsLength:0,feedsLoaded:0,$element:null,$loader:null,init:function(t,n){this.settings=e.extend(this.settings,n),this.feeds=this.settings.feeds;for(var r in this.feeds)this.feeds.hasOwnProperty(r)&&this.feedsLength++;var i=this.settings.ssl==="auto"?document.location.protocol:this.settings.ssl?"https:":"http:";e.inArray(i,["http:","https"])===-1&&(i="https:"),this.service=i+this.service,this.$element=e(t);var s=typeof this.settings.loadingTemplate=="function"?this.settings.loadingTemplate:this.tmpl(this.settings.loadingTemplate);this.$loader=e(s.call(this,{})),this.$element.html(this.$loader);var o=this.settings.xml?"json_xml":"json";for(var u in this.feeds)this.fetchFeed(u,this.feeds[u],this.settings.max,o)},fetchFeed:function(n,r,i,s){var o=this,u=r+"**"+i+"**"+s;if(typeof t[u]!="undefined"){o.processResponse(t[u],n,r);return}e.ajax({url:this.service,dataType:"jsonp",data:{q:r,num:i,output:s},beforeSend:function(){this.feed=r,this.key=n},success:function(e){t[u]=e,o.processResponse(e,this.key,this.feed)}})},processResponse:function(t,n,r){if(t.responseStatus!==200)window.console&&window.console.log&&console.log("Unable to load feed "+r+": ("+t.responseStatus+") "+t.responseDetails);else{var i=t.responseData.feed,s=i.entries,o=t.responseData.feed.type;if(this.settings.xml){var u=e(t.responseData.xmlString);o.match(/^rss.*/)?u=u.filter("rss").find("channel"):o.match(/^atom.*/)&&(u=u.filter("feed")),i.xml=u}for(var a in s){var f=e.extend({},s[a]);f.source=n,f.publishedDateRaw=f.publishedDate,f.feedUrl=i.feedUrl,f.feedTitle=i.title,f.feedLink=i.link,f.feedDescription=i.description,f.feedAuthor=i.author,this.settings.xml&&(o.match(/^rss.*/)?f.xml=i.xml.find("item").eq(a):o.match(/^atom.*/)?f.xml=i.xml.find("entry").eq(a):f.xml={}),this.settings.preprocess.call(f,i)!==!1&&this.entries.push(f)}}this.feedsLoaded++,this.checkComplete()},checkComplete:function(){if(this.feedsLoaded===this.feedsLength){this.$loader.remove(),this.entries.sort(function(e,t){var n=(new Date(e.publishedDateRaw)).getTime(),r=(new Date(t.publishedDateRaw)).getTime();return r-n});var e=typeof this.settings.entryTemplate=="function"?this.settings.entryTemplate:this.tmpl(this.settings.entryTemplate);for(var t in this.entries){var n=this.entries[t],r=e.call(this,n);this.$element.append(r)}this.settings.onComplete.call(this.$element[0],this.entries)}},tmplCache:{},tmpl:function(t,n){var r=/\W/.test(t)?new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+t.replace(/[\r\t\n]/g," ").split("<!").join(" ").replace(/((^|!>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)!>/g,"',typeof $1 != 'undefined' ? $1 : '','").split("   ").join("');").split("!>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');"):this.tmplCache[t]=this.tmplCache[t]||this.tmpl(document.getElementById(t).innerHTML);return n?r(n):r}};return e(this).each(function(){r.init(this,n)})}})(jQuery);
\ No newline at end of file
index a094a70d01bdf8d31a8627a733321d4616440583..311a57b10d035f9ac5f3f0962a25bfbd2efe6ef9 100644 (file)
@@ -37,7 +37,7 @@
                        target: '#output'
                });
        });
-       
+
        You can also use ajaxForm with delegation (requires jQuery v1.7+), so the
        form does not have to exist when you invoke ajaxForm:
 
@@ -45,7 +45,7 @@
                delegation: true,
                target: '#output'
        });
-       
+
        When using ajaxForm, the ajaxSubmit function will be invoked for you
        at the appropriate time.
 */
@@ -69,7 +69,7 @@ $.fn.ajaxSubmit = function(options) {
                log('ajaxSubmit: skipping submit process - no element selected');
                return this;
        }
-       
+
        var method, action, url, $form = this;
 
        if (typeof options == 'function') {
@@ -111,7 +111,7 @@ $.fn.ajaxSubmit = function(options) {
        if ( traditional === undefined ) {
                traditional = $.ajaxSettings.traditional;
        }
-       
+
     var elements = [];
     var qx, a = this.formToArray(options.semantic, elements);
        if (options.data) {
@@ -135,7 +135,7 @@ $.fn.ajaxSubmit = function(options) {
        var q = $.param(a, traditional);
        if (qx) {
                q = ( q ? (q + '&' + qx) : qx );
-       }       
+       }
        if (options.type.toUpperCase() == 'GET') {
                options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
                options.data = null;  // data is null for 'get'
@@ -165,7 +165,7 @@ $.fn.ajaxSubmit = function(options) {
        }
 
        options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
-        var context = options.context || this ;    // jQuery 1.4+ supports scope context 
+        var context = options.context || this ;    // jQuery 1.4+ supports scope context
                for (var i=0, max=callbacks.length; i < max; i++) {
                        callbacks[i].apply(context, [data, status, xhr || $form, $form]);
                }
@@ -175,7 +175,7 @@ $.fn.ajaxSubmit = function(options) {
 
     // [value] (issue #113), also see comment:
     // https://github.com/malsup/form/commit/588306aedba1de01388032d5f42a60159eea9228#commitcomment-2180219
-    var fileInputs = $('input[type=file]:enabled[value!=""]', this); 
+    var fileInputs = $('input[type=file]:enabled[value!=""]', this);
 
        var hasFileInputs = fileInputs.length > 0;
        var mp = 'multipart/form-data';
@@ -299,7 +299,7 @@ $.fn.ajaxSubmit = function(options) {
             deferred.reject();
             return deferred;
         }
-        
+
                if (a) {
                                // ensure that every serialized input is still enabled
             for (i=0; i < elements.length; i++) {
@@ -347,7 +347,7 @@ $.fn.ajaxSubmit = function(options) {
                 if (io.contentWindow.document.execCommand) {
                         io.contentWindow.document.execCommand('Stop');
                 }
-                } 
+                }
                 catch(ignore) {}
 
                                $io.attr('src', s.iframeSrc); // abort op in progress
@@ -395,7 +395,7 @@ $.fn.ajaxSubmit = function(options) {
                                }
                        }
                }
-               
+
                var CLIENT_TIMEOUT_ABORT = 1;
                var SERVER_ABORT = 2;
 
@@ -403,7 +403,7 @@ $.fn.ajaxSubmit = function(options) {
                        var doc = frame.contentWindow ? frame.contentWindow.document : frame.contentDocument ? frame.contentDocument : frame.document;
                        return doc;
                }
-               
+
                // Rails CSRF hack (thanks to Yvan Barthelemy)
                var csrf_token = $('meta[name=csrf-token]').attr('content');
                var csrf_param = $('meta[name=csrf-param]').attr('content');
@@ -438,7 +438,7 @@ $.fn.ajaxSubmit = function(options) {
                        if (s.timeout) {
                                timeoutHandle = setTimeout(function() { timedOut = true; cb(CLIENT_TIMEOUT_ABORT); }, s.timeout);
                        }
-                       
+
                        // look for server aborts
                        function checkState() {
                                try {
@@ -537,7 +537,7 @@ $.fn.ajaxSubmit = function(options) {
                        }
             if (io.detachEvent)
                 io.detachEvent('onload', cb);
-            else    
+            else
                 io.removeEventListener('load', cb, false);
 
                        var status = 'success', errMsg;
@@ -593,7 +593,7 @@ $.fn.ajaxSubmit = function(options) {
                                                var pre = doc.getElementsByTagName('pre')[0];
                                                var b = doc.getElementsByTagName('body')[0];
                                                if (pre) {
-                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;  
+                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;
                                                }
                                                else if (b) {
                           xhr.responseText = b.innerHTML ? b.innerHTML : b.textContent;
@@ -716,7 +716,7 @@ $.fn.ajaxSubmit = function(options) {
 $.fn.ajaxForm = function(options) {
        options = options || {};
        options.delegation = options.delegation && $.isFunction($.fn.on);
-       
+
        // in jQuery 1.3+ we can fix mistakes with the ready state
        if (!options.delegation && this.length === 0) {
                var o = { s: this.selector, c: this.context };
@@ -746,7 +746,7 @@ $.fn.ajaxForm = function(options) {
                .bind('click.form-plugin', options, captureSubmittingElement);
 };
 
-// private event handlers      
+// private event handlers
 function doAjaxSubmit(e) {
     /*jshint validthis:true */
        var options = e.data;
@@ -755,7 +755,7 @@ function doAjaxSubmit(e) {
                $(this).ajaxSubmit(options);
        }
 }
-       
+
 function captureSubmittingElement(e) {
     /*jshint validthis:true */
        var target = e.target;
@@ -835,14 +835,14 @@ $.fn.formToArray = function(semantic, elements) {
 
                v = $.fieldValue(el, true);
                if (v && v.constructor == Array) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
                        for(j=0, jmax=v.length; j < jmax; j++) {
                                a.push({name: n, value: v[j]});
                        }
                }
         else if (feature.fileapi && el.type == 'file' && !el.disabled) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             var files = el.files;
             if (files.length) {
@@ -856,7 +856,7 @@ $.fn.formToArray = function(semantic, elements) {
             }
         }
                else if (v !== null && typeof v != 'undefined') {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             a.push({name: n, value: v, type: el.type, required: el.required});
                }
@@ -1106,7 +1106,7 @@ $.fn.ajaxSubmit.debug = false;
 
 // helper fn for console logging
 function log() {
-       if (!$.fn.ajaxSubmit.debug) 
+       if (!$.fn.ajaxSubmit.debug)
                return;
        var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
        if (window.console && window.console.log) {
index 29082ca9647b864d3f0f254fa25a6a6bcc22b232..bcb4a27b7a532c4bcd6bb910a1010776fb97ce1a 100644 (file)
@@ -119,7 +119,7 @@ var m = (function app(window, undefined) {
                                        i-- //check current index again and flatten until there are no more nested arrays at that index
                                }
                        }
-                       
+
                        var nodes = [], intact = cached.length === data.length, subArrayCount = 0;
 
                        //keys algorithm: sort elements without recreating them if keys are present
@@ -138,7 +138,7 @@ var m = (function app(window, undefined) {
                        }
                        if (shouldMaintainIdentities) {
                                if (data.indexOf(null) > -1) data = data.filter(function(x) {return x != null})
-                               
+
                                var keysDiffer = false
                                if (data.length != cached.length) keysDiffer = true
                                else for (var i = 0, cachedCell, dataCell; cachedCell = cached[i], dataCell = data[i]; i++) {
@@ -147,7 +147,7 @@ var m = (function app(window, undefined) {
                                                break
                                        }
                                }
-                               
+
                                if (keysDiffer) {
                                        for (var i = 0, len = data.length; i < len; i++) {
                                                if (data[i] && data[i].attrs) {
@@ -216,7 +216,7 @@ var m = (function app(window, undefined) {
                        }
                        if (!intact) {
                                //diff the array itself
-                               
+
                                //update the list of DOM nodes by collecting the nodes from each item
                                for (var i = 0, len = data.length; i < len; i++) {
                                        if (cached[i] != null) nodes.push.apply(nodes, cached[i].nodes)
@@ -699,7 +699,7 @@ var m = (function app(window, undefined) {
                }
                return str.join("&")
        }
-       
+
        function parseQueryString(str) {
                var pairs = str.split("&"), params = {};
                for (var i = 0, len = pairs.length; i < len; i++) {
index d48daafdea6ce07d5d495a18172b7bb1bf8e7328..d3115512a757e489d0c0fe8cfad0f9f2dc099e4c 100644 (file)
@@ -2,7 +2,7 @@
     /**
      * Your Twitter App Info
      */
-    
+
     // Consumer Key
     define('CONSUMER_KEY', 'yxmC3rFOrr1xRGbCo3J6QNkKW');
     define('CONSUMER_SECRET', 'rqI9V5lPttEhNeOwBl14Jn6ryCU5MRBJQ5J6j8OEgaXwekeZM2');
@@ -10,7 +10,7 @@
     // User Access Token
     define('ACCESS_TOKEN', '2972347515-LCsxZafDTPd8hPCpWfewRVCEqgkHysKqB97x1bc');
     define('ACCESS_SECRET', 'Od3GSWu8iVW6x03YfTtDXVY48ewB315FkSrb3HQgi8Tx7');
-       
+
        // Cache Settings
        define('CACHE_ENABLED', false);
        define('CACHE_LIFETIME', 3600); // in seconds
index d02b7aebae3fd08d189f7127946fb47390815665..67800781e666ce3e22934dcc6a2852f61e77e785 100644 (file)
@@ -12,7 +12,7 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     // Check if keys are in place
     if (CONSUMER_KEY === '' || CONSUMER_SECRET === '' || CONSUMER_KEY === 'CONSUMER_KEY_HERE' || CONSUMER_SECRET === 'CONSUMER_SECRET_HERE') {
         echo 'You need a consumer key and secret keys. Get one from <a href="https://dev.twitter.com/apps">dev.twitter.com/apps</a>';
-      
+
         exit;
     }
 
@@ -22,13 +22,13 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     $exclude_replies = filter_input(INPUT_GET, 'exclude_replies', FILTER_SANITIZE_SPECIAL_CHARS);
     $list_slug = filter_input(INPUT_GET, 'list_slug', FILTER_SANITIZE_SPECIAL_CHARS);
     $hashtag = filter_input(INPUT_GET, 'hashtag', FILTER_SANITIZE_SPECIAL_CHARS);
-    
+
        if(CACHE_ENABLED) {
         // Generate cache key from query data
         $cache_key = md5(
             var_export(array($username, $number, $exclude_replies, $list_slug, $hashtag), true) . HASH_SALT
         );
-    
+
         // Remove old files from cache dir
         $cache_path  = dirname(__FILE__) . '/cache/';
         foreach (glob($cache_path . '*') as $file) {
@@ -36,16 +36,16 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
                 unlink($file);
             }
         }
-    
+
         // If cache file exists - return it
         if(file_exists($cache_path . $cache_key)) {
             header('Content-Type: application/json');
-    
+
             echo file_get_contents($cache_path . $cache_key);
             exit;
         }
     }
-       
+
     /**
      * Gets connection with user Twitter account
      * @param  String $cons_key     Consumer Key
@@ -57,13 +57,13 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     function getConnectionWithToken($cons_key, $cons_secret, $oauth_token, $oauth_secret)
     {
         $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_secret);
-      
+
         return $connection;
     }
-    
+
     // Connect
     $connection = getConnectionWithToken(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_SECRET);
-    
+
     // Get Tweets
     if (!empty($list_slug)) {
       $params = array(
index 4570013b80f59fc225aa9b4b695b873198143587..d31451ac61f694f058df6309b2107bcc10c8e6a0 100644 (file)
@@ -92,9 +92,9 @@ abstract class OAuthSignatureMethod {
 }
 
 /**
- * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104] 
- * where the Signature Base String is the text and the key is the concatenated values (each first 
- * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&' 
+ * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104]
+ * where the Signature Base String is the text and the key is the concatenated values (each first
+ * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&'
  * character (ASCII code 38) even if empty.
  *   - Chapter 9.2 ("HMAC-SHA1")
  */
@@ -120,7 +120,7 @@ class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod {
 }
 
 /**
- * The PLAINTEXT method does not provide any security protection and SHOULD only be used 
+ * The PLAINTEXT method does not provide any security protection and SHOULD only be used
  * over a secure channel such as HTTPS. It does not use the Signature Base String.
  *   - Chapter 9.4 ("PLAINTEXT")
  */
@@ -130,8 +130,8 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
   }
 
   /**
-   * oauth_signature is set to the concatenated encoded values of the Consumer Secret and 
-   * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is 
+   * oauth_signature is set to the concatenated encoded values of the Consumer Secret and
+   * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is
    * empty. The result MUST be encoded again.
    *   - Chapter 9.4.1 ("Generating Signatures")
    *
@@ -153,10 +153,10 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
 }
 
 /**
- * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in 
- * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for 
- * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a 
- * verified way to the Service Provider, in a manner which is beyond the scope of this 
+ * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in
+ * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for
+ * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a
+ * verified way to the Service Provider, in a manner which is beyond the scope of this
  * specification.
  *   - Chapter 9.3 ("RSA-SHA1")
  */
@@ -558,7 +558,7 @@ class OAuthServer {
   private function get_version(&$request) {
     $version = $request->get_parameter("oauth_version");
     if (!$version) {
-      // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present. 
+      // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present.
       // Chapter 7.0 ("Accessing Protected Ressources")
       $version = '1.0';
     }
@@ -658,7 +658,7 @@ class OAuthServer {
       throw new OAuthException(
         'Missing timestamp parameter. The parameter is required'
       );
-    
+
     // verify that timestamp is recentish
     $now = time();
     if (abs($now - $timestamp) > $this->timestamp_threshold) {
index 7ed5ef98a738a54ac1696b545e065ff0e580b727..68c99fe9767b6fc1609170791aa36ecd35641359 100644 (file)
@@ -29,7 +29,7 @@ class TwitterOAuth {
   /* Set timeout default. */
   public $timeout = 30;
   /* Set connect timeout. */
-  public $connecttimeout = 30; 
+  public $connecttimeout = 30;
   /* Verify SSL Cert. */
   public $ssl_verifypeer = FALSE;
   /* Respons format. */
@@ -81,7 +81,7 @@ class TwitterOAuth {
    */
   function getRequestToken($oauth_callback) {
     $parameters = array();
-    $parameters['oauth_callback'] = $oauth_callback; 
+    $parameters['oauth_callback'] = $oauth_callback;
     $request = $this->oAuthRequest($this->requestTokenURL(), 'GET', $parameters);
     $token = OAuthUtil::parse_parameters($request);
     $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
@@ -130,7 +130,7 @@ class TwitterOAuth {
    *                "user_id" => "9436992",
    *                "screen_name" => "abraham",
    *                "x_auth_expires" => "0")
-   */  
+   */
   function getXAuthToken($username, $password) {
     $parameters = array();
     $parameters['x_auth_username'] = $username;
@@ -152,7 +152,7 @@ class TwitterOAuth {
     }
     return $response;
   }
-  
+
   /**
    * POST wrapper for oAuthRequest.
    */
index 74004553a19c978e7a6d4c8cb82f2e4323913dfe..8ea634cb889f5c2ccc99c7fca92cb306c0e39134 100644 (file)
@@ -1196,11 +1196,11 @@ license compliance engineer at the FSF.</p>
 </hgroup>
 </header>
 <p><em>The set of programmers: How math restricts us</em></p>
-<p>Carol Smith is a director of the Open Source Initiative. She has worked as 
-an Education Partnership Program Manager at GitHub. Before GitHub, she 
-managed the Google Summer of Code program for 6 years and worked at 
-Google for over 10 years. She has a degree in Journalism from 
-California State University, Northridge, and is a cook, 
+<p>Carol Smith is a director of the Open Source Initiative. She has worked as
+an Education Partnership Program Manager at GitHub. Before GitHub, she
+managed the Google Summer of Code program for 6 years and worked at
+Google for over 10 years. She has a degree in Journalism from
+California State University, Northridge, and is a cook,
 cyclist, and horseback rider.</p>
 </div> <!-- speaker-44 content column end -->
 </div> <!-- speaker-44 row end -->
index 1666874b26a6b783d0fc2bf0a05f36d303235932..04f8828bb4f6459b1301ed96533316e544eb32d2 100644 (file)
@@ -1,55 +1,55 @@
 {
-    "Cory Doctorow": "doctorow", 
-    "Kade Crockford": "crockford", 
-    "Sumana Harihareswara": "harihareswara", 
-    "Richard Stallman": "stallman", 
-    "Ifeoma Ajunwa": "ajunwa", 
-    "Tom Callaway": "callaway", 
-    "Al Carter": "carter", 
-    "Vagrant Cascadian": "cascadian", 
-    "Pamela Chestek": "chestek", 
-    "Geoff A. Cohen": "cohen", 
-    "Marianne Corvellec": "corvellec", 
-    "Remy DeCausemaker": "decausemaker", 
-    "Luke Demarest": "demarest", 
-    "Máirín Duffy": "duffy", 
-    "Nick Doiron": "doiron", 
-    "Cecilia Donnelly": "donnelly", 
-    "Skye Elijah": "elijah", 
-    "Christian Fernandez": "fernandez", 
-    "Mike Gerwitz": "gerwitz", 
-    "Denver Gingerich": "gingerich", 
-    "Shauna Gordon-McKeon": "gordon-mckeon", 
-    "Ben Green": "green", 
-    "Wm Salt Hale": "hale", 
-    "Gordon Hall": "hall", 
-    "Zeeshan Hasan": "hasan", 
-    "Tiberius Hefflin": "hefflin", 
-    "Joey Hess": "hess", 
-    "Chris Hofstader": "hofstader", 
-    "Helen Jiang": "jiang", 
-    "Alex Jordan": "jordan", 
-    "Rabimba Karanjai": "karanjai", 
-    "Spencer Krum": "krum", 
-    "Bradley Kuhn": "kuhn", 
-    "Bassam Kurdali": "kurdali", 
-    "Ximin Luo": "luo", 
-    "Tom Marble": "marble", 
-    "Micky Metts": "metts", 
-    "Eben Moglen": "moglen", 
-    "Deborah Nicholson": "nicholson", 
-    "Alexandre Oliva": "oliva", 
-    "Andrew Oram": "oram", 
-    "Conor Schaefer": "schaefer", 
-    "Michael Scherer": "scherer", 
-    "Eric Schultz": "schultz", 
-    "Andrew Seeder": "seeder", 
-    "Mustafa Shameem": "shameem", 
-    "Brett Smith": "smith", 
-    "Carol Smith": "carol_smith", 
-    "Noah Swartz": "swartz", 
-    "Robinson Tryon": "tryon", 
-    "Christopher Webber": "webber", 
-    "Valerie Young": "young", 
+    "Cory Doctorow": "doctorow",
+    "Kade Crockford": "crockford",
+    "Sumana Harihareswara": "harihareswara",
+    "Richard Stallman": "stallman",
+    "Ifeoma Ajunwa": "ajunwa",
+    "Tom Callaway": "callaway",
+    "Al Carter": "carter",
+    "Vagrant Cascadian": "cascadian",
+    "Pamela Chestek": "chestek",
+    "Geoff A. Cohen": "cohen",
+    "Marianne Corvellec": "corvellec",
+    "Remy DeCausemaker": "decausemaker",
+    "Luke Demarest": "demarest",
+    "Máirín Duffy": "duffy",
+    "Nick Doiron": "doiron",
+    "Cecilia Donnelly": "donnelly",
+    "Skye Elijah": "elijah",
+    "Christian Fernandez": "fernandez",
+    "Mike Gerwitz": "gerwitz",
+    "Denver Gingerich": "gingerich",
+    "Shauna Gordon-McKeon": "gordon-mckeon",
+    "Ben Green": "green",
+    "Wm Salt Hale": "hale",
+    "Gordon Hall": "hall",
+    "Zeeshan Hasan": "hasan",
+    "Tiberius Hefflin": "hefflin",
+    "Joey Hess": "hess",
+    "Chris Hofstader": "hofstader",
+    "Helen Jiang": "jiang",
+    "Alex Jordan": "jordan",
+    "Rabimba Karanjai": "karanjai",
+    "Spencer Krum": "krum",
+    "Bradley Kuhn": "kuhn",
+    "Bassam Kurdali": "kurdali",
+    "Ximin Luo": "luo",
+    "Tom Marble": "marble",
+    "Micky Metts": "metts",
+    "Eben Moglen": "moglen",
+    "Deborah Nicholson": "nicholson",
+    "Alexandre Oliva": "oliva",
+    "Andrew Oram": "oram",
+    "Conor Schaefer": "schaefer",
+    "Michael Scherer": "scherer",
+    "Eric Schultz": "schultz",
+    "Andrew Seeder": "seeder",
+    "Mustafa Shameem": "shameem",
+    "Brett Smith": "smith",
+    "Carol Smith": "carol_smith",
+    "Noah Swartz": "swartz",
+    "Robinson Tryon": "tryon",
+    "Christopher Webber": "webber",
+    "Valerie Young": "young",
     "Stefano Zacchiroli": "zacchiroli"
 }
\ No newline at end of file
index 7166c1681428d2f4828ad08f6b3f96cd3f0c5607..4ee39efa7cd1ddfeec5ceed329b10174f6088c60 100644 (file)
@@ -49,7 +49,7 @@
 .ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; }
 .ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
 .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; zoom: 1; }
-.ui-autocomplete { position: absolute; cursor: default; }      
+.ui-autocomplete { position: absolute; cursor: default; }
 
 /* workarounds */
 * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
@@ -57,8 +57,8 @@
 .ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; }
 .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
 button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
+.ui-button-icons-only { width: 3.4em; }
+button.ui-button-icons-only { width: 3.7em; }
 
 /*button text element */
 .ui-button .ui-button-text { display: block; line-height: 1.4;  }
@@ -95,7 +95,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
 .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
 .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
 .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
+.ui-datepicker select.ui-datepicker-month,
 .ui-datepicker select.ui-datepicker-year { width: 49%;}
 .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
 .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
index 94fb5490a2ed10b2c69a4a567a4fd2e4f706d841..f155876e1b9cf712c81dd78eac057c5629343b9b 100644 (file)
 <glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
 <glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
 </font>
-</defs></svg> 
\ No newline at end of file
+</defs></svg>
\ No newline at end of file
index 9dcbc53860673be65350d4c2cfeb2b492a033928..5bd130e6bac363ad91c22aa9b479779e41560cc2 100644 (file)
@@ -1014,7 +1014,7 @@ JSONPPolling.prototype.doPoll = function () {
   this.script = script;
 
   var isUAgecko = 'undefined' != typeof navigator && /gecko/i.test(navigator.userAgent);
-  
+
   if (isUAgecko) {
     setTimeout(function () {
       var iframe = document.createElement('iframe');
index ab76d3a76719287a317b694d276be1b1cd0b2fa5..8ef5770a9eaef4a9de2c6479746ed6b133739393 100644 (file)
@@ -915,7 +915,7 @@ $.widget("ui.mouse", {
                        .bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
 
                event.preventDefault();
-               
+
                mouseHandled = true;
                return true;
        },
@@ -1545,7 +1545,7 @@ $.widget("ui.draggable", $.ui.mouse, {
                this.handle = this._getHandle(event);
                if (!this.handle)
                        return false;
-               
+
                $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
                        $('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')
                        .css({
@@ -1629,12 +1629,12 @@ $.widget("ui.draggable", $.ui.mouse, {
                if ($.ui.ddmanager && !o.dropBehaviour)
                        $.ui.ddmanager.prepareOffsets(this, event);
 
-               
+
                this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
-               
+
                //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)
                if ( $.ui.ddmanager ) $.ui.ddmanager.dragStart(this, event);
-               
+
                return true;
        },
 
@@ -1673,7 +1673,7 @@ $.widget("ui.draggable", $.ui.mouse, {
                        dropped = this.dropped;
                        this.dropped = false;
                }
-               
+
                //if the original element is no longer in the DOM don't bother to continue (see #8269)
                var element = this.element[0], elementInDom = false;
                while ( element && (element = element.parentNode) ) {
@@ -1699,29 +1699,29 @@ $.widget("ui.draggable", $.ui.mouse, {
 
                return false;
        },
-       
+
        _mouseUp: function(event) {
                //Remove frame helpers
-               $("div.ui-draggable-iframeFix").each(function() { 
-                       this.parentNode.removeChild(this); 
+               $("div.ui-draggable-iframeFix").each(function() {
+                       this.parentNode.removeChild(this);
                });
-               
+
                //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)
                if( $.ui.ddmanager ) $.ui.ddmanager.dragStop(this, event);
-               
+
                return $.ui.mouse.prototype._mouseUp.call(this, event);
        },
-       
+
        cancel: function() {
-               
+
                if(this.helper.is(".ui-draggable-dragging")) {
                        this._mouseUp({});
                } else {
                        this._clear();
                }
-               
+
                return this;
-               
+
        },
 
        _getHandle: function(event) {
@@ -2042,12 +2042,12 @@ $.ui.plugin.add("draggable", "connectToSortable", {
                };
 
                $.each(inst.sortables, function(i) {
-                       
+
                        //Copy over some variables to allow calling the sortable's native _intersectsWith
                        this.instance.positionAbs = inst.positionAbs;
                        this.instance.helperProportions = inst.helperProportions;
                        this.instance.offset.click = inst.offset.click;
-                       
+
                        if(this.instance._intersectsWith(this.instance.containerCache)) {
 
                                //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once
@@ -2090,13 +2090,13 @@ $.ui.plugin.add("draggable", "connectToSortable", {
 
                                        this.instance.isOver = 0;
                                        this.instance.cancelHelperRemoval = true;
-                                       
+
                                        //Prevent reverting on this forced stop
                                        this.instance.options.revert = false;
-                                       
+
                                        // The out event needs to be triggered independently
                                        this.instance._trigger('out', event, this.instance._uiHash(this.instance));
-                                       
+
                                        this.instance._mouseStop(event, true);
                                        this.instance.options.helper = this.instance.options._helper;
 
@@ -2266,7 +2266,7 @@ $.ui.plugin.add("draggable", "stack", {
                        return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);
                });
                if (!group.length) { return; }
-               
+
                var min = parseInt(group[0].style.zIndex) || 0;
                $(group).each(function(i) {
                        this.style.zIndex = min + i;
@@ -3130,7 +3130,7 @@ $.ui.plugin.add("resizable", "alsoResize", {
 
                _alsoResize = function (exp, c) {
                        $(exp).each(function() {
-                               var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, 
+                               var el = $(this), start = $(this).data("resizable-alsoresize"), style = {},
                                        css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left'];
 
                                $.each(css, function (i, prop) {
@@ -6488,7 +6488,7 @@ function Datepicker() {
 $.extend(Datepicker.prototype, {
        /* Class name added to elements to indicate already configured with a date picker. */
        markerClassName: 'hasDatepicker',
-       
+
        //Keep track of the maximum number of rows displayed (see #7043)
        maxRows: 4,
 
@@ -6497,7 +6497,7 @@ $.extend(Datepicker.prototype, {
                if (this.debug)
                        console.log.apply('', arguments);
        },
-       
+
        // TODO rename to "widget" when switching to widget factory
        _widgetDatepicker: function() {
                return this.dpDiv;
@@ -6607,7 +6607,7 @@ $.extend(Datepicker.prototype, {
                                if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
                                        $.datepicker._hideDatepicker();
                                else if ($.datepicker._datepickerShowing && $.datepicker._lastInput != input[0]) {
-                                       $.datepicker._hideDatepicker(); 
+                                       $.datepicker._hideDatepicker();
                                        $.datepicker._showDatepicker(input[0]);
                                } else
                                        $.datepicker._showDatepicker(input[0]);
@@ -6903,7 +6903,7 @@ $.extend(Datepicker.prototype, {
                                case 9: $.datepicker._hideDatepicker();
                                                handled = false;
                                                break; // hide on tab out
-                               case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + 
+                               case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' +
                                                                        $.datepicker._currentClass + ')', inst.dpDiv);
                                                if (sel[0])
                                                        $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
@@ -7001,7 +7001,7 @@ $.extend(Datepicker.prototype, {
        },
 
        /* Pop-up the date picker for a given input field.
-          If false returned from beforeShow event handler do not show. 
+          If false returned from beforeShow event handler do not show.
           @param  input  element - the input field attached to the date picker or
                          event - if triggered by focus */
        _showDatepicker: function(input) {
@@ -7105,7 +7105,7 @@ $.extend(Datepicker.prototype, {
                                // this breaks the change event in IE
                                inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement)
                        inst.input.focus();
-               // deffered render of the years select (to avoid flashes on Firefox) 
+               // deffered render of the years select (to avoid flashes on Firefox)
                if( inst.yearshtml ){
                        var origyearshtml = inst.yearshtml;
                        setTimeout(function(){
@@ -7814,7 +7814,7 @@ $.extend(Datepicker.prototype, {
                        $(this).bind(this.getAttribute('data-event'), handler[this.getAttribute('data-handler')]);
                });
        },
-       
+
        /* Generate the HTML for the current state of the date picker. */
        _generateHTML: function(inst) {
                var today = new Date();
@@ -7971,7 +7971,7 @@ $.extend(Datepicker.prototype, {
                                        drawMonth = 0;
                                        drawYear++;
                                }
-                               calender += '</tbody></table>' + (isMultiMonth ? '</div>' + 
+                               calender += '</tbody></table>' + (isMultiMonth ? '</div>' +
                                                        ((numMonths[0] > 0 && col == numMonths[1]-1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
                                group += calender;
                        }
@@ -8035,7 +8035,7 @@ $.extend(Datepicker.prototype, {
                                                '>' + year + '</option>';
                                }
                                inst.yearshtml += '</select>';
-                               
+
                                html += inst.yearshtml;
                                inst.yearshtml = null;
                        }
@@ -8146,7 +8146,7 @@ $.extend(Datepicker.prototype, {
  * Bind hover events for datepicker elements.
  * Done via delegate so the binding only occurs once in the lifetime of the parent div.
  * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
- */ 
+ */
 function bindHover(dpDiv) {
        var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';
        return dpDiv.delegate(selector, 'mouseout', function() {
@@ -8178,12 +8178,12 @@ function extendRemove(target, props) {
                        Object - settings for attaching new datepicker functionality
    @return  jQuery object */
 $.fn.datepicker = function(options){
-       
+
        /* Verify an empty collection wasn't passed - Fixes #6976 */
        if ( !this.length ) {
                return this;
        }
-       
+
        /* Initialise the date picker. */
        if (!$.datepicker.initialized) {
                $(document).mousedown($.datepicker._checkExternalClick).
@@ -14211,7 +14211,7 @@ $.effects.effect.highlight = function( o, done ) {
        }
 
        $.effects.save( elem, props );
-       
+
        elem
                .show()
                .css({
index 31de7b0d51444ca9ce3a50d71892845f2d88ce57..3603058bcb76086a847f5726846af1a4399bac24 100644 (file)
@@ -1,17 +1,17 @@
 /*!
  * jQuery Feeds v0.5
  * https://camagu.github.com/jquery-feeds
- * 
+ *
  * Copyright (c) 2013, Camilo Aguilar
  * Dual licensed under the MIT and GPL licenses:
  *     http://www.opensource.org/licenses/mit-license.php
  *     http://www.gnu.org/licenses/gpl.html
- * 
+ *
  * Includes a modified version of Simple JavaScript Templating
  * http://ejohn.org/blog/javascript-micro-templating/
  * Copyright (c) John Resig (http://ejohn.org)
  * MIT licensed
- * 
+ *
  * Date: 2013-02-18
  */
 
index 305f66b2d839887a6bc837ac1b56aa71c3dbc342..276cdeeb80efee20e375bcbb1fcd00bb82e62b74 100644 (file)
@@ -1,17 +1,17 @@
 /*!
  * jQuery Feeds v0.5
  * https://camagu.github.com/jquery-feeds
- * 
+ *
  * Copyright (c) 2013, Camilo Aguilar
  * Dual licensed under the MIT and GPL licenses:
  *     http://www.opensource.org/licenses/mit-license.php
  *     http://www.gnu.org/licenses/gpl.html
- * 
+ *
  * Includes a modified version of Simple JavaScript Templating
  * http://ejohn.org/blog/javascript-micro-templating/
  * Copyright (c) John Resig (http://ejohn.org)
  * MIT licensed
- * 
+ *
  * Date: 2013-02-18
  */
 (function(e){var t={};e.fn.feeds=function(n){var r={service:"//ajax.googleapis.com/ajax/services/feed/load?v=1.0",settings:{loadingTemplate:'<div class="feeds-loader">Loading entries ...</div>',entryTemplate:'<div class="feeds-entry feeds-source-<!=source!>"><a class="feeds-entry-title" target="_blank" href="<!=link!>" title="<!=title!>"><!=title!></a><div class="feeds-entry-date"><!=publishedDate!></div><div class="feeds-entry-contentSnippet"><!=contentSnippet!></div></div>',feeds:{},max:-1,xml:!1,ssl:"auto",onComplete:function(e){},preprocess:function(e){}},feeds:{},entries:[],feedsLength:0,feedsLoaded:0,$element:null,$loader:null,init:function(t,n){this.settings=e.extend(this.settings,n),this.feeds=this.settings.feeds;for(var r in this.feeds)this.feeds.hasOwnProperty(r)&&this.feedsLength++;var i=this.settings.ssl==="auto"?document.location.protocol:this.settings.ssl?"https:":"http:";e.inArray(i,["http:","https"])===-1&&(i="https:"),this.service=i+this.service,this.$element=e(t);var s=typeof this.settings.loadingTemplate=="function"?this.settings.loadingTemplate:this.tmpl(this.settings.loadingTemplate);this.$loader=e(s.call(this,{})),this.$element.html(this.$loader);var o=this.settings.xml?"json_xml":"json";for(var u in this.feeds)this.fetchFeed(u,this.feeds[u],this.settings.max,o)},fetchFeed:function(n,r,i,s){var o=this,u=r+"**"+i+"**"+s;if(typeof t[u]!="undefined"){o.processResponse(t[u],n,r);return}e.ajax({url:this.service,dataType:"jsonp",data:{q:r,num:i,output:s},beforeSend:function(){this.feed=r,this.key=n},success:function(e){t[u]=e,o.processResponse(e,this.key,this.feed)}})},processResponse:function(t,n,r){if(t.responseStatus!==200)window.console&&window.console.log&&console.log("Unable to load feed "+r+": ("+t.responseStatus+") "+t.responseDetails);else{var i=t.responseData.feed,s=i.entries,o=t.responseData.feed.type;if(this.settings.xml){var u=e(t.responseData.xmlString);o.match(/^rss.*/)?u=u.filter("rss").find("channel"):o.match(/^atom.*/)&&(u=u.filter("feed")),i.xml=u}for(var a in s){var f=e.extend({},s[a]);f.source=n,f.publishedDateRaw=f.publishedDate,f.feedUrl=i.feedUrl,f.feedTitle=i.title,f.feedLink=i.link,f.feedDescription=i.description,f.feedAuthor=i.author,this.settings.xml&&(o.match(/^rss.*/)?f.xml=i.xml.find("item").eq(a):o.match(/^atom.*/)?f.xml=i.xml.find("entry").eq(a):f.xml={}),this.settings.preprocess.call(f,i)!==!1&&this.entries.push(f)}}this.feedsLoaded++,this.checkComplete()},checkComplete:function(){if(this.feedsLoaded===this.feedsLength){this.$loader.remove(),this.entries.sort(function(e,t){var n=(new Date(e.publishedDateRaw)).getTime(),r=(new Date(t.publishedDateRaw)).getTime();return r-n});var e=typeof this.settings.entryTemplate=="function"?this.settings.entryTemplate:this.tmpl(this.settings.entryTemplate);for(var t in this.entries){var n=this.entries[t],r=e.call(this,n);this.$element.append(r)}this.settings.onComplete.call(this.$element[0],this.entries)}},tmplCache:{},tmpl:function(t,n){var r=/\W/.test(t)?new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+t.replace(/[\r\t\n]/g," ").split("<!").join(" ").replace(/((^|!>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)!>/g,"',typeof $1 != 'undefined' ? $1 : '','").split("   ").join("');").split("!>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');"):this.tmplCache[t]=this.tmplCache[t]||this.tmpl(document.getElementById(t).innerHTML);return n?r(n):r}};return e(this).each(function(){r.init(this,n)})}})(jQuery);
\ No newline at end of file
index a094a70d01bdf8d31a8627a733321d4616440583..311a57b10d035f9ac5f3f0962a25bfbd2efe6ef9 100644 (file)
@@ -37,7 +37,7 @@
                        target: '#output'
                });
        });
-       
+
        You can also use ajaxForm with delegation (requires jQuery v1.7+), so the
        form does not have to exist when you invoke ajaxForm:
 
@@ -45,7 +45,7 @@
                delegation: true,
                target: '#output'
        });
-       
+
        When using ajaxForm, the ajaxSubmit function will be invoked for you
        at the appropriate time.
 */
@@ -69,7 +69,7 @@ $.fn.ajaxSubmit = function(options) {
                log('ajaxSubmit: skipping submit process - no element selected');
                return this;
        }
-       
+
        var method, action, url, $form = this;
 
        if (typeof options == 'function') {
@@ -111,7 +111,7 @@ $.fn.ajaxSubmit = function(options) {
        if ( traditional === undefined ) {
                traditional = $.ajaxSettings.traditional;
        }
-       
+
     var elements = [];
     var qx, a = this.formToArray(options.semantic, elements);
        if (options.data) {
@@ -135,7 +135,7 @@ $.fn.ajaxSubmit = function(options) {
        var q = $.param(a, traditional);
        if (qx) {
                q = ( q ? (q + '&' + qx) : qx );
-       }       
+       }
        if (options.type.toUpperCase() == 'GET') {
                options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
                options.data = null;  // data is null for 'get'
@@ -165,7 +165,7 @@ $.fn.ajaxSubmit = function(options) {
        }
 
        options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
-        var context = options.context || this ;    // jQuery 1.4+ supports scope context 
+        var context = options.context || this ;    // jQuery 1.4+ supports scope context
                for (var i=0, max=callbacks.length; i < max; i++) {
                        callbacks[i].apply(context, [data, status, xhr || $form, $form]);
                }
@@ -175,7 +175,7 @@ $.fn.ajaxSubmit = function(options) {
 
     // [value] (issue #113), also see comment:
     // https://github.com/malsup/form/commit/588306aedba1de01388032d5f42a60159eea9228#commitcomment-2180219
-    var fileInputs = $('input[type=file]:enabled[value!=""]', this); 
+    var fileInputs = $('input[type=file]:enabled[value!=""]', this);
 
        var hasFileInputs = fileInputs.length > 0;
        var mp = 'multipart/form-data';
@@ -299,7 +299,7 @@ $.fn.ajaxSubmit = function(options) {
             deferred.reject();
             return deferred;
         }
-        
+
                if (a) {
                                // ensure that every serialized input is still enabled
             for (i=0; i < elements.length; i++) {
@@ -347,7 +347,7 @@ $.fn.ajaxSubmit = function(options) {
                 if (io.contentWindow.document.execCommand) {
                         io.contentWindow.document.execCommand('Stop');
                 }
-                } 
+                }
                 catch(ignore) {}
 
                                $io.attr('src', s.iframeSrc); // abort op in progress
@@ -395,7 +395,7 @@ $.fn.ajaxSubmit = function(options) {
                                }
                        }
                }
-               
+
                var CLIENT_TIMEOUT_ABORT = 1;
                var SERVER_ABORT = 2;
 
@@ -403,7 +403,7 @@ $.fn.ajaxSubmit = function(options) {
                        var doc = frame.contentWindow ? frame.contentWindow.document : frame.contentDocument ? frame.contentDocument : frame.document;
                        return doc;
                }
-               
+
                // Rails CSRF hack (thanks to Yvan Barthelemy)
                var csrf_token = $('meta[name=csrf-token]').attr('content');
                var csrf_param = $('meta[name=csrf-param]').attr('content');
@@ -438,7 +438,7 @@ $.fn.ajaxSubmit = function(options) {
                        if (s.timeout) {
                                timeoutHandle = setTimeout(function() { timedOut = true; cb(CLIENT_TIMEOUT_ABORT); }, s.timeout);
                        }
-                       
+
                        // look for server aborts
                        function checkState() {
                                try {
@@ -537,7 +537,7 @@ $.fn.ajaxSubmit = function(options) {
                        }
             if (io.detachEvent)
                 io.detachEvent('onload', cb);
-            else    
+            else
                 io.removeEventListener('load', cb, false);
 
                        var status = 'success', errMsg;
@@ -593,7 +593,7 @@ $.fn.ajaxSubmit = function(options) {
                                                var pre = doc.getElementsByTagName('pre')[0];
                                                var b = doc.getElementsByTagName('body')[0];
                                                if (pre) {
-                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;  
+                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;
                                                }
                                                else if (b) {
                           xhr.responseText = b.innerHTML ? b.innerHTML : b.textContent;
@@ -716,7 +716,7 @@ $.fn.ajaxSubmit = function(options) {
 $.fn.ajaxForm = function(options) {
        options = options || {};
        options.delegation = options.delegation && $.isFunction($.fn.on);
-       
+
        // in jQuery 1.3+ we can fix mistakes with the ready state
        if (!options.delegation && this.length === 0) {
                var o = { s: this.selector, c: this.context };
@@ -746,7 +746,7 @@ $.fn.ajaxForm = function(options) {
                .bind('click.form-plugin', options, captureSubmittingElement);
 };
 
-// private event handlers      
+// private event handlers
 function doAjaxSubmit(e) {
     /*jshint validthis:true */
        var options = e.data;
@@ -755,7 +755,7 @@ function doAjaxSubmit(e) {
                $(this).ajaxSubmit(options);
        }
 }
-       
+
 function captureSubmittingElement(e) {
     /*jshint validthis:true */
        var target = e.target;
@@ -835,14 +835,14 @@ $.fn.formToArray = function(semantic, elements) {
 
                v = $.fieldValue(el, true);
                if (v && v.constructor == Array) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
                        for(j=0, jmax=v.length; j < jmax; j++) {
                                a.push({name: n, value: v[j]});
                        }
                }
         else if (feature.fileapi && el.type == 'file' && !el.disabled) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             var files = el.files;
             if (files.length) {
@@ -856,7 +856,7 @@ $.fn.formToArray = function(semantic, elements) {
             }
         }
                else if (v !== null && typeof v != 'undefined') {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             a.push({name: n, value: v, type: el.type, required: el.required});
                }
@@ -1106,7 +1106,7 @@ $.fn.ajaxSubmit.debug = false;
 
 // helper fn for console logging
 function log() {
-       if (!$.fn.ajaxSubmit.debug) 
+       if (!$.fn.ajaxSubmit.debug)
                return;
        var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
        if (window.console && window.console.log) {
index 29082ca9647b864d3f0f254fa25a6a6bcc22b232..bcb4a27b7a532c4bcd6bb910a1010776fb97ce1a 100644 (file)
@@ -119,7 +119,7 @@ var m = (function app(window, undefined) {
                                        i-- //check current index again and flatten until there are no more nested arrays at that index
                                }
                        }
-                       
+
                        var nodes = [], intact = cached.length === data.length, subArrayCount = 0;
 
                        //keys algorithm: sort elements without recreating them if keys are present
@@ -138,7 +138,7 @@ var m = (function app(window, undefined) {
                        }
                        if (shouldMaintainIdentities) {
                                if (data.indexOf(null) > -1) data = data.filter(function(x) {return x != null})
-                               
+
                                var keysDiffer = false
                                if (data.length != cached.length) keysDiffer = true
                                else for (var i = 0, cachedCell, dataCell; cachedCell = cached[i], dataCell = data[i]; i++) {
@@ -147,7 +147,7 @@ var m = (function app(window, undefined) {
                                                break
                                        }
                                }
-                               
+
                                if (keysDiffer) {
                                        for (var i = 0, len = data.length; i < len; i++) {
                                                if (data[i] && data[i].attrs) {
@@ -216,7 +216,7 @@ var m = (function app(window, undefined) {
                        }
                        if (!intact) {
                                //diff the array itself
-                               
+
                                //update the list of DOM nodes by collecting the nodes from each item
                                for (var i = 0, len = data.length; i < len; i++) {
                                        if (cached[i] != null) nodes.push.apply(nodes, cached[i].nodes)
@@ -699,7 +699,7 @@ var m = (function app(window, undefined) {
                }
                return str.join("&")
        }
-       
+
        function parseQueryString(str) {
                var pairs = str.split("&"), params = {};
                for (var i = 0, len = pairs.length; i < len; i++) {
index d48daafdea6ce07d5d495a18172b7bb1bf8e7328..d3115512a757e489d0c0fe8cfad0f9f2dc099e4c 100644 (file)
@@ -2,7 +2,7 @@
     /**
      * Your Twitter App Info
      */
-    
+
     // Consumer Key
     define('CONSUMER_KEY', 'yxmC3rFOrr1xRGbCo3J6QNkKW');
     define('CONSUMER_SECRET', 'rqI9V5lPttEhNeOwBl14Jn6ryCU5MRBJQ5J6j8OEgaXwekeZM2');
@@ -10,7 +10,7 @@
     // User Access Token
     define('ACCESS_TOKEN', '2972347515-LCsxZafDTPd8hPCpWfewRVCEqgkHysKqB97x1bc');
     define('ACCESS_SECRET', 'Od3GSWu8iVW6x03YfTtDXVY48ewB315FkSrb3HQgi8Tx7');
-       
+
        // Cache Settings
        define('CACHE_ENABLED', false);
        define('CACHE_LIFETIME', 3600); // in seconds
index d02b7aebae3fd08d189f7127946fb47390815665..67800781e666ce3e22934dcc6a2852f61e77e785 100644 (file)
@@ -12,7 +12,7 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     // Check if keys are in place
     if (CONSUMER_KEY === '' || CONSUMER_SECRET === '' || CONSUMER_KEY === 'CONSUMER_KEY_HERE' || CONSUMER_SECRET === 'CONSUMER_SECRET_HERE') {
         echo 'You need a consumer key and secret keys. Get one from <a href="https://dev.twitter.com/apps">dev.twitter.com/apps</a>';
-      
+
         exit;
     }
 
@@ -22,13 +22,13 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     $exclude_replies = filter_input(INPUT_GET, 'exclude_replies', FILTER_SANITIZE_SPECIAL_CHARS);
     $list_slug = filter_input(INPUT_GET, 'list_slug', FILTER_SANITIZE_SPECIAL_CHARS);
     $hashtag = filter_input(INPUT_GET, 'hashtag', FILTER_SANITIZE_SPECIAL_CHARS);
-    
+
        if(CACHE_ENABLED) {
         // Generate cache key from query data
         $cache_key = md5(
             var_export(array($username, $number, $exclude_replies, $list_slug, $hashtag), true) . HASH_SALT
         );
-    
+
         // Remove old files from cache dir
         $cache_path  = dirname(__FILE__) . '/cache/';
         foreach (glob($cache_path . '*') as $file) {
@@ -36,16 +36,16 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
                 unlink($file);
             }
         }
-    
+
         // If cache file exists - return it
         if(file_exists($cache_path . $cache_key)) {
             header('Content-Type: application/json');
-    
+
             echo file_get_contents($cache_path . $cache_key);
             exit;
         }
     }
-       
+
     /**
      * Gets connection with user Twitter account
      * @param  String $cons_key     Consumer Key
@@ -57,13 +57,13 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     function getConnectionWithToken($cons_key, $cons_secret, $oauth_token, $oauth_secret)
     {
         $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_secret);
-      
+
         return $connection;
     }
-    
+
     // Connect
     $connection = getConnectionWithToken(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_SECRET);
-    
+
     // Get Tweets
     if (!empty($list_slug)) {
       $params = array(
index 4570013b80f59fc225aa9b4b695b873198143587..d31451ac61f694f058df6309b2107bcc10c8e6a0 100644 (file)
@@ -92,9 +92,9 @@ abstract class OAuthSignatureMethod {
 }
 
 /**
- * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104] 
- * where the Signature Base String is the text and the key is the concatenated values (each first 
- * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&' 
+ * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104]
+ * where the Signature Base String is the text and the key is the concatenated values (each first
+ * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&'
  * character (ASCII code 38) even if empty.
  *   - Chapter 9.2 ("HMAC-SHA1")
  */
@@ -120,7 +120,7 @@ class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod {
 }
 
 /**
- * The PLAINTEXT method does not provide any security protection and SHOULD only be used 
+ * The PLAINTEXT method does not provide any security protection and SHOULD only be used
  * over a secure channel such as HTTPS. It does not use the Signature Base String.
  *   - Chapter 9.4 ("PLAINTEXT")
  */
@@ -130,8 +130,8 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
   }
 
   /**
-   * oauth_signature is set to the concatenated encoded values of the Consumer Secret and 
-   * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is 
+   * oauth_signature is set to the concatenated encoded values of the Consumer Secret and
+   * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is
    * empty. The result MUST be encoded again.
    *   - Chapter 9.4.1 ("Generating Signatures")
    *
@@ -153,10 +153,10 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
 }
 
 /**
- * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in 
- * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for 
- * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a 
- * verified way to the Service Provider, in a manner which is beyond the scope of this 
+ * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in
+ * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for
+ * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a
+ * verified way to the Service Provider, in a manner which is beyond the scope of this
  * specification.
  *   - Chapter 9.3 ("RSA-SHA1")
  */
@@ -558,7 +558,7 @@ class OAuthServer {
   private function get_version(&$request) {
     $version = $request->get_parameter("oauth_version");
     if (!$version) {
-      // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present. 
+      // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present.
       // Chapter 7.0 ("Accessing Protected Ressources")
       $version = '1.0';
     }
@@ -658,7 +658,7 @@ class OAuthServer {
       throw new OAuthException(
         'Missing timestamp parameter. The parameter is required'
       );
-    
+
     // verify that timestamp is recentish
     $now = time();
     if (abs($now - $timestamp) > $this->timestamp_threshold) {
index 7ed5ef98a738a54ac1696b545e065ff0e580b727..68c99fe9767b6fc1609170791aa36ecd35641359 100644 (file)
@@ -29,7 +29,7 @@ class TwitterOAuth {
   /* Set timeout default. */
   public $timeout = 30;
   /* Set connect timeout. */
-  public $connecttimeout = 30; 
+  public $connecttimeout = 30;
   /* Verify SSL Cert. */
   public $ssl_verifypeer = FALSE;
   /* Respons format. */
@@ -81,7 +81,7 @@ class TwitterOAuth {
    */
   function getRequestToken($oauth_callback) {
     $parameters = array();
-    $parameters['oauth_callback'] = $oauth_callback; 
+    $parameters['oauth_callback'] = $oauth_callback;
     $request = $this->oAuthRequest($this->requestTokenURL(), 'GET', $parameters);
     $token = OAuthUtil::parse_parameters($request);
     $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
@@ -130,7 +130,7 @@ class TwitterOAuth {
    *                "user_id" => "9436992",
    *                "screen_name" => "abraham",
    *                "x_auth_expires" => "0")
-   */  
+   */
   function getXAuthToken($username, $password) {
     $parameters = array();
     $parameters['x_auth_username'] = $username;
@@ -152,7 +152,7 @@ class TwitterOAuth {
     }
     return $response;
   }
-  
+
   /**
    * POST wrapper for oAuthRequest.
    */
index de0a2a4957188c49606a3d6feeb01d6af88b5752..ff5d058777b0a53bbd1a15cf27c319da24c78c2d 100755 (executable)
                <ul  class="list-group margin-top">
                    <li class="list-group-item">
                      <strong>Recent Updates</strong>
-<ul>   
-<li> <a href="https://blog.documentfoundation.org/blog/2018/03/14/libreoffice-certification-fsf-libreplanet/">LibreOffice training available for FSF members</a></li>     
+<ul>
+<li> <a href="https://blog.documentfoundation.org/blog/2018/03/14/libreoffice-certification-fsf-libreplanet/">LibreOffice training available for FSF members</a></li>
   <li> <a href="https://libreplanet.org/2018/program/">Full schedule online</a></li>
   <li> <a href="https://libreplanet.org/2018/social/">Social events and workshops running Friday - Monday</a></li>
   <li> <a href="https://www.fsf.org/blogs/community/libreplanet-2018-is-on-the-way-check-out-the-talks-and-register">Full speaker lineup announced!</a></li>
                      <li><a href="https://www.fsf.org/blogs/community/the-2018-libreplanet-keynotes-are-here-you-wont-want-to-miss-them">Keynote speakers announced: Coleman, Nicholson, Stallman, and Schoen</a></li>
-    </ul>              
+    </ul>
                     <!--
                          Markup of update items:
 
index e257bf97070930af5e68f7ab8ef15b749d2d567e..22903c262b08ce73e9313227be73f51cc1574ead 100644 (file)
@@ -1,63 +1,63 @@
 {
-    "D. Joe Anderson": "anderson", 
-    "Isabela Bagueros": "bagueros", 
-    "Mad Ball": "ball", 
-    "Lothar Becker": "becker", 
-    "Walter Bender": "bender", 
-    "Liz Barry": "barry", 
-    "Matt Bernius": "bernius", 
-    "Wendy Bolm": "bolm", 
-    "Bob Call": "call", 
-    "Tom Callaway": "callaway", 
-    "Shaun Carland": "carland", 
-    "Sudarshan Chawathe": "chawathe", 
-    "der.hans": "der.hans", 
-    "Cecilia Donnelly": "donnelly", 
-    "Máirín Duffy": "duffy", 
-    "Luis Falcón": "falcon", 
-    "Jeremiah Foster": "foster", 
-    "Nathan Freitas": "freitas", 
-    "Morgan Gangwere": "gangwere", 
-    "Mike Gerwitz": "gerwitz", 
-    "Denver Gingerich": "gingerich", 
-    "Morane Gruenpeter": "gruenpeter", 
-    "Madeline Hagen": "hagen", 
-    "Stephen Jacobs": "jacobs", 
-    "Marc Jones": "jones", 
-    "Roan Kattouw": "kattouw", 
-    "Spencer Krum": "krum", 
-    "Bradley Kuhn": "kuhn", 
-    "Bassam Kurdali": "kurdali", 
-    "Michael Kwet": "kwet", 
-    "Chris Lamb": "lamb", 
-    "Morgan Lemmer-Webber": "lemmer-webber", 
-    "Dana Lewis": "lewis", 
-    "Gina Likins": "likins", 
-    "Aaron Luna": "luna", 
-    "Patrick Masson": "masson", 
-    "Dr. Michele McColgan": "mccolgan", 
-    "Nick Mathewson": "mathewson", 
-    "Neil McGovern": "mcgovern", 
-    "Micky Metts": "metts", 
-    "Kristopher Navratil": "navratil", 
-    "Sean O'Brien": "o'brien", 
-    "Guillaume Roguez": "roguez", 
-    "Eric Schultz": "schultz", 
-    "Brett Smith": "smith", 
-    "Connor Solver": "solver", 
-    "Chris Thompson": "thompson", 
-    "David Thompson": "david_thompson", 
-    "Kat Thornton": "thornton", 
-    "Andreas Traczyk": "traczyk", 
-    "Devin Ulibarri": "ulibarri", 
-    "Luis Villa": "villa", 
-    "Mariah Villarreal": "villarreal", 
-    "Jeffrey Warren": "warren", 
-    "Christopher Lemmer Webber": "webber", 
-    "Sharon Woods": "woods", 
-    "Stefano Zacchiroli": "zacchiroli", 
-    "Alick Tao Zhao": "zhao", 
-    "Steph Whited": "whited", 
-    "Gunnar Wolf": "wolf", 
+    "D. Joe Anderson": "anderson",
+    "Isabela Bagueros": "bagueros",
+    "Mad Ball": "ball",
+    "Lothar Becker": "becker",
+    "Walter Bender": "bender",
+    "Liz Barry": "barry",
+    "Matt Bernius": "bernius",
+    "Wendy Bolm": "bolm",
+    "Bob Call": "call",
+    "Tom Callaway": "callaway",
+    "Shaun Carland": "carland",
+    "Sudarshan Chawathe": "chawathe",
+    "der.hans": "der.hans",
+    "Cecilia Donnelly": "donnelly",
+    "Máirín Duffy": "duffy",
+    "Luis Falcón": "falcon",
+    "Jeremiah Foster": "foster",
+    "Nathan Freitas": "freitas",
+    "Morgan Gangwere": "gangwere",
+    "Mike Gerwitz": "gerwitz",
+    "Denver Gingerich": "gingerich",
+    "Morane Gruenpeter": "gruenpeter",
+    "Madeline Hagen": "hagen",
+    "Stephen Jacobs": "jacobs",
+    "Marc Jones": "jones",
+    "Roan Kattouw": "kattouw",
+    "Spencer Krum": "krum",
+    "Bradley Kuhn": "kuhn",
+    "Bassam Kurdali": "kurdali",
+    "Michael Kwet": "kwet",
+    "Chris Lamb": "lamb",
+    "Morgan Lemmer-Webber": "lemmer-webber",
+    "Dana Lewis": "lewis",
+    "Gina Likins": "likins",
+    "Aaron Luna": "luna",
+    "Patrick Masson": "masson",
+    "Dr. Michele McColgan": "mccolgan",
+    "Nick Mathewson": "mathewson",
+    "Neil McGovern": "mcgovern",
+    "Micky Metts": "metts",
+    "Kristopher Navratil": "navratil",
+    "Sean O'Brien": "o'brien",
+    "Guillaume Roguez": "roguez",
+    "Eric Schultz": "schultz",
+    "Brett Smith": "smith",
+    "Connor Solver": "solver",
+    "Chris Thompson": "thompson",
+    "David Thompson": "david_thompson",
+    "Kat Thornton": "thornton",
+    "Andreas Traczyk": "traczyk",
+    "Devin Ulibarri": "ulibarri",
+    "Luis Villa": "villa",
+    "Mariah Villarreal": "villarreal",
+    "Jeffrey Warren": "warren",
+    "Christopher Lemmer Webber": "webber",
+    "Sharon Woods": "woods",
+    "Stefano Zacchiroli": "zacchiroli",
+    "Alick Tao Zhao": "zhao",
+    "Steph Whited": "whited",
+    "Gunnar Wolf": "wolf",
     "Marina Zhurakhinskaya": "zhurakhinskaya"
 }
\ No newline at end of file
index 702acacf6adb2253dbbce965321996c0c64e29f9..ebfd926e3149243b4c419b7b8bea2a2b783c5a37 100755 (executable)
        <!-- wrapper for slides -->
        <ul class="carousel-inner list-unstyled">
 
-                       
+
        <li class="item active">
-<a href="https://libreplanet.org/2018/speakers/">        
+<a href="https://libreplanet.org/2018/speakers/">
 <img src="//static.fsf.org/nosvn/libreplanet/2018/assets/keynote_banner.png"
                                alt="[A banner image, with the faces of Deb Nicholson, Gabriella Coleman, Richard Stallman, and Seth David Schoen in circles.]">
 </a>
-               </li> 
+               </li>
 
 <!--<li class="item active">
                                <img src="//static.fsf.org/nosvn/libreplanet/2018/assets/di_dinner-2017.png"
                                alt="[A photo of a group of individuals (women, non-binary, and other gender minorities) sitting at dinner.]" height="475">
- <p class="carousel-caption-center">                   
+ <p class="carousel-caption-center">
 <a href="https://my.fsf.org/civicrm/contribute/transact?reset=1&id=60">Donate to the scholarship fund</a><br> to help us bring new people to LibrePlanet.
                        </p>
                </li>
@@ -31,7 +31,7 @@
 
 <!--
 <li class="item">
-           <img src="//static.fsf.org/nosvn/libreplanet/2014/site/carousel/volunteer_helping.jpg" 
+           <img src="//static.fsf.org/nosvn/libreplanet/2014/site/carousel/volunteer_helping.jpg"
                 alt="[ A presentation at LibrePlanet 2013]">
            <p class="carousel-caption-center">
              Volunteers keep LibrePlanet spinning <br>(and get great perks as well).<br>
@@ -40,7 +40,7 @@
 -->
 
                <li class="item">
-                       <img src="https://static.fsf.org/nosvn/libreplanet/feature-images/sumana-speaking-with-cables.jpg" 
+                       <img src="https://static.fsf.org/nosvn/libreplanet/feature-images/sumana-speaking-with-cables.jpg"
                        alt="[ Sumana Harihareswara speaking at a podium at LibrePlanet 2016. Between her and the camera is a table strewn with cables and computer equipment. ]" height="475">
                 <p class="carousel-caption-center">
                                Explore a wealth of <a href="https://www.libreplanet.org/2017/program/index.html">session videos and slides</a><br> from LibrePlanet 2017.</p>
index 34ff7948a0d2733e6a6b5ec91ad94c033813cafd..5209dfdb9fd35fd097d9fd3d0b37e4aeb0198bf4 100755 (executable)
@@ -30,7 +30,7 @@
 <br>Fifth Floor
 <br>
 Boston, MA 02110
-                               </p> 
+                               </p>
                        </div>
 
                        <div class="session">
index 8eef46283c23b7a171408e8bf6988ea44cbd5dea..b0b9274ec57b6ae053ae25cb37a0ec1ddf28737c 100644 (file)
@@ -1,59 +1,59 @@
 {
-    "Deb Nicholson": "nicholson", 
-    "Gabriella Coleman": "coleman", 
-    "Richard Stallman": "stallman", 
-    "Seth David Schoen": "schoen", 
-    "Mad Ball": "ball", 
-    "Liz Barry": "barry", 
-    "Wendy Bolm": "bolm", 
-    "Shaun Carland": "carland", 
-    "Sudarshan Chawathe": "chawathe", 
-    "Cecilia Donnelly": "donnelly", 
-    "Máirín Duffy": "duffy", 
-    "Luis Falcón": "falcon", 
-    "Tony Fortenberry": "fortenberry", 
-    "Jeremiah Foster": "foster", 
-    "Mike Gerwitz": "gerwitz", 
-    "Denver Gingerich": "gingerich", 
-    "Morane Gruenpeter": "gruenpeter", 
-    "der hans": "hans", 
-    "Mark Jones": "jones", 
-    "Spencer Krum": "krum", 
-    "Bassam Kudali": "kudali", 
-    "Bradley Kuhn": "kuhn", 
-    "Roan Kattouw": "kattouw", 
-    "Chris Lamb": "lamb", 
-    "Morgan Lemmer-Webber": "lemmer-webber", 
-    "Tom Callaway": "callaway", 
-    "Stephen Jacobs": "jacobs", 
-    "D. Joe Anderson": "anderson", 
-    "Gina Linkins": "linkins", 
-    "Matt Bernius": "bernius", 
-    "Aaron Luna": "luna", 
-    "Alison Marcina": "marcina", 
-    "Patrick Masson": "masson", 
-    "Madeline Hagen": "hagen", 
-    "Dr. Michele McColgan": "mccolgan", 
-    "Kristopher Kavratil": "kavratil", 
-    "Neil McGovern": "mcgovern", 
-    "Micky Metts": "metts", 
-    "Sean O'Brien": "o'brien", 
-    "Brett Smith": "smith", 
-    "Connor Solver": "solver", 
-    "Noah Swartz": "swartz", 
-    "Eric Schultz": "schultz", 
-    "David Thomson": "thomson", 
-    "Kat Thornton": "thornton", 
-    "Devin Ulibarri": "ulibarri", 
-    "Walter Bender": "bender", 
-    "Italo Vignoli": "vignoli", 
-    "Luis Villa": "villa", 
-    "Mariah Villarreal": "villarreal", 
-    "Jeffrey Warren": "warren", 
-    "Christopher Lemmer Webber": "webber", 
-    "Gunnar Wolf": "wolf", 
-    "Sharon Woods": "woods", 
-    "Stefano Zacchiroli": "zacchiroli", 
-    "Alick Tao Zhao": "zhao", 
+    "Deb Nicholson": "nicholson",
+    "Gabriella Coleman": "coleman",
+    "Richard Stallman": "stallman",
+    "Seth David Schoen": "schoen",
+    "Mad Ball": "ball",
+    "Liz Barry": "barry",
+    "Wendy Bolm": "bolm",
+    "Shaun Carland": "carland",
+    "Sudarshan Chawathe": "chawathe",
+    "Cecilia Donnelly": "donnelly",
+    "Máirín Duffy": "duffy",
+    "Luis Falcón": "falcon",
+    "Tony Fortenberry": "fortenberry",
+    "Jeremiah Foster": "foster",
+    "Mike Gerwitz": "gerwitz",
+    "Denver Gingerich": "gingerich",
+    "Morane Gruenpeter": "gruenpeter",
+    "der hans": "hans",
+    "Mark Jones": "jones",
+    "Spencer Krum": "krum",
+    "Bassam Kudali": "kudali",
+    "Bradley Kuhn": "kuhn",
+    "Roan Kattouw": "kattouw",
+    "Chris Lamb": "lamb",
+    "Morgan Lemmer-Webber": "lemmer-webber",
+    "Tom Callaway": "callaway",
+    "Stephen Jacobs": "jacobs",
+    "D. Joe Anderson": "anderson",
+    "Gina Linkins": "linkins",
+    "Matt Bernius": "bernius",
+    "Aaron Luna": "luna",
+    "Alison Marcina": "marcina",
+    "Patrick Masson": "masson",
+    "Madeline Hagen": "hagen",
+    "Dr. Michele McColgan": "mccolgan",
+    "Kristopher Kavratil": "kavratil",
+    "Neil McGovern": "mcgovern",
+    "Micky Metts": "metts",
+    "Sean O'Brien": "o'brien",
+    "Brett Smith": "smith",
+    "Connor Solver": "solver",
+    "Noah Swartz": "swartz",
+    "Eric Schultz": "schultz",
+    "David Thomson": "thomson",
+    "Kat Thornton": "thornton",
+    "Devin Ulibarri": "ulibarri",
+    "Walter Bender": "bender",
+    "Italo Vignoli": "vignoli",
+    "Luis Villa": "villa",
+    "Mariah Villarreal": "villarreal",
+    "Jeffrey Warren": "warren",
+    "Christopher Lemmer Webber": "webber",
+    "Gunnar Wolf": "wolf",
+    "Sharon Woods": "woods",
+    "Stefano Zacchiroli": "zacchiroli",
+    "Alick Tao Zhao": "zhao",
     "Marina Zhurakhinskaya": "zhurakhinskaya"
 }
\ No newline at end of file
index 47da33a8393025e86ffbcdb21a50c7edf48997a8..49b4b36c8c9bd1999c2d8d1630614b5023942063 100755 (executable)
@@ -18,7 +18,7 @@
 <br>
                        <div class="hover_img">
                                <img src="https://static.fsf.org/nosvn/libreplanet/sponsor-logos/redhat.png"  alt="The Purism logo." height="55%" width="55%">
-                       
+
                        </div>
 <br>
 
@@ -27,7 +27,7 @@
 <br>
                        <div class="hover_img">
                                <img src="https://static.fsf.org/nosvn/libreplanet/sponsor-logos/purism.png"  alt="The Purism logo." height="45%" width="45%">
-                       
+
                        </div>
 
 <br>
 <br>
                        <div class="hover_img">
                                <img src="https://static.fsf.org/nosvn/libreplanet/sponsor-logos/stickeryou.png"  alt="The StickerYou logo." height="40%" width="40%">
-                       
+
                        </div>
 <br>
                        <div class="hover_img">
                                <img src="https://static.fsf.org/nosvn/savoir-faire-linux.png"  alt="Savoir-faire Linux logo." height="40%" width="40%">
-                       
+
                        </div>
 <br>
 
index 7166c1681428d2f4828ad08f6b3f96cd3f0c5607..4ee39efa7cd1ddfeec5ceed329b10174f6088c60 100644 (file)
@@ -49,7 +49,7 @@
 .ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; }
 .ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
 .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; zoom: 1; }
-.ui-autocomplete { position: absolute; cursor: default; }      
+.ui-autocomplete { position: absolute; cursor: default; }
 
 /* workarounds */
 * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
@@ -57,8 +57,8 @@
 .ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; }
 .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
 button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
+.ui-button-icons-only { width: 3.4em; }
+button.ui-button-icons-only { width: 3.7em; }
 
 /*button text element */
 .ui-button .ui-button-text { display: block; line-height: 1.4;  }
@@ -95,7 +95,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
 .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
 .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
 .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
+.ui-datepicker select.ui-datepicker-month,
 .ui-datepicker select.ui-datepicker-year { width: 49%;}
 .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
 .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
index 94fb5490a2ed10b2c69a4a567a4fd2e4f706d841..f155876e1b9cf712c81dd78eac057c5629343b9b 100644 (file)
 <glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
 <glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
 </font>
-</defs></svg> 
\ No newline at end of file
+</defs></svg>
\ No newline at end of file
index 9dcbc53860673be65350d4c2cfeb2b492a033928..5bd130e6bac363ad91c22aa9b479779e41560cc2 100644 (file)
@@ -1014,7 +1014,7 @@ JSONPPolling.prototype.doPoll = function () {
   this.script = script;
 
   var isUAgecko = 'undefined' != typeof navigator && /gecko/i.test(navigator.userAgent);
-  
+
   if (isUAgecko) {
     setTimeout(function () {
       var iframe = document.createElement('iframe');
index ab76d3a76719287a317b694d276be1b1cd0b2fa5..8ef5770a9eaef4a9de2c6479746ed6b133739393 100644 (file)
@@ -915,7 +915,7 @@ $.widget("ui.mouse", {
                        .bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
 
                event.preventDefault();
-               
+
                mouseHandled = true;
                return true;
        },
@@ -1545,7 +1545,7 @@ $.widget("ui.draggable", $.ui.mouse, {
                this.handle = this._getHandle(event);
                if (!this.handle)
                        return false;
-               
+
                $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
                        $('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')
                        .css({
@@ -1629,12 +1629,12 @@ $.widget("ui.draggable", $.ui.mouse, {
                if ($.ui.ddmanager && !o.dropBehaviour)
                        $.ui.ddmanager.prepareOffsets(this, event);
 
-               
+
                this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
-               
+
                //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)
                if ( $.ui.ddmanager ) $.ui.ddmanager.dragStart(this, event);
-               
+
                return true;
        },
 
@@ -1673,7 +1673,7 @@ $.widget("ui.draggable", $.ui.mouse, {
                        dropped = this.dropped;
                        this.dropped = false;
                }
-               
+
                //if the original element is no longer in the DOM don't bother to continue (see #8269)
                var element = this.element[0], elementInDom = false;
                while ( element && (element = element.parentNode) ) {
@@ -1699,29 +1699,29 @@ $.widget("ui.draggable", $.ui.mouse, {
 
                return false;
        },
-       
+
        _mouseUp: function(event) {
                //Remove frame helpers
-               $("div.ui-draggable-iframeFix").each(function() { 
-                       this.parentNode.removeChild(this); 
+               $("div.ui-draggable-iframeFix").each(function() {
+                       this.parentNode.removeChild(this);
                });
-               
+
                //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)
                if( $.ui.ddmanager ) $.ui.ddmanager.dragStop(this, event);
-               
+
                return $.ui.mouse.prototype._mouseUp.call(this, event);
        },
-       
+
        cancel: function() {
-               
+
                if(this.helper.is(".ui-draggable-dragging")) {
                        this._mouseUp({});
                } else {
                        this._clear();
                }
-               
+
                return this;
-               
+
        },
 
        _getHandle: function(event) {
@@ -2042,12 +2042,12 @@ $.ui.plugin.add("draggable", "connectToSortable", {
                };
 
                $.each(inst.sortables, function(i) {
-                       
+
                        //Copy over some variables to allow calling the sortable's native _intersectsWith
                        this.instance.positionAbs = inst.positionAbs;
                        this.instance.helperProportions = inst.helperProportions;
                        this.instance.offset.click = inst.offset.click;
-                       
+
                        if(this.instance._intersectsWith(this.instance.containerCache)) {
 
                                //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once
@@ -2090,13 +2090,13 @@ $.ui.plugin.add("draggable", "connectToSortable", {
 
                                        this.instance.isOver = 0;
                                        this.instance.cancelHelperRemoval = true;
-                                       
+
                                        //Prevent reverting on this forced stop
                                        this.instance.options.revert = false;
-                                       
+
                                        // The out event needs to be triggered independently
                                        this.instance._trigger('out', event, this.instance._uiHash(this.instance));
-                                       
+
                                        this.instance._mouseStop(event, true);
                                        this.instance.options.helper = this.instance.options._helper;
 
@@ -2266,7 +2266,7 @@ $.ui.plugin.add("draggable", "stack", {
                        return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);
                });
                if (!group.length) { return; }
-               
+
                var min = parseInt(group[0].style.zIndex) || 0;
                $(group).each(function(i) {
                        this.style.zIndex = min + i;
@@ -3130,7 +3130,7 @@ $.ui.plugin.add("resizable", "alsoResize", {
 
                _alsoResize = function (exp, c) {
                        $(exp).each(function() {
-                               var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, 
+                               var el = $(this), start = $(this).data("resizable-alsoresize"), style = {},
                                        css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left'];
 
                                $.each(css, function (i, prop) {
@@ -6488,7 +6488,7 @@ function Datepicker() {
 $.extend(Datepicker.prototype, {
        /* Class name added to elements to indicate already configured with a date picker. */
        markerClassName: 'hasDatepicker',
-       
+
        //Keep track of the maximum number of rows displayed (see #7043)
        maxRows: 4,
 
@@ -6497,7 +6497,7 @@ $.extend(Datepicker.prototype, {
                if (this.debug)
                        console.log.apply('', arguments);
        },
-       
+
        // TODO rename to "widget" when switching to widget factory
        _widgetDatepicker: function() {
                return this.dpDiv;
@@ -6607,7 +6607,7 @@ $.extend(Datepicker.prototype, {
                                if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
                                        $.datepicker._hideDatepicker();
                                else if ($.datepicker._datepickerShowing && $.datepicker._lastInput != input[0]) {
-                                       $.datepicker._hideDatepicker(); 
+                                       $.datepicker._hideDatepicker();
                                        $.datepicker._showDatepicker(input[0]);
                                } else
                                        $.datepicker._showDatepicker(input[0]);
@@ -6903,7 +6903,7 @@ $.extend(Datepicker.prototype, {
                                case 9: $.datepicker._hideDatepicker();
                                                handled = false;
                                                break; // hide on tab out
-                               case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + 
+                               case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' +
                                                                        $.datepicker._currentClass + ')', inst.dpDiv);
                                                if (sel[0])
                                                        $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
@@ -7001,7 +7001,7 @@ $.extend(Datepicker.prototype, {
        },
 
        /* Pop-up the date picker for a given input field.
-          If false returned from beforeShow event handler do not show. 
+          If false returned from beforeShow event handler do not show.
           @param  input  element - the input field attached to the date picker or
                          event - if triggered by focus */
        _showDatepicker: function(input) {
@@ -7105,7 +7105,7 @@ $.extend(Datepicker.prototype, {
                                // this breaks the change event in IE
                                inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement)
                        inst.input.focus();
-               // deffered render of the years select (to avoid flashes on Firefox) 
+               // deffered render of the years select (to avoid flashes on Firefox)
                if( inst.yearshtml ){
                        var origyearshtml = inst.yearshtml;
                        setTimeout(function(){
@@ -7814,7 +7814,7 @@ $.extend(Datepicker.prototype, {
                        $(this).bind(this.getAttribute('data-event'), handler[this.getAttribute('data-handler')]);
                });
        },
-       
+
        /* Generate the HTML for the current state of the date picker. */
        _generateHTML: function(inst) {
                var today = new Date();
@@ -7971,7 +7971,7 @@ $.extend(Datepicker.prototype, {
                                        drawMonth = 0;
                                        drawYear++;
                                }
-                               calender += '</tbody></table>' + (isMultiMonth ? '</div>' + 
+                               calender += '</tbody></table>' + (isMultiMonth ? '</div>' +
                                                        ((numMonths[0] > 0 && col == numMonths[1]-1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
                                group += calender;
                        }
@@ -8035,7 +8035,7 @@ $.extend(Datepicker.prototype, {
                                                '>' + year + '</option>';
                                }
                                inst.yearshtml += '</select>';
-                               
+
                                html += inst.yearshtml;
                                inst.yearshtml = null;
                        }
@@ -8146,7 +8146,7 @@ $.extend(Datepicker.prototype, {
  * Bind hover events for datepicker elements.
  * Done via delegate so the binding only occurs once in the lifetime of the parent div.
  * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
- */ 
+ */
 function bindHover(dpDiv) {
        var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';
        return dpDiv.delegate(selector, 'mouseout', function() {
@@ -8178,12 +8178,12 @@ function extendRemove(target, props) {
                        Object - settings for attaching new datepicker functionality
    @return  jQuery object */
 $.fn.datepicker = function(options){
-       
+
        /* Verify an empty collection wasn't passed - Fixes #6976 */
        if ( !this.length ) {
                return this;
        }
-       
+
        /* Initialise the date picker. */
        if (!$.datepicker.initialized) {
                $(document).mousedown($.datepicker._checkExternalClick).
@@ -14211,7 +14211,7 @@ $.effects.effect.highlight = function( o, done ) {
        }
 
        $.effects.save( elem, props );
-       
+
        elem
                .show()
                .css({
index 31de7b0d51444ca9ce3a50d71892845f2d88ce57..3603058bcb76086a847f5726846af1a4399bac24 100644 (file)
@@ -1,17 +1,17 @@
 /*!
  * jQuery Feeds v0.5
  * https://camagu.github.com/jquery-feeds
- * 
+ *
  * Copyright (c) 2013, Camilo Aguilar
  * Dual licensed under the MIT and GPL licenses:
  *     http://www.opensource.org/licenses/mit-license.php
  *     http://www.gnu.org/licenses/gpl.html
- * 
+ *
  * Includes a modified version of Simple JavaScript Templating
  * http://ejohn.org/blog/javascript-micro-templating/
  * Copyright (c) John Resig (http://ejohn.org)
  * MIT licensed
- * 
+ *
  * Date: 2013-02-18
  */
 
index 305f66b2d839887a6bc837ac1b56aa71c3dbc342..276cdeeb80efee20e375bcbb1fcd00bb82e62b74 100644 (file)
@@ -1,17 +1,17 @@
 /*!
  * jQuery Feeds v0.5
  * https://camagu.github.com/jquery-feeds
- * 
+ *
  * Copyright (c) 2013, Camilo Aguilar
  * Dual licensed under the MIT and GPL licenses:
  *     http://www.opensource.org/licenses/mit-license.php
  *     http://www.gnu.org/licenses/gpl.html
- * 
+ *
  * Includes a modified version of Simple JavaScript Templating
  * http://ejohn.org/blog/javascript-micro-templating/
  * Copyright (c) John Resig (http://ejohn.org)
  * MIT licensed
- * 
+ *
  * Date: 2013-02-18
  */
 (function(e){var t={};e.fn.feeds=function(n){var r={service:"//ajax.googleapis.com/ajax/services/feed/load?v=1.0",settings:{loadingTemplate:'<div class="feeds-loader">Loading entries ...</div>',entryTemplate:'<div class="feeds-entry feeds-source-<!=source!>"><a class="feeds-entry-title" target="_blank" href="<!=link!>" title="<!=title!>"><!=title!></a><div class="feeds-entry-date"><!=publishedDate!></div><div class="feeds-entry-contentSnippet"><!=contentSnippet!></div></div>',feeds:{},max:-1,xml:!1,ssl:"auto",onComplete:function(e){},preprocess:function(e){}},feeds:{},entries:[],feedsLength:0,feedsLoaded:0,$element:null,$loader:null,init:function(t,n){this.settings=e.extend(this.settings,n),this.feeds=this.settings.feeds;for(var r in this.feeds)this.feeds.hasOwnProperty(r)&&this.feedsLength++;var i=this.settings.ssl==="auto"?document.location.protocol:this.settings.ssl?"https:":"http:";e.inArray(i,["http:","https"])===-1&&(i="https:"),this.service=i+this.service,this.$element=e(t);var s=typeof this.settings.loadingTemplate=="function"?this.settings.loadingTemplate:this.tmpl(this.settings.loadingTemplate);this.$loader=e(s.call(this,{})),this.$element.html(this.$loader);var o=this.settings.xml?"json_xml":"json";for(var u in this.feeds)this.fetchFeed(u,this.feeds[u],this.settings.max,o)},fetchFeed:function(n,r,i,s){var o=this,u=r+"**"+i+"**"+s;if(typeof t[u]!="undefined"){o.processResponse(t[u],n,r);return}e.ajax({url:this.service,dataType:"jsonp",data:{q:r,num:i,output:s},beforeSend:function(){this.feed=r,this.key=n},success:function(e){t[u]=e,o.processResponse(e,this.key,this.feed)}})},processResponse:function(t,n,r){if(t.responseStatus!==200)window.console&&window.console.log&&console.log("Unable to load feed "+r+": ("+t.responseStatus+") "+t.responseDetails);else{var i=t.responseData.feed,s=i.entries,o=t.responseData.feed.type;if(this.settings.xml){var u=e(t.responseData.xmlString);o.match(/^rss.*/)?u=u.filter("rss").find("channel"):o.match(/^atom.*/)&&(u=u.filter("feed")),i.xml=u}for(var a in s){var f=e.extend({},s[a]);f.source=n,f.publishedDateRaw=f.publishedDate,f.feedUrl=i.feedUrl,f.feedTitle=i.title,f.feedLink=i.link,f.feedDescription=i.description,f.feedAuthor=i.author,this.settings.xml&&(o.match(/^rss.*/)?f.xml=i.xml.find("item").eq(a):o.match(/^atom.*/)?f.xml=i.xml.find("entry").eq(a):f.xml={}),this.settings.preprocess.call(f,i)!==!1&&this.entries.push(f)}}this.feedsLoaded++,this.checkComplete()},checkComplete:function(){if(this.feedsLoaded===this.feedsLength){this.$loader.remove(),this.entries.sort(function(e,t){var n=(new Date(e.publishedDateRaw)).getTime(),r=(new Date(t.publishedDateRaw)).getTime();return r-n});var e=typeof this.settings.entryTemplate=="function"?this.settings.entryTemplate:this.tmpl(this.settings.entryTemplate);for(var t in this.entries){var n=this.entries[t],r=e.call(this,n);this.$element.append(r)}this.settings.onComplete.call(this.$element[0],this.entries)}},tmplCache:{},tmpl:function(t,n){var r=/\W/.test(t)?new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+t.replace(/[\r\t\n]/g," ").split("<!").join(" ").replace(/((^|!>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)!>/g,"',typeof $1 != 'undefined' ? $1 : '','").split("   ").join("');").split("!>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');"):this.tmplCache[t]=this.tmplCache[t]||this.tmpl(document.getElementById(t).innerHTML);return n?r(n):r}};return e(this).each(function(){r.init(this,n)})}})(jQuery);
\ No newline at end of file
index a094a70d01bdf8d31a8627a733321d4616440583..311a57b10d035f9ac5f3f0962a25bfbd2efe6ef9 100644 (file)
@@ -37,7 +37,7 @@
                        target: '#output'
                });
        });
-       
+
        You can also use ajaxForm with delegation (requires jQuery v1.7+), so the
        form does not have to exist when you invoke ajaxForm:
 
@@ -45,7 +45,7 @@
                delegation: true,
                target: '#output'
        });
-       
+
        When using ajaxForm, the ajaxSubmit function will be invoked for you
        at the appropriate time.
 */
@@ -69,7 +69,7 @@ $.fn.ajaxSubmit = function(options) {
                log('ajaxSubmit: skipping submit process - no element selected');
                return this;
        }
-       
+
        var method, action, url, $form = this;
 
        if (typeof options == 'function') {
@@ -111,7 +111,7 @@ $.fn.ajaxSubmit = function(options) {
        if ( traditional === undefined ) {
                traditional = $.ajaxSettings.traditional;
        }
-       
+
     var elements = [];
     var qx, a = this.formToArray(options.semantic, elements);
        if (options.data) {
@@ -135,7 +135,7 @@ $.fn.ajaxSubmit = function(options) {
        var q = $.param(a, traditional);
        if (qx) {
                q = ( q ? (q + '&' + qx) : qx );
-       }       
+       }
        if (options.type.toUpperCase() == 'GET') {
                options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
                options.data = null;  // data is null for 'get'
@@ -165,7 +165,7 @@ $.fn.ajaxSubmit = function(options) {
        }
 
        options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
-        var context = options.context || this ;    // jQuery 1.4+ supports scope context 
+        var context = options.context || this ;    // jQuery 1.4+ supports scope context
                for (var i=0, max=callbacks.length; i < max; i++) {
                        callbacks[i].apply(context, [data, status, xhr || $form, $form]);
                }
@@ -175,7 +175,7 @@ $.fn.ajaxSubmit = function(options) {
 
     // [value] (issue #113), also see comment:
     // https://github.com/malsup/form/commit/588306aedba1de01388032d5f42a60159eea9228#commitcomment-2180219
-    var fileInputs = $('input[type=file]:enabled[value!=""]', this); 
+    var fileInputs = $('input[type=file]:enabled[value!=""]', this);
 
        var hasFileInputs = fileInputs.length > 0;
        var mp = 'multipart/form-data';
@@ -299,7 +299,7 @@ $.fn.ajaxSubmit = function(options) {
             deferred.reject();
             return deferred;
         }
-        
+
                if (a) {
                                // ensure that every serialized input is still enabled
             for (i=0; i < elements.length; i++) {
@@ -347,7 +347,7 @@ $.fn.ajaxSubmit = function(options) {
                 if (io.contentWindow.document.execCommand) {
                         io.contentWindow.document.execCommand('Stop');
                 }
-                } 
+                }
                 catch(ignore) {}
 
                                $io.attr('src', s.iframeSrc); // abort op in progress
@@ -395,7 +395,7 @@ $.fn.ajaxSubmit = function(options) {
                                }
                        }
                }
-               
+
                var CLIENT_TIMEOUT_ABORT = 1;
                var SERVER_ABORT = 2;
 
@@ -403,7 +403,7 @@ $.fn.ajaxSubmit = function(options) {
                        var doc = frame.contentWindow ? frame.contentWindow.document : frame.contentDocument ? frame.contentDocument : frame.document;
                        return doc;
                }
-               
+
                // Rails CSRF hack (thanks to Yvan Barthelemy)
                var csrf_token = $('meta[name=csrf-token]').attr('content');
                var csrf_param = $('meta[name=csrf-param]').attr('content');
@@ -438,7 +438,7 @@ $.fn.ajaxSubmit = function(options) {
                        if (s.timeout) {
                                timeoutHandle = setTimeout(function() { timedOut = true; cb(CLIENT_TIMEOUT_ABORT); }, s.timeout);
                        }
-                       
+
                        // look for server aborts
                        function checkState() {
                                try {
@@ -537,7 +537,7 @@ $.fn.ajaxSubmit = function(options) {
                        }
             if (io.detachEvent)
                 io.detachEvent('onload', cb);
-            else    
+            else
                 io.removeEventListener('load', cb, false);
 
                        var status = 'success', errMsg;
@@ -593,7 +593,7 @@ $.fn.ajaxSubmit = function(options) {
                                                var pre = doc.getElementsByTagName('pre')[0];
                                                var b = doc.getElementsByTagName('body')[0];
                                                if (pre) {
-                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;  
+                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;
                                                }
                                                else if (b) {
                           xhr.responseText = b.innerHTML ? b.innerHTML : b.textContent;
@@ -716,7 +716,7 @@ $.fn.ajaxSubmit = function(options) {
 $.fn.ajaxForm = function(options) {
        options = options || {};
        options.delegation = options.delegation && $.isFunction($.fn.on);
-       
+
        // in jQuery 1.3+ we can fix mistakes with the ready state
        if (!options.delegation && this.length === 0) {
                var o = { s: this.selector, c: this.context };
@@ -746,7 +746,7 @@ $.fn.ajaxForm = function(options) {
                .bind('click.form-plugin', options, captureSubmittingElement);
 };
 
-// private event handlers      
+// private event handlers
 function doAjaxSubmit(e) {
     /*jshint validthis:true */
        var options = e.data;
@@ -755,7 +755,7 @@ function doAjaxSubmit(e) {
                $(this).ajaxSubmit(options);
        }
 }
-       
+
 function captureSubmittingElement(e) {
     /*jshint validthis:true */
        var target = e.target;
@@ -835,14 +835,14 @@ $.fn.formToArray = function(semantic, elements) {
 
                v = $.fieldValue(el, true);
                if (v && v.constructor == Array) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
                        for(j=0, jmax=v.length; j < jmax; j++) {
                                a.push({name: n, value: v[j]});
                        }
                }
         else if (feature.fileapi && el.type == 'file' && !el.disabled) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             var files = el.files;
             if (files.length) {
@@ -856,7 +856,7 @@ $.fn.formToArray = function(semantic, elements) {
             }
         }
                else if (v !== null && typeof v != 'undefined') {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             a.push({name: n, value: v, type: el.type, required: el.required});
                }
@@ -1106,7 +1106,7 @@ $.fn.ajaxSubmit.debug = false;
 
 // helper fn for console logging
 function log() {
-       if (!$.fn.ajaxSubmit.debug) 
+       if (!$.fn.ajaxSubmit.debug)
                return;
        var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
        if (window.console && window.console.log) {
index 29082ca9647b864d3f0f254fa25a6a6bcc22b232..bcb4a27b7a532c4bcd6bb910a1010776fb97ce1a 100644 (file)
@@ -119,7 +119,7 @@ var m = (function app(window, undefined) {
                                        i-- //check current index again and flatten until there are no more nested arrays at that index
                                }
                        }
-                       
+
                        var nodes = [], intact = cached.length === data.length, subArrayCount = 0;
 
                        //keys algorithm: sort elements without recreating them if keys are present
@@ -138,7 +138,7 @@ var m = (function app(window, undefined) {
                        }
                        if (shouldMaintainIdentities) {
                                if (data.indexOf(null) > -1) data = data.filter(function(x) {return x != null})
-                               
+
                                var keysDiffer = false
                                if (data.length != cached.length) keysDiffer = true
                                else for (var i = 0, cachedCell, dataCell; cachedCell = cached[i], dataCell = data[i]; i++) {
@@ -147,7 +147,7 @@ var m = (function app(window, undefined) {
                                                break
                                        }
                                }
-                               
+
                                if (keysDiffer) {
                                        for (var i = 0, len = data.length; i < len; i++) {
                                                if (data[i] && data[i].attrs) {
@@ -216,7 +216,7 @@ var m = (function app(window, undefined) {
                        }
                        if (!intact) {
                                //diff the array itself
-                               
+
                                //update the list of DOM nodes by collecting the nodes from each item
                                for (var i = 0, len = data.length; i < len; i++) {
                                        if (cached[i] != null) nodes.push.apply(nodes, cached[i].nodes)
@@ -699,7 +699,7 @@ var m = (function app(window, undefined) {
                }
                return str.join("&")
        }
-       
+
        function parseQueryString(str) {
                var pairs = str.split("&"), params = {};
                for (var i = 0, len = pairs.length; i < len; i++) {
index d48daafdea6ce07d5d495a18172b7bb1bf8e7328..d3115512a757e489d0c0fe8cfad0f9f2dc099e4c 100644 (file)
@@ -2,7 +2,7 @@
     /**
      * Your Twitter App Info
      */
-    
+
     // Consumer Key
     define('CONSUMER_KEY', 'yxmC3rFOrr1xRGbCo3J6QNkKW');
     define('CONSUMER_SECRET', 'rqI9V5lPttEhNeOwBl14Jn6ryCU5MRBJQ5J6j8OEgaXwekeZM2');
@@ -10,7 +10,7 @@
     // User Access Token
     define('ACCESS_TOKEN', '2972347515-LCsxZafDTPd8hPCpWfewRVCEqgkHysKqB97x1bc');
     define('ACCESS_SECRET', 'Od3GSWu8iVW6x03YfTtDXVY48ewB315FkSrb3HQgi8Tx7');
-       
+
        // Cache Settings
        define('CACHE_ENABLED', false);
        define('CACHE_LIFETIME', 3600); // in seconds
index d02b7aebae3fd08d189f7127946fb47390815665..67800781e666ce3e22934dcc6a2852f61e77e785 100644 (file)
@@ -12,7 +12,7 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     // Check if keys are in place
     if (CONSUMER_KEY === '' || CONSUMER_SECRET === '' || CONSUMER_KEY === 'CONSUMER_KEY_HERE' || CONSUMER_SECRET === 'CONSUMER_SECRET_HERE') {
         echo 'You need a consumer key and secret keys. Get one from <a href="https://dev.twitter.com/apps">dev.twitter.com/apps</a>';
-      
+
         exit;
     }
 
@@ -22,13 +22,13 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     $exclude_replies = filter_input(INPUT_GET, 'exclude_replies', FILTER_SANITIZE_SPECIAL_CHARS);
     $list_slug = filter_input(INPUT_GET, 'list_slug', FILTER_SANITIZE_SPECIAL_CHARS);
     $hashtag = filter_input(INPUT_GET, 'hashtag', FILTER_SANITIZE_SPECIAL_CHARS);
-    
+
        if(CACHE_ENABLED) {
         // Generate cache key from query data
         $cache_key = md5(
             var_export(array($username, $number, $exclude_replies, $list_slug, $hashtag), true) . HASH_SALT
         );
-    
+
         // Remove old files from cache dir
         $cache_path  = dirname(__FILE__) . '/cache/';
         foreach (glob($cache_path . '*') as $file) {
@@ -36,16 +36,16 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
                 unlink($file);
             }
         }
-    
+
         // If cache file exists - return it
         if(file_exists($cache_path . $cache_key)) {
             header('Content-Type: application/json');
-    
+
             echo file_get_contents($cache_path . $cache_key);
             exit;
         }
     }
-       
+
     /**
      * Gets connection with user Twitter account
      * @param  String $cons_key     Consumer Key
@@ -57,13 +57,13 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     function getConnectionWithToken($cons_key, $cons_secret, $oauth_token, $oauth_secret)
     {
         $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_secret);
-      
+
         return $connection;
     }
-    
+
     // Connect
     $connection = getConnectionWithToken(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_SECRET);
-    
+
     // Get Tweets
     if (!empty($list_slug)) {
       $params = array(
index 4570013b80f59fc225aa9b4b695b873198143587..d31451ac61f694f058df6309b2107bcc10c8e6a0 100644 (file)
@@ -92,9 +92,9 @@ abstract class OAuthSignatureMethod {
 }
 
 /**
- * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104] 
- * where the Signature Base String is the text and the key is the concatenated values (each first 
- * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&' 
+ * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104]
+ * where the Signature Base String is the text and the key is the concatenated values (each first
+ * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&'
  * character (ASCII code 38) even if empty.
  *   - Chapter 9.2 ("HMAC-SHA1")
  */
@@ -120,7 +120,7 @@ class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod {
 }
 
 /**
- * The PLAINTEXT method does not provide any security protection and SHOULD only be used 
+ * The PLAINTEXT method does not provide any security protection and SHOULD only be used
  * over a secure channel such as HTTPS. It does not use the Signature Base String.
  *   - Chapter 9.4 ("PLAINTEXT")
  */
@@ -130,8 +130,8 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
   }
 
   /**
-   * oauth_signature is set to the concatenated encoded values of the Consumer Secret and 
-   * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is 
+   * oauth_signature is set to the concatenated encoded values of the Consumer Secret and
+   * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is
    * empty. The result MUST be encoded again.
    *   - Chapter 9.4.1 ("Generating Signatures")
    *
@@ -153,10 +153,10 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
 }
 
 /**
- * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in 
- * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for 
- * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a 
- * verified way to the Service Provider, in a manner which is beyond the scope of this 
+ * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in
+ * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for
+ * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a
+ * verified way to the Service Provider, in a manner which is beyond the scope of this
  * specification.
  *   - Chapter 9.3 ("RSA-SHA1")
  */
@@ -558,7 +558,7 @@ class OAuthServer {
   private function get_version(&$request) {
     $version = $request->get_parameter("oauth_version");
     if (!$version) {
-      // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present. 
+      // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present.
       // Chapter 7.0 ("Accessing Protected Ressources")
       $version = '1.0';
     }
@@ -658,7 +658,7 @@ class OAuthServer {
       throw new OAuthException(
         'Missing timestamp parameter. The parameter is required'
       );
-    
+
     // verify that timestamp is recentish
     $now = time();
     if (abs($now - $timestamp) > $this->timestamp_threshold) {
index 7ed5ef98a738a54ac1696b545e065ff0e580b727..68c99fe9767b6fc1609170791aa36ecd35641359 100644 (file)
@@ -29,7 +29,7 @@ class TwitterOAuth {
   /* Set timeout default. */
   public $timeout = 30;
   /* Set connect timeout. */
-  public $connecttimeout = 30; 
+  public $connecttimeout = 30;
   /* Verify SSL Cert. */
   public $ssl_verifypeer = FALSE;
   /* Respons format. */
@@ -81,7 +81,7 @@ class TwitterOAuth {
    */
   function getRequestToken($oauth_callback) {
     $parameters = array();
-    $parameters['oauth_callback'] = $oauth_callback; 
+    $parameters['oauth_callback'] = $oauth_callback;
     $request = $this->oAuthRequest($this->requestTokenURL(), 'GET', $parameters);
     $token = OAuthUtil::parse_parameters($request);
     $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
@@ -130,7 +130,7 @@ class TwitterOAuth {
    *                "user_id" => "9436992",
    *                "screen_name" => "abraham",
    *                "x_auth_expires" => "0")
-   */  
+   */
   function getXAuthToken($username, $password) {
     $parameters = array();
     $parameters['x_auth_username'] = $username;
@@ -152,7 +152,7 @@ class TwitterOAuth {
     }
     return $response;
   }
-  
+
   /**
    * POST wrapper for oAuthRequest.
    */
index 9b5db2666c98a3720fa084ce06b9db53d1b40a28..52b005296eef0ffddcf4764a70942e13c50202e8 100644 (file)
@@ -878,7 +878,7 @@ were not a concern.</p>
 <div class="session-desc collapse in" id="day-2-timeslot-3-session-1-collapse">
 <p>The foundation for the immense success of free software was our shared
 value of enabling and maintaining end user freedom. The licenses we
-developed lowered the barrier between producers and consumers of 
+developed lowered the barrier between producers and consumers of
 software, and enable everyone to pursue their passions in collaboration
 with others. Participating in any of today's diverse wealth of free software
 communities can be immensely rewarding... and if we're doing it right, just plain fun!</p>
index 3a419d9288d37f1bc90f103bcf5335e4d3d6aeb2..c8e94c3dd4e3448de39b75d0107187770406b916 100755 (executable)
@@ -11,7 +11,7 @@
 
     <!-- wrapper for slides -->
     <ul class="carousel-inner list-unstyled">
-      
+
       <li class="item active">
        <a href="https://libreplanet.org/2019/speakers">
            <img src="//static.fsf.org/nosvn/libreplanet/2019/assets/keynote_banner.png"
@@ -27,7 +27,7 @@
        </li>
 
         <li class="item">
-           <img src="//static.fsf.org/nosvn/libreplanet/2019/assets/volunteer_helping.jpg" 
+           <img src="//static.fsf.org/nosvn/libreplanet/2019/assets/volunteer_helping.jpg"
                 alt="[ A presentation at LibrePlanet 2013 ]">
            <p class="carousel-caption-center">
                Volunteers keep LibrePlanet spinning <br>(and get great perks as well).<br>
@@ -36,7 +36,7 @@
         </li>
 
        <li class="item">
-           <img src="https://static.fsf.org/nosvn/libreplanet/2019/assets/Deb_06.jpg" 
+           <img src="https://static.fsf.org/nosvn/libreplanet/2019/assets/Deb_06.jpg"
                      alt="[ Deb Nicholson, wearing a black dress, stands next to Mariah Villarreal, wearing a grey cardigan and LibrePlanet 2018 tshirt. They are both smiling. ]">
            <p class="carousel-caption-center">
 
@@ -46,7 +46,7 @@
         </li>
 
                <li class="item">
-           <img src="https://static.fsf.org/nosvn/libreplanet/2019/assets/teeshirt-banner.png" 
+           <img src="https://static.fsf.org/nosvn/libreplanet/2019/assets/teeshirt-banner.png"
                      alt="[ A purple tshirt with green planets and a small cartoon spaceship. It includes the text "LibrePlanet 2019 Trailblazing free software." ]">
            <p class="carousel-caption-center">
 
index b738a8a6b88cea763bf57175ce33c09fb9301ff2..fa7a155945d0426b852c18fd1c06de4729388ead 100755 (executable)
@@ -87,7 +87,7 @@
     <td class="tg-ao2g">18:00</td>
     <td class="tg-ao2g" colspan="3"> Closing</td>
   </tr>
-    
+
 </table>
 
 <h1>Sunday</h1>
index 5f51baa37911d6bab9c1bd9f99f073cdd08bad5d..31fc8526c77d95107171db5bee523e23216a6f59 100755 (executable)
@@ -7,7 +7,7 @@
 
 <h1>Raffle</h1>
 
-<p>We'll be raffling off fabulous free software prices, thanks to <a href="https://libreplanet.org/2019/sponsors">some of our generous sponsors</a>. 
+<p>We'll be raffling off fabulous free software prices, thanks to <a href="https://libreplanet.org/2019/sponsors">some of our generous sponsors</a>.
 
 <p>All attendees get a gratis raffle ticket, FSF members get a second gratis ticket, and everyone can buy more chances to win at the GNU Press table during LibrePlanet, as well as at the Friday open house and Saturday evening social events! Buy one ticket for $2, 3 tickets for $5, one arm's length for $20, cash or credit. FSF staff and board members are not eligible to participate in the raffle.</p>
 
@@ -20,7 +20,7 @@
   <li>Subscriptions to <a href="https://jmp.chat/">JMP</a></li>
   <li>ChaosKeys from <a href="https://altusmetrum.org/">Altus Metrum, LLC</a></li>
 </ul>
-                                                        
+
 
 
 <!--#include virtual="/2019/includes/footer.html"-->
index 8eef46283c23b7a171408e8bf6988ea44cbd5dea..b0b9274ec57b6ae053ae25cb37a0ec1ddf28737c 100644 (file)
@@ -1,59 +1,59 @@
 {
-    "Deb Nicholson": "nicholson", 
-    "Gabriella Coleman": "coleman", 
-    "Richard Stallman": "stallman", 
-    "Seth David Schoen": "schoen", 
-    "Mad Ball": "ball", 
-    "Liz Barry": "barry", 
-    "Wendy Bolm": "bolm", 
-    "Shaun Carland": "carland", 
-    "Sudarshan Chawathe": "chawathe", 
-    "Cecilia Donnelly": "donnelly", 
-    "Máirín Duffy": "duffy", 
-    "Luis Falcón": "falcon", 
-    "Tony Fortenberry": "fortenberry", 
-    "Jeremiah Foster": "foster", 
-    "Mike Gerwitz": "gerwitz", 
-    "Denver Gingerich": "gingerich", 
-    "Morane Gruenpeter": "gruenpeter", 
-    "der hans": "hans", 
-    "Mark Jones": "jones", 
-    "Spencer Krum": "krum", 
-    "Bassam Kudali": "kudali", 
-    "Bradley Kuhn": "kuhn", 
-    "Roan Kattouw": "kattouw", 
-    "Chris Lamb": "lamb", 
-    "Morgan Lemmer-Webber": "lemmer-webber", 
-    "Tom Callaway": "callaway", 
-    "Stephen Jacobs": "jacobs", 
-    "D. Joe Anderson": "anderson", 
-    "Gina Linkins": "linkins", 
-    "Matt Bernius": "bernius", 
-    "Aaron Luna": "luna", 
-    "Alison Marcina": "marcina", 
-    "Patrick Masson": "masson", 
-    "Madeline Hagen": "hagen", 
-    "Dr. Michele McColgan": "mccolgan", 
-    "Kristopher Kavratil": "kavratil", 
-    "Neil McGovern": "mcgovern", 
-    "Micky Metts": "metts", 
-    "Sean O'Brien": "o'brien", 
-    "Brett Smith": "smith", 
-    "Connor Solver": "solver", 
-    "Noah Swartz": "swartz", 
-    "Eric Schultz": "schultz", 
-    "David Thomson": "thomson", 
-    "Kat Thornton": "thornton", 
-    "Devin Ulibarri": "ulibarri", 
-    "Walter Bender": "bender", 
-    "Italo Vignoli": "vignoli", 
-    "Luis Villa": "villa", 
-    "Mariah Villarreal": "villarreal", 
-    "Jeffrey Warren": "warren", 
-    "Christopher Lemmer Webber": "webber", 
-    "Gunnar Wolf": "wolf", 
-    "Sharon Woods": "woods", 
-    "Stefano Zacchiroli": "zacchiroli", 
-    "Alick Tao Zhao": "zhao", 
+    "Deb Nicholson": "nicholson",
+    "Gabriella Coleman": "coleman",
+    "Richard Stallman": "stallman",
+    "Seth David Schoen": "schoen",
+    "Mad Ball": "ball",
+    "Liz Barry": "barry",
+    "Wendy Bolm": "bolm",
+    "Shaun Carland": "carland",
+    "Sudarshan Chawathe": "chawathe",
+    "Cecilia Donnelly": "donnelly",
+    "Máirín Duffy": "duffy",
+    "Luis Falcón": "falcon",
+    "Tony Fortenberry": "fortenberry",
+    "Jeremiah Foster": "foster",
+    "Mike Gerwitz": "gerwitz",
+    "Denver Gingerich": "gingerich",
+    "Morane Gruenpeter": "gruenpeter",
+    "der hans": "hans",
+    "Mark Jones": "jones",
+    "Spencer Krum": "krum",
+    "Bassam Kudali": "kudali",
+    "Bradley Kuhn": "kuhn",
+    "Roan Kattouw": "kattouw",
+    "Chris Lamb": "lamb",
+    "Morgan Lemmer-Webber": "lemmer-webber",
+    "Tom Callaway": "callaway",
+    "Stephen Jacobs": "jacobs",
+    "D. Joe Anderson": "anderson",
+    "Gina Linkins": "linkins",
+    "Matt Bernius": "bernius",
+    "Aaron Luna": "luna",
+    "Alison Marcina": "marcina",
+    "Patrick Masson": "masson",
+    "Madeline Hagen": "hagen",
+    "Dr. Michele McColgan": "mccolgan",
+    "Kristopher Kavratil": "kavratil",
+    "Neil McGovern": "mcgovern",
+    "Micky Metts": "metts",
+    "Sean O'Brien": "o'brien",
+    "Brett Smith": "smith",
+    "Connor Solver": "solver",
+    "Noah Swartz": "swartz",
+    "Eric Schultz": "schultz",
+    "David Thomson": "thomson",
+    "Kat Thornton": "thornton",
+    "Devin Ulibarri": "ulibarri",
+    "Walter Bender": "bender",
+    "Italo Vignoli": "vignoli",
+    "Luis Villa": "villa",
+    "Mariah Villarreal": "villarreal",
+    "Jeffrey Warren": "warren",
+    "Christopher Lemmer Webber": "webber",
+    "Gunnar Wolf": "wolf",
+    "Sharon Woods": "woods",
+    "Stefano Zacchiroli": "zacchiroli",
+    "Alick Tao Zhao": "zhao",
     "Marina Zhurakhinskaya": "zhurakhinskaya"
 }
\ No newline at end of file
index 7aad2049fafc70a00b151207123a57b55d1fe22c..620051168634272e656411e2b19e623f4c3efe55 100755 (executable)
@@ -11,7 +11,7 @@
 
                        <div class="hover_img">
                                <img src="https://static.fsf.org/nosvn/libreplanet/sponsor-logos/redhat.png"  alt="The red hat logo." height="75%" width="75%">
-                       
+
                        </div>
 
 <h2>In-kind and raffle  sponsors</h2>
   <img src="https://static.fsf.org/nosvn/libreplanet/2019/sponsor-logos/Boston_Beer_Company.jpg" alt="Boston Beer Company logo" height="25%" width="30%">
   <img src="https://static.fsf.org/nosvn/libreplanet/2019/sponsor-logos/wegmans.svg" alt="Wegman's logo" height="25%" width="30%">
   </p>
-                               
-                               
+
+
 <!--                           <div class="hover_img">
                                  <img src=""  alt="" height="50%" width="50%">
                                   <p class="text-muted text-center"> <a href=""></a></p>
-                               </div> 
--->                                                                                    
+                               </div>
+-->
 
-<p><em>All non-FSF logos are copyright their owners and used by permission.</em></p>                   
+<p><em>All non-FSF logos are copyright their owners and used by permission.</em></p>
 
 <h1>Exhibitors</h1>
 <ul>
@@ -74,7 +74,7 @@
 
 <p>As a 501(c)(3) nonprofit, the Free Software Foundation relies on sponsors and volunteers to make LibrePlanet a reality each year. Thanks to conference sponsors, we can offer free admission to students, travel scholarships, welcoming event space and social activities, and refreshments for attendees. Support from generous sponsors also enables LibrePlanet to run on free software infrastructure, including livestreaming and session recordings.</p>
 
-<p><a href="LP19-sponsor-prospectus-3.pdf 
+<p><a href="LP19-sponsor-prospectus-3.pdf
 ">Sponsorship and underwriting opportunities can be found in this year's prospectus</a>. Email <a href="mailto:campaigns@fsf.org">campaigns@fsf.org</a> if you are interested in sponsoring or have any questions.</p>
 
 <b>Exhibit Hall</b>
index a244ce792648fa6e9ff0644f7acec7dfd95c18e3..3c2106bf644839b36341e81fa8e3835f00cf42d9 100644 (file)
@@ -18,8 +18,8 @@ h3  {
   font-size: 20px;
 }
 
-.lp-logo { 
-  margin-bottom: -68px; 
+.lp-logo {
+  margin-bottom: -68px;
   margin-top: 10px;
 }
 
@@ -1021,7 +1021,7 @@ clear:both
 
 
 @media (max-width:600px) {
-  
+
   .talkblock{
   clear: both;
   text-align: left;
@@ -1035,7 +1035,7 @@ clear:both
   }
  .speakerheader {
   text-align: left;
-   
+
   }
   .speakerblock h2{
   font-size:x-large;
index 7166c1681428d2f4828ad08f6b3f96cd3f0c5607..4ee39efa7cd1ddfeec5ceed329b10174f6088c60 100644 (file)
@@ -49,7 +49,7 @@
 .ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; }
 .ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
 .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; zoom: 1; }
-.ui-autocomplete { position: absolute; cursor: default; }      
+.ui-autocomplete { position: absolute; cursor: default; }
 
 /* workarounds */
 * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
@@ -57,8 +57,8 @@
 .ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; }
 .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
 button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
+.ui-button-icons-only { width: 3.4em; }
+button.ui-button-icons-only { width: 3.7em; }
 
 /*button text element */
 .ui-button .ui-button-text { display: block; line-height: 1.4;  }
@@ -95,7 +95,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
 .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
 .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
 .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
+.ui-datepicker select.ui-datepicker-month,
 .ui-datepicker select.ui-datepicker-year { width: 49%;}
 .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
 .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
index 94fb5490a2ed10b2c69a4a567a4fd2e4f706d841..f155876e1b9cf712c81dd78eac057c5629343b9b 100644 (file)
 <glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
 <glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
 </font>
-</defs></svg> 
\ No newline at end of file
+</defs></svg>
\ No newline at end of file
index 9dcbc53860673be65350d4c2cfeb2b492a033928..5bd130e6bac363ad91c22aa9b479779e41560cc2 100644 (file)
@@ -1014,7 +1014,7 @@ JSONPPolling.prototype.doPoll = function () {
   this.script = script;
 
   var isUAgecko = 'undefined' != typeof navigator && /gecko/i.test(navigator.userAgent);
-  
+
   if (isUAgecko) {
     setTimeout(function () {
       var iframe = document.createElement('iframe');
index ab76d3a76719287a317b694d276be1b1cd0b2fa5..8ef5770a9eaef4a9de2c6479746ed6b133739393 100644 (file)
@@ -915,7 +915,7 @@ $.widget("ui.mouse", {
                        .bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
 
                event.preventDefault();
-               
+
                mouseHandled = true;
                return true;
        },
@@ -1545,7 +1545,7 @@ $.widget("ui.draggable", $.ui.mouse, {
                this.handle = this._getHandle(event);
                if (!this.handle)
                        return false;
-               
+
                $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
                        $('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')
                        .css({
@@ -1629,12 +1629,12 @@ $.widget("ui.draggable", $.ui.mouse, {
                if ($.ui.ddmanager && !o.dropBehaviour)
                        $.ui.ddmanager.prepareOffsets(this, event);
 
-               
+
                this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
-               
+
                //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)
                if ( $.ui.ddmanager ) $.ui.ddmanager.dragStart(this, event);
-               
+
                return true;
        },
 
@@ -1673,7 +1673,7 @@ $.widget("ui.draggable", $.ui.mouse, {
                        dropped = this.dropped;
                        this.dropped = false;
                }
-               
+
                //if the original element is no longer in the DOM don't bother to continue (see #8269)
                var element = this.element[0], elementInDom = false;
                while ( element && (element = element.parentNode) ) {
@@ -1699,29 +1699,29 @@ $.widget("ui.draggable", $.ui.mouse, {
 
                return false;
        },
-       
+
        _mouseUp: function(event) {
                //Remove frame helpers
-               $("div.ui-draggable-iframeFix").each(function() { 
-                       this.parentNode.removeChild(this); 
+               $("div.ui-draggable-iframeFix").each(function() {
+                       this.parentNode.removeChild(this);
                });
-               
+
                //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)
                if( $.ui.ddmanager ) $.ui.ddmanager.dragStop(this, event);
-               
+
                return $.ui.mouse.prototype._mouseUp.call(this, event);
        },
-       
+
        cancel: function() {
-               
+
                if(this.helper.is(".ui-draggable-dragging")) {
                        this._mouseUp({});
                } else {
                        this._clear();
                }
-               
+
                return this;
-               
+
        },
 
        _getHandle: function(event) {
@@ -2042,12 +2042,12 @@ $.ui.plugin.add("draggable", "connectToSortable", {
                };
 
                $.each(inst.sortables, function(i) {
-                       
+
                        //Copy over some variables to allow calling the sortable's native _intersectsWith
                        this.instance.positionAbs = inst.positionAbs;
                        this.instance.helperProportions = inst.helperProportions;
                        this.instance.offset.click = inst.offset.click;
-                       
+
                        if(this.instance._intersectsWith(this.instance.containerCache)) {
 
                                //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once
@@ -2090,13 +2090,13 @@ $.ui.plugin.add("draggable", "connectToSortable", {
 
                                        this.instance.isOver = 0;
                                        this.instance.cancelHelperRemoval = true;
-                                       
+
                                        //Prevent reverting on this forced stop
                                        this.instance.options.revert = false;
-                                       
+
                                        // The out event needs to be triggered independently
                                        this.instance._trigger('out', event, this.instance._uiHash(this.instance));
-                                       
+
                                        this.instance._mouseStop(event, true);
                                        this.instance.options.helper = this.instance.options._helper;
 
@@ -2266,7 +2266,7 @@ $.ui.plugin.add("draggable", "stack", {
                        return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);
                });
                if (!group.length) { return; }
-               
+
                var min = parseInt(group[0].style.zIndex) || 0;
                $(group).each(function(i) {
                        this.style.zIndex = min + i;
@@ -3130,7 +3130,7 @@ $.ui.plugin.add("resizable", "alsoResize", {
 
                _alsoResize = function (exp, c) {
                        $(exp).each(function() {
-                               var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, 
+                               var el = $(this), start = $(this).data("resizable-alsoresize"), style = {},
                                        css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left'];
 
                                $.each(css, function (i, prop) {
@@ -6488,7 +6488,7 @@ function Datepicker() {
 $.extend(Datepicker.prototype, {
        /* Class name added to elements to indicate already configured with a date picker. */
        markerClassName: 'hasDatepicker',
-       
+
        //Keep track of the maximum number of rows displayed (see #7043)
        maxRows: 4,
 
@@ -6497,7 +6497,7 @@ $.extend(Datepicker.prototype, {
                if (this.debug)
                        console.log.apply('', arguments);
        },
-       
+
        // TODO rename to "widget" when switching to widget factory
        _widgetDatepicker: function() {
                return this.dpDiv;
@@ -6607,7 +6607,7 @@ $.extend(Datepicker.prototype, {
                                if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
                                        $.datepicker._hideDatepicker();
                                else if ($.datepicker._datepickerShowing && $.datepicker._lastInput != input[0]) {
-                                       $.datepicker._hideDatepicker(); 
+                                       $.datepicker._hideDatepicker();
                                        $.datepicker._showDatepicker(input[0]);
                                } else
                                        $.datepicker._showDatepicker(input[0]);
@@ -6903,7 +6903,7 @@ $.extend(Datepicker.prototype, {
                                case 9: $.datepicker._hideDatepicker();
                                                handled = false;
                                                break; // hide on tab out
-                               case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + 
+                               case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' +
                                                                        $.datepicker._currentClass + ')', inst.dpDiv);
                                                if (sel[0])
                                                        $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
@@ -7001,7 +7001,7 @@ $.extend(Datepicker.prototype, {
        },
 
        /* Pop-up the date picker for a given input field.
-          If false returned from beforeShow event handler do not show. 
+          If false returned from beforeShow event handler do not show.
           @param  input  element - the input field attached to the date picker or
                          event - if triggered by focus */
        _showDatepicker: function(input) {
@@ -7105,7 +7105,7 @@ $.extend(Datepicker.prototype, {
                                // this breaks the change event in IE
                                inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement)
                        inst.input.focus();
-               // deffered render of the years select (to avoid flashes on Firefox) 
+               // deffered render of the years select (to avoid flashes on Firefox)
                if( inst.yearshtml ){
                        var origyearshtml = inst.yearshtml;
                        setTimeout(function(){
@@ -7814,7 +7814,7 @@ $.extend(Datepicker.prototype, {
                        $(this).bind(this.getAttribute('data-event'), handler[this.getAttribute('data-handler')]);
                });
        },
-       
+
        /* Generate the HTML for the current state of the date picker. */
        _generateHTML: function(inst) {
                var today = new Date();
@@ -7971,7 +7971,7 @@ $.extend(Datepicker.prototype, {
                                        drawMonth = 0;
                                        drawYear++;
                                }
-                               calender += '</tbody></table>' + (isMultiMonth ? '</div>' + 
+                               calender += '</tbody></table>' + (isMultiMonth ? '</div>' +
                                                        ((numMonths[0] > 0 && col == numMonths[1]-1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
                                group += calender;
                        }
@@ -8035,7 +8035,7 @@ $.extend(Datepicker.prototype, {
                                                '>' + year + '</option>';
                                }
                                inst.yearshtml += '</select>';
-                               
+
                                html += inst.yearshtml;
                                inst.yearshtml = null;
                        }
@@ -8146,7 +8146,7 @@ $.extend(Datepicker.prototype, {
  * Bind hover events for datepicker elements.
  * Done via delegate so the binding only occurs once in the lifetime of the parent div.
  * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
- */ 
+ */
 function bindHover(dpDiv) {
        var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';
        return dpDiv.delegate(selector, 'mouseout', function() {
@@ -8178,12 +8178,12 @@ function extendRemove(target, props) {
                        Object - settings for attaching new datepicker functionality
    @return  jQuery object */
 $.fn.datepicker = function(options){
-       
+
        /* Verify an empty collection wasn't passed - Fixes #6976 */
        if ( !this.length ) {
                return this;
        }
-       
+
        /* Initialise the date picker. */
        if (!$.datepicker.initialized) {
                $(document).mousedown($.datepicker._checkExternalClick).
@@ -14211,7 +14211,7 @@ $.effects.effect.highlight = function( o, done ) {
        }
 
        $.effects.save( elem, props );
-       
+
        elem
                .show()
                .css({
index 31de7b0d51444ca9ce3a50d71892845f2d88ce57..3603058bcb76086a847f5726846af1a4399bac24 100644 (file)
@@ -1,17 +1,17 @@
 /*!
  * jQuery Feeds v0.5
  * https://camagu.github.com/jquery-feeds
- * 
+ *
  * Copyright (c) 2013, Camilo Aguilar
  * Dual licensed under the MIT and GPL licenses:
  *     http://www.opensource.org/licenses/mit-license.php
  *     http://www.gnu.org/licenses/gpl.html
- * 
+ *
  * Includes a modified version of Simple JavaScript Templating
  * http://ejohn.org/blog/javascript-micro-templating/
  * Copyright (c) John Resig (http://ejohn.org)
  * MIT licensed
- * 
+ *
  * Date: 2013-02-18
  */
 
index 305f66b2d839887a6bc837ac1b56aa71c3dbc342..276cdeeb80efee20e375bcbb1fcd00bb82e62b74 100644 (file)
@@ -1,17 +1,17 @@
 /*!
  * jQuery Feeds v0.5
  * https://camagu.github.com/jquery-feeds
- * 
+ *
  * Copyright (c) 2013, Camilo Aguilar
  * Dual licensed under the MIT and GPL licenses:
  *     http://www.opensource.org/licenses/mit-license.php
  *     http://www.gnu.org/licenses/gpl.html
- * 
+ *
  * Includes a modified version of Simple JavaScript Templating
  * http://ejohn.org/blog/javascript-micro-templating/
  * Copyright (c) John Resig (http://ejohn.org)
  * MIT licensed
- * 
+ *
  * Date: 2013-02-18
  */
 (function(e){var t={};e.fn.feeds=function(n){var r={service:"//ajax.googleapis.com/ajax/services/feed/load?v=1.0",settings:{loadingTemplate:'<div class="feeds-loader">Loading entries ...</div>',entryTemplate:'<div class="feeds-entry feeds-source-<!=source!>"><a class="feeds-entry-title" target="_blank" href="<!=link!>" title="<!=title!>"><!=title!></a><div class="feeds-entry-date"><!=publishedDate!></div><div class="feeds-entry-contentSnippet"><!=contentSnippet!></div></div>',feeds:{},max:-1,xml:!1,ssl:"auto",onComplete:function(e){},preprocess:function(e){}},feeds:{},entries:[],feedsLength:0,feedsLoaded:0,$element:null,$loader:null,init:function(t,n){this.settings=e.extend(this.settings,n),this.feeds=this.settings.feeds;for(var r in this.feeds)this.feeds.hasOwnProperty(r)&&this.feedsLength++;var i=this.settings.ssl==="auto"?document.location.protocol:this.settings.ssl?"https:":"http:";e.inArray(i,["http:","https"])===-1&&(i="https:"),this.service=i+this.service,this.$element=e(t);var s=typeof this.settings.loadingTemplate=="function"?this.settings.loadingTemplate:this.tmpl(this.settings.loadingTemplate);this.$loader=e(s.call(this,{})),this.$element.html(this.$loader);var o=this.settings.xml?"json_xml":"json";for(var u in this.feeds)this.fetchFeed(u,this.feeds[u],this.settings.max,o)},fetchFeed:function(n,r,i,s){var o=this,u=r+"**"+i+"**"+s;if(typeof t[u]!="undefined"){o.processResponse(t[u],n,r);return}e.ajax({url:this.service,dataType:"jsonp",data:{q:r,num:i,output:s},beforeSend:function(){this.feed=r,this.key=n},success:function(e){t[u]=e,o.processResponse(e,this.key,this.feed)}})},processResponse:function(t,n,r){if(t.responseStatus!==200)window.console&&window.console.log&&console.log("Unable to load feed "+r+": ("+t.responseStatus+") "+t.responseDetails);else{var i=t.responseData.feed,s=i.entries,o=t.responseData.feed.type;if(this.settings.xml){var u=e(t.responseData.xmlString);o.match(/^rss.*/)?u=u.filter("rss").find("channel"):o.match(/^atom.*/)&&(u=u.filter("feed")),i.xml=u}for(var a in s){var f=e.extend({},s[a]);f.source=n,f.publishedDateRaw=f.publishedDate,f.feedUrl=i.feedUrl,f.feedTitle=i.title,f.feedLink=i.link,f.feedDescription=i.description,f.feedAuthor=i.author,this.settings.xml&&(o.match(/^rss.*/)?f.xml=i.xml.find("item").eq(a):o.match(/^atom.*/)?f.xml=i.xml.find("entry").eq(a):f.xml={}),this.settings.preprocess.call(f,i)!==!1&&this.entries.push(f)}}this.feedsLoaded++,this.checkComplete()},checkComplete:function(){if(this.feedsLoaded===this.feedsLength){this.$loader.remove(),this.entries.sort(function(e,t){var n=(new Date(e.publishedDateRaw)).getTime(),r=(new Date(t.publishedDateRaw)).getTime();return r-n});var e=typeof this.settings.entryTemplate=="function"?this.settings.entryTemplate:this.tmpl(this.settings.entryTemplate);for(var t in this.entries){var n=this.entries[t],r=e.call(this,n);this.$element.append(r)}this.settings.onComplete.call(this.$element[0],this.entries)}},tmplCache:{},tmpl:function(t,n){var r=/\W/.test(t)?new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+t.replace(/[\r\t\n]/g," ").split("<!").join(" ").replace(/((^|!>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)!>/g,"',typeof $1 != 'undefined' ? $1 : '','").split("   ").join("');").split("!>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');"):this.tmplCache[t]=this.tmplCache[t]||this.tmpl(document.getElementById(t).innerHTML);return n?r(n):r}};return e(this).each(function(){r.init(this,n)})}})(jQuery);
\ No newline at end of file
index a094a70d01bdf8d31a8627a733321d4616440583..311a57b10d035f9ac5f3f0962a25bfbd2efe6ef9 100644 (file)
@@ -37,7 +37,7 @@
                        target: '#output'
                });
        });
-       
+
        You can also use ajaxForm with delegation (requires jQuery v1.7+), so the
        form does not have to exist when you invoke ajaxForm:
 
@@ -45,7 +45,7 @@
                delegation: true,
                target: '#output'
        });
-       
+
        When using ajaxForm, the ajaxSubmit function will be invoked for you
        at the appropriate time.
 */
@@ -69,7 +69,7 @@ $.fn.ajaxSubmit = function(options) {
                log('ajaxSubmit: skipping submit process - no element selected');
                return this;
        }
-       
+
        var method, action, url, $form = this;
 
        if (typeof options == 'function') {
@@ -111,7 +111,7 @@ $.fn.ajaxSubmit = function(options) {
        if ( traditional === undefined ) {
                traditional = $.ajaxSettings.traditional;
        }
-       
+
     var elements = [];
     var qx, a = this.formToArray(options.semantic, elements);
        if (options.data) {
@@ -135,7 +135,7 @@ $.fn.ajaxSubmit = function(options) {
        var q = $.param(a, traditional);
        if (qx) {
                q = ( q ? (q + '&' + qx) : qx );
-       }       
+       }
        if (options.type.toUpperCase() == 'GET') {
                options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
                options.data = null;  // data is null for 'get'
@@ -165,7 +165,7 @@ $.fn.ajaxSubmit = function(options) {
        }
 
        options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
-        var context = options.context || this ;    // jQuery 1.4+ supports scope context 
+        var context = options.context || this ;    // jQuery 1.4+ supports scope context
                for (var i=0, max=callbacks.length; i < max; i++) {
                        callbacks[i].apply(context, [data, status, xhr || $form, $form]);
                }
@@ -175,7 +175,7 @@ $.fn.ajaxSubmit = function(options) {
 
     // [value] (issue #113), also see comment:
     // https://github.com/malsup/form/commit/588306aedba1de01388032d5f42a60159eea9228#commitcomment-2180219
-    var fileInputs = $('input[type=file]:enabled[value!=""]', this); 
+    var fileInputs = $('input[type=file]:enabled[value!=""]', this);
 
        var hasFileInputs = fileInputs.length > 0;
        var mp = 'multipart/form-data';
@@ -299,7 +299,7 @@ $.fn.ajaxSubmit = function(options) {
             deferred.reject();
             return deferred;
         }
-        
+
                if (a) {
                                // ensure that every serialized input is still enabled
             for (i=0; i < elements.length; i++) {
@@ -347,7 +347,7 @@ $.fn.ajaxSubmit = function(options) {
                 if (io.contentWindow.document.execCommand) {
                         io.contentWindow.document.execCommand('Stop');
                 }
-                } 
+                }
                 catch(ignore) {}
 
                                $io.attr('src', s.iframeSrc); // abort op in progress
@@ -395,7 +395,7 @@ $.fn.ajaxSubmit = function(options) {
                                }
                        }
                }
-               
+
                var CLIENT_TIMEOUT_ABORT = 1;
                var SERVER_ABORT = 2;
 
@@ -403,7 +403,7 @@ $.fn.ajaxSubmit = function(options) {
                        var doc = frame.contentWindow ? frame.contentWindow.document : frame.contentDocument ? frame.contentDocument : frame.document;
                        return doc;
                }
-               
+
                // Rails CSRF hack (thanks to Yvan Barthelemy)
                var csrf_token = $('meta[name=csrf-token]').attr('content');
                var csrf_param = $('meta[name=csrf-param]').attr('content');
@@ -438,7 +438,7 @@ $.fn.ajaxSubmit = function(options) {
                        if (s.timeout) {
                                timeoutHandle = setTimeout(function() { timedOut = true; cb(CLIENT_TIMEOUT_ABORT); }, s.timeout);
                        }
-                       
+
                        // look for server aborts
                        function checkState() {
                                try {
@@ -537,7 +537,7 @@ $.fn.ajaxSubmit = function(options) {
                        }
             if (io.detachEvent)
                 io.detachEvent('onload', cb);
-            else    
+            else
                 io.removeEventListener('load', cb, false);
 
                        var status = 'success', errMsg;
@@ -593,7 +593,7 @@ $.fn.ajaxSubmit = function(options) {
                                                var pre = doc.getElementsByTagName('pre')[0];
                                                var b = doc.getElementsByTagName('body')[0];
                                                if (pre) {
-                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;  
+                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;
                                                }
                                                else if (b) {
                           xhr.responseText = b.innerHTML ? b.innerHTML : b.textContent;
@@ -716,7 +716,7 @@ $.fn.ajaxSubmit = function(options) {
 $.fn.ajaxForm = function(options) {
        options = options || {};
        options.delegation = options.delegation && $.isFunction($.fn.on);
-       
+
        // in jQuery 1.3+ we can fix mistakes with the ready state
        if (!options.delegation && this.length === 0) {
                var o = { s: this.selector, c: this.context };
@@ -746,7 +746,7 @@ $.fn.ajaxForm = function(options) {
                .bind('click.form-plugin', options, captureSubmittingElement);
 };
 
-// private event handlers      
+// private event handlers
 function doAjaxSubmit(e) {
     /*jshint validthis:true */
        var options = e.data;
@@ -755,7 +755,7 @@ function doAjaxSubmit(e) {
                $(this).ajaxSubmit(options);
        }
 }
-       
+
 function captureSubmittingElement(e) {
     /*jshint validthis:true */
        var target = e.target;
@@ -835,14 +835,14 @@ $.fn.formToArray = function(semantic, elements) {
 
                v = $.fieldValue(el, true);
                if (v && v.constructor == Array) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
                        for(j=0, jmax=v.length; j < jmax; j++) {
                                a.push({name: n, value: v[j]});
                        }
                }
         else if (feature.fileapi && el.type == 'file' && !el.disabled) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             var files = el.files;
             if (files.length) {
@@ -856,7 +856,7 @@ $.fn.formToArray = function(semantic, elements) {
             }
         }
                else if (v !== null && typeof v != 'undefined') {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             a.push({name: n, value: v, type: el.type, required: el.required});
                }
@@ -1106,7 +1106,7 @@ $.fn.ajaxSubmit.debug = false;
 
 // helper fn for console logging
 function log() {
-       if (!$.fn.ajaxSubmit.debug) 
+       if (!$.fn.ajaxSubmit.debug)
                return;
        var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
        if (window.console && window.console.log) {
index 29082ca9647b864d3f0f254fa25a6a6bcc22b232..bcb4a27b7a532c4bcd6bb910a1010776fb97ce1a 100644 (file)
@@ -119,7 +119,7 @@ var m = (function app(window, undefined) {
                                        i-- //check current index again and flatten until there are no more nested arrays at that index
                                }
                        }
-                       
+
                        var nodes = [], intact = cached.length === data.length, subArrayCount = 0;
 
                        //keys algorithm: sort elements without recreating them if keys are present
@@ -138,7 +138,7 @@ var m = (function app(window, undefined) {
                        }
                        if (shouldMaintainIdentities) {
                                if (data.indexOf(null) > -1) data = data.filter(function(x) {return x != null})
-                               
+
                                var keysDiffer = false
                                if (data.length != cached.length) keysDiffer = true
                                else for (var i = 0, cachedCell, dataCell; cachedCell = cached[i], dataCell = data[i]; i++) {
@@ -147,7 +147,7 @@ var m = (function app(window, undefined) {
                                                break
                                        }
                                }
-                               
+
                                if (keysDiffer) {
                                        for (var i = 0, len = data.length; i < len; i++) {
                                                if (data[i] && data[i].attrs) {
@@ -216,7 +216,7 @@ var m = (function app(window, undefined) {
                        }
                        if (!intact) {
                                //diff the array itself
-                               
+
                                //update the list of DOM nodes by collecting the nodes from each item
                                for (var i = 0, len = data.length; i < len; i++) {
                                        if (cached[i] != null) nodes.push.apply(nodes, cached[i].nodes)
@@ -699,7 +699,7 @@ var m = (function app(window, undefined) {
                }
                return str.join("&")
        }
-       
+
        function parseQueryString(str) {
                var pairs = str.split("&"), params = {};
                for (var i = 0, len = pairs.length; i < len; i++) {
index d48daafdea6ce07d5d495a18172b7bb1bf8e7328..d3115512a757e489d0c0fe8cfad0f9f2dc099e4c 100644 (file)
@@ -2,7 +2,7 @@
     /**
      * Your Twitter App Info
      */
-    
+
     // Consumer Key
     define('CONSUMER_KEY', 'yxmC3rFOrr1xRGbCo3J6QNkKW');
     define('CONSUMER_SECRET', 'rqI9V5lPttEhNeOwBl14Jn6ryCU5MRBJQ5J6j8OEgaXwekeZM2');
@@ -10,7 +10,7 @@
     // User Access Token
     define('ACCESS_TOKEN', '2972347515-LCsxZafDTPd8hPCpWfewRVCEqgkHysKqB97x1bc');
     define('ACCESS_SECRET', 'Od3GSWu8iVW6x03YfTtDXVY48ewB315FkSrb3HQgi8Tx7');
-       
+
        // Cache Settings
        define('CACHE_ENABLED', false);
        define('CACHE_LIFETIME', 3600); // in seconds
index d02b7aebae3fd08d189f7127946fb47390815665..67800781e666ce3e22934dcc6a2852f61e77e785 100644 (file)
@@ -12,7 +12,7 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     // Check if keys are in place
     if (CONSUMER_KEY === '' || CONSUMER_SECRET === '' || CONSUMER_KEY === 'CONSUMER_KEY_HERE' || CONSUMER_SECRET === 'CONSUMER_SECRET_HERE') {
         echo 'You need a consumer key and secret keys. Get one from <a href="https://dev.twitter.com/apps">dev.twitter.com/apps</a>';
-      
+
         exit;
     }
 
@@ -22,13 +22,13 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     $exclude_replies = filter_input(INPUT_GET, 'exclude_replies', FILTER_SANITIZE_SPECIAL_CHARS);
     $list_slug = filter_input(INPUT_GET, 'list_slug', FILTER_SANITIZE_SPECIAL_CHARS);
     $hashtag = filter_input(INPUT_GET, 'hashtag', FILTER_SANITIZE_SPECIAL_CHARS);
-    
+
        if(CACHE_ENABLED) {
         // Generate cache key from query data
         $cache_key = md5(
             var_export(array($username, $number, $exclude_replies, $list_slug, $hashtag), true) . HASH_SALT
         );
-    
+
         // Remove old files from cache dir
         $cache_path  = dirname(__FILE__) . '/cache/';
         foreach (glob($cache_path . '*') as $file) {
@@ -36,16 +36,16 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
                 unlink($file);
             }
         }
-    
+
         // If cache file exists - return it
         if(file_exists($cache_path . $cache_key)) {
             header('Content-Type: application/json');
-    
+
             echo file_get_contents($cache_path . $cache_key);
             exit;
         }
     }
-       
+
     /**
      * Gets connection with user Twitter account
      * @param  String $cons_key     Consumer Key
@@ -57,13 +57,13 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     function getConnectionWithToken($cons_key, $cons_secret, $oauth_token, $oauth_secret)
     {
         $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_secret);
-      
+
         return $connection;
     }
-    
+
     // Connect
     $connection = getConnectionWithToken(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_SECRET);
-    
+
     // Get Tweets
     if (!empty($list_slug)) {
       $params = array(
index 4570013b80f59fc225aa9b4b695b873198143587..d31451ac61f694f058df6309b2107bcc10c8e6a0 100644 (file)
@@ -92,9 +92,9 @@ abstract class OAuthSignatureMethod {
 }
 
 /**
- * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104] 
- * where the Signature Base String is the text and the key is the concatenated values (each first 
- * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&' 
+ * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104]
+ * where the Signature Base String is the text and the key is the concatenated values (each first
+ * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&'
  * character (ASCII code 38) even if empty.
  *   - Chapter 9.2 ("HMAC-SHA1")
  */
@@ -120,7 +120,7 @@ class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod {
 }
 
 /**
- * The PLAINTEXT method does not provide any security protection and SHOULD only be used 
+ * The PLAINTEXT method does not provide any security protection and SHOULD only be used
  * over a secure channel such as HTTPS. It does not use the Signature Base String.
  *   - Chapter 9.4 ("PLAINTEXT")
  */
@@ -130,8 +130,8 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
   }
 
   /**
-   * oauth_signature is set to the concatenated encoded values of the Consumer Secret and 
-   * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is 
+   * oauth_signature is set to the concatenated encoded values of the Consumer Secret and
+   * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is
    * empty. The result MUST be encoded again.
    *   - Chapter 9.4.1 ("Generating Signatures")
    *
@@ -153,10 +153,10 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
 }
 
 /**
- * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in 
- * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for 
- * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a 
- * verified way to the Service Provider, in a manner which is beyond the scope of this 
+ * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in
+ * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for
+ * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a
+ * verified way to the Service Provider, in a manner which is beyond the scope of this
  * specification.
  *   - Chapter 9.3 ("RSA-SHA1")
  */
@@ -558,7 +558,7 @@ class OAuthServer {
   private function get_version(&$request) {
     $version = $request->get_parameter("oauth_version");
     if (!$version) {
-      // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present. 
+      // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present.
       // Chapter 7.0 ("Accessing Protected Ressources")
       $version = '1.0';
     }
@@ -658,7 +658,7 @@ class OAuthServer {
       throw new OAuthException(
         'Missing timestamp parameter. The parameter is required'
       );
-    
+
     // verify that timestamp is recentish
     $now = time();
     if (abs($now - $timestamp) > $this->timestamp_threshold) {
index 7ed5ef98a738a54ac1696b545e065ff0e580b727..68c99fe9767b6fc1609170791aa36ecd35641359 100644 (file)
@@ -29,7 +29,7 @@ class TwitterOAuth {
   /* Set timeout default. */
   public $timeout = 30;
   /* Set connect timeout. */
-  public $connecttimeout = 30; 
+  public $connecttimeout = 30;
   /* Verify SSL Cert. */
   public $ssl_verifypeer = FALSE;
   /* Respons format. */
@@ -81,7 +81,7 @@ class TwitterOAuth {
    */
   function getRequestToken($oauth_callback) {
     $parameters = array();
-    $parameters['oauth_callback'] = $oauth_callback; 
+    $parameters['oauth_callback'] = $oauth_callback;
     $request = $this->oAuthRequest($this->requestTokenURL(), 'GET', $parameters);
     $token = OAuthUtil::parse_parameters($request);
     $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
@@ -130,7 +130,7 @@ class TwitterOAuth {
    *                "user_id" => "9436992",
    *                "screen_name" => "abraham",
    *                "x_auth_expires" => "0")
-   */  
+   */
   function getXAuthToken($username, $password) {
     $parameters = array();
     $parameters['x_auth_username'] = $username;
@@ -152,7 +152,7 @@ class TwitterOAuth {
     }
     return $response;
   }
-  
+
   /**
    * POST wrapper for oAuthRequest.
    */
index f80215c2654c1499e5fd7f1a39552f66115fd80a..ce4627bd42be85bdf101cda88f82b85f07734087 100644 (file)
@@ -5,7 +5,7 @@
 <!--#include virtual="/2020/includes/banner.html"-->
 <!--#include virtual="/2020/includes/sidebar.html"-->
 
-##Please check for our confirmation email      
+##Please check for our confirmation email
 
 For your protection and to prevent spam, we don't process form
 submissions until you click the link in the confirmation email.
index 9302d78939e2af3ff9c3b45bdb3e4c1919589c95..6285a1a931d1682cdcc9be69be8c77c36d2c85fd 100644 (file)
@@ -5,10 +5,10 @@
 <!--#include virtual="/2020/includes/banner.html"-->
 <!--#include virtual="/2020/includes/sidebar.html"-->
 
-## Sorry, the feedback survey is now closed         
-    
+## Sorry, the feedback survey is now closed
+
 [Return to the home page](https://www.libreplanet.org/2020)
-    
+
 
 <!--#include virtual="/2020/includes/footer.html"-->
 <!--#include virtual="/2020/includes/common_js.html"-->
index a1d9637c5d83b4effff5a259748614b735c8ae24..11af19211694d79a08268a1e33f3b2dc8ba34454 100644 (file)
@@ -5,14 +5,14 @@
 <!--#include virtual="/2020/includes/banner.html"-->
 <!--#include virtual="/2020/includes/sidebar.html"-->
 
-## One more step! 
+## One more step!
 
 Thanks for filling out the survey. To process your answers, we
 need you to confirm your email address by clicking the link in
-the confirmation email we've just sent you.     
-    
+the confirmation email we've just sent you.
+
 **Please check your email now for the confirmation link.**
-    
+
 [Return to the homepage.](https://www.libreplanet.org/2020/)
 
 <!--#include virtual="/2020/includes/footer.html"-->
index 5e5944235963c266edc9a5707f718c525aea61fd..6d74969f25bf3e9bee691b98ee6480ddb223d104 100755 (executable)
@@ -24,19 +24,19 @@ Contents
 <a name="workshops"><h2>WORKSHOPS</h2></a>
   <h3>SATURDAY 10:40 - 12:10</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><h4>Keysigning</h4></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Justice Room</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><h4>Keysigning</h4></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Justice Room</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://static.fsf.org/nosvn/libreplanet/2020/assets/logo-lores.png">
  Dave Hunt
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
+
 <p>Increase the reliability of your email encryption key at a
 keysigning party Saturday morning while networking with other
 free software fans and supporters! We will be hosting a small
@@ -45,7 +45,7 @@ the Justice Room. Get as many people to sign your key as possible
 to increase your security, sense of mind, and free software cred.</p>
 
 <p><li><strong>Come prepared</strong> Print out your GPG key fingerprint on pieces of paper and bring an official ID. Instructions on how to actually verify someones GPG key are available on site. Read more <a href="https://emailselfdefense.fsf.org/en/">at Email Self Defense.</a></p>
-   
+
 </div></span>  </div>          </td>
               </tr>
       </tbody>
@@ -53,22 +53,22 @@ to increase your security, sense of mind, and free software cred.</p>
 </br>
   <h3>SUNDAY 10:40 - 12:10</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="/2020/speakers/#2855"><div id="2855"><h4>Music Blocks workshop</h4></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Justice Room</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="/2020/speakers/#2855"><div id="2855"><h4>Music Blocks workshop</h4></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Justice Room</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/profiles_ulibarri.jpg">
  Devin Ulibarri and Walter Bender
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
+
 <li><strong>Sign up:</strong> Place your name on the LibrePlanet wiki <a href="https://libreplanet.org/wiki/LibrePlanet:Conference/2020/Workshops">workshop
   signup</a> to secure your spot</li>
-   
+
 
 
 </div></span>  </div>          </td>
@@ -79,7 +79,7 @@ to increase your security, sense of mind, and free software cred.</p>
 </br>
 </br>
 
-<a name="social"><h2>SOCIAL EVENTS</h2></a> 
+<a name="social"><h2>SOCIAL EVENTS</h2></a>
 <h3>Friday night</h4>
 <ul>
 <h3>Open House</h3>
@@ -157,7 +157,7 @@ be provided! Please be aware that this is an alcohol-free event.</p>
 <li><strong>Time:</strong> 19:00 - 21:30, Saturday 3/14</li>
 <li><strong>Location:</strong> <a href="https://www.fsf.org/about/contact/">FSF Office</a></li>
 <li><strong>Signup:</strong> Not necessary</li>
-</ul> 
+</ul>
 <p>The office is at 51 Franklin Street, Fifth Floor, Boston, MA 02110.</li></p>
 </ul>
 
index d6b8e87fea15462c23493e804fcf856e45701f20..2e3293697fd01cdecbeedc1333487176784a64c9 100644 (file)
 
 #### Saturday night
 
-  * *Saturday night party, TIME TBA:* Join us Saturday night after the Free Software Awards to celebrate free software! We will have gratis snacks, and your first drink is on us. A full dinner menu is available for purchase. The venue is accessible, and all ages are welcome! The party venue will be announced shortly! 
+  * *Saturday night party, TIME TBA:* Join us Saturday night after the Free Software Awards to celebrate free software! We will have gratis snacks, and your first drink is on us. A full dinner menu is available for purchase. The venue is accessible, and all ages are welcome! The party venue will be announced shortly!
   * *Saturday, 19:00-21:30:* Looking for a little quieter social time? The FSF office will be open late for hacking and hanging out. Snacks, non-alcoholic drinks, and power will be provided. This is an alcohol-free event. The office is at 51 Franklin Street, Fifth Floor, Boston, MA 02110.
 
 #### Sunday night
 
   * Sunday, 21:00-23:30:</i> A Cambridge tradition! Rather than an official LibrePlanet event, this is a regular, unofficial gathering. Feel free to join Boston area free software enthusiasts and your new friends at Grendel's Den, located in Harvard Square. 89 Winthrop St, Cambridge, MA.
 
-###Organize your own social event! 
-If you are looking to organize your own dinner or meetup, you can do so using <a href="https://libreplanet.org/wiki/LibrePlanet:Conference/2020">the LibrePlanet wiki</a> 2020 conference social and dinner pages as a central place for communication about this. 
+###Organize your own social event!
+If you are looking to organize your own dinner or meetup, you can do so using <a href="https://libreplanet.org/wiki/LibrePlanet:Conference/2020">the LibrePlanet wiki</a> 2020 conference social and dinner pages as a central place for communication about this.
 
 <!--#include virtual="/2020/includes/footer.html"-->
 <!--#include virtual="/2020/includes/common_js.html"-->
index 49fe5b4cf299949ed2f8692ef760d7da90f2dbfa..e10709d39f389006bdb682c53c25127b2a9c9118 100755 (executable)
@@ -35,9 +35,9 @@
 <h3>Hostels</h3>
 
 <ul>
-  <li><a href="https://www.hiusa.org/hostels/massachusetts/boston/boston">HI Boston Hostel (Closest)</a> ($)</li> 
+  <li><a href="https://www.hiusa.org/hostels/massachusetts/boston/boston">HI Boston Hostel (Closest)</a> ($)</li>
   <li><a href="https://www.foundhotels.com/cities/boston/">Found Hostel</a> ($$)</li>
+
 <li>Other hostels a little farther out can be found at <a href="https://www.hostelworld.com/search?search_keywords=Boston,%20USA&country=USA&city=Boston&date_from=2020-03-14&date_to=2020-03-15&number_of_guests=1">HostelWorld</a></li>
 </ul>
 
@@ -48,7 +48,7 @@
   <li><a href="https://www.marriott.com/hotels/travel/bosbo-sheraton-boston-hotel/">The Sheraton</a> - Contemporary hotel (Marriott chain) Located centrally ($$)</li>
   <li><a href="https://bostonparkplaza.reztrip.com/classic/en/special_offer?action=show&controller=landings&locale=en&rate_code%5B%5D=SHOSP&rate_code%5B%5D=SHOSP&starting_page=special_offer&vr=3">Boston Park Plaza</a> price varies ($$$)</li>
 </ul>
-<p>&nbsp; 
+<p>&nbsp;
     <h2>Transportation</h2>
 
     <p>The easiest way to get around Boston/Cambridge is to use the <a href="http://www.mbta.com">MBTA</a>. Passes can be purchased with cash or credit/debit cards in stations. </p>
@@ -64,7 +64,7 @@
   <li>Cabs are located all over the city: at the airport and major subway stations.</li>
 <li>The <a href="http://www.mbta.com/schedules_and_maps/subway/lines/?route=BLUE">Blue Line</a> is a train, with a shuttle bus from Logan Airport to the Airport MBTA stop; the <a href="http://www.mbta.com/schedules_and_maps/subway/lines/?route=SILVER">Silver Line</a> is an expedited bus. The MBTA website provides a very <a href="http://www.mbta.com/riding_the_t/logan/">helpful page</a> on how to navigate via the Silver Line and Blue Line from the airport.</li>
   </ul>
-<p>&nbsp; 
+<p>&nbsp;
 <h3 id="getting-around"> Getting Around </h3>
 <!--     <h4 id="getting-around">Getting to LibrePlanet at the Back Bay Events Center</h4> -->
 
@@ -88,7 +88,7 @@
 
 <!--<p>Our <a href="#map">map</a> is useful for finding your way from the station to the conference.</p>
 -->
-<p>&nbsp; 
+<p>&nbsp;
 
       <h4 id="getting-around">Getting to the Free Software Foundation office</h4>
       <ul>
@@ -96,7 +96,7 @@
   <ul>
     <li>From North of the city, travel via <a href="http://www.mbta.com/schedules_and_maps/subway/lines/stations/?stopId=15583&amp;lat=42.365551&amp;lng=-71.061251">North Station</a> From there, take the Orange Line to <a href="http://www.mbta.com/schedules_and_maps/subway/lines/stations/?stopId=13771">Downtown Crossing</a> to reach the office. </li>
     <li>From south of the city, travel via <a href="http://www.mbta.com/schedules_and_maps/rail/lines/stations/?stopId=191">South Station.</a> Take the red line to <a href="https://www.mbta.com/stops/place-dwnxg?from=global-search&query=downtown&facets=stops%2Cfacet-station%2Cfacet-stop"> Downtown Crossing.</a></li>
-</ul>  
+</ul>
 
 Directions: Each of these subway stations is only a block away from the FSF. State Street and Government Center are also in easy walking distance.
             </ul>
@@ -104,7 +104,7 @@ Directions: Each of these subway stations is only a block away from the FSF. Sta
       <p>The door is unlocked during the day, so you can just come right on inside to the 5th floor. If the door happens to be locked, call us at +1 617 542 5942.</p>
 
   <p><b>If you have questions about traveling, contact us at <a href="mailto:campaigns@fsf.org">campaigns@fsf.org</a>.</b></p>
+
           </li>
       </ul>
 
index 07733950d685a4511cb56141637365a32ae20d2a..0d5f3a5f8e9cfe50a6a119822ce3d6b6a6784e31 100644 (file)
@@ -1,18 +1,18 @@
-      <!--pagestart-->    
-  
-  
-  
+      <!--pagestart-->
+
+
+
       <div class="view-content">
         <h3>Keynote Speakers</h3>
   <div class="views-row views-row-1 views-row-odd views-row-first">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="3282">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">For us, by us: Free technology, community science, and the pursuit of environmental problem solving</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#3282">Sunday 09:45 - 10:30 - Opening Keynote</a>
-<i class="glyphicon glyphicon-home"></i>: Back Bay Grand 
+<i class="glyphicon glyphicon-home"></i>: Back Bay Grand
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span>
 </div>
 <h2>Shannon  Dosemagen</h2></div>
 <div class="webform-long-answer">Shannon is an environmental health advocate and a community science champion, and is enthusiastic about the potential for free systems and technology to support the creation of a more just and equitable future.<br />\r
 <br />\r
-Shannon has spent the last twenty years working with environmental and public health groups to address declining freshwater resources, coastal land loss, and building monitoring programs with communities living adjacent to industrial facilities. During 2020, she will be a Fellow with the Shuttleworth Foundation, working on new concept called the Open Environmental Data Project. Shannon is co-founder and current executive director of Public Lab, an organizer of the Gathering for Open Science Hardware, and previous chair of both the US EPA National Advisory Council on Environmental Policy and Technology, and the Citizen Science Association. She is an Ashoka Fellow, and a senior Fellow of the Environmental Leadership Program. She is a previous Fellow at both the Harvard Berkman Klein Center for Internet and Society, and Loyola University Environmental Communications Institute. Follow her on Twitter @sdosemagen for the latest.</div> 
+Shannon has spent the last twenty years working with environmental and public health groups to address declining freshwater resources, coastal land loss, and building monitoring programs with communities living adjacent to industrial facilities. During 2020, she will be a Fellow with the Shuttleworth Foundation, working on new concept called the Open Environmental Data Project. Shannon is co-founder and current executive director of Public Lab, an organizer of the Gathering for Open Science Hardware, and previous chair of both the US EPA National Advisory Council on Environmental Policy and Technology, and the Citizen Science Association. She is an Ashoka Fellow, and a senior Fellow of the Environmental Leadership Program. She is a previous Fellow at both the Harvard Berkman Klein Center for Internet and Society, and Loyola University Environmental Communications Institute. Follow her on Twitter @sdosemagen for the latest.</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-2 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="3284">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Locking the Web open: A decentralized web that can operate as free software does</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#3284">Sunday 17:15 - 18:00 - Closing Keynote</a>
-<i class="glyphicon glyphicon-home"></i>: Back Bay Grand 
+<i class="glyphicon glyphicon-home"></i>: Back Bay Grand
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span>
 </div>
@@ -44,17 +44,17 @@ Shannon has spent the last twenty years working with environmental and public he
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/Brewster-Kahle.jpeg">
 <h2>Brewster  Kahle</h2></div>
-<div class="webform-long-answer">Brewster Kahle is a passionate advocate for public Internet access, and a successful entrepreneur, and he has spent his career intent on a singular focus: providing Universal Access to All Knowledge. He is the founder and Digital Librarian of the Internet Archive, one of the largest libraries in the world. Soon after graduating from the Massachusetts Institute of Technology, where he studied artificial intelligence, Kahle helped found the company Thinking Machines, a parallel supercomputer maker. In 1989, Kahle created the Internet&#039;s first publishing system, called Wide Area Information Server (WAIS), later selling the company to AOL. In 1996, Kahle co-founded Alexa Internet, which helps catalog the Web, selling it to Amazon.com in 1999. The Internet Archive, which he founded in 1996, now preserves 50 petabytes of data: the books, Web pages, music, television, and software of our cultural heritage, working with more than 600 library and university partners to create a digital library, accessible to all.</div> 
+<div class="webform-long-answer">Brewster Kahle is a passionate advocate for public Internet access, and a successful entrepreneur, and he has spent his career intent on a singular focus: providing Universal Access to All Knowledge. He is the founder and Digital Librarian of the Internet Archive, one of the largest libraries in the world. Soon after graduating from the Massachusetts Institute of Technology, where he studied artificial intelligence, Kahle helped found the company Thinking Machines, a parallel supercomputer maker. In 1989, Kahle created the Internet&#039;s first publishing system, called Wide Area Information Server (WAIS), later selling the company to AOL. In 1996, Kahle co-founded Alexa Internet, which helps catalog the Web, selling it to Amazon.com in 1999. The Internet Archive, which he founded in 1996, now preserves 50 petabytes of data: the books, Web pages, music, television, and software of our cultural heritage, working with more than 600 library and university partners to create a digital library, accessible to all.</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-3 views-row-odd views-row-last">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="3288">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Free the Future Young Hackers Keynote Panel</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#3288">Saturday 09:45 - 10:30 - Opening Keynote</a>
-<i class="glyphicon glyphicon-home"></i>: Back Bay Grand 
+<i class="glyphicon glyphicon-home"></i>: Back Bay Grand
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span>
 </div>
@@ -70,18 +70,18 @@ The panel will focus on topics that are crucial to the movement&#039;s continuin
 <br />\r
 Taowa is a (non-uploading) Debian Developer, sysadmin, and free software enthusiast. His interests are in privacy and security tools (and making these accessible to everyone), as well as amateur radio, networking and electronics. Did we mention he&#039;s not old enough to vote yet?<br />\r
 <br />\r
-Erin Moon is an engineer, student, musician, and very tired. She&#039;s used, contributed to, and developed free software since she was a small kid. Over the last three years, her open source work has focused on federated social media software, as a user, contributor, and maintainer. Her other personal work includes digital signal processing research for musical purposes, ROM hacking, operating system development, and electrical hardware engineering.</div> 
+Erin Moon is an engineer, student, musician, and very tired. She&#039;s used, contributed to, and developed free software since she was a small kid. Over the last three years, her open source work has focused on federated social media software, as a user, contributor, and maintainer. Her other personal work includes digital signal processing research for musical purposes, ROM hacking, operating system development, and electrical hardware engineering.</div>
 </div></span>  </div>  </div>
   <h3>Speakers</h3>
   <div class="views-row views-row-1 views-row-odd views-row-first">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="3289">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Fediverse: Decentralized Social Networking and Services</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#3289">Sunday 14:30 - 15:15</a>
-<i class="glyphicon glyphicon-home"></i>: Back Bay Grand 
+<i class="glyphicon glyphicon-home"></i>: Back Bay Grand
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -108,17 +108,17 @@ He is chairman of the Phoenix Linux User Group (PLUG), Promotions and Outreach c
 Currently a Customer Data Engineer at Object Rocket. Public statements are not representative of $dayjob. <br />\r
 <br />\r
 Mastodon - https://floss.social/@FLOX_advocate<br />\r
-Plume - https://fediverse.blog/~/LuftHans</div> 
+Plume - https://fediverse.blog/~/LuftHans</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-2 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2666">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Free software for minorities in Turkey in their own languages</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2666">Sunday 11:35 - 12:20</a>
-<i class="glyphicon glyphicon-home"></i>: Patriot 
+<i class="glyphicon glyphicon-home"></i>: Patriot
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -140,17 +140,17 @@ power. Failed again, kept learning and became a part of hacker<br />
 community. Graduated from Law faculty, become a lawyer and applies his<br />\r
 technological knowledge to law. Strict online privacy advocate, free<br />\r
 software user/advocate, Hackerspace Istanbul (hs.ist) member and very<br />\r
-interested in anything encrypted.</div> 
+interested in anything encrypted.</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-3 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2680">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Lessons learned from cultivating free software projects and communities</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2680">Saturday 13:35 - 14:20</a>
-<i class="glyphicon glyphicon-home"></i>: Back Bay Grand 
+<i class="glyphicon glyphicon-home"></i>: Back Bay Grand
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -162,17 +162,17 @@ interested in anything encrypted.</div>
 <h2>JJ  Asghar</h2></div>
 <div class="webform-long-answer">JJ works on the IBM cloud as a developer advocate. He’s focusing on the IBM Kubernetes service, trying to help companies and users have a successful onboarding to the Cloud Native ecosystem.<br />\r
 <br />\r
-He lives and grew up in Austin, Texas. He enjoys a good strong stout, a hoppy IPA, and Dwarf Fortress, Rimworld, and Factorio. He’s a member of the Church of Emacs, though he jumps into Vim on remote machines. He usually chooses Ubuntu over CentOS, but secretly wants FreeBSD everywhere. He’s always trying to become a better Ruby developer, but experiments with Go, Python, and only when he has to, Node. A father and husband, if he’s not trying to automate his job away, he’s always trying to convince his daughters to “be button makers, not button pushers.”</div> 
+He lives and grew up in Austin, Texas. He enjoys a good strong stout, a hoppy IPA, and Dwarf Fortress, Rimworld, and Factorio. He’s a member of the Church of Emacs, though he jumps into Vim on remote machines. He usually chooses Ubuntu over CentOS, but secretly wants FreeBSD everywhere. He’s always trying to become a better Ruby developer, but experiments with Go, Python, and only when he has to, Node. A father and husband, if he’s not trying to automate his job away, he’s always trying to convince his daughters to “be button makers, not button pushers.”</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-4 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="3269">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">How to make more users love free software</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#3269">Sunday 13:35 - 14:20</a>
-<i class="glyphicon glyphicon-home"></i>: Patriot 
+<i class="glyphicon glyphicon-home"></i>: Patriot
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -188,17 +188,17 @@ This talk covers the love story between free software and usability and how easi
 <br />\r
 At this point, Clarissa heard about Outreachy and found a Usability Research project to GNOME. This was the perfect occasion to contribute to a software she has been using for so many years and learn how to improve usability on software products. From December 2018 to March 2019, she worked running usability tests to some important GNOME programs, such as Settings, Notes, Nautilus/ Files, Calendar and Gedit.<br />\r
 <br />\r
-After the internship, she wanted to help GNOME with frequent usability tests contributions. To archieve that, she has been working on her undergraduate thesis to find a solution to facilitate to non-technical people to contribute with usability tests. She has also been contributing to GNOME, encouraging people to become contributors and being active on GNOME&#039;s Brazilian community. </div> 
+After the internship, she wanted to help GNOME with frequent usability tests contributions. To archieve that, she has been working on her undergraduate thesis to find a solution to facilitate to non-technical people to contribute with usability tests. She has also been contributing to GNOME, encouraging people to become contributors and being active on GNOME&#039;s Brazilian community. </div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-5 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2572">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Free software for community radio: LibreTime and other software tools</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2572">Saturday 15:25 - 16:10</a>
-<i class="glyphicon glyphicon-home"></i>: Back Bay Grand 
+<i class="glyphicon glyphicon-home"></i>: Back Bay Grand
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -208,17 +208,17 @@ After the internship, she wanted to help GNOME with frequent usability tests con
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/D3003C9E-85A9-45BC-A451-9C6D4A58A8EC.jpeg">
 <h2>Robb  Ebright</h2></div>
-<div class="webform-long-answer">Robb Ebright is a longtime free software developer and community media activist. For over ten years, he has helped run WCRS-LP, a community radio station in Columbus, Ohio. He has volunteered as a webmaster for community media projects and activist groups for over twenty years. Currently, he is a full-time parent working on his masters in computer science at Georgia Tech. </div> 
+<div class="webform-long-answer">Robb Ebright is a longtime free software developer and community media activist. For over ten years, he has helped run WCRS-LP, a community radio station in Columbus, Ohio. He has volunteered as a webmaster for community media projects and activist groups for over twenty years. Currently, he is a full-time parent working on his masters in computer science at Georgia Tech. </div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-6 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2334">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Free software and the digital divide</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2334">Sunday 13:35 - 14:20</a>
-<i class="glyphicon glyphicon-home"></i>: Back Bay Grand 
+<i class="glyphicon glyphicon-home"></i>: Back Bay Grand
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -236,17 +236,17 @@ ethos, environmental stewardship, and building technological resiliency for marg
 <br />\r
 For the past five years, he has also been the project lead of Digital Storytelling Toronto, an initiative aimed at increasing digital literacy through storytelling in community and nonprofit organizations. Through this work, he has completed projects with the University of Toronto Scarborough, Brock University, East Scarborough Storefront, Children&#039;s Hospital of Eastern Ontario, and Holland Bloorview Kids Rehabilitation Hospital.<br />\r
 <br />\r
-Ryan holds an Honours Bachelor of Arts from the University of Toronto, and a Bachelor of Education from the University of Windsor, along with years of experience managing small business IT infrastructure.</div> 
+Ryan holds an Honours Bachelor of Arts from the University of Toronto, and a Bachelor of Education from the University of Windsor, along with years of experience managing small business IT infrastructure.</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-7 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2856">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Free software enables free science</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2856">Saturday 15:25 - 16:10</a>
-<i class="glyphicon glyphicon-home"></i>: Freedom 
+<i class="glyphicon glyphicon-home"></i>: Freedom
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -256,17 +256,17 @@ Ryan holds an Honours Bachelor of Arts from the University of Toronto, and a Bac
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/paulgazz.jpg">
 <h2>Paul  Gazzillo</h2></div>
-<div class="webform-long-answer">Paul Gazzillo is an assistant professor of computer science at University of Central Florida. His research aims to make it easier to develop safe and secure software, and it spans programming languages, security, software engineering, and systems. Projects include analysis of configurable systems, side-channel attack detection, and concurrent smart contracts.</div> 
+<div class="webform-long-answer">Paul Gazzillo is an assistant professor of computer science at University of Central Florida. His research aims to make it easier to develop safe and secure software, and it spans programming languages, security, software engineering, and systems. Projects include analysis of configurable systems, side-channel attack detection, and concurrent smart contracts.</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-8 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2692">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Rented future: The dangerous rise of life as a service</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2692">Saturday 10:40 - 11:25</a>
-<i class="glyphicon glyphicon-home"></i>: Freedom 
+<i class="glyphicon glyphicon-home"></i>: Freedom
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span>
 </div>
@@ -276,17 +276,17 @@ Ryan holds an Honours Bachelor of Arts from the University of Toronto, and a Bac
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/lucy-ingham.jpg">
 <h2>Lucy  Ingham</h2></div>
-<div class="webform-long-answer">Lucy Ingham is a technology journalist and the editor of the Web site and digital magazine &quot;Verdict.&quot; She is the former editor of the futurist site &quot;Factor,&quot; and she specializes in exploring how technology is shaping the world we live in. </div> 
+<div class="webform-long-answer">Lucy Ingham is a technology journalist and the editor of the Web site and digital magazine &quot;Verdict.&quot; She is the former editor of the futurist site &quot;Factor,&quot; and she specializes in exploring how technology is shaping the world we live in. </div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-9 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2599">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Field notes from a digital rights activist</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2599">Saturday 11:35 - 12:20</a>
-<i class="glyphicon glyphicon-home"></i>: Freedom 
+<i class="glyphicon glyphicon-home"></i>: Freedom
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -296,17 +296,17 @@ Ryan holds an Honours Bachelor of Arts from the University of Toronto, and a Bac
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/signal-attachment-2019-10-19-144649.jpeg">
 <h2>Giselle  Jhunjhnuwala</h2></div>
-<div class="webform-long-answer">Giselle is an artist, self-taught programmer, and Outreachy alumna. They like to explore the intersections of art, science, and technology, and have been exclusively using free software in their practice for several years. They have worked in technology and at an import/export multinational company, which enabled them to travel back and forth between China and the US. They are a member of the Pittsburgh Restore the Fourth chapter, The Big Idea (a collectively run bookstore), and the Stranger Company Art Collective. In their spare time, they volunteer for various free software projects such as Mediawiki, and write songs about PGP. They have exhibited at a number of private and state galleries in China, as well as in the US.</div> 
+<div class="webform-long-answer">Giselle is an artist, self-taught programmer, and Outreachy alumna. They like to explore the intersections of art, science, and technology, and have been exclusively using free software in their practice for several years. They have worked in technology and at an import/export multinational company, which enabled them to travel back and forth between China and the US. They are a member of the Pittsburgh Restore the Fourth chapter, The Big Idea (a collectively run bookstore), and the Stranger Company Art Collective. In their spare time, they volunteer for various free software projects such as Mediawiki, and write songs about PGP. They have exhibited at a number of private and state galleries in China, as well as in the US.</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-10 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2528">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Transparent code, secure data: Selling free software to the US Government, our bosses, and ourselves</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2528">Saturday 10:40 - 11:25</a>
-<i class="glyphicon glyphicon-home"></i>: Patriot 
+<i class="glyphicon glyphicon-home"></i>: Patriot
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack5">Free software in Government</span>
 </div>
@@ -322,17 +322,17 @@ Karen studied art history at Bard College, but soon fell in love with technology
 <br />\r
 This talk will be co-presented with Fen Labalme, who loves to create solutions for problems before they arise. His current mission is to empower better government by delivering free software security and compliance solutions that improve upon previous proprietary systems. He’s also working on automating the ATO process, making it easier for agencies to do business securely. He applies over twenty years of IT experience (and a relentless sense of humor) to mentor CivicActions engineers in creating modern, secure systems for clients.<br />\r
 <br />\r
-Fen is a Certified Information System Security Professional (CISSP) and a long-time advocate of handling information wisely. His computer science and electrical engineering thesis at MIT presaged the privacy concerns facing today’s Internet and social media platforms. His close-knit family enjoys traveling to historic locations, campaigning for a greener Earth, and playing/cheering at hockey games.</div> 
+Fen is a Certified Information System Security Professional (CISSP) and a long-time advocate of handling information wisely. His computer science and electrical engineering thesis at MIT presaged the privacy concerns facing today’s Internet and social media platforms. His close-knit family enjoys traveling to historic locations, campaigning for a greener Earth, and playing/cheering at hockey games.</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-11 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2748">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Preventing the IoT Dystopia with Copyleft</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2748">Saturday 14:30 - 15:15</a>
-<i class="glyphicon glyphicon-home"></i>: Back Bay Grand 
+<i class="glyphicon glyphicon-home"></i>: Back Bay Grand
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span>
 </div>
@@ -346,17 +346,17 @@ This talk explains the political, social, and legal ramifications of this abysma
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/bkuhn-photo-2017.jpg">
 <h2>Bradley  Kuhn</h2></div>
-<div class="webform-long-answer">Bradley M. Kuhn is the policy fellow and hacker-in-residence at Software Freedom Conservancy, and editor in chief of copyleft.org. Kuhn began his work in the software freedom movement as a volunteer in 1992, and was an early adopter of GNU/Linux systems. Kuhn&#039;s nonprofit career began in 2000 at the FSF. As FSF&#039;s executive director from 2001-2005, Kuhn led FSF&#039;s GPL enforcement, and invented the Affero GPL. Kuhn began as Conservancy&#039;s primary volunteer from 2006-2010, and was its first staff person. Kuhn holds a summa cum laude BS in computer science from Loyola University in Maryland, and an MS in computer science from the University of Cincinnati.</div> 
+<div class="webform-long-answer">Bradley M. Kuhn is the policy fellow and hacker-in-residence at Software Freedom Conservancy, and editor in chief of copyleft.org. Kuhn began his work in the software freedom movement as a volunteer in 1992, and was an early adopter of GNU/Linux systems. Kuhn&#039;s nonprofit career began in 2000 at the FSF. As FSF&#039;s executive director from 2001-2005, Kuhn led FSF&#039;s GPL enforcement, and invented the Affero GPL. Kuhn began as Conservancy&#039;s primary volunteer from 2006-2010, and was its first staff person. Kuhn holds a summa cum laude BS in computer science from Loyola University in Maryland, and an MS in computer science from the University of Cincinnati.</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-12 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2775">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Keeping secrets: What you need to know about encryption</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2775">Saturday 11:35 - 12:20</a>
-<i class="glyphicon glyphicon-home"></i>: Back Bay Grand 
+<i class="glyphicon glyphicon-home"></i>: Back Bay Grand
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span>
 </div>
@@ -368,17 +368,17 @@ This talk will cover the basics of a topic extensive enough to spend years study
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/DeeDeeLavinder.png">
 <h2>DeeDee  Lavinder</h2></div>
-<div class="webform-long-answer">DeeDee Lavinder currently works as a backend engineer, and is a director of Women Who Code Raleigh/Durham. The juxtaposition of analytical thinking and creative problem solving is where she is happiest, and she is particularly thrilled about working in that sweet spot while writing code. When something is hard, she goes deep to understand -- ask her about encoding! When not coding, you can find her listening to audiobooks, driving small people around town, or coordinating something somewhere.</div> 
+<div class="webform-long-answer">DeeDee Lavinder currently works as a backend engineer, and is a director of Women Who Code Raleigh/Durham. The juxtaposition of analytical thinking and creative problem solving is where she is happiest, and she is particularly thrilled about working in that sweet spot while writing code. When something is hard, she goes deep to understand -- ask her about encoding! When not coding, you can find her listening to audiobooks, driving small people around town, or coordinating something somewhere.</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-13 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2710">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Secure Scuttlebutt: Peer-to-peer collaboration and community infrastructure</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2710">Sunday 15:25 - 16:10</a>
-<i class="glyphicon glyphicon-home"></i>: Patriot 
+<i class="glyphicon glyphicon-home"></i>: Patriot
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -388,17 +388,17 @@ This talk will cover the basics of a topic extensive enough to spend years study
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/cel.jpg">
 <h2>Charles  Lehner</h2></div>
-<div class="webform-long-answer">Charles E. Lehner (@cel) is a software developer building collaborative applications on the Secure Scuttlebutt Network.</div> 
+<div class="webform-long-answer">Charles E. Lehner (@cel) is a software developer building collaborative applications on the Secure Scuttlebutt Network.</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-14 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2743">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">How to teach students about free software</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2743">Saturday 11:35 - 12:20</a>
-<i class="glyphicon glyphicon-home"></i>: Patriot 
+<i class="glyphicon glyphicon-home"></i>: Patriot
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span>
 </div>
@@ -410,17 +410,17 @@ This presentation will explain effective strategies to teach the next generation
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/IMG_20191119_105151174_Headshot.jpg">
 <h2>William  Liggett</h2></div>
-<div class="webform-long-answer">William Paul Liggett is a software engineering professor at the Northern Virginia Community College, where he teaches classes on Java, Python, HTML5/CSS3/JavaScript, Relational Databases, Cybersecurity, and GNU/Linux. He also is the owner and coder of junktext.com, where he does freelance development for others. William previously worked in the US defense and intelligence communities as a software developer, IT project manager, and systems administrator. He served in the US Marine Corps, where he was meritoriously promoted to Sergeant (E-5). He is also very skilled at amazing and very funny jokes!</div> 
+<div class="webform-long-answer">William Paul Liggett is a software engineering professor at the Northern Virginia Community College, where he teaches classes on Java, Python, HTML5/CSS3/JavaScript, Relational Databases, Cybersecurity, and GNU/Linux. He also is the owner and coder of junktext.com, where he does freelance development for others. William previously worked in the US defense and intelligence communities as a software developer, IT project manager, and systems administrator. He served in the US Marine Corps, where he was meritoriously promoted to Sergeant (E-5). He is also very skilled at amazing and very funny jokes!</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-15 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="3272">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">The Four Free-ums?</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#3272">Sunday 15:25 - 16:10</a>
-<i class="glyphicon glyphicon-home"></i>: Back Bay Grand 
+<i class="glyphicon glyphicon-home"></i>: Back Bay Grand
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span>
 </div>
@@ -430,17 +430,17 @@ This presentation will explain effective strategies to teach the next generation
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/masson.png">
 <h2>Patrick  Masson</h2></div>
-<div class="webform-long-answer">Patrick Masson joined the Open Source Initiative as General Manager in November of 2013 after working in higher education technology for over twenty years, including roles as Director of the UCLA Media Lab, CIO within The State University of New York, and most recently, CTO at UMassOnline. Patrick is an Adjunct Professor at the University at Albany, teaching Open Source Principles and Practices within the College of Engineering and Applied Sciences&#039; Department of Informatics. Patrick has worked to promote the awareness and adoption of open source, particularly within education, throughout his career. He served on the Jasig Foundation&#039;s Board of Directors, and is currently on the Apereo Foundation&#039;s Advisory Council as well as Brandeis University&#039;s Graduate Professional Studies Advisory Board. He is the co-founder of the Educause Constituency Group on Openness. Patrick was also elected to his local Board of Education in 2014.</div> 
+<div class="webform-long-answer">Patrick Masson joined the Open Source Initiative as General Manager in November of 2013 after working in higher education technology for over twenty years, including roles as Director of the UCLA Media Lab, CIO within The State University of New York, and most recently, CTO at UMassOnline. Patrick is an Adjunct Professor at the University at Albany, teaching Open Source Principles and Practices within the College of Engineering and Applied Sciences&#039; Department of Informatics. Patrick has worked to promote the awareness and adoption of open source, particularly within education, throughout his career. He served on the Jasig Foundation&#039;s Board of Directors, and is currently on the Apereo Foundation&#039;s Advisory Council as well as Brandeis University&#039;s Graduate Professional Studies Advisory Board. He is the co-founder of the Educause Constituency Group on Openness. Patrick was also elected to his local Board of Education in 2014.</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-16 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2721">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Platform cooperativism, surveillance capitalism, predictive analysis, and you</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2721">Saturday 16:20 - 17:05</a>
-<i class="glyphicon glyphicon-home"></i>: Back Bay Grand 
+<i class="glyphicon glyphicon-home"></i>: Back Bay Grand
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -452,17 +452,17 @@ This presentation will explain effective strategies to teach the next generation
 <h2>Micky  Metts</h2></div>
 <div class="webform-long-answer">Micky is a worker/owner of Agaric (agaric.coop) and a member of the “free software for<br />\r
 community building” movement, using free software tools like VOIP, Drupal, and GNU/Linux. She is a liaison between the US Solidarity Economy Network (SEN), a group devoted to ongoing dialogue on building the new economy network, and the US Federation of Worker Cooperatives (USFWC), the national grassroots organization of US worker-owners who are “building power<br />\r
-with national and international partners to advance an agenda for economic justice rooted in community-based shared ownership.” As a board member of the MayFirst Technology Movement cooperative, Micky works with technical activists to connect people with the information and tools they need to move from being a global network to becoming a global movement based on solidarity.</div> 
+with national and international partners to advance an agenda for economic justice rooted in community-based shared ownership.” As a board member of the MayFirst Technology Movement cooperative, Micky works with technical activists to connect people with the information and tools they need to move from being a global network to becoming a global movement based on solidarity.</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-17 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2724">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">The importance of free software games</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2724">Sunday 14:30 - 15:15</a>
-<i class="glyphicon glyphicon-home"></i>: Patriot 
+<i class="glyphicon glyphicon-home"></i>: Patriot
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span>
 </div>
@@ -473,17 +473,17 @@ with national and international partners to advance an agenda for economic justi
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/nov2019.jpg">
 <h2>Lori  Nagel</h2></div>
 <div class="webform-long-answer">Lori Nagel has worked on and off on the free software multi-player online role playing game project “Wograld,” which you can learn about at wograld.org. She has also written a free culture Web cartoon (see jastiv.com) and a free culture novel (see jastiv.blogspot.com/2019/03/free-culture-novels-where-to-post-them.html).<br />\r
-</div> 
+</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-18 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2744">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">GNU Health Embedded: An introduction</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2744">Sunday 13:35 - 14:20</a>
-<i class="glyphicon glyphicon-home"></i>: Freedom 
+<i class="glyphicon glyphicon-home"></i>: Freedom
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -495,17 +495,17 @@ This shift includes an increased focus on privacy and security, allowing GNU Hea
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/sean-obrien-02.jpg">
 <h2>Sean  O&#039;Brien</h2></div>
-<div class="webform-long-answer">Sean O&#039;Brien is a lecturer in law at Yale Law School with expertise in cybersecurity and mobile device forensics. Sean founded Yale Privacy Lab, where his research includes privacy auditing of Android apps. His current focus is IoT device security, work that has culminated in the PrivacySafe appliance and the GNU Health Embedded effort for the platform.</div> 
+<div class="webform-long-answer">Sean O&#039;Brien is a lecturer in law at Yale Law School with expertise in cybersecurity and mobile device forensics. Sean founded Yale Privacy Lab, where his research includes privacy auditing of Android apps. His current focus is IoT device security, work that has culminated in the PrivacySafe appliance and the GNU Health Embedded effort for the platform.</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-19 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2389">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Free software game restoration</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2389">Sunday 11:35 - 12:20</a>
-<i class="glyphicon glyphicon-home"></i>: Freedom 
+<i class="glyphicon glyphicon-home"></i>: Freedom
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span>
 </div>
@@ -515,17 +515,17 @@ This shift includes an increased focus on privacy and security, allowing GNU Hea
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://static.fsf.org/nosvn/libreplanet/2020/assets/logo-lores.png">
 <h2>Dennis  Payne</h2></div>
-<div class="webform-long-answer">Dennis Payne is a free software game developer in his spare time. He has started Bt Builder and Troll Bridge, and maintains several other games he has stumbled across. &quot;Open Game Source&quot; is a series of articles about his game development efforts.</div> 
+<div class="webform-long-answer">Dennis Payne is a free software game developer in his spare time. He has started Bt Builder and Troll Bridge, and maintains several other games he has stumbled across. &quot;Open Game Source&quot; is a series of articles about his game development efforts.</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-20 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="3270">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Lightning talks</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#3270">Sunday 15:25 - 16:10</a>
-<i class="glyphicon glyphicon-home"></i>: Freedom 
+<i class="glyphicon glyphicon-home"></i>: Freedom
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span>
 </div>
@@ -548,17 +548,17 @@ You should upload your video to our ftp server:<br />
     Port: `22`<br />\r
     Folder: `upload-here`<br />\r
 <br />\r
-When you are done uploading email campaigns@fsf.org to let us know what video file to use.</div> 
+When you are done uploading email campaigns@fsf.org to let us know what video file to use.</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-21 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2332">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Public Invention: Free hardware inventions “in the public, for the public”</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2332">Sunday 16:20 - 17:05</a>
-<i class="glyphicon glyphicon-home"></i>: Patriot 
+<i class="glyphicon glyphicon-home"></i>: Patriot
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -570,17 +570,17 @@ This talk will be accompanied by a demonstration of physical devices that embody
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://static.fsf.org/nosvn/libreplanet/2020/assets/logo-lores.png">
 <h2>Robert  Read</h2></div>
-<div class="webform-long-answer">Robert L. Read, PhD (computer science), after serving in director-level software engineering architecture and management positions, was a Presidential Innovation Fellow in 2013, where he advocated free software in the US federal government. He is a champion of Agile software development methods, an inventor, and a thought-leader. He holds two patents in optics. His most popular publication is “How to be a Programmer.” He began Public Invention in 2015 to produce free-libre hardware inventions and mathematical progress, and the project has mentored about eight students and produced two peer-reviewed papers so far. Rob is also the chief scientist of Skylight Digital, and CTO of Wacuri, Inc. He speaks Esperanto fluently.</div> 
+<div class="webform-long-answer">Robert L. Read, PhD (computer science), after serving in director-level software engineering architecture and management positions, was a Presidential Innovation Fellow in 2013, where he advocated free software in the US federal government. He is a champion of Agile software development methods, an inventor, and a thought-leader. He holds two patents in optics. His most popular publication is “How to be a Programmer.” He began Public Invention in 2015 to produce free-libre hardware inventions and mathematical progress, and the project has mentored about eight students and produced two peer-reviewed papers so far. Rob is also the chief scientist of Skylight Digital, and CTO of Wacuri, Inc. He speaks Esperanto fluently.</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-22 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2539">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Digital painting with Krita on GNU/Linux: cute creature concept-art</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2539">Saturday 10:40 - 11:25</a>
-<i class="glyphicon glyphicon-home"></i>: Back Bay Grand 
+<i class="glyphicon glyphicon-home"></i>: Back Bay Grand
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -590,17 +590,17 @@ This talk will be accompanied by a demonstration of physical devices that embody
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/David-Revoy_profile-2018.jpg">
 <h2>David  Revoy</h2></div>
-<div class="webform-long-answer">David Revoy is a French digital artist, and a pioneer in the usage of a 100% libre workflow for digital painting in a professional environment. Revoy is a Krita instructor, and an art director for the Blender Foundation on Sintel and Spring open movies. He was a concept-artist for works including “Tears of Steel” and “Cosmos Laundromat.” He is also an illustrator for the Contributopia Campaign by Framasoft, and of course, the founder of the free (libre) Web comic “Pepper and Carrot.”</div> 
+<div class="webform-long-answer">David Revoy is a French digital artist, and a pioneer in the usage of a 100% libre workflow for digital painting in a professional environment. Revoy is a Krita instructor, and an art director for the Blender Foundation on Sintel and Spring open movies. He was a concept-artist for works including “Tears of Steel” and “Cosmos Laundromat.” He is also an illustrator for the Contributopia Campaign by Framasoft, and of course, the founder of the free (libre) Web comic “Pepper and Carrot.”</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-23 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2686">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Bicycles as a metaphor for free software</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2686">Saturday 14:30 - 15:15</a>
-<i class="glyphicon glyphicon-home"></i>: Freedom 
+<i class="glyphicon glyphicon-home"></i>: Freedom
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span>
 </div>
@@ -621,17 +621,17 @@ He attends, organizes, and speaks worldwide at: conferences, conventions, events
 <br />\r
 /?/ Kilted Globetrotter,<br />\r
 Free/Libre/Open Advocate<br />\r
-and Lifelong Hacker /?/</div> 
+and Lifelong Hacker /?/</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-24 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2778">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Font Bakery: Gathering font engineering knowledge while improving a large collection of libre fonts</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2778">Saturday 13:35 - 14:20</a>
-<i class="glyphicon glyphicon-home"></i>: Freedom 
+<i class="glyphicon glyphicon-home"></i>: Freedom
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -643,17 +643,17 @@ This talk will discuss the challenges in gathering font engineering knowledge, a
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/FSanches-300x300_C.png">
 <h2>Felipe  Sanches</h2></div>
-<div class="webform-long-answer">Felipe Sanches is a software freedom activist and developer with contributions to the development of graphic design, CAD, 3D printing, and 3D modeling libre software such as Inkscape, OpenSCAD, and GNU LibreDWG. During the last few years, Felipe has provided professional libre software development services focused on font engineering and quality assurance for fonts. You can learn more about his work at https://www.fsf.org/working-together/profiles/felipe-sanches.</div> 
+<div class="webform-long-answer">Felipe Sanches is a software freedom activist and developer with contributions to the development of graphic design, CAD, 3D printing, and 3D modeling libre software such as Inkscape, OpenSCAD, and GNU LibreDWG. During the last few years, Felipe has provided professional libre software development services focused on font engineering and quality assurance for fonts. You can learn more about his work at https://www.fsf.org/working-together/profiles/felipe-sanches.</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-25 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2361">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">The Gandhian way to freedom and privacy</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2361">Sunday 10:40 - 11:25</a>
-<i class="glyphicon glyphicon-home"></i>: Freedom 
+<i class="glyphicon glyphicon-home"></i>: Freedom
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -670,17 +670,17 @@ He is co-founder and tech lead at Unmukti Technology, in India, where he works o
 <br />\r
 Nishant was lead translator for Debian Installer l10n to Hindi during 2006-07, and a OpenStreetMap volunteer mapper. He actively contributes to the OpenWrt project and its packages.<br />\r
 <br />\r
-These days, he tries to build awareness for building network equipment and self-hosting among students and enterprise decision makers. </div> 
+These days, he tries to build awareness for building network equipment and self-hosting among students and enterprise decision makers. </div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-26 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2450">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Patents and freedom: Where we stand now</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2450">Sunday 10:40 - 11:25</a>
-<i class="glyphicon glyphicon-home"></i>: Patriot 
+<i class="glyphicon glyphicon-home"></i>: Patriot
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span>
 </div>
@@ -690,17 +690,17 @@ These days, he tries to build awareness for building network equipment and self-
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/Headshot 1 2017 small.jpg">
 <h2>McCoy  Smith</h2></div>
-<div class="webform-long-answer">McCoy Smith is the founding attorney at Lex Pan Law, a technology and intellectual property law firm in Portland, Oregon, USA. He also is on the editorial committee of the Journal of Open Law, Technology, &amp; Society (JOLTS). For more than fifteen years, he acted as the primary support attorney for free software matters at Intel Corporation. Prior to joining Intel, he was in private practice in New York, NY and Washington, DC, specializing in IP litigation and patent prosecution. He was also a patent examiner in the US Patent and Trademark Office prior to law school. He is admitted to practice in New York, California, Oregon, and the US Patent &amp; Trademark Office.</div> 
+<div class="webform-long-answer">McCoy Smith is the founding attorney at Lex Pan Law, a technology and intellectual property law firm in Portland, Oregon, USA. He also is on the editorial committee of the Journal of Open Law, Technology, &amp; Society (JOLTS). For more than fifteen years, he acted as the primary support attorney for free software matters at Intel Corporation. Prior to joining Intel, he was in private practice in New York, NY and Washington, DC, specializing in IP litigation and patent prosecution. He was also a patent examiner in the US Patent and Trademark Office prior to law school. He is admitted to practice in New York, California, Oregon, and the US Patent &amp; Trademark Office.</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-27 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2725">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Stewarding technological freedom in agriculture</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2725">Saturday 14:30 - 15:15</a>
-<i class="glyphicon glyphicon-home"></i>: Patriot 
+<i class="glyphicon glyphicon-home"></i>: Patriot
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -718,17 +718,17 @@ This session will feature two additional panelists:<br />
 <br />\r
 * Don Blair builds free software-compatible hardware systems for agriculture in collaboration with farmers and researchers. <br />\r
 <br />\r
-All three presenters are members of the Gathering for Open Ag Tech (GOAT / goatech.org).</div> 
+All three presenters are members of the Gathering for Open Ag Tech (GOAT / goatech.org).</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-28 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2769">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Community healing: Re-establishing norms, trust, and truth after crises</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2769">Sunday 16:20 - 17:05</a>
-<i class="glyphicon glyphicon-home"></i>: Back Bay Grand 
+<i class="glyphicon glyphicon-home"></i>: Back Bay Grand
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -740,17 +740,17 @@ In this talk, we&#039;ll explore practical approaches for community leaders, mod
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/DIYspinningwheel.png">
 <h2>Katheryn  Sutter</h2></div>
-<div class="webform-long-answer">Katheryn Sutter is an indefatigable DIY tinkerer, and a user of free software and Debian OS for day-to-day computing since 2003. She holds a PhD in community development and policy analysis, and a BS in human resources and family studies. Her fields of expertise include consensus-building,  nonprofit board training, qualitative data analysis, and democratic theory.</div> 
+<div class="webform-long-answer">Katheryn Sutter is an indefatigable DIY tinkerer, and a user of free software and Debian OS for day-to-day computing since 2003. She holds a PhD in community development and policy analysis, and a BS in human resources and family studies. Her fields of expertise include consensus-building,  nonprofit board training, qualitative data analysis, and democratic theory.</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-29 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2855">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Sugar Labs -- Past, Present, and Future</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2855">Sunday 14:30 - 15:15</a>
-<i class="glyphicon glyphicon-home"></i>: Freedom 
+<i class="glyphicon glyphicon-home"></i>: Freedom
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -762,17 +762,17 @@ In this talk, we&#039;ll explore practical approaches for community leaders, mod
 <h2>Devin  Ulibarri</h2></div>
 <div class="webform-long-answer">Devin is co-creator of Music Blocks, a visual programming language for music created with Walter Bender as a SugarLabs project. He is co-founder and president of MAP Family Learning Center, which seeks to improve child development by offering high-quality classes in music, art, and programming. Devin is former chair of guitar for prep and continuing ed at New England Conservatory. Devin serves as co-admin and faculty for Boston GuitarFest, a prestigious festival directed by renowned guitarist Eliot Fisk.<br />\r
 <br />\r
-SugarLabs founder Walter Bender will be co-hosting this presentation.</div> 
+SugarLabs founder Walter Bender will be co-hosting this presentation.</div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-30 views-row-even views-row-last">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2591">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">LibreOffice&#039;s tenth anniversary: The many faces of a global free software community</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2591">Saturday 16:20 - 17:05</a>
-<i class="glyphicon glyphicon-home"></i>: Freedom 
+<i class="glyphicon glyphicon-home"></i>: Freedom
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -782,17 +782,17 @@ SugarLabs founder Walter Bender will be co-hosting this presentation.</div>
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/bergamo.jpg">
 <h2>Italo  Vignoli</h2></div>
-<div class="webform-long-answer">Italo Vignoli is a founding member of The Document Foundation, the chairman emeritus of Associazione LibreItalia, an emeritus member of the OSI board, and co-chair of the ODF Advocacy OASIS Open Project. He co-leads LibreOffice marketing, public relations, and media relations, co-chairs the certification program, and is a spokesman for the project. He has contributed to large migration projects to LibreOffice in Italy, and is a LibreOffice certified migrator and trainer. From 2004 to 2010, he has been involved in the OOo project. In his professional life, he is a marketing consultant with decades of experience in high tech, and a visiting professor of marketing, public speaking, and public relations post-graduate courses. He has a degree in humanities at the University of Milan, and MBAs in marketing, public relations, and journalism. </div> 
+<div class="webform-long-answer">Italo Vignoli is a founding member of The Document Foundation, the chairman emeritus of Associazione LibreItalia, an emeritus member of the OSI board, and co-chair of the ODF Advocacy OASIS Open Project. He co-leads LibreOffice marketing, public relations, and media relations, co-chairs the certification program, and is a spokesman for the project. He has contributed to large migration projects to LibreOffice in Italy, and is a LibreOffice certified migrator and trainer. From 2004 to 2010, he has been involved in the OOo project. In his professional life, he is a marketing consultant with decades of experience in high tech, and a visiting professor of marketing, public speaking, and public relations post-graduate courses. He has a degree in humanities at the University of Milan, and MBAs in marketing, public relations, and journalism. </div>
 </div></span>  </div>  </div>
   <div class="views-row views-row-1 views-row-odd views-row-first views-row-last">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="2538">
 
 <div class="talkblock" style="clear:both">
 <h2 style="clear:both">Free software and the environment</h2>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2020/program/#2538">Saturday 13:35 - 14:20</a>
-<i class="glyphicon glyphicon-home"></i>: Patriot 
+<i class="glyphicon glyphicon-home"></i>: Patriot
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -802,12 +802,12 @@ SugarLabs founder Walter Bender will be co-hosting this presentation.</div>
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/IMG_0304.JPG">
 <h2>Ben  O&#039;Neill</h2></div>
-<div class="webform-long-answer">I am a high school student from the Boston area. I&#039;ve been interested in free software since I was 13. I enjoy programming, listening to music, hanging with friends, and watching war movies.</div> 
+<div class="webform-long-answer">I am a high school student from the Boston area. I&#039;ve been interested in free software since I was 13. I enjoy programming, listening to music, hanging with friends, and watching war movies.</div>
 </div></span>  </div>  </div>
     </div>
-  
-  
-  
-  
+
+
+
+
       <div class="view-footer">
       <!--pageend-->    </div>
index 56fc4873dac7e706d4b74c9d8a1a252ff0ecf9cb..892c8f5113bef25186f6e336b58edc336ff321db 100644 (file)
@@ -1,25 +1,25 @@
-      <!--pagestart-->    
-  
-  
-  
+      <!--pagestart-->
+
+
+
       <div class="view-content">
       <div class="view-grouping"><div class="view-grouping-header"><div id="schedule-Saturday">Saturday</div></div><div class="view-grouping-content">  <h3>09:30 - 09:45 - Welcome Address</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="/2020/speakers/#3279"><div id="3279">Welcome Address by FSF</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="/2020/speakers/#3279"><div id="3279">Welcome Address by FSF</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://static.fsf.org/nosvn/libreplanet/2020/assets/logo-lores.png">
  LibrePlanet  2020
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>09:45 - 10:30 - Opening Keynote</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/free-the-future-young-hackers-keynote-panel/"><div id="3288">Free the Future Young Hackers Keynote Panel</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/free-the-future-young-hackers-keynote-panel/"><div id="3288">Free the Future Young Hackers Keynote Panel</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/panel.png">
  Alyssa Rosenzweig,  Taowa, and Erin Moon
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>10:40 - 11:25</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/digital-painting-with-krita-on-gnu-linux-cute-creature-concept-art/"><div id="2539">Digital painting with Krita on GNU/Linux: cute creature concept-art</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/digital-painting-with-krita-on-gnu-linux-cute-creature-concept-art/"><div id="2539">Digital painting with Krita on GNU/Linux: cute creature concept-art</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/David-Revoy_profile-2018.jpg">
  David  Revoy
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/rented-future-the-dangerous-rise-of-life-as-a-service/"><div id="2692">Rented future: The dangerous rise of life as a service</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/rented-future-the-dangerous-rise-of-life-as-a-service/"><div id="2692">Rented future: The dangerous rise of life as a service</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/lucy-ingham.jpg">
  Lucy  Ingham
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/transparent-code-secure-data-selling-free-software-to-the-us-government-our-bosses-and-ourselves/"><div id="2528">Transparent code, secure data: Selling free software to the US Government, our bosses, and ourselves</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Patriot</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack5">Free software in Government</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/transparent-code-secure-data-selling-free-software-to-the-us-government-our-bosses-and-ourselves/"><div id="2528">Transparent code, secure data: Selling free software to the US Government, our bosses, and ourselves</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Patriot</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack5">Free software in Government</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/Karen-Johnson.jpg">
  Karen  Johnson
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
+
 
   Fen Labalme<br>
 
 </table>
   <h3>11:35 - 12:20</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/keeping-secrets-what-you-need-to-know-about-encryption/"><div id="2775">Keeping secrets: What you need to know about encryption</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/keeping-secrets-what-you-need-to-know-about-encryption/"><div id="2775">Keeping secrets: What you need to know about encryption</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/DeeDeeLavinder.png">
  DeeDee  Lavinder
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="/2020/speakers/#2599"><div id="2599">Field notes from a digital rights activist</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="/2020/speakers/#2599"><div id="2599">Field notes from a digital rights activist</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/signal-attachment-2019-10-19-144649.jpeg">
  Giselle  Jhunjhnuwala
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/how-to-teach-students-about-free-software/"><div id="2743">How to teach students about free software</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Patriot</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/how-to-teach-students-about-free-software/"><div id="2743">How to teach students about free software</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Patriot</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/IMG_20191119_105151174_Headshot.jpg">
  William  Liggett
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>12:20 - 13:35 - Lunch Break</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="/2020/speakers/#3277"><div id="3277">LUNCH BREAK</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>:  </span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="/2020/speakers/#3277"><div id="3277">LUNCH BREAK</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>:  </span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://static.fsf.org/nosvn/libreplanet/2020/assets/logo-lores.png">
  LUNCH  BREAK
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>13:35 - 14:20</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/lessons-learned-from-cultivating-free-software-projects-and-communities/"><div id="2680">Lessons learned from cultivating free software projects and communities</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/lessons-learned-from-cultivating-free-software-projects-and-communities/"><div id="2680">Lessons learned from cultivating free software projects and communities</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/jjasghar_vmworld19.jpg">
  JJ  Asghar
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/font-bakery-gathering-font-engineering-knowledge-while-improving-a-large-collection-of-libre-fonts/"><div id="2778">Font Bakery: Gathering font engineering knowledge while improving a large collection of libre fonts</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/font-bakery-gathering-font-engineering-knowledge-while-improving-a-large-collection-of-libre-fonts/"><div id="2778">Font Bakery: Gathering font engineering knowledge while improving a large collection of libre fonts</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/FSanches-300x300_C.png">
  Felipe  Sanches
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/free-software-and-the-environment/"><div id="2538">Free software and the environment</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Patriot</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/free-software-and-the-environment/"><div id="2538">Free software and the environment</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Patriot</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/IMG_0304.JPG">
  Ben  O&#039;Neill
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>14:30 - 15:15</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/preventing-the-iot-dystopia-with-copyleft/"><div id="2748">Preventing the IoT Dystopia with Copyleft</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/preventing-the-iot-dystopia-with-copyleft/"><div id="2748">Preventing the IoT Dystopia with Copyleft</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/bkuhn-photo-2017.jpg">
  Bradley  Kuhn
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/bicycles-as-a-metaphor-for-free-software/"><div id="2686">Bicycles as a metaphor for free software</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/bicycles-as-a-metaphor-for-free-software/"><div id="2686">Bicycles as a metaphor for free software</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/avatar.png">
  .  Salt
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/stewarding-technological-freedom-in-agriculture/"><div id="2725">Stewarding technological freedom in agriculture</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Patriot</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/stewarding-technological-freedom-in-agriculture/"><div id="2725">Stewarding technological freedom in agriculture</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Patriot</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/95381.jpg">
  Michael  Stenta
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
+
 
   Don Blair<br>
   Jamie Gaehring<br>
 </table>
   <h3>15:25 - 16:10</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/free-software-for-community-radio-libretime-and-other-software-tools/"><div id="2572">Free software for community radio: LibreTime and other software tools</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/free-software-for-community-radio-libretime-and-other-software-tools/"><div id="2572">Free software for community radio: LibreTime and other software tools</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/D3003C9E-85A9-45BC-A451-9C6D4A58A8EC.jpeg">
  Robb  Ebright
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2 col-last">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/free-software-enables-free-science/"><div id="2856">Free software enables free science</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/free-software-enables-free-science/"><div id="2856">Free software enables free science</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/paulgazz.jpg">
  Paul  Gazzillo
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
+
 
   Joshua Santana<br>
 
 </table>
   <h3>16:20 - 17:05</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/platform-cooperativism-surveillance-capitalism-predictive-analysis-and-you/"><div id="2721">Platform cooperativism, surveillance capitalism, predictive analysis, and you</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/platform-cooperativism-surveillance-capitalism-predictive-analysis-and-you/"><div id="2721">Platform cooperativism, surveillance capitalism, predictive analysis, and you</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/micky-metts-200x200-c-micky-metts-cc0-1-0.png">
  Micky  Metts
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
+
 
   Keegan Rankin<br>
   Chris Thompson<br>
 
 </div></span>  </div>          </td>
                   <td  class="col-2 col-last">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/libreoffice-s-tenth-anniversary-the-many-faces-of-a-global-free-software-community/"><div id="2591">LibreOffice&#039;s tenth anniversary: The many faces of a global free software community</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/libreoffice-s-tenth-anniversary-the-many-faces-of-a-global-free-software-community/"><div id="2591">LibreOffice&#039;s tenth anniversary: The many faces of a global free software community</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/bergamo.jpg">
  Italo  Vignoli
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>17:15 - 18:00 - Closing Keynote</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/fsf-award-ceremony/"><div id="3283">Keynote by FSF and Award Ceremony</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/fsf-award-ceremony/"><div id="3283">Keynote by FSF and Award Ceremony</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://static.fsf.org/nosvn/libreplanet/2020/assets/logo-lores.png">
  LibrePlanet  2020
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>18:00 - 18:15 - Closing remarks</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="/2020/speakers/#3278"><div id="3278">Closing remarks by FSF</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="/2020/speakers/#3278"><div id="3278">Closing remarks by FSF</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://static.fsf.org/nosvn/libreplanet/2020/assets/logo-lores.png">
  LibrePlanet  2020
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
 </div></div><div class="view-grouping"><div class="view-grouping-header"><div id="schedule-Sunday">Sunday</div></div><div class="view-grouping-content">  <h3>09:30 - 09:45 - Welcome Address</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="/2020/speakers/#3281"><div id="3281">Welcome Address by FSF</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="/2020/speakers/#3281"><div id="3281">Welcome Address by FSF</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://static.fsf.org/nosvn/libreplanet/2020/assets/logo-lores.png">
  LibrePlanet  2020
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>09:45 - 10:30 - Opening Keynote</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/for-us-by-us-free-technology-community-science-and-the-pursuit-of-environmental-problem-solving/"><div id="3282">For us, by us: Free technology, community science, and the pursuit of environmental problem solving</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/for-us-by-us-free-technology-community-science-and-the-pursuit-of-environmental-problem-solving/"><div id="3282">For us, by us: Free technology, community science, and the pursuit of environmental problem solving</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/Dosemagen_bio image 2020.JPG">
  Shannon  Dosemagen
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>10:40 - 11:25</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/the-gandhian-way-to-freedom-and-privacy/"><div id="2361">The Gandhian way to freedom and privacy</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/the-gandhian-way-to-freedom-and-privacy/"><div id="2361">The Gandhian way to freedom and privacy</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/NS-PRofile.png">
  Nishant  Sharma
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2 col-last">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/patents-and-freedom-where-we-stand-now/"><div id="2450">Patents and freedom: Where we stand now</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Patriot</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/patents-and-freedom-where-we-stand-now/"><div id="2450">Patents and freedom: Where we stand now</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Patriot</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/Headshot 1 2017 small.jpg">
  McCoy  Smith
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>11:35 - 12:20</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/free-software-game-restoration/"><div id="2389">Free software game restoration</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/free-software-game-restoration/"><div id="2389">Free software game restoration</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://static.fsf.org/nosvn/libreplanet/2020/assets/logo-lores.png">
  Dennis  Payne
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2 col-last">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/free-software-for-minorities-in-turkey-in-their-own-languages/"><div id="2666">Free software for minorities in Turkey in their own languages</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Patriot</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/free-software-for-minorities-in-turkey-in-their-own-languages/"><div id="2666">Free software for minorities in Turkey in their own languages</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Patriot</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/OzcanAlper.png">
  Özcan Oğuz  and Alper Atmaca
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
+
 
   Alper Atmaca<br>
 
 </table>
   <h3>12:20 - 13:35 - Lunch Break</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="/2020/speakers/#3276"><div id="3276">LUNCH BREAK</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>:  </span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="/2020/speakers/#3276"><div id="3276">LUNCH BREAK</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>:  </span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://static.fsf.org/nosvn/libreplanet/2020/assets/logo-lores.png">
  LUNCH BREAK  and MEMBER MEETING
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>13:35 - 14:20</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="/2020/speakers/#2334"><div id="2334">Free software and the digital divide</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="/2020/speakers/#2334"><div id="2334">Free software and the digital divide</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://static.fsf.org/nosvn/libreplanet/2020/assets/logo-lores.png">
  Ryan  Fukunaga
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/gnu-health-embedded-an-introduction/"><div id="2744">GNU Health Embedded: An introduction</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/gnu-health-embedded-an-introduction/"><div id="2744">GNU Health Embedded: An introduction</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/sean-obrien-02.jpg">
  Sean  O&#039;Brien
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/how-to-make-more-users-love-free-software/"><div id="3269">How to make more users love free software</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Patriot</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/how-to-make-more-users-love-free-software/"><div id="3269">How to make more users love free software</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Patriot</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/Clarissa.jpg">
  Clarissa  Borges
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>14:30 - 15:15</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/fediverse-decentralized-social-networking-and-services/"><div id="3289">Fediverse: Decentralized Social Networking and Services</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/fediverse-decentralized-social-networking-and-services/"><div id="3289">Fediverse: Decentralized Social Networking and Services</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://static.fsf.org/nosvn/libreplanet/2020/assets/logo-lores.png">
  der.hans  .
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/sugar-labs-past-present-and-future/"><div id="2855">Sugar Labs -- Past, Present, and Future</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/sugar-labs-past-present-and-future/"><div id="2855">Sugar Labs -- Past, Present, and Future</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/profiles_ulibarri.jpg">
  Devin  Ulibarri
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
+
 
   Walter Bender<br>
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/the-importance-of-free-software-games/"><div id="2724">The importance of free software games</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Patriot</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/the-importance-of-free-software-games/"><div id="2724">The importance of free software games</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Patriot</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/nov2019.jpg">
  Lori  Nagel
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>15:25 - 16:10</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/the-four-free-ums/"><div id="3272">The Four Free-ums?</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/the-four-free-ums/"><div id="3272">The Four Free-ums?</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/masson.png">
  Patrick  Masson
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/lightning-talks/"><div id="3270">Lightning talks</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/lightning-talks/"><div id="3270">Lightning talks</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Freedom</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://static.fsf.org/nosvn/libreplanet/2020/assets/logo-lores.png">
  Libre  Planet
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/secure-scuttlebutt-peer-to-peer-collaboration-and-community-infrastructure/"><div id="2710">Secure Scuttlebutt: Peer-to-peer collaboration and community infrastructure</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Patriot</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/secure-scuttlebutt-peer-to-peer-collaboration-and-community-infrastructure/"><div id="2710">Secure Scuttlebutt: Peer-to-peer collaboration and community infrastructure</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Patriot</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/cel.jpg">
  Charles  Lehner
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>16:20 - 17:05</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/community-healing-re-establishing-norms-trust-and-truth-after-crises/"><div id="2769">Community healing: Re-establishing norms, trust, and truth after crises</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/community-healing-re-establishing-norms-trust-and-truth-after-crises/"><div id="2769">Community healing: Re-establishing norms, trust, and truth after crises</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/DIYspinningwheel.png">
  Katheryn  Sutter
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2 col-last">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/public-invention-free-hardware-inventions-in-the-public-for-the-public/"><div id="2332">Public Invention: Free hardware inventions “in the public, for the public”</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Patriot</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/public-invention-free-hardware-inventions-in-the-public-for-the-public/"><div id="2332">Public Invention: Free hardware inventions “in the public, for the public”</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Patriot</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://static.fsf.org/nosvn/libreplanet/2020/assets/logo-lores.png">
  Robert  Read
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
+
 
   Marc Jones<br>
 
 </table>
   <h3>17:15 - 18:00 - Closing Keynote</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/locking-the-web-open-a-decentralized-web-that-can-operate-as-free-software-does/"><div id="3284">Locking the Web open: A decentralized web that can operate as free software does</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/locking-the-web-open-a-decentralized-web-that-can-operate-as-free-software-does/"><div id="3284">Locking the Web open: A decentralized web that can operate as free software does</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/Brewster-Kahle.jpeg">
  Brewster  Kahle
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>18:00 - 18:15 - Closing remarks</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
-  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/closing-remarks-libreplanet-2020/"><div id="3285">Closing remarks by FSF</div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>  
+
+  <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/closing-remarks-libreplanet-2020/"><div id="3285">Closing remarks by FSF</div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Back Bay Grand</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://static.fsf.org/nosvn/libreplanet/2020/assets/logo-lores.png">
  LibrePlanet  2020
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
       </tbody>
 </table>
 </div></div>    </div>
-  
-  
-  
-  
+
+
+
+
       <div class="view-footer">
       <!--pageend-->    </div>
index 1199ea0f3e65949093dac86c4cf2f42b6b307828..4587a152c18826d1dc24afc82af0ceb140ee9ee3 100755 (executable)
     <!-- wrapper for slides -->
        <ul class="carousel-inner list-unstyled">
          <li class="item active">
-           <img src="//static.fsf.org/nosvn/libreplanet/2020/communications/audiowide.png" 
+           <img src="//static.fsf.org/nosvn/libreplanet/2020/communications/audiowide.png"
                 alt="[ Illustration of a woman listening to a LibrePlanet recording. ]" style="width: 80%;">
            <p class="carousel-caption-center">
                <br>
                <a href="https://media.libreplanet.org">Audio and video recordings from the conference are now online!</a>
             </p>
-        </li> 
+        </li>
                <li class="item">
-           <img src="//static.fsf.org/nosvn/libreplanet/2020/assets/keynotes.png" 
+           <img src="//static.fsf.org/nosvn/libreplanet/2020/assets/keynotes.png"
                 alt="[ Keynotes announced so far for LibrePlanet 2020. ]">
            <p class="carousel-caption-center">
                <br>
                <a href="https://libreplanet.org/2020/live/">Find out more about virtual conference participation.</a>
             </p>
-        </li> 
+        </li>
          <li class="item">
-           <img src="//static.fsf.org/nosvn/libreplanet/2020/assets/web_schedule.png" 
+           <img src="//static.fsf.org/nosvn/libreplanet/2020/assets/web_schedule.png"
                 alt="[ Graphic announcing LibrePlanet 2020 schedule release. ]">
            <p class="carousel-caption-center">
                The schedule for LibrePlanet 2020 is now live! <br>
@@ -41,7 +41,7 @@
            </p>
        </li>
         <li class="item">
-           <img src="//static.fsf.org/nosvn/libreplanet/2020/assets/volunteer1-2.jpg" 
+           <img src="//static.fsf.org/nosvn/libreplanet/2020/assets/volunteer1-2.jpg"
                 alt="[ A photo of the GNU Press table from LibrePlanet 2019. ]">
            <p class="carousel-caption-center">
                Volunteers keep LibrePlanet spinning <br>(and get great perks as well).<br>
@@ -50,7 +50,7 @@
         </li>
 
        <li class="item">
-           <img src="//static.fsf.org/nosvn/libreplanet/2020/assets/general1-2.jpg" 
+           <img src="//static.fsf.org/nosvn/libreplanet/2020/assets/general1-2.jpg"
                      alt="[ Edward Platt, Valerie Young, Christopher Webber, Amy Zhang sitting together as co-panelists at LibrePlanet 2019.  ]">
            <p class="carousel-caption-center">
 
index 392a5897869358f8e7124106850a9766f3be82c7..b21e9c9c56b64c2cabb0fe5917903aca64eb86c2 100755 (executable)
@@ -25,7 +25,7 @@
 
     <!-- The Conference is not running at this time.
 
-    <p>Please note that all online participants in LibrePlanet 2020 interactions are expected to abide by the conference's <a href="https://libreplanet.org/2020/safe-space-policy/">safe space policy</a>.</p>    
+    <p>Please note that all online participants in LibrePlanet 2020 interactions are expected to abide by the conference's <a href="https://libreplanet.org/2020/safe-space-policy/">safe space policy</a>.</p>
     <p>  <div class="panel-body">
            </div></p>
 
index d52f41e52f11c7c8da06da8b81a5fbf2431822a1..a64334d85e52cdb2a3578b3d05b7027a7ac60684 100755 (executable)
@@ -7,7 +7,7 @@
 
 <h1>Raffle</h1>
 
-<p>We'll be raffling off fabulous free software prizes, thanks to <a href="https://libreplanet.org/2020/sponsors">some of our generous sponsors</a>. 
+<p>We'll be raffling off fabulous free software prizes, thanks to <a href="https://libreplanet.org/2020/sponsors">some of our generous sponsors</a>.
 
 <p>All attendees get a gratis raffle ticket, FSF members get a second gratis ticket, and everyone can buy more chances to win at the GNU Press table during LibrePlanet, as well as at the Friday open house and Saturday evening social events! Buy one ticket for $2, 3 tickets for $5, one arm's length for $20, cash or credit. FSF staff and board members are not eligible to participate in the raffle.</p>
 
@@ -22,7 +22,7 @@
 <!--   <li>Subscriptions to <a href="https://jmp.chat/">JMP</a></li> -->
 <!--   <li>ChaosKeys from <a href="https://altusmetrum.org/">Altus Metrum, LLC</a></li> -->
 <!-- </ul> -->
-                                                        
+
 
 
 <!--#include virtual="/2020/includes/footer.html"-->
index 13fe795217e072408883b966dda7cc1fc2f58b48..49a5c9adbbd7cec45d153893fe34ddf3b2f782ad 100755 (executable)
@@ -25,7 +25,7 @@
                        </p>
                        <br>
                        <p>
-                       
+
 <p><div class="hover_img">
                                  <img src="https://static.fsf.org/nosvn/libreplanet/2020/sponsor-logos/jmp_libreplanet_logo.png"  alt="JMP logo" height="18%" width="18%">
                                </div>
@@ -40,7 +40,7 @@
                                  <img src="https://static.fsf.org/nosvn/libreplanet/2020/sponsor-logos/thinkpenguin.png"  alt="ThinkPenguin logo" height="18%" width="18%">
                                </div>
                        </p>
-                       
+
 <p><div class="hover_img">
                                  <img src="https://static.fsf.org/nosvn/libreplanet/2020/sponsor-logos/Boston_Beer_Company.jpg"  alt="Boston Beer Company logo" height="18%" width="18%">
                                </div>
@@ -50,7 +50,7 @@
 
                        <div class="hover_img">
                                <img src="https://static.fsf.org/nosvn/libreplanet/sponsor-logos/redhat.png"  alt="The red hat logo." height="75%" width="75%">
-                       
+
                        </div>
 
 <h2>In-kind and raffle  sponsors</h2>
   <img src="https://static.fsf.org/nosvn/libreplanet/2019/sponsor-logos/Boston_Beer_Company.jpg" alt="Boston Beer Company logo" height="25%" width="30%">
   <img src="https://static.fsf.org/nosvn/libreplanet/2019/sponsor-logos/wegmans.svg" alt="Wegman's logo" height="25%" width="30%">
   </p>
-                               
-                               
+
+
 <!--                           <div class="hover_img">
                                  <img src=""  alt="" height="50%" width="50%">
                                   <p class="text-muted text-center"> <a href=""></a></p>
-                               </div> 
-                                                                       
+                               </div>
+
 
-<p><em>All non-FSF logos are copyright their owners and used by permission.</em></p>                   
+<p><em>All non-FSF logos are copyright their owners and used by permission.</em></p>
 -->
 
 <!-- <h2>Confirmed Exhibitors</h2> -->
index 3b577562a953cdc6da2bc536d5768ec4ac8cb470..e1be694713aa049762b8a8b47a889eb4f845de57 100755 (executable)
@@ -6,7 +6,7 @@
 <!--#include virtual="/2020/includes/sidebar.html"-->
 
 <h2>Unfortunately, pre-registration is full.</h2>
-<p>We will do our best to accomodate walk-up registrations. 
+<p>We will do our best to accomodate walk-up registrations.
 Prices are as follows:</p>
 <ul>
 <li>FSF members and students: $ 0</li>
index 767ee657e7e2f210803d076b64cef88494dc2bbd..f806f9bc1b658aaf5ecd2c4cd36b7dc39bb47c0b 100644 (file)
@@ -6,7 +6,7 @@
 <!--#include virtual="/2020/includes/sidebar.html"-->
 ##Unfortunately, pre-registration is full.
 
-We will do our best to accomodate walk-up registrations. 
+We will do our best to accomodate walk-up registrations.
 Prices are as follows:
 
 * FSF members and students: $ 0
index 280952a23ac120f52f365c735929769934a005da..f86db746e2765d35e819bdcf5f2f65eea3a7e32a 100644 (file)
@@ -47,8 +47,8 @@ h3  {
   font-size: 20px;
 }
 
-.lp-logo { 
-  margin-bottom: -75px; 
+.lp-logo {
+  margin-bottom: -75px;
   margin-top: 10px;
 }
 
@@ -1092,7 +1092,7 @@ border-radius: 5px
 
 
 @media (max-width:600px) {
-  
+
   .talkblock{
     clear: both;
     text-align: left;
index 7166c1681428d2f4828ad08f6b3f96cd3f0c5607..4ee39efa7cd1ddfeec5ceed329b10174f6088c60 100644 (file)
@@ -49,7 +49,7 @@
 .ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; }
 .ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
 .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; zoom: 1; }
-.ui-autocomplete { position: absolute; cursor: default; }      
+.ui-autocomplete { position: absolute; cursor: default; }
 
 /* workarounds */
 * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
@@ -57,8 +57,8 @@
 .ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; }
 .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
 button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
+.ui-button-icons-only { width: 3.4em; }
+button.ui-button-icons-only { width: 3.7em; }
 
 /*button text element */
 .ui-button .ui-button-text { display: block; line-height: 1.4;  }
@@ -95,7 +95,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
 .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
 .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
 .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
+.ui-datepicker select.ui-datepicker-month,
 .ui-datepicker select.ui-datepicker-year { width: 49%;}
 .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
 .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
index 94fb5490a2ed10b2c69a4a567a4fd2e4f706d841..f155876e1b9cf712c81dd78eac057c5629343b9b 100644 (file)
 <glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
 <glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
 </font>
-</defs></svg> 
\ No newline at end of file
+</defs></svg>
\ No newline at end of file
index 9dcbc53860673be65350d4c2cfeb2b492a033928..5bd130e6bac363ad91c22aa9b479779e41560cc2 100644 (file)
@@ -1014,7 +1014,7 @@ JSONPPolling.prototype.doPoll = function () {
   this.script = script;
 
   var isUAgecko = 'undefined' != typeof navigator && /gecko/i.test(navigator.userAgent);
-  
+
   if (isUAgecko) {
     setTimeout(function () {
       var iframe = document.createElement('iframe');
index ab76d3a76719287a317b694d276be1b1cd0b2fa5..8ef5770a9eaef4a9de2c6479746ed6b133739393 100644 (file)
@@ -915,7 +915,7 @@ $.widget("ui.mouse", {
                        .bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
 
                event.preventDefault();
-               
+
                mouseHandled = true;
                return true;
        },
@@ -1545,7 +1545,7 @@ $.widget("ui.draggable", $.ui.mouse, {
                this.handle = this._getHandle(event);
                if (!this.handle)
                        return false;
-               
+
                $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
                        $('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')
                        .css({
@@ -1629,12 +1629,12 @@ $.widget("ui.draggable", $.ui.mouse, {
                if ($.ui.ddmanager && !o.dropBehaviour)
                        $.ui.ddmanager.prepareOffsets(this, event);
 
-               
+
                this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
-               
+
                //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)
                if ( $.ui.ddmanager ) $.ui.ddmanager.dragStart(this, event);
-               
+
                return true;
        },
 
@@ -1673,7 +1673,7 @@ $.widget("ui.draggable", $.ui.mouse, {
                        dropped = this.dropped;
                        this.dropped = false;
                }
-               
+
                //if the original element is no longer in the DOM don't bother to continue (see #8269)
                var element = this.element[0], elementInDom = false;
                while ( element && (element = element.parentNode) ) {
@@ -1699,29 +1699,29 @@ $.widget("ui.draggable", $.ui.mouse, {
 
                return false;
        },
-       
+
        _mouseUp: function(event) {
                //Remove frame helpers
-               $("div.ui-draggable-iframeFix").each(function() { 
-                       this.parentNode.removeChild(this); 
+               $("div.ui-draggable-iframeFix").each(function() {
+                       this.parentNode.removeChild(this);
                });
-               
+
                //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)
                if( $.ui.ddmanager ) $.ui.ddmanager.dragStop(this, event);
-               
+
                return $.ui.mouse.prototype._mouseUp.call(this, event);
        },
-       
+
        cancel: function() {
-               
+
                if(this.helper.is(".ui-draggable-dragging")) {
                        this._mouseUp({});
                } else {
                        this._clear();
                }
-               
+
                return this;
-               
+
        },
 
        _getHandle: function(event) {
@@ -2042,12 +2042,12 @@ $.ui.plugin.add("draggable", "connectToSortable", {
                };
 
                $.each(inst.sortables, function(i) {
-                       
+
                        //Copy over some variables to allow calling the sortable's native _intersectsWith
                        this.instance.positionAbs = inst.positionAbs;
                        this.instance.helperProportions = inst.helperProportions;
                        this.instance.offset.click = inst.offset.click;
-                       
+
                        if(this.instance._intersectsWith(this.instance.containerCache)) {
 
                                //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once
@@ -2090,13 +2090,13 @@ $.ui.plugin.add("draggable", "connectToSortable", {
 
                                        this.instance.isOver = 0;
                                        this.instance.cancelHelperRemoval = true;
-                                       
+
                                        //Prevent reverting on this forced stop
                                        this.instance.options.revert = false;
-                                       
+
                                        // The out event needs to be triggered independently
                                        this.instance._trigger('out', event, this.instance._uiHash(this.instance));
-                                       
+
                                        this.instance._mouseStop(event, true);
                                        this.instance.options.helper = this.instance.options._helper;
 
@@ -2266,7 +2266,7 @@ $.ui.plugin.add("draggable", "stack", {
                        return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);
                });
                if (!group.length) { return; }
-               
+
                var min = parseInt(group[0].style.zIndex) || 0;
                $(group).each(function(i) {
                        this.style.zIndex = min + i;
@@ -3130,7 +3130,7 @@ $.ui.plugin.add("resizable", "alsoResize", {
 
                _alsoResize = function (exp, c) {
                        $(exp).each(function() {
-                               var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, 
+                               var el = $(this), start = $(this).data("resizable-alsoresize"), style = {},
                                        css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left'];
 
                                $.each(css, function (i, prop) {
@@ -6488,7 +6488,7 @@ function Datepicker() {
 $.extend(Datepicker.prototype, {
        /* Class name added to elements to indicate already configured with a date picker. */
        markerClassName: 'hasDatepicker',
-       
+
        //Keep track of the maximum number of rows displayed (see #7043)
        maxRows: 4,
 
@@ -6497,7 +6497,7 @@ $.extend(Datepicker.prototype, {
                if (this.debug)
                        console.log.apply('', arguments);
        },
-       
+
        // TODO rename to "widget" when switching to widget factory
        _widgetDatepicker: function() {
                return this.dpDiv;
@@ -6607,7 +6607,7 @@ $.extend(Datepicker.prototype, {
                                if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
                                        $.datepicker._hideDatepicker();
                                else if ($.datepicker._datepickerShowing && $.datepicker._lastInput != input[0]) {
-                                       $.datepicker._hideDatepicker(); 
+                                       $.datepicker._hideDatepicker();
                                        $.datepicker._showDatepicker(input[0]);
                                } else
                                        $.datepicker._showDatepicker(input[0]);
@@ -6903,7 +6903,7 @@ $.extend(Datepicker.prototype, {
                                case 9: $.datepicker._hideDatepicker();
                                                handled = false;
                                                break; // hide on tab out
-                               case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + 
+                               case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' +
                                                                        $.datepicker._currentClass + ')', inst.dpDiv);
                                                if (sel[0])
                                                        $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
@@ -7001,7 +7001,7 @@ $.extend(Datepicker.prototype, {
        },
 
        /* Pop-up the date picker for a given input field.
-          If false returned from beforeShow event handler do not show. 
+          If false returned from beforeShow event handler do not show.
           @param  input  element - the input field attached to the date picker or
                          event - if triggered by focus */
        _showDatepicker: function(input) {
@@ -7105,7 +7105,7 @@ $.extend(Datepicker.prototype, {
                                // this breaks the change event in IE
                                inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement)
                        inst.input.focus();
-               // deffered render of the years select (to avoid flashes on Firefox) 
+               // deffered render of the years select (to avoid flashes on Firefox)
                if( inst.yearshtml ){
                        var origyearshtml = inst.yearshtml;
                        setTimeout(function(){
@@ -7814,7 +7814,7 @@ $.extend(Datepicker.prototype, {
                        $(this).bind(this.getAttribute('data-event'), handler[this.getAttribute('data-handler')]);
                });
        },
-       
+
        /* Generate the HTML for the current state of the date picker. */
        _generateHTML: function(inst) {
                var today = new Date();
@@ -7971,7 +7971,7 @@ $.extend(Datepicker.prototype, {
                                        drawMonth = 0;
                                        drawYear++;
                                }
-                               calender += '</tbody></table>' + (isMultiMonth ? '</div>' + 
+                               calender += '</tbody></table>' + (isMultiMonth ? '</div>' +
                                                        ((numMonths[0] > 0 && col == numMonths[1]-1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
                                group += calender;
                        }
@@ -8035,7 +8035,7 @@ $.extend(Datepicker.prototype, {
                                                '>' + year + '</option>';
                                }
                                inst.yearshtml += '</select>';
-                               
+
                                html += inst.yearshtml;
                                inst.yearshtml = null;
                        }
@@ -8146,7 +8146,7 @@ $.extend(Datepicker.prototype, {
  * Bind hover events for datepicker elements.
  * Done via delegate so the binding only occurs once in the lifetime of the parent div.
  * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
- */ 
+ */
 function bindHover(dpDiv) {
        var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';
        return dpDiv.delegate(selector, 'mouseout', function() {
@@ -8178,12 +8178,12 @@ function extendRemove(target, props) {
                        Object - settings for attaching new datepicker functionality
    @return  jQuery object */
 $.fn.datepicker = function(options){
-       
+
        /* Verify an empty collection wasn't passed - Fixes #6976 */
        if ( !this.length ) {
                return this;
        }
-       
+
        /* Initialise the date picker. */
        if (!$.datepicker.initialized) {
                $(document).mousedown($.datepicker._checkExternalClick).
@@ -14211,7 +14211,7 @@ $.effects.effect.highlight = function( o, done ) {
        }
 
        $.effects.save( elem, props );
-       
+
        elem
                .show()
                .css({
index 31de7b0d51444ca9ce3a50d71892845f2d88ce57..3603058bcb76086a847f5726846af1a4399bac24 100644 (file)
@@ -1,17 +1,17 @@
 /*!
  * jQuery Feeds v0.5
  * https://camagu.github.com/jquery-feeds
- * 
+ *
  * Copyright (c) 2013, Camilo Aguilar
  * Dual licensed under the MIT and GPL licenses:
  *     http://www.opensource.org/licenses/mit-license.php
  *     http://www.gnu.org/licenses/gpl.html
- * 
+ *
  * Includes a modified version of Simple JavaScript Templating
  * http://ejohn.org/blog/javascript-micro-templating/
  * Copyright (c) John Resig (http://ejohn.org)
  * MIT licensed
- * 
+ *
  * Date: 2013-02-18
  */
 
index 305f66b2d839887a6bc837ac1b56aa71c3dbc342..276cdeeb80efee20e375bcbb1fcd00bb82e62b74 100644 (file)
@@ -1,17 +1,17 @@
 /*!
  * jQuery Feeds v0.5
  * https://camagu.github.com/jquery-feeds
- * 
+ *
  * Copyright (c) 2013, Camilo Aguilar
  * Dual licensed under the MIT and GPL licenses:
  *     http://www.opensource.org/licenses/mit-license.php
  *     http://www.gnu.org/licenses/gpl.html
- * 
+ *
  * Includes a modified version of Simple JavaScript Templating
  * http://ejohn.org/blog/javascript-micro-templating/
  * Copyright (c) John Resig (http://ejohn.org)
  * MIT licensed
- * 
+ *
  * Date: 2013-02-18
  */
 (function(e){var t={};e.fn.feeds=function(n){var r={service:"//ajax.googleapis.com/ajax/services/feed/load?v=1.0",settings:{loadingTemplate:'<div class="feeds-loader">Loading entries ...</div>',entryTemplate:'<div class="feeds-entry feeds-source-<!=source!>"><a class="feeds-entry-title" target="_blank" href="<!=link!>" title="<!=title!>"><!=title!></a><div class="feeds-entry-date"><!=publishedDate!></div><div class="feeds-entry-contentSnippet"><!=contentSnippet!></div></div>',feeds:{},max:-1,xml:!1,ssl:"auto",onComplete:function(e){},preprocess:function(e){}},feeds:{},entries:[],feedsLength:0,feedsLoaded:0,$element:null,$loader:null,init:function(t,n){this.settings=e.extend(this.settings,n),this.feeds=this.settings.feeds;for(var r in this.feeds)this.feeds.hasOwnProperty(r)&&this.feedsLength++;var i=this.settings.ssl==="auto"?document.location.protocol:this.settings.ssl?"https:":"http:";e.inArray(i,["http:","https"])===-1&&(i="https:"),this.service=i+this.service,this.$element=e(t);var s=typeof this.settings.loadingTemplate=="function"?this.settings.loadingTemplate:this.tmpl(this.settings.loadingTemplate);this.$loader=e(s.call(this,{})),this.$element.html(this.$loader);var o=this.settings.xml?"json_xml":"json";for(var u in this.feeds)this.fetchFeed(u,this.feeds[u],this.settings.max,o)},fetchFeed:function(n,r,i,s){var o=this,u=r+"**"+i+"**"+s;if(typeof t[u]!="undefined"){o.processResponse(t[u],n,r);return}e.ajax({url:this.service,dataType:"jsonp",data:{q:r,num:i,output:s},beforeSend:function(){this.feed=r,this.key=n},success:function(e){t[u]=e,o.processResponse(e,this.key,this.feed)}})},processResponse:function(t,n,r){if(t.responseStatus!==200)window.console&&window.console.log&&console.log("Unable to load feed "+r+": ("+t.responseStatus+") "+t.responseDetails);else{var i=t.responseData.feed,s=i.entries,o=t.responseData.feed.type;if(this.settings.xml){var u=e(t.responseData.xmlString);o.match(/^rss.*/)?u=u.filter("rss").find("channel"):o.match(/^atom.*/)&&(u=u.filter("feed")),i.xml=u}for(var a in s){var f=e.extend({},s[a]);f.source=n,f.publishedDateRaw=f.publishedDate,f.feedUrl=i.feedUrl,f.feedTitle=i.title,f.feedLink=i.link,f.feedDescription=i.description,f.feedAuthor=i.author,this.settings.xml&&(o.match(/^rss.*/)?f.xml=i.xml.find("item").eq(a):o.match(/^atom.*/)?f.xml=i.xml.find("entry").eq(a):f.xml={}),this.settings.preprocess.call(f,i)!==!1&&this.entries.push(f)}}this.feedsLoaded++,this.checkComplete()},checkComplete:function(){if(this.feedsLoaded===this.feedsLength){this.$loader.remove(),this.entries.sort(function(e,t){var n=(new Date(e.publishedDateRaw)).getTime(),r=(new Date(t.publishedDateRaw)).getTime();return r-n});var e=typeof this.settings.entryTemplate=="function"?this.settings.entryTemplate:this.tmpl(this.settings.entryTemplate);for(var t in this.entries){var n=this.entries[t],r=e.call(this,n);this.$element.append(r)}this.settings.onComplete.call(this.$element[0],this.entries)}},tmplCache:{},tmpl:function(t,n){var r=/\W/.test(t)?new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+t.replace(/[\r\t\n]/g," ").split("<!").join(" ").replace(/((^|!>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)!>/g,"',typeof $1 != 'undefined' ? $1 : '','").split("   ").join("');").split("!>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');"):this.tmplCache[t]=this.tmplCache[t]||this.tmpl(document.getElementById(t).innerHTML);return n?r(n):r}};return e(this).each(function(){r.init(this,n)})}})(jQuery);
\ No newline at end of file
index a094a70d01bdf8d31a8627a733321d4616440583..311a57b10d035f9ac5f3f0962a25bfbd2efe6ef9 100644 (file)
@@ -37,7 +37,7 @@
                        target: '#output'
                });
        });
-       
+
        You can also use ajaxForm with delegation (requires jQuery v1.7+), so the
        form does not have to exist when you invoke ajaxForm:
 
@@ -45,7 +45,7 @@
                delegation: true,
                target: '#output'
        });
-       
+
        When using ajaxForm, the ajaxSubmit function will be invoked for you
        at the appropriate time.
 */
@@ -69,7 +69,7 @@ $.fn.ajaxSubmit = function(options) {
                log('ajaxSubmit: skipping submit process - no element selected');
                return this;
        }
-       
+
        var method, action, url, $form = this;
 
        if (typeof options == 'function') {
@@ -111,7 +111,7 @@ $.fn.ajaxSubmit = function(options) {
        if ( traditional === undefined ) {
                traditional = $.ajaxSettings.traditional;
        }
-       
+
     var elements = [];
     var qx, a = this.formToArray(options.semantic, elements);
        if (options.data) {
@@ -135,7 +135,7 @@ $.fn.ajaxSubmit = function(options) {
        var q = $.param(a, traditional);
        if (qx) {
                q = ( q ? (q + '&' + qx) : qx );
-       }       
+       }
        if (options.type.toUpperCase() == 'GET') {
                options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
                options.data = null;  // data is null for 'get'
@@ -165,7 +165,7 @@ $.fn.ajaxSubmit = function(options) {
        }
 
        options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
-        var context = options.context || this ;    // jQuery 1.4+ supports scope context 
+        var context = options.context || this ;    // jQuery 1.4+ supports scope context
                for (var i=0, max=callbacks.length; i < max; i++) {
                        callbacks[i].apply(context, [data, status, xhr || $form, $form]);
                }
@@ -175,7 +175,7 @@ $.fn.ajaxSubmit = function(options) {
 
     // [value] (issue #113), also see comment:
     // https://github.com/malsup/form/commit/588306aedba1de01388032d5f42a60159eea9228#commitcomment-2180219
-    var fileInputs = $('input[type=file]:enabled[value!=""]', this); 
+    var fileInputs = $('input[type=file]:enabled[value!=""]', this);
 
        var hasFileInputs = fileInputs.length > 0;
        var mp = 'multipart/form-data';
@@ -299,7 +299,7 @@ $.fn.ajaxSubmit = function(options) {
             deferred.reject();
             return deferred;
         }
-        
+
                if (a) {
                                // ensure that every serialized input is still enabled
             for (i=0; i < elements.length; i++) {
@@ -347,7 +347,7 @@ $.fn.ajaxSubmit = function(options) {
                 if (io.contentWindow.document.execCommand) {
                         io.contentWindow.document.execCommand('Stop');
                 }
-                } 
+                }
                 catch(ignore) {}
 
                                $io.attr('src', s.iframeSrc); // abort op in progress
@@ -395,7 +395,7 @@ $.fn.ajaxSubmit = function(options) {
                                }
                        }
                }
-               
+
                var CLIENT_TIMEOUT_ABORT = 1;
                var SERVER_ABORT = 2;
 
@@ -403,7 +403,7 @@ $.fn.ajaxSubmit = function(options) {
                        var doc = frame.contentWindow ? frame.contentWindow.document : frame.contentDocument ? frame.contentDocument : frame.document;
                        return doc;
                }
-               
+
                // Rails CSRF hack (thanks to Yvan Barthelemy)
                var csrf_token = $('meta[name=csrf-token]').attr('content');
                var csrf_param = $('meta[name=csrf-param]').attr('content');
@@ -438,7 +438,7 @@ $.fn.ajaxSubmit = function(options) {
                        if (s.timeout) {
                                timeoutHandle = setTimeout(function() { timedOut = true; cb(CLIENT_TIMEOUT_ABORT); }, s.timeout);
                        }
-                       
+
                        // look for server aborts
                        function checkState() {
                                try {
@@ -537,7 +537,7 @@ $.fn.ajaxSubmit = function(options) {
                        }
             if (io.detachEvent)
                 io.detachEvent('onload', cb);
-            else    
+            else
                 io.removeEventListener('load', cb, false);
 
                        var status = 'success', errMsg;
@@ -593,7 +593,7 @@ $.fn.ajaxSubmit = function(options) {
                                                var pre = doc.getElementsByTagName('pre')[0];
                                                var b = doc.getElementsByTagName('body')[0];
                                                if (pre) {
-                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;  
+                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;
                                                }
                                                else if (b) {
                           xhr.responseText = b.innerHTML ? b.innerHTML : b.textContent;
@@ -716,7 +716,7 @@ $.fn.ajaxSubmit = function(options) {
 $.fn.ajaxForm = function(options) {
        options = options || {};
        options.delegation = options.delegation && $.isFunction($.fn.on);
-       
+
        // in jQuery 1.3+ we can fix mistakes with the ready state
        if (!options.delegation && this.length === 0) {
                var o = { s: this.selector, c: this.context };
@@ -746,7 +746,7 @@ $.fn.ajaxForm = function(options) {
                .bind('click.form-plugin', options, captureSubmittingElement);
 };
 
-// private event handlers      
+// private event handlers
 function doAjaxSubmit(e) {
     /*jshint validthis:true */
        var options = e.data;
@@ -755,7 +755,7 @@ function doAjaxSubmit(e) {
                $(this).ajaxSubmit(options);
        }
 }
-       
+
 function captureSubmittingElement(e) {
     /*jshint validthis:true */
        var target = e.target;
@@ -835,14 +835,14 @@ $.fn.formToArray = function(semantic, elements) {
 
                v = $.fieldValue(el, true);
                if (v && v.constructor == Array) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
                        for(j=0, jmax=v.length; j < jmax; j++) {
                                a.push({name: n, value: v[j]});
                        }
                }
         else if (feature.fileapi && el.type == 'file' && !el.disabled) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             var files = el.files;
             if (files.length) {
@@ -856,7 +856,7 @@ $.fn.formToArray = function(semantic, elements) {
             }
         }
                else if (v !== null && typeof v != 'undefined') {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             a.push({name: n, value: v, type: el.type, required: el.required});
                }
@@ -1106,7 +1106,7 @@ $.fn.ajaxSubmit.debug = false;
 
 // helper fn for console logging
 function log() {
-       if (!$.fn.ajaxSubmit.debug) 
+       if (!$.fn.ajaxSubmit.debug)
                return;
        var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
        if (window.console && window.console.log) {
index 29082ca9647b864d3f0f254fa25a6a6bcc22b232..bcb4a27b7a532c4bcd6bb910a1010776fb97ce1a 100644 (file)
@@ -119,7 +119,7 @@ var m = (function app(window, undefined) {
                                        i-- //check current index again and flatten until there are no more nested arrays at that index
                                }
                        }
-                       
+
                        var nodes = [], intact = cached.length === data.length, subArrayCount = 0;
 
                        //keys algorithm: sort elements without recreating them if keys are present
@@ -138,7 +138,7 @@ var m = (function app(window, undefined) {
                        }
                        if (shouldMaintainIdentities) {
                                if (data.indexOf(null) > -1) data = data.filter(function(x) {return x != null})
-                               
+
                                var keysDiffer = false
                                if (data.length != cached.length) keysDiffer = true
                                else for (var i = 0, cachedCell, dataCell; cachedCell = cached[i], dataCell = data[i]; i++) {
@@ -147,7 +147,7 @@ var m = (function app(window, undefined) {
                                                break
                                        }
                                }
-                               
+
                                if (keysDiffer) {
                                        for (var i = 0, len = data.length; i < len; i++) {
                                                if (data[i] && data[i].attrs) {
@@ -216,7 +216,7 @@ var m = (function app(window, undefined) {
                        }
                        if (!intact) {
                                //diff the array itself
-                               
+
                                //update the list of DOM nodes by collecting the nodes from each item
                                for (var i = 0, len = data.length; i < len; i++) {
                                        if (cached[i] != null) nodes.push.apply(nodes, cached[i].nodes)
@@ -699,7 +699,7 @@ var m = (function app(window, undefined) {
                }
                return str.join("&")
        }
-       
+
        function parseQueryString(str) {
                var pairs = str.split("&"), params = {};
                for (var i = 0, len = pairs.length; i < len; i++) {
index d48daafdea6ce07d5d495a18172b7bb1bf8e7328..d3115512a757e489d0c0fe8cfad0f9f2dc099e4c 100644 (file)
@@ -2,7 +2,7 @@
     /**
      * Your Twitter App Info
      */
-    
+
     // Consumer Key
     define('CONSUMER_KEY', 'yxmC3rFOrr1xRGbCo3J6QNkKW');
     define('CONSUMER_SECRET', 'rqI9V5lPttEhNeOwBl14Jn6ryCU5MRBJQ5J6j8OEgaXwekeZM2');
@@ -10,7 +10,7 @@
     // User Access Token
     define('ACCESS_TOKEN', '2972347515-LCsxZafDTPd8hPCpWfewRVCEqgkHysKqB97x1bc');
     define('ACCESS_SECRET', 'Od3GSWu8iVW6x03YfTtDXVY48ewB315FkSrb3HQgi8Tx7');
-       
+
        // Cache Settings
        define('CACHE_ENABLED', false);
        define('CACHE_LIFETIME', 3600); // in seconds
index d02b7aebae3fd08d189f7127946fb47390815665..67800781e666ce3e22934dcc6a2852f61e77e785 100644 (file)
@@ -12,7 +12,7 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     // Check if keys are in place
     if (CONSUMER_KEY === '' || CONSUMER_SECRET === '' || CONSUMER_KEY === 'CONSUMER_KEY_HERE' || CONSUMER_SECRET === 'CONSUMER_SECRET_HERE') {
         echo 'You need a consumer key and secret keys. Get one from <a href="https://dev.twitter.com/apps">dev.twitter.com/apps</a>';
-      
+
         exit;
     }
 
@@ -22,13 +22,13 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     $exclude_replies = filter_input(INPUT_GET, 'exclude_replies', FILTER_SANITIZE_SPECIAL_CHARS);
     $list_slug = filter_input(INPUT_GET, 'list_slug', FILTER_SANITIZE_SPECIAL_CHARS);
     $hashtag = filter_input(INPUT_GET, 'hashtag', FILTER_SANITIZE_SPECIAL_CHARS);
-    
+
        if(CACHE_ENABLED) {
         // Generate cache key from query data
         $cache_key = md5(
             var_export(array($username, $number, $exclude_replies, $list_slug, $hashtag), true) . HASH_SALT
         );
-    
+
         // Remove old files from cache dir
         $cache_path  = dirname(__FILE__) . '/cache/';
         foreach (glob($cache_path . '*') as $file) {
@@ -36,16 +36,16 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
                 unlink($file);
             }
         }
-    
+
         // If cache file exists - return it
         if(file_exists($cache_path . $cache_key)) {
             header('Content-Type: application/json');
-    
+
             echo file_get_contents($cache_path . $cache_key);
             exit;
         }
     }
-       
+
     /**
      * Gets connection with user Twitter account
      * @param  String $cons_key     Consumer Key
@@ -57,13 +57,13 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     function getConnectionWithToken($cons_key, $cons_secret, $oauth_token, $oauth_secret)
     {
         $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_secret);
-      
+
         return $connection;
     }
-    
+
     // Connect
     $connection = getConnectionWithToken(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_SECRET);
-    
+
     // Get Tweets
     if (!empty($list_slug)) {
       $params = array(
index 4570013b80f59fc225aa9b4b695b873198143587..d31451ac61f694f058df6309b2107bcc10c8e6a0 100644 (file)
@@ -92,9 +92,9 @@ abstract class OAuthSignatureMethod {
 }
 
 /**
- * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104] 
- * where the Signature Base String is the text and the key is the concatenated values (each first 
- * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&' 
+ * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104]
+ * where the Signature Base String is the text and the key is the concatenated values (each first
+ * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&'
  * character (ASCII code 38) even if empty.
  *   - Chapter 9.2 ("HMAC-SHA1")
  */
@@ -120,7 +120,7 @@ class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod {
 }
 
 /**
- * The PLAINTEXT method does not provide any security protection and SHOULD only be used 
+ * The PLAINTEXT method does not provide any security protection and SHOULD only be used
  * over a secure channel such as HTTPS. It does not use the Signature Base String.
  *   - Chapter 9.4 ("PLAINTEXT")
  */
@@ -130,8 +130,8 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
   }
 
   /**
-   * oauth_signature is set to the concatenated encoded values of the Consumer Secret and 
-   * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is 
+   * oauth_signature is set to the concatenated encoded values of the Consumer Secret and
+   * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is
    * empty. The result MUST be encoded again.
    *   - Chapter 9.4.1 ("Generating Signatures")
    *
@@ -153,10 +153,10 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
 }
 
 /**
- * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in 
- * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for 
- * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a 
- * verified way to the Service Provider, in a manner which is beyond the scope of this 
+ * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in
+ * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for
+ * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a
+ * verified way to the Service Provider, in a manner which is beyond the scope of this
  * specification.
  *   - Chapter 9.3 ("RSA-SHA1")
  */
@@ -558,7 +558,7 @@ class OAuthServer {
   private function get_version(&$request) {
     $version = $request->get_parameter("oauth_version");
     if (!$version) {
-      // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present. 
+      // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present.
       // Chapter 7.0 ("Accessing Protected Ressources")
       $version = '1.0';
     }
@@ -658,7 +658,7 @@ class OAuthServer {
       throw new OAuthException(
         'Missing timestamp parameter. The parameter is required'
       );
-    
+
     // verify that timestamp is recentish
     $now = time();
     if (abs($now - $timestamp) > $this->timestamp_threshold) {
index 7ed5ef98a738a54ac1696b545e065ff0e580b727..68c99fe9767b6fc1609170791aa36ecd35641359 100644 (file)
@@ -29,7 +29,7 @@ class TwitterOAuth {
   /* Set timeout default. */
   public $timeout = 30;
   /* Set connect timeout. */
-  public $connecttimeout = 30; 
+  public $connecttimeout = 30;
   /* Verify SSL Cert. */
   public $ssl_verifypeer = FALSE;
   /* Respons format. */
@@ -81,7 +81,7 @@ class TwitterOAuth {
    */
   function getRequestToken($oauth_callback) {
     $parameters = array();
-    $parameters['oauth_callback'] = $oauth_callback; 
+    $parameters['oauth_callback'] = $oauth_callback;
     $request = $this->oAuthRequest($this->requestTokenURL(), 'GET', $parameters);
     $token = OAuthUtil::parse_parameters($request);
     $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
@@ -130,7 +130,7 @@ class TwitterOAuth {
    *                "user_id" => "9436992",
    *                "screen_name" => "abraham",
    *                "x_auth_expires" => "0")
-   */  
+   */
   function getXAuthToken($username, $password) {
     $parameters = array();
     $parameters['x_auth_username'] = $username;
@@ -152,7 +152,7 @@ class TwitterOAuth {
     }
     return $response;
   }
-  
+
   /**
    * POST wrapper for oAuthRequest.
    */
index 575e6f7f87147315a98305da0ba771b7516bd0ec..ee6ac38da4d381f89696d87b8265f498a3c33b40 100755 (executable)
@@ -39,9 +39,9 @@
 <h3>Hostels</h3>
 
 <ul>
-  <li><a href="https://www.hiusa.org/hostels/massachusetts/boston/boston">HI Boston Hostel (Closest)</a> ($)</li> 
+  <li><a href="https://www.hiusa.org/hostels/massachusetts/boston/boston">HI Boston Hostel (Closest)</a> ($)</li>
   <li><a href="https://www.foundhotels.com/cities/boston/">Found Hostel</a> ($$)</li>
+
 <li>Other hostels a little farther out can be found at <a href="https://www.hostelworld.com/search?search_keywords=Boston,%20USA&country=USA&city=Boston&date_from=2020-03-14&date_to=2020-03-15&number_of_guests=1">HostelWorld</a></li>
 </ul>
 
@@ -52,7 +52,7 @@
   <li><a href="https://www.marriott.com/hotels/travel/bosbo-sheraton-boston-hotel/">The Sheraton</a> - Contemporary hotel (Marriott chain) Located centrally ($$)</li>
   <li><a href="https://bostonparkplaza.reztrip.com/classic/en/special_offer?action=show&controller=landings&locale=en&rate_code%5B%5D=SHOSP&rate_code%5B%5D=SHOSP&starting_page=special_offer&vr=3">Boston Park Plaza</a> price varies ($$$)</li>
 </ul>
-<p>&nbsp; 
+<p>&nbsp;
     <h2>Transportation</h2>
 
     <p>The easiest way to get around Boston/Cambridge is to use the <a href="http://www.mbta.com">MBTA</a>. Passes can be purchased with cash or credit/debit cards in stations. </p>
@@ -68,7 +68,7 @@
   <li>Cabs are located all over the city: at the airport and major subway stations.</li>
 <li>The <a href="http://www.mbta.com/schedules_and_maps/subway/lines/?route=BLUE">Blue Line</a> is a train, with a shuttle bus from Logan Airport to the Airport MBTA stop; the <a href="http://www.mbta.com/schedules_and_maps/subway/lines/?route=SILVER">Silver Line</a> is an expedited bus. The MBTA website provides a very <a href="http://www.mbta.com/riding_the_t/logan/">helpful page</a> on how to navigate via the Silver Line and Blue Line from the airport.</li>
   </ul>
-<p>&nbsp; 
+<p>&nbsp;
 <h3 id="getting-around"> Getting Around </h3>
 <!--     <h4 id="getting-around">Getting to LibrePlanet at the Back Bay Events Center</h4> -->
 
@@ -92,7 +92,7 @@
 
 <!--<p>Our <a href="#map">map</a> is useful for finding your way from the station to the conference.</p>
 -->
-<p>&nbsp; 
+<p>&nbsp;
 
       <h4 id="getting-around">Getting to the Free Software Foundation office</h4>
       <ul>
   <ul>
     <li>From North of the city, travel via <a href="http://www.mbta.com/schedules_and_maps/subway/lines/stations/?stopId=15583&amp;lat=42.365551&amp;lng=-71.061251">North Station</a> From there, take the Orange Line to <a href="http://www.mbta.com/schedules_and_maps/subway/lines/stations/?stopId=13771">Downtown Crossing</a> to reach the office. </li>
     <li>From south of the city, travel via <a href="http://www.mbta.com/schedules_and_maps/rail/lines/stations/?stopId=191">South Station.</a> Take the red line to <a href="https://www.mbta.com/stops/place-dwnxg?from=global-search&query=downtown&facets=stops%2Cfacet-station%2Cfacet-stop"> Downtown Crossing.</a></li>
-</ul>  
+</ul>
 
 Directions: Each of these subway stations is only a block away from the FSF. State Street and Government Center are also in easy walking distance.
             </ul>
@@ -108,7 +108,7 @@ Directions: Each of these subway stations is only a block away from the FSF. Sta
       <p>The door is unlocked during the day, so you can just come right on inside to the 5th floor. If the door happens to be locked, call us at +1 617 542 5942.</p>
 
   <p><b>If you have questions about traveling, contact us at <a href="mailto:campaigns@fsf.org">campaigns@fsf.org</a>.</b></p>
+
           </li>
       </ul>
 
index 489b09aa4b40f24e00c52eaa1005251374ea28fe..c7b031544f25a92215d65cd53935eb1e123086cc 100644 (file)
@@ -8,7 +8,7 @@
     <p class="text-muted">
       LibrePlanet is produced by the <a href="https://www.fsf.org">Free Software Foundation (FSF). </a></p>
     <p class="text-muted">
-      <a href="https://www.fsf.org/about/contact/"><strong>Contact the FSF.</strong></a></p> 
+      <a href="https://www.fsf.org/about/contact/"><strong>Contact the FSF.</strong></a></p>
     <p class="text-muted">
       Except where otherwise noted, this site and its images, logos and and other media are licensed under
       <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0</a>.
index 869aae35c63c4bcf78a5b26ceacdc828411f3ed5..716e190bf492e834f9ae80e19ea9909335cb4e8e 100644 (file)
@@ -1,4 +1,4 @@
-      <!--pagestart-->    
+      <!--pagestart-->
 
       <div class="view-content">
         <h3>Keynote Speakers</h3>
@@ -10,7 +10,7 @@
 <div class="webform-html-textarea"><h2 style="clear:both">A European Open Technology Fund: Building sustainable public funding for free software</h2></div>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#5416">Saturday 12:00 - 12:45 EDT - Opening keynote</a><br>
-<i class="glyphicon glyphicon-home" style="clear:both"></i>: Jupiter 
+<i class="glyphicon glyphicon-home" style="clear:both"></i>: Jupiter
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span>
 </div>
@@ -31,7 +31,7 @@
 <div class="webform-html-textarea"><h2 style="clear:both">Machine agency: Infrastructure for creative automation</h2></div>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#5429">Sunday 12:00 - 12:45 EDT - Opening keynote</a><br>
-<i class="glyphicon glyphicon-home" style="clear:both"></i>: Jupiter 
+<i class="glyphicon glyphicon-home" style="clear:both"></i>: Jupiter
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span>
 </div>
 </div>
   </div></div>  </div>  </div>
   <div class="views-row views-row-4 views-row-even views-row-last">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="5428">
 
 <div class="talkblock" style="clear:both">
 <div class="webform-html-textarea"><h2 style="clear:both">Ten years of empowering activists AND everyday people through free mobile software</h2></div>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#5428">Sunday 17:30 - 18:15 EDT - Closing keynote</a><br>
-<i class="glyphicon glyphicon-home" style="clear:both"></i>: Jupiter 
+<i class="glyphicon glyphicon-home" style="clear:both"></i>: Jupiter
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span>
 </div>
@@ -70,7 +70,7 @@
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <h3>Speakers</h3>
   <div class="views-row views-row-1 views-row-odd views-row-first">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="5459">
 
 <div class="talkblock" style="clear:both">
@@ -78,7 +78,7 @@
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#5459">Saturday 16:35 - 17:20 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -94,7 +94,7 @@
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-2 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4821">
 
 <div class="talkblock" style="clear:both">
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4821">Saturday 12:55 - 13:40 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -120,7 +120,7 @@ Combining his work in graphic design, music production, film editing, and softwa
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-3 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4830">
 
 <div class="talkblock" style="clear:both">
@@ -128,7 +128,7 @@ Combining his work in graphic design, music production, film editing, and softwa
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4830">Sunday 12:55 - 13:40 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span>
 </div>
@@ -152,7 +152,7 @@ Ingestum has four main concepts:</p>
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-4 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4907">
 
 <div class="talkblock" style="clear:both">
@@ -160,7 +160,7 @@ Ingestum has four main concepts:</p>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4907">Saturday 15:40 - 16:25 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack8">Security</span>
 </div>
@@ -177,7 +177,7 @@ Ingestum has four main concepts:</p>
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-5 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4548">
 
 <div class="talkblock" style="clear:both">
@@ -185,7 +185,7 @@ Ingestum has four main concepts:</p>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4548">Saturday 13:50 - 14:35 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -211,7 +211,7 @@ Learn the latest in the fight from one of the leaders of the movement. We're als
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4527"> </a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Workshops 
+<i class="glyphicon glyphicon-home"></i>: Workshops
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack7">Workshop</span>
 </div>
@@ -229,7 +229,7 @@ Learn the latest in the fight from one of the leaders of the movement. We're als
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-11 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4285">
 
 <div class="talkblock" style="clear:both">
@@ -237,7 +237,7 @@ Learn the latest in the fight from one of the leaders of the movement. We're als
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4285">Saturday 15:40 - 16:25 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -255,7 +255,7 @@ This talk gives an introduction to Jami, a free/libre, truly distributed, and pe
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-12 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4889">
 
 <div class="talkblock" style="clear:both">
@@ -263,7 +263,7 @@ This talk gives an introduction to Jami, a free/libre, truly distributed, and pe
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4889">Sunday 16:35 - 17:20 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -281,7 +281,7 @@ This talk gives an introduction to Jami, a free/libre, truly distributed, and pe
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-13 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4624">
 
 <div class="talkblock" style="clear:both">
@@ -289,7 +289,7 @@ This talk gives an introduction to Jami, a free/libre, truly distributed, and pe
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4624">Sunday 14:45 - 15:30 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack8">Security</span>
 </div>
@@ -307,7 +307,7 @@ This talk gives an introduction to Jami, a free/libre, truly distributed, and pe
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-14 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4763">
 
 <div class="talkblock" style="clear:both">
@@ -315,7 +315,7 @@ This talk gives an introduction to Jami, a free/libre, truly distributed, and pe
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4763">Sunday 16:35 - 17:20 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span>
 </div>
@@ -332,7 +332,7 @@ Founded and operated exclusively by radical queer and femme technologists, we of
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-15 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="5420">
 
 <div class="talkblock" style="clear:both">
@@ -340,7 +340,7 @@ Founded and operated exclusively by radical queer and femme technologists, we of
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#5420">Saturday 13:50 - 14:35 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span>
 </div>
@@ -354,7 +354,7 @@ Founded and operated exclusively by radical queer and femme technologists, we of
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-16 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4841">
 
 <div class="talkblock" style="clear:both">
@@ -362,7 +362,7 @@ Founded and operated exclusively by radical queer and femme technologists, we of
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4841">Saturday 14:45 - 15:30 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack8">Security</span>
 </div>
@@ -380,7 +380,7 @@ Founded and operated exclusively by radical queer and femme technologists, we of
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-17 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4415">
 
 <div class="talkblock" style="clear:both">
@@ -388,7 +388,7 @@ Founded and operated exclusively by radical queer and femme technologists, we of
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4415">Saturday 14:45 - 15:30 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span>
 </div>
@@ -406,7 +406,7 @@ Founded and operated exclusively by radical queer and femme technologists, we of
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-18 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4787">
 
 <div class="talkblock" style="clear:both">
@@ -414,7 +414,7 @@ Founded and operated exclusively by radical queer and femme technologists, we of
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4787">Saturday 12:55 - 13:40 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -431,7 +431,7 @@ Founded and operated exclusively by radical queer and femme technologists, we of
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-19 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4877">
 
 <div class="talkblock" style="clear:both">
@@ -439,7 +439,7 @@ Founded and operated exclusively by radical queer and femme technologists, we of
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4877">Saturday 10:10 - 10:55 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack5">Free software in Government</span>
 </div>
@@ -466,7 +466,7 @@ Founded and operated exclusively by radical queer and femme technologists, we of
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-20 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4904">
 
 <div class="talkblock" style="clear:both">
@@ -474,7 +474,7 @@ Founded and operated exclusively by radical queer and femme technologists, we of
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4904">Sunday 14:45 - 15:30 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -490,7 +490,7 @@ Founded and operated exclusively by radical queer and femme technologists, we of
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-21 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4869">
 
 <div class="talkblock" style="clear:both">
@@ -498,7 +498,7 @@ Founded and operated exclusively by radical queer and femme technologists, we of
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4869"> </a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Workshops 
+<i class="glyphicon glyphicon-home"></i>: Workshops
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack7">Workshop</span>
 </div>
@@ -535,7 +535,7 @@ It also touches on basic and Perl Compatible Regular Expressions (PCRE).</p>
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-22 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4828">
 
 <div class="talkblock" style="clear:both">
@@ -543,7 +543,7 @@ It also touches on basic and Perl Compatible Regular Expressions (PCRE).</p>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4828">Saturday 13:50 - 14:35 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -559,7 +559,7 @@ It also touches on basic and Perl Compatible Regular Expressions (PCRE).</p>
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-23 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4670">
 
 <div class="talkblock" style="clear:both">
@@ -567,7 +567,7 @@ It also touches on basic and Perl Compatible Regular Expressions (PCRE).</p>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4670">Sunday 11:05 - 11:50 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -584,7 +584,7 @@ It also touches on basic and Perl Compatible Regular Expressions (PCRE).</p>
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-24 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4843">
 
 <div class="talkblock" style="clear:both">
@@ -592,7 +592,7 @@ It also touches on basic and Perl Compatible Regular Expressions (PCRE).</p>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4843">Saturday 15:40 - 16:25 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -608,7 +608,7 @@ It also touches on basic and Perl Compatible Regular Expressions (PCRE).</p>
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-25 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4678">
 
 <div class="talkblock" style="clear:both">
@@ -616,7 +616,7 @@ It also touches on basic and Perl Compatible Regular Expressions (PCRE).</p>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4678">Saturday 16:35 - 17:20 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -633,7 +633,7 @@ It also touches on basic and Perl Compatible Regular Expressions (PCRE).</p>
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-26 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4530">
 
 <div class="talkblock" style="clear:both">
@@ -641,7 +641,7 @@ It also touches on basic and Perl Compatible Regular Expressions (PCRE).</p>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4530">Sunday 11:05 - 11:50 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack5">Free software in Government</span>
 </div>
@@ -659,7 +659,7 @@ He helps other organizations, companies, and governments to understand how they
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-27 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4650">
 
 <div class="talkblock" style="clear:both">
@@ -667,7 +667,7 @@ He helps other organizations, companies, and governments to understand how they
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4650">Saturday 10:10 - 10:55 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -684,7 +684,7 @@ He helps other organizations, companies, and governments to understand how they
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-28 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4776">
 
 <div class="talkblock" style="clear:both">
@@ -692,7 +692,7 @@ He helps other organizations, companies, and governments to understand how they
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4776">Sunday 15:40 - 16:25 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -708,7 +708,7 @@ He helps other organizations, companies, and governments to understand how they
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-29 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4737">
 
 <div class="talkblock" style="clear:both">
@@ -716,7 +716,7 @@ He helps other organizations, companies, and governments to understand how they
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4737">Sunday 16:35 - 17:20 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -733,7 +733,7 @@ He helps other organizations, companies, and governments to understand how they
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-30 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4689">
 
 <div class="talkblock" style="clear:both">
@@ -741,7 +741,7 @@ He helps other organizations, companies, and governments to understand how they
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4689">Saturday 12:55 - 13:40 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span>
 </div>
@@ -758,7 +758,7 @@ He helps other organizations, companies, and governments to understand how they
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-31 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4663">
 
 <div class="talkblock" style="clear:both">
@@ -766,7 +766,7 @@ He helps other organizations, companies, and governments to understand how they
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4663">Sunday 10:10 - 10:55 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span>
 </div>
@@ -784,7 +784,7 @@ He helps other organizations, companies, and governments to understand how they
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-32 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4818">
 
 <div class="talkblock" style="clear:both">
@@ -792,7 +792,7 @@ He helps other organizations, companies, and governments to understand how they
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4818">Sunday 13:50 - 14:35 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -808,7 +808,7 @@ He helps other organizations, companies, and governments to understand how they
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-33 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4858">
 
 <div class="talkblock" style="clear:both">
@@ -816,7 +816,7 @@ He helps other organizations, companies, and governments to understand how they
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4858">12:55 EDT -14:25 EDT </a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Workshops 
+<i class="glyphicon glyphicon-home"></i>: Workshops
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack7">Workshop</span>
 </div>
@@ -832,7 +832,7 @@ He helps other organizations, companies, and governments to understand how they
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-34 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4834">
 
 <div class="talkblock" style="clear:both">
@@ -840,7 +840,7 @@ He helps other organizations, companies, and governments to understand how they
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4834">Sunday 10:10 - 10:55 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span>
 </div>
@@ -856,7 +856,7 @@ He helps other organizations, companies, and governments to understand how they
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-35 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4730">
 
 <div class="talkblock" style="clear:both">
@@ -864,7 +864,7 @@ He helps other organizations, companies, and governments to understand how they
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4730">Saturday 11:05 - 11:50 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -883,7 +883,7 @@ He helps other organizations, companies, and governments to understand how they
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-36 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4686">
 
 <div class="talkblock" style="clear:both">
@@ -891,7 +891,7 @@ He helps other organizations, companies, and governments to understand how they
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4686">Sunday 15:40 - 16:25 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -908,7 +908,7 @@ He helps other organizations, companies, and governments to understand how they
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-37 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4844">
 
 <div class="talkblock" style="clear:both">
@@ -916,7 +916,7 @@ He helps other organizations, companies, and governments to understand how they
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4844">Saturday 11:05 - 11:50 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span>
 </div>
@@ -934,7 +934,7 @@ Networking and freedom of communication are meant to be great equalizers. That w
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-38 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4769">
 
 <div class="talkblock" style="clear:both">
@@ -942,7 +942,7 @@ Networking and freedom of communication are meant to be great equalizers. That w
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4769">Sunday 10:10 - 10:55 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -959,7 +959,7 @@ The author of Pepper&amp;Carrot - a free/libre webcomic -- will propose new answ
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-39 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4707">
 
 <div class="talkblock" style="clear:both">
@@ -967,7 +967,7 @@ The author of Pepper&amp;Carrot - a free/libre webcomic -- will propose new answ
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4707">Sunday 13:50 - 14:35 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -984,7 +984,7 @@ The author of Pepper&amp;Carrot - a free/libre webcomic -- will propose new answ
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-40 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4687">
 
 <div class="talkblock" style="clear:both">
@@ -992,7 +992,7 @@ The author of Pepper&amp;Carrot - a free/libre webcomic -- will propose new answ
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4687">Saturday 14:45 - 15:30 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -1009,7 +1009,7 @@ The author of Pepper&amp;Carrot - a free/libre webcomic -- will propose new answ
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-41 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4819">
 
 <div class="talkblock" style="clear:both">
@@ -1017,7 +1017,7 @@ The author of Pepper&amp;Carrot - a free/libre webcomic -- will propose new answ
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4819">Sunday 12:55 - 13:40 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack8">Security</span>
 </div>
@@ -1033,7 +1033,7 @@ The author of Pepper&amp;Carrot - a free/libre webcomic -- will propose new answ
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-42 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4570">
 
 <div class="talkblock" style="clear:both">
@@ -1041,7 +1041,7 @@ The author of Pepper&amp;Carrot - a free/libre webcomic -- will propose new answ
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4570">Sunday 12:55 - 13:40 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span>
 </div>
@@ -1061,7 +1061,7 @@ I concluded that the answer was not either face a big fight or do nothing, I cou
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-43 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4673">
 
 <div class="talkblock" style="clear:both">
@@ -1069,7 +1069,7 @@ I concluded that the answer was not either face a big fight or do nothing, I cou
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4673">Sunday 14:45 - 15:30 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack5">Free software in Government</span>
 </div>
@@ -1085,7 +1085,7 @@ I concluded that the answer was not either face a big fight or do nothing, I cou
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-44 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="5442">
 
 <div class="talkblock" style="clear:both">
@@ -1093,7 +1093,7 @@ I concluded that the answer was not either face a big fight or do nothing, I cou
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#5442">Sunday 15:40 - 16:25 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span>
 </div>
@@ -1121,7 +1121,7 @@ They are:
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-45 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4906">
 
 <div class="talkblock" style="clear:both">
@@ -1129,7 +1129,7 @@ They are:
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4906">Sunday 13:50 - 14:35 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -1145,7 +1145,7 @@ They are:
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-46 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4823">
 
 <div class="talkblock" style="clear:both">
@@ -1153,7 +1153,7 @@ They are:
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4823">Sunday 11:05 - 11:50 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span>
 </div>
@@ -1172,7 +1172,7 @@ Plom is GPLv3 licensed and is currently in use at the University of British Colu
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-47 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4909">
 
 <div class="talkblock" style="clear:both">
@@ -1180,7 +1180,7 @@ Plom is GPLv3 licensed and is currently in use at the University of British Colu
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4909">Saturday 11:05 - 11:50 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span>
 </div>
@@ -1202,7 +1202,7 @@ This presentation aims to help people:<br />
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
   <div class="views-row views-row-48 views-row-even views-row-last">
-      
+
   <div class="views-field views-field-nothing-2">        <div class="field-content"><hr id="4863">
 
 <div class="talkblock" style="clear:both">
@@ -1210,7 +1210,7 @@ This presentation aims to help people:<br />
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2021/program/#4863">Saturday 10:10 - 10:55 EDT</a>
 <br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 <br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -1228,9 +1228,9 @@ This talk will provide an update about the Software Heritage project, focusing o
 </div></div>  </div>
   <div class="views-field views-field-value-11">        <div class="field-content"></div>  </div>  </div>
     </div>
-  
-  
-  
-  
+
+
+
+
       <div class="view-footer">
       <!--pageend-->    </div>
index 7fe3127d1fc8ff967db05ef28a981409009b0fb7..cfd3204e29196223ff6eee450875cc21788fe01a 100644 (file)
@@ -1,15 +1,15 @@
-      <!--pagestart-->    
-  
-  
-  
+      <!--pagestart-->
+
+
+
       <div class="view-content">
       <div class="view-grouping"><div class="view-grouping-header"><div id="schedule-Saturday">Saturday</div></div><div class="view-grouping-content">  <h3>9:45 - 10:00 EDT - Welcome address</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/welcome-address-by-the-fsf-5272/"><div id="5397"><div class="webform-html-textarea"><p>Welcome address by FSF</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
@@ -18,9 +18,9 @@
  LibrePlanet  2021
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
 </table>
   <h3>10:10 - 10:55 EDT</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/technopolice-one-year-of-activism-against-surveillance-technologies/"><div id="4877"><div class="webform-html-textarea"><p>Technopolice: One year of activism against surveillance technologies</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  Edlira Nano &amp;  Guinness
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
+
 
   <br>
 
 
 </div></div>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="/2021/speakers/#4863"><div id="4863"><div class="webform-html-textarea"><p>Software Heritage: The great library of source code</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</div>  </div>
  Stefano  Zacchiroli
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/bridging-the-digital-divide-in-education-with-free-software-and-hardware/"><div id="4650"><div class="webform-html-textarea"><p>Bridging the digital divide in education with free software and hardware</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</div>  </div>
@@ -74,9 +74,9 @@
  Sripath Roy  Koganti
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
 </table>
   <h3>11:05 - 11:50 EDT</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/the-state-of-software-in-schools-and-what-to-do-about-it/"><div id="4909"><div class="webform-html-textarea"><p>The state of software in schools and what to do about it</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  Mariah  Villarreal
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/lessons-framasoft-has-learned/"><div id="4730"><div class="webform-html-textarea"><p>Lessons Framasoft has learned</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</div>  </div>
  Pouhiou  Noénaute
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/freeing-networks-where-we-need-freedom-most/"><div id="4844"><div class="webform-html-textarea"><p>Freeing networks where we need freedom most</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</div>  </div>
  Alper Atmaca &amp;  Özcan Oğuz
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
+
 
   <br>
 
 </table>
   <h3>12:00 - 12:45 EDT - Opening keynote</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="/2021/speakers/#5416"><div id="5416"><div class="webform-html-textarea"><p>A European Open Technology Fund: Building sustainable public funding for free software</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  Julia  Reda
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
 </table>
   <h3>12:55 - 13:40 EDT</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/logiciel-libre-societe-libre-free-software-activism-in-france-and-europe/"><div id="4787"><div class="webform-html-textarea"><p>"Logiciel libre, société libre": Free software activism in France and Europe</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  Etienne  Gonnu
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="/2021/speakers/#4689"><div id="4689"><div class="webform-html-textarea"><p>The defense of the GNOME Foundation</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</div>  </div>
  Neil  McGovern
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/gamifying-education-the-libre-way/"><div id="4821"><div class="webform-html-textarea"><p>Gamifying education the libre way</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</div>  </div>
  Giselle Jhunjhnuwala   &amp; Charlie Koch
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
+
 
   <br>
 
 </table>
   <h3>13:50 - 14:35 EDT</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/right-to-repair/"><div id="4548"><div class="webform-html-textarea"><p>Right to Repair</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  iFixit  .
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
+
 
   Kyle Wiens<br>
 
 
 </div></div>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/hpp-committee/"><div id="5420"><div class="webform-html-textarea"><p>HPP committee</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</div>  </div>
  HPP   Committee
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/manufactura-independente-10-years-of-designing-in-the-libre/"><div id="4828"><div class="webform-html-textarea"><p>Manufactura Independente: 10 years of designing in the libre</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</div>  </div>
  Manufactura  Independente
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
 </table>
   <h3>14:45 - 15:30 EDT</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/usable-security-for-end-users-how-tor-improves-usability-without-compromising-user-privacy/"><div id="4841"><div class="webform-html-textarea"><p>Usable security for end-users: How Tor improves usability without compromising user privacy</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  Antonela  Debiasi
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/does-your-gpu-work-with-free-graphics-drivers/"><div id="4687"><div class="webform-html-textarea"><p>Does your GPU work with free graphics drivers?</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</div>  </div>
  Alyssa  Rosenzweig
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/adopting-free-software-ideals/"><div id="4415"><div class="webform-html-textarea"><p>Adopting free software ideals</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</div>  </div>
  Mike  Gerwitz
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
 </table>
   <h3>15:40 - 16:25 EDT</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/jami-and-how-it-empowers-users/"><div id="4285"><div class="webform-html-textarea"><p>Jami and how it empowers users</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  Amin  Bandali
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/building-equitable-free-software-communities-for-all/"><div id="4843"><div class="webform-html-textarea"><p>Building equitable free software communities for all</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</div>  </div>
  Karen  Johnson
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/3nweb-a-better-digital-world-is-possible/"><div id="4907"><div class="webform-html-textarea"><p>3NWeb: A Better digital world is possible</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</div>  </div>
  Mikalai Birukou  &amp; Sean O&#039;Brien
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
+
 
   <br>
 
 </table>
   <h3>16:35 - 17:20 EDT</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/fsa-apsb-winner-civicrm-introduction-to-civicrm/"><div id="5459"><div class="webform-html-textarea"><p>Introduction to CiviCRM</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  Coleman   Watts
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/the-challenges-of-change-for-values-centered-nonprofits/"><div id="4678"><div class="webform-html-textarea"><p>The challenges of change for values-centered nonprofits</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</div>  </div>
  Luis Villa &amp;  Katherine Maher
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
+
 
   <br>
 
 
 </div></div>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="/2021/fun/#lightning-talks"><div id="5421"><div class="webform-html-textarea"><p>Lightning talks</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</div>  </div>
  LibrePlanet  2021
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
 </table>
   <h3>17:30 - 18:05 EDT - Closing keynote</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/keynote-by-fsf-president-geoff-knauth-and-executive-director-john-sullivan/"><div id="5422"><div class="webform-html-textarea"><p>Keynote by FSF president Geoff Knauth, and executive director John Sullivan</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  LibrePlanet  2021
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
 </table>
   <h3>18:05 - 18:20 EDT - FSF Award ceremony</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/fs-awards-ceremony/"><div id="5451"><div class="webform-html-textarea"><p>FSF Awards Ceremony</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  FSF Awards  Ceremony
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
 </table>
   <h3>18:20 - 18:30 EDT - Closing remarks</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/closing-remarks-by-the-fsf-6d5f/"><div id="5423"><div class="webform-html-textarea"><p>Closing remarks by FSF</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  LibrePlanet   2021
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
 </table>
 </div></div><div class="view-grouping"><div class="view-grouping-header"><div id="schedule-Sunday">Sunday</div></div><div class="view-grouping-content">  <h3>9:45 - 10:00 EDT - Welcome address</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/welcome-address-by-the-fsf/"><div id="5427"><div class="webform-html-textarea"><p>Welcome Address by FSF</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  LibrePlanet  2021
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
 </table>
   <h3>10:10 - 10:55 EDT</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/reuse-simple-steps-to-declare-your-copyright-and-licenses/"><div id="4663"><div class="webform-html-textarea"><p>REUSE: Simple steps to declare your copyright and licenses</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  Max  Mehl
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/user-respecting-software-free-software-development-driven-by-users/"><div id="4834"><div class="webform-html-textarea"><p>User Respecting Software – free software development driven by users</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</div>  </div>
  Lori  Nagel
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/how-to-free-the-imagination/"><div id="4769"><div class="webform-html-textarea"><p>How to free the imagination</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</div>  </div>
  David  Revoy
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
 </table>
   <h3>11:05 - 11:50 EDT</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/plom-paperless-open-marking/"><div id="4823"><div class="webform-html-textarea"><p>Plom: Paperless Open Marking</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  Victoria Schuster, Dryden Wiebe &amp;  Vala Vakilian
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
+
 
   <br>
   <br>
 
 </div></div>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/public-money-public-code-a-campaign-framework-to-promote-software-freedom/"><div id="4530"><div class="webform-html-textarea"><p>"Public Money? Public Code!" A campaign framework to promote software freedom</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</div>  </div>
  Matthias  Kirschner
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/openwifi-project-the-dawn-of-the-free-libre-wifi-chip/"><div id="4670"><div class="webform-html-textarea"><p>Openwifi project: The dawn of the free/libre WiFi chip</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</div>  </div>
  Xianjun  Jiao
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
 </table>
   <h3>12:00 - 12:45 EDT - Opening keynote</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="/2021/speakers/#5429"><div id="5429"><div class="webform-html-textarea"><p>Machine agency: Infrastructure for creative automation</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  Nadya  Peek
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
 </table>
   <h3>12:55 - 13:40 EDT</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/securedrop-workstation-handling-unsafe-documents-safely/"><div id="4819"><div class="webform-html-textarea"><p>SecureDrop Workstation: Handling unsafe documents safely</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  Conor  Schaefer
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/remote-education-my-children-s-freedom-and-privacy-at-stake/"><div id="4570"><div class="webform-html-textarea"><p>Remote education: My children's freedom and privacy at stake</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</div>  </div>
  Javier  Sepulveda Sanchis
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/ingestum-a-libre-nlp-document-ingestion-library/"><div id="4830"><div class="webform-html-textarea"><p>Ingestum: A libre NLP document ingestion library</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</div>  </div>
  Walter Bender, Martín Abente Lahaye  &amp; Juan Pablo Ugarte
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
+
 
   <br>
   <br>
 </table>
   <h3>13:50 - 14:35 EDT</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/informal-chatter-to-formal-decisions-how-to/"><div id="4906"><div class="webform-html-textarea"><p>Informal chatter to formal decisions: How-to</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  Katheryn  Sutter
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="/2021/speakers/#4818"><div id="4818"><div class="webform-html-textarea"><p>Here's how you can get all your day-to-day computing done with free software</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</div>  </div>
  Alice  Monsen
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/a-dispatch-from-the-front-lines-of-right-to-repair/"><div id="4707"><div class="webform-html-textarea"><p>A dispatch from the front lines of right to repair</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</div>  </div>
  Paul  Roberts
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
 </table>
   <h3>14:45 - 15:30 EDT</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/labor-movements-and-the-free-software-community/"><div id="4673"><div class="webform-html-textarea"><p>Labor movements and the free software community</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  Amanda  Sopkin
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/an-information-theoretic-model-of-privacy-and-security-metrics/"><div id="4624"><div class="webform-html-textarea"><p>An information theoretic model of privacy and security metrics</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</div>  </div>
  Bill  Budington
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/making-dollars-and-sense-of-free-software-funding-s-future/"><div id="4904"><div class="webform-html-textarea"><p>Making dollars and sense of free software funding's future</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</div>  </div>
  Wm Salt  Hale
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
 </table>
   <h3>15:40 - 16:25 EDT</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/unjust-computing-clamps-down/"><div id="5442"><div class="webform-html-textarea"><p>Unjust computing clamps down</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  Richard  Stallman
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/empower-users-by-asking-them-for-money/"><div id="4686"><div class="webform-html-textarea"><p>Empower users by asking them for money</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</div>  </div>
  Martin  Owens
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/libre-designers-do-exist-and-survive/"><div id="4776"><div class="webform-html-textarea"><p>Libre designers do exist (and survive)</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</div>  </div>
  Maria  Leandro
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
 </table>
   <h3>16:35 - 17:20 EDT</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/free-libre-solutions-to-address-the-shortage-of-ventilators/"><div id="4737"><div class="webform-html-textarea"><p>Free/libre solutions to address the shortage of ventilators</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  Robert Read &amp;   Marc Jones
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
+
 
   <br>
 
 
 </div></div>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/how-to-make-more-users-love-free-software-double-the-love-double-the-freedom/"><div id="4889"><div class="webform-html-textarea"><p>How to make more users love free software: Double the love, double the freedom</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</div>  </div>
  Clarissa  Borges
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/beyond-learning-to-code-how-tech-learning-collective-merges-it-training-with-emancipatory-political-action/"><div id="4763"><div class="webform-html-textarea"><p>Beyond "learning to code": How Tech Learning Collective merges IT training with emancipatory political action</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</div>  </div>
  Tech Learning  Collective
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
 </table>
   <h3>17:30 - 18:15 EDT - Closing keynote</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/keynote-ten-years-of-empowering-activists-and-everyday-people-through-free-mobile-software/"><div id="5428"><div class="webform-html-textarea"><p>Ten years of empowering activists AND everyday people through free mobile software</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  Nathan  Freitas
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
 </table>
   <h3>18:20 - 18:30 EDT - Closing remarks</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <div class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/closing-remarks-by-the-fsf/"><div id="5432"><div class="webform-html-textarea"><p>Closing remarks by FSF</p>
 </div></div></a></div>  </div>
   <div class="views-field views-field-value-3">        <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</div>  </div>
  LibrePlanet  2021
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></div>  </div>          </td>
       </tbody>
 </table>
 </div></div>    </div>
-  
-  
-  
-  
+
+
+
+
       <div class="view-footer">
       <!--pageend-->    </div>
index c4ae3207f6f169a98d08099d9221282e7240ba64..84c8394b5eba5a962c19c55236c6263ff738f8d3 100644 (file)
@@ -49,7 +49,7 @@
               Read our privacy policy.
             </a>
           </p>
-        </div>  
+        </div>
       </div>
     </div>
   </form>
index 85730e7c04821c78ace441169126eaa00f8df3c3..03ff65929bc9879e0210e59093c88a197174cd3d 100755 (executable)
@@ -16,7 +16,7 @@
                <br>
                <a href="https://media.libreplanet.org/">Videos from LibrePlanet 2021 are now online!</a>
             </p>
-       </li> 
+       </li>
                  <li class="item">
            <a href="https://libreplanet.org/2021/registered/"><img src="//static.fsf.org/nosvn/libreplanet/2021/communications/livesite/LibreAdventure.png"
                 alt="[ Image of the LibreAdventure virtual space ]"></a>
@@ -24,7 +24,7 @@
                <br>
                <a href="https://libreplanet.org/2021/registered/">LibrePlanet 2021 has ended. Thank you for attending!</a>
             </p>
-       </li> 
+       </li>
                  <li class="item">
            <a href="https://shop.fsf.org"><img src="//static.fsf.org/nosvn/libreplanet/2021/communications/livesite/shirt.jpg"
                 alt="[ Image of the LibrePlanet 2021 t-shirt. ]"></a>
@@ -32,7 +32,7 @@
                <br>
                <a href="https://shop.fsf.org">Get your swag at the FSF shop.</a>
             </p>
-       </li> 
+       </li>
        <li class="item">
            <img src="https://static.fsf.org/nosvn/libreplanet/2021/communications/livesite/libreplanet-minetest.png"
                      alt="[ Screenshot of minetest ]">
@@ -41,7 +41,7 @@
            </p>
         </li>
         <!--<li class="item">
-           <img src="//static.fsf.org/nosvn/libreplanet/2020/assets/volunteer1-2.jpg" 
+           <img src="//static.fsf.org/nosvn/libreplanet/2020/assets/volunteer1-2.jpg"
                 alt="[ A photo of the GNU Press table from LibrePlanet 2019. ]">
            <p class="carousel-caption-center">
                Volunteers keep LibrePlanet spinning <br>(and get great perks as well).<br>
index d5811f30847b9fea2c4e79879abed1f03d6547d7..a1fbefbd026b36c993c5ef23439c003e820502c2 100644 (file)
@@ -847,11 +847,11 @@ The author of Pepper &amp; Carrot - a free/libre webcomic - will propose new ans
        <title>Ingestum: A FOSS NLP document ingestion library</title>
        <abstract>Many NLP projects that depend upon the analysis of documents are impaired by the difficulty of transforming source material into a computer-readable format. For example, PDF files are designed for human consumption but can look like a bag full of words to a computer. To address this problem engineers at Sorcero developed Ingestum, a library that is used to "devour" content sources, outputting a format that can be used for additional processing. Ingestum has four main concepts:
 
-Sources - common content sources that feed the ingestion process, e.g. PDF, HTML, PNG, WAV, Twitter, email, et al. 
+Sources - common content sources that feed the ingestion process, e.g. PDF, HTML, PNG, WAV, Twitter, email, et al.
 
-Documents - the intermediary and final states of a source during the ingestion process.  
+Documents - the intermediary and final states of a source during the ingestion process.
 
-Transformers - a transformation function that can be applied a document, e.g. removing hyphens from a text document. 
+Transformers - a transformation function that can be applied a document, e.g. removing hyphens from a text document.
 
 Conditionals - a logic conditional operation that can be use to modify the behavior of a transformer.</abstract>
        <links>
index ff6d86c7994143424a4eb4c33fac399c9f525f24..2f77b0ddd19eeed1a35789f1ddced4ea566acb06 100755 (executable)
@@ -7,7 +7,7 @@
 
 <h1>Raffle</h1>
 
-<p>We'll be raffling off fabulous free software prizes, thanks to <a href="https://libreplanet.org/2021/sponsors">some of our generous sponsors</a>. 
+<p>We'll be raffling off fabulous free software prizes, thanks to <a href="https://libreplanet.org/2021/sponsors">some of our generous sponsors</a>.
 
 <p>All attendees get a gratis raffle ticket, FSF members get a second gratis ticket, and everyone can buy more chances to win at the GNU Press table during LibrePlanet, as well as at the Friday open house and Saturday evening social events! Buy one ticket for $2, 3 tickets for $5, one arm's length for $20, cash or credit. FSF staff and board members are not eligible to participate in the raffle.</p>
 
@@ -22,7 +22,7 @@
 <!--   <li>Subscriptions to <a href="https://jmp.chat/">JMP</a></li> -->
 <!--   <li>ChaosKeys from <a href="https://altusmetrum.org/">Altus Metrum, LLC</a></li> -->
 <!-- </ul> -->
-                                                        
+
 
 
 <!--#include virtual="/2021/includes/footer.html"-->
index ad21500cd28d436a735cf61d5d3bda312ad40ea7..5887ad2ca0276c4888071fb21904dbad9c7bae4d 100755 (executable)
@@ -99,7 +99,7 @@ minetest</code></strong>.</p>
   and the default port <code>30000</code>.
 
 <p>Are you lost in the game? Use the in-game command <code>/spawn</code> to return to where you began.</p>-->
-<hr>  
+<hr>
 
 <a href="#voicechat"><h2 id="voicechat">Voice chat</h2></a>
 
index 2c7ce9ce32510564fb002c20ec3864eca6962a56..02b0fd1c6ad3810f08085a15f887df53dd633a8c 100755 (executable)
@@ -55,7 +55,7 @@ IRC Room name: <strong>#libreplanet-eff</strong></p>
 
 <h3>Video chat</h3>
 
-Visit the exhibitor's Jitsi chat URL above, if provided. Cameras are optional. 
+Visit the exhibitor's Jitsi chat URL above, if provided. Cameras are optional.
 
 <h3>Voice chat</h3>
 
index 1593f38202c3fb353f89bbcf16b81f0bd2e6a071..e070c350912a4da5f09ddee607d12d64248dcbca 100755 (executable)
@@ -48,7 +48,7 @@ maintained by Sugar Labs.</p>
 
 <img style="float: right; width: 200px; margin: 0 0 10px 10px;" src="https://static.fsf.org/nosvn/libreplanet/2021/sponsor-logos/openSUSE_logo.png">
 
-<p><a href="https://en.opensuse.org/Portal:Project">The openSUSE project</a> is a worldwide effort that promotes the use of GNU/Linux everywhere. openSUSE creates one of the world's best distributions, as well as a variety of tools, such as *OBS, OpenQA, Kiwi, YaST, OSEM*, working together in an open, transparent and friendly manner as part of the worldwide 
+<p><a href="https://en.opensuse.org/Portal:Project">The openSUSE project</a> is a worldwide effort that promotes the use of GNU/Linux everywhere. openSUSE creates one of the world's best distributions, as well as a variety of tools, such as *OBS, OpenQA, Kiwi, YaST, OSEM*, working together in an open, transparent and friendly manner as part of the worldwide
 <a href="https://en.opensuse.org/Free_and_Open_Source_Software">free software community.</a></p>
 
 <p><strong><a href="opensuse/">Read more / interact...</a></strong></p>
index 931ae5c7179b082c77ff8eb72f0cc62e5f0ca4f4..aba191013bff50338b4b6de2936b334f601c1cbb 100755 (executable)
@@ -25,13 +25,13 @@ h2 a { border: none; }
 <a name="mapping"><h3>Making it Ours: Mapping the History of our Movements' Relationship to the Internet and Envisioning its Future</h3></a>
 <ul>
 <li><strong>Time:</strong> Sunday, 21 March, 12:55 - 14:25 EDT (16:55 - 18:25 UTC)</li>
-<li><strong>Capacity:</strong> 15 -20 max</li> 
+<li><strong>Capacity:</strong> 15 -20 max</li>
 <li><strong>Workshop style:</strong> Interactive workshop with access to chat, you will work with software during the workshop.</li>
 <li><strong>Registration link:</strong> <a href="https://my.fsf.org/civicrm/event/info?reset=1&id=98">Register for the Making it Ours workshop</a></li>
 <li><strong>Participate Link:</strong> <a href="https://testgreenlight.fsf.org/and-dwv-jtg">https://testgreenlight.fsf.org/and-dwv-jtg</a></li>
 <li><strong>Presenter:</strong> <a href="/2021/speakers/#4527">Alice Aguilar</a> will host this workshop with Jamie McClelland, Jaime Villarreal, and Alfredo Lopez.</p></li>
 
-<li><strong>Description:</strong> 
+<li><strong>Description:</strong>
 
 <p>The cost of wide spread adoption of the corporate controlled internet is omnipresent surveillance, algorithmic racism, censorship and targeted manipulation of people of color. Are we ready to change? Can we envision people of color ownership of technology and community control grounded in social justice values?</p>
 <p>Seasoned activists of the liberatory Internet movement will guide participants through an interactive time-line exercise: mapping the points in people of color movements’ histories that have shaped our relationship with the Internet for the last quarter century, exploring how we’ve used internet communications for movement resilience, and collectively strategizing what our future relationship should be. Technology is political and this exercise makes the case for the need of free software.</p>
index 777f1b5ca0b4f7caed79fb1e013603216c7f1315..cb28c2f991382f124a98db1987a8b74c25ea6780 100755 (executable)
@@ -9,7 +9,7 @@
 
                        <div class="hover_img">
                                <img src="https://static.fsf.org/nosvn/libreplanet/sponsor-logos/redhat-on-dark.png"  alt="The red hat logo." height="75%" width="75%">
-                       
+
                        </div>
 
 
                        <div class="hover_img">
                          <img src="https://static.fsf.org/nosvn/libreplanet/2021/sponsor-logos/eff.png"  alt="Electronic Frontier Foundation logo." height="60%" width="60%">
                        </div>
-<br><br>                       
+<br><br>
                        <div class="hover_img">
                          <img src="https://static.fsf.org/nosvn/libreplanet/2021/sponsor-logos/openSUSE-gray.png"  alt="openSUSE logo" height="50%" width="50%">
                        </div>
-<br><br>                       
+<br><br>
                                                <div class="hover_img">
                          <img src="https://static.fsf.org/nosvn/libreplanet/2021/sponsor-logos/SugarLabs-gray.png"  alt="Sugar Labs logo" height="65%" width="65%">
                        </div>
@@ -49,7 +49,7 @@
                          </div>
                        </p>
                        <br>
-                       
+
 <p><div class="hover_img">
                                  <img src="https://static.fsf.org/nosvn/libreplanet/2021/sponsor-logos/jmp_libreplanet_logo.png"  alt="JMP logo" height="18%" width="18%">
                                </div>
@@ -64,7 +64,7 @@
                                  <img src="https://static.fsf.org/nosvn/libreplanet/2021/sponsor-logos/thinkpenguin.png"  alt="ThinkPenguin logo" height="18%" width="18%">
                                </div>
                        </p>
-                       
+
 <p><div class="hover_img">
                                  <img src="https://static.fsf.org/nosvn/libreplanet/2021/sponsor-logos/Boston_Beer_Company.jpg"  alt="Boston Beer Company logo" height="18%" width="18%">
                                </div>
@@ -81,7 +81,7 @@
 
                        <div class="hover_img">
                                <img src="https://static.fsf.org/nosvn/libreplanet/sponsor-logos/redhat-on-dark.png"  alt="The red hat logo." height="75%" width="75%">
-                       
+
                        </div>
 
 <h2>In-kind and raffle  sponsors</h2>
   <img src="https://static.fsf.org/nosvn/libreplanet/2019/sponsor-logos/wegmans.svg" alt="Wegman's logo" height="25%" width="30%">
   </p>
 -->
-                               
-                               
+
+
 <!--                           <div class="hover_img">
                                  <img src=""  alt="" height="50%" width="50%">
                                   <p class="text-muted text-center"> <a href=""></a></p>
-                               </div> 
-                                                                       
+                               </div>
+
 
-<p><em>All non-FSF logos are copyright their owners and used by permission.</em></p>                   
+<p><em>All non-FSF logos are copyright their owners and used by permission.</em></p>
 -->
 
 <!-- <h2>Confirmed Exhibitors</h2> -->
 
 <br>
 
-<h1>LibrePlanet 2021 Exhibitors</h1> 
+<h1>LibrePlanet 2021 Exhibitors</h1>
 
 Information for 2021 exhibitors will follow soon.
 
index 123c9c54aaa9ec172f1181de733fc9832b526f3e..cba1fd001b6bba2994344f73a27edb6641a24ac0 100755 (executable)
@@ -6,7 +6,7 @@
 <!--#include virtual="/2021/includes/sidebar.html"-->
 
 <h2>Unfortunately, pre-registration is full.</h2>
-<p>We will do our best to accomodate walk-up registrations. 
+<p>We will do our best to accomodate walk-up registrations.
 Prices are as follows:</p>
 <ul>
 <li>FSF members and students: $ 0</li>
index e270bfc0f0eab098721ac30f5633671e1cbd8bb7..f5eb57bb790c978cb1badf6064a9878d25922a01 100755 (executable)
@@ -41,16 +41,16 @@ Contents
 <li><strong>Capacity:</strong> 8 max
 <li><strong>Workshop style</strong> Highly interactive with access to voice and video
 <!--<li><strong>Registration link:</strong> <a href="https://my.fsf.org/civicrm/event/info?reset=1&id=96">Register for the Free Software Data Fortress for Your Home workshop</a></li>-->
-<li><strong>Presenter:</strong> <a href="https://libreplanet.org/2021/speakers/#4858">Adam Monsen</a> 
-<li><strong>Description:</strong> 
-<li><strong>Materials: <code>git clone https://gitlab.com/meonkeys/lp2021-private-cloud-workshop.git</code></strong> 
+<li><strong>Presenter:</strong> <a href="https://libreplanet.org/2021/speakers/#4858">Adam Monsen</a>
+<li><strong>Description:</strong>
+<li><strong>Materials: <code>git clone https://gitlab.com/meonkeys/lp2021-private-cloud-workshop.git</code></strong>
 <br>
  <p><strong>This workshop is currently full.</strong></p>
 <p>Your data is essential to your life, your agency, and your future. Come learn how to save, serve, and safely share your data at home with a smorgasbord of free software. I'll cover rapid setup and basic use of tools such as Traefik, Pi-Hole, Nextcloud, BackupPC, Wallabag, Jellyfin, Wordpress, and more. With these tools you can collaboratively edit documents in realtime online, stream music and video, and future-proof your digital assets.</p></li></ul>
 
 <hr id="4869">
 
-<a href="#expression"><h3 id="expression">Regular expression workshop</h3></a>  
+<a href="#expression"><h3 id="expression">Regular expression workshop</h3></a>
 <ul><li><strong>Time:</strong> Saturday, March 20, 15:40 - 17:10 EDT (19:40 - 21:10 UTC)</li>
 <li><strong>Capacity:</strong> 15 - 20 max</li>
 <li><strong>Workshop style</strong> Interactive workshop with access to chat, moderation will facilitate communications</li>
@@ -90,15 +90,15 @@ It also touches on basic and Perl Compatible Regular Expressions (PCRE).</p>
 
 <hr id="4527">
 
-<a href="#mapping"><h3 id="mapping">Making it ours: Mapping the history of our movements' relationship to the Internet and envisioning its future</h3></a>  
+<a href="#mapping"><h3 id="mapping">Making it ours: Mapping the history of our movements' relationship to the Internet and envisioning its future</h3></a>
 <ul>
 <li><strong>Time:</strong> Sunday, 21 March, 12:55 - 14:25 EDT (16:55 - 18:25 UTC)</li>
-<li><strong>Capacity:</strong> 15 -20 max</li> 
+<li><strong>Capacity:</strong> 15 -20 max</li>
 <li><strong>Workshop style</strong> Interactive workshop with access to chat, you will work with software during the workshop.</li>
 <!--<li><strong>Registration link:</strong> <a href="https://my.fsf.org/civicrm/event/info?reset=1&id=98">Register for the Making it Ours workshop</a></li>-->
 <li><strong>Presenter:</strong> <a href="https://libreplanet.org/2021/speakers/#4527">Alice Aguilar</a> will host this workshop with Jamie McClelland, Jaime Villarreal, and Alfredo Lopez.</li>
 
-<li><strong>Description:</strong> 
+<li><strong>Description:</strong>
 
 <p>The cost of wide spread adoption of the corporate controlled internet is omnipresent surveillance, algorithmic racism, censorship and targeted manipulation of people of color. Are we ready to change? Can we envision people of color ownership of technology and community control grounded in social justice values?</p>
 <p>Seasoned activists of the liberatory Internet movement will guide participants through an interactive time-line exercise: mapping the points in people of color movements’ histories that have shaped our relationship with the Internet for the last quarter century, exploring how we’ve used internet communications for movement resilience, and collectively strategizing what our future relationship should be. Technology is political and this exercise makes the case for the need of free software.</p>
index 9ac1805f9a390b1ccb4197cd4bc831f7f2360aa5..152f3949205b3c943ae0ada36415967e4f81806c 100644 (file)
@@ -38,8 +38,8 @@ h3  {
   font-size: 20px;
 }
 
-.lp-logo { 
-  margin-bottom: -78px; 
+.lp-logo {
+  margin-bottom: -78px;
   margin-top: 25px;
 }
 
@@ -1101,7 +1101,7 @@ border-radius: 5px
 
 
 @media (max-width:600px) {
-  
+
   .talkblock{
     clear: both;
     text-align: left;
index 7166c1681428d2f4828ad08f6b3f96cd3f0c5607..4ee39efa7cd1ddfeec5ceed329b10174f6088c60 100644 (file)
@@ -49,7 +49,7 @@
 .ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; }
 .ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
 .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; zoom: 1; }
-.ui-autocomplete { position: absolute; cursor: default; }      
+.ui-autocomplete { position: absolute; cursor: default; }
 
 /* workarounds */
 * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
@@ -57,8 +57,8 @@
 .ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; }
 .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
 button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
+.ui-button-icons-only { width: 3.4em; }
+button.ui-button-icons-only { width: 3.7em; }
 
 /*button text element */
 .ui-button .ui-button-text { display: block; line-height: 1.4;  }
@@ -95,7 +95,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
 .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
 .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
 .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
+.ui-datepicker select.ui-datepicker-month,
 .ui-datepicker select.ui-datepicker-year { width: 49%;}
 .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
 .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
index 94fb5490a2ed10b2c69a4a567a4fd2e4f706d841..f155876e1b9cf712c81dd78eac057c5629343b9b 100644 (file)
 <glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
 <glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
 </font>
-</defs></svg> 
\ No newline at end of file
+</defs></svg>
\ No newline at end of file
index 9dcbc53860673be65350d4c2cfeb2b492a033928..5bd130e6bac363ad91c22aa9b479779e41560cc2 100644 (file)
@@ -1014,7 +1014,7 @@ JSONPPolling.prototype.doPoll = function () {
   this.script = script;
 
   var isUAgecko = 'undefined' != typeof navigator && /gecko/i.test(navigator.userAgent);
-  
+
   if (isUAgecko) {
     setTimeout(function () {
       var iframe = document.createElement('iframe');
index ab76d3a76719287a317b694d276be1b1cd0b2fa5..8ef5770a9eaef4a9de2c6479746ed6b133739393 100644 (file)
@@ -915,7 +915,7 @@ $.widget("ui.mouse", {
                        .bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
 
                event.preventDefault();
-               
+
                mouseHandled = true;
                return true;
        },
@@ -1545,7 +1545,7 @@ $.widget("ui.draggable", $.ui.mouse, {
                this.handle = this._getHandle(event);
                if (!this.handle)
                        return false;
-               
+
                $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
                        $('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')
                        .css({
@@ -1629,12 +1629,12 @@ $.widget("ui.draggable", $.ui.mouse, {
                if ($.ui.ddmanager && !o.dropBehaviour)
                        $.ui.ddmanager.prepareOffsets(this, event);
 
-               
+
                this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
-               
+
                //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)
                if ( $.ui.ddmanager ) $.ui.ddmanager.dragStart(this, event);
-               
+
                return true;
        },
 
@@ -1673,7 +1673,7 @@ $.widget("ui.draggable", $.ui.mouse, {
                        dropped = this.dropped;
                        this.dropped = false;
                }
-               
+
                //if the original element is no longer in the DOM don't bother to continue (see #8269)
                var element = this.element[0], elementInDom = false;
                while ( element && (element = element.parentNode) ) {
@@ -1699,29 +1699,29 @@ $.widget("ui.draggable", $.ui.mouse, {
 
                return false;
        },
-       
+
        _mouseUp: function(event) {
                //Remove frame helpers
-               $("div.ui-draggable-iframeFix").each(function() { 
-                       this.parentNode.removeChild(this); 
+               $("div.ui-draggable-iframeFix").each(function() {
+                       this.parentNode.removeChild(this);
                });
-               
+
                //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)
                if( $.ui.ddmanager ) $.ui.ddmanager.dragStop(this, event);
-               
+
                return $.ui.mouse.prototype._mouseUp.call(this, event);
        },
-       
+
        cancel: function() {
-               
+
                if(this.helper.is(".ui-draggable-dragging")) {
                        this._mouseUp({});
                } else {
                        this._clear();
                }
-               
+
                return this;
-               
+
        },
 
        _getHandle: function(event) {
@@ -2042,12 +2042,12 @@ $.ui.plugin.add("draggable", "connectToSortable", {
                };
 
                $.each(inst.sortables, function(i) {
-                       
+
                        //Copy over some variables to allow calling the sortable's native _intersectsWith
                        this.instance.positionAbs = inst.positionAbs;
                        this.instance.helperProportions = inst.helperProportions;
                        this.instance.offset.click = inst.offset.click;
-                       
+
                        if(this.instance._intersectsWith(this.instance.containerCache)) {
 
                                //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once
@@ -2090,13 +2090,13 @@ $.ui.plugin.add("draggable", "connectToSortable", {
 
                                        this.instance.isOver = 0;
                                        this.instance.cancelHelperRemoval = true;
-                                       
+
                                        //Prevent reverting on this forced stop
                                        this.instance.options.revert = false;
-                                       
+
                                        // The out event needs to be triggered independently
                                        this.instance._trigger('out', event, this.instance._uiHash(this.instance));
-                                       
+
                                        this.instance._mouseStop(event, true);
                                        this.instance.options.helper = this.instance.options._helper;
 
@@ -2266,7 +2266,7 @@ $.ui.plugin.add("draggable", "stack", {
                        return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);
                });
                if (!group.length) { return; }
-               
+
                var min = parseInt(group[0].style.zIndex) || 0;
                $(group).each(function(i) {
                        this.style.zIndex = min + i;
@@ -3130,7 +3130,7 @@ $.ui.plugin.add("resizable", "alsoResize", {
 
                _alsoResize = function (exp, c) {
                        $(exp).each(function() {
-                               var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, 
+                               var el = $(this), start = $(this).data("resizable-alsoresize"), style = {},
                                        css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left'];
 
                                $.each(css, function (i, prop) {
@@ -6488,7 +6488,7 @@ function Datepicker() {
 $.extend(Datepicker.prototype, {
        /* Class name added to elements to indicate already configured with a date picker. */
        markerClassName: 'hasDatepicker',
-       
+
        //Keep track of the maximum number of rows displayed (see #7043)
        maxRows: 4,
 
@@ -6497,7 +6497,7 @@ $.extend(Datepicker.prototype, {
                if (this.debug)
                        console.log.apply('', arguments);
        },
-       
+
        // TODO rename to "widget" when switching to widget factory
        _widgetDatepicker: function() {
                return this.dpDiv;
@@ -6607,7 +6607,7 @@ $.extend(Datepicker.prototype, {
                                if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
                                        $.datepicker._hideDatepicker();
                                else if ($.datepicker._datepickerShowing && $.datepicker._lastInput != input[0]) {
-                                       $.datepicker._hideDatepicker(); 
+                                       $.datepicker._hideDatepicker();
                                        $.datepicker._showDatepicker(input[0]);
                                } else
                                        $.datepicker._showDatepicker(input[0]);
@@ -6903,7 +6903,7 @@ $.extend(Datepicker.prototype, {
                                case 9: $.datepicker._hideDatepicker();
                                                handled = false;
                                                break; // hide on tab out
-                               case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + 
+                               case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' +
                                                                        $.datepicker._currentClass + ')', inst.dpDiv);
                                                if (sel[0])
                                                        $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
@@ -7001,7 +7001,7 @@ $.extend(Datepicker.prototype, {
        },
 
        /* Pop-up the date picker for a given input field.
-          If false returned from beforeShow event handler do not show. 
+          If false returned from beforeShow event handler do not show.
           @param  input  element - the input field attached to the date picker or
                          event - if triggered by focus */
        _showDatepicker: function(input) {
@@ -7105,7 +7105,7 @@ $.extend(Datepicker.prototype, {
                                // this breaks the change event in IE
                                inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement)
                        inst.input.focus();
-               // deffered render of the years select (to avoid flashes on Firefox) 
+               // deffered render of the years select (to avoid flashes on Firefox)
                if( inst.yearshtml ){
                        var origyearshtml = inst.yearshtml;
                        setTimeout(function(){
@@ -7814,7 +7814,7 @@ $.extend(Datepicker.prototype, {
                        $(this).bind(this.getAttribute('data-event'), handler[this.getAttribute('data-handler')]);
                });
        },
-       
+
        /* Generate the HTML for the current state of the date picker. */
        _generateHTML: function(inst) {
                var today = new Date();
@@ -7971,7 +7971,7 @@ $.extend(Datepicker.prototype, {
                                        drawMonth = 0;
                                        drawYear++;
                                }
-                               calender += '</tbody></table>' + (isMultiMonth ? '</div>' + 
+                               calender += '</tbody></table>' + (isMultiMonth ? '</div>' +
                                                        ((numMonths[0] > 0 && col == numMonths[1]-1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
                                group += calender;
                        }
@@ -8035,7 +8035,7 @@ $.extend(Datepicker.prototype, {
                                                '>' + year + '</option>';
                                }
                                inst.yearshtml += '</select>';
-                               
+
                                html += inst.yearshtml;
                                inst.yearshtml = null;
                        }
@@ -8146,7 +8146,7 @@ $.extend(Datepicker.prototype, {
  * Bind hover events for datepicker elements.
  * Done via delegate so the binding only occurs once in the lifetime of the parent div.
  * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
- */ 
+ */
 function bindHover(dpDiv) {
        var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';
        return dpDiv.delegate(selector, 'mouseout', function() {
@@ -8178,12 +8178,12 @@ function extendRemove(target, props) {
                        Object - settings for attaching new datepicker functionality
    @return  jQuery object */
 $.fn.datepicker = function(options){
-       
+
        /* Verify an empty collection wasn't passed - Fixes #6976 */
        if ( !this.length ) {
                return this;
        }
-       
+
        /* Initialise the date picker. */
        if (!$.datepicker.initialized) {
                $(document).mousedown($.datepicker._checkExternalClick).
@@ -14211,7 +14211,7 @@ $.effects.effect.highlight = function( o, done ) {
        }
 
        $.effects.save( elem, props );
-       
+
        elem
                .show()
                .css({
index 31de7b0d51444ca9ce3a50d71892845f2d88ce57..3603058bcb76086a847f5726846af1a4399bac24 100644 (file)
@@ -1,17 +1,17 @@
 /*!
  * jQuery Feeds v0.5
  * https://camagu.github.com/jquery-feeds
- * 
+ *
  * Copyright (c) 2013, Camilo Aguilar
  * Dual licensed under the MIT and GPL licenses:
  *     http://www.opensource.org/licenses/mit-license.php
  *     http://www.gnu.org/licenses/gpl.html
- * 
+ *
  * Includes a modified version of Simple JavaScript Templating
  * http://ejohn.org/blog/javascript-micro-templating/
  * Copyright (c) John Resig (http://ejohn.org)
  * MIT licensed
- * 
+ *
  * Date: 2013-02-18
  */
 
index 305f66b2d839887a6bc837ac1b56aa71c3dbc342..276cdeeb80efee20e375bcbb1fcd00bb82e62b74 100644 (file)
@@ -1,17 +1,17 @@
 /*!
  * jQuery Feeds v0.5
  * https://camagu.github.com/jquery-feeds
- * 
+ *
  * Copyright (c) 2013, Camilo Aguilar
  * Dual licensed under the MIT and GPL licenses:
  *     http://www.opensource.org/licenses/mit-license.php
  *     http://www.gnu.org/licenses/gpl.html
- * 
+ *
  * Includes a modified version of Simple JavaScript Templating
  * http://ejohn.org/blog/javascript-micro-templating/
  * Copyright (c) John Resig (http://ejohn.org)
  * MIT licensed
- * 
+ *
  * Date: 2013-02-18
  */
 (function(e){var t={};e.fn.feeds=function(n){var r={service:"//ajax.googleapis.com/ajax/services/feed/load?v=1.0",settings:{loadingTemplate:'<div class="feeds-loader">Loading entries ...</div>',entryTemplate:'<div class="feeds-entry feeds-source-<!=source!>"><a class="feeds-entry-title" target="_blank" href="<!=link!>" title="<!=title!>"><!=title!></a><div class="feeds-entry-date"><!=publishedDate!></div><div class="feeds-entry-contentSnippet"><!=contentSnippet!></div></div>',feeds:{},max:-1,xml:!1,ssl:"auto",onComplete:function(e){},preprocess:function(e){}},feeds:{},entries:[],feedsLength:0,feedsLoaded:0,$element:null,$loader:null,init:function(t,n){this.settings=e.extend(this.settings,n),this.feeds=this.settings.feeds;for(var r in this.feeds)this.feeds.hasOwnProperty(r)&&this.feedsLength++;var i=this.settings.ssl==="auto"?document.location.protocol:this.settings.ssl?"https:":"http:";e.inArray(i,["http:","https"])===-1&&(i="https:"),this.service=i+this.service,this.$element=e(t);var s=typeof this.settings.loadingTemplate=="function"?this.settings.loadingTemplate:this.tmpl(this.settings.loadingTemplate);this.$loader=e(s.call(this,{})),this.$element.html(this.$loader);var o=this.settings.xml?"json_xml":"json";for(var u in this.feeds)this.fetchFeed(u,this.feeds[u],this.settings.max,o)},fetchFeed:function(n,r,i,s){var o=this,u=r+"**"+i+"**"+s;if(typeof t[u]!="undefined"){o.processResponse(t[u],n,r);return}e.ajax({url:this.service,dataType:"jsonp",data:{q:r,num:i,output:s},beforeSend:function(){this.feed=r,this.key=n},success:function(e){t[u]=e,o.processResponse(e,this.key,this.feed)}})},processResponse:function(t,n,r){if(t.responseStatus!==200)window.console&&window.console.log&&console.log("Unable to load feed "+r+": ("+t.responseStatus+") "+t.responseDetails);else{var i=t.responseData.feed,s=i.entries,o=t.responseData.feed.type;if(this.settings.xml){var u=e(t.responseData.xmlString);o.match(/^rss.*/)?u=u.filter("rss").find("channel"):o.match(/^atom.*/)&&(u=u.filter("feed")),i.xml=u}for(var a in s){var f=e.extend({},s[a]);f.source=n,f.publishedDateRaw=f.publishedDate,f.feedUrl=i.feedUrl,f.feedTitle=i.title,f.feedLink=i.link,f.feedDescription=i.description,f.feedAuthor=i.author,this.settings.xml&&(o.match(/^rss.*/)?f.xml=i.xml.find("item").eq(a):o.match(/^atom.*/)?f.xml=i.xml.find("entry").eq(a):f.xml={}),this.settings.preprocess.call(f,i)!==!1&&this.entries.push(f)}}this.feedsLoaded++,this.checkComplete()},checkComplete:function(){if(this.feedsLoaded===this.feedsLength){this.$loader.remove(),this.entries.sort(function(e,t){var n=(new Date(e.publishedDateRaw)).getTime(),r=(new Date(t.publishedDateRaw)).getTime();return r-n});var e=typeof this.settings.entryTemplate=="function"?this.settings.entryTemplate:this.tmpl(this.settings.entryTemplate);for(var t in this.entries){var n=this.entries[t],r=e.call(this,n);this.$element.append(r)}this.settings.onComplete.call(this.$element[0],this.entries)}},tmplCache:{},tmpl:function(t,n){var r=/\W/.test(t)?new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+t.replace(/[\r\t\n]/g," ").split("<!").join(" ").replace(/((^|!>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)!>/g,"',typeof $1 != 'undefined' ? $1 : '','").split("   ").join("');").split("!>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');"):this.tmplCache[t]=this.tmplCache[t]||this.tmpl(document.getElementById(t).innerHTML);return n?r(n):r}};return e(this).each(function(){r.init(this,n)})}})(jQuery);
\ No newline at end of file
index a094a70d01bdf8d31a8627a733321d4616440583..311a57b10d035f9ac5f3f0962a25bfbd2efe6ef9 100644 (file)
@@ -37,7 +37,7 @@
                        target: '#output'
                });
        });
-       
+
        You can also use ajaxForm with delegation (requires jQuery v1.7+), so the
        form does not have to exist when you invoke ajaxForm:
 
@@ -45,7 +45,7 @@
                delegation: true,
                target: '#output'
        });
-       
+
        When using ajaxForm, the ajaxSubmit function will be invoked for you
        at the appropriate time.
 */
@@ -69,7 +69,7 @@ $.fn.ajaxSubmit = function(options) {
                log('ajaxSubmit: skipping submit process - no element selected');
                return this;
        }
-       
+
        var method, action, url, $form = this;
 
        if (typeof options == 'function') {
@@ -111,7 +111,7 @@ $.fn.ajaxSubmit = function(options) {
        if ( traditional === undefined ) {
                traditional = $.ajaxSettings.traditional;
        }
-       
+
     var elements = [];
     var qx, a = this.formToArray(options.semantic, elements);
        if (options.data) {
@@ -135,7 +135,7 @@ $.fn.ajaxSubmit = function(options) {
        var q = $.param(a, traditional);
        if (qx) {
                q = ( q ? (q + '&' + qx) : qx );
-       }       
+       }
        if (options.type.toUpperCase() == 'GET') {
                options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
                options.data = null;  // data is null for 'get'
@@ -165,7 +165,7 @@ $.fn.ajaxSubmit = function(options) {
        }
 
        options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
-        var context = options.context || this ;    // jQuery 1.4+ supports scope context 
+        var context = options.context || this ;    // jQuery 1.4+ supports scope context
                for (var i=0, max=callbacks.length; i < max; i++) {
                        callbacks[i].apply(context, [data, status, xhr || $form, $form]);
                }
@@ -175,7 +175,7 @@ $.fn.ajaxSubmit = function(options) {
 
     // [value] (issue #113), also see comment:
     // https://github.com/malsup/form/commit/588306aedba1de01388032d5f42a60159eea9228#commitcomment-2180219
-    var fileInputs = $('input[type=file]:enabled[value!=""]', this); 
+    var fileInputs = $('input[type=file]:enabled[value!=""]', this);
 
        var hasFileInputs = fileInputs.length > 0;
        var mp = 'multipart/form-data';
@@ -299,7 +299,7 @@ $.fn.ajaxSubmit = function(options) {
             deferred.reject();
             return deferred;
         }
-        
+
                if (a) {
                                // ensure that every serialized input is still enabled
             for (i=0; i < elements.length; i++) {
@@ -347,7 +347,7 @@ $.fn.ajaxSubmit = function(options) {
                 if (io.contentWindow.document.execCommand) {
                         io.contentWindow.document.execCommand('Stop');
                 }
-                } 
+                }
                 catch(ignore) {}
 
                                $io.attr('src', s.iframeSrc); // abort op in progress
@@ -395,7 +395,7 @@ $.fn.ajaxSubmit = function(options) {
                                }
                        }
                }
-               
+
                var CLIENT_TIMEOUT_ABORT = 1;
                var SERVER_ABORT = 2;
 
@@ -403,7 +403,7 @@ $.fn.ajaxSubmit = function(options) {
                        var doc = frame.contentWindow ? frame.contentWindow.document : frame.contentDocument ? frame.contentDocument : frame.document;
                        return doc;
                }
-               
+
                // Rails CSRF hack (thanks to Yvan Barthelemy)
                var csrf_token = $('meta[name=csrf-token]').attr('content');
                var csrf_param = $('meta[name=csrf-param]').attr('content');
@@ -438,7 +438,7 @@ $.fn.ajaxSubmit = function(options) {
                        if (s.timeout) {
                                timeoutHandle = setTimeout(function() { timedOut = true; cb(CLIENT_TIMEOUT_ABORT); }, s.timeout);
                        }
-                       
+
                        // look for server aborts
                        function checkState() {
                                try {
@@ -537,7 +537,7 @@ $.fn.ajaxSubmit = function(options) {
                        }
             if (io.detachEvent)
                 io.detachEvent('onload', cb);
-            else    
+            else
                 io.removeEventListener('load', cb, false);
 
                        var status = 'success', errMsg;
@@ -593,7 +593,7 @@ $.fn.ajaxSubmit = function(options) {
                                                var pre = doc.getElementsByTagName('pre')[0];
                                                var b = doc.getElementsByTagName('body')[0];
                                                if (pre) {
-                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;  
+                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;
                                                }
                                                else if (b) {
                           xhr.responseText = b.innerHTML ? b.innerHTML : b.textContent;
@@ -716,7 +716,7 @@ $.fn.ajaxSubmit = function(options) {
 $.fn.ajaxForm = function(options) {
        options = options || {};
        options.delegation = options.delegation && $.isFunction($.fn.on);
-       
+
        // in jQuery 1.3+ we can fix mistakes with the ready state
        if (!options.delegation && this.length === 0) {
                var o = { s: this.selector, c: this.context };
@@ -746,7 +746,7 @@ $.fn.ajaxForm = function(options) {
                .bind('click.form-plugin', options, captureSubmittingElement);
 };
 
-// private event handlers      
+// private event handlers
 function doAjaxSubmit(e) {
     /*jshint validthis:true */
        var options = e.data;
@@ -755,7 +755,7 @@ function doAjaxSubmit(e) {
                $(this).ajaxSubmit(options);
        }
 }
-       
+
 function captureSubmittingElement(e) {
     /*jshint validthis:true */
        var target = e.target;
@@ -835,14 +835,14 @@ $.fn.formToArray = function(semantic, elements) {
 
                v = $.fieldValue(el, true);
                if (v && v.constructor == Array) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
                        for(j=0, jmax=v.length; j < jmax; j++) {
                                a.push({name: n, value: v[j]});
                        }
                }
         else if (feature.fileapi && el.type == 'file' && !el.disabled) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             var files = el.files;
             if (files.length) {
@@ -856,7 +856,7 @@ $.fn.formToArray = function(semantic, elements) {
             }
         }
                else if (v !== null && typeof v != 'undefined') {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             a.push({name: n, value: v, type: el.type, required: el.required});
                }
@@ -1106,7 +1106,7 @@ $.fn.ajaxSubmit.debug = false;
 
 // helper fn for console logging
 function log() {
-       if (!$.fn.ajaxSubmit.debug) 
+       if (!$.fn.ajaxSubmit.debug)
                return;
        var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
        if (window.console && window.console.log) {
index 29082ca9647b864d3f0f254fa25a6a6bcc22b232..bcb4a27b7a532c4bcd6bb910a1010776fb97ce1a 100644 (file)
@@ -119,7 +119,7 @@ var m = (function app(window, undefined) {
                                        i-- //check current index again and flatten until there are no more nested arrays at that index
                                }
                        }
-                       
+
                        var nodes = [], intact = cached.length === data.length, subArrayCount = 0;
 
                        //keys algorithm: sort elements without recreating them if keys are present
@@ -138,7 +138,7 @@ var m = (function app(window, undefined) {
                        }
                        if (shouldMaintainIdentities) {
                                if (data.indexOf(null) > -1) data = data.filter(function(x) {return x != null})
-                               
+
                                var keysDiffer = false
                                if (data.length != cached.length) keysDiffer = true
                                else for (var i = 0, cachedCell, dataCell; cachedCell = cached[i], dataCell = data[i]; i++) {
@@ -147,7 +147,7 @@ var m = (function app(window, undefined) {
                                                break
                                        }
                                }
-                               
+
                                if (keysDiffer) {
                                        for (var i = 0, len = data.length; i < len; i++) {
                                                if (data[i] && data[i].attrs) {
@@ -216,7 +216,7 @@ var m = (function app(window, undefined) {
                        }
                        if (!intact) {
                                //diff the array itself
-                               
+
                                //update the list of DOM nodes by collecting the nodes from each item
                                for (var i = 0, len = data.length; i < len; i++) {
                                        if (cached[i] != null) nodes.push.apply(nodes, cached[i].nodes)
@@ -699,7 +699,7 @@ var m = (function app(window, undefined) {
                }
                return str.join("&")
        }
-       
+
        function parseQueryString(str) {
                var pairs = str.split("&"), params = {};
                for (var i = 0, len = pairs.length; i < len; i++) {
index d48daafdea6ce07d5d495a18172b7bb1bf8e7328..d3115512a757e489d0c0fe8cfad0f9f2dc099e4c 100644 (file)
@@ -2,7 +2,7 @@
     /**
      * Your Twitter App Info
      */
-    
+
     // Consumer Key
     define('CONSUMER_KEY', 'yxmC3rFOrr1xRGbCo3J6QNkKW');
     define('CONSUMER_SECRET', 'rqI9V5lPttEhNeOwBl14Jn6ryCU5MRBJQ5J6j8OEgaXwekeZM2');
@@ -10,7 +10,7 @@
     // User Access Token
     define('ACCESS_TOKEN', '2972347515-LCsxZafDTPd8hPCpWfewRVCEqgkHysKqB97x1bc');
     define('ACCESS_SECRET', 'Od3GSWu8iVW6x03YfTtDXVY48ewB315FkSrb3HQgi8Tx7');
-       
+
        // Cache Settings
        define('CACHE_ENABLED', false);
        define('CACHE_LIFETIME', 3600); // in seconds
index d02b7aebae3fd08d189f7127946fb47390815665..67800781e666ce3e22934dcc6a2852f61e77e785 100644 (file)
@@ -12,7 +12,7 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     // Check if keys are in place
     if (CONSUMER_KEY === '' || CONSUMER_SECRET === '' || CONSUMER_KEY === 'CONSUMER_KEY_HERE' || CONSUMER_SECRET === 'CONSUMER_SECRET_HERE') {
         echo 'You need a consumer key and secret keys. Get one from <a href="https://dev.twitter.com/apps">dev.twitter.com/apps</a>';
-      
+
         exit;
     }
 
@@ -22,13 +22,13 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     $exclude_replies = filter_input(INPUT_GET, 'exclude_replies', FILTER_SANITIZE_SPECIAL_CHARS);
     $list_slug = filter_input(INPUT_GET, 'list_slug', FILTER_SANITIZE_SPECIAL_CHARS);
     $hashtag = filter_input(INPUT_GET, 'hashtag', FILTER_SANITIZE_SPECIAL_CHARS);
-    
+
        if(CACHE_ENABLED) {
         // Generate cache key from query data
         $cache_key = md5(
             var_export(array($username, $number, $exclude_replies, $list_slug, $hashtag), true) . HASH_SALT
         );
-    
+
         // Remove old files from cache dir
         $cache_path  = dirname(__FILE__) . '/cache/';
         foreach (glob($cache_path . '*') as $file) {
@@ -36,16 +36,16 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
                 unlink($file);
             }
         }
-    
+
         // If cache file exists - return it
         if(file_exists($cache_path . $cache_key)) {
             header('Content-Type: application/json');
-    
+
             echo file_get_contents($cache_path . $cache_key);
             exit;
         }
     }
-       
+
     /**
      * Gets connection with user Twitter account
      * @param  String $cons_key     Consumer Key
@@ -57,13 +57,13 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     function getConnectionWithToken($cons_key, $cons_secret, $oauth_token, $oauth_secret)
     {
         $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_secret);
-      
+
         return $connection;
     }
-    
+
     // Connect
     $connection = getConnectionWithToken(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_SECRET);
-    
+
     // Get Tweets
     if (!empty($list_slug)) {
       $params = array(
index 4570013b80f59fc225aa9b4b695b873198143587..d31451ac61f694f058df6309b2107bcc10c8e6a0 100644 (file)
@@ -92,9 +92,9 @@ abstract class OAuthSignatureMethod {
 }
 
 /**
- * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104] 
- * where the Signature Base String is the text and the key is the concatenated values (each first 
- * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&' 
+ * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104]
+ * where the Signature Base String is the text and the key is the concatenated values (each first
+ * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&'
  * character (ASCII code 38) even if empty.
  *   - Chapter 9.2 ("HMAC-SHA1")
  */
@@ -120,7 +120,7 @@ class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod {
 }
 
 /**
- * The PLAINTEXT method does not provide any security protection and SHOULD only be used 
+ * The PLAINTEXT method does not provide any security protection and SHOULD only be used
  * over a secure channel such as HTTPS. It does not use the Signature Base String.
  *   - Chapter 9.4 ("PLAINTEXT")
  */
@@ -130,8 +130,8 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
   }
 
   /**
-   * oauth_signature is set to the concatenated encoded values of the Consumer Secret and 
-   * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is 
+   * oauth_signature is set to the concatenated encoded values of the Consumer Secret and
+   * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is
    * empty. The result MUST be encoded again.
    *   - Chapter 9.4.1 ("Generating Signatures")
    *
@@ -153,10 +153,10 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
 }
 
 /**
- * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in 
- * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for 
- * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a 
- * verified way to the Service Provider, in a manner which is beyond the scope of this 
+ * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in
+ * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for
+ * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a
+ * verified way to the Service Provider, in a manner which is beyond the scope of this
  * specification.
  *   - Chapter 9.3 ("RSA-SHA1")
  */
@@ -558,7 +558,7 @@ class OAuthServer {
   private function get_version(&$request) {
     $version = $request->get_parameter("oauth_version");
     if (!$version) {
-      // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present. 
+      // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present.
       // Chapter 7.0 ("Accessing Protected Ressources")
       $version = '1.0';
     }
@@ -658,7 +658,7 @@ class OAuthServer {
       throw new OAuthException(
         'Missing timestamp parameter. The parameter is required'
       );
-    
+
     // verify that timestamp is recentish
     $now = time();
     if (abs($now - $timestamp) > $this->timestamp_threshold) {
index 7ed5ef98a738a54ac1696b545e065ff0e580b727..68c99fe9767b6fc1609170791aa36ecd35641359 100644 (file)
@@ -29,7 +29,7 @@ class TwitterOAuth {
   /* Set timeout default. */
   public $timeout = 30;
   /* Set connect timeout. */
-  public $connecttimeout = 30; 
+  public $connecttimeout = 30;
   /* Verify SSL Cert. */
   public $ssl_verifypeer = FALSE;
   /* Respons format. */
@@ -81,7 +81,7 @@ class TwitterOAuth {
    */
   function getRequestToken($oauth_callback) {
     $parameters = array();
-    $parameters['oauth_callback'] = $oauth_callback; 
+    $parameters['oauth_callback'] = $oauth_callback;
     $request = $this->oAuthRequest($this->requestTokenURL(), 'GET', $parameters);
     $token = OAuthUtil::parse_parameters($request);
     $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
@@ -130,7 +130,7 @@ class TwitterOAuth {
    *                "user_id" => "9436992",
    *                "screen_name" => "abraham",
    *                "x_auth_expires" => "0")
-   */  
+   */
   function getXAuthToken($username, $password) {
     $parameters = array();
     $parameters['x_auth_username'] = $username;
@@ -152,7 +152,7 @@ class TwitterOAuth {
     }
     return $response;
   }
-  
+
   /**
    * POST wrapper for oAuthRequest.
    */
index d7790dceb39fd5bce1a62abb2fa0258eead6d51a..44db04b049ce1af7a10517b2bbb92c3f00b2cdaf 100644 (file)
@@ -5,10 +5,10 @@
 <!--#include virtual="/2022/includes/banner.html"-->
 <!--#include virtual="/2022/includes/sidebar.html"-->
 
-## Sorry, the feedback survey is now closed         
-    
+## Sorry, the feedback survey is now closed
+
 [Return to the home page](https://www.libreplanet.org/2022)
-    
+
 
 <!--#include virtual="/2022/includes/footer.html"-->
 <!--#include virtual="/2022/includes/common_js.html"-->
index 168bc4123cc01dcf893099d9e258de6e4dbd76e3..bb4b034f20e4631b6bf980630348edcb895cec11 100644 (file)
@@ -5,14 +5,14 @@
 <!--#include virtual="/2022/includes/banner.html"-->
 <!--#include virtual="/2022/includes/sidebar.html"-->
 
-## One more step! 
+## One more step!
 
 Thanks for filling out the survey. To process your answers, we
 need you to confirm your email address by clicking the link in
-the confirmation email we've just sent you.     
-    
+the confirmation email we've just sent you.
+
 **Please check your email now for the confirmation link.**
-    
+
 [Return to the homepage.](https://www.libreplanet.org/2022/)
 
 <!--#include virtual="/2022/includes/footer.html"-->
index 2c3f13efc972fd95ddc4d9e2b8c673f87c6d2c8c..d3696fe413c408f6b5965d16c70e8aef2eba282d 100755 (executable)
@@ -55,11 +55,11 @@ Contents
 <!--<h2 id="lightning-talks">Lightning Talks</h2>
   <h3>SATURDAY 17:15 - 18:00 EDT (21:15 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">   <div class="field-content"><h4>Lightning talks</h4></div>  </div>
   <div class="views-field views-field-value-3"> <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</div>  </div>
   <div class="views-field views-field-value-7"> <div class="field-content"></div>  </div>
@@ -67,19 +67,19 @@ Contents
 
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
+
 <p>Lightning talks are five-minute presentations given by conference attendees on free software topics they're passionate about.</p>
 
 <p><strong>Participate:</strong> Have your five-minute talk streamed at LibrePlanet 2022: Living Liberation!</p>
 <p><strong>Upload your <a href="https://libreplanet.org/wiki/Video_upload_instructions">lightning talk now.</a></strong></p>
-   
+
 </div></div>  </div>          </td>
               </tr>
       </tbody>
 </table>
 <hr>-->
 
-<!--<h2 id="trivia">LibrePlanet Trivia (Saturday)</h2> 
+<!--<h2 id="trivia">LibrePlanet Trivia (Saturday)</h2>
 <br>
 
 <p>Supporters are invited to mental gymnastics at LibrePlanet 2022's free software trivia quiz! Win prizes and bragging rights while having a good time playing with your peers. Questions will vary in difficulty, and we expect all participants to play an honest game (no looking things up, please)!</p>
index 49fe5b4cf299949ed2f8692ef760d7da90f2dbfa..e10709d39f389006bdb682c53c25127b2a9c9118 100755 (executable)
@@ -35,9 +35,9 @@
 <h3>Hostels</h3>
 
 <ul>
-  <li><a href="https://www.hiusa.org/hostels/massachusetts/boston/boston">HI Boston Hostel (Closest)</a> ($)</li> 
+  <li><a href="https://www.hiusa.org/hostels/massachusetts/boston/boston">HI Boston Hostel (Closest)</a> ($)</li>
   <li><a href="https://www.foundhotels.com/cities/boston/">Found Hostel</a> ($$)</li>
+
 <li>Other hostels a little farther out can be found at <a href="https://www.hostelworld.com/search?search_keywords=Boston,%20USA&country=USA&city=Boston&date_from=2020-03-14&date_to=2020-03-15&number_of_guests=1">HostelWorld</a></li>
 </ul>
 
@@ -48,7 +48,7 @@
   <li><a href="https://www.marriott.com/hotels/travel/bosbo-sheraton-boston-hotel/">The Sheraton</a> - Contemporary hotel (Marriott chain) Located centrally ($$)</li>
   <li><a href="https://bostonparkplaza.reztrip.com/classic/en/special_offer?action=show&controller=landings&locale=en&rate_code%5B%5D=SHOSP&rate_code%5B%5D=SHOSP&starting_page=special_offer&vr=3">Boston Park Plaza</a> price varies ($$$)</li>
 </ul>
-<p>&nbsp; 
+<p>&nbsp;
     <h2>Transportation</h2>
 
     <p>The easiest way to get around Boston/Cambridge is to use the <a href="http://www.mbta.com">MBTA</a>. Passes can be purchased with cash or credit/debit cards in stations. </p>
@@ -64,7 +64,7 @@
   <li>Cabs are located all over the city: at the airport and major subway stations.</li>
 <li>The <a href="http://www.mbta.com/schedules_and_maps/subway/lines/?route=BLUE">Blue Line</a> is a train, with a shuttle bus from Logan Airport to the Airport MBTA stop; the <a href="http://www.mbta.com/schedules_and_maps/subway/lines/?route=SILVER">Silver Line</a> is an expedited bus. The MBTA website provides a very <a href="http://www.mbta.com/riding_the_t/logan/">helpful page</a> on how to navigate via the Silver Line and Blue Line from the airport.</li>
   </ul>
-<p>&nbsp; 
+<p>&nbsp;
 <h3 id="getting-around"> Getting Around </h3>
 <!--     <h4 id="getting-around">Getting to LibrePlanet at the Back Bay Events Center</h4> -->
 
@@ -88,7 +88,7 @@
 
 <!--<p>Our <a href="#map">map</a> is useful for finding your way from the station to the conference.</p>
 -->
-<p>&nbsp; 
+<p>&nbsp;
 
       <h4 id="getting-around">Getting to the Free Software Foundation office</h4>
       <ul>
@@ -96,7 +96,7 @@
   <ul>
     <li>From North of the city, travel via <a href="http://www.mbta.com/schedules_and_maps/subway/lines/stations/?stopId=15583&amp;lat=42.365551&amp;lng=-71.061251">North Station</a> From there, take the Orange Line to <a href="http://www.mbta.com/schedules_and_maps/subway/lines/stations/?stopId=13771">Downtown Crossing</a> to reach the office. </li>
     <li>From south of the city, travel via <a href="http://www.mbta.com/schedules_and_maps/rail/lines/stations/?stopId=191">South Station.</a> Take the red line to <a href="https://www.mbta.com/stops/place-dwnxg?from=global-search&query=downtown&facets=stops%2Cfacet-station%2Cfacet-stop"> Downtown Crossing.</a></li>
-</ul>  
+</ul>
 
 Directions: Each of these subway stations is only a block away from the FSF. State Street and Government Center are also in easy walking distance.
             </ul>
@@ -104,7 +104,7 @@ Directions: Each of these subway stations is only a block away from the FSF. Sta
       <p>The door is unlocked during the day, so you can just come right on inside to the 5th floor. If the door happens to be locked, call us at +1 617 542 5942.</p>
 
   <p><b>If you have questions about traveling, contact us at <a href="mailto:campaigns@fsf.org">campaigns@fsf.org</a>.</b></p>
+
           </li>
       </ul>
 
index 37862f2493093cb772b3c43d352bdda4e1016970..d05bb8e17513a03eff02b1e7a0dc27e0e9bb90a7 100644 (file)
@@ -1,5 +1,5 @@
-<!--pagestart-->    
-      
+<!--pagestart-->
+
       <div class="view-content">
         <h3>Keynote Speakers</h3>
   <div class="views-row views-row-1 views-row-odd views-row-first">
@@ -12,7 +12,7 @@
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/lp-schedule/47#5914">Saturday 12:15 - 13:00 EDT - Opening keynote</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span>
 </div>
@@ -24,8 +24,8 @@
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/marleen-stikker.jpg">
 <h2>Marleen  Stikker</h2></div>
 <div class="webform-html-textarea"><p>Marleen Stikker is founder of Waag, a social organization and research institute for creative technologies and social innovation. The prolific advocate for free, honest, and inclusive technology, and honorary PhD, is also founder of The Digital City (1993), a group that provides free public access to the Internet in Amsterdam, and author of the book "Het Internet is Stuk" (The Internet is Broken).</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-38 views-row-even">
 
@@ -37,7 +37,7 @@
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/lp-schedule/47#5916">Sunday 12:15 - 13:00 EDT - Opening keynote</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span>
 </div>
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/wunderland.6.full_.jpg">
 <h2>Hundred  Rabbits</h2></div>
 <div class="webform-html-textarea"><p>Hundred Rabbits is a small artist collective consisting of Rek (they), a writer and cartoonist, and Devine (they), a programmer, artist, and musician. They travel the globe together with their sailboat named "Pino" while creating and adapting software to fit their needs. They learned, with a lack of energy resources and Internet access, they needed to make adjustments to the way they were using their technology. Besides sharing their experiences about living on the water, they also document their use of various technologies and their art. In addition to blogs, cartoons, and music, they create and publish free (as in freedom) software projects.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-34 views-row-even">
-    
-      <!--Speakerblock--> 
+
+      <!--Speakerblock-->
       <div class="view-content">
         <h3>Speakers</h3>
   <div class="views-row views-row-1 views-row-odd views-row-first">
-  
+
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-7 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5807">
 
 <div class="talkblock" style="clear:both">
@@ -69,7 +69,7 @@
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5807">Sunday 14:30 - 15:15 EDT (18:30 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span>
 </div>
 <div class="webform-html-textarea"><p>I describe myself as a hacker, entrepreneur and free software activist. I started using GNU/Linux exclusively in 1998 when I was a student and then started my first free software business - DeepRoot GNU/Linux - in 2000. Over the past 21 years, we have helped organizations of all sizes and sectors implement free software in various forms. The core idea has been that just the existence and awareness of free software is insufficient - unless someone can step in to offer support and services for it, many organizations would be unable to choose free software, or understand and appreciate its benefits.</p><br />
 <p>I started a "liberated hardware business" in 2016 - Mostly Harmless - to build and sell hardware that would enable people to run free software in more places. I now operate an online shop - libretech.shop - to sell these devices with the promise that all devices sold there would be "ethical and hackable products which also offer convenience."</p><br />
 <p>I am also a member of the board of Free Software Foundation of India (FSF-India) and participate in and contribute to various free software advocacy and education activities in India as a volunteer.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-8 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5757">
 
 <div class="talkblock" style="clear:both">
@@ -99,7 +99,7 @@
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5757">Saturday 11:20 - 12:05 EDT (15:20 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span>
 </div>
 <div class="speakerheader"><img class="speakerpic"  src="/2022/assets/img/logo.png">
 <h2>Sagar  Acharya</h2></div>
 <div class="webform-html-textarea"><p><a href="https://designman.org/sagaracharya">Sagar Acharya</a> is a contributor at Genode OS, an ex developer of Hyperbola OS. He currently lives in Mumbai, India, and manages his startup, DesignMan, an online platform where he enables simple product designers to roll their designs out to the market.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-9 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5739">
 
 <div class="talkblock" style="clear:both">
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5739">Sunday 14:30 - 15:15 EDT (18:30 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span>
 </div>
 <li>The constitutional features of the European Union</li><br />
 <li>Freedom of speech in (European) constitutional jurisprudence (translation from French to Greek, original article written by Michel Verpeaux)</li><br />
 </ul><p>Fluent in Greek (native), English, and French.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-10 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5853">
 
 <div class="talkblock" style="clear:both">
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5853">Sunday 16:20 - 17:05 EDT (20:20 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span>
 </div>
 <div class="speakerheader"><img class="speakerpic"  src="/2022/assets/img/logo.png">
 <h2>Amin  Bandali</h2></div>
 <div class="webform-html-textarea"><p>bandali is a free/libre software activist and computing scientist. Bandali is a GNU maintainer, Savannah hacker/admin, an assistant GNUisance of the GNU Project, and an FSF volunteer. Bandali also happens to be a GNU Emacs diehard who uses Emacs for just about every imaginable computing task, participates in its development, and is an organizer and sysadmin of the EmacsConf conference.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-11 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5763">
 
 <div class="talkblock" style="clear:both">
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5763">Saturday 13:35 - 14:20 EDT (17:35 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/aboutImage.jpg">
 <h2>Nicholas  Bernhard</h2></div>
 <div class="webform-html-textarea"><p>Nicholas Bernhard is the developer of the Nantucket E-books platform, and the Shanty markup language for writing e-books. He is the author of the historical novel <em>November in America</em>, and the award-winning director of Blackstone's Equation: The Tim Masters Story.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-12 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5797">
 
 <div class="talkblock" style="clear:both">
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5797">Sunday 11:20 - 12:05 EDT (15:20 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
 <div class="speakerheader"><img class="speakerpic"  src="/2022/assets/img/logo.png">
 <h2>Denis  Carikli</h2></div>
 <div class="webform-html-textarea"><p>I'm one of the Replicant founders and developers. I'm a former developer of SHR (a GNU/Linux distribution for smartphones), and other related projects. I'm also a small Linux contributor. I was also involved in Coreboot and related projects but I don't have time anymore to contribute to it much.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-13 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5805">
 
 <div class="talkblock" style="clear:both">
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5805">Saturday 16:20 - 17:05 EDT (20:20 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span>
 </div>
 <p>While he was studying at Victoria University, Adrian interned at Catalyst IT for an extended time where he worked on the KELP log file analytics/debugging project and Samba Windows-compatible file sharing project.</p><br />
 <p>After graduating he successfully completed several contracts including ones for visualizing shared vocabularies with SKOS and a privacy-conscious blogging site.  Additionally he completed a contract for NIWA to harvest WxS endpoints into GeoNetwork.</p><br />
 <p>For his hobbies Adrian enjoys illustrating how software can be better through his personal projects, and is always keen for a game of Catan.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-14 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5830">
 
 <div class="talkblock" style="clear:both">
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5830">Sunday 11:20 - 12:05 EDT (15:20 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span>
 </div>
 <div class="speakerheader"><img class="speakerpic"  src="/2022/assets/img/logo.png">
 <h2>Sebastian  Crane</h2></div>
 <div class="webform-html-textarea"><p>Sebastian Crane is an avid free software supporter who believes that open access to technology can help all facets of society. He is currently the Outreach Team co-chair for the SPDX Working Group, a project aiming to streamline free software licence compliance and supply chain security through rich and comprehensive package metadata.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-15 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5637">
 
 <div class="talkblock" style="clear:both">
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5637">Saturday 13:35 - 14:20 EDT (17:35 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -305,11 +305,11 @@ In this presentation you will learn:<br />
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/Photo.jpg">
 <h2>Thomas  Deeb</h2></div>
 <div class="webform-html-textarea"><p>Thomas is a professional software engineer passionate about software freedom. He has worked in game development for over 6 years and chose to release his debut indie title as free software during his transition to computing freedom, which started in 2019. Thomas has made contributions to many other free software projects, including Cinnamon, Nemo, MonoGame, and RetroArch. Outside software development, Thomas's interests include yoga, hiking, and composing chiptune music.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-16 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5641">
 
 <div class="talkblock" style="clear:both">
@@ -318,7 +318,7 @@ In this presentation you will learn:<br />
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5641">Saturday 16:20 - 17:05 EDT (20:20 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span>
 </div>
@@ -330,11 +330,11 @@ In this presentation you will learn:<br />
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/photo_2021-10-21_13-25-01.jpg">
 <h2>Kaio  Duarte Costa</h2></div>
 <div class="webform-html-textarea"><p>Director of Student Councils of the Collegiate Union of Minas Gerais (UCMG), Member of the Board of Follow-up and Social Control of FUNDEB (ConsFUNDEB-MG), Substitute Member of the Permanent State Forum on Education (FEPEMG), Member of the Public Committee of the National Association of Data Privacy Professionals (ANPPD), associated with the Brazilian Society for the Advancement of Science (SBPC) and the Brazilian Computer Society (SBC). Hackeractivist, student and student representative.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-17 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5918">
 
 <div class="talkblock" style="clear:both">
@@ -343,7 +343,7 @@ In this presentation you will learn:<br />
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5918">Saturday 16:20 - 17:05 EDT (20:20 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span>
 </div>
@@ -356,11 +356,11 @@ In this presentation you will learn:<br />
 <h2>Jarek  Duda</h2></div>
 <div class="webform-html-textarea"><p>Jarek Duda received the M.Sc. degree in mathematics, the Ph.D. degree in computer science, and the Ph.D. degree in physics. He is currently an Assistant Professor with Jagiellonian University. He is mainly<br /><br />
 focused on information theory and statistical analysis, and is known from introduction of asymmetric numeral systems (webpage: <a href="http://th.if.uj.edu.pl/~dudaj/">http://th.if.uj.edu.pl/~dudaj/"</a> )</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-18 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5902">
 
 <div class="talkblock" style="clear:both">
@@ -369,7 +369,7 @@ focused on information theory and statistical analysis, and is known from introd
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5902">Saturday 17:15 - 18:00 EDT (21:15 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span>
 </div>
@@ -381,11 +381,11 @@ focused on information theory and statistical analysis, and is known from introd
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/Paul_Eggert-300x200.jpg">
 <h2>Paul  Eggert</h2></div>
 <div class="webform-html-textarea"><p>Paul R. Eggert is a senior lecturer in the UCLA Computer Science Dept.,  teaching mostly in the areas of software development and programming  languages. He has contributed to several free software projects,  including Autoconf, Automake, Bison, GCC, the GNU C Library, GNU  Coreutils, GNU Diff, GNU Emacs, GNU Grep, GNU M4, GNU Patch, GNU Tar,  Gnulib, Gzip, and RCS. He has worked on the Time Zone Database since  1992, and currently serves as the Internet Engineering Steering Group’s  Primary Coordinator for TZDB.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-19 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5622">
 
 <div class="talkblock" style="clear:both">
@@ -394,7 +394,7 @@ focused on information theory and statistical analysis, and is known from introd
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5622">Sunday 13:35 - 14:20 EDT (17:35 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -411,11 +411,11 @@ In the presentation, we focus on the capabilities and integration of the softwar
 <div class="webform-html-textarea"><p>Mark Fuller and Kfir Kaplan are both members of the Kinetics and Chemical Technology laboratory under Prof. Alon Dana at the Technion in Israel. Both Mark and Kfir are active in developing and contributing to free, libre software projects within the scientific community including Cantera, the Reaction Mechanism Generator, and the Automatic Rate Calculator.</p><br />
 <p>Mark holds a PhD in chemical engineering and has used GNU/Linux and free software for his academic and professional career over the last 15+ years.His focus is combustion chemistry and past work has included batteries, fuel cells, and heat transfer.</p><br />
 <p>Kfir is currently a fourth-year undergraduate student.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-20 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5728">
 
 <div class="talkblock" style="clear:both">
@@ -424,7 +424,7 @@ In the presentation, we focus on the capabilities and integration of the softwar
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5728">Saturday 10:25 - 11:10 EDT (14:25 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -439,11 +439,11 @@ In the presentation, we focus on the capabilities and integration of the softwar
 <h2>Ángel  García Menéndez</h2></div>
 <div class="webform-html-textarea"><p>My name is Ángel García Menéndez. I am a software engineer from northern Spain, who graduated this very year. I have been a free software advocate for many years, and a student associate member of the FSF since 2018.</p><br />
 <p>Apart from software engineering, I am also interested in social sciences, and I try to take a more human look to technology and the effect it has on people.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-21 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5810">
 
 <div class="talkblock" style="clear:both">
@@ -452,7 +452,7 @@ In the presentation, we focus on the capabilities and integration of the softwar
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5810">Sunday 13:35 - 14:20 EDT (17:35 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span>
 </div>
@@ -464,11 +464,11 @@ In the presentation, we focus on the capabilities and integration of the softwar
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/favicon70x70.png">
 <h2>Greta  Goetz</h2></div>
 <div class="webform-html-textarea"><p>Greta Goetz, PhD, is an Assistant Professor in the English Department at the Faculty of Philology, University of Belgrade. Her research is concerned with developing the potential of project-/problem-based networked learning and epistemic fluency to restore intercultural rifts such as the science and technology-humanities divide, the meanings and limitations of “digital literacy,” and the problem of receptivity in intercultural dialogue. Her work is informed by her East-West background and some of it can be found at <a href="https://gretzuni.com">https://gretzuni.com</a>.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-22 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5774">
 
 <div class="talkblock" style="clear:both">
@@ -477,7 +477,7 @@ In the presentation, we focus on the capabilities and integration of the softwar
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5774">Saturday 11:20 - 12:05 EDT (15:20 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack5">Free software in Government</span>
 </div>
@@ -490,11 +490,11 @@ In the presentation, we focus on the capabilities and integration of the softwar
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/bastien-guerry.jpg">
 <h2>Bastien  Guerry</h2></div>
 <div class="webform-html-textarea"><p>Bastien Guerry is the free software officer for the French public administration. He first studied philosophy and cognitive sciences. He got interested in the free software movement in the late 90's and taught himself how to program by contributing to GNU Emacs. In 2008, he got involved in the One Laptop Per Child initiative and was recruited by Wikimedia France as its first employee in 2010. In 2017, he joined the "Public Interest Entrepreneurs" program, led by Etalab, the French department for open data.  There he discovered the challenges faced by public agencies when it comes to maintaining and enhancing resilient IT infrastructures, recruiting tech profiles, rationalizing the use of free software and the contributions made by the public administration to the larger free software ecosystem.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-23 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5818">
 
 <div class="talkblock" style="clear:both">
@@ -503,7 +503,7 @@ In the presentation, we focus on the capabilities and integration of the softwar
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5818">Sunday 16:20 - 17:05 EDT (20:20 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -515,11 +515,11 @@ In the presentation, we focus on the capabilities and integration of the softwar
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/IMG_20191001_130326.jpg">
 <h2>Clinton  Ignatov</h2></div>
 <div class="webform-html-textarea"><p>I have been using free software for nearly 20 years, beginning with my teenage forays into compiling Gentoo on my AMD K7 PC. Since then I've developed a strong interest in understanding the social impact of proprietary software through my deep readings of the work of Marshall McLuhan.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-24 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5846">
 
 <div class="talkblock" style="clear:both">
@@ -528,7 +528,7 @@ In the presentation, we focus on the capabilities and integration of the softwar
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5846">Sunday 10:25 - 11:10 EDT (14:25 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -542,11 +542,11 @@ As designers with 10+ years experience with free and libre software, we've gone
 <h2>Manufactura  Independente</h2></div>
 <div class="webform-html-textarea"><p>Manufactura Independente is a research studio for design and graphic communication focused on free software, free culture and critical engagement with design tools. Born in 2010 and based in Porto, Portugal, it is the testing laboratory and playground of Ana Isabel Carvalho and Ricardo Lafuente for their experiments in crossing design, free culture, media art, typography, data explorations and hardware archaeology. They've been actively and critically exploring these connections through their work in Web development, print design, playful data visualisation, custom software and engagement with non-conventional tools, as well as holding several type design workshops focused on alternative (and often quirky) creative workflows.<br /><br />
 Web site: <a href="https://manufacturaindependente.org">https://manufacturaindependente.org</a></p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-25 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5836">
 
 <div class="talkblock" style="clear:both">
@@ -555,7 +555,7 @@ Web site: <a href="https://manufacturaindependente.org">https://manufacturaindep
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5836">Sunday 15:25 - 16:10 EDT (19:25 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -567,11 +567,11 @@ Web site: <a href="https://manufacturaindependente.org">https://manufacturaindep
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/Roby_Novembre_2021_sq.png">
 <h2>Roberto  Innocenti</h2></div>
 <div class="webform-html-textarea"><p>Among the founders of the project Open Hardware PowerPC Notebook, presenter and ambassador of the project. President of the association Power Progress Community which deals with the promotion and dissemination of free software and open hardware.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-26 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5790">
 
 <div class="talkblock" style="clear:both">
@@ -580,7 +580,7 @@ Web site: <a href="https://manufacturaindependente.org">https://manufacturaindep
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5790">Saturday 14:30 - 15:15 EDT (18:30 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span>
 </div>
@@ -599,11 +599,11 @@ Web site: <a href="https://manufacturaindependente.org">https://manufacturaindep
 <div class="webform-html-textarea"><p>I consider myself a philosopher above all, but I'm also a blogger, free software evangelist, activist, and Haketilo developer. I started fighting for free software in higher education. Unwilling to work a corporate job, I now work on Haketilo. I use my online journal to promote software freedom, privacy, minimalism, and personal introspection. I have many strong opinions. You can find my personal homepage at <a href="https://nicksphere.ch">https://nicksphere.ch</a>. If you have Gemini, you can find me at gemini://nicksphere.ch.</p><br />
 <p>Wojciech Kosior will be joining Nicholas for the Q&amp;A section of this talk.</p><br />
 <p><strong>Wojciech Kosior</strong> first learned about free software over five years ago. In 2021, <a href="https://www.gnu.org/education/how-i-fought-to-graduate-without-using-non-free-software.html">the story of his fight to graduate without running proprietary videoconferencing software</a> was published by the GNU Project. After graduating, he devoted his programming skills to the development of the Haketilo browser extension, which aims to give users back control over Web browsing. Besides being a free software hacker, he is a practicing Catholic and a guy who enjoys doing back flips and taking bike trips.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-27 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5761">
 
 <div class="talkblock" style="clear:both">
@@ -612,7 +612,7 @@ Web site: <a href="https://manufacturaindependente.org">https://manufacturaindep
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5761">Sunday 15:25 - 16:10 EDT (19:25 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -625,11 +625,11 @@ Web site: <a href="https://manufacturaindependente.org">https://manufacturaindep
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/William Paul Liggett -- Profile Picture -- 2020-08-21 [800x708].png">
 <h2>William  Liggett</h2></div>
 <div class="webform-html-textarea"><p>William is a software engineer, Assistant Professor, &amp; ethical hacker. He is also working on writing a book titled <em>Hands-On Cybersecurity Programming with Java</em>. Additionally, he develops in Python, JavaScript, PHP, and HTML5/CSS3. William has also obtained many "cool points" for getting more people to care about and use free software! And he has awesome dad-jokes that you don't want to miss!</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-28 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5849">
 
 <div class="talkblock" style="clear:both">
@@ -638,7 +638,7 @@ Web site: <a href="https://manufacturaindependente.org">https://manufacturaindep
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5849">Saturday 11:20 - 12:05 EDT (15:20 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -651,11 +651,11 @@ Web site: <a href="https://manufacturaindependente.org">https://manufacturaindep
 <h2>José  Marchesi</h2></div>
 <div class="webform-html-textarea"><p>José E. Marchesi is a GNU hacker and maintainer. Currently employed by<br /><br />
 Oracle as the Tech Lead of their Toolchain/Compilers team.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-29 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5753">
 
 <div class="talkblock" style="clear:both">
@@ -664,7 +664,7 @@ Oracle as the Tech Lead of their Toolchain/Compilers team.</p><br />
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5753">Saturday 15:25 - 16:10 EDT (19:25 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -687,11 +687,11 @@ source technologies and services. She is launching her own
 business in data privacy and security while continuing to work on her
 passion projects as part of a nonprofit focused on farmer citizenship
 and wholistic wellness as well as an unschooling cooperative.</p>
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-30 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5812">
 
 <div class="talkblock" style="clear:both">
@@ -700,7 +700,7 @@ and wholistic wellness as well as an unschooling cooperative.</p>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5812">Saturday 13:35 - 14:20 EDT (17:35 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -713,11 +713,11 @@ and wholistic wellness as well as an unschooling cooperative.</p>
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/IMG_20211001_083254.jpg">
 <h2>Tristan  Miller</h2></div>
 <div class="webform-html-textarea"><p>Tristan Miller is a research scientist at the Austrian Research Institute for Artificial Intelligence and a member of Usenet’s Big-8 Management Board. He (co-)maintains several free software packages, including the generic preprocessor GPP and GNU’s moderation tool, STUMP.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-31 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5624">
 
 <div class="talkblock" style="clear:both">
@@ -726,7 +726,7 @@ and wholistic wellness as well as an unschooling cooperative.</p>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5624">Sunday 16:20 - 17:05 EDT (20:20 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -739,11 +739,11 @@ and wholistic wellness as well as an unschooling cooperative.</p>
 <h2>Anjandev  Momi</h2></div>
 <div class="webform-html-textarea"><p>Anjan Momi is an Electrical and Computer Engineering MAsc. student at the University of Toronto. In his free time, he likes to hack on and improve free software.</p><br />
 <p>Web site: <a href="https://momi.ca/">https://momi.ca/</a></p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-32 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5738">
 
 <div class="talkblock" style="clear:both">
@@ -752,7 +752,7 @@ and wholistic wellness as well as an unschooling cooperative.</p>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5738">Sunday 11:20 - 12:05 EDT (15:20 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack8">Security</span>
 </div>
@@ -764,11 +764,11 @@ and wholistic wellness as well as an unschooling cooperative.</p>
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/ramakrishnan-for-lae.jpg">
 <h2>Ramakrishnan  Muthukrishnan</h2></div>
 <div class="webform-html-textarea"><p>Ramakrishnan (Ram) is a programmer for the past 22 years and has contributed to several GNU projects in bits and pieces. He works for a Berlin based company called Least Authority. In his free time, he loves tinkering with electronics and radio and holds an amateur radio license with callsign VU3RDD.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-33 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5822">
 
 <div class="talkblock" style="clear:both">
@@ -777,7 +777,7 @@ and wholistic wellness as well as an unschooling cooperative.</p>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5822">Saturday 15:25 - 16:10 EDT (19:25 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -789,11 +789,11 @@ and wholistic wellness as well as an unschooling cooperative.</p>
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/2021-12-14-201115.jpg">
 <h2>Lori  Nagel</h2></div>
 <div class="webform-html-textarea"><p>Lori has been a freedom respecting software and free culture activist since 2005.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-34 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5847">
 
 <div class="talkblock" style="clear:both">
@@ -802,7 +802,7 @@ and wholistic wellness as well as an unschooling cooperative.</p>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5847">Saturday 10:25 - 11:10 EDT (14:25 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span>
 </div>
@@ -815,11 +815,11 @@ and wholistic wellness as well as an unschooling cooperative.</p>
 <h2>Özcan   Oğuz</h2></div>
 <div class="webform-html-textarea"><p>Özcan Oğuz is the president of the Free Software Association (Özgür Yazılım Derneği) in Turkey. Ze started using computers at two, in 1999. In 2007, with the Pardus project, ze first encountered the<br /><br />
 free software philosophy and has been using free software exclusively in zis devices ever since. Ze graduated from Kadıköy Anadolu High School and Boğaziçi University. In 2017, ze founded Hackerspace Istanbul in Kadıköy, İstanbul. Ze has worked in turn as a publisher, a journalist, and an instructor for GNU/Linux system administration at Mustafa Akgül Free Software Camps. Ze is currently working as a software developer.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-35 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5823">
 
 <div class="talkblock" style="clear:both">
@@ -828,7 +828,7 @@ free software philosophy and has been using free software exclusively in zis dev
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5823">Saturday 14:30 - 15:15 EDT (18:30 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -841,11 +841,11 @@ free software philosophy and has been using free software exclusively in zis dev
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/headshot_0.jpg">
 <h2>Dennis  Payne</h2></div>
 <div class="webform-html-textarea"><p>Dennis Payne is a free software game developer in his spare time. He has started Bt Builder and Troll Bridge, and maintains several other games he has stumbled across. "Open Game Source" is a series of articles about his game development efforts. Recently he has been developing a free software game achievement system.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-36 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5646">
 
 <div class="talkblock" style="clear:both">
@@ -854,7 +854,7 @@ free software philosophy and has been using free software exclusively in zis dev
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5646">Saturday 10:25 - 11:10 EDT (14:25 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -867,11 +867,11 @@ free software philosophy and has been using free software exclusively in zis dev
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/2021-11-07-123314.jpg">
 <h2>Tobias  Platen</h2></div>
 <div class="webform-html-textarea"><p>I am a libre software engineer living in Göttigen, Germany. I have been using libre-distros of GNU/Linux on Respects Your Freedom (RYF) certified hardware for many years. In 2019 I became a contributor to the Libre-SOC project. I'm also a libre music producer and GNU Lilypond user, as well the author of the QTAU DAW.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-37 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5916">
 
 <div class="talkblock" style="clear:both">
@@ -880,7 +880,7 @@ free software philosophy and has been using free software exclusively in zis dev
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5916">Sunday 12:15 - 13:00 EDT  (16:15 UTC) - Opening keynote</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span>
 </div>
@@ -892,11 +892,11 @@ free software philosophy and has been using free software exclusively in zis dev
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/wunderland.6.full_.jpg">
 <h2>Hundred  Rabbits</h2></div>
 <div class="webform-html-textarea"><p>Hundred Rabbits is a small artist collective consisting of Rek (they), a writer and cartoonist, and Devine (they), a programmer, artist, and musician. They travel the globe together with their sailboat named "Pino" while creating and adapting software to fit their needs. They learned, with a lack of energy resources and Internet access, they needed to make adjustments to the way they were using their technology. Besides sharing their experiences about living on the water, they also document their use of various technologies and their art. In addition to blogs, cartoons, and music, they create and publish free (as in freedom) software projects.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-38 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5835">
 
 <div class="talkblock" style="clear:both">
@@ -905,7 +905,7 @@ free software philosophy and has been using free software exclusively in zis dev
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5835">Sunday 13:35 - 14:20 EDT (17:35 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -917,11 +917,11 @@ free software philosophy and has been using free software exclusively in zis dev
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/ruben.jpg">
 <h2>Rubén  Rodríguez Pérez</h2></div>
 <div class="webform-html-textarea"><p>Spaniard, software engineer, photographer, GNU hacker, guitar player, ape descendant. Rubén started his career developing free software for research centers and universities, then founded the Trisquel GNU/Linux distribution project and other nonprofits. He has contributed to the freedom and privacy oriented Web tools GNU IceCat, GNU LibreJS and JShelter, and has worked in the One Laptop Per Child program and as a senior systems administrator and CTO of the Free Software Foundation. He likes dogs and paragliding, and dislikes writing about himself.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-39 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5808">
 
 <div class="talkblock" style="clear:both">
@@ -930,7 +930,7 @@ free software philosophy and has been using free software exclusively in zis dev
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5808">Sunday 10:25 - 11:10 EDT (14:25 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune 
+<i class="glyphicon glyphicon-home"></i>: Neptune
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -942,11 +942,11 @@ free software philosophy and has been using free software exclusively in zis dev
 <div class="speakerheader"><img class="speakerpic"  src="/2022/assets/img/logo.png">
 <h2>Julin  S</h2></div>
 <div class="webform-html-textarea"><p>/Publishing well-formed Python packages/ at PyCon India 2020: <a href="https://www.youtube.com/watch?v=EAtYleEk0ig">https://www.youtube.com/watch?v=EAtYleEk0ig</a></p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-40 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5809">
 
 <div class="talkblock" style="clear:both">
@@ -955,7 +955,7 @@ free software philosophy and has been using free software exclusively in zis dev
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5809">Sunday 15:25 - 16:10 EDT (19:25 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -971,11 +971,11 @@ free software philosophy and has been using free software exclusively in zis dev
 <h2>Seth  Schoen</h2></div>
 <div class="webform-html-textarea"><p>Seth Schoen is a consultant living in San Francisco.</p><br />
 <p>He was the first Staff Technologist at the Electronic Frontier Foundation (EFF) and helped develop the Let's Encrypt certificate authority. At EFF, he also researched topics like printer tracking dots, packet spoofing by ISPs, and computer memory forensics. He has testified before several courts and Federal agencies. Previously, he was the lead developer of the LNX-BBC distribution.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-41 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5852">
 
 <div class="talkblock" style="clear:both">
@@ -984,7 +984,7 @@ free software philosophy and has been using free software exclusively in zis dev
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5852">Sunday 14:30 - 15:15 EDT (18:30 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span>
 </div>
@@ -997,11 +997,11 @@ free software philosophy and has been using free software exclusively in zis dev
 <h2>Protesilaos  Stavrou</h2></div>
 <div class="webform-html-textarea"><p> Protesilaos (aka "Prot") is a philosopher with a background in the<br /><br />
     humanities.  He used to work in politics, including as a parliamentary assistant at the European Parliament.  He switched to free software in 2016 on the premise that it empowered the end user to operate the computer on their own terms.  Since 2019, he is a power user of GNU Emacs.  Prot is the author/maintainer of the modus-themes project: a pair of highly accessible themes which are built into Emacs.  Prot is a tinkerer who has learnt how to program by using the free/libre tools at his disposal.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-42 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5914">
 
 <div class="talkblock" style="clear:both">
@@ -1010,7 +1010,7 @@ free software philosophy and has been using free software exclusively in zis dev
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5914">Saturday 12:15 - 13:00 EDT  (16:15 UTC) - Opening keynote</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span>
 </div>
@@ -1022,11 +1022,11 @@ free software philosophy and has been using free software exclusively in zis dev
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/marleen-stikker.jpg">
 <h2>Marleen  Stikker</h2></div>
 <div class="webform-html-textarea"><p>Marleen Stikker is founder of Waag, a social organization and research institute for creative technologies and social innovation. The prolific advocate for free, honest, and inclusive technology, and honorary PhD, is also founder of The Digital City (1993), a group that provides free public access to the Internet in Amsterdam, and author of the book "Het Internet is Stuk" (The Internet is Broken).</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-43 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5901">
 
 <div class="talkblock" style="clear:both">
@@ -1035,7 +1035,7 @@ free software philosophy and has been using free software exclusively in zis dev
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5901">Saturday 17:15 - 18:00 EDT (21:15 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span>
 </div>
@@ -1049,11 +1049,11 @@ free software philosophy and has been using free software exclusively in zis dev
 <div class="speakerheader"><img class="speakerpic"  src="/2022/assets/img/logo.png">
 <h2>Lightning   Talks</h2></div>
 <div class="webform-html-textarea"><p>Participate: Have your five-minute talk streamed at LibrePlanet 2022: Living Liberation.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-44 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5645">
 
 <div class="talkblock" style="clear:both">
@@ -1062,7 +1062,7 @@ free software philosophy and has been using free software exclusively in zis dev
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5645">Sunday 10:25 - 11:10 EDT (14:25 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span>
 </div>
@@ -1079,11 +1079,11 @@ free software philosophy and has been using free software exclusively in zis dev
 <h2>Blair  Vidakovich</h2></div>
 <div class="webform-html-textarea"><p>~vidak is a community organizer and software freedom advocate from Perth, Western Australia. This presentation was written on Emacs 27.2, running on EXWM on the Guix system.</p><br />
 <p>~vidak has subscribed to the GNU philosophy of computer freedom for many years. He advocates for a deepening and broadening of our culture incessantly; wherever and whenever he can (:</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-45 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5878">
 
 <div class="talkblock" style="clear:both">
@@ -1092,7 +1092,7 @@ free software philosophy and has been using free software exclusively in zis dev
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5878">Saturday 14:30 - 15:15 EDT (18:30 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -1104,11 +1104,11 @@ free software philosophy and has been using free software exclusively in zis dev
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/kyle_headshot.png">
 <h2>Kyle  Wiens</h2></div>
 <div class="webform-html-textarea"><p>Kyle Wiens is the CEO of iFixit, the free repair manual. He’s dedicated his life to defeating the second law of thermodynamics, a battle fought in the courtroom as often as in the workshop. The Right to Repair campaign has, so far, successfully legalized cell phone unlocking and tractor repair.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-46 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5684">
 
 <div class="talkblock" style="clear:both">
@@ -1117,7 +1117,7 @@ free software philosophy and has been using free software exclusively in zis dev
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5684">Saturday 15:25 - 16:10 EDT (19:25 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn 
+<i class="glyphicon glyphicon-home"></i>: Saturn
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack8">Security</span>
 </div>
@@ -1132,11 +1132,11 @@ With this talk, I will try to bring awareness to this situation, to some possibl
 <h2>Gunnar  Wolf</h2></div>
 <div class="webform-html-textarea"><p>I have been a free software user and promoter since 1995, Debian developer since 2003, and since 2009 am part of the Debian keyring-maintainers group. I have done other keyring-wide studies, one of which was presented at LibrePlanet 2018.<br /><br />
 I am currently enrolled in a PhD program, and the talk I am giving is related to my research.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-47 views-row-odd views-row-last">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="5756">
 
 <div class="talkblock" style="clear:both">
@@ -1145,7 +1145,7 @@ I am currently enrolled in a PhD program, and the talk I am giving is related to
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2022/program/#5756">Saturday 17:15 - 18:00 EDT (21:15 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter 
+<i class="glyphicon glyphicon-home"></i>: Jupiter
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -1158,13 +1158,13 @@ I am currently enrolled in a PhD program, and the talk I am giving is related to
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/Aaron-Wolf-headshot.jpg">
 <h2>Aaron  Wolf</h2></div>
 <div class="webform-html-textarea"><p>Aaron Wolf is co-founder of Snowdrift.coop and a long-time free software and free culture activist. In his day job as an independent music teacher, he pushes his students to use free/libre tools and release their music under free licenses.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
     </div>
-  
-  
-  
-  
+
+
+
+
       <div class="view-footer">
       <!--pageend-->    </div>
index 1b4b993039025282db624042b9ee816ca927edf4..2010b8a770a2e1e4e2f5568b54d7b83984a54916 100644 (file)
@@ -1,26 +1,26 @@
-      <!--pagestart-->    
-  
-  
-  
+      <!--pagestart-->
+
+
+
       <div class="view-content">
       <div class="view-grouping"><div class="view-grouping-header"><div id="schedule-Saturday">Saturday</div></div><div class="view-grouping-content">  <h3>10:00 - 10:15 EDT (14:00 UTC) - Welcome address</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/libreplanet-2022-opening-remarks/"><div id="5910"><div class="webform-html-textarea"><p>Welcome Address by FSF</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="/2022/assets/img/logo.png">
  LibrePlanet  2022
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>10:25 - 11:10 EDT (14:25 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/living-liberated-zero-to-hero/"><div id="5847"><div class="webform-html-textarea"><p>Living liberated: Zero-to-hero</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/alperozcan.jpg">
  Özcan   Oğuz
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/federated-social-media-in-the-age-of-social-distancing/"><div id="5728"><div class="webform-html-textarea"><p>Federated social media in the age of social distancing</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/profile.jpg">
  Ángel  García Menéndez
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/the-librevr-project/"><div id="5646"><div class="webform-html-textarea"><p>The LibreVR Project</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/2021-11-07-123314.jpg">
  Tobias  Platen
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>11:20 - 12:05 EDT (15:20 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2022/speakers/#5757"><div id="5757"><div class="webform-html-textarea"><p>Survival of free software: Analyzing characteristics of free software in comparison to other software</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="/2022/assets/img/logo.png">
  Sagar  Acharya
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/from-gnu-emacs-to-code-gouv-fr/"><div id="5774"><div class="webform-html-textarea"><p>From GNU Emacs to code.gouv.fr</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack5">Free software in Government</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack5">Free software in Government</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/bastien-guerry.jpg">
  Bastien  Guerry
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/gnu-poke-the-free-extensible-editor-for-structured-binary-data/"><div id="5849"><div class="webform-html-textarea"><p>GNU poke, the free extensible editor for structured binary data</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/jemarch-t.png">
  José  Marchesi
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>12:15 - 13:00 EDT  (16:15 UTC) - Opening keynote</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/reclaiming-public-values-in-the-internet/"><div id="5914"><div class="webform-html-textarea"><p>Reclaiming public values in the internet</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/marleen-stikker.jpg">
  Marleen  Stikker
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>13:00 - 13:30 EDT (17:00 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2022/speakers/#5906"><div id="5906"><div class="webform-html-textarea"><p>Lunch, dinner, or morning coffee break!</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>:  </span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>:  </span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="/2022/assets/img/logo.png">
  LibrePlanet  2022
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>13:35 - 14:20 EDT (17:35 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/empowering-community-oriented-play-with-trbot/"><div id="5637"><div class="webform-html-textarea"><p>Empowering community-oriented play with TRBot</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/Photo.jpg">
  Thomas  Deeb
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/building-an-ethical-e-book/"><div id="5763"><div class="webform-html-textarea"><p>Building an ethical E-book</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/aboutImage.jpg">
  Nicholas  Bernhard
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/revitalizing-usenet/"><div id="5812"><div class="webform-html-textarea"><p>Revitalizing Usenet</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/IMG_20211001_083254.jpg">
  Tristan  Miller
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>14:30 - 15:15 EDT (18:30 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/repair-is-not-a-crime-an-update-from-the-front-line-of-the-right-to-repair-fight/"><div id="5878"><div class="webform-html-textarea"><p>Repair is not a crime: An update from the front line of the Right to Repair fight</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/kyle_headshot.png">
  Kyle  Wiens
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/free-software-game-restoration-ii/"><div id="5823"><div class="webform-html-textarea"><p>Free software game restoration II</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/headshot_0.jpg">
  Dennis  Payne
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/taking-back-the-web-with-haketilo/"><div id="5790"><div class="webform-html-textarea"><p>Taking back the Web with Haketilo</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/headshot_1.jpg">
  Nicholas  Johnson
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
    Wojciech Kosior (Q&A)
 
-   
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>15:25 - 16:10 EDT (19:25 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/why-we-all-need-ethical-technology-and-web-hosting/"><div id="5753"><div class="webform-html-textarea"><p>Why we all need ethical technology and Web hosting</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://static.fsf.org/nosvn/libreplanet/2022/assets/micky-2019.jpg">
  Micky  Metts
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
+
 
   Chris Thompson<br>
   Melissa Bingham<br>
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/current-challenges-for-the-openpgp-keyserver-network-is-there-a-way-forward/"><div id="5684"><div class="webform-html-textarea"><p>Current challenges for the OpenPGP keyserver network. Is there a way forward?</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack8">Security</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack8">Security</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/gwolf_bosnia.jpg">
  Gunnar  Wolf
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/gnu-jami-how-it-works-and-how-to-get-your-friends-and-family-to-use-it/"><div id="5822"><div class="webform-html-textarea"><p>GNU Jami - How it works and how to get your friends and family to use it.</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/2021-12-14-201115.jpg">
  Lori  Nagel
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>16:20 - 17:05 EDT (20:20 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/ans-coding-replacing-huffman-and-ac-from-introduction-to-patent-issues/"><div id="5918"><div class="webform-html-textarea"><p>ANS coding replacing Huffman and AC - from introduction to patent issues</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/IMG_5364_cr.jpg">
  Jarek  Duda
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/you-wouldn-t-hate-artificial-scarcity/"><div id="5805"><div class="webform-html-textarea"><p>You Wouldn't Hate Artificial Scarcity</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/adrian-cochrane_0.jpg">
  Adrian  Cochrane
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/the-importance-of-student-participation-in-the-struggle-for-user-freedom-in-society/"><div id="5641"><div class="webform-html-textarea"><p>The importance of student participation in the struggle for user freedom in society</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/photo_2021-10-21_13-25-01.jpg">
  Kaio Duarte Costa
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>17:15 - 18:00 EDT (21:15 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/why-our-economy-fails-public-goods-like-free-software-bf79/"><div id="5756"><div class="webform-html-textarea"><p>Why our economy fails public goods like free software</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/Aaron-Wolf-headshot.jpg">
  Aaron  Wolf
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2022/speakers/#5901"><div id="5901"><div class="webform-html-textarea"><p>Lightning Talks</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="/2022/assets/img/logo.png">
  Lightning   Talks
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/tzdb-and-some-challenges-of-long-data/"><div id="5902"><div class="webform-html-textarea"><p>TZDB and some challenges of long data</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/Paul_Eggert-300x200.jpg">
  Paul  Eggert
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>18:10 - 18:25 EDT (22:10 UTC) - FSF Award ceremony &amp; Closing notes</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2022/speakers/#5911"><div id="5911"><div class="webform-html-textarea"><p>FSF Awards Ceremony &amp; Closing Remarks</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="/2022/assets/img/logo.png">
  LibrePlanet  2022
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>18:30 - 19:30 EDT (22:30 UTC) - AfterParty</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2022/speakers/#5912"><div id="5912"><div class="webform-html-textarea"><p>Join the FSF Afterparty with Supporter and Stalwart level attendees!</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Videoconferencing with Supporter and Stalwart level attendees</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Videoconferencing with Supporter and Stalwart level attendees</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="/2022/assets/img/logo.png">
  LibrePlanet  2022
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
 </div></div><div class="view-grouping"><div class="view-grouping-header"><div id="schedule-Sunday">Sunday</div></div><div class="view-grouping-content">  <h3>10:00 - 10:15 EDT (14:00 UTC) - Welcome address</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/sunday-welcome-address/"><div id="5909"><div class="webform-html-textarea"><p>Welcome Address by FSF</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="/2022/assets/img/logo.png">
  LibrePlanet  2022
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>10:25 - 11:10 EDT (14:25 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/design-in-the-command-line-recipes-for-tasty-outcomes/"><div id="5846"><div class="webform-html-textarea"><p>Design in the command line: Recipes for tasty outcomes</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/manufactura.jpg">
  Manufactura  Independente
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/toward-the-moral-objectivity-of-gnu/"><div id="5645"><div class="webform-html-textarea"><p>Toward the moral objectivity of GNU</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/fedi-profile-jlh-birthday.jpeg">
  Blair  Vidakovich
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/living-federation/"><div id="5808"><div class="webform-html-textarea"><p>Living federation</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="/2022/assets/img/logo.png">
  Julin  S
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>11:20 - 12:05 EDT (15:20 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/replicant-struggle-for-independence/"><div id="5797"><div class="webform-html-textarea"><p>Replicant: Struggle for independence</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="/2022/assets/img/logo.png">
  Denis  Carikli
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/distributing-freedom-how-package-managers-empower-software-users/"><div id="5830"><div class="webform-html-textarea"><p>Distributing freedom: How package managers empower software users</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="/2022/assets/img/logo.png">
  Sebastian  Crane
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/easy-secure-and-private-information-transfer-with-magic-wormhole/"><div id="5738"><div class="webform-html-textarea"><p>Easy, secure and private information transfer with magic-wormhole</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack8">Security</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack8">Security</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/ramakrishnan-for-lae.jpg">
  Ramakrishnan  Muthukrishnan
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>12:15 - 13:00 EDT  (16:15 UTC) - Opening keynote</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/software-doldrums/"><div id="5916"><div class="webform-html-textarea"><p>Software Doldrums</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/wunderland.6.full_.jpg">
  Hundred  Rabbits
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>13:00 - 13:30 EDT (17:00 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2022/speakers/#5907"><div id="5907"><div class="webform-html-textarea"><p>Lunch, dinner, or morning coffee break!</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>:  </span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>:  </span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="/2022/assets/img/logo.png">
  LibrePlanet  2022
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>13:35 - 14:20 EDT (17:35 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/hacking-my-brain-free-virtual-reality-implementations-and-their-potential-for-therapeutic-use/"><div id="5835"><div class="webform-html-textarea"><p>Hacking my brain: Free virtual reality implementations and their potential for therapeutic use</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/ruben.jpg">
  Rubén  Rodríguez Pérez
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/retracing-digital-freedom-in-the-classroom/"><div id="5810"><div class="webform-html-textarea"><p>Retracing digital freedom as pattern learning for life</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/favicon70x70.png">
  Greta  Goetz
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/a-free-toolchain-from-molecular-vibrations-to-detailed-combustion-how-some-physical-chemists-and-chemical-engineers-have-escaped-proprietary-software/"><div id="5622"><div class="webform-html-textarea"><p>A free toolchain from molecular vibrations to detailed combustion: How (some) physical chemists and chemical engineers have escaped proprietary software</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/Fuller_RWTH_3.jpg">
  Mark  Fuller
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
+
 
   Kfir Kaplan<br>
 
 </table>
   <h3>14:30 - 15:15 EDT (18:30 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/living-in-freedom-with-gnu-emacs/"><div id="5852"><div class="webform-html-textarea"><p>Living in freedom with GNU Emacs</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="/2022/assets/img/logo.png">
  Protesilaos  Stavrou
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/the-state-of-software-patents-in-2022/"><div id="5739"><div class="webform-html-textarea"><p>The state of software patents in 2022</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/panos-cropped.png">
  Panos  Alevropoulos
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/building-a-liberate-home-for-myself-and-others/"><div id="5807"><div class="webform-html-textarea"><p>Building a Liberated Home - for myself and others</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/abhas-passport-size-photo.jpg">
  Abhas  Abhinav
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>15:25 - 16:10 EDT (19:25 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/reducing-internet-address-waste-the-ipv4-unicast-extensions-project/"><div id="5809"><div class="webform-html-textarea"><p>Reducing Internet address waste: The IPv4 unicast extensions project</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/Seth headshot_1.jpg">
  Seth  Schoen
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/baby-steps-to-freedom/"><div id="5761"><div class="webform-html-textarea"><p>Baby steps to freedom</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/William Paul Liggett -- Profile Picture -- 2020-08-21 [800x708].png">
  William  Liggett
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/why-we-feel-it-is-a-liberation-experience-to-take-part-in-the-open-hardware-powerpc-notebook-project/"><div id="5836"><div class="webform-html-textarea"><p>Why we feel it is a liberation experience to take part in the Open Hardware PowerPC Notebook project</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/Roby_Novembre_2021_sq.png">
  Roberto  Innocenti
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>16:20 - 17:05 EDT (20:20 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/sxmo-freedom-on-mobile-devices-through-simplicity-and-hackability/"><div id="5624"><div class="webform-html-textarea"><p>Sxmo: Freedom on mobile devices through simplicity and hackability</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/avatar.jpg">
  Anjandev  Momi
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2022/speakers/#5853"><div id="5853"><div class="webform-html-textarea"><p>The Net beyond the web</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack10">Exploring Free Software concepts</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="/2022/assets/img/logo.png">
  Amin  Bandali
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/the-media-ecology-of-source-code-access/"><div id="5818"><div class="webform-html-textarea"><p>The media ecology of source code access</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/IMG_20191001_130326.jpg">
  Clinton  Ignatov
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>17:15 - 17:45 EDT (21:15 UTC) - Closing keynote</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/keynote-by-free-software-foundation/"><div id="5913"><div class="webform-html-textarea"><p>Keynote by Free Software Foundation</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="/2022/assets/img/logo.png">
  LibrePlanet  2022
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>17:45 - 18:00 EDT (21:45 UTC) - Closing notes</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/libreplanet-2022-closing-remarks/"><div id="5908"><div class="webform-html-textarea"><p>LibrePlanet: Living Liberation Closing remarks</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="/2022/assets/img/logo.png">
  LibrePlanet  2022
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
       </tbody>
 </table>
 </div></div>    </div>
-  
-  
-  
-  
+
+
+
+
       <div class="view-footer">
       <!--pageend-->    </div>
index ab4b4fa62f03dbf8649d4b0443d574c379015ad3..25332fa8f05c6572a68dcf461354b6482a3618ed 100644 (file)
@@ -6,7 +6,7 @@
 
 <p>LibrePlanet (March 19 &amp; 20, online) is the annual conference hosted by the Free Software Foundation. LibrePlanet provides an opportunity for community activists, domain experts, and people seeking solutions for themselves to come together in order to discuss current issues in technology and ethics.</p>
 
-<p>This year's LibrePlanet theme is <strong>"Living Liberation"</strong>. 
+<p>This year's LibrePlanet theme is <strong>"Living Liberation"</strong>.
 
 <!--<h3>Registration</h3>
 <p>Please <strong><a href="https://my.fsf.org/civicrm/event/info?reset=1&id=99">register</a></strong> for the conference to help support the organization of LibrePlanet, and access our special perks for registered attendees. Plus, you'll get a <a href="https://shop.fsf.org">GNU Press</a> shop discount!</p>
index 595eb51794369a5176841e15c2e5decb8dce5fcf..af14482d329cc826888ab2df3b748240bb3e1b8e 100644 (file)
@@ -4,7 +4,7 @@
 <li><a href="https://media.libreplanet.org/u/libreplanet/tag/libreplanet-2022-video/">Watch the Conference Videos!</a></li>
 <li><a href="/2022/program">Schedule</a></li>
 <li><a href="/2022/speakers">Bios & Talks</a></li>
-<li><a href="https://my.fsf.org/node/49/">Fill in the Questionnaire</a></li> 
+<li><a href="https://my.fsf.org/node/49/">Fill in the Questionnaire</a></li>
 <!-- <li><a href="/2022/fun/">Registered Access</a></li> -->
 <!-- <li><a href="/2022/live/">Live</a></li> -->
 <!-- <li class="livestream-link"><a href="/2020/live">Live Video Recordings <span class="glyphicon glyphicon-globe"></span></a></li> -->
index 54b9a365e472cef0eb1878bea2b60138fd0eab88..1683a0a1b1ad7b338293db2c5102b10e8bb16813 100644 (file)
@@ -4,7 +4,7 @@
 <li><a href="/2022/sponsors">Sponsors and Exhibitors</a></li>
 <!--<li><a href="/2022/volunteer/">Volunteer</a></li>-->
 <!-- <li><a href="https://media.libreplanet.org/u/libreplanet/tag/libreplanet-2021-video/">2021 Session Videos</a></li> -->
-<li><a href="https://lists.gnu.org/mailman/listinfo/libreplanet-discuss">Join the Discussion List</a></li> 
+<li><a href="https://lists.gnu.org/mailman/listinfo/libreplanet-discuss">Join the Discussion List</a></li>
 <!-- <li><a href="https://www.fsf.org/about/contact/">Contact Us</a></li> -->
 <!--<li><a href="https://www.fsf.org/blogs/community/free-software-awards-recognize-those-who-advance-our-freedom-by-october-28th">FSF Award Nomination</a></li>-->
 
index b5c533df5a8c464020cf47853ac7dc1f5a2c44af..c518abf7d329457709f432f27dd774beb97cf7f1 100755 (executable)
     <!-- wrapper for slides -->
        <ul class="carousel-inner list-unstyled" style="max-width:900px; max-height:700px; !important;">
         <li class="item active">
-           <a href="https://www.fsf.org/"><img src="https://static.fsf.org/nosvn/libreplanet/2022/communications/LP-ty.png"  
+           <a href="https://www.fsf.org/"><img src="https://static.fsf.org/nosvn/libreplanet/2022/communications/LP-ty.png"
                                                                                                                  alt="[ LibrePlanet thank you image ]"></a>
            <p class="carousel-caption-center">
                <br>
                Thank you for another great edition of LibrePlanet!
             </p>
-       </li> 
+       </li>
      <!--<li class="item active">
-           <a href="https://libreplanet.org/2022/live/"><img src="https://static.fsf.org/nosvn/libreplanet/2022/communications/LIVE.png"  
+           <a href="https://libreplanet.org/2022/live/"><img src="https://static.fsf.org/nosvn/libreplanet/2022/communications/LIVE.png"
                                                                                                                  alt="[ LibrePlanet watch live image ]"></a>
            <p class="carousel-caption-center">
                <br>
                <a href="https://libreplanet.org/2022/live">Watch LibrePlanet <strong>live:</strong></a> and<a href="https://my.fsf.org/civicrm/event/info?reset=1&id=99"> register today,</a> so you get the shop discount!</a>
      <li class="item">
-           <img src="//static.fsf.org/nosvn/libreplanet/2022/communications/keynotes.png" 
+           <img src="//static.fsf.org/nosvn/libreplanet/2022/communications/keynotes.png"
                 alt="[ Composed image of Keynote announcement for Marleen Stikker, HundredRabbits, and 2 open circles her image in a circle on it. ]"></a>
            <p class="carousel-caption-center">
                <br>
                <a href="https://www.fsf.org/news/">We're excited to announce the first two keynotes joining us at LibrePlanet 2022</a>
             </p>
         </li>
-       </li> 
+       </li>
      <li class="item">
-           <img src="//static.fsf.org/nosvn/libreplanet/2021/assets/day-2/LP-videos.jpg" 
+           <img src="//static.fsf.org/nosvn/libreplanet/2021/assets/day-2/LP-videos.jpg"
                 alt="[ Screenshot of LibrePlanet 2021. ]"></a>
            <p class="carousel-caption-center">
                <br>
@@ -41,7 +41,7 @@
             </p>
         </li>
      <li class="item">
-           <img src="//static.fsf.org/nosvn/libreplanet/2020/assets/donate1-2.jpg" 
+           <img src="//static.fsf.org/nosvn/libreplanet/2020/assets/donate1-2.jpg"
                 alt="[ A large group of people at the offices of the Free Software Foundation. ]"></a>
            <p class="carousel-caption-center">
                <a href="https://my.fsf.org/civicrm/contribute/transact?reset=1&id=60">Donate to help support the organization of LibrePlanet.</a></p>
@@ -54,7 +54,7 @@
            </p>
        </li>
        <!-- <li class="item">
-           <img src="//static.fsf.org/nosvn/libreplanet/2020/assets/volunteer1-2.jpg" 
+           <img src="//static.fsf.org/nosvn/libreplanet/2020/assets/volunteer1-2.jpg"
                 alt="[ A photo of the GNU Press table from LibrePlanet 2019. ]">
            <p class="carousel-caption-center">
                Volunteers keep LibrePlanet spinning <br>(and get great perks as well).<br>
index aa59b6b096bb5a53bbf0bbadb3d2153dc21125dc..67bc874afa467546e7e4bd8a66091b334b813da9 100755 (executable)
@@ -7,7 +7,7 @@
 
 <h1>Raffle</h1>
 
-<p>We'll be raffling off fabulous free software prizes, thanks to <a href="https://libreplanet.org/2022/sponsors">some of our generous sponsors</a>. 
+<p>We'll be raffling off fabulous free software prizes, thanks to <a href="https://libreplanet.org/2022/sponsors">some of our generous sponsors</a>.
 
 <p>All attendees get a gratis raffle ticket, FSF members get a second gratis ticket, and everyone can buy more chances to win at the GNU Press table during LibrePlanet, as well as at the Friday open house and Saturday evening social events! Buy one ticket for $2, 3 tickets for $5, one arm's length for $20, cash or credit. FSF staff and board members are not eligible to participate in the raffle.</p>
 
@@ -22,7 +22,7 @@
 <!--   <li>Subscriptions to <a href="https://jmp.chat/">JMP</a></li> -->
 <!--   <li>ChaosKeys from <a href="https://altusmetrum.org/">Altus Metrum, LLC</a></li> -->
 <!-- </ul> -->
-                                                        
+
 
 
 <!--#include virtual="/2022/includes/footer.html"-->
index af073d2716bcbf5ca33b1148420c4396a0e650fd..077b83cb5973e08b745f345759746ba0b8ccb87b 100755 (executable)
@@ -58,7 +58,7 @@ h2 a { border: none; }
 
 <br>
 
-<h2>LibrePlanet 2022 Exhibitors</h2> 
+<h2>LibrePlanet 2022 Exhibitors</h2>
 
 <p>The lively Exhibit Hall at LibrePlanet will be open on both conference days (times TBC), with something for everyone. Be sure to take a virtual stroll around and meet exhibitors who care about software freedom.</p>
 
index 72893fc5789bf7b2b6e937fe170b5cc33b035406..cf7aad038902c47d422595339ed773d570152a7d 100755 (executable)
@@ -38,7 +38,7 @@ h2 a { border: none; }
 <br>
 
 <h4>LibrePlanet has ended. We thank Spruce for supporting us!</h4>
-<p>Spruce has an exhibitor space in the <a href="https://play.libreadventure.fsf.org">LibreAdventure</a> Spruce area (our virtual conference space). 
+<p>Spruce has an exhibitor space in the <a href="https://play.libreadventure.fsf.org">LibreAdventure</a> Spruce area (our virtual conference space).
 <!--<ul>
 <li> Saturday 10:00-15:00 EDT (14:00-19:00 UTC)</li>
 <li> Sunday 10:00-12:00 EDT (14:00-16:00 UTC)</li>
@@ -62,7 +62,7 @@ IRC Room name: <strong>#libreplanet-spruce</strong></p>
 
 <h3>Video chat</h3>
 
-Visit the exhibitor's Jitsi chat URL above, if provided. Cameras are optional. 
+Visit the exhibitor's Jitsi chat URL above, if provided. Cameras are optional.
 
 <h3>Voice chat</h3>
 
index beef92d193ba527bedc6988514565b91acff28b5..fa38005441e0187de178debc3fd8ef237bc2a591 100755 (executable)
@@ -6,7 +6,7 @@
 <!--#include virtual="/2022/includes/sidebar.html"-->
 
 <h2>Unfortunately, pre-registration is full.</h2>
-<p>We will do our best to accomodate walk-up registrations. 
+<p>We will do our best to accomodate walk-up registrations.
 Prices are as follows:</p>
 <ul>
 <li>FSF members and students: $ 0</li>
index 0d2abddd611e546925a45f61055780d7faedf37d..4c188dc9edbffa2c887418e38c69070f556639cb 100644 (file)
@@ -6,7 +6,7 @@
 <!--#include virtual="/2022/includes/sidebar.html"-->
 ##Unfortunately, pre-registration is full.
 
-We will do our best to accomodate walk-up registrations. 
+We will do our best to accomodate walk-up registrations.
 Prices are as follows:
 
 * FSF members and students: $ 0
index 64e101819e758e5f16b1cdbe20219df64e45d2a4..10f542834a27c76ec3a1be7ce8bc43c252a0fc9f 100644 (file)
@@ -41,8 +41,8 @@ h3  {
   font-size: 20px;
 }
 
-.lp-logo { 
-  margin-bottom: -78px; 
+.lp-logo {
+  margin-bottom: -78px;
   margin-top: 25px;
 }
 
@@ -1124,7 +1124,7 @@ border-radius: 5px
 
 
 @media (max-width:600px) {
-  
+
   .talkblock{
     clear: both;
     text-align: left;
index 7166c1681428d2f4828ad08f6b3f96cd3f0c5607..4ee39efa7cd1ddfeec5ceed329b10174f6088c60 100644 (file)
@@ -49,7 +49,7 @@
 .ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; }
 .ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
 .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; zoom: 1; }
-.ui-autocomplete { position: absolute; cursor: default; }      
+.ui-autocomplete { position: absolute; cursor: default; }
 
 /* workarounds */
 * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
@@ -57,8 +57,8 @@
 .ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; }
 .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
 button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
+.ui-button-icons-only { width: 3.4em; }
+button.ui-button-icons-only { width: 3.7em; }
 
 /*button text element */
 .ui-button .ui-button-text { display: block; line-height: 1.4;  }
@@ -95,7 +95,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
 .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
 .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
 .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
+.ui-datepicker select.ui-datepicker-month,
 .ui-datepicker select.ui-datepicker-year { width: 49%;}
 .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
 .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
index 94fb5490a2ed10b2c69a4a567a4fd2e4f706d841..f155876e1b9cf712c81dd78eac057c5629343b9b 100644 (file)
 <glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
 <glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
 </font>
-</defs></svg> 
\ No newline at end of file
+</defs></svg>
\ No newline at end of file
index 9dcbc53860673be65350d4c2cfeb2b492a033928..5bd130e6bac363ad91c22aa9b479779e41560cc2 100644 (file)
@@ -1014,7 +1014,7 @@ JSONPPolling.prototype.doPoll = function () {
   this.script = script;
 
   var isUAgecko = 'undefined' != typeof navigator && /gecko/i.test(navigator.userAgent);
-  
+
   if (isUAgecko) {
     setTimeout(function () {
       var iframe = document.createElement('iframe');
index ab76d3a76719287a317b694d276be1b1cd0b2fa5..8ef5770a9eaef4a9de2c6479746ed6b133739393 100644 (file)
@@ -915,7 +915,7 @@ $.widget("ui.mouse", {
                        .bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
 
                event.preventDefault();
-               
+
                mouseHandled = true;
                return true;
        },
@@ -1545,7 +1545,7 @@ $.widget("ui.draggable", $.ui.mouse, {
                this.handle = this._getHandle(event);
                if (!this.handle)
                        return false;
-               
+
                $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
                        $('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')
                        .css({
@@ -1629,12 +1629,12 @@ $.widget("ui.draggable", $.ui.mouse, {
                if ($.ui.ddmanager && !o.dropBehaviour)
                        $.ui.ddmanager.prepareOffsets(this, event);
 
-               
+
                this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
-               
+
                //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)
                if ( $.ui.ddmanager ) $.ui.ddmanager.dragStart(this, event);
-               
+
                return true;
        },
 
@@ -1673,7 +1673,7 @@ $.widget("ui.draggable", $.ui.mouse, {
                        dropped = this.dropped;
                        this.dropped = false;
                }
-               
+
                //if the original element is no longer in the DOM don't bother to continue (see #8269)
                var element = this.element[0], elementInDom = false;
                while ( element && (element = element.parentNode) ) {
@@ -1699,29 +1699,29 @@ $.widget("ui.draggable", $.ui.mouse, {
 
                return false;
        },
-       
+
        _mouseUp: function(event) {
                //Remove frame helpers
-               $("div.ui-draggable-iframeFix").each(function() { 
-                       this.parentNode.removeChild(this); 
+               $("div.ui-draggable-iframeFix").each(function() {
+                       this.parentNode.removeChild(this);
                });
-               
+
                //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)
                if( $.ui.ddmanager ) $.ui.ddmanager.dragStop(this, event);
-               
+
                return $.ui.mouse.prototype._mouseUp.call(this, event);
        },
-       
+
        cancel: function() {
-               
+
                if(this.helper.is(".ui-draggable-dragging")) {
                        this._mouseUp({});
                } else {
                        this._clear();
                }
-               
+
                return this;
-               
+
        },
 
        _getHandle: function(event) {
@@ -2042,12 +2042,12 @@ $.ui.plugin.add("draggable", "connectToSortable", {
                };
 
                $.each(inst.sortables, function(i) {
-                       
+
                        //Copy over some variables to allow calling the sortable's native _intersectsWith
                        this.instance.positionAbs = inst.positionAbs;
                        this.instance.helperProportions = inst.helperProportions;
                        this.instance.offset.click = inst.offset.click;
-                       
+
                        if(this.instance._intersectsWith(this.instance.containerCache)) {
 
                                //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once
@@ -2090,13 +2090,13 @@ $.ui.plugin.add("draggable", "connectToSortable", {
 
                                        this.instance.isOver = 0;
                                        this.instance.cancelHelperRemoval = true;
-                                       
+
                                        //Prevent reverting on this forced stop
                                        this.instance.options.revert = false;
-                                       
+
                                        // The out event needs to be triggered independently
                                        this.instance._trigger('out', event, this.instance._uiHash(this.instance));
-                                       
+
                                        this.instance._mouseStop(event, true);
                                        this.instance.options.helper = this.instance.options._helper;
 
@@ -2266,7 +2266,7 @@ $.ui.plugin.add("draggable", "stack", {
                        return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);
                });
                if (!group.length) { return; }
-               
+
                var min = parseInt(group[0].style.zIndex) || 0;
                $(group).each(function(i) {
                        this.style.zIndex = min + i;
@@ -3130,7 +3130,7 @@ $.ui.plugin.add("resizable", "alsoResize", {
 
                _alsoResize = function (exp, c) {
                        $(exp).each(function() {
-                               var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, 
+                               var el = $(this), start = $(this).data("resizable-alsoresize"), style = {},
                                        css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left'];
 
                                $.each(css, function (i, prop) {
@@ -6488,7 +6488,7 @@ function Datepicker() {
 $.extend(Datepicker.prototype, {
        /* Class name added to elements to indicate already configured with a date picker. */
        markerClassName: 'hasDatepicker',
-       
+
        //Keep track of the maximum number of rows displayed (see #7043)
        maxRows: 4,
 
@@ -6497,7 +6497,7 @@ $.extend(Datepicker.prototype, {
                if (this.debug)
                        console.log.apply('', arguments);
        },
-       
+
        // TODO rename to "widget" when switching to widget factory
        _widgetDatepicker: function() {
                return this.dpDiv;
@@ -6607,7 +6607,7 @@ $.extend(Datepicker.prototype, {
                                if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
                                        $.datepicker._hideDatepicker();
                                else if ($.datepicker._datepickerShowing && $.datepicker._lastInput != input[0]) {
-                                       $.datepicker._hideDatepicker(); 
+                                       $.datepicker._hideDatepicker();
                                        $.datepicker._showDatepicker(input[0]);
                                } else
                                        $.datepicker._showDatepicker(input[0]);
@@ -6903,7 +6903,7 @@ $.extend(Datepicker.prototype, {
                                case 9: $.datepicker._hideDatepicker();
                                                handled = false;
                                                break; // hide on tab out
-                               case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + 
+                               case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' +
                                                                        $.datepicker._currentClass + ')', inst.dpDiv);
                                                if (sel[0])
                                                        $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
@@ -7001,7 +7001,7 @@ $.extend(Datepicker.prototype, {
        },
 
        /* Pop-up the date picker for a given input field.
-          If false returned from beforeShow event handler do not show. 
+          If false returned from beforeShow event handler do not show.
           @param  input  element - the input field attached to the date picker or
                          event - if triggered by focus */
        _showDatepicker: function(input) {
@@ -7105,7 +7105,7 @@ $.extend(Datepicker.prototype, {
                                // this breaks the change event in IE
                                inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement)
                        inst.input.focus();
-               // deffered render of the years select (to avoid flashes on Firefox) 
+               // deffered render of the years select (to avoid flashes on Firefox)
                if( inst.yearshtml ){
                        var origyearshtml = inst.yearshtml;
                        setTimeout(function(){
@@ -7814,7 +7814,7 @@ $.extend(Datepicker.prototype, {
                        $(this).bind(this.getAttribute('data-event'), handler[this.getAttribute('data-handler')]);
                });
        },
-       
+
        /* Generate the HTML for the current state of the date picker. */
        _generateHTML: function(inst) {
                var today = new Date();
@@ -7971,7 +7971,7 @@ $.extend(Datepicker.prototype, {
                                        drawMonth = 0;
                                        drawYear++;
                                }
-                               calender += '</tbody></table>' + (isMultiMonth ? '</div>' + 
+                               calender += '</tbody></table>' + (isMultiMonth ? '</div>' +
                                                        ((numMonths[0] > 0 && col == numMonths[1]-1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
                                group += calender;
                        }
@@ -8035,7 +8035,7 @@ $.extend(Datepicker.prototype, {
                                                '>' + year + '</option>';
                                }
                                inst.yearshtml += '</select>';
-                               
+
                                html += inst.yearshtml;
                                inst.yearshtml = null;
                        }
@@ -8146,7 +8146,7 @@ $.extend(Datepicker.prototype, {
  * Bind hover events for datepicker elements.
  * Done via delegate so the binding only occurs once in the lifetime of the parent div.
  * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
- */ 
+ */
 function bindHover(dpDiv) {
        var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';
        return dpDiv.delegate(selector, 'mouseout', function() {
@@ -8178,12 +8178,12 @@ function extendRemove(target, props) {
                        Object - settings for attaching new datepicker functionality
    @return  jQuery object */
 $.fn.datepicker = function(options){
-       
+
        /* Verify an empty collection wasn't passed - Fixes #6976 */
        if ( !this.length ) {
                return this;
        }
-       
+
        /* Initialise the date picker. */
        if (!$.datepicker.initialized) {
                $(document).mousedown($.datepicker._checkExternalClick).
@@ -14211,7 +14211,7 @@ $.effects.effect.highlight = function( o, done ) {
        }
 
        $.effects.save( elem, props );
-       
+
        elem
                .show()
                .css({
index 31de7b0d51444ca9ce3a50d71892845f2d88ce57..3603058bcb76086a847f5726846af1a4399bac24 100644 (file)
@@ -1,17 +1,17 @@
 /*!
  * jQuery Feeds v0.5
  * https://camagu.github.com/jquery-feeds
- * 
+ *
  * Copyright (c) 2013, Camilo Aguilar
  * Dual licensed under the MIT and GPL licenses:
  *     http://www.opensource.org/licenses/mit-license.php
  *     http://www.gnu.org/licenses/gpl.html
- * 
+ *
  * Includes a modified version of Simple JavaScript Templating
  * http://ejohn.org/blog/javascript-micro-templating/
  * Copyright (c) John Resig (http://ejohn.org)
  * MIT licensed
- * 
+ *
  * Date: 2013-02-18
  */
 
index 305f66b2d839887a6bc837ac1b56aa71c3dbc342..276cdeeb80efee20e375bcbb1fcd00bb82e62b74 100644 (file)
@@ -1,17 +1,17 @@
 /*!
  * jQuery Feeds v0.5
  * https://camagu.github.com/jquery-feeds
- * 
+ *
  * Copyright (c) 2013, Camilo Aguilar
  * Dual licensed under the MIT and GPL licenses:
  *     http://www.opensource.org/licenses/mit-license.php
  *     http://www.gnu.org/licenses/gpl.html
- * 
+ *
  * Includes a modified version of Simple JavaScript Templating
  * http://ejohn.org/blog/javascript-micro-templating/
  * Copyright (c) John Resig (http://ejohn.org)
  * MIT licensed
- * 
+ *
  * Date: 2013-02-18
  */
 (function(e){var t={};e.fn.feeds=function(n){var r={service:"//ajax.googleapis.com/ajax/services/feed/load?v=1.0",settings:{loadingTemplate:'<div class="feeds-loader">Loading entries ...</div>',entryTemplate:'<div class="feeds-entry feeds-source-<!=source!>"><a class="feeds-entry-title" target="_blank" href="<!=link!>" title="<!=title!>"><!=title!></a><div class="feeds-entry-date"><!=publishedDate!></div><div class="feeds-entry-contentSnippet"><!=contentSnippet!></div></div>',feeds:{},max:-1,xml:!1,ssl:"auto",onComplete:function(e){},preprocess:function(e){}},feeds:{},entries:[],feedsLength:0,feedsLoaded:0,$element:null,$loader:null,init:function(t,n){this.settings=e.extend(this.settings,n),this.feeds=this.settings.feeds;for(var r in this.feeds)this.feeds.hasOwnProperty(r)&&this.feedsLength++;var i=this.settings.ssl==="auto"?document.location.protocol:this.settings.ssl?"https:":"http:";e.inArray(i,["http:","https"])===-1&&(i="https:"),this.service=i+this.service,this.$element=e(t);var s=typeof this.settings.loadingTemplate=="function"?this.settings.loadingTemplate:this.tmpl(this.settings.loadingTemplate);this.$loader=e(s.call(this,{})),this.$element.html(this.$loader);var o=this.settings.xml?"json_xml":"json";for(var u in this.feeds)this.fetchFeed(u,this.feeds[u],this.settings.max,o)},fetchFeed:function(n,r,i,s){var o=this,u=r+"**"+i+"**"+s;if(typeof t[u]!="undefined"){o.processResponse(t[u],n,r);return}e.ajax({url:this.service,dataType:"jsonp",data:{q:r,num:i,output:s},beforeSend:function(){this.feed=r,this.key=n},success:function(e){t[u]=e,o.processResponse(e,this.key,this.feed)}})},processResponse:function(t,n,r){if(t.responseStatus!==200)window.console&&window.console.log&&console.log("Unable to load feed "+r+": ("+t.responseStatus+") "+t.responseDetails);else{var i=t.responseData.feed,s=i.entries,o=t.responseData.feed.type;if(this.settings.xml){var u=e(t.responseData.xmlString);o.match(/^rss.*/)?u=u.filter("rss").find("channel"):o.match(/^atom.*/)&&(u=u.filter("feed")),i.xml=u}for(var a in s){var f=e.extend({},s[a]);f.source=n,f.publishedDateRaw=f.publishedDate,f.feedUrl=i.feedUrl,f.feedTitle=i.title,f.feedLink=i.link,f.feedDescription=i.description,f.feedAuthor=i.author,this.settings.xml&&(o.match(/^rss.*/)?f.xml=i.xml.find("item").eq(a):o.match(/^atom.*/)?f.xml=i.xml.find("entry").eq(a):f.xml={}),this.settings.preprocess.call(f,i)!==!1&&this.entries.push(f)}}this.feedsLoaded++,this.checkComplete()},checkComplete:function(){if(this.feedsLoaded===this.feedsLength){this.$loader.remove(),this.entries.sort(function(e,t){var n=(new Date(e.publishedDateRaw)).getTime(),r=(new Date(t.publishedDateRaw)).getTime();return r-n});var e=typeof this.settings.entryTemplate=="function"?this.settings.entryTemplate:this.tmpl(this.settings.entryTemplate);for(var t in this.entries){var n=this.entries[t],r=e.call(this,n);this.$element.append(r)}this.settings.onComplete.call(this.$element[0],this.entries)}},tmplCache:{},tmpl:function(t,n){var r=/\W/.test(t)?new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+t.replace(/[\r\t\n]/g," ").split("<!").join(" ").replace(/((^|!>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)!>/g,"',typeof $1 != 'undefined' ? $1 : '','").split("   ").join("');").split("!>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');"):this.tmplCache[t]=this.tmplCache[t]||this.tmpl(document.getElementById(t).innerHTML);return n?r(n):r}};return e(this).each(function(){r.init(this,n)})}})(jQuery);
\ No newline at end of file
index a094a70d01bdf8d31a8627a733321d4616440583..311a57b10d035f9ac5f3f0962a25bfbd2efe6ef9 100644 (file)
@@ -37,7 +37,7 @@
                        target: '#output'
                });
        });
-       
+
        You can also use ajaxForm with delegation (requires jQuery v1.7+), so the
        form does not have to exist when you invoke ajaxForm:
 
@@ -45,7 +45,7 @@
                delegation: true,
                target: '#output'
        });
-       
+
        When using ajaxForm, the ajaxSubmit function will be invoked for you
        at the appropriate time.
 */
@@ -69,7 +69,7 @@ $.fn.ajaxSubmit = function(options) {
                log('ajaxSubmit: skipping submit process - no element selected');
                return this;
        }
-       
+
        var method, action, url, $form = this;
 
        if (typeof options == 'function') {
@@ -111,7 +111,7 @@ $.fn.ajaxSubmit = function(options) {
        if ( traditional === undefined ) {
                traditional = $.ajaxSettings.traditional;
        }
-       
+
     var elements = [];
     var qx, a = this.formToArray(options.semantic, elements);
        if (options.data) {
@@ -135,7 +135,7 @@ $.fn.ajaxSubmit = function(options) {
        var q = $.param(a, traditional);
        if (qx) {
                q = ( q ? (q + '&' + qx) : qx );
-       }       
+       }
        if (options.type.toUpperCase() == 'GET') {
                options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
                options.data = null;  // data is null for 'get'
@@ -165,7 +165,7 @@ $.fn.ajaxSubmit = function(options) {
        }
 
        options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
-        var context = options.context || this ;    // jQuery 1.4+ supports scope context 
+        var context = options.context || this ;    // jQuery 1.4+ supports scope context
                for (var i=0, max=callbacks.length; i < max; i++) {
                        callbacks[i].apply(context, [data, status, xhr || $form, $form]);
                }
@@ -175,7 +175,7 @@ $.fn.ajaxSubmit = function(options) {
 
     // [value] (issue #113), also see comment:
     // https://github.com/malsup/form/commit/588306aedba1de01388032d5f42a60159eea9228#commitcomment-2180219
-    var fileInputs = $('input[type=file]:enabled[value!=""]', this); 
+    var fileInputs = $('input[type=file]:enabled[value!=""]', this);
 
        var hasFileInputs = fileInputs.length > 0;
        var mp = 'multipart/form-data';
@@ -299,7 +299,7 @@ $.fn.ajaxSubmit = function(options) {
             deferred.reject();
             return deferred;
         }
-        
+
                if (a) {
                                // ensure that every serialized input is still enabled
             for (i=0; i < elements.length; i++) {
@@ -347,7 +347,7 @@ $.fn.ajaxSubmit = function(options) {
                 if (io.contentWindow.document.execCommand) {
                         io.contentWindow.document.execCommand('Stop');
                 }
-                } 
+                }
                 catch(ignore) {}
 
                                $io.attr('src', s.iframeSrc); // abort op in progress
@@ -395,7 +395,7 @@ $.fn.ajaxSubmit = function(options) {
                                }
                        }
                }
-               
+
                var CLIENT_TIMEOUT_ABORT = 1;
                var SERVER_ABORT = 2;
 
@@ -403,7 +403,7 @@ $.fn.ajaxSubmit = function(options) {
                        var doc = frame.contentWindow ? frame.contentWindow.document : frame.contentDocument ? frame.contentDocument : frame.document;
                        return doc;
                }
-               
+
                // Rails CSRF hack (thanks to Yvan Barthelemy)
                var csrf_token = $('meta[name=csrf-token]').attr('content');
                var csrf_param = $('meta[name=csrf-param]').attr('content');
@@ -438,7 +438,7 @@ $.fn.ajaxSubmit = function(options) {
                        if (s.timeout) {
                                timeoutHandle = setTimeout(function() { timedOut = true; cb(CLIENT_TIMEOUT_ABORT); }, s.timeout);
                        }
-                       
+
                        // look for server aborts
                        function checkState() {
                                try {
@@ -537,7 +537,7 @@ $.fn.ajaxSubmit = function(options) {
                        }
             if (io.detachEvent)
                 io.detachEvent('onload', cb);
-            else    
+            else
                 io.removeEventListener('load', cb, false);
 
                        var status = 'success', errMsg;
@@ -593,7 +593,7 @@ $.fn.ajaxSubmit = function(options) {
                                                var pre = doc.getElementsByTagName('pre')[0];
                                                var b = doc.getElementsByTagName('body')[0];
                                                if (pre) {
-                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;  
+                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;
                                                }
                                                else if (b) {
                           xhr.responseText = b.innerHTML ? b.innerHTML : b.textContent;
@@ -716,7 +716,7 @@ $.fn.ajaxSubmit = function(options) {
 $.fn.ajaxForm = function(options) {
        options = options || {};
        options.delegation = options.delegation && $.isFunction($.fn.on);
-       
+
        // in jQuery 1.3+ we can fix mistakes with the ready state
        if (!options.delegation && this.length === 0) {
                var o = { s: this.selector, c: this.context };
@@ -746,7 +746,7 @@ $.fn.ajaxForm = function(options) {
                .bind('click.form-plugin', options, captureSubmittingElement);
 };
 
-// private event handlers      
+// private event handlers
 function doAjaxSubmit(e) {
     /*jshint validthis:true */
        var options = e.data;
@@ -755,7 +755,7 @@ function doAjaxSubmit(e) {
                $(this).ajaxSubmit(options);
        }
 }
-       
+
 function captureSubmittingElement(e) {
     /*jshint validthis:true */
        var target = e.target;
@@ -835,14 +835,14 @@ $.fn.formToArray = function(semantic, elements) {
 
                v = $.fieldValue(el, true);
                if (v && v.constructor == Array) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
                        for(j=0, jmax=v.length; j < jmax; j++) {
                                a.push({name: n, value: v[j]});
                        }
                }
         else if (feature.fileapi && el.type == 'file' && !el.disabled) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             var files = el.files;
             if (files.length) {
@@ -856,7 +856,7 @@ $.fn.formToArray = function(semantic, elements) {
             }
         }
                else if (v !== null && typeof v != 'undefined') {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             a.push({name: n, value: v, type: el.type, required: el.required});
                }
@@ -1106,7 +1106,7 @@ $.fn.ajaxSubmit.debug = false;
 
 // helper fn for console logging
 function log() {
-       if (!$.fn.ajaxSubmit.debug) 
+       if (!$.fn.ajaxSubmit.debug)
                return;
        var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
        if (window.console && window.console.log) {
index 29082ca9647b864d3f0f254fa25a6a6bcc22b232..bcb4a27b7a532c4bcd6bb910a1010776fb97ce1a 100644 (file)
@@ -119,7 +119,7 @@ var m = (function app(window, undefined) {
                                        i-- //check current index again and flatten until there are no more nested arrays at that index
                                }
                        }
-                       
+
                        var nodes = [], intact = cached.length === data.length, subArrayCount = 0;
 
                        //keys algorithm: sort elements without recreating them if keys are present
@@ -138,7 +138,7 @@ var m = (function app(window, undefined) {
                        }
                        if (shouldMaintainIdentities) {
                                if (data.indexOf(null) > -1) data = data.filter(function(x) {return x != null})
-                               
+
                                var keysDiffer = false
                                if (data.length != cached.length) keysDiffer = true
                                else for (var i = 0, cachedCell, dataCell; cachedCell = cached[i], dataCell = data[i]; i++) {
@@ -147,7 +147,7 @@ var m = (function app(window, undefined) {
                                                break
                                        }
                                }
-                               
+
                                if (keysDiffer) {
                                        for (var i = 0, len = data.length; i < len; i++) {
                                                if (data[i] && data[i].attrs) {
@@ -216,7 +216,7 @@ var m = (function app(window, undefined) {
                        }
                        if (!intact) {
                                //diff the array itself
-                               
+
                                //update the list of DOM nodes by collecting the nodes from each item
                                for (var i = 0, len = data.length; i < len; i++) {
                                        if (cached[i] != null) nodes.push.apply(nodes, cached[i].nodes)
@@ -699,7 +699,7 @@ var m = (function app(window, undefined) {
                }
                return str.join("&")
        }
-       
+
        function parseQueryString(str) {
                var pairs = str.split("&"), params = {};
                for (var i = 0, len = pairs.length; i < len; i++) {
index d48daafdea6ce07d5d495a18172b7bb1bf8e7328..d3115512a757e489d0c0fe8cfad0f9f2dc099e4c 100644 (file)
@@ -2,7 +2,7 @@
     /**
      * Your Twitter App Info
      */
-    
+
     // Consumer Key
     define('CONSUMER_KEY', 'yxmC3rFOrr1xRGbCo3J6QNkKW');
     define('CONSUMER_SECRET', 'rqI9V5lPttEhNeOwBl14Jn6ryCU5MRBJQ5J6j8OEgaXwekeZM2');
@@ -10,7 +10,7 @@
     // User Access Token
     define('ACCESS_TOKEN', '2972347515-LCsxZafDTPd8hPCpWfewRVCEqgkHysKqB97x1bc');
     define('ACCESS_SECRET', 'Od3GSWu8iVW6x03YfTtDXVY48ewB315FkSrb3HQgi8Tx7');
-       
+
        // Cache Settings
        define('CACHE_ENABLED', false);
        define('CACHE_LIFETIME', 3600); // in seconds
index d02b7aebae3fd08d189f7127946fb47390815665..67800781e666ce3e22934dcc6a2852f61e77e785 100644 (file)
@@ -12,7 +12,7 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     // Check if keys are in place
     if (CONSUMER_KEY === '' || CONSUMER_SECRET === '' || CONSUMER_KEY === 'CONSUMER_KEY_HERE' || CONSUMER_SECRET === 'CONSUMER_SECRET_HERE') {
         echo 'You need a consumer key and secret keys. Get one from <a href="https://dev.twitter.com/apps">dev.twitter.com/apps</a>';
-      
+
         exit;
     }
 
@@ -22,13 +22,13 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     $exclude_replies = filter_input(INPUT_GET, 'exclude_replies', FILTER_SANITIZE_SPECIAL_CHARS);
     $list_slug = filter_input(INPUT_GET, 'list_slug', FILTER_SANITIZE_SPECIAL_CHARS);
     $hashtag = filter_input(INPUT_GET, 'hashtag', FILTER_SANITIZE_SPECIAL_CHARS);
-    
+
        if(CACHE_ENABLED) {
         // Generate cache key from query data
         $cache_key = md5(
             var_export(array($username, $number, $exclude_replies, $list_slug, $hashtag), true) . HASH_SALT
         );
-    
+
         // Remove old files from cache dir
         $cache_path  = dirname(__FILE__) . '/cache/';
         foreach (glob($cache_path . '*') as $file) {
@@ -36,16 +36,16 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
                 unlink($file);
             }
         }
-    
+
         // If cache file exists - return it
         if(file_exists($cache_path . $cache_key)) {
             header('Content-Type: application/json');
-    
+
             echo file_get_contents($cache_path . $cache_key);
             exit;
         }
     }
-       
+
     /**
      * Gets connection with user Twitter account
      * @param  String $cons_key     Consumer Key
@@ -57,13 +57,13 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     function getConnectionWithToken($cons_key, $cons_secret, $oauth_token, $oauth_secret)
     {
         $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_secret);
-      
+
         return $connection;
     }
-    
+
     // Connect
     $connection = getConnectionWithToken(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_SECRET);
-    
+
     // Get Tweets
     if (!empty($list_slug)) {
       $params = array(
index 4570013b80f59fc225aa9b4b695b873198143587..d31451ac61f694f058df6309b2107bcc10c8e6a0 100644 (file)
@@ -92,9 +92,9 @@ abstract class OAuthSignatureMethod {
 }
 
 /**
- * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104] 
- * where the Signature Base String is the text and the key is the concatenated values (each first 
- * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&' 
+ * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104]
+ * where the Signature Base String is the text and the key is the concatenated values (each first
+ * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&'
  * character (ASCII code 38) even if empty.
  *   - Chapter 9.2 ("HMAC-SHA1")
  */
@@ -120,7 +120,7 @@ class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod {
 }
 
 /**
- * The PLAINTEXT method does not provide any security protection and SHOULD only be used 
+ * The PLAINTEXT method does not provide any security protection and SHOULD only be used
  * over a secure channel such as HTTPS. It does not use the Signature Base String.
  *   - Chapter 9.4 ("PLAINTEXT")
  */
@@ -130,8 +130,8 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
   }
 
   /**
-   * oauth_signature is set to the concatenated encoded values of the Consumer Secret and 
-   * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is 
+   * oauth_signature is set to the concatenated encoded values of the Consumer Secret and
+   * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is
    * empty. The result MUST be encoded again.
    *   - Chapter 9.4.1 ("Generating Signatures")
    *
@@ -153,10 +153,10 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
 }
 
 /**
- * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in 
- * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for 
- * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a 
- * verified way to the Service Provider, in a manner which is beyond the scope of this 
+ * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in
+ * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for
+ * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a
+ * verified way to the Service Provider, in a manner which is beyond the scope of this
  * specification.
  *   - Chapter 9.3 ("RSA-SHA1")
  */
@@ -558,7 +558,7 @@ class OAuthServer {
   private function get_version(&$request) {
     $version = $request->get_parameter("oauth_version");
     if (!$version) {
-      // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present. 
+      // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present.
       // Chapter 7.0 ("Accessing Protected Ressources")
       $version = '1.0';
     }
@@ -658,7 +658,7 @@ class OAuthServer {
       throw new OAuthException(
         'Missing timestamp parameter. The parameter is required'
       );
-    
+
     // verify that timestamp is recentish
     $now = time();
     if (abs($now - $timestamp) > $this->timestamp_threshold) {
index 7ed5ef98a738a54ac1696b545e065ff0e580b727..68c99fe9767b6fc1609170791aa36ecd35641359 100644 (file)
@@ -29,7 +29,7 @@ class TwitterOAuth {
   /* Set timeout default. */
   public $timeout = 30;
   /* Set connect timeout. */
-  public $connecttimeout = 30; 
+  public $connecttimeout = 30;
   /* Verify SSL Cert. */
   public $ssl_verifypeer = FALSE;
   /* Respons format. */
@@ -81,7 +81,7 @@ class TwitterOAuth {
    */
   function getRequestToken($oauth_callback) {
     $parameters = array();
-    $parameters['oauth_callback'] = $oauth_callback; 
+    $parameters['oauth_callback'] = $oauth_callback;
     $request = $this->oAuthRequest($this->requestTokenURL(), 'GET', $parameters);
     $token = OAuthUtil::parse_parameters($request);
     $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
@@ -130,7 +130,7 @@ class TwitterOAuth {
    *                "user_id" => "9436992",
    *                "screen_name" => "abraham",
    *                "x_auth_expires" => "0")
-   */  
+   */
   function getXAuthToken($username, $password) {
     $parameters = array();
     $parameters['x_auth_username'] = $username;
@@ -152,7 +152,7 @@ class TwitterOAuth {
     }
     return $response;
   }
-  
+
   /**
    * POST wrapper for oAuthRequest.
    */
index c4dfaedd35dec2b29e56820f351952e033669b09..07d4b27e29d006ce233bdb619e5faaa3e633eaeb 100644 (file)
@@ -5,7 +5,7 @@
 <!--#include virtual="/2022/includes/banner.html"-->
 <!--#include virtual="/2022/includes/sidebar.html"-->
 
-##Please check for our confirmation email      
+##Please check for our confirmation email
 
 For your protection and to prevent spam, we don't process form
 submissions until you click the link in the confirmation email.
index d7790dceb39fd5bce1a62abb2fa0258eead6d51a..44db04b049ce1af7a10517b2bbb92c3f00b2cdaf 100644 (file)
@@ -5,10 +5,10 @@
 <!--#include virtual="/2022/includes/banner.html"-->
 <!--#include virtual="/2022/includes/sidebar.html"-->
 
-## Sorry, the feedback survey is now closed         
-    
+## Sorry, the feedback survey is now closed
+
 [Return to the home page](https://www.libreplanet.org/2022)
-    
+
 
 <!--#include virtual="/2022/includes/footer.html"-->
 <!--#include virtual="/2022/includes/common_js.html"-->
index 168bc4123cc01dcf893099d9e258de6e4dbd76e3..bb4b034f20e4631b6bf980630348edcb895cec11 100644 (file)
@@ -5,14 +5,14 @@
 <!--#include virtual="/2022/includes/banner.html"-->
 <!--#include virtual="/2022/includes/sidebar.html"-->
 
-## One more step! 
+## One more step!
 
 Thanks for filling out the survey. To process your answers, we
 need you to confirm your email address by clicking the link in
-the confirmation email we've just sent you.     
-    
+the confirmation email we've just sent you.
+
 **Please check your email now for the confirmation link.**
-    
+
 [Return to the homepage.](https://www.libreplanet.org/2022/)
 
 <!--#include virtual="/2022/includes/footer.html"-->
index 3e03d1d08aa7b753964e5397559f5c7bf4bdcfb5..3cd5be733535f275fab3b8d1a5d46584042ad6b4 100755 (executable)
@@ -24,7 +24,7 @@ Contents
    <p><a href="#dinner">Diversity dinner</a></p>
   <p><a href="#hack">Hack night</a></p>
   <p><a href="#BoF">Birds of a Feather social events</a></p>
-  <p><a href="#member-meeting">Annual FSF associate members meeting</a></p> 
+  <p><a href="#member-meeting">Annual FSF associate members meeting</a></p>
   <!-- <p><a href="#job-board">Job board</a></p> -->
 <!--<p><a href="#lightning-talks">Lightning Talks</a></p>-->
 <!--<p><a href="#trivia">LibrePlanet trivia</a></p>-->
@@ -64,7 +64,7 @@ State, and Park Street MBTA stops. The FSF office is an accessible
 <li><strong>Location:</strong> BCEC and beyond
 <li><strong>Sign up:</strong> Contact <a href="mailto:info@fsf.org">info@fsf.org</a></li>
 </ul>
-<hr> 
+<hr>
 <h2 id="dinner">Diversity dinner</h2>
 <h3>Hosted by Beth Lynn Eicher</h3>
 <p>This is a space for women, nonbinary people and all those who have been traditionally excluded from technological and social causes to feel at home and find ways for people of similar backgrounds to participate. Please RSVP by emailing <a href="campaigns@fsf.org">campaigns@fsf.org</a>, so we can tell the restaurant how many people we expect.</p>
@@ -103,11 +103,11 @@ be provided! Please be aware that this is an alcohol-free event. We have a small
 <!--<h2 id="lightning-talks">Lightning Talks</h2>
   <h3>SATURDAY 17:15 - 18:00 EDT (21:15 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">   <div class="field-content"><h4>Lightning talks</h4></div>  </div>
   <div class="views-field views-field-value-3"> <div class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn</div>  </div>
   <div class="views-field views-field-value-7"> <div class="field-content"></div>  </div>
@@ -115,12 +115,12 @@ be provided! Please be aware that this is an alcohol-free event. We have a small
 
 <div style="clear:both"></div></div>  </div>
   <div class="views-field views-field-regex-rewrite">        <div class="field-content"><div class="guestspeakers">
-   
+
 <p>Lightning talks are five-minute presentations given by conference attendees on free software topics they're passionate about.</p>
 
 <p><strong>Participate:</strong> Have your five-minute talk streamed at LibrePlanet 2022: Living Liberation!</p>
 <p><strong>Upload your <a href="https://libreplanet.org/wiki/Video_upload_instructions">lightning talk now.</a></strong></p>
-   
+
 </div></div>  </div>          </td>
               </tr>
       </tbody>
index cf94f85d018e4f0812bf9849ee919ffca9942ff2..6c32788c5547d265e7b549da3dccc93f3b3acf5b 100755 (executable)
 
 <p>LibrePlanet 2023 will be held at the <strong><a href="https://www.signatureboston.com/bcec/">Boston Convention and Exibition Center (BCEC)</a></strong> located at 415 Summer Street, Boston, MA, 02210. The closest MBTA stop is <a href="https://www.mbta.com/stops/place-wtcst">World Trade Center</a> which can be reached with silver line buses SL1, SL2, and SL3. Follow the "BCEC" signs to get from the stop to the venue. Another option is to take the red line to South Station. From there it is a 12-minute walk to the BCEC.</p>
 
-<h2 id="lodging">Where to stay</h2>  
+<h2 id="lodging">Where to stay</h2>
 
 <h3>Local hosts</h3>
 
-<p>Do you want to room with like-minded individuals? Do you want to host a LibrePlanet attendee or speaker? The <a href="https://libreplanet.org/wiki/LibrePlanet:Conference/2023/Accommodations">accommodations section on the LibrePlanet wiki</a> is your place to let others know.</p>   
+<p>Do you want to room with like-minded individuals? Do you want to host a LibrePlanet attendee or speaker? The <a href="https://libreplanet.org/wiki/LibrePlanet:Conference/2023/Accommodations">accommodations section on the LibrePlanet wiki</a> is your place to let others know.</p>
 
 <h3>Hostels</h3>
 <p>Prices range from $ (cheap) to $$ (medium).</p>
 
 <ul>
-  <li><a href="https://www.hiusa.org/hostels/massachusetts/boston/boston">HI Boston Hostel (Close to the FSF's office)</a> ($)</li> 
+  <li><a href="https://www.hiusa.org/hostels/massachusetts/boston/boston">HI Boston Hostel (Close to the FSF's office)</a> ($)</li>
   <li><a href="https://www.foundhotels.com/cities/boston/">Found Hotel</a> ($$)</li>
+
 <li>Other hostels a little farther out can be found at <a href="https://www.hostelworld.com/search?search_keywords=Boston,%20USA&country=USA&city=Boston&date_from=2023-03-14&date_to=2023-03-15&number_of_guests=1">HostelWorld</a></li>
 </ul>
 
-<h3>Hotels</h3> 
+<h3>Hotels</h3>
 <p>Prices range from $$ (medium) to $$$ (pricey).</p>
-The hotels closest to the BCEC are: 
+The hotels closest to the BCEC are:
 <ul>
-<li><a href="https://www.omnihotels.com/hotels/boston-seaport?utm_campaign=omni_ohr_bossea_all_x_br_prop_boston_en_exact_us&utm_content=58700005789226829&utm_medium=cpc&utm_source=bing&utm_term=43700066250477585&&msclkid=980416cba8c11b2b03d2752fa5c36b48&utm_source=bing&utm_medium=cpc&utm_campaign=omni_ohr_bossea_all_x_br_prop_boston_en_exact_us&utm_term=omni%20hotel%20seaport&utm_content=all_x_br_prop_boston_en_leisure_omni&gclid=980416cba8c11b2b03d2752fa5c36b48&gclsrc=3p.ds">Omni Hotel at the Seaport</a> ($$$)</li>  
+<li><a href="https://www.omnihotels.com/hotels/boston-seaport?utm_campaign=omni_ohr_bossea_all_x_br_prop_boston_en_exact_us&utm_content=58700005789226829&utm_medium=cpc&utm_source=bing&utm_term=43700066250477585&&msclkid=980416cba8c11b2b03d2752fa5c36b48&utm_source=bing&utm_medium=cpc&utm_campaign=omni_ohr_bossea_all_x_br_prop_boston_en_exact_us&utm_term=omni%20hotel%20seaport&utm_content=all_x_br_prop_boston_en_leisure_omni&gclid=980416cba8c11b2b03d2752fa5c36b48&gclsrc=3p.ds">Omni Hotel at the Seaport</a> ($$$)</li>
 <li><a href="https://www.marriott.com/en-us/hotels/bosow-the-westin-boston-seaport-district/overview/">The Westin Boston Seaport District</a> ($$$)</li>
-<li><a href="https://www.marriott.com/en-us/hotels/bosal-aloft-boston-seaport-district/overview/?scid=e98c0b2c-c563-49a7-bf94-25077ebbd65e&gclid=cfa63e6779471263545d5d83753d3fbc&gclsrc=3p.ds">Aloft Boston Seaport</a> ($$$)</li>  
+<li><a href="https://www.marriott.com/en-us/hotels/bosal-aloft-boston-seaport-district/overview/?scid=e98c0b2c-c563-49a7-bf94-25077ebbd65e&gclid=cfa63e6779471263545d5d83753d3fbc&gclsrc=3p.ds">Aloft Boston Seaport</a> ($$$)</li>
 <li><a href="https://www.marriott.com/en-us/hotels/bosel-element-boston-seaport-district/photos/">Element Boston Seaport</a> ($$$)</li>
 </ul>
-Slightly farther away are: 
+Slightly farther away are:
 <ul>
   <li><a href="https://www.loewshotels.com/Boston-Hotel">Loew's hotel</a> The gateway between Back Bay, South End and key city attractions - ($$)</li>
   <li><a href="https://www.marriott.com/hotels/travel/bosbo-sheraton-boston-hotel/">The Sheraton</a> - Contemporary hotel (Marriott chain), located centrally ($$)</li>
   <li><a href="https://bostonparkplaza.reztrip.com/classic/en/special_offer?action=show&controller=landings&locale=en&rate_code%5B%5D=SHOSP&rate_code%5B%5D=SHOSP&starting_page=special_offer&vr=3">Boston Park Plaza</a> price varies ($$$)</li>
 </ul>
-<p>&nbsp; 
+<p>&nbsp;
     <h2>Transportation</h2>
 
     <p>The easiest way to get around Boston/Cambridge is to use the <a href="http://www.mbta.com">MBTA</a>. Passes can be purchased with cash or credit/debit cards in stations. </p>
@@ -73,7 +73,7 @@ Slightly farther away are:
   <li>Cabs are located all over the city, and at the airport and major subway stations.</li>
 <li>The <a href="http://www.mbta.com/schedules_and_maps/subway/lines/?route=BLUE">Blue Line</a> is a train, with a shuttle bus from Logan Airport to the Airport MBTA stop; the <a href="http://www.mbta.com/schedules_and_maps/subway/lines/?route=SILVER">Silver Line</a> is an expedited bus. The MBTA website provides a very <a href="http://www.mbta.com/riding_the_t/logan/">helpful page</a> on how to navigate via the Silver Line and Blue Line from the airport.</li>
   </ul>
-<p>&nbsp; 
+<p>&nbsp;
 <h3 id="getting-around"> Getting Around </h3>
 <!--     <h4 id="getting-around">Getting to LibrePlanet at the Back Bay Events Center</h4> -->
 
@@ -118,8 +118,8 @@ Slightly farther away are:
 <!--         <li><a href= " https://www.100clarendon.com/rates.html">100 Clarendon St </a> - Up to 1 Hour $12.00, 1-2 Hours $22.00, 2 Hours to 24 Hours $40.00 </li></ul> -->
 <!-- The Back Bay Events Center is offering a discounted parking rate for the garage @ 100 Clarendon. Bring your parking ticket with you and hav a BBEC representative stamp your ticket to receive the discount.  -->
 
-      <h4>Parking at the BCEC</h4> 
-      Parking at the venue costs $25. 
+      <h4>Parking at the BCEC</h4>
+      Parking at the venue costs $25.
 
 
       <h4>Downtown/Near FSF office</h4>
@@ -132,11 +132,11 @@ Slightly farther away are:
       </ul>
 
       <h1 id="eating">Where to Eat</h1>
-      
+
            <h2>Seaport</h2>
-      
+
       <p>Check out the <a href="http://s3.amazonaws.com/signatureboston/documents/2021-BCEC_dining_ent_map_11X17_Q4.pdf ">BCEC's restaurant map</a>, which includes restaurants, around the Boston Convention and Exhibition Center and surrounding Seaport District neighborhood.</p>
-      
+
        <h2>Chinatown</h2>
 
       <ul>
@@ -169,7 +169,7 @@ Slightly farther away are:
           <li><a href="https://www.lifealive.com/"> Life Alive:</a> Vegan food - ($$)</li>
       </ol>
 
-     
+
 
       <!--#include virtual="/2023/includes/footer.html"-->
       <!--#include virtual="/2023/includes/common_js.html"-->
index e6b2f4a0ab575adb04cfa748a9a5ddab5466ac23..7a02ace0e4f63e88b506057b2d8d47d7bebfd633 100644 (file)
@@ -1,9 +1,9 @@
-      <!--pagestart-->    
-  
+      <!--pagestart-->
+
       <div class="view-content">
         <h3>Keynote Speakers</h3>
   <div class="views-row views-row-1 views-row-odd views-row-first">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6315">
 
 <div class="talkblock" style="clear:both">
@@ -12,7 +12,7 @@
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6315">Sunday 17:20 - 18:05 EDT (21:20 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span>
 </div>
@@ -27,11 +27,11 @@ Free software and the Right to Repair movement share a heart: When you buy somet
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/liz-keynote.jpg">
 <h2>Elizabeth  Chamberlain</h2></div>
 <div class="webform-html-textarea"><p>Dr. Elizabeth Chamberlain is Director of Sustainability at iFixit, which is the free repair manual for everything, with over 90,000 guides for fixing everything from tractors to toasters. Liz advocates for the Right to Repair around the world, supporting lawmakers, conducting repair research, and working to make sure environmental standards reflect repair best practices. Her writing on repair has been published in the Wall Street Journal, Wired, and The Atlantic.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-2 views-row-even views-row-last">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6272">
 
 <div class="talkblock" style="clear:both">
@@ -40,7 +40,7 @@ Free software and the Right to Repair movement share a heart: When you buy somet
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6272">Saturday 11:55 - 12:40 EDT  (15:55 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span>
 </div>
@@ -53,12 +53,12 @@ In this talk, I will discuss the inadvertent role higher education plays in teac
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/erin-glass-dog.JPG">
 <h2>Erin Rose  Glass</h2></div>
 <div class="webform-html-textarea"><p>Erin Rose Glass is a researcher and educator who has worked across universities, community colleges, academic libraries, and industry to promote technical literacy focused on ethics, user governance, and community values. She has co-founded a variety of community-driven ed tech initiatives that center ethics and user freedom, including Social Paper, a platform for socializing student writing funded by the National Endowment for the Humanities, and KNIT, a digital commons shared between UC San Diego and the San Diego Community College District. Her research publications focus on the intellectual and political stakes of digital infrastructure related to education and research, including her dissertation, Software of the Oppressed: Reprogramming the Invisible Discipline, which examines the history of ed tech in higher education through Paulo Freire’s philosophy of critical pedagogy. More recently, she led the Developer Education team at DigitalOcean before joining Chainguard, a start up focused on software supply chain security. She lives in California with her family and pack of fluffy creatures, big and small.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <h3>Speakers</h3>
   <div class="views-row views-row-1 views-row-odd views-row-first">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6206">
 
 <div class="talkblock" style="clear:both">
@@ -67,7 +67,7 @@ In this talk, I will discuss the inadvertent role higher education plays in teac
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6206">Sunday 14:30 - 15:15 EDT (18:30 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -79,11 +79,11 @@ In this talk, I will discuss the inadvertent role higher education plays in teac
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/icon.png">
 <h2>Tomat0</h2></div>
 <div class="webform-html-textarea"><p>For the past four years, I’ve been involved in various initiatives to help grow the Fediverse, including the Copyleft Curator newsletter and The Open Web Project. During that time, I’ve gotten deeply involved in the community: experimenting with strategies, identifying the biggest problems facing ecosystem, getting a feel for the culture, and looking at what potential the federated and free-software model provides for actually affecting change. I’m very deeply interested in the intersection between technological design and human behavior, and how to best solve problems creatively and autonomously, in a way which empowers human beings as opposed to binding them.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-4 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6143">
 
 <div class="talkblock" style="clear:both">
@@ -92,7 +92,7 @@ In this talk, I will discuss the inadvertent role higher education plays in teac
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6143">Sunday 14:30 - 15:15 EDT (18:30 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn -- online 
+<i class="glyphicon glyphicon-home"></i>: Saturn -- online
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -104,11 +104,11 @@ In this talk, I will discuss the inadvertent role higher education plays in teac
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/logo.png">
 <h2>Nancy  Anthracite</h2></div>
 <div class="webform-html-textarea"><p>Nancy Anthracite, MD is an internal medicine physician working in an occupational health clinic as her occupation and president of WorldVistA as her volunteer avocation.  She became aware of VistA and devoted to keeping VistA free software since 1999 and is surrounded by like-minded volunteers with the same goal. She became CMO of WorldVistA in 2007 and president in 2009.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-5 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6138">
 
 <div class="talkblock" style="clear:both">
@@ -117,7 +117,7 @@ In this talk, I will discuss the inadvertent role higher education plays in teac
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6138">Saturday 16:20 - 17:05 EDT (20:20 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune -- online 
+<i class="glyphicon glyphicon-home"></i>: Neptune -- online
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -130,11 +130,11 @@ In this talk, I will discuss the inadvertent role higher education plays in teac
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/bandali.jpg">
 <h2>Amin  Bandali</h2></div>
 <div class="webform-html-textarea"><p><a href="https://kelar.org/~bandali/">bandali</a> is a computing scientist and free/libre software activist who <a href="https://www.gnu.org/people/people.html#bandali">wears a few hats</a> around the GNU project as a GNU maintainer, a Savannah hacker/admin, and an assistant GNUisance among others, and also volunteers with the Free Software Foundation.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-7 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6230">
 
 <div class="talkblock" style="clear:both">
@@ -143,7 +143,7 @@ In this talk, I will discuss the inadvertent role higher education plays in teac
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6230">Saturday 13:35 - 14:20 EDT (17:35 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Saturn -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -156,11 +156,11 @@ In this talk, I will discuss the inadvertent role higher education plays in teac
 <h2>Mikalai  Birukou</h2></div>
 <div class="webform-html-textarea"><p>Mikalai Birukou is an expert in decentralized, privacy-by-design technologies and is building the 3NWeb protocols to create a better and safer digital world. Mikalai's is passionate about creating digital spaces where every person is in control of their own life.</p><br />
 <p>Sean O’Brien is a lecturer in Cybersecurity at Yale Law School, where he founded the Privacy Lab initiative. Sean is a longtime supporter of free software and has worked on various projects, founding the PrivacySafe project to build local-first software and privacy-by-design networks using the 3NWeb protocols. He is Open Source Lead at Tari Labs &amp; Yat Labs, was the founding Head Tutor at Oxford University Cyber Security for Business Leaders, and is Security Advisor for Panquake.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-8 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6215">
 
 <div class="talkblock" style="clear:both">
@@ -169,7 +169,7 @@ In this talk, I will discuss the inadvertent role higher education plays in teac
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6215">Saturday 10:00 - 10:45 EDT (14:00 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -182,11 +182,11 @@ In this talk, I will discuss the inadvertent role higher education plays in teac
 <h2>V. Alex  Brennen</h2></div>
 <div class="webform-html-textarea"><p>Alex is a free software developer that has been writing GPL licensed software for more than 25 years. Most of his development work was in academic environments. However, he also developed cryptography software as part of the Cypherpunks movement in the 1990's and has extensive experience in computer security. Alex has been a systems administrator at MIT for over 15 years working with MIT Libraries and groups including CSAIL and W3C. Alex also helped start ProtonMail, serving as one of its first ten employees and its first infrastructure administrator and security officer. He developed an interest in libre hardware while working on autonomous robotic drone hardware at CSAIL.</p><br />
 <p>Kurt Keville is an MIT research scientist, systems administrator, and cluster manager at the MIT Office of Research Computing and Data (ORCD). Kurt has a master's degree in electrical engineering from MIT. He previously worked on low power and performance per watt dense super computing clusters. He supports a number of packages on Supercloud. He also maintains the MIT Debian RISC-V build farm. He is a frequent speaker at the Boston Linux User's group on the topics of libre software, emerging hardware, and GPU based super computing and CUDA programming.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-9 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6197">
 
 <div class="talkblock" style="clear:both">
@@ -195,7 +195,7 @@ In this talk, I will discuss the inadvertent role higher education plays in teac
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6197">Sunday 10:55 - 11:40 EDT (14:55 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune -- online 
+<i class="glyphicon glyphicon-home"></i>: Neptune -- online
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -208,11 +208,11 @@ But there is also software running before the operating system is even started (
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/logo.png">
 <h2>Denis  Carikli</h2></div>
 <div class="webform-html-textarea"><p>GNUtoo has been contributing to various free software projects that either support computers that boot with only free software (like Coreboot, Guix, Libreboot, Linux, Linux-libre, Parabola, Trisquel, u-boot) or that try to (but didn't succeed yet) to support such computers (Replicant). GNUtoo also wrote extensive documentation on the topic in the Libreplanet Wiki or in an article about the Management Engine.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-10 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6203">
 
 <div class="talkblock" style="clear:both">
@@ -221,7 +221,7 @@ But there is also software running before the operating system is even started (
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6203">Sunday 15:25 - 16:10 EDT (19:25 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn -- online 
+<i class="glyphicon glyphicon-home"></i>: Saturn -- online
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -234,11 +234,11 @@ But there is also software running before the operating system is even started (
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/Adrian.jpg">
 <h2>Adrian  Cochrane</h2></div>
 <div class="webform-html-textarea"><p>Adrian is passionate about helping people be empowered by computers through custom software development work.  It’s not enough for Adrian to create something that works - he must know why it works! Adrian graduated from Victoria University of Wellington in 2017 with a degree in Computer Science.  His education in computing began long before that, having learned his first programming language at age 10. For his hobbies Adrian enjoys illustrating how software can be better through his personal projects, reviewing audioshows, and is always keen for a game of Catan.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-11 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6099">
 
 <div class="talkblock" style="clear:both">
@@ -247,7 +247,7 @@ But there is also software running before the operating system is even started (
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6099">Saturday 15:25 - 16:10 EDT (19:25 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -259,11 +259,11 @@ But there is also software running before the operating system is even started (
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/sick.codes_.3000px.png">
 <h2>Sick  Codes</h2></div>
 <div class="webform-html-textarea"><p>Sick Codes is an Australian hacker, who resides somewhere in Asia. Sick Codes has previously published research on John Deere tractors, TCL Smart TVs, ice cream machines and most major social media/software websites that we use every day. He loves motorcycles, going fast, discovering vulnerabilities and capitalizing on 0days. His other interests include maintaining software projects, free software, reverse engineering, and standing up for other researchers.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-12 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6119">
 
 <div class="talkblock" style="clear:both">
@@ -272,7 +272,7 @@ But there is also software running before the operating system is even started (
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6119">Sunday 15:25 - 16:10 EDT (19:25 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune -- online 
+<i class="glyphicon glyphicon-home"></i>: Neptune -- online
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -284,11 +284,11 @@ But there is also software running before the operating system is even started (
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/Agaric.jpg">
 <h2>Agaric Technology   Collective</h2></div>
 <div class="webform-html-textarea"><p>When building platforms on free software we strive to use the Drutopia.org model of the more clients we have paying, the lower the cost or the modifications become free to other Drutopia members.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-13 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6226">
 
 <div class="talkblock" style="clear:both">
@@ -298,7 +298,7 @@ might be the best solution</p>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6226">Sunday 10:55 - 11:40 EDT (14:55 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack8">Security</span>
 </div>
@@ -309,11 +309,11 @@ might be the best solution</p>
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/logo.png">
 <h2>Dr. William   Cooper Davidon</h2></div>
-<div class="webform-html-textarea"></div> 
-</div></span>  </div>  
+<div class="webform-html-textarea"></div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-14 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6167">
 
 <div class="talkblock" style="clear:both">
@@ -322,7 +322,7 @@ might be the best solution</p>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6167">Saturday 14:30 - 15:15 EDT (18:30 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune -- online 
+<i class="glyphicon glyphicon-home"></i>: Neptune -- online
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -334,11 +334,11 @@ might be the best solution</p>
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/eu_150x150.jpg">
 <h2>Silvio Tamaso  D&#039;Onofrio</h2></div>
 <div class="webform-html-textarea"><p>Silvio Tamaso D’Onofrio holds a D.Sc in Social History from the University of São Paulo, Brazil. He was an Associate Professor in a higher education institution and currently heads REGIONEM, a research group dedicated to the study of material, intellectual and spiritual elements linked to the notions of space, area and region, based in São Paulo. Focusing also on digital humanities, dr. D’Onofrio’s peer-reviewed articles that appeared in journals worldwide. He has also published book chapters in recognized publications and he serves as a reviewer and member of editorial boards for international academic and scientific publications.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-15 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6176">
 
 <div class="talkblock" style="clear:both">
@@ -347,7 +347,7 @@ might be the best solution</p>
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6176">Saturday 10:00 - 10:45 EDT (14:00 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Saturn -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span>
 </div>
@@ -360,11 +360,11 @@ might be the best solution</p>
 <h2>Julian  Daich</h2></div>
 <div class="webform-html-textarea"><p>Julian Daich has a background in biophysics with experience developing biomedical technology in academic and industrial environments. He has been working during the last years at LINDS, a 501(c)(3) non profit, in the developing of biomedical technology to be released under free licenses.<br /><br />
 Between other projects, he participated in the founding of Cyclicka in Spain, Fee Computer Labs in the Boston area and TRASHWARE-TLV in Israel oriented to train people in the free use of software and hardware.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-16 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6151">
 
 <div class="talkblock" style="clear:both">
@@ -373,7 +373,7 @@ Between other projects, he participated in the founding of Cyclicka in Spain, Fe
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6151">Sunday 13:35 - 14:20 EDT (17:35 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn -- online 
+<i class="glyphicon glyphicon-home"></i>: Saturn -- online
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span>
 </div>
@@ -387,11 +387,11 @@ Between other projects, he participated in the founding of Cyclicka in Spain, Fe
 <h2>Harm  de Vries</h2></div>
 <div class="webform-html-textarea"><p>Harm de Vries is a staff research scientist at ServiceNow. </p><br />
 <p>Leandro von Werra is a machine learning engineer at HuggingFace.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-23 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6114">
 
 <div class="talkblock" style="clear:both">
@@ -400,7 +400,7 @@ Between other projects, he participated in the founding of Cyclicka in Spain, Fe
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6114">Saturday 13:35 - 14:20 EDT (17:35 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune -- online 
+<i class="glyphicon glyphicon-home"></i>: Neptune -- online
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -412,11 +412,11 @@ Between other projects, he participated in the founding of Cyclicka in Spain, Fe
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/portrait-Angie-2021.jpg">
 <h2>Angie  Gaudion</h2></div>
 <div class="webform-html-textarea"><p>In charge of public relationship at Framasoft Association for four years, Angie is also coordinator of the Collectif des Hébergeurs Alternatifs Transparents Ouverts Neutres et Solidaires (CHATONS). Previously digital mediator and librarian, she has been active for several years in many associations for the promotion of free culture and knowledge commons.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-24 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6228">
 
 <div class="talkblock" style="clear:both">
@@ -425,7 +425,7 @@ Between other projects, he participated in the founding of Cyclicka in Spain, Fe
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6228">Sunday 13:35 - 14:20 EDT (17:35 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack8">Security</span>
 </div>
@@ -437,11 +437,11 @@ Between other projects, he participated in the founding of Cyclicka in Spain, Fe
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/Ahmed.jpeg">
 <h2>Ahmed  Ghappour</h2></div>
 <div class="webform-html-textarea"><p>Ahmed Ghappour is General Counsel at Nym Technologies and Professor at Boston University, where he teaches Cybersecurity Law, Privacy Law, and Criminal Law. Before his current roles, Ghappour built law clinics at UT Austin and UC Hastings to litigate national security and hacking cases. He litigated the first criminal trial to challenge bulk metadata collection by the NSA, sued the CIA on behalf of the Freedom of the Press Foundation, and represented digital causes célèbres such as Chelsea Manning, Ross Ulbricht, and Barrett Brown. Before that, Ghappour represented Guantanamo prisoners at Reprieve UK, and litigated patent cases with a top law firm. In a prior life, Ghappour was a software engineer at Silicon Graphics, Inc. and Sun Microsystems. He’s an alum of NYU Law and Rutgers Engineering.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-25 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6128">
 
 <div class="talkblock" style="clear:both">
@@ -450,7 +450,7 @@ Between other projects, he participated in the founding of Cyclicka in Spain, Fe
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6128">Saturday 13:35 - 14:20 EDT (17:35 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -463,11 +463,11 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/3f7dc2ae-4994-43d8-b3e2-63706b03d7c8-bWFpbi1uLW4tMC0wLTAtODAwLTEyMDA.jpg">
 <h2>James  Gregora</h2></div>
 <div class="webform-html-textarea"><p>James Gregora is a 3rd year law student at Rutgers with an interest in intellectual property and criminal justice issues.  He has a B.A. in Philosophy from Swarthmore College, and an M.A. in Philosophy from Brandeis University.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-26 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6162">
 
 <div class="talkblock" style="clear:both">
@@ -476,7 +476,7 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6162">Sunday 11:55 - 12:40 EDT  (15:55 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune -- online 
+<i class="glyphicon glyphicon-home"></i>: Neptune -- online
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -488,11 +488,11 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/weiming.png">
 <h2>Weiming  Hu</h2></div>
 <div class="webform-html-textarea"><p>My name is Weiming Hu. I am currently a machine learning researcher at Scripps Institution of Oceanography, University of California, San Diego. I have always been a fervent supporter of the free software movement. I encourage my students to use and learn free software and free tools and I try my best to also incorporate concepts and applications of free software in my teaching. I was the recipient of the scholarship for the LibrePlanet 2020 conference but I was not able to attend the conference due to COVID-19. I look forward to this year's in-person conference.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-27 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6218">
 
 <div class="talkblock" style="clear:both">
@@ -501,7 +501,7 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6218">Sunday 10:00 - 10:45 EDT (14:00 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Saturn -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span>
 </div>
@@ -515,11 +515,11 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/IMG_20210209_173811.jpg">
 <h2>Clinton  Ignatov</h2></div>
 <div class="webform-html-textarea"><p>I've been using GNU/Linux as my daily-driver for twenty years. In that time I've lived through and written about the madness of the post-dotcom bubble burst, the rise of so-called smartphones, the recentralization of the net via social media, and the collision of old and new media today. I've spent five years deeply studying Canadian media theorist Marshall McLuhan, and have become recognized for my scholarship and participation in the field of Media Ecology.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-28 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6208">
 
 <div class="talkblock" style="clear:both">
@@ -528,7 +528,7 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6208">Sunday 16:20 - 17:05 EDT (20:20 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn -- online 
+<i class="glyphicon glyphicon-home"></i>: Saturn -- online
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -542,11 +542,11 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/logo.png">
 <h2>Ian  Kelling</h2></div>
 <div class="webform-html-textarea"><p>Ian was an FSF volunteer before joining the FSF in May 2017 as a senior systems administrator. He's also a free software developer and has contributed to various projects including GNU Emacs.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-29 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6165">
 
 <div class="talkblock" style="clear:both">
@@ -555,7 +555,7 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6165">Saturday 14:30 - 15:15 EDT (18:30 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -566,11 +566,11 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/logo.png">
 <h2>Do Yoon  Kim</h2></div>
-<div class="webform-html-textarea"></div> 
-</div></span>  </div>  
+<div class="webform-html-textarea"></div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-30 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6055">
 
 <div class="talkblock" style="clear:both">
@@ -579,7 +579,7 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6055">Saturday 10:55 - 11:40 EDT (14:55 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Saturn -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span>
 </div>
@@ -593,11 +593,11 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/MatthiasKirschner-s0t0s0-600x600.jpg">
 <h2>Matthias  Kirschner</h2></div>
 <div class="webform-html-textarea"><p>Matthias Kirschner is president of FSFE. Matthias helps other organizations, companies, and public administrations to understand how they can benefit from free software -- which gives everybody the rights to use, study, share, and improve software -- and how those rights help to support freedom of speech, press, and privacy. He serves on the advisory boards of different free software organizations, has been a consultant for public bodies and other committees, and regularly gives interviews, lectures, or participates in panel discussions about software freedom and the technical distribution of power in a democratic society.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-31 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6282">
 
 <div class="talkblock" style="clear:both">
@@ -606,7 +606,7 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6282">Saturday 17:20 - 18:05 EDT (21:20 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span>
 </div>
@@ -616,11 +616,11 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/logo.png">
 <h2>Geoffrey  Knauth</h2></div>
-<div class="webform-html-textarea"></div> 
-</div></span>  </div>  
+<div class="webform-html-textarea"></div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-32 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6156">
 
 <div class="talkblock" style="clear:both">
@@ -629,7 +629,7 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6156">Sunday 14:30 - 15:15 EDT (18:30 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune -- online 
+<i class="glyphicon glyphicon-home"></i>: Neptune -- online
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -641,11 +641,11 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/cracha.jpg">
 <h2>Flávio  Lisboa</h2></div>
 <div class="webform-html-textarea"><p>Master in Studies of Science, Technology and Society (UTFPR). System development analyst in SERPRO, a state-owned IT enterprise. Professor of disciplines on software development. Author of "PHP Web Development with Laminas". Frequent speaker at the PHP Conference Brazil.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-33 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6150">
 
 <div class="talkblock" style="clear:both">
@@ -654,7 +654,7 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6150">Sunday 13:35 - 14:20 EDT (17:35 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune -- online 
+<i class="glyphicon glyphicon-home"></i>: Neptune -- online
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -666,11 +666,11 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/tristan-rayner.jpg">
 <h2>Rayner  Lucas</h2></div>
 <div class="webform-html-textarea"><p>Rayner Lucas is a freelance software developer based in London, UK. Tristan Miller is a computational linguist at the Austrian Research Institute for Artificial Intelligence (OFAI). Both are members of the Usenet Big-8 Management Board, an advisory committee that assists with the creation and administration of discussion groups in Usenet's "Big 8" international group hierarchies.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-34 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6154">
 
 <div class="talkblock" style="clear:both">
@@ -679,7 +679,7 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6154">Sunday 10:55 - 11:40 EDT (14:55 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Saturn -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -691,11 +691,11 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/yo.jpg">
 <h2>Sebastian  Marchano</h2></div>
 <div class="webform-html-textarea"><p>I'm core developer of GNU Taler, working mainly on the Wallet. Living in Argentina, father of two, like to play chess and drink mate.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-35 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6141">
 
 <div class="talkblock" style="clear:both">
@@ -704,7 +704,7 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6141">Sunday 10:00 - 10:45 EDT (14:00 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -716,11 +716,11 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/anaximender.jpg">
 <h2>Anaximander  Miletus</h2></div>
 <div class="webform-html-textarea"><p>Anaximander c. 610 – c. 546 BC) was a pre-Socratic Greek philosopher who lived in Miletus, a city of Ionia (in modern-day Turkey). He belonged to the Milesian school and learned the teachings of his master Thales. He succeeded Thales and became the second master of that school where he counted Anaximenes and, arguably, Pythagoras amongst his pupils. He created a map of the world that contributed greatly to the advancement of geography. He was also involved in the politics of Miletus and was sent as a leader to one of its colonies.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-36 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6225">
 
 <div class="talkblock" style="clear:both">
@@ -729,7 +729,7 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6225">Saturday 10:55 - 11:40 EDT (14:55 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune -- online 
+<i class="glyphicon glyphicon-home"></i>: Neptune -- online
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -741,11 +741,11 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/logo.png">
 <h2>Benson  Muite</h2></div>
 <div class="webform-html-textarea"><p>Benson Muite is a software developer based in Nairobi, Kenya. He is interested in free software and high-performance computing.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-37 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6124">
 
 <div class="talkblock" style="clear:both">
@@ -754,7 +754,7 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6124">Saturday 10:00 - 10:45 EDT (14:00 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune -- online 
+<i class="glyphicon glyphicon-home"></i>: Neptune -- online
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -765,11 +765,11 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="speakerblock">
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/logo.png">
 <h2>Eric  Myhre</h2></div>
-<div class="webform-html-textarea"></div> 
-</div></span>  </div>  
+<div class="webform-html-textarea"></div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-38 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6160">
 
 <div class="talkblock" style="clear:both">
@@ -778,7 +778,7 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6160">Sunday 11:55 - 12:40 EDT  (15:55 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -792,11 +792,11 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/20221026_223348.jpg">
 <h2>Lori  Nagel</h2></div>
 <div class="webform-html-textarea"><p>Lori Angela Nagel has been a long-time free software supporter and activist, and has been involved with the FSF as an associate member since 2005.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-39 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6169">
 
 <div class="talkblock" style="clear:both">
@@ -805,7 +805,7 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6169">Saturday 10:55 - 11:40 EDT (14:55 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span>
 </div>
@@ -817,11 +817,11 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/IMG_0701_c_sm.jpg">
 <h2>Nikolas  Nyby</h2></div>
 <div class="webform-html-textarea"><p>I am currently a software developer at Columbia University's Center for Teaching and Learning. I've been enamored by the free software world from an early age. I believe that the only path forward for technology exists outside of proprietary interests. I love learning how things work, and I'm a lifelong Emacs stan.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-40 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6195">
 
 <div class="talkblock" style="clear:both">
@@ -830,7 +830,7 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6195">Sunday 10:00 - 10:45 EDT (14:00 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune -- online 
+<i class="glyphicon glyphicon-home"></i>: Neptune -- online
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack8">Security</span>
 </div>
@@ -842,11 +842,11 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/foto.jpg">
 <h2>Libor  Polčák</h2></div>
 <div class="webform-html-textarea"><p>Libor Polcák is an assistant professor and researcher on the Faculty of Information Technology at the Brno University of Technology with a focus on security and data protection in networking and on the Web. His area of interests include device identification, network identities, privacy, and data protection. He finished his Ph.D. studies on the Faculty of Information Technology, Brno University of Technology in 2017. In 2018, he received the Czech Minister of the Interior award for outstanding results in the area of security research. Since 2022, he is a member in the Pool of Experts of the European Data Protection Board. He works on the JShelter Webextension.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-41 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6178">
 
 <div class="talkblock" style="clear:both">
@@ -855,7 +855,7 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6178">Saturday 15:25 - 16:10 EDT (19:25 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune -- online 
+<i class="glyphicon glyphicon-home"></i>: Neptune -- online
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span>
 </div>
@@ -867,11 +867,11 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/logo.png">
 <h2>Yoni  Rabkin</h2></div>
 <div class="webform-html-textarea"><p>Yoni Rabkin is a parent, programmer and paralegal who studied computer science in Israel, worked in the medical devices industry, and now writes custom software for a living. He believes that everyone should contribute something positive to society, commensurate with their personal strengths. Yoni will be speaking as a volunteer of the Licensing and Compliance Lab.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-42 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6133">
 
 <div class="talkblock" style="clear:both">
@@ -880,7 +880,7 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6133">Sunday 16:20 - 17:05 EDT (20:20 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span>
 </div>
@@ -893,11 +893,11 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <h2>Paul  Roberts</h2></div>
 <div class="webform-html-textarea"><p>Paul Roberts is the founder of Secure Repairs (securepairs.org), an independent group of information security and information technology professionals who support the right to repair. Paul is a seasoned reporter, editor and industry analyst with more than 15 years experience covering the information technology security space. His writing about cybersecurity has appeared in publications including The Christian Science Monitor, MIT Technology Review, The Economist Intelligence Unit, CIO Magazine, ZDNet and Fortune Small Business. He has appeared on NPR’s Marketplace Tech Report, KPCC AirTalk, Fox News Tech Take, Al Jazeera and The Oprah Show.</p><br />
 <p>Kevin Kenney is a Right to Repair advocate. He wrote the first Right to Repair bill for agriculture in the Nebraska legislature, in 2015, titled, "Fair Repair Act." His Right to Repair work is published in Bloomberg, Vice.com, and Reader's Digest. Today, he is working to help farmers get repair help for their tractors. He is experienced in all aspects of farm operations and is familiar with all popular tractors, sprayers, and combine makes. He is a respected innovator in equipment design, with the skills necessary to design, reverse-engineer, and modify multiple agricultural equipment systems. He spends most of his free time with carpentry, mechanical, and free software projects, as well as with hunting and many other outdoor activities.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-43 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6161">
 
 <div class="talkblock" style="clear:both">
@@ -906,7 +906,7 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6161">Sunday 15:25 - 16:10 EDT (19:25 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -918,11 +918,11 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/1673536787945.jpeg">
 <h2>Rubén  Rodríguez Pérez</h2></div>
 <div class="webform-html-textarea"><p>Spaniard, software engineer, photographer, GNU hacker, guitar player, ape descendant. Rubén started his career developing free software for research centers and universities, then founded the Trisquel GNU/Linux distribution project and other nonprofits. He has contributed to the freedom and privacy oriented Web tools GNU IceCat, GNU LibreJS and JShelter, and has worked in the One Laptop Per Child program and as a senior systems administrator and CTO of the Free Software Foundation. He likes dogs and paragliding, and dislikes writing about himself.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-44 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6134">
 
 <div class="talkblock" style="clear:both">
@@ -931,7 +931,7 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6134">Saturday 16:20 - 17:05 EDT (20:20 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -943,11 +943,11 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/Srish.jpeg">
 <h2>Srishti  Sethi</h2></div>
 <div class="webform-html-textarea"><p>Srishti is a Senior Developer Advocate at the Wikimedia Foundation, a non-profit behind Wikipedia and its sister projects. In her role, she supports the technical volunteer community through several projects. In the past decade, she has been a part of several free and open-source projects and communities in the education space in various roles (software engineer, researcher, educator, and community manager). She also recently co-founded Unstructured Studio, an educational non-profit engaging children from underserved communities in India in creative learning experiences. Srishti holds a Master's in Media Arts and Sciences from the Massachusetts Institute of Technology.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-45 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6210">
 
 <div class="talkblock" style="clear:both">
@@ -956,7 +956,7 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6210">Sunday 11:55 - 12:40 EDT  (15:55 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Saturn -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span>
 </div>
@@ -968,11 +968,11 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/me3.jpg">
 <h2>Kevin  Shockey</h2></div>
 <div class="webform-html-textarea"><p>Hi, I’m Farmer Kevin. I live in Puerto Rico. Proprietary software rules the island. Mine and others past efforts to promote free software were thwarted by FUD and attrition. When climbing the technology ladder here, most advocates end up working for and on proprietary software. Until hurricane Maria hit the island in 2017, I had retired from technology altogether. There were too few supporters of free software to warrant a Sisyphean effort to counteract high paying jobs using proprietary software.  Since Maria, I’ve returned to the fray, but with a new focus on surviving disasters, climate change, and food shortages.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-46 views-row-even">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6207">
 
 <div class="talkblock" style="clear:both">
@@ -981,7 +981,7 @@ This talk elaborates on the personal stake that ordinary users have in the futur
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6207">Saturday 16:20 - 17:05 EDT (20:20 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Saturn -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -997,11 +997,11 @@ of information you can trust. <a href="https://orgmode.org/">Org mode</a> is alr
 <h2>Joseph  Turner</h2></div>
 <div class="webform-html-textarea"><p>Hello! I'm Joseph Turner. I started using GNU/Linux and learning to program after I graduated college in 2019. Since then, I have worked as a project manager and developer with the <a href="https://ushin.org/">USHIN</a> team. I enjoy playing music (fiddle, cello, piano, anything that makes noise), practicing aikido, caring for animals, gardening, and chopping wood for the fireplace in my cabin in the woods. I am excited to get more actively involved with the free software and Emacs communities as we explore deliberative software.<br />
 </p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-47 views-row-odd">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6107">
 
 <div class="talkblock" style="clear:both">
@@ -1010,7 +1010,7 @@ of information you can trust. <a href="https://orgmode.org/">Org mode</a> is alr
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6107">Saturday 15:25 - 16:10 EDT (19:25 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Saturn -- in-person 
+<i class="glyphicon glyphicon-home"></i>: Saturn -- in-person
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span>
 </div>
@@ -1022,11 +1022,11 @@ of information you can trust. <a href="https://orgmode.org/">Org mode</a> is alr
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/logo.png">
 <h2>Anthony  Wang</h2></div>
 <div class="webform-html-textarea"><p>Anthony Wang is an MIT student and decentralized web developer. He is a maintainer for the ForgeFed protocol, Forgejo, Fediverse Enhancement Proposals, and a few other decentralized web projects.</p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
   <div class="views-row views-row-48 views-row-even views-row-last">
-      
+
   <div class="views-field views-field-nothing-2">        <span class="field-content"><hr id="6142">
 
 <div class="talkblock" style="clear:both">
@@ -1035,7 +1035,7 @@ of information you can trust. <a href="https://orgmode.org/">Org mode</a> is alr
 <div class="talkblockheader">
 <i class="glyphicon glyphicon-calendar"></i>: <a class="lpcalendarlink" href="/2023/program/#6142">Sunday 16:20 - 17:05 EDT (20:20 UTC)</a>
 </br>
-<i class="glyphicon glyphicon-home"></i>: Neptune -- online 
+<i class="glyphicon glyphicon-home"></i>: Neptune -- online
 </br>
 <i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span>
 </div>
@@ -1047,13 +1047,13 @@ of information you can trust. <a href="https://orgmode.org/">Org mode</a> is alr
 <div class="speakerheader"><img class="speakerpic"  src="https://my.fsf.org/sites/default/files/webform/Aaron-Wolf-headshot.jpg">
 <h2>Aaron  Wolf</h2></div>
 <div class="webform-html-textarea"><p>Co-founder of Snowdrift.coop (still struggling and still working on it!), music teacher and musician, conscious FLO activist. My website: <a href="https://wolftune.com">https://wolftune.com</a></p><br />
-</div> 
-</div></span>  </div>  
+</div>
+</div></span>  </div>
   <div class="views-field views-field-value-11">        <span class="field-content"></span>  </div>  </div>
     </div>
-  
-  
-  
-  
+
+
+
+
       <div class="view-footer">
       <!--pageend-->    </div>
index baa3be336816d88f06c1b59c79003a8d151fc5cd..f8bb1b9be65f68f4f485e8cbf4d8975c863068c5 100644 (file)
@@ -1,58 +1,58 @@
-      <!--pagestart-->    
-  
-  
-  
+      <!--pagestart-->
+
+
+
       <div class="view-content">
       <div class="view-grouping"><div class="view-grouping-header"><div id="schedule-Saturday">Saturday</div></div><div class="view-grouping-content">  <h3>09:45 - 10:00 EDT (13:45 UTC) - Welcome address</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2023/speakers/#6275"><div id="6275"><div class="webform-html-textarea"><p>Welcome address by FSF</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  by  FSF
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2023/speakers/#6276"><div id="6276"><div class="webform-html-textarea"><p>Welcome address by FSF</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  by  FSF
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2023/speakers/#6285"><div id="6285"><div class="webform-html-textarea"><p>Welcome address by FSF</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  by  FSF
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>10:00 - 10:45 EDT (14:00 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/freedom-hardware-current-state-and-forward-looking-statements/"><div id="6215"><div class="webform-html-textarea"><p>Freedom hardware: Current state and forward looking statements</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  V. Alex  Brennen
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
+
 
   Kurt Keville<br>
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/free-licensing-of-trademarks-a-tool-to-expand-the-scope-of-free-licenses-to-a-wider-scope-of-works-including-physical-objects/"><div id="6176"><div class="webform-html-textarea"><p>Free licensing of trademarks. A tool to expand the scope of free licenses to a wider scope of works. Including physical objects.</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/Julian.JPG">
  Julian  Daich
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2023/speakers/#6124"><div id="6124"><div class="webform-html-textarea"><p>Warpforge -- a tool for reproducible, hermetic builds</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  Eric  Myhre
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
+
 
   Eric Evenchick<br>
 
 </table>
   <h3>11:25 - 12:10 EDT (15:25 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/3demos-a-collaborative-visual-calculus-system/"><div id="6169"><div class="webform-html-textarea"><p>3Demos: A collaborative visual calculus system</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/IMG_0701_c_sm.jpg">
  Nikolas  Nyby
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/book-reading-ada-zangemann-a-tale-of-software-skateboards-and-raspberry-ice-cream/"><div id="6055"><div class="webform-html-textarea"><p>Book reading: Ada &amp; Zangemann - A tale of software, skateboards, and raspberry ice cream</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/MatthiasKirschner-s0t0s0-600x600.jpg">
  Matthias  Kirschner
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2023/speakers/#6225"><div id="6225"><div class="webform-html-textarea"><p>Libre software in Africa</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  Benson  Muite
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>12:25 - 13:10 EDT  (16:25 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/education-and-the-future-of-software-freedom/"><div id="6272"><div class="webform-html-textarea"><p>Education and the future of software freedom</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/erin-glass-dog.JPG">
  Erin Rose  Glass
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>13:10 - 14:05 EDT (17:10 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2023/speakers/#6280"><div id="6280"><div class="webform-html-textarea"><p>Break</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>:  </span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>:  </span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  LibrePlanet  2023
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>14:05 - 14:50 EDT (18:05 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/free-software-for-non-developers/"><div id="6128"><div class="webform-html-textarea"><p>Free software for non-developers</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/3f7dc2ae-4994-43d8-b3e2-63706b03d7c8-bWFpbi1uLW4tMC0wLTAtODAwLTEyMDA.jpg">
  James  Gregora
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/a-practical-demonstration-of-least-authority-services-via-free-software/"><div id="6230"><div class="webform-html-textarea"><p>A practical demonstration of least authority services via free software</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/birukou-sean.png">
  Mikalai  Birukou
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
+
 
   Sean O&#039;Brien<br>
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/chatons-a-collective-for-french-speaking-ethical-hosters/"><div id="6114"><div class="webform-html-textarea"><p>CHATONS, a collective for French-speaking ethical hosters</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/portrait-Angie-2021.jpg">
  Angie  Gaudion
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>15:00 - 15:45 EDT (19:00 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/using-data-to-see-the-impact-of-free-software/"><div id="6165"><div class="webform-html-textarea"><p>Using data to see the impact of free software</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  Do Yoon  Kim
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/lightning-talks-a26f/"><div id="6283"><div class="webform-html-textarea"><p>Lightning talks</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  LibrePlanet  2023
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/cataloguing-challenging-museum-libraries-items/"><div id="6167"><div class="webform-html-textarea"><p>Cataloguing challenging museum-libraries items</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/eu_150x150.jpg">
  Silvio Tamaso  D&#039;Onofrio
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>15:55 - 16:40 EDT (19:55 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/the-state-of-free-software-in-farming-food-agriculture/"><div id="6099"><div class="webform-html-textarea"><p>The state of free software in farming, food &amp; agriculture</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/sick.codes_.3000px.png">
  Sick  Codes
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/towards-federated-forges/"><div id="6107"><div class="webform-html-textarea"><p>Towards federated forges</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  Anthony  Wang
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/volunteering-for-the-licensing-and-compliance-lab/"><div id="6178"><div class="webform-html-textarea"><p>Volunteering for the Licensing and Compliance Lab</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  Yoni  Rabkin
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-  Ineiev 
-  Panos Alevropoulos 
-  Paulius Galubickas 
+
+  Ineiev
+  Panos Alevropoulos
+  Paulius Galubickas
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>16:50 - 17:35 EDT (20:50 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/understanding-developer-advocacy-in-wikipedia-s-technology-landscape/"><div id="6134"><div class="webform-html-textarea"><p>Understanding developer advocacy in Wikipedia's technology landscape</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/Srish.jpeg">
  Srishti  Sethi
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/emacs-for-p2p-deliberation/"><div id="6207"><div class="webform-html-textarea"><p>Emacs for P2P Deliberation</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/joseph.png">
  Joseph  Turner
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/what-s-new-in-jami/"><div id="6138"><div class="webform-html-textarea"><p>What's new in Jami</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/bandali.jpg">
  Amin  Bandali
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>17:50 - 18:35 EDT (21:50 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/keynote-by-fsf-awards-ceremony/"><div id="6282"><div class="webform-html-textarea"><p>Keynote by FSF &amp; awards ceremony</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  Geoffrey  Knauth
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
+
 
   Zoë Kooyman<br>
 
 </table>
   <h3>18:35 - 18:50 EDT (22:35 UTC) - Closing remarks</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2023/speakers/#6278"><div id="6278"><div class="webform-html-textarea"><p>Closing notes</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  by  FSF
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
 </div></div><div class="view-grouping"><div class="view-grouping-header"><div id="schedule-Sunday">Sunday</div></div><div class="view-grouping-content">  <h3>09:45 - 10:00 EDT (13:45 UTC) - Welcome address</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2023/speakers/#6277"><div id="6277"><div class="webform-html-textarea"><p>Welcome address by FSF</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  by  FSF
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2023/speakers/#6293"><div id="6293"><div class="webform-html-textarea"><p>Welcome address by FSF</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  Miriam  Bastian
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2023/speakers/#6286"><div id="6286"><div class="webform-html-textarea"><p>Welcome address by FSF</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  LibrePlanet  2023
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>10:00 - 10:45 EDT (14:00 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/topographical-maps-for-all/"><div id="6141"><div class="webform-html-textarea"><p>Topographical maps for all!</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/anaximender.jpg">
  Anaximander  Miletus
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/the-long-history-of-metrics-before-and-after-cybernetics/"><div id="6218"><div class="webform-html-textarea"><p>The long history of metrics before and after cybernetics</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/IMG_20210209_173811.jpg">
  Clinton  Ignatov
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/jshelter-for-browsing-securely/"><div id="6195"><div class="webform-html-textarea"><p>JShelter for browsing securely</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack8">Security</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack8">Security</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/foto.jpg">
  Libor  Polčák
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
 </table>
   <h3>10:55 - 11:40 EDT (14:55 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/safety-critical-software-certification-and-why-free-software/"><div id="6226"><div class="webform-html-textarea"><p>Safety-critical software certification and why free software<br />
 might be the best solution</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack8">Security</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack8">Security</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  Dr. William   Cooper Davidon
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/free-libre-payment-system/"><div id="6154"><div class="webform-html-textarea"><p>Free/libre payment system</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/yo.jpg">
  Sebastian  Marchano
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/taking-control-over-the-means-of-production-free-software-boot/"><div id="6197"><div class="webform-html-textarea"><p>Taking control over the means of production: Free software boot</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  Denis  Carikli
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
@@ -664,54 +664,54 @@ might be the best solution</p>
 </table>
   <h3>11:55 - 12:40 EDT  (15:55 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/questions-are-the-answer-how-to-have-deeper-conversations-with-anyone-about-free-software-philosophy/"><div id="6160"><div class="webform-html-textarea"><p>Questions are the answer, how to have deeper conversations with anyone about free software philosophy.</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/20221026_223348.jpg">
  Lori  Nagel
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2023/speakers/#6210"><div id="6210"><div class="webform-html-textarea"><p>Life 0.01 - Free software for the end times</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/me3.jpg">
  Kevin  Shockey
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/free-software-for-environmental-sciences/"><div id="6162"><div class="webform-html-textarea"><p>Free software for environmental sciences</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/weiming.png">
  Weiming  Hu
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
@@ -720,22 +720,22 @@ might be the best solution</p>
 </table>
   <h3>12:40 - 13:35 EDT (16:40 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2023/speakers/#6281"><div id="6281"><div class="webform-html-textarea"><p>Break</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>:  </span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>:  </span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  LibrePlanet  2023
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
@@ -744,52 +744,52 @@ might be the best solution</p>
 </table>
   <h3>13:35 - 14:20 EDT (17:35 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/the-nym-mixnet-free-software-to-end-mass-surveillance/"><div id="6228"><div class="webform-html-textarea"><p>The Nym mixnet: Free software to end mass surveillance</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack8">Security</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack8">Security</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/Ahmed.jpeg">
  Ahmed  Ghappour
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2023/speakers/#6151"><div id="6151"><div class="webform-html-textarea"><p>BigCode: Open and responsible research on Code Generating AI Systems</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- online</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- online</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack1">Licensing</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/Harm-Leandro.jpg">
  Harm  de Vries
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
+
 
   Leandro von Werra<br>
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/federation-and-moderation-usenet-as-the-original-decentralized-social-network/"><div id="6150"><div class="webform-html-textarea"><p>Federation and moderation: Usenet as the original decentralized social network</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/tristan-rayner.jpg">
  Rayner  Lucas
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
+
 
   Tristan Miller<br>
 
@@ -800,54 +800,54 @@ might be the best solution</p>
 </table>
   <h3>14:30 - 15:15 EDT (18:30 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/problems-in-the-fediverse-organization/"><div id="6206"><div class="webform-html-textarea"><p>Problems in the fediverse: Organization</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/icon.png">
  Tomat0
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2023/speakers/#6143"><div id="6143"><div class="webform-html-textarea"><p>WorldVistA EHR version of the Department of Veterans Affairs Electronic Health Record</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- online</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- online</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  Nancy  Anthracite
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/the-legacy-of-free-software-in-the-brazilian-government/"><div id="6156"><div class="webform-html-textarea"><p>The legacy of free software in the Brazilian government</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/cracha.jpg">
  Flávio  Lisboa
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
@@ -856,52 +856,52 @@ might be the best solution</p>
 </table>
   <h3>15:25 - 16:10 EDT (19:25 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/trisquel-gnu-linux-new-architectures-and-other-challenges/"><div id="6161"><div class="webform-html-textarea"><p>Trisquel GNU/Linux, new architectures and other challenges</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/1673536787945.jpeg">
  Rubén  Rodríguez Pérez
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2023/speakers/#6203"><div id="6203"><div class="webform-html-textarea"><p>DIY browsers</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- online</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- online</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack9">Free Software in practice</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/Adrian.jpg">
  Adrian  Cochrane
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/should-developers-get-paid-for-their-work/"><div id="6119"><div class="webform-html-textarea"><p>Should developers get paid for their work?</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack3">Community</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/Agaric.jpg">
  Agaric Technology   Collective
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
+
 
   Chris Thompson<br>
   Keegan Rankin<br>
@@ -914,20 +914,20 @@ might be the best solution</p>
 </table>
   <h3>16:20 - 17:05 EDT (20:20 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/it-s-time-to-jailbreak-the-farm/"><div id="6133"><div class="webform-html-textarea"><p>It’s time to jailbreak the farm</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/panelRtR.jpg">
  Paul  Roberts
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
+
 
   Sick Codes<br>
   Kevin Kenney<br>
@@ -936,16 +936,16 @@ might be the best solution</p>
 
 </div></span>  </div>          </td>
                   <td  class="col-2">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/finding-a-job-while-caring-about-free-software/"><div id="6208"><div class="webform-html-textarea"><p>Finding a job while caring about free software</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- online</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Saturn -- online</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack4">Social context</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  Ian  Kelling
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
+
 
   Rubén Rodríguez Pérez<br>
    Yuchen Pei<br>
@@ -954,18 +954,18 @@ might be the best solution</p>
 
 </div></span>  </div>          </td>
                   <td  class="col-3 col-last">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/kids-need-to-experience-software-freedom-not-just-the-idea-of-it/"><div id="6142"><div class="webform-html-textarea"><p>Kids need to experience software freedom, not just the idea of it</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Neptune -- online</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack6">Education</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/Aaron-Wolf-headshot.jpg">
  Aaron  Wolf
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
@@ -974,22 +974,22 @@ might be the best solution</p>
 </table>
   <h3>17:20 - 18:05 EDT (21:20 UTC)</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="https://media.libreplanet.org/u/libreplanet/m/the-future-of-the-right-to-repair-and-free-software/"><div id="6315"><div class="webform-html-textarea"><p>The future of the right to repair and free software</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack12">Keynote</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/liz-keynote.jpg">
  Elizabeth  Chamberlain
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
@@ -998,22 +998,22 @@ might be the best solution</p>
 </table>
   <h3>18:05 - 18:20 EDT (22:05 UTC) - Closing remarks</h3>
 <table class="views-view-grid cols-3">
-  
+
   <tbody>
           <tr  class="row-1 row-first row-last">
                   <td  class="col-1 col-first">
-              
+
   <div class="views-field views-field-value">        <span class="field-content"><a href="/2023/speakers/#6279"><div id="6279"><div class="webform-html-textarea"><p>Closing notes</p>
-</div></div></a></span>  </div>  
-  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>  
-  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>  
+</div></div></a></span>  </div>
+  <div class="views-field views-field-value-3">        <span class="field-content"><i class="glyphicon glyphicon-home"></i>: Jupiter -- in-person</span>  </div>
+  <div class="views-field views-field-value-7">        <span class="field-content"><i class="glyphicon glyphicon-road"></i>: <span class="lptrack lptrack2">LibrePlanet special sessions</span></span>  </div>
   <div class="views-field views-field-value-6">        <span class="field-content"><img class="schedulepic" style="float:left;  max-width:23px; max-height:23px; margin-right:5px; border-radius: 5px" src="https://my.fsf.org/sites/default/files/webform/logo.png">
  by  FSF
-<div style="clear:both"></div></span>  </div>  
+<div style="clear:both"></div></span>  </div>
   <div class="views-field views-field-regex-rewrite">        <span class="field-content"><div class="guestspeakers">
-   
 
-   
+
+
 
 
 </div></span>  </div>          </td>
@@ -1021,9 +1021,9 @@ might be the best solution</p>
       </tbody>
 </table>
 </div></div>    </div>
-  
-  
-  
-  
+
+
+
+
       <div class="view-footer">
       <!--pageend-->    </div>
index d21dc47e8df6606068576981109165861dfe2e46..0636dfdb3ac350d2802b856945ee23c0b2590704 100644 (file)
@@ -1,6 +1,6 @@
 
 <h3>Report from LibrePlanet: Charting the Course</h3>
-Read about day one and day two of the conference: 
+Read about day one and day two of the conference:
 <p><a href="https://www.fsf.org/blogs/community/reporting-back-from-day-one-of-libreplanet-charting-the-course">Reporting back from day one of LibrePlanet: Charting the Course</a></p>
 <p><a href="https://www.fsf.org/blogs/community/from-freedom-trail-to-free-boot-and-free-farms-charting-the-course-at-libreplanet-day-2">From Freedom Trail to free boot and free farms: Charting the course at LibrePlanet day two</a></p>
 
@@ -8,4 +8,4 @@ Read about day one and day two of the conference:
 <p>LibrePlanet: Charting the Course was held both <strong>online and in-person</strong> on March 18 and 19, 2023.</p>
 <p>LibrePlanet is the annual conference hosted by the Free Software Foundation (FSF). LibrePlanet provides an opportunity for community activists, domain experts, and people seeking solutions for themselves to come together in order to discuss current issues in technology and ethics.</p>
 <p>The theme for LibrePlanet 2023 was <strong>"Charting the Course."</strong> The free software movement has produced so much more than just a set of common tools used by millions around the world. It also points the way to a freer and autonomous digital existence for all of us: one where it’s the user and not corporate monopolies that control our ways of communicating, how children are educated, and how we monitor information as crucial as our own health. Ingenuity and moral dedication are two important qualities of the free software movement, and we use these for the benefit of all. This year, LibrePlanet speakers showed ways of progressing the free software community’s understanding of new opportunities and new threats to the movement.</p>
-<p>Together, we have helped ourselves and others find their freedom in the current digital landscape. Now, it’s time for us to lead the way – or <strong>chart a course</strong> – through to full digital freedom.</p>  
+<p>Together, we have helped ourselves and others find their freedom in the current digital landscape. Now, it’s time for us to lead the way – or <strong>chart a course</strong> – through to full digital freedom.</p>
index b059bed4db6f5d2145d3fc6741e6e6b50ad92096..0f3b1a2e2e7f43223268b6d62a639fe59d6c4ea1 100644 (file)
   </div>
   <div class="panel-body">
       <p>
-      <a target="_blank" href="https://live.fsf.org/stream-room-jupiter-lowres.webm">LP Workshop</a> (480p)</br> 
+      <a target="_blank" href="https://live.fsf.org/stream-room-jupiter-lowres.webm">LP Workshop</a> (480p)</br>
          <!--
       <a target="_blank" href="https://live.fsf.org/stream-room-jupiter-lowres.webm">Jupiter</a> (480p)</br>
       <a target="_blank" href="https://live.fsf.org/stream-room-saturn-lowres.webm">Saturn</a> (480p)</br>
       <a target="_blank" href="https://live.fsf.org/stream-room-neptune-lowres.webm">Neptune</a> (480p)</br>
-            <a target="_blank" href="https://live.fsf.org/libreplanet-workshop-lowres.webm">LP Workshop</a> (480p)</br> 
+            <a target="_blank" href="https://live.fsf.org/libreplanet-workshop-lowres.webm">LP Workshop</a> (480p)</br>
           -->
       </p>
   </div>
index e2f98a7fa598b75bbd0f8c6307b562eaffc13832..cbf0fb6d98dc4d48d438cfddcd8c4e6f03a0be89 100755 (executable)
@@ -4,7 +4,7 @@
 <li><a href="/2023/safe-space-policy/">Safe Space Policy</a></li>
 <li><a href="/2023/sponsors">Sponsors and Exhibitors</a></li>
 <!--<li><a href="/2023/volunteer/">Volunteer</a></li>-->
-<li><a href="https://lists.gnu.org/mailman/listinfo/libreplanet-discuss">Join the Discussion List</a></li> 
+<li><a href="https://lists.gnu.org/mailman/listinfo/libreplanet-discuss">Join the Discussion List</a></li>
 <!-- <li><a href="https://www.fsf.org/about/contact/">Contact Us</a></li> -->
 <!--<li><a href="https://www.fsf.org/blogs/community/free-software-awards-recognize-those-who-advance-our-freedom-by-october-28th">FSF Award Nomination</a></li>-->
 
index a2234a54aacde75258fbb3f9c1eafe5b16c3ba6b..4602af79013fb09ac35a9fbd6c05e62eedec17d5 100755 (executable)
@@ -4,7 +4,7 @@
        <!-- <ul> -->
        <!--   <li></li> -->
        <!--  </ul> -->
-       
+
 </ul>
 
 <li><strong>04/18/2023</strong> <a href="https://www.fsf.org/blogs/community/watch-the-libreplanet-charting-the-course-videos-on-gnu-mediagoblin-and-peertube">Watch the LibrePlanet: Charting the Course videos on GNU MediaGoblin and PeerTube</a></li>
@@ -20,7 +20,7 @@
 <li><strong>02/21/2023</strong> <a href="https://www.fsf.org/community/the-libreplanet-2023-charting-the-course-schedule-is-here-for-march-18-and-19">The LibrePlanet 2023: Charting the Course schedule is here for March 18 and 19</a></li>
 
 <li><strong>01/12/2023</strong> <a href="https://www.fsf.org/news/software-freedom-in-education-advocate-erin-rose-glass-to-keynote-fsfs-libreplanet">Software freedom in education advocate Erin Rose Glass to keynote LibrePlanet </a></li>
-       
+
 <li><strong>12/13/2022</strong> <a href="https://www.fsf.org/blogs/community/amin-bandali-about-why-it-is-fun-to-participate-in-libreplanet">Amin Bandali: Why it's fun to participate in LibrePlanet</a></li>
 
 <li><strong>11/30/2022</strong> <a href="https://www.fsf.org/blogs/community/fifteen-years-of-libreplanet-register-now-to-join-us-on-march-18-and-19">Fifteen years of LibrePlanet: Register now to join us on March 18 and
@@ -51,5 +51,5 @@
          <li><strong>10/06/2021</strong> <a href="https://www.fsf.org/blogs/community/libreplanet-2022-returns-online-submit-your-session-proposal-by-dec-1">LibrePlanet 2022 returns online: Submit your session proposal by Dec. 1</a></li>
          <li><strong>05/06/2021</strong> <a href="https://www.fsf.org/blogs/community/watch-and-share-talks-from-libreplanet-2021-empowering-users">Watch and share talks from LibrePlanet 2021: Empowering Users</a></li>
          <li><strong>03/21/2021</strong> <a href="https://www.fsf.org/blogs/community/libreplanet-day-two-empowering-users-in-real-and-virtual-space">LibrePlanet day two: Empowering users in real and virtual space</a></li> -->
-</ul> 
+</ul>
 
index fa24964caad17d42303165898bbf74c7899510a2..b43179e32655b23f2c8200081516c242241e40f0 100755 (executable)
@@ -8,48 +8,48 @@
 <div id="lpc-carousel" class="carousel">
 
        <ul class="carousel-inner list-unstyled" style="max-width:900px; max-height:600px; !important;">
-       
+
                 <li class="item active">
-        <a href="https://my.fsf.org/node/59/"><img src="https://static.fsf.org/nosvn/libreplanet/2023/communications/thanks-768x462.png"  
+        <a href="https://my.fsf.org/node/59/"><img src="https://static.fsf.org/nosvn/libreplanet/2023/communications/thanks-768x462.png"
                                                                                                                  alt="[ Thank you for attending LibrePlanet 2023!]"></a>
-                                                                                                                 
+
 <li class="item">
-        <a href="https://media.libreplanet.org/u/libreplanet/tag/libreplanet-2023-video/"><img src="https://static.fsf.org/nosvn/libreplanet/2023/communications/LP23-video-announcement.png"  
+        <a href="https://media.libreplanet.org/u/libreplanet/tag/libreplanet-2023-video/"><img src="https://static.fsf.org/nosvn/libreplanet/2023/communications/LP23-video-announcement.png"
                                                                                                                  alt="[ An image showing different speakers while talking at LibrePlanet 2023: Srishti Sethi on the left, Elizabeth Chamberlain and Matthias Kirschner in the middle, and Sick Codes and Erin Rose Glass on the right. A white text in the middle says: Watch the LibrePlanet 2023 videos!]"></a>
 
 
     <!-- wrapper for slides -->
  <!--  <ul class="carousel-inner list-unstyled" style="max-width:900px; max-height:600px; !important;">
-       
+
                 <li class="item active">
-        <a href="https://www.fsf.org/news/right-to-repair-advocate-elizabeth-chamberlain-to-keynote-fsfs-libreplanet"><img src="https://static.fsf.org/nosvn/libreplanet/2023/communications/Liz-768X461.png"  
+        <a href="https://www.fsf.org/news/right-to-repair-advocate-elizabeth-chamberlain-to-keynote-fsfs-libreplanet"><img src="https://static.fsf.org/nosvn/libreplanet/2023/communications/Liz-768X461.png"
                                                                                                                  alt="[ LibrePlanet 2023 keynote annoucement ]"></a>-->
          <!-- <p class="carousel-caption-center">-->
   <!--            </p>
        </li>
-       
+
         <li class="item">
-        <a href="https://www.fsf.org/community/the-libreplanet-2023-charting-the-course-schedule-is-here-for-march-18-and-19"><img src="https://static.fsf.org/nosvn/libreplanet/2023/communications/schedule.jpg"  
+        <a href="https://www.fsf.org/community/the-libreplanet-2023-charting-the-course-schedule-is-here-for-march-18-and-19"><img src="https://static.fsf.org/nosvn/libreplanet/2023/communications/schedule.jpg"
                                                                                                                  alt="[ LibrePlanet 2023 schedule annoucement ]"></a>
             <!-- <p class="carousel-caption-center">-->
             </p>
-           
+
        </li>
-       
+
  <!--   <li class="item">
-        <a href="https://www.fsf.org/news/software-freedom-in-education-advocate-erin-rose-glass-to-keynote-fsfs-libreplanet"><img src="https://static.fsf.org/nosvn/libreplanet/2023/communications/glass-768X461.png"  
-                                                                                                                 alt="[ LibrePlanet 2023 keynote annoucement ]"></a>                                                                                                             
+        <a href="https://www.fsf.org/news/software-freedom-in-education-advocate-erin-rose-glass-to-keynote-fsfs-libreplanet"><img src="https://static.fsf.org/nosvn/libreplanet/2023/communications/glass-768X461.png"
+                                                                                                                 alt="[ LibrePlanet 2023 keynote annoucement ]"></a>
         <!-- <p class="carousel-caption-center">-->
             </p>
-       </li> 
+       </li>
+
 
-       
   <!--         <li class="item">
-           <a href="https://my.fsf.org/civicrm/event/info?reset=1&id=106"><img src="https://static.fsf.org/nosvn/libreplanet/2023/communications/registration-lp-homepage.png"  
+           <a href="https://my.fsf.org/civicrm/event/info?reset=1&id=106"><img src="https://static.fsf.org/nosvn/libreplanet/2023/communications/registration-lp-homepage.png"
                                                                                                                  alt="[ LibrePlanet 2023 registration]"></a>
            <!-- <p class="carousel-caption-center">-->
             </p>
-       </li> 
+       </li>
 
        </ul>
 
index de68dbbf3da34df7e0a4de684bea8d7d3f8b3af7..89b16bac8133d6f24100ea62ede427e50418908d 100755 (executable)
@@ -15,7 +15,7 @@
 
 <div class="row margin-top">
   <div class="col-sm-8"> <!-- start of main content -->
-  <p>In the coming weeks, the following workshops and talks will be streamed in room <a target="_blank" href="https://live.fsf.org/stream-room-jupiter.webm">Jupiter</a> (scroll down and check the sidebar to the right for low resolution and audio stream options):</p>  
+  <p>In the coming weeks, the following workshops and talks will be streamed in room <a target="_blank" href="https://live.fsf.org/stream-room-jupiter.webm">Jupiter</a> (scroll down and check the sidebar to the right for low resolution and audio stream options):</p>
 
 <h3><a href="https://www.fsf.org/events/libreplanet-workshop-may-8-leanweb-a-ruby-out-of-rails-web-framework-for-static-and-dynamic-content-by-felix-freeman">LeanWeb: A Ruby (out of rails) web framework for static and dynamic content</a></h3>
 
@@ -23,7 +23,7 @@
 <li><strong>Time:</strong> Monday, May 08, 12:00–13:30 EDT (16:00–17:30 UTC)</li>
 <li><strong>Format:</strong> Online workshop</li>
 <li><strong>Presenter:</strong> Felix Freeman</li>
-</ul> 
+</ul>
 
 <h3><a href="https://www.fsf.org/events/libreplanet-workshop-digital-colonialism-surveillance-capitalism-and-a-libre-software-future-by-jose-castro">Digital colonialism, surveillance capitalism, and a libre software future</a></h3>
 
@@ -39,7 +39,7 @@
 <li><strong>Time:</strong> Tuesday, May 30, 12:00–12:45 EDT (16:00–16:45 UTC)</li>
 <li><strong>Format:</strong> Online talk</li>
 <li><strong>Presenters:</strong> Harm de Vries and Leandro von Werra</li>
-</ul> 
+</ul>
 
 <h3><a href="https://www.fsf.org/events/libreplanet-talk-june-5-worldvista-ehr-version-of-the-department-of-veterans-affairs-electronic-health-record">WorldVistA EHR version of the Department of Veterans Affairs Electronic Health Record</a></h3>
 
 
         <strong>High resolution videos:</strong><br><br>
 
-   
+
           <!-- <a href="https://live.fsf.org/libreplanet-workshop.webm">https://live.fsf.org/libreplanet-workshop.webm</a><br> -->
 
-         
+
         <a href="https://live.fsf.org/stream-room-jupiter.webm">https://live.fsf.org/stream-room-jupiter.webm</a><br>
          <!--  <a href="https://live.fsf.org/stream-room-saturn.webm">https://live.fsf.org/stream-room-saturn.webm</a><br>
         <a href="https://live.fsf.org/stream-room-neptune.webm">https://live.fsf.org/stream-room-neptune.webm</a><br><br>
@@ -85,8 +85,8 @@
 
    <!--
         <a href="https://live.fsf.org/libreplanet-workshop-lowres.webm">https://live.fsf.org/libreplanet-workshop-lowres.webm</a><br>   -->
-     
-          
+
+
         <a href="https://live.fsf.org/stream-room-jupiter-lowres.webm">https://live.fsf.org/stream-room-jupiter-lowres.webm</a><br>
           <!--
         <a href="https://live.fsf.org/stream-room-saturn-lowres.webm">https://live.fsf.org/stream-room-saturn-lowres.webm</a><br>
@@ -98,8 +98,8 @@
   <!--
         <a href="https://live.fsf.org/libreplanet-workshop.ogg">https://live.fsf.org/libreplanet-workshop.ogg</a><br>
           -->
-         
+
+
         <a href="https://live.fsf.org/stream-room-jupiter.ogg">https://live.fsf.org/stream-room-jupiter.ogg</a><br>
            <!--
         <a href="https://live.fsf.org/stream-room-saturn.ogg">https://live.fsf.org/stream-room-saturn.ogg</a><br>
index 236644ac170d5d2cb75f24bf70b792b0a44f6b3f..f912b62572e35acdb22aa3dc05d42a0b97662392 100755 (executable)
@@ -7,7 +7,7 @@
 
 <h1>Raffle</h1>
 
-<p>We'll be raffling off fabulous free software prizes, thanks to <a href="https://libreplanet.org/2023/sponsors">some of our generous sponsors</a>. 
+<p>We'll be raffling off fabulous free software prizes, thanks to <a href="https://libreplanet.org/2023/sponsors">some of our generous sponsors</a>.
 
 <p>All attendees get a gratis raffle ticket, FSF members get a second gratis ticket, and everyone can buy more chances to win at the GNU Press table during LibrePlanet, as well as at the Friday open house and Saturday evening social events! Buy one ticket for $2, 3 tickets for $5, one arm's length for $20, cash or credit. FSF staff and board members are not eligible to participate in the raffle.</p>
 
@@ -22,7 +22,7 @@
 <!--   <li>Subscriptions to <a href="https://jmp.chat/">JMP</a></li> -->
 <!--   <li>ChaosKeys from <a href="https://altusmetrum.org/">Altus Metrum, LLC</a></li> -->
 <!-- </ul> -->
-                                                        
+
 
 
 <!--#include virtual="/2023/includes/footer.html"-->
index 0ca6846acd9293ea663dd3e8fb5832723a9e7751..291dddc2490c959c9853ef4dcd9144341470c0ca 100755 (executable)
@@ -7,7 +7,7 @@
 .exhibitor-info { max-width: 650px; margin: 0 auto 40px auto; }
 h2 a { border: none; }
 .irc-client { display: block; width: 650px; height: 500px; margin: 0 auto; }
-</style> 
+</style>
 
 <h2>Exhibitors</h2>
 <p>The lively Exhibit Hall at LibrePlanet will be open on both conference days, in person, and online at LibreAdventure with something for everyone. Be sure to take a virtual stroll around and meet exhibitors who care about software freedom.</p>
@@ -20,7 +20,7 @@ h2 a { border: none; }
                          </div></div>
                        </p>
                        <br>
-<div style="clear:both"><br></div> 
+<div style="clear:both"><br></div>
 
 <div class="exhibitor-info">
 <p>    <div class="hover_img">
@@ -57,7 +57,7 @@ h2 a { border: none; }
                          </div></div>
                        </p>
                        <br>
-<div style="clear:both"><br></div> 
+<div style="clear:both"><br></div>
 
 <div class="exhibitor-info">
 <p>    <div class="hover_img">
@@ -89,11 +89,11 @@ h2 a { border: none; }
 <br>
 <p>As a 501(c)(3) nonprofit, the Free Software Foundation relies on sponsors and volunteers to make LibrePlanet a reality each year. Thanks to conference sponsors, we can offer free admission to students, welcoming event space and social activities, and refreshments for attendees. Support from generous sponsors also enables LibrePlanet to run on free software infrastructure, including livestreaming and session recordings.
 
-<!--</p>In past years, our sponsors have included Spruce, Red Hat, Vikings, Technoethical, and Aleph Labs, among others below.</p>--> 
+<!--</p>In past years, our sponsors have included Spruce, Red Hat, Vikings, Technoethical, and Aleph Labs, among others below.</p>-->
 
-<p>Sponsorship and underwriting opportunities can be found in this <a href="LibrePlanet2023-Sponsorship-Packages.pdf">informational flyer</a> or in this year's  <a href="LibrePlanet2023-Sponsorship.pdf">prospectus</a>. 
+<p>Sponsorship and underwriting opportunities can be found in this <a href="LibrePlanet2023-Sponsorship-Packages.pdf">informational flyer</a> or in this year's  <a href="LibrePlanet2023-Sponsorship.pdf">prospectus</a>.
 
-<p>To inquire about sponsoring the event, or if you have any questions, please email <a href="mailto:campaigns@fsf.org">campaigns@fsf.org</a>.</p> 
+<p>To inquire about sponsoring the event, or if you have any questions, please email <a href="mailto:campaigns@fsf.org">campaigns@fsf.org</a>.</p>
 <p><b><a href="https://my.fsf.org/civicrm/event/info?reset=1&id=114">Register to the event as a sponsor!</a></b> Please only use this link after confirmation from the FSF! All materials must be submitted by **March 1, 2023** in order to guarantee visual inclusion.</p>
 
 
@@ -101,7 +101,7 @@ h2 a { border: none; }
 
 <h2>Become a LibrePlanet 2023 exhibitor</h2>
 <br>
-<p>The lively and centrally located Exhibit Hall at LibrePlanet will be open on both conference days (times TBC), with something for everyone. Be sure to take a stroll around and meet exhibitors who care about software freedom.</p> 
+<p>The lively and centrally located Exhibit Hall at LibrePlanet will be open on both conference days (times TBC), with something for everyone. Be sure to take a stroll around and meet exhibitors who care about software freedom.</p>
 
 <p><b>We offer early registration pricing for exhibitors until February 21st, 2023. Nonprofits and individual projects are eligible for a discounted exhibitors price.</b></p> <p><b><a href="https://my.fsf.org/civicrm/event/info?reset=1&id=114">Register to the event as an exhibitor!</a></b> Please only use this link after confirmation from the FSF! All materials must be submitted by **March 1, 2023** in order to guarantee visual inclusion.</p>
 
index f1b33643181f44e0274c62362fc835e4533dc603..579f3d9e9af548a20ce5ff993f4405ced18d3b5d 100755 (executable)
@@ -6,7 +6,7 @@
 <!--#include virtual="/2023/includes/sidebar.html"-->
 
 <h2>Unfortunately, pre-registration is full.</h2>
-<p>We will do our best to accomodate walk-up registrations. 
+<p>We will do our best to accomodate walk-up registrations.
 Prices are as follows:</p>
 <ul>
 <li>FSF members and students: $ 0</li>
index 0d2abddd611e546925a45f61055780d7faedf37d..4c188dc9edbffa2c887418e38c69070f556639cb 100644 (file)
@@ -6,7 +6,7 @@
 <!--#include virtual="/2022/includes/sidebar.html"-->
 ##Unfortunately, pre-registration is full.
 
-We will do our best to accomodate walk-up registrations. 
+We will do our best to accomodate walk-up registrations.
 Prices are as follows:
 
 * FSF members and students: $ 0
index 205319465666e5b8c09ebc6c9364c5301ddd055f..1a434eb7c55f51be15e7f5a760c5218defb74903 100644 (file)
@@ -5,7 +5,7 @@ body {
   font-size: 16px;
   line-height: 1.428571429;
   /* color: #dbd6ce; */
-  
+
   color: #404040;
   scrollbar-color: #4b4f53 #1c1e1f;
 }
@@ -42,8 +42,8 @@ h3  {
   font-size: 20px;
 }
 
-.lp-logo { 
-  margin-bottom: -78px; 
+.lp-logo {
+  margin-bottom: -78px;
   margin-top: 25px;
 }
 
@@ -992,7 +992,7 @@ body {
   /* Space background */
   /*background-image: url('/2024/assets/img/pattern-1.png') !important; */
   /* background-color: rgba(55, 57, 58, 0.85); */
-  background-color: #ffffff; 
+  background-color: #ffffff;
   background-position: top right;
   background-repeat: repeat-y repeat-x;
   background-size: contain;
@@ -1126,7 +1126,7 @@ border-radius: 5px
 
 
 @media (max-width:600px) {
-  
+
   .talkblock{
     clear: both;
     text-align: left;
@@ -1206,7 +1206,7 @@ border-radius: 5px
     text-align: center;
     position: relative;
     width: 95%;
-    overflow: hidden;    
+    overflow: hidden;
 }
 
 #deadline-table th {
index 7166c1681428d2f4828ad08f6b3f96cd3f0c5607..4ee39efa7cd1ddfeec5ceed329b10174f6088c60 100644 (file)
@@ -49,7 +49,7 @@
 .ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; }
 .ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
 .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; zoom: 1; }
-.ui-autocomplete { position: absolute; cursor: default; }      
+.ui-autocomplete { position: absolute; cursor: default; }
 
 /* workarounds */
 * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
@@ -57,8 +57,8 @@
 .ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; }
 .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
 button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
+.ui-button-icons-only { width: 3.4em; }
+button.ui-button-icons-only { width: 3.7em; }
 
 /*button text element */
 .ui-button .ui-button-text { display: block; line-height: 1.4;  }
@@ -95,7 +95,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
 .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
 .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
 .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
+.ui-datepicker select.ui-datepicker-month,
 .ui-datepicker select.ui-datepicker-year { width: 49%;}
 .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
 .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
index 94fb5490a2ed10b2c69a4a567a4fd2e4f706d841..f155876e1b9cf712c81dd78eac057c5629343b9b 100644 (file)
 <glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
 <glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
 </font>
-</defs></svg> 
\ No newline at end of file
+</defs></svg>
\ No newline at end of file
index b46a5bb8d76f7a8f7280ab30485089d7b706cc1f..3dfe5d3a6cd15e8203d69336c4f5bd8a599c464a 100644 (file)
    id="Camada_3"
    style="display:inline"
    transform="matrix(1.8123521,0,0,1.8123521,193.65387,-244.78179)">
-       
+
        <g
    id="g877"
    style="fill:#ffffff;fill-opacity:1">
-               
+
                <path
    class="st7"
    d="M 744.8,578.7"
@@ -87,7 +87,7 @@
    style="fill:#ffffff;fill-opacity:1" />
        </g><g
    id="g863">
-               
+
                        <rect
    x="400.39999"
    y="698.90002"
@@ -96,7 +96,7 @@
    width="12.7"
    height="12.7"
    id="rect771" />
-               
+
                        <rect
    x="417.20001"
    y="682.20001"
    width="12.7"
    height="12.7"
    id="rect773" />
-               
+
                        <rect
    x="325.29999"
    y="698.90002"
    width="12.7"
    height="12.7"
    id="rect777" />
-               
+
                        <rect
    x="308.20001"
    y="681.90002"
    class="st3"
    points="456.5,694.6 447.5,703.6 412.5,668.6 430.5,668.6 "
    id="polygon787" />
-               
+
                        <rect
    x="266.29999"
    y="706.20001"
    width="12.7"
    height="12.7"
    id="rect789" />
-               
+
                        <rect
    x="459.10001"
    y="706.20001"
    class="st3"
    points="608,476.1 597.8,463.5 587.9,471.5 598,483.9 "
    id="polygon803" />
-                       
+
                                <rect
    x="648.29999"
    y="532.20001"
    points="624,516.1 634.4,528.9 644.3,520.9 633.8,508 "
    id="polygon811" />
                </g>
-               
+
                        <rect
    x="545.90002"
    y="656"
    width="12.7"
    height="12.7"
    id="rect815" />
-               
+
                        <rect
    x="546"
    y="633.20001"
index 463f3f58467f9ec14a533a7f6de39ae5b95c3f40..d3a843689293cf6f5764df2fa495150b38ded6ef 100644 (file)
@@ -92,7 +92,7 @@
    id="Camada_4_19_">
                                                <g
    id="g1229_11_">
-                                                       
+
                                                                <rect
    id="rect1159_4_"
    x="453.4"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1161_6_"
    x="422.6"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1163_6_"
    x="438"
    id="polygon1169_4_"
    class="st1"
    points="516.7,-548.3 523.3,-556.4 516.8,-561.5 510.3,-553.5         " />
-                                                               
+
                                                                        <rect
    id="rect1171_4_"
    x="545.8"
    id="Camada_4_18_">
                                                <g
    id="g1229_10_">
-                                                       
+
                                                                <rect
    id="rect1159_3_"
    x="162.4"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1161_3_"
    x="131.6"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1163_4_"
    x="147"
    id="polygon1169_3_"
    class="st1"
    points="225.6,-548.3 232.2,-556.4 225.8,-561.5 219.3,-553.5         " />
-                                                               
+
                                                                        <rect
    id="rect1171_3_"
    x="254.8"
    id="Camada_4_17_">
                                                <g
    id="g1229_6_">
-                                                       
+
                                                                <rect
    id="rect1137_6_"
    x="534.9"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1139_6_"
    x="545.7"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1141_6_"
    x="486.4"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1145_6_"
    x="475.5"
    id="polygon1153_6_"
    class="st1"
    points="565.2,-430.6 571,-424.8 554.3,-408 542.7,-408        " />
-                                                       
+
                                                                <rect
    id="rect1155_6_"
    x="448.4"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1157_6_"
    x="572.8"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1161_2_"
    x="568.1"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1163_3_"
    x="583.5"
    id="Camada_4_16_">
                                                <g
    id="g1229_4_">
-                                                       
+
                                                                <rect
    id="rect1137_3_"
    x="243.9"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1139_3_"
    x="254.7"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1141_3_"
    x="195.4"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1145_3_"
    x="184.4"
    id="polygon1153_3_"
    class="st1"
    points="274.2,-430.6 280,-424.8 263.3,-408 251.7,-408        " />
-                                                       
+
                                                                <rect
    id="rect1155_3_"
    x="157.4"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1157_3_"
    x="281.8"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1159_2_"
    x="308"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1161_1_"
    x="277.1"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1163_2_"
    x="292.5"
    id="polygon1169_2_"
    class="st1"
    points="371.2,-275.7 377.8,-283.8 371.3,-288.9 364.8,-280.9         " />
-                                                               
+
                                                                        <rect
    id="rect1171_2_"
    x="400.3"
    class="st1"
    points="394.8,-317.9 388.1,-309.6 394.4,-304.5 401.1,-312.7         " />
                                                        </g>
-                                                       
+
                                                                <rect
    id="rect1181_4_"
    x="337.7"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1183_4_"
    x="337.8"
    id="Camada_4_15_">
                                                <g
    id="g1229_3_">
-                                                       
+
                                                                <rect
    id="rect1159_1_"
    x="16.9"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1163_1_"
    x="1.5"
    id="polygon1169_1_"
    class="st1"
    points="80.1,-275.7 86.7,-283.8 80.3,-288.9 73.8,-280.9         " />
-                                                               
+
                                                                        <rect
    id="rect1171_1_"
    x="109.3"
    class="st1"
    points="103.8,-317.9 97,-309.6 103.4,-304.5 110.1,-312.7         " />
                                                        </g>
-                                                       
+
                                                                <rect
    id="rect1181_3_"
    x="46.7"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1183_3_"
    x="46.7"
    id="Camada_4_11_">
                                                <g
    id="g1229_2_">
-                                                       
+
                                                                <rect
    id="rect1137_2_"
    x="389.4"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1139_2_"
    x="400.2"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1141_2_"
    x="340.9"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1145_2_"
    x="330"
    id="polygon1153_2_"
    class="st1"
    points="419.7,-158 425.5,-152.2 408.8,-135.4 397.2,-135.4        " />
-                                                       
+
                                                                <rect
    id="rect1155_2_"
    x="302.9"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1157_2_"
    x="427.3"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1181_2_"
    x="483.2"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1183_2_"
    x="483.3"
    id="Camada_4_1_">
                                                <g
    id="g1229_1_">
-                                                       
+
                                                                <rect
    id="rect1137_1_"
    x="98.4"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1139_1_"
    x="109.2"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1141_1_"
    x="49.9"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1145_1_"
    x="38.9"
    id="polygon1153_1_"
    class="st1"
    points="128.7,-158 134.5,-152.2 117.8,-135.4 106.2,-135.4        " />
-                                                       
+
                                                                <rect
    id="rect1155_1_"
    x="11.9"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1157_1_"
    x="136.3"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1181_1_"
    x="192.2"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1183_1_"
    x="192.2"
index 9dcbc53860673be65350d4c2cfeb2b492a033928..5bd130e6bac363ad91c22aa9b479779e41560cc2 100644 (file)
@@ -1014,7 +1014,7 @@ JSONPPolling.prototype.doPoll = function () {
   this.script = script;
 
   var isUAgecko = 'undefined' != typeof navigator && /gecko/i.test(navigator.userAgent);
-  
+
   if (isUAgecko) {
     setTimeout(function () {
       var iframe = document.createElement('iframe');
index ab76d3a76719287a317b694d276be1b1cd0b2fa5..8ef5770a9eaef4a9de2c6479746ed6b133739393 100644 (file)
@@ -915,7 +915,7 @@ $.widget("ui.mouse", {
                        .bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
 
                event.preventDefault();
-               
+
                mouseHandled = true;
                return true;
        },
@@ -1545,7 +1545,7 @@ $.widget("ui.draggable", $.ui.mouse, {
                this.handle = this._getHandle(event);
                if (!this.handle)
                        return false;
-               
+
                $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
                        $('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')
                        .css({
@@ -1629,12 +1629,12 @@ $.widget("ui.draggable", $.ui.mouse, {
                if ($.ui.ddmanager && !o.dropBehaviour)
                        $.ui.ddmanager.prepareOffsets(this, event);
 
-               
+
                this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
-               
+
                //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)
                if ( $.ui.ddmanager ) $.ui.ddmanager.dragStart(this, event);
-               
+
                return true;
        },
 
@@ -1673,7 +1673,7 @@ $.widget("ui.draggable", $.ui.mouse, {
                        dropped = this.dropped;
                        this.dropped = false;
                }
-               
+
                //if the original element is no longer in the DOM don't bother to continue (see #8269)
                var element = this.element[0], elementInDom = false;
                while ( element && (element = element.parentNode) ) {
@@ -1699,29 +1699,29 @@ $.widget("ui.draggable", $.ui.mouse, {
 
                return false;
        },
-       
+
        _mouseUp: function(event) {
                //Remove frame helpers
-               $("div.ui-draggable-iframeFix").each(function() { 
-                       this.parentNode.removeChild(this); 
+               $("div.ui-draggable-iframeFix").each(function() {
+                       this.parentNode.removeChild(this);
                });
-               
+
                //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)
                if( $.ui.ddmanager ) $.ui.ddmanager.dragStop(this, event);
-               
+
                return $.ui.mouse.prototype._mouseUp.call(this, event);
        },
-       
+
        cancel: function() {
-               
+
                if(this.helper.is(".ui-draggable-dragging")) {
                        this._mouseUp({});
                } else {
                        this._clear();
                }
-               
+
                return this;
-               
+
        },
 
        _getHandle: function(event) {
@@ -2042,12 +2042,12 @@ $.ui.plugin.add("draggable", "connectToSortable", {
                };
 
                $.each(inst.sortables, function(i) {
-                       
+
                        //Copy over some variables to allow calling the sortable's native _intersectsWith
                        this.instance.positionAbs = inst.positionAbs;
                        this.instance.helperProportions = inst.helperProportions;
                        this.instance.offset.click = inst.offset.click;
-                       
+
                        if(this.instance._intersectsWith(this.instance.containerCache)) {
 
                                //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once
@@ -2090,13 +2090,13 @@ $.ui.plugin.add("draggable", "connectToSortable", {
 
                                        this.instance.isOver = 0;
                                        this.instance.cancelHelperRemoval = true;
-                                       
+
                                        //Prevent reverting on this forced stop
                                        this.instance.options.revert = false;
-                                       
+
                                        // The out event needs to be triggered independently
                                        this.instance._trigger('out', event, this.instance._uiHash(this.instance));
-                                       
+
                                        this.instance._mouseStop(event, true);
                                        this.instance.options.helper = this.instance.options._helper;
 
@@ -2266,7 +2266,7 @@ $.ui.plugin.add("draggable", "stack", {
                        return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);
                });
                if (!group.length) { return; }
-               
+
                var min = parseInt(group[0].style.zIndex) || 0;
                $(group).each(function(i) {
                        this.style.zIndex = min + i;
@@ -3130,7 +3130,7 @@ $.ui.plugin.add("resizable", "alsoResize", {
 
                _alsoResize = function (exp, c) {
                        $(exp).each(function() {
-                               var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, 
+                               var el = $(this), start = $(this).data("resizable-alsoresize"), style = {},
                                        css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left'];
 
                                $.each(css, function (i, prop) {
@@ -6488,7 +6488,7 @@ function Datepicker() {
 $.extend(Datepicker.prototype, {
        /* Class name added to elements to indicate already configured with a date picker. */
        markerClassName: 'hasDatepicker',
-       
+
        //Keep track of the maximum number of rows displayed (see #7043)
        maxRows: 4,
 
@@ -6497,7 +6497,7 @@ $.extend(Datepicker.prototype, {
                if (this.debug)
                        console.log.apply('', arguments);
        },
-       
+
        // TODO rename to "widget" when switching to widget factory
        _widgetDatepicker: function() {
                return this.dpDiv;
@@ -6607,7 +6607,7 @@ $.extend(Datepicker.prototype, {
                                if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
                                        $.datepicker._hideDatepicker();
                                else if ($.datepicker._datepickerShowing && $.datepicker._lastInput != input[0]) {
-                                       $.datepicker._hideDatepicker(); 
+                                       $.datepicker._hideDatepicker();
                                        $.datepicker._showDatepicker(input[0]);
                                } else
                                        $.datepicker._showDatepicker(input[0]);
@@ -6903,7 +6903,7 @@ $.extend(Datepicker.prototype, {
                                case 9: $.datepicker._hideDatepicker();
                                                handled = false;
                                                break; // hide on tab out
-                               case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + 
+                               case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' +
                                                                        $.datepicker._currentClass + ')', inst.dpDiv);
                                                if (sel[0])
                                                        $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
@@ -7001,7 +7001,7 @@ $.extend(Datepicker.prototype, {
        },
 
        /* Pop-up the date picker for a given input field.
-          If false returned from beforeShow event handler do not show. 
+          If false returned from beforeShow event handler do not show.
           @param  input  element - the input field attached to the date picker or
                          event - if triggered by focus */
        _showDatepicker: function(input) {
@@ -7105,7 +7105,7 @@ $.extend(Datepicker.prototype, {
                                // this breaks the change event in IE
                                inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement)
                        inst.input.focus();
-               // deffered render of the years select (to avoid flashes on Firefox) 
+               // deffered render of the years select (to avoid flashes on Firefox)
                if( inst.yearshtml ){
                        var origyearshtml = inst.yearshtml;
                        setTimeout(function(){
@@ -7814,7 +7814,7 @@ $.extend(Datepicker.prototype, {
                        $(this).bind(this.getAttribute('data-event'), handler[this.getAttribute('data-handler')]);
                });
        },
-       
+
        /* Generate the HTML for the current state of the date picker. */
        _generateHTML: function(inst) {
                var today = new Date();
@@ -7971,7 +7971,7 @@ $.extend(Datepicker.prototype, {
                                        drawMonth = 0;
                                        drawYear++;
                                }
-                               calender += '</tbody></table>' + (isMultiMonth ? '</div>' + 
+                               calender += '</tbody></table>' + (isMultiMonth ? '</div>' +
                                                        ((numMonths[0] > 0 && col == numMonths[1]-1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
                                group += calender;
                        }
@@ -8035,7 +8035,7 @@ $.extend(Datepicker.prototype, {
                                                '>' + year + '</option>';
                                }
                                inst.yearshtml += '</select>';
-                               
+
                                html += inst.yearshtml;
                                inst.yearshtml = null;
                        }
@@ -8146,7 +8146,7 @@ $.extend(Datepicker.prototype, {
  * Bind hover events for datepicker elements.
  * Done via delegate so the binding only occurs once in the lifetime of the parent div.
  * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
- */ 
+ */
 function bindHover(dpDiv) {
        var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';
        return dpDiv.delegate(selector, 'mouseout', function() {
@@ -8178,12 +8178,12 @@ function extendRemove(target, props) {
                        Object - settings for attaching new datepicker functionality
    @return  jQuery object */
 $.fn.datepicker = function(options){
-       
+
        /* Verify an empty collection wasn't passed - Fixes #6976 */
        if ( !this.length ) {
                return this;
        }
-       
+
        /* Initialise the date picker. */
        if (!$.datepicker.initialized) {
                $(document).mousedown($.datepicker._checkExternalClick).
@@ -14211,7 +14211,7 @@ $.effects.effect.highlight = function( o, done ) {
        }
 
        $.effects.save( elem, props );
-       
+
        elem
                .show()
                .css({
index 31de7b0d51444ca9ce3a50d71892845f2d88ce57..3603058bcb76086a847f5726846af1a4399bac24 100644 (file)
@@ -1,17 +1,17 @@
 /*!
  * jQuery Feeds v0.5
  * https://camagu.github.com/jquery-feeds
- * 
+ *
  * Copyright (c) 2013, Camilo Aguilar
  * Dual licensed under the MIT and GPL licenses:
  *     http://www.opensource.org/licenses/mit-license.php
  *     http://www.gnu.org/licenses/gpl.html
- * 
+ *
  * Includes a modified version of Simple JavaScript Templating
  * http://ejohn.org/blog/javascript-micro-templating/
  * Copyright (c) John Resig (http://ejohn.org)
  * MIT licensed
- * 
+ *
  * Date: 2013-02-18
  */
 
index 305f66b2d839887a6bc837ac1b56aa71c3dbc342..276cdeeb80efee20e375bcbb1fcd00bb82e62b74 100644 (file)
@@ -1,17 +1,17 @@
 /*!
  * jQuery Feeds v0.5
  * https://camagu.github.com/jquery-feeds
- * 
+ *
  * Copyright (c) 2013, Camilo Aguilar
  * Dual licensed under the MIT and GPL licenses:
  *     http://www.opensource.org/licenses/mit-license.php
  *     http://www.gnu.org/licenses/gpl.html
- * 
+ *
  * Includes a modified version of Simple JavaScript Templating
  * http://ejohn.org/blog/javascript-micro-templating/
  * Copyright (c) John Resig (http://ejohn.org)
  * MIT licensed
- * 
+ *
  * Date: 2013-02-18
  */
 (function(e){var t={};e.fn.feeds=function(n){var r={service:"//ajax.googleapis.com/ajax/services/feed/load?v=1.0",settings:{loadingTemplate:'<div class="feeds-loader">Loading entries ...</div>',entryTemplate:'<div class="feeds-entry feeds-source-<!=source!>"><a class="feeds-entry-title" target="_blank" href="<!=link!>" title="<!=title!>"><!=title!></a><div class="feeds-entry-date"><!=publishedDate!></div><div class="feeds-entry-contentSnippet"><!=contentSnippet!></div></div>',feeds:{},max:-1,xml:!1,ssl:"auto",onComplete:function(e){},preprocess:function(e){}},feeds:{},entries:[],feedsLength:0,feedsLoaded:0,$element:null,$loader:null,init:function(t,n){this.settings=e.extend(this.settings,n),this.feeds=this.settings.feeds;for(var r in this.feeds)this.feeds.hasOwnProperty(r)&&this.feedsLength++;var i=this.settings.ssl==="auto"?document.location.protocol:this.settings.ssl?"https:":"http:";e.inArray(i,["http:","https"])===-1&&(i="https:"),this.service=i+this.service,this.$element=e(t);var s=typeof this.settings.loadingTemplate=="function"?this.settings.loadingTemplate:this.tmpl(this.settings.loadingTemplate);this.$loader=e(s.call(this,{})),this.$element.html(this.$loader);var o=this.settings.xml?"json_xml":"json";for(var u in this.feeds)this.fetchFeed(u,this.feeds[u],this.settings.max,o)},fetchFeed:function(n,r,i,s){var o=this,u=r+"**"+i+"**"+s;if(typeof t[u]!="undefined"){o.processResponse(t[u],n,r);return}e.ajax({url:this.service,dataType:"jsonp",data:{q:r,num:i,output:s},beforeSend:function(){this.feed=r,this.key=n},success:function(e){t[u]=e,o.processResponse(e,this.key,this.feed)}})},processResponse:function(t,n,r){if(t.responseStatus!==200)window.console&&window.console.log&&console.log("Unable to load feed "+r+": ("+t.responseStatus+") "+t.responseDetails);else{var i=t.responseData.feed,s=i.entries,o=t.responseData.feed.type;if(this.settings.xml){var u=e(t.responseData.xmlString);o.match(/^rss.*/)?u=u.filter("rss").find("channel"):o.match(/^atom.*/)&&(u=u.filter("feed")),i.xml=u}for(var a in s){var f=e.extend({},s[a]);f.source=n,f.publishedDateRaw=f.publishedDate,f.feedUrl=i.feedUrl,f.feedTitle=i.title,f.feedLink=i.link,f.feedDescription=i.description,f.feedAuthor=i.author,this.settings.xml&&(o.match(/^rss.*/)?f.xml=i.xml.find("item").eq(a):o.match(/^atom.*/)?f.xml=i.xml.find("entry").eq(a):f.xml={}),this.settings.preprocess.call(f,i)!==!1&&this.entries.push(f)}}this.feedsLoaded++,this.checkComplete()},checkComplete:function(){if(this.feedsLoaded===this.feedsLength){this.$loader.remove(),this.entries.sort(function(e,t){var n=(new Date(e.publishedDateRaw)).getTime(),r=(new Date(t.publishedDateRaw)).getTime();return r-n});var e=typeof this.settings.entryTemplate=="function"?this.settings.entryTemplate:this.tmpl(this.settings.entryTemplate);for(var t in this.entries){var n=this.entries[t],r=e.call(this,n);this.$element.append(r)}this.settings.onComplete.call(this.$element[0],this.entries)}},tmplCache:{},tmpl:function(t,n){var r=/\W/.test(t)?new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+t.replace(/[\r\t\n]/g," ").split("<!").join(" ").replace(/((^|!>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)!>/g,"',typeof $1 != 'undefined' ? $1 : '','").split("   ").join("');").split("!>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');"):this.tmplCache[t]=this.tmplCache[t]||this.tmpl(document.getElementById(t).innerHTML);return n?r(n):r}};return e(this).each(function(){r.init(this,n)})}})(jQuery);
\ No newline at end of file
index a094a70d01bdf8d31a8627a733321d4616440583..311a57b10d035f9ac5f3f0962a25bfbd2efe6ef9 100644 (file)
@@ -37,7 +37,7 @@
                        target: '#output'
                });
        });
-       
+
        You can also use ajaxForm with delegation (requires jQuery v1.7+), so the
        form does not have to exist when you invoke ajaxForm:
 
@@ -45,7 +45,7 @@
                delegation: true,
                target: '#output'
        });
-       
+
        When using ajaxForm, the ajaxSubmit function will be invoked for you
        at the appropriate time.
 */
@@ -69,7 +69,7 @@ $.fn.ajaxSubmit = function(options) {
                log('ajaxSubmit: skipping submit process - no element selected');
                return this;
        }
-       
+
        var method, action, url, $form = this;
 
        if (typeof options == 'function') {
@@ -111,7 +111,7 @@ $.fn.ajaxSubmit = function(options) {
        if ( traditional === undefined ) {
                traditional = $.ajaxSettings.traditional;
        }
-       
+
     var elements = [];
     var qx, a = this.formToArray(options.semantic, elements);
        if (options.data) {
@@ -135,7 +135,7 @@ $.fn.ajaxSubmit = function(options) {
        var q = $.param(a, traditional);
        if (qx) {
                q = ( q ? (q + '&' + qx) : qx );
-       }       
+       }
        if (options.type.toUpperCase() == 'GET') {
                options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
                options.data = null;  // data is null for 'get'
@@ -165,7 +165,7 @@ $.fn.ajaxSubmit = function(options) {
        }
 
        options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
-        var context = options.context || this ;    // jQuery 1.4+ supports scope context 
+        var context = options.context || this ;    // jQuery 1.4+ supports scope context
                for (var i=0, max=callbacks.length; i < max; i++) {
                        callbacks[i].apply(context, [data, status, xhr || $form, $form]);
                }
@@ -175,7 +175,7 @@ $.fn.ajaxSubmit = function(options) {
 
     // [value] (issue #113), also see comment:
     // https://github.com/malsup/form/commit/588306aedba1de01388032d5f42a60159eea9228#commitcomment-2180219
-    var fileInputs = $('input[type=file]:enabled[value!=""]', this); 
+    var fileInputs = $('input[type=file]:enabled[value!=""]', this);
 
        var hasFileInputs = fileInputs.length > 0;
        var mp = 'multipart/form-data';
@@ -299,7 +299,7 @@ $.fn.ajaxSubmit = function(options) {
             deferred.reject();
             return deferred;
         }
-        
+
                if (a) {
                                // ensure that every serialized input is still enabled
             for (i=0; i < elements.length; i++) {
@@ -347,7 +347,7 @@ $.fn.ajaxSubmit = function(options) {
                 if (io.contentWindow.document.execCommand) {
                         io.contentWindow.document.execCommand('Stop');
                 }
-                } 
+                }
                 catch(ignore) {}
 
                                $io.attr('src', s.iframeSrc); // abort op in progress
@@ -395,7 +395,7 @@ $.fn.ajaxSubmit = function(options) {
                                }
                        }
                }
-               
+
                var CLIENT_TIMEOUT_ABORT = 1;
                var SERVER_ABORT = 2;
 
@@ -403,7 +403,7 @@ $.fn.ajaxSubmit = function(options) {
                        var doc = frame.contentWindow ? frame.contentWindow.document : frame.contentDocument ? frame.contentDocument : frame.document;
                        return doc;
                }
-               
+
                // Rails CSRF hack (thanks to Yvan Barthelemy)
                var csrf_token = $('meta[name=csrf-token]').attr('content');
                var csrf_param = $('meta[name=csrf-param]').attr('content');
@@ -438,7 +438,7 @@ $.fn.ajaxSubmit = function(options) {
                        if (s.timeout) {
                                timeoutHandle = setTimeout(function() { timedOut = true; cb(CLIENT_TIMEOUT_ABORT); }, s.timeout);
                        }
-                       
+
                        // look for server aborts
                        function checkState() {
                                try {
@@ -537,7 +537,7 @@ $.fn.ajaxSubmit = function(options) {
                        }
             if (io.detachEvent)
                 io.detachEvent('onload', cb);
-            else    
+            else
                 io.removeEventListener('load', cb, false);
 
                        var status = 'success', errMsg;
@@ -593,7 +593,7 @@ $.fn.ajaxSubmit = function(options) {
                                                var pre = doc.getElementsByTagName('pre')[0];
                                                var b = doc.getElementsByTagName('body')[0];
                                                if (pre) {
-                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;  
+                            xhr.responseText = pre.innerHTML ? pre.innerHTML : pre.textContent;
                                                }
                                                else if (b) {
                           xhr.responseText = b.innerHTML ? b.innerHTML : b.textContent;
@@ -716,7 +716,7 @@ $.fn.ajaxSubmit = function(options) {
 $.fn.ajaxForm = function(options) {
        options = options || {};
        options.delegation = options.delegation && $.isFunction($.fn.on);
-       
+
        // in jQuery 1.3+ we can fix mistakes with the ready state
        if (!options.delegation && this.length === 0) {
                var o = { s: this.selector, c: this.context };
@@ -746,7 +746,7 @@ $.fn.ajaxForm = function(options) {
                .bind('click.form-plugin', options, captureSubmittingElement);
 };
 
-// private event handlers      
+// private event handlers
 function doAjaxSubmit(e) {
     /*jshint validthis:true */
        var options = e.data;
@@ -755,7 +755,7 @@ function doAjaxSubmit(e) {
                $(this).ajaxSubmit(options);
        }
 }
-       
+
 function captureSubmittingElement(e) {
     /*jshint validthis:true */
        var target = e.target;
@@ -835,14 +835,14 @@ $.fn.formToArray = function(semantic, elements) {
 
                v = $.fieldValue(el, true);
                if (v && v.constructor == Array) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
                        for(j=0, jmax=v.length; j < jmax; j++) {
                                a.push({name: n, value: v[j]});
                        }
                }
         else if (feature.fileapi && el.type == 'file' && !el.disabled) {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             var files = el.files;
             if (files.length) {
@@ -856,7 +856,7 @@ $.fn.formToArray = function(semantic, elements) {
             }
         }
                else if (v !== null && typeof v != 'undefined') {
-            if (elements) 
+            if (elements)
                 elements.push(el);
             a.push({name: n, value: v, type: el.type, required: el.required});
                }
@@ -1106,7 +1106,7 @@ $.fn.ajaxSubmit.debug = false;
 
 // helper fn for console logging
 function log() {
-       if (!$.fn.ajaxSubmit.debug) 
+       if (!$.fn.ajaxSubmit.debug)
                return;
        var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
        if (window.console && window.console.log) {
index 29082ca9647b864d3f0f254fa25a6a6bcc22b232..bcb4a27b7a532c4bcd6bb910a1010776fb97ce1a 100644 (file)
@@ -119,7 +119,7 @@ var m = (function app(window, undefined) {
                                        i-- //check current index again and flatten until there are no more nested arrays at that index
                                }
                        }
-                       
+
                        var nodes = [], intact = cached.length === data.length, subArrayCount = 0;
 
                        //keys algorithm: sort elements without recreating them if keys are present
@@ -138,7 +138,7 @@ var m = (function app(window, undefined) {
                        }
                        if (shouldMaintainIdentities) {
                                if (data.indexOf(null) > -1) data = data.filter(function(x) {return x != null})
-                               
+
                                var keysDiffer = false
                                if (data.length != cached.length) keysDiffer = true
                                else for (var i = 0, cachedCell, dataCell; cachedCell = cached[i], dataCell = data[i]; i++) {
@@ -147,7 +147,7 @@ var m = (function app(window, undefined) {
                                                break
                                        }
                                }
-                               
+
                                if (keysDiffer) {
                                        for (var i = 0, len = data.length; i < len; i++) {
                                                if (data[i] && data[i].attrs) {
@@ -216,7 +216,7 @@ var m = (function app(window, undefined) {
                        }
                        if (!intact) {
                                //diff the array itself
-                               
+
                                //update the list of DOM nodes by collecting the nodes from each item
                                for (var i = 0, len = data.length; i < len; i++) {
                                        if (cached[i] != null) nodes.push.apply(nodes, cached[i].nodes)
@@ -699,7 +699,7 @@ var m = (function app(window, undefined) {
                }
                return str.join("&")
        }
-       
+
        function parseQueryString(str) {
                var pairs = str.split("&"), params = {};
                for (var i = 0, len = pairs.length; i < len; i++) {
index d48daafdea6ce07d5d495a18172b7bb1bf8e7328..d3115512a757e489d0c0fe8cfad0f9f2dc099e4c 100644 (file)
@@ -2,7 +2,7 @@
     /**
      * Your Twitter App Info
      */
-    
+
     // Consumer Key
     define('CONSUMER_KEY', 'yxmC3rFOrr1xRGbCo3J6QNkKW');
     define('CONSUMER_SECRET', 'rqI9V5lPttEhNeOwBl14Jn6ryCU5MRBJQ5J6j8OEgaXwekeZM2');
@@ -10,7 +10,7 @@
     // User Access Token
     define('ACCESS_TOKEN', '2972347515-LCsxZafDTPd8hPCpWfewRVCEqgkHysKqB97x1bc');
     define('ACCESS_SECRET', 'Od3GSWu8iVW6x03YfTtDXVY48ewB315FkSrb3HQgi8Tx7');
-       
+
        // Cache Settings
        define('CACHE_ENABLED', false);
        define('CACHE_LIFETIME', 3600); // in seconds
index d02b7aebae3fd08d189f7127946fb47390815665..67800781e666ce3e22934dcc6a2852f61e77e785 100644 (file)
@@ -12,7 +12,7 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     // Check if keys are in place
     if (CONSUMER_KEY === '' || CONSUMER_SECRET === '' || CONSUMER_KEY === 'CONSUMER_KEY_HERE' || CONSUMER_SECRET === 'CONSUMER_SECRET_HERE') {
         echo 'You need a consumer key and secret keys. Get one from <a href="https://dev.twitter.com/apps">dev.twitter.com/apps</a>';
-      
+
         exit;
     }
 
@@ -22,13 +22,13 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     $exclude_replies = filter_input(INPUT_GET, 'exclude_replies', FILTER_SANITIZE_SPECIAL_CHARS);
     $list_slug = filter_input(INPUT_GET, 'list_slug', FILTER_SANITIZE_SPECIAL_CHARS);
     $hashtag = filter_input(INPUT_GET, 'hashtag', FILTER_SANITIZE_SPECIAL_CHARS);
-    
+
        if(CACHE_ENABLED) {
         // Generate cache key from query data
         $cache_key = md5(
             var_export(array($username, $number, $exclude_replies, $list_slug, $hashtag), true) . HASH_SALT
         );
-    
+
         // Remove old files from cache dir
         $cache_path  = dirname(__FILE__) . '/cache/';
         foreach (glob($cache_path . '*') as $file) {
@@ -36,16 +36,16 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
                 unlink($file);
             }
         }
-    
+
         // If cache file exists - return it
         if(file_exists($cache_path . $cache_key)) {
             header('Content-Type: application/json');
-    
+
             echo file_get_contents($cache_path . $cache_key);
             exit;
         }
     }
-       
+
     /**
      * Gets connection with user Twitter account
      * @param  String $cons_key     Consumer Key
@@ -57,13 +57,13 @@ require_once($abs_path . '/2015/assets/js/tweetie/api/config.php'); // Path to c
     function getConnectionWithToken($cons_key, $cons_secret, $oauth_token, $oauth_secret)
     {
         $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_secret);
-      
+
         return $connection;
     }
-    
+
     // Connect
     $connection = getConnectionWithToken(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_SECRET);
-    
+
     // Get Tweets
     if (!empty($list_slug)) {
       $params = array(
index 4570013b80f59fc225aa9b4b695b873198143587..d31451ac61f694f058df6309b2107bcc10c8e6a0 100644 (file)
@@ -92,9 +92,9 @@ abstract class OAuthSignatureMethod {
 }
 
 /**
- * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104] 
- * where the Signature Base String is the text and the key is the concatenated values (each first 
- * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&' 
+ * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104]
+ * where the Signature Base String is the text and the key is the concatenated values (each first
+ * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&'
  * character (ASCII code 38) even if empty.
  *   - Chapter 9.2 ("HMAC-SHA1")
  */
@@ -120,7 +120,7 @@ class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod {
 }
 
 /**
- * The PLAINTEXT method does not provide any security protection and SHOULD only be used 
+ * The PLAINTEXT method does not provide any security protection and SHOULD only be used
  * over a secure channel such as HTTPS. It does not use the Signature Base String.
  *   - Chapter 9.4 ("PLAINTEXT")
  */
@@ -130,8 +130,8 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
   }
 
   /**
-   * oauth_signature is set to the concatenated encoded values of the Consumer Secret and 
-   * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is 
+   * oauth_signature is set to the concatenated encoded values of the Consumer Secret and
+   * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is
    * empty. The result MUST be encoded again.
    *   - Chapter 9.4.1 ("Generating Signatures")
    *
@@ -153,10 +153,10 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
 }
 
 /**
- * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in 
- * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for 
- * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a 
- * verified way to the Service Provider, in a manner which is beyond the scope of this 
+ * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in
+ * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for
+ * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a
+ * verified way to the Service Provider, in a manner which is beyond the scope of this
  * specification.
  *   - Chapter 9.3 ("RSA-SHA1")
  */
@@ -558,7 +558,7 @@ class OAuthServer {
   private function get_version(&$request) {
     $version = $request->get_parameter("oauth_version");
     if (!$version) {
-      // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present. 
+      // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present.
       // Chapter 7.0 ("Accessing Protected Ressources")
       $version = '1.0';
     }
@@ -658,7 +658,7 @@ class OAuthServer {
       throw new OAuthException(
         'Missing timestamp parameter. The parameter is required'
       );
-    
+
     // verify that timestamp is recentish
     $now = time();
     if (abs($now - $timestamp) > $this->timestamp_threshold) {
index 7ed5ef98a738a54ac1696b545e065ff0e580b727..68c99fe9767b6fc1609170791aa36ecd35641359 100644 (file)
@@ -29,7 +29,7 @@ class TwitterOAuth {
   /* Set timeout default. */
   public $timeout = 30;
   /* Set connect timeout. */
-  public $connecttimeout = 30; 
+  public $connecttimeout = 30;
   /* Verify SSL Cert. */
   public $ssl_verifypeer = FALSE;
   /* Respons format. */
@@ -81,7 +81,7 @@ class TwitterOAuth {
    */
   function getRequestToken($oauth_callback) {
     $parameters = array();
-    $parameters['oauth_callback'] = $oauth_callback; 
+    $parameters['oauth_callback'] = $oauth_callback;
     $request = $this->oAuthRequest($this->requestTokenURL(), 'GET', $parameters);
     $token = OAuthUtil::parse_parameters($request);
     $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
@@ -130,7 +130,7 @@ class TwitterOAuth {
    *                "user_id" => "9436992",
    *                "screen_name" => "abraham",
    *                "x_auth_expires" => "0")
-   */  
+   */
   function getXAuthToken($username, $password) {
     $parameters = array();
     $parameters['x_auth_username'] = $username;
@@ -152,7 +152,7 @@ class TwitterOAuth {
     }
     return $response;
   }
-  
+
   /**
    * POST wrapper for oAuthRequest.
    */
index 463f3f58467f9ec14a533a7f6de39ae5b95c3f40..d3a843689293cf6f5764df2fa495150b38ded6ef 100644 (file)
@@ -92,7 +92,7 @@
    id="Camada_4_19_">
                                                <g
    id="g1229_11_">
-                                                       
+
                                                                <rect
    id="rect1159_4_"
    x="453.4"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1161_6_"
    x="422.6"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1163_6_"
    x="438"
    id="polygon1169_4_"
    class="st1"
    points="516.7,-548.3 523.3,-556.4 516.8,-561.5 510.3,-553.5         " />
-                                                               
+
                                                                        <rect
    id="rect1171_4_"
    x="545.8"
    id="Camada_4_18_">
                                                <g
    id="g1229_10_">
-                                                       
+
                                                                <rect
    id="rect1159_3_"
    x="162.4"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1161_3_"
    x="131.6"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1163_4_"
    x="147"
    id="polygon1169_3_"
    class="st1"
    points="225.6,-548.3 232.2,-556.4 225.8,-561.5 219.3,-553.5         " />
-                                                               
+
                                                                        <rect
    id="rect1171_3_"
    x="254.8"
    id="Camada_4_17_">
                                                <g
    id="g1229_6_">
-                                                       
+
                                                                <rect
    id="rect1137_6_"
    x="534.9"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1139_6_"
    x="545.7"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1141_6_"
    x="486.4"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1145_6_"
    x="475.5"
    id="polygon1153_6_"
    class="st1"
    points="565.2,-430.6 571,-424.8 554.3,-408 542.7,-408        " />
-                                                       
+
                                                                <rect
    id="rect1155_6_"
    x="448.4"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1157_6_"
    x="572.8"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1161_2_"
    x="568.1"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1163_3_"
    x="583.5"
    id="Camada_4_16_">
                                                <g
    id="g1229_4_">
-                                                       
+
                                                                <rect
    id="rect1137_3_"
    x="243.9"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1139_3_"
    x="254.7"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1141_3_"
    x="195.4"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1145_3_"
    x="184.4"
    id="polygon1153_3_"
    class="st1"
    points="274.2,-430.6 280,-424.8 263.3,-408 251.7,-408        " />
-                                                       
+
                                                                <rect
    id="rect1155_3_"
    x="157.4"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1157_3_"
    x="281.8"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1159_2_"
    x="308"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1161_1_"
    x="277.1"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1163_2_"
    x="292.5"
    id="polygon1169_2_"
    class="st1"
    points="371.2,-275.7 377.8,-283.8 371.3,-288.9 364.8,-280.9         " />
-                                                               
+
                                                                        <rect
    id="rect1171_2_"
    x="400.3"
    class="st1"
    points="394.8,-317.9 388.1,-309.6 394.4,-304.5 401.1,-312.7         " />
                                                        </g>
-                                                       
+
                                                                <rect
    id="rect1181_4_"
    x="337.7"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1183_4_"
    x="337.8"
    id="Camada_4_15_">
                                                <g
    id="g1229_3_">
-                                                       
+
                                                                <rect
    id="rect1159_1_"
    x="16.9"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1163_1_"
    x="1.5"
    id="polygon1169_1_"
    class="st1"
    points="80.1,-275.7 86.7,-283.8 80.3,-288.9 73.8,-280.9         " />
-                                                               
+
                                                                        <rect
    id="rect1171_1_"
    x="109.3"
    class="st1"
    points="103.8,-317.9 97,-309.6 103.4,-304.5 110.1,-312.7         " />
                                                        </g>
-                                                       
+
                                                                <rect
    id="rect1181_3_"
    x="46.7"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1183_3_"
    x="46.7"
    id="Camada_4_11_">
                                                <g
    id="g1229_2_">
-                                                       
+
                                                                <rect
    id="rect1137_2_"
    x="389.4"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1139_2_"
    x="400.2"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1141_2_"
    x="340.9"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1145_2_"
    x="330"
    id="polygon1153_2_"
    class="st1"
    points="419.7,-158 425.5,-152.2 408.8,-135.4 397.2,-135.4        " />
-                                                       
+
                                                                <rect
    id="rect1155_2_"
    x="302.9"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1157_2_"
    x="427.3"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1181_2_"
    x="483.2"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1183_2_"
    x="483.3"
    id="Camada_4_1_">
                                                <g
    id="g1229_1_">
-                                                       
+
                                                                <rect
    id="rect1137_1_"
    x="98.4"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1139_1_"
    x="109.2"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1141_1_"
    x="49.9"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1145_1_"
    x="38.9"
    id="polygon1153_1_"
    class="st1"
    points="128.7,-158 134.5,-152.2 117.8,-135.4 106.2,-135.4        " />
-                                                       
+
                                                                <rect
    id="rect1155_1_"
    x="11.9"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1157_1_"
    x="136.3"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1181_1_"
    x="192.2"
    class="st1"
    width="8.2"
    height="8.2" />
-                                                       
+
                                                                <rect
    id="rect1183_1_"
    x="192.2"
index c4dfaedd35dec2b29e56820f351952e033669b09..07d4b27e29d006ce233bdb619e5faaa3e633eaeb 100644 (file)
@@ -5,7 +5,7 @@
 <!--#include virtual="/2022/includes/banner.html"-->
 <!--#include virtual="/2022/includes/sidebar.html"-->
 
-##Please check for our confirmation email      
+##Please check for our confirmation email
 
 For your protection and to prevent spam, we don't process form
 submissions until you click the link in the confirmation email.
index d7790dceb39fd5bce1a62abb2fa0258eead6d51a..44db04b049ce1af7a10517b2bbb92c3f00b2cdaf 100644 (file)
@@ -5,10 +5,10 @@
 <!--#include virtual="/2022/includes/banner.html"-->
 <!--#include virtual="/2022/includes/sidebar.html"-->
 
-## Sorry, the feedback survey is now closed         
-    
+## Sorry, the feedback survey is now closed
+
 [Return to the home page](https://www.libreplanet.org/2022)
-    
+
 
 <!--#include virtual="/2022/includes/footer.html"-->
 <!--#include virtual="/2022/includes/common_js.html"-->
index 168bc4123cc01dcf893099d9e258de6e4dbd76e3..bb4b034f20e4631b6bf980630348edcb895cec11 100644 (file)
@@ -5,14 +5,14 @@
 <!--#include virtual="/2022/includes/banner.html"-->
 <!--#include virtual="/2022/includes/sidebar.html"-->
 
-## One more step! 
+## One more step!
 
 Thanks for filling out the survey. To process your answers, we
 need you to confirm your email address by clicking the link in
-the confirmation email we've just sent you.     
-    
+the confirmation email we've just sent you.
+
 **Please check your email now for the confirmation link.**
-    
+
 [Return to the homepage.](https://www.libreplanet.org/2022/)
 
 <!--#include virtual="/2022/includes/footer.html"-->
index 499164736f58f26fae19529ad0ad988252375b93..77b0991aa5bcd617b1384986ddca6c4682c9301a 100755 (executable)
 
 <p>LibrePlanet 2024 will be held at the <strong><a href="https://wit.edu/">Wentworth Institute of Technology (WIT)</a></strong> located at 550 Huntington Ave, Boston, MA 02115. The closest MBTA stop is the <a href="https://www.mbta.com/stops/place-mfa">Museum of Fine Arts stop</a> on the Green Line E branch. Another option is to take the orange line to <a href="https://www.mbta.com/stops/place-rugg">Ruggles</a>. From there it is a 9-minute walk to the WIT.</p>
 
-<h2 id="lodging">Where to stay</h2>  
+<h2 id="lodging">Where to stay</h2>
 
 <h3>Local hosts</h3>
 
-<p>Do you want to room with like-minded individuals? Do you want to host a LibrePlanet attendee or speaker? The <a href="https://libreplanet.org/wiki/LibrePlanet:Conference/2024/Accommodations">accommodations section on the LibrePlanet wiki</a> is your place to let others know.</p>   
+<p>Do you want to room with like-minded individuals? Do you want to host a LibrePlanet attendee or speaker? The <a href="https://libreplanet.org/wiki/LibrePlanet:Conference/2024/Accommodations">accommodations section on the LibrePlanet wiki</a> is your place to let others know.</p>
 
 <h3>Inns</h3>
 <p>Prices range from $$ (medium) to $$$ (pricey).</p>
 <ul>
-<li><a href="https://www.innatlongwood.com/">The Inn at Longwood Medical ($$)</a> - 342 Longwood Ave, Boston, MA 02115</li>  
+<li><a href="https://www.innatlongwood.com/">The Inn at Longwood Medical ($$)</a> - 342 Longwood Ave, Boston, MA 02115</li>
 <li><a href="https://www.marriott.com/en-us/hotels/bosfn-residence-inn-boston-back-bay-fenway/overview/">Residence Inn Boston Backbay/Fenway ($$$)</a> - 125 Brookline Ave, Boston, MA 02215</li>
 <li><a href="https://www.innatstbotolph.com/">The Inn At St Botolph ($$)</a> - 99 Saint Botolph Street, Boston, MA 02199</li>
 </ul>
 
-<h3>Hotels</h3> 
+<h3>Hotels</h3>
 <p>Prices range from $$ (medium) to $$$ (pricey).</p>
 <ul>
-<li><a href="https://www.theverbhotel.com/">The Verb Hotel ($$$)</a> - 1271 Boylston Street, Boston, MA 02215</li>  
+<li><a href="https://www.theverbhotel.com/">The Verb Hotel ($$$)</a> - 1271 Boylston Street, Boston, MA 02215</li>
 <li><a href="https://www.midtownhotel.com/">The Midtown Hotel ($$)</a> - 220, Huntington Avenue, Boston, MA 02115</li>
 <li><a href="https://www.colonnadehotel.com/">The Colonnade Hotel ($$$)</a> - 120 Huntington Avenue, Boston, MA 02116</li>
-<li><a href="https://www.hilton.com/en/hotels/bosbhhh-hilton-boston-back-bay/">Hilton Boston Backbay ($$$)</a> - 40 Dalton St, Boston, MA 02115</li>   
+<li><a href="https://www.hilton.com/en/hotels/bosbhhh-hilton-boston-back-bay/">Hilton Boston Backbay ($$$)</a> - 40 Dalton St, Boston, MA 02115</li>
 <li><a href="https://www.fourseasons.com/onedalton/">Four Seasons Hotel One Dalton ($$$)</a> - 1 Dalton Street, Boston, MA 02115</li>
 </ul>
 
       <em>Prices are approximate and may not be up to date.</em>
 
 
-      <h4>Parking at the WIT</h4> 
-      Parking at the venue is for free. Visitors should park  in the <a href="https://www.openstreetmap.org/way/589006707#map=19/42.33668/-71.09635">West Lot</a>.  
+      <h4>Parking at the WIT</h4>
+      Parking at the venue is for free. Visitors should park  in the <a href="https://www.openstreetmap.org/way/589006707#map=19/42.33668/-71.09635">West Lot</a>.
 
 
       <h4>Downtown/Near FSF office</h4>
       </ul>
 
       <h2 id="eating">Where to Eat</h2>
-      
+
       <h3>Fenway–Kenmore</h3>
-      
+
        <ol>
               <li><a href="https://locations.blazepizza.com/massachusetts/boston/">Blaze Pizza Boston Fenway ($$)</a> - 1282 Boylston Street, Boston, MA 02215 - vegan options</li>
       <li><a href="https://www.eljefestaqueria.com/">El Jefe's Taqueria ($$)</a> - 269 Huntington Ave, Boston, MA 02115 - tacos, burritos and bowls, vegetarian options.</li>
            <li><a href="https://www.solidgroundcafe.com/">Solid Ground Cafe</a> - 742 Huntington Ave, Boston, MA 02115 - locally owned cafe, breakfast, lunch.</li>
  </ol>
-      
+
            <h3>Mission Hill</h3>
-      
+
       <ol>
           <li><a href="https://www.eatatmilkweed.com/">Milkweed ($$$)</a> - 1508 Tremont Street, Boston, MA, 02120 - Breakfast, lunch, dinner, vegetarian and vegan options.</li>
           <li>Ali's Roti Restaurant ($$) - 1035 Tremont St, Boston, MA 02120 - Carribean, vegetarian and halal options.</li>
           <li><a href="https://lillysgourmetpasta.com/">Lilly's Gourmet Pasta Express ($$)</a> -1528 Tremont St, Boston, MA 02120 - Italian takeout.</li>
            <li><a href="https://www.mikesdonutsboston.com/">Mike's Donuts ($)</a> - 1524 Tremont St A, Boston, MA 02120 - Breakfast.</li>
       </ol>
-      
-     
+
+
 
       <!--#include virtual="/2024/includes/footer.html"-->
       <!--#include virtual="/2024/includes/common_js.html"-->
index d64cf7affeb4ffd5833257dac7cac0ca67f57cbf..ed2b330588db72a54d2455a976835a6bd25360d3 100644 (file)
   </div>
   <div class="panel-body">
       <p>
-      <a target="_blank" href="https://live.fsf.org/stream-room-jupiter-lowres.webm">LP Workshop</a> (480p)</br> 
+      <a target="_blank" href="https://live.fsf.org/stream-room-jupiter-lowres.webm">LP Workshop</a> (480p)</br>
          <!--
       <a target="_blank" href="https://live.fsf.org/stream-room-jupiter-lowres.webm">Jupiter</a> (480p)</br>
       <a target="_blank" href="https://live.fsf.org/stream-room-saturn-lowres.webm">Saturn</a> (480p)</br>
       <a target="_blank" href="https://live.fsf.org/stream-room-neptune-lowres.webm">Neptune</a> (480p)</br>
-            <a target="_blank" href="https://live.fsf.org/libreplanet-workshop-lowres.webm">LP Workshop</a> (480p)</br> 
+            <a target="_blank" href="https://live.fsf.org/libreplanet-workshop-lowres.webm">LP Workshop</a> (480p)</br>
           -->
       </p>
   </div>
index 00e85dc272abb0715dd0778e8ea03e4a5c787729..530093da60191cc2978cf76ca059e5d3790a0373 100755 (executable)
@@ -1,8 +1,8 @@
 <!-- <li class="fsf-donate"><a href="https://my.fsf.org/lp-call-for-sessions/"><strong>Submit a Session</strong></a></li> -->
 <!--<li class="fsf-donate"><a href="/2024/live/"><strong>Live</strong></a></li>-->
 <!--<li class="fsf-donate"><a href="https://play.libreadventure.fsf.org/"><strong>LibreAdventure</strong></a></li>-->
- <li class="fsf-donate"><a href="https://my.fsf.org/civicrm/event/info?reset=1&id=125">Register to the in-person event!</a></li> 
-  <li class="fsf-donate"><a href="https://my.fsf.org/civicrm/event/info?reset=1&id=126">Register to the online event!</a></li> 
+ <li class="fsf-donate"><a href="https://my.fsf.org/civicrm/event/info?reset=1&id=125">Register to the in-person event!</a></li>
+  <li class="fsf-donate"><a href="https://my.fsf.org/civicrm/event/info?reset=1&id=126">Register to the online event!</a></li>
 <li class="fsf-donate"><a href="https://media.libreplanet.org/u/libreplanet/tag/libreplanet-2023-video/">Watch the LibrePlanet 2023 Videos</a></li>
 <li><a href="/2024/program">Schedule</a></li>
 <li><a href="/2024/speakers">Bios & Talks</a></li>
index 67ffaa9a4a687ba2b5736316b764cb3f1c37c1f8..f9816974ae5fa3ce20df7e78902342e6b1156a4f 100755 (executable)
@@ -1,10 +1,10 @@
-<li><a href="/2024/getting-around">Lodging & Travel</a></li> 
-<li><a href="/2024/other-activities">Other Activities</a></li> 
+<li><a href="/2024/getting-around">Lodging & Travel</a></li>
+<li><a href="/2024/other-activities">Other Activities</a></li>
 <li><a href="/2024/covid-19-policy/">COVID-19 Policy</a></li>
 <li><a href="/2024/safe-space-policy/">Safe Space Policy</a></li>
 <li><a href="/2024/sponsors">Sponsors and Exhibitors</a></li>
 <!--<li><a href="/2024/volunteer/">Volunteer</a></li>-->
-<li><a href="https://lists.gnu.org/mailman/listinfo/libreplanet-discuss">Join the Discussion List</a></li> 
+<li><a href="https://lists.gnu.org/mailman/listinfo/libreplanet-discuss">Join the Discussion List</a></li>
 <!-- <li><a href="https://www.fsf.org/about/contact/">Contact Us</a></li> -->
 <!--<li><a href="https://www.fsf.org/blogs/community/free-software-awards-recognize-those-who-advance-our-freedom-by-october-28th">FSF Award Nomination</a></li>-->
 
index f5cc37a8ba9fb82df394d21ca343298a8e75af4c..6c154ed398bc326200bcf9bb14faa1bc759d6990 100755 (executable)
@@ -4,7 +4,7 @@
        <!-- <ul> -->
        <!--   <li></li> -->
        <!--  </ul> -->
-       
+
 </ul>
 
 <li><strong>03/27/2024</strong> <a href="https://www.fsf.org/news/alyssa-rosenzweig-who-spearheaded-the-reverse-engineering-of-apples-gpu-to-keynote-libreplanet">Alyssa Rosenzweig, who spearheaded the reverse-engineering of Apple's GPU, to keynote LibrePlanet</a></li>
@@ -33,5 +33,5 @@ LibrePlanet 2024: Cultivating Community will feature a keynote by David Wilson <
 <li><strong>09/06/2023</strong> <a href="https://www.fsf.org/blogs/community/call-for-sessions-for-libreplanet-2024-cultivating-community-now-open">Call for sessions for LibrePlanet 2024: Cultivating Community now open </a></li>
 
 <li><strong>04/18/2023</strong> <a href="https://www.fsf.org/blogs/community/watch-the-libreplanet-charting-the-course-videos-on-gnu-mediagoblin-and-peertube">Watch the LibrePlanet: Charting the Course videos on GNU MediaGoblin and PeerTube</a></li>
-</ul> 
+</ul>
 
index 22d81f18fa79e9645f0f66300f68d2764eb4163c..aa5ab32f524701a58f32db51245e308831120c3f 100755 (executable)
@@ -22,7 +22,7 @@
                                                                                                alt="[ Collage of headshots of ten LibrePlanet 2024 speakers: David Wilson, Hayley Tsukuayama, Olivia Gallucci, T. Kim Nguyen, Christina Haralanova, Jurgen Gaeremyn, Crescent Omeje, Corwin Brust, Matt Campbell, and Shivanand Edrami.]"></a>
 
 <li class="item">
-        <a href="https://www.fsf.org/news/hayley-tsukayama-will-speak-about-grassroots-activism-at-libreplanet-2024"><img src="https://static.fsf.org/nosvn/libreplanet/2024/communications/keynote-hayley768x461.png"  
+        <a href="https://www.fsf.org/news/hayley-tsukayama-will-speak-about-grassroots-activism-at-libreplanet-2024"><img src="https://static.fsf.org/nosvn/libreplanet/2024/communications/keynote-hayley768x461.png"
                                                                                                alt="[ Photo of Hayley Tsukuayama with the LibrePlanet logo and a text saying LibrePlanet 2024: Cultivating Community will feature a keynote by Hayley Tsukuayama about grassroots activism.]"></a>
 
                                                                                                                  <li class="item">
index f529142b32bcedacf42e1f5fc17268b52b57b79e..5f515ca6df741b399244a54f23b8c7112844bfa3 100755 (executable)
@@ -15,7 +15,7 @@
 
 <div class="row margin-top">
   <div class="col-sm-8"> <!-- start of main content -->
-  <p>In the coming weeks, the following workshops and talks will be streamed in room <a target="_blank" href="https://live.fsf.org/stream-room-jupiter.webm">Jupiter</a> (scroll down and check the sidebar to the right for low resolution and audio stream options):</p>  
+  <p>In the coming weeks, the following workshops and talks will be streamed in room <a target="_blank" href="https://live.fsf.org/stream-room-jupiter.webm">Jupiter</a> (scroll down and check the sidebar to the right for low resolution and audio stream options):</p>
 
 <h3><a href="https://www.fsf.org/events/libreplanet-workshop-may-8-leanweb-a-ruby-out-of-rails-web-framework-for-static-and-dynamic-content-by-felix-freeman">LeanWeb: A Ruby (out of rails) web framework for static and dynamic content</a></h3>
 
@@ -23,7 +23,7 @@
 <li><strong>Time:</strong> Monday, May 08, 12:00–13:30 EDT (16:00–17:30 UTC)</li>
 <li><strong>Format:</strong> Online workshop</li>
 <li><strong>Presenter:</strong> Felix Freeman</li>
-</ul> 
+</ul>
 
 <h3><a href="https://www.fsf.org/events/libreplanet-workshop-digital-colonialism-surveillance-capitalism-and-a-libre-software-future-by-jose-castro">Digital colonialism, surveillance capitalism, and a libre software future</a></h3>
 
@@ -39,7 +39,7 @@
 <li><strong>Time:</strong> Tuesday, May 30, 12:00–12:45 EDT (16:00–16:45 UTC)</li>
 <li><strong>Format:</strong> Online talk</li>
 <li><strong>Presenters:</strong> Harm de Vries and Leandro von Werra</li>
-</ul> 
+</ul>
 
 <h3><a href="https://www.fsf.org/events/libreplanet-talk-june-5-worldvista-ehr-version-of-the-department-of-veterans-affairs-electronic-health-record">WorldVistA EHR version of the Department of Veterans Affairs Electronic Health Record</a></h3>
 
 
         <strong>High resolution videos:</strong><br><br>
 
-   
+
           <!-- <a href="https://live.fsf.org/libreplanet-workshop.webm">https://live.fsf.org/libreplanet-workshop.webm</a><br> -->
 
-         
+
         <a href="https://live.fsf.org/stream-room-jupiter.webm">https://live.fsf.org/stream-room-jupiter.webm</a><br>
          <!--  <a href="https://live.fsf.org/stream-room-saturn.webm">https://live.fsf.org/stream-room-saturn.webm</a><br>
         <a href="https://live.fsf.org/stream-room-neptune.webm">https://live.fsf.org/stream-room-neptune.webm</a><br><br>
@@ -85,8 +85,8 @@
 
    <!--
         <a href="https://live.fsf.org/libreplanet-workshop-lowres.webm">https://live.fsf.org/libreplanet-workshop-lowres.webm</a><br>   -->
-     
-          
+
+
         <a href="https://live.fsf.org/stream-room-jupiter-lowres.webm">https://live.fsf.org/stream-room-jupiter-lowres.webm</a><br>
           <!--
         <a href="https://live.fsf.org/stream-room-saturn-lowres.webm">https://live.fsf.org/stream-room-saturn-lowres.webm</a><br>
@@ -98,8 +98,8 @@
   <!--
         <a href="https://live.fsf.org/libreplanet-workshop.ogg">https://live.fsf.org/libreplanet-workshop.ogg</a><br>
           -->
-         
+
+
         <a href="https://live.fsf.org/stream-room-jupiter.ogg">https://live.fsf.org/stream-room-jupiter.ogg</a><br>
            <!--
         <a href="https://live.fsf.org/stream-room-saturn.ogg">https://live.fsf.org/stream-room-saturn.ogg</a><br>
index 6072a1067aafd3190dd1c12b80d95c89c2f4b53f..90f55061ae2f82902c0379920199fb6bb704924d 100755 (executable)
@@ -22,9 +22,9 @@ Contents
   <p><a href="#walk">Saturday night walk</a></p>
    <p><a href="#diversity">Diversity breakfast</a></p>
   <p><a href="#BoF">Birds of a Feather social events</a></p>
-  <p><a href="#member-meeting">Annual FSF associate members meeting</a></p> 
-  <p><a href="#newcomer">Newcomer orientation</a></p> 
-  <p><a href="#licensing">Licensing table</a></p> 
+  <p><a href="#member-meeting">Annual FSF associate members meeting</a></p>
+  <p><a href="#newcomer">Newcomer orientation</a></p>
+  <p><a href="#licensing">Licensing table</a></p>
 </div>
 </div>
 <h2 id="office">Friday night "open" office</h2>
@@ -50,7 +50,7 @@ State, and Park Street MBTA stops. The FSF office is an accessible
 <li><strong>Location:</strong> Wentworth Institute of Technology to Quincy Market, via Newbury Street and the Boston Gardens and Common
 <li><strong>Sign up:</strong> Contact <a href="mailto:info@fsf.org">info@fsf.org</a></li>
 </ul>
-<hr> 
+<hr>
 <h2 id="diversity">Diversity breakfast</h2>
 <h3>Hosted by Savvy Smith</h3>
 <p>This is a space for women, nonbinary people and all those who have been traditionally excluded from technological and social causes to feel at home and find ways for people of similar backgrounds to participate. We'll have breakfast together and can take public transport to get to the conference together afterwards. Please RSVP by emailing <a href="mailto:info@fsf.org">info@fsf.org</a>, so we can make sure there's enough food for everyone.</p>
@@ -73,15 +73,15 @@ State, and Park Street MBTA stops. The FSF office is an accessible
 <h2 id="licensing">Licensing table</h2>
 <br>
 <p>Have you ever had a question about the <a href="https://www.gnu.org/licenses/#GPL">GNU General Public License (GPL)</a> or free software licenses that you didn't find time to ask? Now you will have an unique opportunity to meet the Licensing and Compliance Lab in person and talk about anything
-related to licensing. Krzysztof and Craig will be at the registration booth on Sunday, 13:00–14:00. 
+related to licensing. Krzysztof and Craig will be at the registration booth on Sunday, 13:00–14:00.
 </p>
 <ul>
 <li><strong>Time:</strong> 13:00–14:00, Sunday, May 5, 2024</li>
 <li><strong>Location:</strong> registration
-booth in the CEIS lobby of the Wentworth Institute of Technology</li>   
+booth in the CEIS lobby of the Wentworth Institute of Technology</li>
 <li><strong>Sign up:</strong> Not necessary</li>
 </ul>
-<hr> 
+<hr>
 <h2 id="newcomer">Newcomer orientation</h2>
 <h3>Hosted by Savvy Smith</h3>
 <p>Is this your first LibrePlanet? A very warm welcome! Looking to connect with other people and to get an overview what's going on? Ask at the registration booth for our newcomer orientation.</p>
index 9377666b1050bebd9394d480607d0d883ed6cff2..44d0b2d8307ead08b64dad2cb9420d56ecc12d35 100755 (executable)
@@ -7,7 +7,7 @@
 
 <h1>Raffle</h1>
 
-<p>We'll be raffling off fabulous free software prizes, thanks to <a href="https://libreplanet.org/2024/sponsors">some of our generous sponsors</a>. 
+<p>We'll be raffling off fabulous free software prizes, thanks to <a href="https://libreplanet.org/2024/sponsors">some of our generous sponsors</a>.
 
 <p>All attendees get a gratis raffle ticket, FSF members get a second gratis ticket, and everyone can buy more chances to win at the GNU Press table during LibrePlanet, as well as at the Friday open house and Saturday evening social events! Buy one ticket for $2, 3 tickets for $5, one arm's length for $20, cash or credit. FSF staff and board members are not eligible to participate in the raffle.</p>
 
@@ -22,7 +22,7 @@
 <!--   <li>Subscriptions to <a href="https://jmp.chat/">JMP</a></li> -->
 <!--   <li>ChaosKeys from <a href="https://altusmetrum.org/">Altus Metrum, LLC</a></li> -->
 <!-- </ul> -->
-                                                        
+
 
 
 <!--#include virtual="/2024/includes/footer.html"-->
index 1ccdb8a46439a88381fc3f01e9c351e46fd40a56..a703aa101b47a65e9a7108c87b228c617dfbe560 100755 (executable)
@@ -7,10 +7,10 @@
 .exhibitor-info { max-width: 650px; margin: 0 auto 40px auto; }
 h2 a { border: none; }
 .irc-client { display: block; width: 650px; height: 500px; margin: 0 auto; }
-</style> 
+</style>
 
 <!--<h2>Exhibitors</h2>
-<p>The lively Exhibit Hall at LibrePlanet will be open on both conference days, in person, and online at LibreAdventure with something for everyone. Be sure to take a virtual stroll around and meet exhibitors who care about software freedom.</p>--> 
+<p>The lively Exhibit Hall at LibrePlanet will be open on both conference days, in person, and online at LibreAdventure with something for everyone. Be sure to take a virtual stroll around and meet exhibitors who care about software freedom.</p>-->
 
 <br>
 
@@ -20,7 +20,7 @@ h2 a { border: none; }
                          </div></div>
                        </p>
                        <br>
-<div style="clear:both"><br></div> 
+<div style="clear:both"><br></div>
 
 <div class="exhibitor-info">
 <p>    <div class="hover_img">
@@ -57,7 +57,7 @@ h2 a { border: none; }
                          </div></div>
                        </p>
                        <br>
-<div style="clear:both"><br></div> 
+<div style="clear:both"><br></div>
 
 <div class="exhibitor-info">
 <p>    <div class="hover_img">
@@ -91,7 +91,7 @@ h2 a { border: none; }
 
 <p>Sponsorship and underwriting opportunities can be found in this <a href="LibrePlanet2024-Packages.pdf">informational flyer</a> or in this year's  <a href="LibrePlanet2024-Sponsorship.pdf">prospectus</a>.
 
-<p>All materials must be submitted by <b>April 24, 2024,</b> in order to guarantee visual inclusion. To inquire about sponsoring the event, or if you have any questions, please email <a href="mailto:campaigns@fsf.org">campaigns@fsf.org</a>.</p> 
+<p>All materials must be submitted by <b>April 24, 2024,</b> in order to guarantee visual inclusion. To inquire about sponsoring the event, or if you have any questions, please email <a href="mailto:campaigns@fsf.org">campaigns@fsf.org</a>.</p>
 <p><b><a href="https://my.fsf.org/civicrm/event/info?reset=1&id=129">Register to the event as a sponsor!</a></b> Please only use this link after confirmation from the FSF!</p>
 
 
@@ -99,11 +99,11 @@ h2 a { border: none; }
 
 <h2>Become a LibrePlanet 2024 exhibitor</h2>
 <br>
-<p>The lively Exhibit Hall at LibrePlanet is centrally located and will be open on both conference days (times TBC). </p> 
+<p>The lively Exhibit Hall at LibrePlanet is centrally located and will be open on both conference days (times TBC). </p>
 
-<p>To inquire about early registration pricing for exhibitors, or if you have any other questions, please email <a href="mailto:campaigns@fsf.org">campaigns@fsf.org</a>.</p> 
+<p>To inquire about early registration pricing for exhibitors, or if you have any other questions, please email <a href="mailto:campaigns@fsf.org">campaigns@fsf.org</a>.</p>
 
-<p>We will be offering early registration pricing for exhibitors <b>until March 20, 2024</b>. Nonprofits and individual projects are eligible for a discounted exhibitors price. All materials must be submitted by <b>April 24, 2024,</b> in order to guarantee visual inclusion.</p> 
+<p>We will be offering early registration pricing for exhibitors <b>until March 20, 2024</b>. Nonprofits and individual projects are eligible for a discounted exhibitors price. All materials must be submitted by <b>April 24, 2024,</b> in order to guarantee visual inclusion.</p>
 
 <p><b><a href="https://my.fsf.org/civicrm/event/info?reset=1&id=129">Register to the event as an exhibitor!</a></b> Please only use this link after confirmation from the FSF!</p>
 
@@ -144,7 +144,7 @@ h2 a { border: none; }
                          </div></div>
                        </p>
                        <br>
-<div style="clear:both"><br></div> 
+<div style="clear:both"><br></div>
 
 <div class="exhibitor-info">
 <p>    <div class="hover_img">
index fc8cc1b9f30793ce66b4734e7a2d545d0e91d66b..dd9917c907a8728d360833c7796dec57662d30e6 100755 (executable)
@@ -6,7 +6,7 @@
 <!--#include virtual="/2024/includes/sidebar.html"-->
 
 <h2>Unfortunately, pre-registration is full.</h2>
-<p>We will do our best to accomodate walk-up registrations. 
+<p>We will do our best to accomodate walk-up registrations.
 Prices are as follows:</p>
 <ul>
 <li>FSF members and students: $ 0</li>
index 0d2abddd611e546925a45f61055780d7faedf37d..4c188dc9edbffa2c887418e38c69070f556639cb 100644 (file)
@@ -6,7 +6,7 @@
 <!--#include virtual="/2022/includes/sidebar.html"-->
 ##Unfortunately, pre-registration is full.
 
-We will do our best to accomodate walk-up registrations. 
+We will do our best to accomodate walk-up registrations.
 Prices are as follows:
 
 * FSF members and students: $ 0
index 0af6d8c98cb3126638a37c7314a07e0cc9917e1c..b0e176d7527416c027c046b13fdf6704c3119de3 100644 (file)
@@ -13,8 +13,8 @@
 
          <ul>
          <li><a href="http://fosscon.org/"> June 19th, FOSSCON in Rochester, NY</a></li>
-         
-       
+
+
          </ul>
 
 
index 6d81480bbb6c683d6513f24273bca905be71c3af..5f68efaa813069a5c64534bbaa9ff422f2ef4073 100644 (file)
@@ -6,9 +6,9 @@ body {
 }
 
 h3 {
-  font-size: 20px; 
+  font-size: 20px;
 }
-  
+
 .lp-banner {
   box-shadow: 0px 1px 5px rgba(255, 255, 255, 0.7);
   margin-bottom: 20px;
@@ -99,24 +99,24 @@ h3 {
 
 
 .fsf-donate-button {
-  margin-left: 24%; 
+  margin-left: 24%;
   margin-top: 25px;
   margin-bottom: 10px;
   width:56%;
-}      
+}
 
 @media (max-width:768px) {
        .fsf-donate-button {
-         margin-left: 34%; 
+         margin-left: 34%;
          margin-top: 25px;
          margin-bottom: 10px;
          width:32%;
-       }       
+       }
 }
 
 @media (min-width:320px) and (max-width:360px) {
   .fsf-donate-button {
-       margin-left: 24%; 
+       margin-left: 24%;
        margin-top: 25px;
        margin-bottom: 10px;
        width:56%;
index 1c376736553c9840240b8b8414c2ca6d80b80c37..7ed54de4cc0f1aec765e246b7a6d33c3e625ed20 100644 (file)
@@ -9,11 +9,11 @@
          data-setup='{"height": 477,
                       "width": 848 }'>
     <source src="http://media.libreplanet.org/mgoblin_media/media_entries/49/LibrePlanet__8A__848x477__3.webm"
-            
+
               type="video/webm; codecs='vp8, vorbis'">
     <div class="no_html5">Sorry, this video will not work because
-      your web browser does not support HTML5 
-      video.<br>You can get a modern web browser that 
+      your web browser does not support HTML5
+      video.<br>You can get a modern web browser that
       can play this video at <a href="http://getfirefox.com">
       http://getfirefox.com</a>!</div>
   </video>
index 1d6bb2c82502aa5ab0f16714549ea4dd1b98c840..17b247cbbe604784a8a4c8443dffbe1aeab93a7f 100644 (file)
@@ -2,10 +2,10 @@
 <html lang="en">
   <head>
        <meta charset="utf-8">
-       <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 
+       <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 
        <link href="/2014/assets/css/bootstrap.min.css" rel="stylesheet" media="screen" />
-       <link href="/2014/assets/css/custom.css" rel="stylesheet" media="screen" /> 
+       <link href="/2014/assets/css/custom.css" rel="stylesheet" media="screen" />
        <link href="https://static.fsf.org/fsforg/img/favicon.ico" rel="shortcut icon">
        <title>LibrePlanet 2014</title>
 
@@ -38,7 +38,7 @@
          </div> <!-- end of lp banner -->
 
          <div class="container"> <!-- start of container -->
-               <div class="row"> 
+               <div class="row">
 
                  <div class="col-sm-3"> <!-- start of nav items -->
                        <ul class="nav nav-pills nav-stacked nav-padding-top">
@@ -79,7 +79,7 @@
 
                        <!-- start of carousel -->
                        <div id="lpc-carousel" class="carousel slide">
-                         
+
                          <!-- wrapper for slides -->
                          <ul class="carousel-inner list-unstyled">
 
@@ -126,7 +126,7 @@ Watch and share our volunteer-created LibrePlanet video<br>
                                        </a></p>
                                </li>
 -->
-                       
+
                          <!-- controls -->
                          <a class="left carousel-control" href="#lpc-carousel" data-slide="prev">
                                <span class="glyphicon glyphicon-chevron-left"></span>
@@ -140,7 +140,7 @@ Watch and share our volunteer-created LibrePlanet video<br>
                          <p class="lead">
                                 LibrePlanet is an annual conference for free software enthusiasts. LibrePlanet brings together software developers, policy experts, activists and computer users to learn skills, share accomplishments and face challenges to software freedom. Newcomers are always welcome, and LibrePlanet 2014 will feature programming for all ages and experience levels.</p>
                          <p>
-                                This year, the theme of LibrePlanet is "Free Software, Free Society." How can free software protect journalists, whistleblowers, activists, and regular computer users from government and corporate surveillance? How can free software, or free software values like copyleft, community development, and transparency, be used by people fighting to create free societies around the world? What challenges are standing between us and our goal of free software ubiquity? With your help, we'll tackle these questions and more at LibrePlanet 2014, March 22-23 in Cambridge, MA. 
+                                This year, the theme of LibrePlanet is "Free Software, Free Society." How can free software protect journalists, whistleblowers, activists, and regular computer users from government and corporate surveillance? How can free software, or free software values like copyleft, community development, and transparency, be used by people fighting to create free societies around the world? What challenges are standing between us and our goal of free software ubiquity? With your help, we'll tackle these questions and more at LibrePlanet 2014, March 22-23 in Cambridge, MA.
                          </p>
 <p>FSF members and students attend LibrePlanet at no cost! <a href="https://my.fsf.org/associate/support_freedom">Become a member now.</a> If you're interested in attending but need help, we also have <a href="https://libreplanet.org/2014/scholarships">scholarships</a> avalaible.</p>
                        </div> <!-- end of LP14 text -->
index 715b4233d469f7b9e58f634edd7c3948c0152803..e145924abb6ef5c9d5ed831ce744a584d6dd52b5 100644 (file)
@@ -2,10 +2,10 @@
 <html lang="en">
   <head>
        <meta charset="utf-8">
-       <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 
+       <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 
        <link href="/2014/assets/css/bootstrap.min.css" rel="stylesheet" media="screen" />
-       <link href="custom.css" rel="stylesheet" media="screen" /> 
+       <link href="custom.css" rel="stylesheet" media="screen" />
        <link href="https://static.fsf.org/fsforg/img/favicon.ico" rel="shortcut icon">
        <title>LibrePlanet 2014</title>
 
@@ -17,7 +17,7 @@
                <div class="container"> <!-- start of container -->
                  <div class="row">
                        <div class="lp-head"> <!-- start of lp header -->
-                         <div class="col-sm-3"> 
+                         <div class="col-sm-3">
                                <a href="/2014/">
                                  <img src="http://static.fsf.org/nosvn/libreplanet/2014/site/logo/lp_2014_logo.png"
                                           class="img-responsive"
@@ -43,7 +43,7 @@
          </div> <!-- end of lp banner -->
 
          <div class="container"> <!-- start of container -->
-               <div class="row"> 
+               <div class="row">
 
                  <div id="lp-nav" class="col-sm-3"> <!-- start of nav items -->
                        <ul class="nav nav-pills nav-stacked">
@@ -85,7 +85,7 @@
 
                        <!-- start of carousel -->
                        <div id="lpc-carousel" class="carousel slide">
-                         
+
                          <!-- wrapper for slides -->
                          <ul class="carousel-inner list-unstyled">
                  <li class="item">
                        <p class="lead carousel-caption-tl">
 <a class="btn btn-default" href="https://libreplanet.org/2014/scholarship_donation">Donate to the scholarship fund</a> to help us bring new people to LibrePlanet.
                                          </p>
-                               
-                               </li>           
+
+                               </li>
 
                                <!--
                                <li class="item">
                                  <img src="//static.fsf.org/nosvn/libreplanet/2014/site/carousel/lp13-room-110.jpg"
                                           alt="[ LibrePlanet 2013 discussion ]">
-                                 <p class="lead carousel-caption-bl">                          
+                                 <p class="lead carousel-caption-bl">
                                        We're collecting suggestions for<br>LibrePlanet 2014
-                                       
+
                                        <a class="btn btn-default"
                                           href="https://libreplanet.org/wiki/LibrePlanet:Conference/2014/Conference_brainstorm">
                                          Share your ideas
                                        </a>
                                        and be part of LibrePlanet 2014!
                                  </p>
-                               
-                               </li>                           
+
+                               </li>
 -->
                                        <li class="item">
                                  <img src="//static.fsf.org/nosvn/libreplanet/2014/site/carousel/lp13-printer.jpg"
                          <p class="lead">
                                 LibrePlanet is an annual conference for free software enthusiasts. LibrePlanet brings together software developers, policy experts, activists and computer users to learn skills, share accomplishments and face challenges to software freedom. Newcomers are always welcome, and LibrePlanet 2014 will feature programming for all ages and experience levels.</p>
                          <p>
-                                This year, the theme of LibrePlanet is "Free Software, Free Society." How can free software protect journalists, whistleblowers, activists, and regular computer users from government and corporate surveillance? How can free software, or free software values like copyleft, community development, and transparency, be used by people fighting to create free societies around the world? What challenges are standing between us and our goal of free software ubiquity? With your help, we'll tackle these questions and more at LibrePlanet 2014, March 22-23 in Cambridge, MA. 
+                                This year, the theme of LibrePlanet is "Free Software, Free Society." How can free software protect journalists, whistleblowers, activists, and regular computer users from government and corporate surveillance? How can free software, or free software values like copyleft, community development, and transparency, be used by people fighting to create free societies around the world? What challenges are standing between us and our goal of free software ubiquity? With your help, we'll tackle these questions and more at LibrePlanet 2014, March 22-23 in Cambridge, MA.
                          </p>
 <p>FSF members and students attend LibrePlanet at no cost! <a href="https://my.fsf.org/associate/support_freedom">Become a member now.</a> If you're interested in attending but need help, we also have <a href="https://libreplanet.org/2014/scholarships">scholarships</a> avalaible.</p>
                        </div> <!-- end of LP14 text -->
index 276b85160ea2c8f30e9b48638fd323bd7be5108c..86b1267520c3bc0ad957c5f656e497f2c4009ac1 100644 (file)
                                </h2>
                          </div>
                          <div class="panel-body">
-                       
+
 <p><a href="#saturday">Saturday sessions</a></p>
 <p><a href="#sunday">Sunday sessions</a></p>
 <p><a href="#social">Social events</a></p>
index f9d75dbe3105a115d9281325124f2a5265cfe338..eba3366724d5b02cccbc422f16d773cc32afe4ba 100644 (file)
@@ -2,10 +2,10 @@
 <html lang="en">
   <head>
        <meta charset="utf-8">
-       <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 
+       <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 
        <link href="/2014/assets/css/bootstrap.min.css" rel="stylesheet" media="screen" />
-       <link href="/2014/assets/css/custom.css" rel="stylesheet" media="screen" /> 
+       <link href="/2014/assets/css/custom.css" rel="stylesheet" media="screen" />
        <link href="https://static.fsf.org/fsforg/img/favicon.ico" rel="shortcut icon">
        <title>Speakers &mdash; LibrePlanet 2014</title>
 
@@ -38,7 +38,7 @@
          </div> <!-- end of lp banner -->
 
          <div class="container"> <!-- start of container -->
-               <div class="row"> 
+               <div class="row">
 
 <div class="col-sm-3"> <!-- start of nav items -->
                        <p class="text-center lp-home">
                  </div> <!-- end of nav items -->
 
                  <div class="col-sm-9"> <!-- start of content column -->
-                       <h2>Speakers</h2>                       
+                       <h2>Speakers</h2>
 
                        <table>
 
-<!-- Experimental large image formatting                               
+<!-- Experimental large image formatting
                                <tr>
                                        <td colspan="2"><h3>Sue Gardner</h3>
                                        </td>
@@ -98,8 +98,8 @@
 <p>Sue Gardner has been described as the librarian to the world and the Mother Teresa of the Internet. In 2009, she was voted by Huffington Post readers as their media game-changer of the year and in 2012, Forbes magazine named her the world's 70th most powerful woman. Her work is motivated by the desire to ensure that everyone in the world has free and easy access to the information they want and need.</p>
                                </tr>
 -->
-       
-                       
+
+
                                <tr class="speaker">
                                        <td class="speaker-photo" style="padding-top:23px"><img src="//static.fsf.org/nosvn/libreplanet/2014/site/speakers/sue_gardner.jpg" alt="Sue Gardner">
                                        <td><h3>Sue Gardner, <a href="https://wikimedia.org">Wikimedia Foundation</a></h3><p>Since 2007, Sue Gardner has served as the Executive Director of the Wikimedia Foundation, the global non-profit that operates <a href="https://www.wikipedia.org/">Wikipedia</a>. Wikipedia is the world's largest and most popular encyclopedia, which is free to use and free of advertising. Wikipedia contains more than 30 million volunteer-authored articles in over 280 languages, and is visited by more than 516 million people every month, making it the fifth most popular website in the world.</p>
index 460edc347a31765526a42d92a003d37e0f3aefda..69c01092fb2a375e69c1c1ddc1a68c3c7ba0cfba 100644 (file)
@@ -40,7 +40,7 @@
                                          Propose a session
                                        </a>
                                  </p>
-                               </li>                           
+                               </li>
                 <li class="item">
                                  <img src="//static.fsf.org/nosvn/libreplanet/2014/site/carousel/lp13-printer.jpg"
                                           alt="[ Aleph Objects' Lulzbot 3D printer ]">
@@ -56,7 +56,7 @@
                                           alt="[ LibrePlanet 2013 discussion ]">
                                  <p class="lead carousel-caption-bl">
                                        We're collecting suggestions for LibrePlanet 2014
-                                       
+
                                        <a class="btn btn-default"
                                           href="https://libreplanet.org/wiki/LibrePlanet:Conference/2014/Conference_brainstorm">
                                          Share your ideas