add alcatel folder
authorcobled@FRVILN0H401086.emea.lucent.com
Thu, 24 Jan 2013 16:58:55 +0100
changeset 27 8ca7f2cea729
parent 26 94f586daa623
child 28 10a958322a62
add alcatel folder
alcatel/.project
alcatel/.pydevproject
alcatel/.settings/org.eclipse.core.resources.prefs
alcatel/controller/ClusterAnnotation.py
alcatel/controller/Clusters.py
alcatel/controller/DocumentAnnotation.py
alcatel/controller/DocumentaryFile.py
alcatel/controller/DocumentaryFileAnnotation.py
alcatel/controller/DocumentaryFiles.py
alcatel/controller/Documents.py
alcatel/controller/Searcher.py
alcatel/controller/__init__.py
alcatel/dataparser/AnnotationsGetAttributes.py
alcatel/dataparser/ClientClusterAnnotationCreateAttributes.py
alcatel/dataparser/ClientClusterAnnotationDeleteAttributes.py
alcatel/dataparser/ClientDocumentAnnotationCreateAttributes.py
alcatel/dataparser/ClientDocumentAnnotationDeleteAttributes.py
alcatel/dataparser/ClientDocumentaryFileAttributes.py
alcatel/dataparser/ClientDocumentaryFileDeleteAttributes.py
alcatel/dataparser/ClientDocumentaryFileVisibilityAttributes.py
alcatel/dataparser/ClientDocumentsGetAttributes.py
alcatel/dataparser/ClientSearchAttributes.py
alcatel/dataparser/ClustersGetAttributes.py
alcatel/dataparser/DocumentaryFileAnnotationAttributes.py
alcatel/dataparser/DocumentaryFileAnnotationDeleteAttributes.py
alcatel/dataparser/DocumentaryFilesGetAttributes.py
alcatel/dataparser/WebLabParser.py
alcatel/dataparser/__init__.py
alcatel/django/media/cache/57/ca/57caed232bd8d2e99dd9b7667ccc16ce.jpg
alcatel/django/media/cache/9a/68/9a68bf574b1f1bd0773ef16fc7490a28.jpg
alcatel/django/media/cache/ec/2f/ec2fe0d8275215241cb1df18a606683a.jpg
alcatel/django/media/images/liste.jpg
alcatel/django/media/images/logo-mediapart.png
alcatel/django/media/images/logo_periplus.png
alcatel/django/media/images/mediapartbyperiplus.png
alcatel/django/media/images/treemap.jpg
alcatel/django/templates/base.html
alcatel/django/templates/cluster.html
alcatel/django/templates/dossiersdocumentaire.html
alcatel/django/templates/index.html
alcatel/django/templates/recherche.html
alcatel/document/__init__.py
alcatel/document/__init__.pyc
alcatel/document/admin.py
alcatel/document/admin.pyc
alcatel/document/management/__init__.py
alcatel/document/management/__init__.pyc
alcatel/document/management/commands/__init__.py
alcatel/document/management/commands/__init__.pyc
alcatel/document/management/commands/clearcache.py
alcatel/document/management/commands/clearcache.pyc
alcatel/document/models.py
alcatel/document/models.pyc
alcatel/document/tests.py
alcatel/document/views.py
alcatel/document/views.pyc
alcatel/manage.py
alcatel/mediapartdb/MediapartReader.py
alcatel/mediapartdb/__init__.py
alcatel/periplus/__init__.py
alcatel/periplus/settings.py
alcatel/periplus/urls.py
alcatel/periplus/wsgi.py
alcatel/static/css/article.css
alcatel/static/css/common.css
alcatel/static/css/dossiers.css
alcatel/static/css/home.css
alcatel/static/css/reset.css
alcatel/static/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
alcatel/static/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
alcatel/static/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
alcatel/static/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
alcatel/static/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
alcatel/static/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
alcatel/static/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
alcatel/static/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
alcatel/static/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
alcatel/static/css/ui-lightness/images/ui-icons_222222_256x240.png
alcatel/static/css/ui-lightness/images/ui-icons_228ef1_256x240.png
alcatel/static/css/ui-lightness/images/ui-icons_ef8c08_256x240.png
alcatel/static/css/ui-lightness/images/ui-icons_ffd27a_256x240.png
alcatel/static/css/ui-lightness/images/ui-icons_ffffff_256x240.png
alcatel/static/css/ui-lightness/jquery-ui-1.8.24.custom.css
alcatel/static/css/ui-red/images/ui-bg_diagonals-thick_75_f3d8d8_40x40.png
alcatel/static/css/ui-red/images/ui-bg_dots-small_65_a6a6a6_2x2.png
alcatel/static/css/ui-red/images/ui-bg_flat_0_333333_40x100.png
alcatel/static/css/ui-red/images/ui-bg_flat_65_ffffff_40x100.png
alcatel/static/css/ui-red/images/ui-bg_flat_75_ffffff_40x100.png
alcatel/static/css/ui-red/images/ui-bg_glass_55_fbf8ee_1x400.png
alcatel/static/css/ui-red/images/ui-bg_highlight-hard_100_eeeeee_1x100.png
alcatel/static/css/ui-red/images/ui-bg_highlight-hard_100_f6f6f6_1x100.png
alcatel/static/css/ui-red/images/ui-bg_highlight-soft_15_cc0000_1x100.png
alcatel/static/css/ui-red/images/ui-icons_004276_256x240.png
alcatel/static/css/ui-red/images/ui-icons_cc0000_256x240.png
alcatel/static/css/ui-red/images/ui-icons_ffffff_256x240.png
alcatel/static/css/ui-red/jquery-ui.css
alcatel/static/images/back-logo.png
alcatel/static/images/hollande.jpg
alcatel/static/images/hollande_petit.jpg
alcatel/static/images/icon_searchbox.png
alcatel/static/images/img0.gif
alcatel/static/images/img1.gif
alcatel/static/images/img10.gif
alcatel/static/images/img11.gif
alcatel/static/images/img12.gif
alcatel/static/images/img13.gif
alcatel/static/images/img14.gif
alcatel/static/images/img15.gif
alcatel/static/images/img16.gif
alcatel/static/images/img17.gif
alcatel/static/images/img18.gif
alcatel/static/images/img19.gif
alcatel/static/images/img2.gif
alcatel/static/images/img3.gif
alcatel/static/images/img4.gif
alcatel/static/images/img5.gif
alcatel/static/images/img6.gif
alcatel/static/images/img7.gif
alcatel/static/images/img8.gif
alcatel/static/images/img9.gif
alcatel/static/images/logo-mediapart.png
alcatel/static/images/mediapartbyperiplus.png
alcatel/static/images/mister.png
alcatel/static/images/sarkozy.jpg
alcatel/static/images/sarkozy_petit.jpg
alcatel/static/images/tableau-de-bord.png
alcatel/static/images/tableau-de-bord_petit.png
alcatel/static/img/article-annotations-add-comment-sprite.png
alcatel/static/img/article-annotations-comment-sprite.png
alcatel/static/img/article-annotations-value-sprite.png
alcatel/static/img/article-link-arrow.jpg
alcatel/static/img/article-link-arrow.png
alcatel/static/img/back-logo.png
alcatel/static/img/bg-nav-left.png
alcatel/static/img/border-dotted.png
alcatel/static/img/border-right-annotation-value.png
alcatel/static/img/cluster-arrows.jpg
alcatel/static/img/cluster-arrows.png
alcatel/static/img/cluster-item-bar.jpg
alcatel/static/img/documentaire-bg.jpg
alcatel/static/img/documentaire-lien.jpg
alcatel/static/img/documentaire-nouveau-dossier.jpg
alcatel/static/img/documentaire-visuel.jpg
alcatel/static/img/documentaire-widget-list-item.jpg
alcatel/static/img/dossier-annotation-sprite.jpg
alcatel/static/img/dossier-annotation-sprite.png
alcatel/static/img/dossier-documentaire-title-arrow-hide.jpg
alcatel/static/img/dossier-documentaire-title-arrow-show.jpg
alcatel/static/img/dossier-icon.jpg
alcatel/static/img/dossier-similaire-title-hide.jpg
alcatel/static/img/dossier-similaire-title-show.jpg
alcatel/static/img/dossier-title-arrow-hide.jpg
alcatel/static/img/dossier-title-arrow-show.jpg
alcatel/static/img/dossier-title-arrows.jpg
alcatel/static/img/frise-bg.jpg
alcatel/static/img/frise-cursor.png
alcatel/static/img/frise.jpg
alcatel/static/img/header-bg.jpg
alcatel/static/img/header-documentaire-titre-icon.jpg
alcatel/static/img/home-button-comment.png
alcatel/static/img/home-button-file.png
alcatel/static/img/home-button-trash.png
alcatel/static/img/home-button.jpg
alcatel/static/img/home-sprite.png
alcatel/static/img/home-visuel-1.jpg
alcatel/static/img/home-visuel-2.jpg
alcatel/static/img/home-visuel-3.jpg
alcatel/static/img/home-visuel-4.jpg
alcatel/static/img/home-visuel-5.jpg
alcatel/static/img/home-visuel-6.jpg
alcatel/static/img/home-visuel-7.jpg
alcatel/static/img/home-visuel-8.jpg
alcatel/static/img/icon-rep.jpg
alcatel/static/img/liste-sprite.jpg
alcatel/static/img/logo-alcatel.jpg
alcatel/static/img/logo-alcatel.png
alcatel/static/img/logo-cea.jpg
alcatel/static/img/logo-cea.png
alcatel/static/img/logo-iri.jpg
alcatel/static/img/logo-iri.png
alcatel/static/img/mediapart-by-periplus.jpg
alcatel/static/img/photo.jpg
alcatel/static/img/plus-button.jpg
alcatel/static/img/plus-button.png
alcatel/static/img/treemap-sprite.jpg
alcatel/static/img/visuel-article.jpg
alcatel/static/img/widget-button-recherche.jpg
alcatel/static/img/widget-list-item.jpg
alcatel/static/img/zoom-button.jpg
alcatel/static/img/zoom-button.png
alcatel/static/js/base.js
alcatel/static/js/cluster.js
alcatel/static/js/dossierdoc.js
alcatel/static/js/lib/raphael-min.js
alcatel/static/js/lib/underscore-min.js
alcatel/static/js/main.js
alcatel/static/js/plugins.js
alcatel/static/js/recherche.js
alcatel/static/js/streamgraph.js
alcatel/static/js/treemap.js
alcatel/static/js/vendor/dragslider.js
alcatel/static/js/vendor/jquery-1.8.0.min.js
alcatel/static/js/vendor/jquery-ui-1.8.24.custom.min.js
alcatel/static/js/vendor/modernizr-2.6.1.min.js
alcatel/static/libraries/Paper/lib/paper.js
alcatel/static/libraries/colorbrewer.js
alcatel/static/libraries/d3/d3.chart.js
alcatel/static/libraries/d3/d3.chart.min.js
alcatel/static/libraries/d3/d3.csv.js
alcatel/static/libraries/d3/d3.csv.min.js
alcatel/static/libraries/d3/d3.geo.js
alcatel/static/libraries/d3/d3.geo.min.js
alcatel/static/libraries/d3/d3.geom.js
alcatel/static/libraries/d3/d3.geom.min.js
alcatel/static/libraries/d3/d3.js
alcatel/static/libraries/d3/d3.layout.js
alcatel/static/libraries/d3/d3.layout.min.js
alcatel/static/libraries/d3/d3.min.js
alcatel/static/libraries/d3/d3.nathan.js
alcatel/static/libraries/d3/d3.time.js
alcatel/static/libraries/d3/d3.time.min.js
alcatel/static/libraries/d3/package.json
alcatel/static/libraries/d3_modifie/d3.js
alcatel/static/libraries/d3_modifie/d3.layout.js
alcatel/static/libraries/d3_modifie/d3.min.js
alcatel/static/libraries/jquery-1.6.4.min.js
alcatel/static/libraries/jquery-ui-1.8.16.custom.min.js
alcatel/static/libraries/nco/cartographie.js
alcatel/static/libraries/nco/couleurs.js
alcatel/static/libraries/nco/relations.js
alcatel/static/libraries/nco/streamgraph.js
alcatel/static/libraries/nco/tapestry.js
alcatel/static/libraries/nco/treemap.js
alcatel/static/libraries/pure.js
alcatel/static/libraries/pure_min.js
alcatel/static/treemap/design.css
alcatel/static/treemap/donnees.js
alcatel/static/treemap/script.js
alcatel/static/treemap/treemap.js
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/.project	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>periplus</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.python.pydev.PyDevBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.python.pydev.pythonNature</nature>
+		<nature>org.python.pydev.django.djangoNature</nature>
+	</natures>
+</projectDescription>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/.pydevproject	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?eclipse-pydev version="1.0"?>
+
+<pydev_project>
+<pydev_variables_property name="org.python.pydev.PROJECT_VARIABLE_SUBSTITUTION">
+<key>DJANGO_MANAGE_LOCATION</key>
+<value>manage.py</value>
+</pydev_variables_property>
+<pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
+<path>/periplus</path>
+</pydev_pathproperty>
+<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.6</pydev_property>
+<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
+</pydev_project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/.settings/org.eclipse.core.resources.prefs	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding//controller/Searcher.py=UTF-8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/controller/ClusterAnnotation.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,110 @@
+'''
+Created on 07 Aout 2012
+
+@author: Corinne
+'''
+
+import logging
+
+from dataparser.ClientClusterAnnotationDeleteAttributes import ClientClusterAnnotationDeleteAttributes
+from dataparser.ClientClusterAnnotationCreateAttributes import ClientDocumentAnnotationCreateAttributes
+from document.models import Cluster
+from django.contrib.auth.models import User
+from document.models import Tag
+from document.models import Documentaryfile
+from document.models import Annotationcluster
+
+logger = logging.getLogger('document')
+
+class ClusterAnnotation(object):
+
+    def __init__(self, request):
+        logger.info('ClusterAnnotation init')
+        self.request = request
+           
+    def create(self):
+        logger.info('create ClusterAnnotation')
+        attr = ClientDocumentAnnotationCreateAttributes(self.request)
+        logger.info('get_user = ' + str(attr.get_user()))
+        logger.info('get_documentary_file = ' + str(attr.get_documentary_file()))
+        logger.info('get_annotation = ' + str(attr.get_annotation()))
+        logger.info('get_cluster = ' + str(attr.get_cluster()))
+        logger.info('get_tags = ' + str(attr.get_tags()))
+        tags_attr = attr.get_tags()
+        try:
+            cluster = Cluster.objects.get(pk=attr.get_cluster())
+            try:
+                user_attr = User.objects.get(username=attr.get_user)
+            except User.DoesNotExist:
+                json= '{"error": "User does not existed"}'
+                logger.info(json)
+                return json
+            
+            try:
+                annotationCluster = Annotationcluster.objects.create(description=attr.get_annotation(),user=user_attr, cluster=cluster)
+            except Exception:
+                json = '{"error": "cluster_id already exists"}'
+                logger.info(json)
+                return json     
+                 
+            if tags_attr: 
+                logger.info('tags associated to annotation')
+                for tag in tags_attr:
+                    logger.info('annotation_tag = '+str(tag))
+                    for tag in tags_attr:
+                        logger.info('annotation_tag = '+str(tag))
+                        tag_attr = Tag(value=tag,annotationcluster=annotationCluster)
+                        tag_attr.save()
+                              
+            json = '{"annotation_cluster_created":' + str(annotationCluster.id) + '}'
+            logger.info(json)
+        except Cluster.DoesNotExist:
+            json = '{"error": "Invalid cluster id"}'
+            logger.info(json)
+            return json
+        
+        return json
+
+    def delete(self):
+        logger.info('delete ClusterAnnotation')
+        attr = ClientClusterAnnotationDeleteAttributes(self.request)
+        logger.info('get_user = ' + str(attr.get_user()))
+        logger.info('get_documentary_file_id = ' + str(attr.get_documentary_file()))
+        logger.info('get_cluster = ' + str(attr.get_cluster()))
+        clusterId = attr.get_cluster()
+        
+        if clusterId=='':
+            json = '{"error": "No cluster_id attribute in the http post request"}'
+            logger.info(json)
+            return json
+        try:
+            cluster = Cluster.objects.get(pk=clusterId)
+            try:
+                annotationcluster = cluster.annotationcluster
+            except cluster.annotationcluster.DoesNotExist:
+                json= '{"error": "No annotation on this cluster"}'
+                logger.info(json)
+                return json
+                
+        except Cluster.DoesNotExist:
+            json = '{"error": "Invalid cluster id"}'
+            logger.info(json)
+            return json
+        
+        try:
+            documentaryfile = Documentaryfile.objects.get(pk=attr.get_documentary_file())
+        except Documentaryfile.DoesNotExist:
+            json = '{"error": "Invalid documentary_file_id"}'
+            logger.info(json)
+            return json
+        
+        logger.info('documentaryfile.user.name = ' + str(documentaryfile.user.username))
+        if documentaryfile.user.username == attr.get_user():
+            annotationcluster.delete()
+            json = '{"annotation_cluster_deleted" :'  + str(clusterId) + '}'
+            logger.info(json)
+        else:
+            json = '{"error": "User does not matched"}'
+            logger.info(json)
+       
+        return json
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/controller/Clusters.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,89 @@
+'''
+Created on 7 aout 2012
+
+@author: gerard
+'''
+import logging
+import simplejson
+
+from dataparser.ClustersGetAttributes import ClustersGetAttributes
+from document.models import Annotationcluster
+from document.models import Cluster
+from document.models import Clusterdocumentweight
+from document.models import Document
+from document.models import Documentaryfile
+from django.contrib.auth.models import User
+from mediapartdb.MediapartReader import MediapartReader
+
+logger = logging.getLogger('document')
+
+# List of documents of a cluster with annotations
+class Clusters(object):
+
+    def __init__(self, request):
+        self.request = request
+    
+    def get_treemap_of_clusters(self):
+        attr = ClustersGetAttributes(self.request)
+        
+        if not attr.get_user():
+            json = '{"error msg": "user is not defined"}'
+            return json
+        if not attr.get_documentary_file_id():
+            json = '{"error msg": "documentary_file_id is not defined"}'
+            return json
+        
+        the_user = User.objects.get(username=attr.get_user())
+        
+        if the_user:
+            docFiles = Documentaryfile.objects.filter(id=int(attr.get_documentary_file_id()), user_id=the_user.id )
+            if len(docFiles) == 0:
+                json = '{"error msg": "There is no documentary file belonging to the user specified"}'
+                return json
+        
+        reader = MediapartReader()
+        
+        json = {"clusters":[]}
+        clusters = Cluster.objects.filter(documentaryfile=int(attr.get_documentary_file_id()))
+        for cluster in clusters:
+            jsoncluster = {'id':cluster.id}
+            jsoncluster['title'] = cluster.title
+            jsoncluster['abstract'] = cluster.description
+            jsoncluster['weight'] = cluster.weight
+            
+            jsoncluster['annotations'] = []
+            
+            annotations = Annotationcluster.objects.filter(cluster=cluster.id)
+            for annotation in annotations:
+                jsonanno = {'id':annotation.id}
+                jsonanno['user'] = str(annotation.user)
+                jsonanno['text'] = str(annotation.description)
+                jsoncluster['annotations'].append(jsonanno)
+             
+            jsoncluster['documents'] = []
+            
+            doc_weights = Clusterdocumentweight.objects.filter(cluster_id=cluster.id)
+            sorted_doc_weights = sorted(doc_weights, key=lambda a_cluster_doc_weight: a_cluster_doc_weight.weight)
+            
+            for index_doc, doc_weights in enumerate(sorted_doc_weights):
+                if index_doc < 3:
+                    jsondoc = {'id':doc_weights.document.documentId}
+                    doc = Document.objects.get(documentId=doc_weights.document.documentId)
+                    jsondoc['title'] = str(doc.title.encode("utf8"))
+                    url = reader.get_url(str(doc_weights.document.documentId))
+                    jsondoc['url_document'] = url
+                    jsondoc['date'] = str(doc.date.isoformat())
+                    category = reader.get_category(str(doc_weights.document.documentId))
+                    jsondoc['category'] = category
+                    jsondoc['url_image'] = 'TO BE DEFINED'
+                    jsondoc['weight'] = float(doc_weights.weight)
+    
+                    jsoncluster['documents'].append(jsondoc)
+                else:
+                    break
+            jsoncluster['document_number'] = len(sorted_doc_weights)
+            json['clusters'].append(jsoncluster)
+        
+        result = simplejson.dumps(json)
+        logger.debug(result)
+        return result  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/controller/DocumentAnnotation.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,156 @@
+'''
+Created on 09 Aout. 2012
+
+@author: Corinne
+'''
+import logging
+import simplejson
+
+from dataparser.ClientDocumentAnnotationDeleteAttributes import ClientDocumentAnnotationDeleteAttributes
+from dataparser.ClientDocumentAnnotationCreateAttributes import ClientDocumentAnnotationCreateAttributes
+from dataparser.AnnotationsGetAttributes import AnnotationsGetAttributes
+from document.models import Document
+from django.contrib.auth.models import User
+from document.models import Tag
+from document.models import Documentaryfile
+from document.models import Annotationdocument
+
+logger = logging.getLogger('document')
+
+class DocumentAnnotation(object):
+
+    def __init__(self, request):
+        logger.info('DocumentAnnotation init')
+        self.request = request
+           
+    def create(self):
+        logger.info('create DocumentAnnotation')
+        attr = ClientDocumentAnnotationCreateAttributes(self.request)
+        logger.info('get_user = ' + str(attr.get_user()))
+        logger.info('get_documentary_file = ' + str(attr.get_documentary_file()))
+        logger.info('get_annotation_id = ' + str(attr.get_annotation_id()))
+        logger.info('get_document = ' + str(attr.get_document()))
+        logger.info('get_tags = ' + str(attr.get_tags()))
+        logger.info('get_annotated_text = ' + str(attr.get_annotated_text()))
+        logger.info('get_annotated_text_page = ' + str(attr.get_annotated_text_page()))
+        logger.info('get_annotated_text_offset = ' + str(attr.get_annotated_text_offset()))
+
+        tags_attr = attr.get_tags()
+        try:
+            if attr.get_document() == '':
+                json = '{"error": "No document_id attribute in the http post request"}'
+                logger.info(json)
+                return json
+                
+            document = Document.objects.get(pk=attr.get_document())
+            try:
+                user_attr = User.objects.get(username=attr.get_user())
+                try:
+                    if attr.get_documentary_file() == '':
+                        json = '{"error": "No documentary_file_id attribute in the http post request" } '
+                        logger.info(json)
+                        return json
+                    documentaryfile = Documentaryfile.objects.get(pk=attr.get_documentary_file())
+                except Documentaryfile.DoesNotExist:
+                    json = '{"error": "Invalid DocumentaryFile Id"}'
+                    logger.info(json)
+                    return json
+                
+                logger.info('documentaryfile.user.name = ' + str(documentaryfile.user.username))
+                logger.info('user_attr.name = ' + str(user_attr.username))
+                
+                if documentaryfile.user.username == user_attr.username:
+                    annotationDocument = Annotationdocument(description=attr.get_annotation_id(),user=user_attr, document=document,visibility=documentaryfile.visibility,annoted_text=attr.get_annotated_text(),annoted_text_page=attr.get_annotated_text_page(),annoted_text_offset=attr.get_annotated_text_offset(),documentaryfile=documentaryfile )
+                    annotationDocument.save()
+                else:
+                    json= '{"error": "User does not matched"}'
+                    logger.info(json)
+            except User.DoesNotExist:
+                json= '{"error": "Invalid User Id"}'
+                logger.info(json)
+                return json
+           
+            if tags_attr: 
+                logger.info('tags associated to annotation')
+                for tag in tags_attr:
+                    logger.info('annotation_tag = ' + str(tag))
+                    tag_attr = Tag(value=tag,annotationdocument=annotationDocument)
+                    tag_attr.save()
+                                                  
+            json= '{"annotation_document_created":'  + str(annotationDocument.id) + '}'
+            logger.info(json)
+        except Document.DoesNotExist:
+            json= '{"error": "Invalid Document Id"}'
+            logger.info(json)
+            return json
+        
+        return json
+
+    def delete(self):
+        logger.info('delete DocumentAnnotation')
+        attr = ClientDocumentAnnotationDeleteAttributes(self.request)
+        logger.info('get_user = ' + str(attr.get_user()))
+        logger.info('get_annotation_id = ' + str(attr.get_annotation_id()))
+
+        annotationId= attr.get_annotation_id()
+        try:
+            annotationdocument = Annotationdocument.objects.get(pk=annotationId)
+            if attr.get_user() == annotationdocument.user.username:
+                annotationdocument.delete()
+                json= '{"annotation_document_deleted" :'  + str(annotationId) + '}'
+                logger.info(json)
+            else:
+                json= '{"Error": "User does not matched"}'
+                logger.info(json)
+        except Annotationdocument.DoesNotExist:
+            json= '{"error": "Annotationdocument Id not valid"}'
+            logger.info(json)
+       
+        return json
+    
+    def get_annotations(self):
+        attr = AnnotationsGetAttributes(self.request)
+        
+        if not attr.get_article():
+            json = '{"error msg": "document_id is not defined"}'
+            return json
+        
+        if attr.get_offset()=='' :
+            json = '{"error msg": "no offset defined"}'
+            return json
+        
+        if attr.get_count() == '' :
+            json = '{"error msg": "no count defined"}'
+            return json
+        
+        json = {}
+        json['document_id'] = int(attr.get_article())
+        json['offset'] = int(attr.get_offset())
+        json['count'] = int(attr.get_count())
+        total_count = 0
+        json['annotations'] = []
+        annotations = Annotationdocument.objects.filter(document_id=attr.get_article())
+        for annotation in annotations:
+            total_count += 1
+            if total_count-1 >= int(attr.get_offset()) and total_count-1 < int(attr.get_offset()) + int(attr.get_count()) :
+                jsonannotation = {'id':annotation.id}
+                jsonannotation['user'] = annotation.user.username
+                jsonannotation['annotated_text'] = annotation.annoted_text
+                jsonannotation['annotated_text_page'] = annotation.annoted_text_page
+                jsonannotation['annotated_text_offset'] = annotation.annoted_text_offset
+                jsonannotation['user_text'] = annotation.description
+                
+                jsonannotation['tags'] = []
+                tags = Tag.objects.filter(annotationdocument_id=annotation.id)
+
+                for tag in tags:
+                    jsontag = {'id': tag.value}
+                    jsontag = {'title':str(tag.value)}
+                    #TO DO URL ?
+                    jsonannotation['tags'].append(jsontag)
+                    
+                json['annotations'].append(jsonannotation)
+        json['total_count'] = total_count
+        result = simplejson.dumps(json)
+        logger.debug(result)
+        return result
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/controller/DocumentaryFile.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,181 @@
+'''
+Created on 27 juil. 2012
+
+@author: gerard
+'''
+import datetime
+import logging
+
+from time import  mktime 
+from django.core.cache import cache
+
+from dataparser.ClientDocumentaryFileAttributes import ClientDocumentaryFileAttributes
+from dataparser.ClientDocumentaryFileVisibilityAttributes import ClientDocumentaryFileVisibilityAttribute
+from dataparser.ClientDocumentaryFileDeleteAttributes import ClientDocumentaryFileDeleteAttributes
+from document.models import Cluster
+from document.models import Image
+from document.models import Document
+from document.models import Documentaryfile
+from document.models import Clusterdocumentweight
+from django.contrib.auth.models import User
+
+logger = logging.getLogger('document')
+
+class DocumentaryFile(object):
+
+    def __init__(self, request):
+        logger.info('DocumentaryFile init')
+        self.request = request
+           
+    def create(self):
+        logger.info('create DocumentaryFile')
+        attr = ClientDocumentaryFileAttributes(self.request)
+        logger.info('user = ' + str(attr.get_user()))
+        logger.info('query_id = ' + str(attr.get_query_id()))
+        logger.info('public = ' + str(attr.get_visibility()))
+        query_id = attr.get_query_id()   
+        print query_id   
+        key1 = cache.get(query_id)
+        if key1:
+            context = cache.get(key1['weblab_data_key'])
+            if context == None:
+                print "cache empty"
+                json = '{"Error": "Invalid query id"}'
+                logger.info(json)
+            else:
+                print "cache not empty"
+                list_concepts,concepts_with_detailed_documents_list = context
+                logger.info('list_concepts' + str(list_concepts))
+                logger.info('concepts_with_detailed_documents_list' + str(concepts_with_detailed_documents_list))
+                #parse to get the value to save the documentary file
+                json = self.parseAndSaveValue(list_concepts,concepts_with_detailed_documents_list, attr )
+        else:
+            json = '{"Error": "Invalid query id"}'
+            logger.info(json)
+        return json
+    
+    def visibilityChange(self):
+        logger.info('visibilityChange')
+        attr = ClientDocumentaryFileVisibilityAttribute(self.request)
+        logger.info('get_user = ' + str(attr.get_user()))
+        logger.info('get_documentary_file_id = ' + str(attr.get_documentary_file_id()))
+        logger.info('get_visibility = ' + str(attr.get_visibility()))
+        try:
+            documentaryfile = Documentaryfile.objects.get(pk=attr.get_documentary_file_id())
+        except Documentaryfile.DoesNotExist:
+            json = '{"Error": "Invalid documentary id"}'
+            logger.info(json)
+            return json
+        
+        logger.info('documentaryfile.user.name = ' + str(documentaryfile.user.username))
+        if documentaryfile.user.username == attr.get_user():
+            if attr.get_visibility() == 'public':
+                visibility_attr = True
+            elif attr.get_visibility() == 'private':
+                visibility_attr = False
+            else:
+                json = '{"Error" : "Invalid visibility parameter"}'
+                logger.info(json)
+                return json
+            
+            for thecluster in documentaryfile.cluster_set.all():
+                for thedocument in thecluster.document.all():
+                    for theannotationdoc in thedocument.annotationdocument_set.all():
+                        theannotationdoc.visibility = visibility_attr
+                        theannotationdoc.save()
+                       
+            documentaryfile.visibility = visibility_attr
+            documentaryfile.save()
+            json = '{"visibility": "' + attr.get_visibility() + '"}'
+            logger.info(json)
+        else:
+            json = '{"Error": "User does not matched"}'
+            logger.info(json)
+       
+        return json
+        
+    def delete(self):
+        logger.info('delete DocumentaryFile')
+        attr = ClientDocumentaryFileDeleteAttributes(self.request)
+        logger.info('get_user = ' + str(attr.get_user()))
+        logger.info('get_documentary_file_id = ' + str(attr.get_documentary_file_id()))
+        docId = attr.get_documentary_file_id()
+        if docId == '':
+            json= '{"Error": "No documentary_file_id attribute in the http post request"}'
+            logger.info(json)
+            return json
+        
+        try:
+            documentaryfile = Documentaryfile.objects.get(pk=attr.get_documentary_file_id())
+        except Documentaryfile.DoesNotExist:
+            json= '{"Error": "Invalid documentary_file_id"}'
+            logger.info(json)
+            return json
+        
+        logger.info('documentaryfile.user.username = ' + str(documentaryfile.user.username))
+        if documentaryfile.user.username == attr.get_user():
+            #verify if the associated documents are associated to another documentaryfile. if not delete the documents
+            for thecluster in documentaryfile.cluster_set.all():     
+                for thedocument in thecluster.document.all():
+                    nb = (Clusterdocumentweight.objects.filter(document_id=thedocument.documentId)).count()
+                    logger.info('nb' + str(nb))
+                    if nb == 1:
+                        thedocument.delete()
+           
+            documentaryfile.delete()
+            json = '{"documentary_file_deleted" :' + str(docId) + '}'
+            logger.info(json)
+        else:
+            json= '{"Error": "User does not match"}'
+            logger.info(json)
+       
+        return json  
+    
+    def parseAndSaveValue(self, list_concepts,concepts_with_detailed_documents_list, attr):
+        #parse the context
+
+        try:
+            user_attr = User.objects.get(username=attr.get_user)
+        except User.DoesNotExist, err:
+            logger.info(' Error: '+ str(err))
+            json = '{"Error": "User does not existed"}' 
+            return json
+        
+        visibility_attr = attr.get_visibility()
+        if visibility_attr == 'public':
+            visibility_bool = True
+        else:
+            visibility_bool = False
+            
+        title_attr = attr.get_title()
+        description_attr = attr.get_description()
+        #query_id_attr = attr.get_query_id()
+        #TODO url image
+        image1 = Image(url='url')
+        image1.save()
+        
+        now = datetime.datetime.now()
+        mktime(now.timetuple())
+        print mktime(now.timetuple())
+           
+        # create the documentary file
+        dossierDoc1 = Documentaryfile(title=title_attr, date=now , description=description_attr, visibility=visibility_bool, list_concepts=list_concepts, concepts_with_detailed_documents_list = concepts_with_detailed_documents_list, image=image1, user=user_attr)
+        dossierDoc1.save()
+        nb_concept = len(concepts_with_detailed_documents_list)
+        logger.info('nb_concept = ' + str(nb_concept))
+        for concept_index, concept_with_detailed_documents_list in enumerate(concepts_with_detailed_documents_list) :
+            cluster1 = Cluster.objects.create(title=list_concepts[concept_index]['title'], description=list_concepts[concept_index]['abstract'], weight=list_concepts[concept_index]['score'], documentaryfile=dossierDoc1, image=image1)
+            for detailed_document in concept_with_detailed_documents_list:
+                logger.info(detailed_document)
+                logger.info('cluster_id and doc_id = ' + str(list_concepts[concept_index]['title']+' and '+detailed_document['id']))
+                #Verify if the document exist already in database
+                try:
+                    doc1 = Document.objects.get(pk=detailed_document['id'])
+                except Document.DoesNotExist:
+                    doc1 = Document.objects.create(documentId=detailed_document['id'], title=detailed_document['title'],description=detailed_document['abstract'],date=datetime.datetime.fromtimestamp(int(detailed_document['date'])).isoformat(), image=image1)
+                    
+                clusterDocWeight1 = Clusterdocumentweight(cluster=cluster1, document=doc1, weight=detailed_document['weight'])
+                clusterDocWeight1.save()
+        json= '{"documentary_file_created":' + str(dossierDoc1.id) + '}'
+        logger.info(json)
+        return json
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/controller/DocumentaryFileAnnotation.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,118 @@
+'''
+Created on 10 Aout. 2012
+
+@author: Gerard
+'''
+
+import logging
+
+from dataparser.DocumentaryFileAnnotationAttributes import DocumentaryFileAnnotationCreateAttributes
+from dataparser.DocumentaryFileAnnotationDeleteAttributes import DocumentaryFileAnnotationDeleteAttributes
+from django.contrib.auth.models import User
+from document.models import Documentaryfile
+from document.models import AnnotationDocumentaryFile
+
+logger = logging.getLogger('document')
+
+class DocumentaryFileAnnotation(object):
+
+    def __init__(self, request):
+        self.request = request
+           
+    def create(self):
+        attr = DocumentaryFileAnnotationCreateAttributes(self.request)
+        
+        if attr.get_documentary_file_id() == '':
+            json = '{"error": "No documentary_file_id attribute in the http post request"}'
+            logger.info(json)
+            return json
+        
+        if attr.get_user()=='':
+            json = '{"error": "No user attribute in the http post request"}'
+            logger.info(json)
+            return json
+        
+        try:
+            user = User.objects.get(username=attr.get_user())
+        except User.DoesNotExist:
+            json = '{"error": "Invalid User Id"}'
+            logger.info(json)
+            return json
+        
+        try:
+            docFile = Documentaryfile.objects.get(id=attr.get_documentary_file_id(), user_id=user.id)
+        except Documentaryfile.DoesNotExist:
+            json = '{"error": "Invalid DocumentaryFile Id"}'
+            logger.info(json)
+            return json
+        
+        try:
+            annotation = AnnotationDocumentaryFile.objects.get(documentaryFile=docFile)
+            annotation.description = attr.get_annotation()
+            annotation.save(force_update=True)
+        except AnnotationDocumentaryFile.DoesNotExist:
+            annotation = AnnotationDocumentaryFile(description=attr.get_annotation(), user=user, documentaryFile=docFile)
+            annotation.save()
+        
+        json = '{"annotation_documentary_file_created":' + str(annotation.id) + '}'
+        logger.info(json)
+        return json
+            
+    def delete(self):
+        attr = DocumentaryFileAnnotationDeleteAttributes(self.request)
+        
+        if attr.get_documentary_file_id() == '':
+            json = '{"error": "No documentary_file_id attribute in the http post request"}'
+            logger.info(json)
+            return json
+                    
+        if attr.get_user() == '':
+            json = '{"error": "No user attribute in the http post request"}'
+            logger.info(json)
+            return json
+               
+        if attr.get_annotation_id() == '':
+            json = '{"error": "No annotation_id attribute in the http post request"}'
+            logger.info(json)
+            return json
+                    
+        try:
+            user = User.objects.get(username=attr.get_user())
+        except User.DoesNotExist:
+            json = '{"error": "Invalid User Id"}'
+            logger.info(json)
+            return json
+                  
+        try:
+            docFile = Documentaryfile.objects.get(id=attr.get_documentary_file_id(), user_id=user.id)
+        except Documentaryfile.DoesNotExist:
+            json = '{"error": "Invalid documentary file id"}'
+            logger.info(json)
+            return json
+             
+        anotationDocumentaryFileId= attr.get_annotation_id()
+        try:
+            anotationDocumentaryFile = AnnotationDocumentaryFile.objects.get(pk=anotationDocumentaryFileId)
+            if attr.get_user() == anotationDocumentaryFile.user.username:
+                print 'get_documentary_file_id'
+                print str(attr.get_documentary_file_id())
+                print 'anotationDocumentaryFile.documentaryFile.id'
+                print str(anotationDocumentaryFile.documentaryFile.id)
+                if str(attr.get_documentary_file_id()) == str(anotationDocumentaryFile.documentaryFile.id):
+                    anotationDocumentaryFile.delete()
+                    json= '{"annotation_documentary_file_deleted" :'  + str(anotationDocumentaryFileId) + '}'
+                    logger.info(json)
+                else:
+                    json= '{"Error": "DocumentaryFile does not matched"}'
+                    logger.info(json) 
+                    return json
+            else:
+                json= '{"Error": "User does not matched"}'
+                logger.info(json)
+                return json
+        except AnnotationDocumentaryFile.DoesNotExist:
+            json= '{"error": "AnnotationDocumentaryFile Id not valid"}'
+            logger.info(json)
+            return json
+            
+        return json   
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/controller/DocumentaryFiles.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,75 @@
+'''
+Created on 8 aout 2012
+
+@author: gerard
+'''
+import logging
+import simplejson
+
+from dataparser.DocumentaryFilesGetAttributes import DocumentaryFilesGetAttributes
+from document.models import AnnotationDocumentaryFile
+from document.models import Documentaryfile
+from document.models import Image
+from django.contrib.auth.models import User
+
+logger = logging.getLogger('document')
+
+class DocumentaryFiles(object):
+
+    def __init__(self, request):
+        self.request = request
+      
+    def get_files(self,user,offset,count):
+        print 'get_files'
+        print user
+        '''attr = DocumentaryFilesGetAttributes(self.request)'''
+        
+        '''if not attr.get_user():'''
+        if not user:
+            json = '{"error msg": "user is not defined"}'
+            return json
+        
+        '''if attr.get_offset() == '':'''
+        if not offset:
+            json = '{"error msg": "no offset defined"}'
+            return json
+        
+        '''if attr.get_count() == '':'''
+        if not count:
+            json = '{"error msg": "no count defined"}'
+            return json
+        
+        json = {}
+        '''json['offset'] = int(attr.get_offset())
+        json['count'] = int(attr.get_count())'''
+        json['offset'] = int(offset)
+        json['count'] = int(count)
+        total_count = 0
+        json['documentary_files'] = []
+        
+        the_user = User.objects.filter(username=user)
+        
+        if the_user:
+            documentaryFiles = Documentaryfile.objects.filter(user_id=the_user[0].id)
+            for docfile in documentaryFiles:
+                total_count += 1
+                if total_count - 1 >= int(offset) and total_count - 1 < int(offset) + int(count):
+                    jsonfile = {'id':docfile.id}
+                    jsonfile['date'] = docfile.date.isoformat()
+                    jsonfile['description'] = str(docfile.description)
+                    jsonfile['title'] = str(docfile.title)
+                    image = Image.objects.get(id=docfile.image_id)
+                    jsonfile['url_image'] = str(image.url)
+                    
+                    jsonfile['annotations'] = []
+                    annotations = AnnotationDocumentaryFile.objects.filter(documentaryFile_id=docfile.id)
+                    for annotation in annotations:
+                        jsonannotation = {'id':annotation.id}
+                        jsonannotation['user'] = annotation.user_id
+                        jsonannotation['text'] = annotation.description
+                        jsonfile['annotations'].append(jsonannotation)
+                    json['documentary_files'].append(jsonfile)
+        json['total_count'] = total_count
+        result = simplejson.dumps(json)
+        logger.debug(result)
+        return result  
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/controller/Documents.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,253 @@
+'''
+Created on 7 aout 2012
+
+@author: gerard
+'''
+import logging
+import simplejson
+import locale
+from datetime import datetime 
+
+from django.core.cache import cache
+from document.models import Annotationdocument
+from document.models import Tag, Cluster
+from mediapartdb.MediapartReader import MediapartReader
+from dataparser.ClientDocumentsGetAttributes import ClientDocumentsGetAttributes
+
+logger = logging.getLogger('document')
+
+# List of documents of a cluster with annotations
+class Documents(object):
+
+    def __init__(self, request):
+        self.request = request
+    
+    def get_documents(self,query,cluster,offset,count):
+        json = {}
+        
+        if query == 0:
+            attr = ClientDocumentsGetAttributes(self.request)
+       
+            if not attr.get_cluster():
+                json = '{"error msg": "no cluster_id defined"}'
+                return json
+            
+            if attr.get_offset() == '':
+                json = '{"error msg": "no offset defined"}'
+                return json
+            
+            if attr.get_count() == '':
+                json = '{"error msg": "no count defined"}'
+                return json
+            
+           
+            json['cluster_id'] = int(attr.get_cluster())
+            json['offset'] = int(attr.get_offset())
+            
+            query_id = int(attr.get_query_id())
+            cluster_id = int(attr.get_cluster())
+            offset = int(attr.get_offset())
+            count=int(attr.get_count())
+        else:
+            json['cluster_id'] = int(cluster)
+            json['offset'] = int(offset)
+            
+            query_id = int(query)
+            cluster_id = int(cluster)
+            offset = int(offset)
+            count=int(count)
+        
+        self.request.session['query'] = query_id
+        self.request.session['cluster'] = cluster_id
+        self.request.session['offset'] = offset
+        self.request.session['count'] = count
+         
+        '''print self.request.session['json']      
+        json_treemap = simplejson.loads(self.request.session['json'])      
+        print json_treemap.query'''
+        
+        d = simplejson.loads(self.request.session['json'])
+        print d     
+        jsonquery = {'text': d['query']['text']}
+        jsonquery['categories'] = d['query']['categories']
+        jsonquery['from_date'] = d['query']['from_date']
+        jsonquery['to_date'] = d['query']['to_date']
+        json['query'] = jsonquery
+           
+        json['documents'] = []
+        article_index=0
+        #if no query_id it is a cluster saved in database
+        if not query_id:
+            #json = '{"error msg": "query_id is not defined"}'
+            try:
+                cluster = Cluster.objects.get(pk=cluster_id)
+            except Cluster.DoesNotExist:
+                json = '{"error": "Invalid cluster id"}'
+                logger.info(json)
+                return json
+            json['cluster_title'] = cluster.title
+            reader = MediapartReader()
+            for thedocument in cluster.document.all():
+                article_index += 1
+                jsonarticle = {'id':str(thedocument.documentId)}
+                jsonarticle['title'] = str(thedocument.title)
+                jsonarticle['abstract'] = str(thedocument.description)
+                jsonarticle['url_document'] = reader.get_url(str(thedocument.documentId))
+                # TODO
+                jsonarticle['url_image'] = thedocument.image.url
+                '''jsonarticle['date'] = datetime.fromtimestamp(int(reader.get_date(str(thedocument.documentId)))).isoformat() + '.0Z''' 
+                
+                jsonarticle['date'] =(datetime.fromtimestamp(int(reader.get_date(str(thedocument.documentId))))).strftime('%d-%m-%Y')
+
+
+                jsonarticle['category'] = reader.get_category(str(thedocument.documentId))
+                
+                clusterDoc = cluster.clusterdocumentweight_set.get(document=thedocument)
+                jsonarticle['weight'] = clusterDoc.weight
+                tags = reader.get_tags(str(thedocument.documentId))
+                jsonarticle['tags'] = []
+                #tags in mediapart
+                for tag in tags:
+                    jsontag = {'title':tag[0].decode("windows-1252").encode("utf8")}
+                    jsonarticle['tags'].append(jsontag)
+
+                #tags in periplus
+                tags = thedocument.tag_set.all()
+                for tag in tags:
+                    jsontag = {'title':tag.value}
+                    jsonarticle['tags'].append(jsontag)
+                    
+                author = self.get_author(str(thedocument.documentId))
+                jsonarticle['author'] = []
+                jsonauthor = {'id':author['id'], 'name':author['name'], 'url':'http://www.mediapart.fr/biographie/'+str(author['id'])}
+                jsonarticle['author'].append(jsonauthor)
+                
+                json['documents'].append(jsonarticle)
+                jsonarticle['annotations'] = []
+                
+                for theannotationdoc in thedocument.annotationdocument_set.all():
+                    #Take only the public annotations
+                    if theannotationdoc.visibility == 1:
+                        jsonannotation = {'id':theannotationdoc.id}
+                        jsonannotation['user'] = theannotationdoc.user.username
+                        # Test the scope of the annotation (a part of an article or the global article)
+                        if theannotationdoc.annoted_text:
+                            jsonannotation['annotated_text'] = theannotationdoc.annoted_text
+                        jsonannotation['text'] = theannotationdoc.description
+                 
+                        jsonannotation['tags'] = []
+                        for theannotationdoctag in theannotationdoc.tag_set.all():
+                            logger.info('DOCUMENT_TAG_VALUE_OF_ANNOTATION == '+str(theannotationdoctag.value))
+                            jsontag = {'id': theannotationdoctag.value}
+                            jsontag = {'title':str(theannotationdoctag.value)}
+                            #TO DO URL ?
+                            jsonannotation['tags'].append(jsontag)
+                                
+                        jsonarticle['annotations'].append(jsonannotation)
+                                 
+        #if query_id it is a cluster saved in cache
+        else:
+            logger.info('query_id present')
+            dico = self.get_contextual_data(query_id)
+            if dico['weblab_data']:
+                list_concepts, concepts_with_detailed_documents_list = dico['weblab_data']
+                filtering = dico['filtering_params']
+                if not list_concepts:
+                    json = '{"error msg": "no data for the query id"}'
+                    return json
+                if int(cluster_id) >= len(list_concepts):
+                    json = '{"error msg": "invalid cluster id"}'
+                    return json
+                categories = filtering['categories']
+                print 'get_documents !!!!'
+                print categories
+                from_date = filtering['from_date']
+                print 'from_date'
+                print from_date
+                if from_date == '':
+                    from_date = 0
+                to_date = filtering['to_date']
+                print 'to_date'
+                print to_date
+                if to_date == '':
+                    to_date = 9999999999
+                json['cluster_title'] = list_concepts[cluster_id]['title']
+                for document in concepts_with_detailed_documents_list[cluster_id]:
+                    #Filtering by category
+                    if (categories != [] and document['category'] in categories) or (categories == []):
+                        #Filtering by date
+                        if int(document['date']) >= int(from_date) and int(document['date']) < int(to_date):
+                            article_index += 1
+                            #Filtering by offset
+                            if article_index - 1 >= offset and article_index - 1 < offset + count:
+                                jsonarticle = {'id':document['id']}
+                                jsonarticle['title'] = document['title']
+                                jsonarticle['abstract'] = document['abstract']
+                                jsonarticle['url_document'] = document['url']
+                                # TODO
+                                jsonarticle['url_image'] = document['image_path']
+                                #
+                                '''jsonarticle['date'] = datetime.fromtimestamp(int(document['date'])).isoformat() + '.0Z''' 
+                                locale.setlocale(locale.LC_ALL,'') 
+                                jsonarticle['date'] =(datetime.fromtimestamp(int(document['date']))).strftime('%d %B %Y')
+                                jsonarticle['category'] = document['category']
+                                jsonarticle['weight'] = float(document['weight'])
+                                reader = MediapartReader()
+                                tags = reader.get_tags(str(document['id']))
+                                jsonarticle['tags'] = []
+                                for tag in tags:
+                                    jsontag = {'title':tag[0].decode("windows-1252").encode("utf8")}
+                                    jsonarticle['tags'].append(jsontag)
+                                author = self.get_author(document['id'])
+                                print document['id']
+                                jsonarticle['author'] = []
+                                jsonauthor = {'id':author['id'], 'name':author['name'], 'url':'http://www.mediapart.fr/biographie/'+str(author['id'])}
+                                jsonarticle['author'].append(jsonauthor)
+                                
+                                json['documents'].append(jsonarticle)
+                                jsonarticle['annotations'] = []
+                                
+                                annotations = Annotationdocument.objects.all()
+                                for annotation in annotations:
+                                    #Take only the public annotations
+                                    if annotation.visibility == 1:
+                                        jsonannotation = {'id':annotation.id}
+                                        jsonannotation['user'] = annotation.user.username
+                                        # Test the scope of the annotation (a part of an article or the global article)
+                                        if annotation.annoted_text:
+                                            jsonannotation['annotated_text'] = annotation.annoted_text
+                                        jsonannotation['text'] = annotation.description
+                                 
+                                        jsonannotation['tags'] = []
+                                        tags = Tag.objects.filter(annotationdocument_id=annotation.id)
+            
+                                        for tag in tags:
+                                            jsontag = {'id': tag.value}
+                                            jsontag = {'title':str(tag.value)}
+                                            #TO DO URL ?
+                                            jsonannotation['tags'].append(jsontag)
+                                                
+                                        jsonarticle['annotations'].append(jsonannotation)
+            else:
+                json = '{"Error: Invalid query id"}'
+                return json
+        json['total_count'] = article_index
+        result = simplejson.dumps(json)
+        return result  
+    
+    def get_author(self, document_id):
+        reader = MediapartReader()
+        dico = reader.get_author(document_id)
+        return dico
+        
+    def get_contextual_data(self, query_id):
+        query_context = cache.get(query_id)
+        if not query_context:
+            print "Error: Invalid query id:"+query_id
+            logger.info("Error: Invalid query id:"+query_id)
+            weblab_data=None
+            query_context ={'filtering_params':{'from_date':0, 'to_date':0, 'categories':[]}}
+        else:
+            weblab_data = cache.get(query_context['weblab_data_key'])
+            
+        return {'weblab_data':weblab_data, 'filtering_params':query_context['filtering_params']}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/controller/Searcher.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,400 @@
+#! /usr/bin/env python
+#encoding:UTF-8
+import os
+import urllib
+import logging
+import simplejson
+import urllib2
+#import pdb
+
+from datetime import datetime 
+#from pysimplesoap.client import SoapClient
+
+from django.conf import settings
+from django.core.cache import cache
+from mediapartdb.MediapartReader import MediapartReader
+from dataparser.ClientSearchAttributes import ClientSearchAttributes
+from dataparser.WebLabParser import WebLabParser
+from document.models import Annotationcluster
+from document.models import Cluster
+
+logger = logging.getLogger('document')
+
+class Searcher(object):
+
+    def __init__(self, request):
+        self.request = request
+           
+    def streamgraph(self):
+        attr = ClientSearchAttributes(self.request)
+        list_concepts, concepts_with_detailed_documents_list = self.get_concepts_and_documents(attr)
+        # Building of the json for the streamgraph
+        streamgraph_json = self.build_filtered_streamgraph_(list_concepts, concepts_with_detailed_documents_list, attr)
+        return streamgraph_json
+    
+    def treemap(self):
+        print 'treemap!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
+        logger.info('REQUEST!!')
+        logger.info(self.request)
+        attr = ClientSearchAttributes(self.request)
+        list_concepts, concepts_with_detailed_documents_list = self.get_concepts_and_documents(attr)   
+        # Parse the response to build the json for the treemap
+        treemap_json = self.build_filtered_treemap_(list_concepts, concepts_with_detailed_documents_list, attr)
+        logger.info(treemap_json)
+       
+        print 'end treemap !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
+        
+        return treemap_json
+    
+    def get_concepts_and_documents(self, attr):
+        print 'refreshOnly ============================ '
+        print self.request.session['refreshOnly']
+                
+        if self.request.session['refreshOnly'] == True or attr.get_filtre() == 'ok':
+            key1 = self.request.session['key1']
+            query_id = self.request.session['query_id']   
+        else:
+            key1 = attr.get_hash_value_from_text_image()
+            print 'key1'
+            print key1
+            query_id = attr.get_hash_value()
+            print 'query_id'
+            print query_id
+            
+        
+        self.request.session['query_id'] = int(query_id)
+        self.request.session['key1'] = int(key1)
+       
+        #Test if the hash value is in the cache
+        if cache.get(key1) == None:
+            print "cache empty"
+            logger.info('cache empty')
+            list_concepts, concepts_with_detailed_documents_list = self.searchDataFromWebLab_(attr)
+            logger.info('list_concepts')
+            logger.info(list_concepts)
+            logger.info('concepts_with_detailed_documents_list')
+            logger.info(concepts_with_detailed_documents_list)
+            cache.set(key1, (list_concepts,concepts_with_detailed_documents_list), 60*60)
+            cache.set(query_id, {'weblab_data_key':key1, 'filtering_params':attr.get_filtering_params()}, 60*60)
+        else:
+            print "cache not empty"
+            context = cache.get(key1)
+            if context:
+                print "context not empty"
+                list_concepts,concepts_with_detailed_documents_list = context
+                cache.set(query_id, {'weblab_data_key':key1, 'filtering_params':attr.get_filtering_params()}, 60*60)
+            else:
+                print "context empty"
+                list_concepts = []
+                concepts_with_detailed_documents_list = []
+        
+        return list_concepts,concepts_with_detailed_documents_list
+    
+    def searchDataFromWebLab_(self, attr):
+        # get the image from the HTTP-POST or from an URL
+        self.requestImageLocalPath = self.getImageLocalPath(attr)
+        
+        # Build the WEBLAB request
+        searchInputValue = self.build_request_(attr)
+              
+        # Soap call            
+        if settings.SIMULATE_WEBLAB:
+            print attr.get_text()
+            if attr.get_text() == 'sarko':
+                response = self.simulate_response_v4_()
+            else:
+                response = self.simulate_response_v3_()
+                
+        else:
+            req = urllib2.Request("http://localhost:10000",headers = {"SOAPAction": "search","Content-Type": "text/xml;charset=UTF-8","Expect": "100 continue disabled"},
+                              data = searchInputValue)
+            try:
+                handle = urllib2.urlopen(req)
+                response = handle.read()
+            except Exception, err:
+                logger.info(' Error: '+str(err)) 
+
+        #logger.info(' Response!!!!!!!!!!! '+str(response)) 
+        # Delete the image analyzed by the CEA
+        if self.requestImageLocalPath != '':
+            os.remove(self.requestImageLocalPath)
+            
+        # Parse the response 
+        weblab_parser = WebLabParser()
+        list_concepts, concepts_with_documents_list = weblab_parser.parse(response)
+        #logger.info(' list_concepts!!!!!!!!!!! '+str(list_concepts))
+        #logger.info(' concepts_with_documents_list!!!!!!!!!!! '+str(concepts_with_documents_list))  
+        # Get dates of the documents
+        # return a list: [[(docid1,date1), (docid2,date2), ...],[(docid11,date11), (docid22,date22), ...], ...]
+        #documents_dates_concepts_list = self.get_documents_dates_(concepts_with_documents_list)  
+       
+        concepts_with_detailed_documents_list = self.add_doc_information_(concepts_with_documents_list)   
+        #logger.info(' concepts_with_detailed_documents_list!!!!!!!!!!! '+str(concepts_with_detailed_documents_list))  
+        return list_concepts, concepts_with_detailed_documents_list   
+         
+    def getImageLocalPath(self, attr):
+        imageLocalPath = ''
+        for key in self.request.FILES.keys():    
+            image_obj = self.request.FILES[key]
+            imageLocalPath = '%s/requestImages/%s' % (settings.STATICFILES_DIRS[0], image_obj.name)
+            fd = open(imageLocalPath, 'wb')
+            fd.write(image_obj.read())
+            fd.close()
+        
+        if imageLocalPath == '':
+            # No image uploaded in the HTTP-POST
+            image_url = attr.get_picture_url()
+            if image_url != '':
+                # An url is defined in the HTTP-POST parameter
+                segments = image_url.rpartition('/')
+                image_name = segments[2]
+                imageLocalPath = '%s/requestImages/%s' % (settings.STATICFILES_DIRS[0], image_name)
+                fd = open(imageLocalPath,'wb')
+                try:
+                    fd.write(urllib.urlopen(image_url).read())
+                except Exception, err:
+                    logger.info(' Error: '+str(err))
+                    imageLocalPath = ''
+                fd.close()       
+        return imageLocalPath
+                
+    def build_request_(self,attr):
+        text = attr.get_text()
+        image_path = self.requestImageLocalPath
+        
+        offset = 0
+        limit = 20
+        
+        searchInputValue ='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sear="http://weblab.ow2.org/core/1.2/services/searcher" xmlns:model="http://weblab.ow2.org/core/1.2/model#"><soapenv:Header/><soapenv:Body><sear:searchArgs>'
+        searchInputValue += '<usageContext>uc</usageContext><query xsi:type="model:SimilarityQuery" uri="periplus://simquery" weight="1.0"><resource uri="periplus://simquery/resource" xsi:type="model:Document">'
+        #Text
+        searchInputValue += '<mediaUnit xsi:type="model:Text" uri="periplus://simquery/resource/text">'
+        searchInputValue += '<annotation uri="periplus://simquery/resource/text/annotation"><data><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"><rdf:Description rdf:about="periplus://simquery/resource/text"><dc:language>fre</dc:language><rdf:type rdf:resource="DocumentCluster"/> </rdf:Description></rdf:RDF></data></annotation>'
+        searchInputValue += '<content>' + text + '</content>'
+        searchInputValue += '</mediaUnit>'
+        #Image
+        if image_path != '':
+            searchInputValue += '<mediaUnit xsi:type="model:Image" uri="periplus://simquery/resource/image">'
+            searchInputValue += '<annotation uri="periplus://simquery/resource/image/annotation"><data><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#"><rdf:Description rdf:about="simquery/resource/image">'
+            searchInputValue += '<wlp:hasNativeContent>' + image_path + '</wlp:hasNativeContent>' 
+            searchInputValue += '</rdf:Description></rdf:RDF></data></annotation>'
+            searchInputValue += '</mediaUnit>'
+  
+        searchInputValue += '</resource></query>'
+        searchInputValue += '<offset>'+ str(offset) + '</offset><limit>' + str(limit) +'</limit></sear:searchArgs></soapenv:Body></soapenv:Envelope>'
+        return searchInputValue
+     
+    def simulate_response_(self):
+               
+        res = '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:model="http://weblab.ow2.org/core/1.2/model#" xmlns:searcher="http://weblab.ow2.org/core/1.2/services/searcher" xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#">   <SOAP-ENV:Body>     <searcher:searchReturn xsi:type="searcher:searchArgs">       <resultSet uri="periplus://myresult">         <annotation uri="periplus://myresult/pok">           <data>             <rdf:RDF xmlns:wls="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">               <rdf:Description rdf:about="periplus://myresult">                 <wls:hasQueryOffset>0</wls:hasQueryOffset>                 <wls:hasNumberOfResults>3</wls:hasNumberOfResults>                 <wls:isResultOf rdf:resource="periplus://myquery" />                 <wls:hasHit rdf:resource="periplus://myquery/concept:0/hit:0" />                 <wls:hasHit rdf:resource="periplus://myquery/concept:0/hit:1" />                 <wls:hasHit rdf:resource="periplus://myquery/concept:1/hit:0" />               </rdf:Description>               <rdf:Description rdf:about="periplus://myquery/concept:0">                 <wls:hasNumberOfResults>2</wls:hasNumberOfResults>                 <wls:hasDescription><![CDATA[Neo-impressionism]]></wls:hasDescription>  <dc:title>Le neo-impressionism</dc:title>             </rdf:Description>               <rdf:Bag rdf:about="periplus://myquery/concept:0">                 <rdf:li rdf:resource="periplus://myquery/concept:0/hit:0" />                 <rdf:li rdf:resource="periplus://myquery/concept:0/hit:1" />               </rdf:Bag>               <rdf:Description rdf:about="periplus://myquery/concept:1">                 <wls:hasNumberOfResults>1</wls:hasNumberOfResults>                 <wls:hasDescription><![CDATA[Post-modernism]]></wls:hasDescription> <dc:title>Le post-modernism</dc:title>              </rdf:Description>               <rdf:Bag rdf:about="periplus://myquery/concept:1">                 <rdf:li rdf:resource="periplus://myquery/concept:1/hit:0" />               </rdf:Bag>               <rdf:Description rdf:about="periplus://myquery/concept:0/hit:0">                 <wls:inResultSetHit rdf:resource="periplus://myresult"/>                 <wls:isLinkedTo rdf:resource="periplus://fileRepository/resource_1"/>                 <wls:hasDescription><![CDATA[Neo-impressionism was coined by French art critic Felix Feneon in 1886 to describe an art movement founded by Georges Seurat. Seurat s greatest masterpiece...]]></wls:hasDescription>                 <wls:hasScore>0.7</wls:hasScore>                 <wls:hasRank>2</wls:hasRank>  <dc:identifier>149</dc:identifier>               <rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/>               </rdf:Description>               <rdf:Description rdf:about="periplus://myquery/concept:0/hit:1">                 <wls:inResultSetHit rdf:resource="periplus://myresult"/>                 <wls:isLinkedTo rdf:resource="periplus://fileRepository/resource_2"/>                 <wls:hasRelevantMediaUnit rdf:resource="periplus://fileRepository/resource_2/image_1" />                 <wls:hasDescription><![CDATA[Neo-Impressionism, initiated by Georges Seurat and transformed by Paul Signac, codified a new langage essential to the modernism of 20th century art.]]></wls:hasDescription>                 <wls:hasScore>0.875411158</wls:hasScore>                 <wls:hasRank>1</wls:hasRank>  <dc:identifier>155</dc:identifier>               <rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/>               </rdf:Description>               <rdf:Description rdf:about="periplus://myquery/concept:1/hit:0">                 <wls:inResultSetHit rdf:resource="periplus://myresult"/>                 <wls:isLinkedTo rdf:resource="periplus://fileRepository/resource_3"/>                 <wls:hasDescription><![CDATA[Neo-Impressionism (a.k.a. Divisionism or Pointillism) is a movement and a style. It is a subdivision of the larger avant-garde movement called Post-Impressionism.]]></wls:hasDescription>                 <wls:hasScore>0.9</wls:hasScore>                 <wls:hasRank>1</wls:hasRank>   <dc:identifier>141</dc:identifier>              <rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/>               </rdf:Description>             </rdf:RDF>           </data>         </annotation>         <resource xsi:type="model:Document" uri="periplus://fileRepository/resource_1">           <annotation uri="periplus://fileRepository/resource_1/annotation_1">             <data>               <rdf:RDF xmlns:wls="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">                 <rdf:Description rdf:about="periplus://fileRepository/resource_1">                   <dc:source>Wikipedia</dc:source>                   <wlp:hasNativeContent>/path/to/my/file/repository/file1337.html</wlp:hasNativeContent>                 </rdf:Description>               </rdf:RDF>             </data>           </annotation>         </resource>         <resource xsi:type="model:Document" uri="periplus://fileRepository/resource_2">           <annotation uri="periplus://fileRepository/resource_2/annotation_1">             <data>               <rdf:RDF xmlns:wls="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">                 <rdf:Description rdf:about="periplus://fileRepository/resource_2">                   <dc:source>http://www.impressionniste.net/neo-impressionism.htm</dc:source>                   <wlp:hasNativeContent>/path/to/my/file/repository/file1223.html</wlp:hasNativeContent>                 </rdf:Description>               </rdf:RDF>             </data>           </annotation>           <mediaUnit xsi:type="model:Image" uri="periplus://fileRepository/resource_2/image_1">             <annotation uri="periplus://fileRepository/resource_2/annotation_1">               <data>                 <rdf:RDF xmlns:wls="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">                   <rdf:Description rdf:about="periplus://fileRepository/resource_2">                     <wlp:hasExposedContent>/path/where/image/is/stored/img1223-1.jpg</wlp:hasExposedContent>                   </rdf:Description>                   <rdf:Description rdf:about="periplus://fileRepository/resource_2/image_1/scene_1">                     <dc:type>SCENE</dc:type>                   </rdf:Description>                   <rdf:Description rdf:about="periplus://fileRepository/resource_2/image_1/scene_2">                     <dc:type>SCENE</dc:type>                   </rdf:Description>                   <rdf:Bag rdf:about="periplus://fileRepository/resource_2/image_1/scene_1">                     <rdf:li rdf:resource="periplus://fileRepository/resource_2/image_1/scene_1/descr_1" />                     <rdf:li rdf:resource="periplus://fileRepository/resource_2/image_1/scene_1/descr_2" />                   </rdf:Bag>                   <rdf:Bag rdf:about="periplus://fileRepository/resource_2/image_1/scene_2">                     <rdf:li rdf:resource="periplus://fileRepository/resource_2/image_1/scene_2/descr_1" />                   </rdf:Bag>                   <rdf:Description rdf:about="periplus://fileRepository/resource_2/image_1/scene_1/descr_1">                     <dc:title>day</dc:title>                     <wls:hasScore>0.912</wls:hasScore>                   </rdf:Description>                   <rdf:Description rdf:about="periplus://fileRepository/resource_2/image_1/scene_1/descr_2">                     <dc:title>outside</dc:title>                     <wls:hasScore>0.847</wls:hasScore>                   </rdf:Description>                   <rdf:Description rdf:about="periplus://fileRepository/resource_2/image_1/scene_2/descr_1">                     <dc:title>urban</dc:title>                     <wls:hasScore>0.117</wls:hasScore>                   </rdf:Description>                 </rdf:RDF>               </data>             </annotation>           </mediaUnit>         </resource>         <resource xsi:type="model:Document" uri="periplus://fileRepository/resource_3">           <annotation uri="periplus://fileRepository/resource_3/annotation_1">             <data>               <rdf:RDF xmlns:wls="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">                 <rdf:Description rdf:about="periplus://fileRepository/resource_3">                   <dc:source>http://arthistory.about.com/od/modernarthistory/a/Neo-Impressionism-Art-History-101-Basics.htm</dc:source>                   <wlp:hasNativeContent>/path/to/my/file/repository/file10001.html</wlp:hasNativeContent>                 </rdf:Description>               </rdf:RDF>             </data>           </annotation>            <mediaUnit xsi:type="model:Image" uri="periplus://fileRepository/resource_3/image_1">             <annotation uri="periplus://fileRepository/resource_3/image_1/annotation_1">               <data>                 <rdf:RDF xmlns:wls="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">                   <rdf:Description rdf:about="periplus://fileRepository/resource_3/image_1">                     <wlp:hasExposedContent>/path/where/image/is/stored/img10001-1.jpg</wlp:hasExposedContent>                   </rdf:Description>                   <rdf:Description rdf:about="periplus://fileRepository/resource_3/image_1/object_1">                     <wls:hasRelevantSegment rdf:resource="periplus://fileRepository/resource_3/image_1/segment_1" />                     <dc:type>OBJECT</dc:type>                   </rdf:Description>                   <rdf:Bag rdf:about="periplus://fileRepository/resource_3/image_1/object_1">                     <rdf:li rdf:resource="periplus://fileRepository/resource_3/image_1/object_1/descr_1" />                     <rdf:li rdf:resource="periplus://fileRepository/resource_3/image_1/object_1/descr_2" />                   </rdf:Bag>                   <rdf:Description rdf:about="periplus://fileRepository/resource_3/image_1/object_1/descr_1">                     <dc:title>tree</dc:title>                     <wls:hasScore>0.99</wls:hasScore>                   </rdf:Description>                   <rdf:Description rdf:about="periplus://fileRepository/resource_3/image_1/object_1/descr_2">                     <dc:title>pine tree</dc:title>                     <wls:hasScore>0.44</wls:hasScore>                   </rdf:Description>                 </rdf:RDF>               </data>             </annotation>             <segment xsi:type="model:SpatialSegment" uri="periplus://fileRepository/resource_3/image_1/segment_1">               <coordinate x="12" y="14" />               <coordinate x="24" y="52" />             </segment>           </mediaUnit>           <mediaUnit xsi:type="model:Video" uri="periplus://fileRepository/resource_3/video_1">             <annotation uri="periplus://fileRepository/resource_3/video_1/annotation_1">               <data>                 <rdf:RDF xmlns:wls="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">                   <rdf:Description rdf:about="periplus://fileRepository/resource_3/video_1">                     <wlp:hasExposedContent>/path/where/video/is/stored/vid10001-1.avi</wlp:hasExposedContent>                     <wls:hasRelevantSegment rdf:resource="periplus://fileRepository/resource_3/video_1/segment_1" />                   </rdf:Description>                   <rdf:Description rdf:about="periplus://fileRepository/resource_3/video_1/shot_1">                     <wls:hasRelevantSegment rdf:resource="periplus://fileRepository/resource_3/video_1/segment_2" />                     <wlp:hasExposedContent>/path/to/a/key/image.jpg</wlp:hasExposedContent>                     <dc:type>SHOT</dc:type>                   </rdf:Description>                   <rdf:Bag rdf:about="periplus://fileRepository/resource_3/video_1/shot_1">                     <rdf:li rdf:resource="periplus://fileRepository/resource_3/video_1/shot_1/descr_1" />                     <rdf:li rdf:resource="periplus://fileRepository/resource_3/video_1/shot_1/descr_2" />                   </rdf:Bag>                   <rdf:Description rdf:about="periplus://fileRepository/resource_3/video_1/shot_1/descr_1">                     <dc:title>news report</dc:title>                     <wls:hasScore>0.87</wls:hasScore>                   </rdf:Description>                   <rdf:Description rdf:about="periplus://fileRepository/resource_3/video_1/shot_1/descr_2">                     <dc:title>CNN</dc:title>                     <wls:hasScore>0.51</wls:hasScore>                   </rdf:Description>                 </rdf:RDF>               </data>             </annotation>             <segment xsi:type="model:TemporalSegment" uri="periplus://fileRepository/resource_3/video_1/segment_1" start="10" end="14700" />             <segment xsi:type="model:SpatioTemporalSegment" uri="periplus://fileRepository/resource_3/video_1/segment_2" start="1000" end="3700" >               <coordinate x="0" y="1" />               <coordinate x="27" y="360" />             </segment>           </mediaUnit>         </resource>       </resultSet>     </searcher:searchReturn>   </SOAP-ENV:Body> </SOAP-ENV:Envelope>'
+        return res 
+    
+    def simulate_response_v2_(self):
+        
+        '''res = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><sear:searchReturn xmlns:model="http://weblab.ow2.org/core/1.2/model#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sear="http://weblab.ow2.org/core/1.2/services/searcher" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><resultSet uri="periplus://simquery/result" xmlns:model="http://weblab.ow2.org/core/1.2/model#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><annotation uri="periplus://simquery/result/annotation"><data><rdf:RDF xmlns:wlr="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://simquery/result/hit:7"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:7"/><wlr:hasDescription>Les coulisses du debat Sarkozy-Hollande. Rendez-vous traditionnel avant le deuxieme tour de la presidentielle, le debat </wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>1</wlr:hasRank><dc:identifier>test16.txt</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2"/><wlr:hasDescription>Un debat qui conclut sept mois d affrontement.Voici les sujets sur lesquels Francois Hollande et Nicolas Sarkozy etaient atten</wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>2</wlr:hasRank><dc:identifier>test11.txt</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4"/><wlr:hasDescription>Second tour : Hollande maintient son avance sur Sarkozy. Francois Hollande l\u2019emporterait avec 54% (-0,5 point) des voix contre 46% a Nic</wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>3</wlr:hasRank><dc:identifier>149</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:11"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:11"/><wlr:hasDescription>La cote de Sarkozy en hausse  chez les sympathisants du FN.Le president-candidat gagne 23 points de cote de confiance aupres des partisans</wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>4</wlr:hasRank><dc:identifier>test1.txt</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:17"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:17"/><wlr:hasDescription>Comment Sarkozy et Hollande ont prepare le debat. Le favori de la presidentielle et le president-candidat debattront ce mercredi</wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>5</wlr:hasRank><dc:identifier>155</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:21"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:21"/><wlr:hasDescription>Economistes, sans parti pris ideologique, nous soutenons Sarkozy. Nicolas Sarkozy nous semble le mieux capable de prendre l avenir a bras-le-cor</wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>6</wlr:hasRank><dc:identifier>test8.txt</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/cluster:0"><wlr:hasNumberOfResults>2</wlr:hasNumberOfResults><wlr:hasDescription>Francois le grand gagnant !</wlr:hasDescription><rdf:type rdf:resource="DocumentCluster"/><dc:title>Elections</dc:title></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:0"><rdf:li rdf:resource="periplus://simquery/result/hit:17"/><rdf:li rdf:resource="periplus://simquery/result/hit:4"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result"><wlr:hasQueryOffset>0</wlr:hasQueryOffset><wlr:hasNumberOfResults>6</wlr:hasNumberOfResults><wlr:isResultOf rdf:resource="periplus://simquery"/><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/model#ResultSet"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:7"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:11"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:17"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:21"/></rdf:Description></rdf:RDF></data></annotation><resource uri="periplus://resource:7" xsi:type="model:Document"><annotation uri="periplus://resource:7/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:7"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/7</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2" xsi:type="model:Document"><annotation uri="periplus://resource:2/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4" xsi:type="model:Document"><annotation uri="periplus://resource:4/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:11" xsi:type="model:Document"><annotation uri="periplus://resource:11/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:11"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/11</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:17" xsi:type="model:Document"><annotation uri="periplus://resource:17/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:17"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/17</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:21" xsi:type="model:Document"><annotation uri="periplus://resource:21/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:21"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/21</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource></resultSet></sear:searchReturn></soapenv:Body></soapenv:Envelope>'''
+        '''res = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><sear:searchReturn xmlns:model="http://weblab.ow2.org/core/1.2/model#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sear="http://weblab.ow2.org/core/1.2/services/searcher" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><resultSet uri="periplus://simquery/result" xmlns:model="http://weblab.ow2.org/core/1.2/model#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><annotation uri="periplus://simquery/result/annotation"><data><rdf:RDF xmlns:wlr="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://simquery/result/hit:7"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:7"/><wlr:hasDescription>Les coulisses du debat Sarkozy-Hollande. Rendez-vous traditionnel avant le deuxieme tour de la presidentielle, le debat </wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>1</wlr:hasRank><dc:identifier>test16.txt</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2"/><wlr:hasDescription>Un debat qui conclut sept mois d affrontement.Voici les sujets sur lesquels Francois Hollande et Nicolas Sarkozy etaient atten</wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>2</wlr:hasRank><dc:identifier>test11.txt</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4"/><wlr:hasDescription>Second tour : Hollande maintient son avance sur Sarkozy. Francois Hollande l\u2019emporterait avec 54% (-0,5 point) des voix contre 46% a Nic</wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>3</wlr:hasRank><dc:identifier>149</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:11"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:11"/><wlr:hasDescription>La cote de Sarkozy en hausse  chez les sympathisants du FN.Le president-candidat gagne 23 points de cote de confiance aupres des partisans</wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>4</wlr:hasRank><dc:identifier>test1.txt</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:17"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:17"/><wlr:hasDescription>Comment Sarkozy et Hollande ont prepare le debat. Le favori de la presidentielle et le president-candidat debattront ce mercredi</wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>5</wlr:hasRank><dc:identifier>155</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:21"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:21"/><wlr:hasDescription>Economistes, sans parti pris ideologique, nous soutenons Sarkozy. Nicolas Sarkozy nous semble le mieux capable de prendre l avenir a bras-le-cor</wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>6</wlr:hasRank><dc:identifier>test8.txt</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/cluster:0"><wlr:hasNumberOfResults>2</wlr:hasNumberOfResults><wlr:hasDescription>Francois le grand gagnant</wlr:hasDescription><rdf:type rdf:resource="DocumentCluster"/><dc:title>Elections</dc:title></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/cluster:1"><wlr:hasNumberOfResults>2</wlr:hasNumberOfResults><wlr:hasDescription>Francois le grand gagnant</wlr:hasDescription><rdf:type rdf:resource="DocumentCluster"/><dc:title>Hollande gagnant</dc:title></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/cluster:2"><wlr:hasNumberOfResults>2</wlr:hasNumberOfResults><wlr:hasDescription>Francois le grand gagnant</wlr:hasDescription><rdf:type rdf:resource="DocumentCluster"/><dc:title>Un avenir ?</dc:title></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/cluster:3"><wlr:hasNumberOfResults>2</wlr:hasNumberOfResults><wlr:hasDescription>Francois le grand gagnant</wlr:hasDescription><rdf:type rdf:resource="DocumentCluster"/><dc:title>New !</dc:title></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:0"><rdf:li rdf:resource="periplus://simquery/result/hit:17"/><rdf:li rdf:resource="periplus://simquery/result/hit:4"/></rdf:Bag><rdf:Bag rdf:about="periplus://simquery/result/cluster:1"><rdf:li rdf:resource="periplus://simquery/result/hit:17"/><rdf:li rdf:resource="periplus://simquery/result/hit:4"/></rdf:Bag><rdf:Bag rdf:about="periplus://simquery/result/cluster:2"><rdf:li rdf:resource="periplus://simquery/result/hit:17"/><rdf:li rdf:resource="periplus://simquery/result/hit:4"/></rdf:Bag><rdf:Bag rdf:about="periplus://simquery/result/cluster:3"><rdf:li rdf:resource="periplus://simquery/result/hit:17"/><rdf:li rdf:resource="periplus://simquery/result/hit:4"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result"><wlr:hasQueryOffset>0</wlr:hasQueryOffset><wlr:hasNumberOfResults>6</wlr:hasNumberOfResults><wlr:isResultOf rdf:resource="periplus://simquery"/><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/model#ResultSet"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:7"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:11"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:17"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:21"/></rdf:Description></rdf:RDF></data></annotation><resource uri="periplus://resource:7" xsi:type="model:Document"><annotation uri="periplus://resource:7/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:7"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/7</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2" xsi:type="model:Document"><annotation uri="periplus://resource:2/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4" xsi:type="model:Document"><annotation uri="periplus://resource:4/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:11" xsi:type="model:Document"><annotation uri="periplus://resource:11/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:11"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/11</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:17" xsi:type="model:Document"><annotation uri="periplus://resource:17/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:17"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/17</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:21" xsi:type="model:Document"><annotation uri="periplus://resource:21/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:21"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/21</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource></resultSet></sear:searchReturn></soapenv:Body></soapenv:Envelope>'''
+        res = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><sear:searchReturn xmlns:model="http://weblab.ow2.org/core/1.2/model#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sear="http://weblab.ow2.org/core/1.2/services/searcher" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><resultSet uri="periplus://simquery/result" xmlns:model="http://weblab.ow2.org/core/1.2/model#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><annotation uri="periplus://simquery/result/annotation"><data><rdf:RDF xmlns:wlr="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://simquery/result/hit:656"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:656"/><wlr:hasDescription>Bien sur, il n\'a rien fait comme prevu. Pour la remise du Prix Charle</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>1</wlr:hasRank><dc:identifier>12844</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1206"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1206"/><wlr:hasDescription>Crises de nerfs a l\'Elysee. Depuis dix jours, Nicolas Sar</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>2</wlr:hasRank><dc:identifier>17715</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1209"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1209"/><wlr:hasDescription>Crises de nerfs a l\'Elysee. Depuis dix jours, Nicolas Sar</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>3</wlr:hasRank><dc:identifier>17752</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1263"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1263"/><wlr:hasDescription>Dessin de Damien Glez: Le president syrien Bachar al-Assad arrive a Paris pour assister, le 13 juillet, au sommet de l\'Union mediterraneenne. Mardi, dans un entretien au F</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>4</wlr:hasRank><dc:identifier>18210</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1329"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1329"/><wlr:hasDescription>Pas besoin de longs discours, le choc des photos suffira. Voici les covers elyseennes d</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>5</wlr:hasRank><dc:identifier>18759</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1364"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1364"/><wlr:hasDescription>Cliquer sur les liens pour afficher les articles: Le recit de cette journee et les commentaires audio a chaud des deputes et les reactions au vote de Jack Lang. En acces libre, Le parti pris</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>6</wlr:hasRank><dc:identifier>18963</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2150"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2150"/><wlr:hasDescription>Pendant des mois, l\'hyperactivite, l\'arrogance et le style bling-bling du president francais ont enerve nos voisins europeens. La presse internationale crit</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>7</wlr:hasRank><dc:identifier>26028</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3051"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3051"/><wlr:hasDescription>&quot;Traumatisant&quot;, &quot;choquant&quot;. Les mots de Violaine Roussel,</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>8</wlr:hasRank><dc:identifier>34053</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3229"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3229"/><wlr:hasDescription>Aujourd\'hui au Mexique, Nicolas Sarkozy a voulu se saisir de ce dossier, qui a fait l\'objet d\'une debut de mobilisation sur le web, sur l\'impulsion d\'un site, cree par les parents de Florence Cassez. Depuis le Palais presidentiel</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>9</wlr:hasRank><dc:identifier>36049</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3525"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3525"/><wlr:hasDescription>Le nouveau Sarkoshow a fait jaser la presse occidentale. Mercredi 16 avril, au cours d</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>10</wlr:hasRank><dc:identifier>39028</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3841"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3841"/><wlr:hasDescription>Yvan Colonna poursuivait le president de la Republique, mercredi 3 juin, a Paris, pour atteinte a sa &quot;presomption d\'innocence&quot;. Le tribunal devra dire si Nic</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>11</wlr:hasRank><dc:identifier>42028</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4015"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4015"/><wlr:hasDescription>L\'affaire n\'avait, jusque-la, jamais ete ebruitee. Le nom du president de la Rep</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>12</wlr:hasRank><dc:identifier>43509</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4238"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4238"/><wlr:hasDescription>Avec la fin de l\'hospitalisation de Nicolas Sarkozy, sorti du Val-de-Grace lundi 27 juillet vers midi, une question titille: quelle lecon le chef de l\'Etat en tirera-t-il? Pour certains ministres, l\'affaire est entendue: cet incident, qui marque le &quot;surmenage&quot; du President de la Republique, doit l\'amener a lever le pied. L\'opposition, pour sa part, p</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>13</wlr:hasRank><dc:identifier>45556</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4548"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4548"/><wlr:hasDescription>Le 19 octobre 2006, celui qui n\'etait encore que ministre de l\'interieur declarait solennellement au journal de 20 heures de TF1: &quot;J\'ai ete accuse pendant dix-neuf mois par la justice de mon pays, sur la base du mensonge d\'un corbeau qui s\'etait allie avec un juge, d\'avoir un compte a l\'etranger.&quot; Pourtant, aux yeux de plusie</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>14</wlr:hasRank><dc:identifier>56842</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4722"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4722"/><wlr:hasDescription>Dans un livre a paraitre (Justice, le ministere infernal, par Mathieu Delahousse, Flammarion), un court passage eclaire les coulisses du dossier Clearstream tel qu\'il est gere par la Presidence de la Republique. &quot;Le President veut en avoir l</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>15</wlr:hasRank><dc:identifier>64587</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4741"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4741"/><wlr:hasDescription>La replique est anthologique. Mardi matin, Nicolas Sarkozy </wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>16</wlr:hasRank><dc:identifier>65797</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4763"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4763"/><wlr:hasDescription>Nicolas Sarkozy a surpris son monde, jeudi 15 octobre, en se rendant a Gandrange (Moselle). En visite le 4 fevrier 2008, </wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>17</wlr:hasRank><dc:identifier>66452</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4767"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4767"/><wlr:hasDescription>Petitions, videos loufoques, parodies, manifestations, sit-in, etc. Depuis l\'annonce de sa candid</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>18</wlr:hasRank><dc:identifier>66528</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5483"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5483"/><wlr:hasDescription>Trois mois apres le proces, la justice doit rendre sa decision dans l\'affaire Clearstream jeudi 28 janvier. Ironie du sort, c\'est precise</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>19</wlr:hasRank><dc:identifier>73799</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5874"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5874"/><wlr:hasDescription>Voici trois chronologies rassemblant quelque 350 dates qui retracent la premiere partie du mandat de Nicolas Sarkozy. Realisees par la redaction de</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>20</wlr:hasRank><dc:identifier>78735</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/cluster:0"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:0"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>Mon cluster 0</wlr:hasDescription><dc:title>Cluster 0</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:0"><rdf:li rdf:resource="periplus://simquery/result/hit:656"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:1"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:1"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>Mon cluster 1</wlr:hasDescription><dc:title>Cluster 1</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:1"><rdf:li rdf:resource="periplus://simquery/result/hit:1206"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:2"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:2"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>Mon cluster 3</wlr:hasDescription><dc:title>Cluster 3</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:2"><rdf:li rdf:resource="periplus://simquery/result/hit:1209"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:3"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:3"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:3"><rdf:li rdf:resource="periplus://simquery/result/hit:1263"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:4"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:4"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:4"><rdf:li rdf:resource="periplus://simquery/result/hit:1329"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:5"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:5"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:5"><rdf:li rdf:resource="periplus://simquery/result/hit:1364"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:6"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:6"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:6"><rdf:li rdf:resource="periplus://simquery/result/hit:2150"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:7"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:7"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:7"><rdf:li rdf:resource="periplus://simquery/result/hit:3051"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:8"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:8"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:8"><rdf:li rdf:resource="periplus://simquery/result/hit:3229"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:9"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:9"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:9"><rdf:li rdf:resource="periplus://simquery/result/hit:3525"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:10"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:10"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:10"><rdf:li rdf:resource="periplus://simquery/result/hit:3841"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:11"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:11"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:11"><rdf:li rdf:resource="periplus://simquery/result/hit:4015"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:12"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:12"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:12"><rdf:li rdf:resource="periplus://simquery/result/hit:4238"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:13"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:13"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:13"><rdf:li rdf:resource="periplus://simquery/result/hit:4548"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:14"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:14"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:14"><rdf:li rdf:resource="periplus://simquery/result/hit:4722"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:15"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:15"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:15"><rdf:li rdf:resource="periplus://simquery/result/hit:4741"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:16"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:16"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:16"><rdf:li rdf:resource="periplus://simquery/result/hit:4763"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:17"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:17"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:17"><rdf:li rdf:resource="periplus://simquery/result/hit:4767"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:18"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:18"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:18"><rdf:li rdf:resource="periplus://simquery/result/hit:5483"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:19"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:19"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:19"><rdf:li rdf:resource="periplus://simquery/result/hit:5874"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result"><wlr:hasQueryOffset>0</wlr:hasQueryOffset><wlr:hasNumberOfResults>20</wlr:hasNumberOfResults><wlr:isResultOf rdf:resource="periplus://simquery"/><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/model#ResultSet"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:656"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1206"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1209"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1263"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1329"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1364"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2150"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3051"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3229"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3525"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3841"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4015"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4238"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4548"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4722"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4741"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4763"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4767"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5483"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5874"/></rdf:Description></rdf:RDF></data></annotation><resource uri="periplus://resource:656" xsi:type="model:Document"><annotation uri="periplus://resource:656/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:656"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/656</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1206" xsi:type="model:Document"><annotation uri="periplus://resource:1206/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1206"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1206</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1209" xsi:type="model:Document"><annotation uri="periplus://resource:1209/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1209"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1209</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1263" xsi:type="model:Document"><annotation uri="periplus://resource:1263/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1263"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1263</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1329" xsi:type="model:Document"><annotation uri="periplus://resource:1329/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1329"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1329</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1364" xsi:type="model:Document"><annotation uri="periplus://resource:1364/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1364"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1364</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2150" xsi:type="model:Document"><annotation uri="periplus://resource:2150/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2150"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2150</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3051" xsi:type="model:Document"><annotation uri="periplus://resource:3051/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3051"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3051</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3229" xsi:type="model:Document"><annotation uri="periplus://resource:3229/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3229"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3229</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3525" xsi:type="model:Document"><annotation uri="periplus://resource:3525/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3525"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3525</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3841" xsi:type="model:Document"><annotation uri="periplus://resource:3841/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3841"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3841</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4015" xsi:type="model:Document"><annotation uri="periplus://resource:4015/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4015"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4015</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4238" xsi:type="model:Document"><annotation uri="periplus://resource:4238/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4238"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4238</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4548" xsi:type="model:Document"><annotation uri="periplus://resource:4548/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4548"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4548</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4722" xsi:type="model:Document"><annotation uri="periplus://resource:4722/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4722"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4722</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4741" xsi:type="model:Document"><annotation uri="periplus://resource:4741/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4741"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4741</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4763" xsi:type="model:Document"><annotation uri="periplus://resource:4763/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4763"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4763</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4767" xsi:type="model:Document"><annotation uri="periplus://resource:4767/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4767"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4767</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5483" xsi:type="model:Document"><annotation uri="periplus://resource:5483/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5483"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5483</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5874" xsi:type="model:Document"><annotation uri="periplus://resource:5874/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5874"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5874</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource></resultSet></sear:searchReturn></soapenv:Body></soapenv:Envelope>'
+        return res   
+    
+    def simulate_response_v3_(self):
+        
+        '''res = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><sear:searchReturn xmlns:model="http://weblab.ow2.org/core/1.2/model#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sear="http://weblab.ow2.org/core/1.2/services/searcher" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><resultSet uri="periplus://simquery/result" xmlns:model="http://weblab.ow2.org/core/1.2/model#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><annotation uri="periplus://simquery/result/annotation"><data><rdf:RDF xmlns:wlr="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://simquery/result/hit:7"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:7"/><wlr:hasDescription>Les coulisses du debat Sarkozy-Hollande. Rendez-vous traditionnel avant le deuxieme tour de la presidentielle, le debat </wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>1</wlr:hasRank><dc:identifier>test16.txt</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2"/><wlr:hasDescription>Un debat qui conclut sept mois d affrontement.Voici les sujets sur lesquels Francois Hollande et Nicolas Sarkozy etaient atten</wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>2</wlr:hasRank><dc:identifier>test11.txt</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4"/><wlr:hasDescription>Second tour : Hollande maintient son avance sur Sarkozy. Francois Hollande l\u2019emporterait avec 54% (-0,5 point) des voix contre 46% a Nic</wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>3</wlr:hasRank><dc:identifier>149</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:11"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:11"/><wlr:hasDescription>La cote de Sarkozy en hausse  chez les sympathisants du FN.Le president-candidat gagne 23 points de cote de confiance aupres des partisans</wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>4</wlr:hasRank><dc:identifier>test1.txt</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:17"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:17"/><wlr:hasDescription>Comment Sarkozy et Hollande ont prepare le debat. Le favori de la presidentielle et le president-candidat debattront ce mercredi</wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>5</wlr:hasRank><dc:identifier>155</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:21"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:21"/><wlr:hasDescription>Economistes, sans parti pris ideologique, nous soutenons Sarkozy. Nicolas Sarkozy nous semble le mieux capable de prendre l avenir a bras-le-cor</wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>6</wlr:hasRank><dc:identifier>test8.txt</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/cluster:0"><wlr:hasNumberOfResults>2</wlr:hasNumberOfResults><wlr:hasDescription>Francois le grand gagnant !</wlr:hasDescription><rdf:type rdf:resource="DocumentCluster"/><dc:title>Elections</dc:title></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:0"><rdf:li rdf:resource="periplus://simquery/result/hit:17"/><rdf:li rdf:resource="periplus://simquery/result/hit:4"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result"><wlr:hasQueryOffset>0</wlr:hasQueryOffset><wlr:hasNumberOfResults>6</wlr:hasNumberOfResults><wlr:isResultOf rdf:resource="periplus://simquery"/><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/model#ResultSet"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:7"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:11"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:17"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:21"/></rdf:Description></rdf:RDF></data></annotation><resource uri="periplus://resource:7" xsi:type="model:Document"><annotation uri="periplus://resource:7/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:7"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/7</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2" xsi:type="model:Document"><annotation uri="periplus://resource:2/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4" xsi:type="model:Document"><annotation uri="periplus://resource:4/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:11" xsi:type="model:Document"><annotation uri="periplus://resource:11/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:11"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/11</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:17" xsi:type="model:Document"><annotation uri="periplus://resource:17/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:17"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/17</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:21" xsi:type="model:Document"><annotation uri="periplus://resource:21/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:21"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/21</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource></resultSet></sear:searchReturn></soapenv:Body></soapenv:Envelope>'''
+        '''res = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><sear:searchReturn xmlns:model="http://weblab.ow2.org/core/1.2/model#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sear="http://weblab.ow2.org/core/1.2/services/searcher" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><resultSet uri="periplus://simquery/result" xmlns:model="http://weblab.ow2.org/core/1.2/model#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><annotation uri="periplus://simquery/result/annotation"><data><rdf:RDF xmlns:wlr="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://simquery/result/hit:7"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:7"/><wlr:hasDescription>Les coulisses du debat Sarkozy-Hollande. Rendez-vous traditionnel avant le deuxieme tour de la presidentielle, le debat </wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>1</wlr:hasRank><dc:identifier>test16.txt</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2"/><wlr:hasDescription>Un debat qui conclut sept mois d affrontement.Voici les sujets sur lesquels Francois Hollande et Nicolas Sarkozy etaient atten</wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>2</wlr:hasRank><dc:identifier>test11.txt</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4"/><wlr:hasDescription>Second tour : Hollande maintient son avance sur Sarkozy. Francois Hollande l\u2019emporterait avec 54% (-0,5 point) des voix contre 46% a Nic</wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>3</wlr:hasRank><dc:identifier>149</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:11"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:11"/><wlr:hasDescription>La cote de Sarkozy en hausse  chez les sympathisants du FN.Le president-candidat gagne 23 points de cote de confiance aupres des partisans</wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>4</wlr:hasRank><dc:identifier>test1.txt</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:17"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:17"/><wlr:hasDescription>Comment Sarkozy et Hollande ont prepare le debat. Le favori de la presidentielle et le president-candidat debattront ce mercredi</wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>5</wlr:hasRank><dc:identifier>155</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:21"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:21"/><wlr:hasDescription>Economistes, sans parti pris ideologique, nous soutenons Sarkozy. Nicolas Sarkozy nous semble le mieux capable de prendre l avenir a bras-le-cor</wlr:hasDescription><wlr:hasScore>0</wlr:hasScore><wlr:hasRank>6</wlr:hasRank><dc:identifier>test8.txt</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/cluster:0"><wlr:hasNumberOfResults>2</wlr:hasNumberOfResults><wlr:hasDescription>Francois le grand gagnant</wlr:hasDescription><rdf:type rdf:resource="DocumentCluster"/><dc:title>Elections</dc:title></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/cluster:1"><wlr:hasNumberOfResults>2</wlr:hasNumberOfResults><wlr:hasDescription>Francois le grand gagnant</wlr:hasDescription><rdf:type rdf:resource="DocumentCluster"/><dc:title>Hollande gagnant</dc:title></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/cluster:2"><wlr:hasNumberOfResults>2</wlr:hasNumberOfResults><wlr:hasDescription>Francois le grand gagnant</wlr:hasDescription><rdf:type rdf:resource="DocumentCluster"/><dc:title>Un avenir ?</dc:title></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/cluster:3"><wlr:hasNumberOfResults>2</wlr:hasNumberOfResults><wlr:hasDescription>Francois le grand gagnant</wlr:hasDescription><rdf:type rdf:resource="DocumentCluster"/><dc:title>New !</dc:title></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:0"><rdf:li rdf:resource="periplus://simquery/result/hit:17"/><rdf:li rdf:resource="periplus://simquery/result/hit:4"/></rdf:Bag><rdf:Bag rdf:about="periplus://simquery/result/cluster:1"><rdf:li rdf:resource="periplus://simquery/result/hit:17"/><rdf:li rdf:resource="periplus://simquery/result/hit:4"/></rdf:Bag><rdf:Bag rdf:about="periplus://simquery/result/cluster:2"><rdf:li rdf:resource="periplus://simquery/result/hit:17"/><rdf:li rdf:resource="periplus://simquery/result/hit:4"/></rdf:Bag><rdf:Bag rdf:about="periplus://simquery/result/cluster:3"><rdf:li rdf:resource="periplus://simquery/result/hit:17"/><rdf:li rdf:resource="periplus://simquery/result/hit:4"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result"><wlr:hasQueryOffset>0</wlr:hasQueryOffset><wlr:hasNumberOfResults>6</wlr:hasNumberOfResults><wlr:isResultOf rdf:resource="periplus://simquery"/><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/model#ResultSet"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:7"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:11"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:17"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:21"/></rdf:Description></rdf:RDF></data></annotation><resource uri="periplus://resource:7" xsi:type="model:Document"><annotation uri="periplus://resource:7/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:7"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/7</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2" xsi:type="model:Document"><annotation uri="periplus://resource:2/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4" xsi:type="model:Document"><annotation uri="periplus://resource:4/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:11" xsi:type="model:Document"><annotation uri="periplus://resource:11/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:11"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/11</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:17" xsi:type="model:Document"><annotation uri="periplus://resource:17/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:17"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/17</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:21" xsi:type="model:Document"><annotation uri="periplus://resource:21/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:21"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/21</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource></resultSet></sear:searchReturn></soapenv:Body></soapenv:Envelope>'''
+        res = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><sear:searchReturn xmlns:model="http://weblab.ow2.org/core/1.2/model#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sear="http://weblab.ow2.org/core/1.2/services/searcher" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><resultSet uri="periplus://simquery/result" xmlns:model="http://weblab.ow2.org/core/1.2/model#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><annotation uri="periplus://simquery/result/annotation"><data><rdf:RDF xmlns:wlr="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://simquery/result/hit:656"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:656"/><wlr:hasDescription>Bien sur, il n\'a rien fait comme prevu. Pour la remise du Prix Charle</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>1</wlr:hasRank><dc:identifier>12844</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1206"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1206"/><wlr:hasDescription>Crises de nerfs a l\'Elysee. Depuis dix jours, Nicolas Sar</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>2</wlr:hasRank><dc:identifier>17715</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1209"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1209"/><wlr:hasDescription>Crises de nerfs a l\'Elysee. Depuis dix jours, Nicolas Sar</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>3</wlr:hasRank><dc:identifier>17752</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1263"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1263"/><wlr:hasDescription>Dessin de Damien Glez: Le president syrien Bachar al-Assad arrive a Paris pour assister, le 13 juillet, au sommet de l\'Union mediterraneenne. Mardi, dans un entretien au F</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>4</wlr:hasRank><dc:identifier>18210</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1329"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1329"/><wlr:hasDescription>Pas besoin de longs discours, le choc des photos suffira. Voici les covers elyseennes d</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>5</wlr:hasRank><dc:identifier>18759</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1364"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1364"/><wlr:hasDescription>Cliquer sur les liens pour afficher les articles: Le recit de cette journee et les commentaires audio a chaud des deputes et les reactions au vote de Jack Lang. En acces libre, Le parti pris</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>6</wlr:hasRank><dc:identifier>18963</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2150"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2150"/><wlr:hasDescription>Pendant des mois, l\'hyperactivite, l\'arrogance et le style bling-bling du president francais ont enerve nos voisins europeens. La presse internationale crit</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>7</wlr:hasRank><dc:identifier>26028</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3051"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3051"/><wlr:hasDescription>&quot;Traumatisant&quot;, &quot;choquant&quot;. Les mots de Violaine Roussel,</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>8</wlr:hasRank><dc:identifier>34053</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3229"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3229"/><wlr:hasDescription>Aujourd\'hui au Mexique, Nicolas Sarkozy a voulu se saisir de ce dossier, qui a fait l\'objet d\'une debut de mobilisation sur le web, sur l\'impulsion d\'un site, cree par les parents de Florence Cassez. Depuis le Palais presidentiel</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>9</wlr:hasRank><dc:identifier>36049</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3525"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3525"/><wlr:hasDescription>Le nouveau Sarkoshow a fait jaser la presse occidentale. Mercredi 16 avril, au cours d</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>10</wlr:hasRank><dc:identifier>39028</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3841"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3841"/><wlr:hasDescription>Yvan Colonna poursuivait le president de la Republique, mercredi 3 juin, a Paris, pour atteinte a sa &quot;presomption d\'innocence&quot;. Le tribunal devra dire si Nic</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>11</wlr:hasRank><dc:identifier>42028</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4015"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4015"/><wlr:hasDescription>L\'affaire n\'avait, jusque-la, jamais ete ebruitee. Le nom du president de la Rep</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>12</wlr:hasRank><dc:identifier>43509</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4238"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4238"/><wlr:hasDescription>Avec la fin de l\'hospitalisation de Nicolas Sarkozy, sorti du Val-de-Grace lundi 27 juillet vers midi, une question titille: quelle lecon le chef de l\'Etat en tirera-t-il? Pour certains ministres, l\'affaire est entendue: cet incident, qui marque le &quot;surmenage&quot; du President de la Republique, doit l\'amener a lever le pied. L\'opposition, pour sa part, p</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>13</wlr:hasRank><dc:identifier>45556</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4548"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4548"/><wlr:hasDescription>Le 19 octobre 2006, celui qui n\'etait encore que ministre de l\'interieur declarait solennellement au journal de 20 heures de TF1: &quot;J\'ai ete accuse pendant dix-neuf mois par la justice de mon pays, sur la base du mensonge d\'un corbeau qui s\'etait allie avec un juge, d\'avoir un compte a l\'etranger.&quot; Pourtant, aux yeux de plusie</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>14</wlr:hasRank><dc:identifier>56842</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4722"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4722"/><wlr:hasDescription>Dans un livre a paraitre (Justice, le ministere infernal, par Mathieu Delahousse, Flammarion), un court passage eclaire les coulisses du dossier Clearstream tel qu\'il est gere par la Presidence de la Republique. &quot;Le President veut en avoir l</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>15</wlr:hasRank><dc:identifier>64587</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4741"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4741"/><wlr:hasDescription>La replique est anthologique. Mardi matin, Nicolas Sarkozy </wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>16</wlr:hasRank><dc:identifier>65797</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4763"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4763"/><wlr:hasDescription>Nicolas Sarkozy a surpris son monde, jeudi 15 octobre, en se rendant a Gandrange (Moselle). En visite le 4 fevrier 2008, </wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>17</wlr:hasRank><dc:identifier>66452</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4767"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4767"/><wlr:hasDescription>Petitions, videos loufoques, parodies, manifestations, sit-in, etc. Depuis l\'annonce de sa candid</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>18</wlr:hasRank><dc:identifier>66528</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5483"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5483"/><wlr:hasDescription>Trois mois apres le proces, la justice doit rendre sa decision dans l\'affaire Clearstream jeudi 28 janvier. Ironie du sort, c\'est precise</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>19</wlr:hasRank><dc:identifier>73799</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5874"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5874"/><wlr:hasDescription>Voici trois chronologies rassemblant quelque 350 dates qui retracent la premiere partie du mandat de Nicolas Sarkozy. Realisees par la redaction de</wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>20</wlr:hasRank><dc:identifier>78735</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/cluster:0"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:0"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>Mon cluster 0</wlr:hasDescription><dc:title>Cluster 0</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:0"><rdf:li rdf:resource="periplus://simquery/result/hit:656"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:1"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:1"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>Mon cluster 1</wlr:hasDescription><dc:title>HAHA le Cluster 1</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:1"><rdf:li rdf:resource="periplus://simquery/result/hit:1206"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:2"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:2"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>HOUHOU Mon cluster 3</wlr:hasDescription><dc:title>Cluster 3</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:2"><rdf:li rdf:resource="periplus://simquery/result/hit:1209"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:3"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:3"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>Coucou Sarko</wlr:hasDescription><dc:title>Sarko</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:3"><rdf:li rdf:resource="periplus://simquery/result/hit:1263"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:4"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:4"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>Ha Hollande</wlr:hasDescription><dc:title>Hollande gagnant</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:4"><rdf:li rdf:resource="periplus://simquery/result/hit:1329"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:5"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:5"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:5"><rdf:li rdf:resource="periplus://simquery/result/hit:1364"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:6"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:6"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:6"><rdf:li rdf:resource="periplus://simquery/result/hit:2150"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:7"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:7"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:7"><rdf:li rdf:resource="periplus://simquery/result/hit:3051"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:8"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:8"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:8"><rdf:li rdf:resource="periplus://simquery/result/hit:3229"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:9"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:9"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:9"><rdf:li rdf:resource="periplus://simquery/result/hit:3525"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:10"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:10"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:10"><rdf:li rdf:resource="periplus://simquery/result/hit:3841"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:11"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:11"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:11"><rdf:li rdf:resource="periplus://simquery/result/hit:4015"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:12"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:12"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:12"><rdf:li rdf:resource="periplus://simquery/result/hit:4238"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:13"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:13"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:13"><rdf:li rdf:resource="periplus://simquery/result/hit:4548"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:14"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:14"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:14"><rdf:li rdf:resource="periplus://simquery/result/hit:4722"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:15"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:15"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:15"><rdf:li rdf:resource="periplus://simquery/result/hit:4741"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:16"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:16"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:16"><rdf:li rdf:resource="periplus://simquery/result/hit:4763"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:17"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:17"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:17"><rdf:li rdf:resource="periplus://simquery/result/hit:4767"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:18"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:18"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:18"><rdf:li rdf:resource="periplus://simquery/result/hit:5483"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:19"><wlr:hasNumberOfResults>1</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:19"/><wlr:hasScore>0</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>No title available</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:19"><rdf:li rdf:resource="periplus://simquery/result/hit:5874"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result"><wlr:hasQueryOffset>0</wlr:hasQueryOffset><wlr:hasNumberOfResults>20</wlr:hasNumberOfResults><wlr:isResultOf rdf:resource="periplus://simquery"/><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/model#ResultSet"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:656"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1206"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1209"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1263"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1329"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1364"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2150"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3051"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3229"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3525"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3841"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4015"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4238"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4548"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4722"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4741"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4763"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4767"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5483"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5874"/></rdf:Description></rdf:RDF></data></annotation><resource uri="periplus://resource:656" xsi:type="model:Document"><annotation uri="periplus://resource:656/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:656"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/656</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1206" xsi:type="model:Document"><annotation uri="periplus://resource:1206/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1206"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1206</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1209" xsi:type="model:Document"><annotation uri="periplus://resource:1209/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1209"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1209</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1263" xsi:type="model:Document"><annotation uri="periplus://resource:1263/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1263"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1263</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1329" xsi:type="model:Document"><annotation uri="periplus://resource:1329/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1329"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1329</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1364" xsi:type="model:Document"><annotation uri="periplus://resource:1364/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1364"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1364</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2150" xsi:type="model:Document"><annotation uri="periplus://resource:2150/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2150"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2150</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3051" xsi:type="model:Document"><annotation uri="periplus://resource:3051/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3051"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3051</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3229" xsi:type="model:Document"><annotation uri="periplus://resource:3229/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3229"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3229</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3525" xsi:type="model:Document"><annotation uri="periplus://resource:3525/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3525"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3525</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3841" xsi:type="model:Document"><annotation uri="periplus://resource:3841/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3841"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3841</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4015" xsi:type="model:Document"><annotation uri="periplus://resource:4015/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4015"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4015</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4238" xsi:type="model:Document"><annotation uri="periplus://resource:4238/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4238"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4238</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4548" xsi:type="model:Document"><annotation uri="periplus://resource:4548/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4548"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4548</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4722" xsi:type="model:Document"><annotation uri="periplus://resource:4722/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4722"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4722</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4741" xsi:type="model:Document"><annotation uri="periplus://resource:4741/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4741"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4741</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4763" xsi:type="model:Document"><annotation uri="periplus://resource:4763/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4763"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4763</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4767" xsi:type="model:Document"><annotation uri="periplus://resource:4767/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4767"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4767</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5483" xsi:type="model:Document"><annotation uri="periplus://resource:5483/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5483"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5483</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5874" xsi:type="model:Document"><annotation uri="periplus://resource:5874/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5874"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5874</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource></resultSet></sear:searchReturn></soapenv:Body></soapenv:Envelope>'
+        return res
+    
+    def simulate_response_v4_(self):
+        '''res = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><sear:searchReturn xmlns:model="http://weblab.ow2.org/core/1.2/model#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sear="http://weblab.ow2.org/core/1.2/services/searcher" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><resultSet uri="periplus://simquery/result" xmlns:model="http://weblab.ow2.org/core/1.2/model#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><annotation uri="periplus://simquery/result/annotation"><data><rdf:RDF xmlns:wlr="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://simquery/result/hit:3883"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3883"/><wlr:hasDescription>Proche de S�gol�ne Royal, Fran�ois Rebsamen a un temps envisag� de faire le trait-d\'union avec les amis de Fran�ois Hollande pour renverser Martine Aubry de la direction du PS. Rentr� dans le rang, il n\'en </wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>1</wlr:hasRank><dc:identifier>42360</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3256"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3256"/><wlr:hasDescription>Du 16 au 22 mars, les quelque 70.000 adh�rents franciliens (rev</wlr:hasDescription><wlr:hasScore>0.970595</wlr:hasScore><wlr:hasRank>2</wlr:hasRank><dc:identifier>36313</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3328"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3328"/><wlr:hasDescription>Sans surprise, Val�rie P�cresse l\'a largement emport�, dimanche 22 mars, sur son coll�gue Roger Karoutchi lors de la primaire organis�e chez les militants UMP de l\'Ile-de-France. Entre le 16 et le 22 mars, 48</wlr:hasDescription><wlr:hasScore>0.970595</wlr:hasScore><wlr:hasRank>3</wlr:hasRank><dc:identifier>37060</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3844"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3844"/><wlr:hasDescription>Du changement de statut de La Poste, il n\'a �t� que peu question durant la campagne des �lections europ�ennes, comme si la r�forme avait pris du retard ou n\'�tait plus d\'actualit�. Et pourtant, il n\'en est rien</wlr:hasDescription><wlr:hasScore>0.961693</wlr:hasScore><wlr:hasRank>4</wlr:hasRank><dc:identifier>42059</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:271"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:271"/><wlr:hasDescription>Jeudi 27 mars, dans la soir�e, Nicolas Sarkozy a finalement promis que l\'Assembl�e nationale pourrait d�battre de sa d�cision toute fra�che d\'envoyer des soldats suppl�mentaires en Afghanistan (probablement un millier). Notifi�e la veille outre-manc</wlr:hasDescription><wlr:hasScore>0.95304</wlr:hasScore><wlr:hasRank>5</wlr:hasRank><dc:identifier>5581</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1732"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1732"/><wlr:hasDescription>(Si la fin de cette page s\'affiche mal, rafra�chissez votre �cran- touche F5) A l\'�poque, l\'Unita avait contest� par les armes le r�sultat favorable au MPLA, replongeant le pays dans la guerre. Le combat des deux ex-compagn</wlr:hasDescription><wlr:hasScore>0.944239</wlr:hasScore><wlr:hasRank>6</wlr:hasRank><dc:identifier>22545</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5803"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5803"/><wlr:hasDescription>Lot de consolation pour la droite : La Guyane basculerait. Selon des chiffres encore pro</wlr:hasDescription><wlr:hasScore>0.939834</wlr:hasScore><wlr:hasRank>7</wlr:hasRank><dc:identifier>78083</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1744"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1744"/><wlr:hasDescription>Une bombe dort au p�le financier du tribunal de grande instance de Paris. Les juges Fran�oise Desset et</wlr:hasDescription><wlr:hasScore>0.936393</wlr:hasScore><wlr:hasRank>8</wlr:hasRank><dc:identifier>22631</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1745"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1745"/><wlr:hasDescription>Une bombe dort au p�le financier du tribunal de Paris. Les juges Fran�oise Desset et</wlr:hasDescription><wlr:hasScore>0.935581</wlr:hasScore><wlr:hasRank>9</wlr:hasRank><dc:identifier>22632</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:96"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:96"/><wlr:hasDescription>C\'�tait le 18 mars 2001. Au soir du second tour des �l</wlr:hasDescription><wlr:hasScore>0.930653</wlr:hasScore><wlr:hasRank>10</wlr:hasRank><dc:identifier>423</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4210"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4210"/><wlr:hasDescription>L\'�change �pistolaire entre Martine Aubry et Manuel Valls a ouvert la comp�tition des �gos au PS. Mais la pr�sidente de la r�gi</wlr:hasDescription><wlr:hasScore>0.930653</wlr:hasScore><wlr:hasRank>11</wlr:hasRank><dc:identifier>45247</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3972"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3972"/><wlr:hasDescription>L\'affaire de Karachi qui pr�occupe au plus haut sommet de l\'Etat est apparue au d�tour d\'une enqu�te purement financi�re, qui rec�le potentiellement en elle-m�me d\'autres scandales d\'Etat, largement �voqu�s par Mediapart voil� d�j� neuf mois. Les juges du p�le financier p</wlr:hasDescription><wlr:hasScore>0.930406</wlr:hasScore><wlr:hasRank>12</wlr:hasRank><dc:identifier>43103</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3973"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3973"/><wlr:hasDescription>L\'affaire de Karachi qui pr�occupe au plus haut sommet de l\'Etat est apparue au d�tour d\'une enqu�te purement financi�re, qui rec�le potentiellement en elle-m�me d\'autres scandales d\'Etat, largement �voqu�s par Mediapart voil� d�j� neuf mois. Les juges du p�le financier p</wlr:hasDescription><wlr:hasScore>0.930406</wlr:hasScore><wlr:hasRank>13</wlr:hasRank><dc:identifier>43104</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2475"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2475"/><wlr:hasDescription>Mardi 2 d�cembre, dans un sous-sol de l\'Assembl�e nationale, Martine Aubry a d�livr� une feuille de route toute fra�che aux d�put�s socialistes. &quot;On red�marre, on est en marc</wlr:hasDescription><wlr:hasScore>0.928015</wlr:hasScore><wlr:hasRank>14</wlr:hasRank><dc:identifier>28930</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3789"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3789"/><wlr:hasDescription>&quot;Dans une telle campagne o� les petites phrases et les effets m�diatiques semblent plus compter que le fond, de belles images au 20 heures ne peuvent pas faire de mal.&quot; Ce commentaire d\'un dirigean</wlr:hasDescription><wlr:hasScore>0.928015</wlr:hasScore><wlr:hasRank>15</wlr:hasRank><dc:identifier>41525</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5767"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5767"/><wlr:hasDescription>Elle n\'est pas encore la plus chouette du monde, mais la gauche fran�aise a au moins �vit� d\'�tre la plus b�te, au moment de discuter unit� avant le second tour des r�gionales. Mardi � 18h, dix-huit listes </wlr:hasDescription><wlr:hasScore>0.927953</wlr:hasScore><wlr:hasRank>16</wlr:hasRank><dc:identifier>77730</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1036"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1036"/><wlr:hasDescription>N\'en doutons pas, la semaine sociale sera � la contestation tous azimuts et, si le sujet n\'�tait pas grave et s�rieux, un esprit malicieux pourrait voir dans ce tintamarre une nouvelle expression des contradictions fran�aises. A nouveau se pose le probl�me</wlr:hasDescription><wlr:hasScore>0.926465</wlr:hasScore><wlr:hasRank>17</wlr:hasRank><dc:identifier>16313</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:133"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:133"/><wlr:hasDescription>Face au pouvoir central incarn� par le sarkozysme et ses d�pendances, s\'installe un contre-pouvoir territorial port� par le socialisme et ses associ�s. La France est &quot; coup�e en deu</wlr:hasDescription><wlr:hasScore>0.924092</wlr:hasScore><wlr:hasRank>18</wlr:hasRank><dc:identifier>603</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3675"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3675"/><wlr:hasDescription>Il faudra songer � remercier Nicolas Sarkozy. Sa pratique du pouvoir, sa ge</wlr:hasDescription><wlr:hasScore>0.914044</wlr:hasScore><wlr:hasRank>19</wlr:hasRank><dc:identifier>40407</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5828"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5828"/><wlr:hasDescription>Jacques Julliard, 77 ans, entre en dissidence. Figure historique de la &quot;deux</wlr:hasDescription><wlr:hasScore>0.907456</wlr:hasScore><wlr:hasRank>20</wlr:hasRank><dc:identifier>78268</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3993"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3993"/><wlr:hasDescription>&quot;Vive la France !&quot; Apr�s quarante minutes, Nicolas Sarkozy en a termin� avec son &quot;grand&quot; discours du Congr�s. Sous les applaudissements - p</wlr:hasDescription><wlr:hasScore>0.898695</wlr:hasScore><wlr:hasRank>21</wlr:hasRank><dc:identifier>43349</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4870"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4870"/><wlr:hasDescription>Mais pas question pour l\'ancien pr�sident de se faire pi�ger � l\'antenne sur les affaires de la mairie de Paris, qui vont donc �tre jug�es: l\'op�ration de communication a �t� soigneusement pr�par�e, avec une promotion restreinte, en terrain connu : un hebdomadaire (Le Point sort les bonnes feuilles mercredi), un quotidien (Le Figaro aura les honneurs d\'une interview jeudi), une radio (Europe 1, au micro de Jean-Pierre Elkabbach), et une t�l�vision (il sera l\'invit� de Michel Drucker dans &quot;Vivement Dimanche&quot;, sur France 2, le 29 novembre). Le livre a �t� envoy� au com</wlr:hasDescription><wlr:hasScore>0.895167</wlr:hasScore><wlr:hasRank>22</wlr:hasRank><dc:identifier>67685</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2156"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2156"/><wlr:hasDescription>Les d�bats s\'encha�nent au PS, sans que les �quilibres internes ne paraissent �voluer. L\'incertitude persiste, aucun</wlr:hasDescription><wlr:hasScore>0.886579</wlr:hasScore><wlr:hasRank>23</wlr:hasRank><dc:identifier>26098</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3849"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3849"/><wlr:hasDescription>&quot;Celui qui gagne, c\'est celui qui arrive en t�te&quot;, a rappel� Xavier Bertrand, le secr�taire g�n�ral de l\'UMP, lors du dernier meeting europ�en de la majorit�, jeudi soir, porte de Versailles, � Paris (lire notre article). On le sait d�j�, dimanche soi</wlr:hasDescription><wlr:hasScore>0.885014</wlr:hasScore><wlr:hasRank>24</wlr:hasRank><dc:identifier>42094</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3802"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3802"/><wlr:hasDescription>Eparpiller les europ�ennes fa�on puzzle, pour mieux les neutraliser : gaullistes et socialistes l\'avaient r�v�, le giscardien Raffarin l\'a fait. Le proc�s �tait instruit depu</wlr:hasDescription><wlr:hasScore>0.881176</wlr:hasScore><wlr:hasRank>25</wlr:hasRank><dc:identifier>41650</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1320"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1320"/><wlr:hasDescription>&quot;Nous h�sitions entre le non et le non; ce sera non&quot;, a ironis� le s�nateur socialiste Bernard Frimat, mercredi 16 juillet, en r�ponse � l\'interview de Nicolas Sarkozy sur la r�forme des institutions, annon�ant in extremis dans Le Monde quelques initiatives en faveur des droits de l\'opposition. Ces d�clarations pr�sidentiel</wlr:hasDescription><wlr:hasScore>0.878407</wlr:hasScore><wlr:hasRank>26</wlr:hasRank><dc:identifier>18705</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1015"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1015"/><wlr:hasDescription>Jeudi soir, sur le plateau d\'&quot;A vous de juger&quot;, sur France 2, la photo de famille de l\'UMP �tait parfaite. Derri�re Fran�ois Fillon, inv</wlr:hasDescription><wlr:hasScore>0.871634</wlr:hasScore><wlr:hasRank>27</wlr:hasRank><dc:identifier>16105</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4397"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4397"/><wlr:hasDescription>L\'alliance est de circonstances mais elle contraint la premi�re secr�taire � r�agir. Eparpill�e depuis quelques mo</wlr:hasDescription><wlr:hasScore>0.869736</wlr:hasScore><wlr:hasRank>28</wlr:hasRank><dc:identifier>49377</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4618"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4618"/><wlr:hasDescription>Une fois de plus, Nicolas Sarkozy a profit� d\'une tribune internationale - en l\'occurrence l\'assembl�e g�n�rale annuelle des Nations unies � New York - pour tenir un langage extr�mement ferme � l\'attention de l\'Iran. Mais, alors que le pr�sident </wlr:hasDescription><wlr:hasScore>0.868531</wlr:hasScore><wlr:hasRank>29</wlr:hasRank><dc:identifier>59562</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:397"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:397"/><wlr:hasDescription>Les &quot; r�formistes &quot; les plus cons�quents � gauche ne sont pas toujours ceux que l\'on croit. Les premi�res r�actions autou</wlr:hasDescription><wlr:hasScore>0.867952</wlr:hasScore><wlr:hasRank>30</wlr:hasRank><dc:identifier>10623</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4285"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4285"/><wlr:hasDescription>Deuxi�me volet de notre enqu�te sur les raisons de la crise du parti socialiste et les relations qu\'il entretient avec les milieux de la recherche (vous pouvez lire le premier volet en cliquant ici). Mediapart a voulu interroger </wlr:hasDescription><wlr:hasScore>0.867451</wlr:hasScore><wlr:hasRank>31</wlr:hasRank><dc:identifier>45812</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1668"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1668"/><wlr:hasDescription>Quand personne ne croyait trop que le RSA aboutirait, il faisait l\'objet de rares d�bats. Tant qu\'il s\'exp�rimentait da</wlr:hasDescription><wlr:hasScore>0.865544</wlr:hasScore><wlr:hasRank>32</wlr:hasRank><dc:identifier>21885</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2129"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2129"/><wlr:hasDescription>Edouard Balladur r�pondait, mercredi 22 octobre, sur le gravier de l\'Elys�e � quelques questions sur les objectifs et le programme de la nouvelle mission que venait de lui confier Nicolas Sarkozy. Quelques minutes plus t�t, le</wlr:hasDescription><wlr:hasScore>0.865544</wlr:hasScore><wlr:hasRank>33</wlr:hasRank><dc:identifier>25866</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5351"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5351"/><wlr:hasDescription>&quot;Dans quelques ann�es nous dirons: il y a l\'UMP et il y a le Nouveau Centre&quot;, a assur� Herv� Morin, lors des v\339ux aux cadres de son parti, lundi 18 janvier. Chaque ann�e, le discours est</wlr:hasDescription><wlr:hasScore>0.865421</wlr:hasScore><wlr:hasRank>34</wlr:hasRank><dc:identifier>72565</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4904"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4904"/><wlr:hasDescription>Fran�ois Hollande fait le bilan. Dans un livre d\'entretien ave</wlr:hasDescription><wlr:hasScore>0.86539</wlr:hasScore><wlr:hasRank>35</wlr:hasRank><dc:identifier>67950</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1797"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1797"/><wlr:hasDescription>Le fichage politique en France, c\'est fini ! C\'est du moins la promesse lanc�e par la ministre de l\'int�rieur, devant l\'Assembl�e nationale. Au gr� d\'une r��criture compl</wlr:hasDescription><wlr:hasScore>0.865269</wlr:hasScore><wlr:hasRank>36</wlr:hasRank><dc:identifier>23106</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1176"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1176"/><wlr:hasDescription>Les parlementaires UMP, jusqu\'ici divis�s sur la r�forme des institutions, semblent avoir d�nich� un compromis sur le \&quot;dossier turc\&quot;, valid� mardi 1er juillet par Fran�ois Fillon. Les s�nateurs, r�vuls�s � l\'i</wlr:hasDescription><wlr:hasScore>0.865142</wlr:hasScore><wlr:hasRank>37</wlr:hasRank><dc:identifier>17508</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:571"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:571"/><wlr:hasDescription>Avocat, Jean-Pierre Mignard est pr�sident de l\'association D�sirs d\'avenir depuis novembre 2007. Vieil ami de Fran�ois Holland</wlr:hasDescription><wlr:hasScore>0.860128</wlr:hasScore><wlr:hasRank>38</wlr:hasRank><dc:identifier>12169</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3676"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3676"/><wlr:hasDescription>Comme un mauvais moment � passer. Depuis son entr�e en campagne</wlr:hasDescription><wlr:hasScore>0.858979</wlr:hasScore><wlr:hasRank>39</wlr:hasRank><dc:identifier>40411</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3799"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3799"/><wlr:hasDescription>Une porcelaine (d\'une entreprise viennoise en difficult�) contre une statue africaine (de &quot;femme debout&quot;). Par cet �change de cadeaux, M</wlr:hasDescription><wlr:hasScore>0.858373</wlr:hasScore><wlr:hasRank>40</wlr:hasRank><dc:identifier>41634</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3646"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3646"/><wlr:hasDescription>Il a recueilli plus de 18% des voix au premier tour de l\'�lection pr�sidentielle de 2007. Les sondages le cr�ditent de </wlr:hasDescription><wlr:hasScore>0.858245</wlr:hasScore><wlr:hasRank>41</wlr:hasRank><dc:identifier>40117</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1535"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1535"/><wlr:hasDescription>Nicolas Sarkozy et le gouvernement ont-t-ils bien per�u ce qui s\'est jou� dans l\'environnement international? A lire les discours, � observer les d�cisions, la question se posait depuis un an ; la publication par l\'Insee du recul de 0,3% du PIB au deuxi�me trimestre et de la destruction de 12.000 emplois, avec les r�action</wlr:hasDescription><wlr:hasScore>0.856629</wlr:hasScore><wlr:hasRank>42</wlr:hasRank><dc:identifier>20563</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2361"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2361"/><wlr:hasDescription>A la veille de l\'�lection du nouveau premier secr�taire socialiste, on n\'a jamais autant parl�\8230 du MoDem. Mardi, interrog�e sur France </wlr:hasDescription><wlr:hasScore>0.856416</wlr:hasScore><wlr:hasRank>43</wlr:hasRank><dc:identifier>28041</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2441"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2441"/><wlr:hasDescription>A Paris, l\'UMP a des airs de parti socialiste, en cette p�riode de renouvellement de la f�d�ration. La semaine pass�e, les adh�re</wlr:hasDescription><wlr:hasScore>0.854737</wlr:hasScore><wlr:hasRank>44</wlr:hasRank><dc:identifier>28692</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5005"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5005"/><wlr:hasDescription>La droite a longtemps d�test� les panth�onisations. En 1908, celle de Zola fit de</wlr:hasDescription><wlr:hasScore>0.854737</wlr:hasScore><wlr:hasRank>45</wlr:hasRank><dc:identifier>69111</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3556"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3556"/><wlr:hasDescription>Martine Aubry en avait sans doute r�v�, Poul Nyrup Rasmussen l\'a fait. Le parti socialiste a enfin r</wlr:hasDescription><wlr:hasScore>0.854005</wlr:hasScore><wlr:hasRank>46</wlr:hasRank><dc:identifier>39274</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:47"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:47"/><wlr:hasDescription>C\'est assur�ment une crise atypique que traverse, en France, la presse quotidienne. Irruption de la gratuit� et d</wlr:hasDescription><wlr:hasScore>0.853189</wlr:hasScore><wlr:hasRank>47</wlr:hasRank><dc:identifier>200</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2185"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2185"/><wlr:hasDescription>Il y a peu, les &quot;carnets noirs&quot; d\'Yves Bertrand et le fichier Edvige ravivaient le spectre de la police secr�te. Dans le m�me temps, un servic</wlr:hasDescription><wlr:hasScore>0.852803</wlr:hasScore><wlr:hasRank>48</wlr:hasRank><dc:identifier>26509</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2278"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2278"/><wlr:hasDescription>Les grands esprits socialistes se sont repos�s, au lendemain d\'une longue nuit �lectorale. Si S�gol�ne Royal arrive en t</wlr:hasDescription><wlr:hasScore>0.85201</wlr:hasScore><wlr:hasRank>49</wlr:hasRank><dc:identifier>27180</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1902"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1902"/><wlr:hasDescription>En pleine panique financi�re, les responsables politiques retrouvent la parole. Apr�s la r�union de crise ce </wlr:hasDescription><wlr:hasScore>0.851838</wlr:hasScore><wlr:hasRank>50</wlr:hasRank><dc:identifier>23938</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:288"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:288"/><wlr:hasDescription>L\'UMP et le PS sont des jumeaux dizygotes. Ils ne sont pas issus du m�me</wlr:hasDescription><wlr:hasScore>0.848327</wlr:hasScore><wlr:hasRank>51</wlr:hasRank><dc:identifier>9624</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1093"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1093"/><wlr:hasDescription>Il dit vouloir rendre des comptes, d�montrer combien les d�put�s socialistes se sont montr�s utiles depuis un an au Palais-Bourbon. Jean-Marc Ayrault organisera </wlr:hasDescription><wlr:hasScore>0.847377</wlr:hasScore><wlr:hasRank>52</wlr:hasRank><dc:identifier>16697</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1462"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1462"/><wlr:hasDescription>Les ministres sont partis en vacances mais il en est rest� un, le porte-parole du gouvernement, Luc Chatel, pour faire le service apr�s-vente des lois en cascade vot�es par le Parlement depuis un an. &quot;De grandes batailles id�olog</wlr:hasDescription><wlr:hasScore>0.847377</wlr:hasScore><wlr:hasRank>53</wlr:hasRank><dc:identifier>19657</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2179"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2179"/><wlr:hasDescription>Sit�t que l\'on a su que le taux de r�mun�ration du Livret A allait baisser le 1er f�vrier prochain, de 4% actuellement � sans doute 3,5% et peut-�tre m�me 3%, cela a �t� un v�ritable tir de barrage. Comprenant qu\'en pleine tourm</wlr:hasDescription><wlr:hasScore>0.847377</wlr:hasScore><wlr:hasRank>54</wlr:hasRank><dc:identifier>26409</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1403"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1403"/><wlr:hasDescription>La \&quot;nouvelle\&quot; Constitution, parue jeudi 24 juillet au Journal officiel, fait litt�ralement jubiler Jean-Fran�ois Cop�. (T�l�chargez ici le calendri</wlr:hasDescription><wlr:hasScore>0.845198</wlr:hasScore><wlr:hasRank>55</wlr:hasRank><dc:identifier>19199</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2501"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2501"/><wlr:hasDescription>Jeudi 4 d�cembre, l\'Assembl�e nationale est entr�e dans le vif du sujet, en adoptant deux mesures cl�s du projet de loi sur l\'audiovisuel public, qui pr�voient la d�signation et la r�vocation par le chef de l\'Etat des patrons de France T�l�visions, de Radio France et d\'AEF (la holding regroupant France 24, RFI et TV5 Monde). Sur l\'article 8 (fixant le pr</wlr:hasDescription><wlr:hasScore>0.845198</wlr:hasScore><wlr:hasRank>56</wlr:hasRank><dc:identifier>29095</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4470"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4470"/><wlr:hasDescription>De notre envoy�e sp�ciale � La Grande-Motte  Pour �viter qu\'�cologistes et socialistes fassent une OPA sur le Modem, sorti tr�s affaibli des �lections europ�ennes, Bayrou leur a lanc� une &quot;offre publique de dialogue&quot;, dimanche 6 septembre, en cl�ture de l\'universit� d\'�t� du mouvement, organis�e � La Grande-Motte. Par son discours, il a sign� </wlr:hasDescription><wlr:hasScore>0.844449</wlr:hasScore><wlr:hasRank>57</wlr:hasRank><dc:identifier>53657</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5881"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5881"/><wlr:hasDescription>&quot;Je ne rentre pas au gouvernement dans les meilleures conditions, ni de popularit�, ni de finances publiques&quot;, a reconnu le nouveau ministre du budget, sur Europe1, jeudi matin. Il aurait pu ajouter: &quot;ni de </wlr:hasDescription><wlr:hasScore>0.842533</wlr:hasScore><wlr:hasRank>58</wlr:hasRank><dc:identifier>78812</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3533"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3533"/><wlr:hasDescription>A l\'Elys�e, on affirme que Dominique de Villepin ne fait pas peur. On pr�tend m�me qu\'il n\'a qu\'</wlr:hasDescription><wlr:hasScore>0.84111</wlr:hasScore><wlr:hasRank>59</wlr:hasRank><dc:identifier>39104</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1978"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1978"/><wlr:hasDescription>Aucune faillite retentissante, pas d\'annonce de menaces suppl�mentaires sur l\'�conomie malgr� les prix de l\'immobilier qui commencent � chuter et l\'Islande qui se liqu�fie. A Paris notamment, les march�</wlr:hasDescription><wlr:hasScore>0.837822</wlr:hasScore><wlr:hasRank>60</wlr:hasRank><dc:identifier>24554</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5120"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5120"/><wlr:hasDescription>Des �lus qui claquent la porte de l\'UMP, des conseillers qui quittent sur la pointe des pieds l\'Elys�e... Les annonces de ce lundi 7 </wlr:hasDescription><wlr:hasScore>0.837822</wlr:hasScore><wlr:hasRank>61</wlr:hasRank><dc:identifier>70129</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:154"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:154"/><wlr:hasDescription>Face au pouvoir central incarn� par le sarkozysme et ses d�pendances, s\'installe un contre-pouvoir territorial port� par le socialisme et ses associ�s. La France est &quot; coup�e en deu</wlr:hasDescription><wlr:hasScore>0.837729</wlr:hasScore><wlr:hasRank>62</wlr:hasRank><dc:identifier>748</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3862"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3862"/><wlr:hasDescription>De midi � minuit, dans la journ�e du dimanche 7 juin, la r�daction de Mediapart a tenu la chronique, minute par minute, de la journ�e �lectorale. Vous pouvez lire ci-dessous, </wlr:hasDescription><wlr:hasScore>0.836646</wlr:hasScore><wlr:hasRank>63</wlr:hasRank><dc:identifier>42258</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5246"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5246"/><wlr:hasDescription>&quot;Les gnomes de Francfort&quot;, par exemple, qualificatif de Jean-Pierre Chev�nement � l\'encontre des dirigeants de la Banque centrale europ�enne, gardienne du fameux trait� de &quot;MasTrique&quot;. Il y a le savoureux &quot;Le parti</wlr:hasDescription><wlr:hasScore>0.829268</wlr:hasScore><wlr:hasRank>64</wlr:hasRank><dc:identifier>71364</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5506"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5506"/><wlr:hasDescription>Changement express de strat�gie, n�gociations interminables pour boucler des listes, choix contest�s en Ile-de-France, affaire Clearstream qui d�chire la majorit�. A moins de deux mois du scrut</wlr:hasDescription><wlr:hasScore>0.829268</wlr:hasScore><wlr:hasRank>65</wlr:hasRank><dc:identifier>74059</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1524"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1524"/><wlr:hasDescription>Les autruches sortent enfin la t�te de terre. Contrairement � l\'antienne op</wlr:hasDescription><wlr:hasScore>0.827191</wlr:hasScore><wlr:hasRank>66</wlr:hasRank><dc:identifier>20496</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1614"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1614"/><wlr:hasDescription>Elle a la voix toute chevrotante, Monique. M�gaphone en main, cette inst</wlr:hasDescription><wlr:hasScore>0.825859</wlr:hasScore><wlr:hasRank>67</wlr:hasRank><dc:identifier>21353</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3576"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3576"/><wlr:hasDescription>&quot;La politique est de retour ! Ces �lections seront politiques&quot;, a pr�venu Xavier Bertrand en marge du premier meeting europ�en de l\'UMP, mardi soir, � Rueil-Malmaison (Hauts-de-Seine). Le but �tait clair : ramener </wlr:hasDescription><wlr:hasScore>0.825809</wlr:hasScore><wlr:hasRank>68</wlr:hasRank><dc:identifier>39518</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5922"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5922"/><wlr:hasDescription>M�me s\'il est un ami de Nicolas Sarkozy et un client d\'Alain Minc, St�phane Courbit est depuis quelque temps bien malheureux en affaires. Apr�s avoir acquis une partic</wlr:hasDescription><wlr:hasScore>0.825159</wlr:hasScore><wlr:hasRank>69</wlr:hasRank><dc:identifier>79317</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5786"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5786"/><wlr:hasDescription>La rumeur circule depuis quelques jours - le site internet Wansquare s\'en est fait le premier l\'�cho, et apr�s lui Le Point - et nous en avons obtenu une confirmation de tr�s bonne source: Yazid Sabeg, l\'actuel commissaire � la diversit� et � l\'�galit� des chances, devrait succ�der � Anne Lauvergeon � la t�te d\'Areva, le champion du nucl�aire fran�ais. Selon nos informations, cette</wlr:hasDescription><wlr:hasScore>0.824374</wlr:hasScore><wlr:hasRank>70</wlr:hasRank><dc:identifier>77916</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4453"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4453"/><wlr:hasDescription>Apr�s avoir pass� son �t� � temp�ter, mena�ant de d�missionner de la direction ou d\'en appeler aux militants pour imposer les primaires ouvertes qu\'il promeut dans un livre (Comment sauver la gauche, au Seuil, avec Olivier Ferrand), Arnaud Montebourg est finalement l\'un des grands gagnants des universit�s d\'�t� de La Rochelle. M�me si son forcing a irrit� </wlr:hasDescription><wlr:hasScore>0.824323</wlr:hasScore><wlr:hasRank>71</wlr:hasRank><dc:identifier>52502</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:347"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:347"/><wlr:hasDescription>L\'accueil de gu�rilleros des Forces arm�es r�volutionnaires en Colombie (FARC) sur le territoire fran�ais : voil� la probable clef diplomatique de la tentative de lib�ration d\'Ingrid Betancourt qui est en train de se jouer en Am�rique du Sud. L\'Elys�e a annonc�, mercredi </wlr:hasDescription><wlr:hasScore>0.823627</wlr:hasScore><wlr:hasRank>72</wlr:hasRank><dc:identifier>10057</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:600"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:600"/><wlr:hasDescription>En mati�re culturelle, le candidat � l\'�lection pr�sidentielle Nicolas Sarkozy s\'�tait limit� au strict minimum. Deux promesses saillantes, en</wlr:hasDescription><wlr:hasScore>0.823627</wlr:hasScore><wlr:hasRank>73</wlr:hasRank><dc:identifier>12369</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3200"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3200"/><wlr:hasDescription>&quot;Je suis quelqu\'un de souple dans mes charentaises&quot;, plaisante Val�rie P�cresse sur France Culture en f�vrier 2009, en contrepoint du fameux &quot;droit dans mes bottes&quot; d\'Alain Jupp� en pleine crise de la r�forme des retraites en 1995. Cette souplesse en chaussons </wlr:hasDescription><wlr:hasScore>0.823627</wlr:hasScore><wlr:hasRank>74</wlr:hasRank><dc:identifier>35718</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4458"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4458"/><wlr:hasDescription>Jean-Pierre Mignard quitte la pr�sidence de D�sirs d\'avenir d�sormais assum�e par S�gol�ne Royal elle-m�me, qui entend transformer l\'association en &quot;ONG europ�enne&quot; proche d\'une fondation type think tank, comme le pr�cise un communiqu� publi� jeudi 3 septembre. Dans un entretien � Mediapart</wlr:hasDescription><wlr:hasScore>0.823627</wlr:hasScore><wlr:hasRank>75</wlr:hasRank><dc:identifier>53147</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4698"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4698"/><wlr:hasDescription>Alors que la session parlementaire est � peine r�unie, que les sujets foisonnent allant des suites de la crise �conomique au colossal d�ficit budg�taire en passant par la r�forme des collectivit�s locales, quel est l\'un des tout premiers sujets que le gouvernement d�cide d\'inscrire � l\'ordre du jour de l\'Assembl�e nationale? L\'ouverture du march� des jeux en ligne et la fin du monopole de l\'Etat sur ce secteur.&quot;Nous avons pour ambition que </wlr:hasDescription><wlr:hasScore>0.823627</wlr:hasScore><wlr:hasRank>76</wlr:hasRank><dc:identifier>63657</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4823"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4823"/><wlr:hasDescription>&quot;Je ne dirai rien sur les �lections au PS, ce serait d�sagr�able&quot;, ironisait Jean Sarkozy, vendredi, au conseil g�n�ral des Hauts-de-Seine, lors de son discours de candidat au poste d\'administrateur de l\'Epad. A l\'UMP, on se pla�t � renvoy</wlr:hasDescription><wlr:hasScore>0.823127</wlr:hasScore><wlr:hasRank>77</wlr:hasRank><dc:identifier>67076</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4272"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4272"/><wlr:hasDescription>Oublions Jack Lang, Bernard-Henri L�vy et leurs impr�cations sur la mort assur�e du Parti socialiste. Laissons � Max Gallo, ancien </wlr:hasDescription><wlr:hasScore>0.822925</wlr:hasScore><wlr:hasRank>78</wlr:hasRank><dc:identifier>45740</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2577"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2577"/><wlr:hasDescription>Attention, un train peut en cacher un autre. L\'arriv�e de Patrick Devedjia</wlr:hasDescription><wlr:hasScore>0.819154</wlr:hasScore><wlr:hasRank>79</wlr:hasRank><dc:identifier>29621</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4728"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4728"/><wlr:hasDescription>L\'ex-judoka David Douillet, engag� sous les couleurs du parti pr�sidentiel, a �cras� le premier tour de l\'�lection l�gislative partielle organis�e dimanche 11 octobre, dans la 12e circonscription des Yvelines, en captant 44,2% des voix, soit le double du candidat socialiste et maire de Poissy, Fr�d�rik Bernard, qui a recueilli 21,9% des bulletins. Le candidat d\'Europe-Ecologie</wlr:hasDescription><wlr:hasScore>0.818169</wlr:hasScore><wlr:hasRank>80</wlr:hasRank><dc:identifier>65097</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5490"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5490"/><wlr:hasDescription>Jeudi, l\'UMP �tait plus bavarde sur la derni�re sortie du socialiste Georges Fr�che que sur la relaxe de Dominique de Villepin dans le proc�s Clearstream. Connu pour d�gainer des commu</wlr:hasDescription><wlr:hasScore>0.818169</wlr:hasScore><wlr:hasRank>81</wlr:hasRank><dc:identifier>73885</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4341"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4341"/><wlr:hasDescription>Plus de trois mois apr�s le revers des �lections europ�ennes, o� il a recueilli � peine 16,48%, devan�ant d\'une rien les listes Europe-Ecologie, et � quelques jours de son universit� d\'�t� de La Rochelle (28-30 ao�t), il n\'est pas certain que le parti socialiste a retrouv� confiance, s�r�nit� et coh�sion. Entre les silences de S�gol�n</wlr:hasDescription><wlr:hasScore>0.817228</wlr:hasScore><wlr:hasRank>82</wlr:hasRank><dc:identifier>46602</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2286"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2286"/><wlr:hasDescription>Lundi 10 novembre au matin, une d�l�gation du Cran, conseil repr�sentatif des associations noires, est re�ue � l\'Elys�e. Pas par le pr�sident, ni par </wlr:hasDescription><wlr:hasScore>0.817157</wlr:hasScore><wlr:hasRank>83</wlr:hasRank><dc:identifier>27334</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3510"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3510"/><wlr:hasDescription>&quot;Une caravane mobile pour montrer que l\'Europe peut mobiliser.&quot; Lundi 20 avril, le secr�tair</wlr:hasDescription><wlr:hasScore>0.817157</wlr:hasScore><wlr:hasRank>84</wlr:hasRank><dc:identifier>38947</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4201"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4201"/><wlr:hasDescription>Martin Hirsch a pris un coup de jeune. Tel un �tudiant cherchant un </wlr:hasDescription><wlr:hasScore>0.817157</wlr:hasScore><wlr:hasRank>85</wlr:hasRank><dc:identifier>45166</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4545"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4545"/><wlr:hasDescription>Il aura fallu deux ans pour que Nicolas Sarkozy fasse son mea-culpa sur les empreintes g�n�tiques r�serv�es aux �trangers souhaitant rejoindre leur famille en France. Lors d\'une rencontre � l\'�lys</wlr:hasDescription><wlr:hasScore>0.815821</wlr:hasScore><wlr:hasRank>86</wlr:hasRank><dc:identifier>56762</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4513"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4513"/><wlr:hasDescription>Il a �t� l\'une des stars de \8220l\'ouverture socialiste\8221 durant l\'�t�, participant aux meetings de Fran�ois Hollande (� Lorient en juin) puis de Vincent Peillon (� Marseille en ao�t). D�sormais ressorti de l\'anony</wlr:hasDescription><wlr:hasScore>0.814434</wlr:hasScore><wlr:hasRank>87</wlr:hasRank><dc:identifier>55167</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:446"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:446"/><wlr:hasDescription>L\'inusable Michel Charasse exclu du PS? La f�d�ration socialiste du Puy-de-D�me en a vot� la demande jeudi soir, � une large majorit� du conseil f�d�ral (42 voix contre 14). Mais l\'ancien ministre du Bud</wlr:hasDescription><wlr:hasScore>0.814077</wlr:hasScore><wlr:hasRank>88</wlr:hasRank><dc:identifier>11001</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2312"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2312"/><wlr:hasDescription>Ces derniers jours, le bruit s\'est r�pandu comme une tra�n�e de poudre dans la maison socialiste: &quot;La presse people d�barque au congr�s!&quot; Les journalistes de Voici seraient d�j� en route pour Reims, bard�s de magn�tos... Interrog�, le service de pr</wlr:hasDescription><wlr:hasScore>0.814077</wlr:hasScore><wlr:hasRank>89</wlr:hasRank><dc:identifier>27639</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5488"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5488"/><wlr:hasDescription>Si le parti socialiste n\'est toujours pas un long fleuve tranquille, il parvient tout de m�me � ne pas se noyer dans les eaux troubles de la division. En adoptant mardi soir une po</wlr:hasDescription><wlr:hasScore>0.814077</wlr:hasScore><wlr:hasRank>90</wlr:hasRank><dc:identifier>73823</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2075"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2075"/><wlr:hasDescription>La Caisse d\'�pargne, qui a r�v�l� une perte de 600 millions d\'euros dans des op�rations de march�, doit r�unir son conseil de surveillance, dimanche 19 octobre, dans l\'apr�s-midi, afin de se prononcer sur le sort de la direction et notamment celui du pr�sident du directoire de la Caisse nationale des Caisses d\'�pargne (CNCE), Charles Milhaud.Dans un entretien, publi� par</wlr:hasDescription><wlr:hasScore>0.813793</wlr:hasScore><wlr:hasRank>91</wlr:hasRank><dc:identifier>25510</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:487"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:487"/><wlr:hasDescription>Du &quot;les caisses sont vides&quot; de Nicolas Sarkozy au &quot;pays en faillite&quot; de Fran�ois Fillon, le triste �tat des finances publiques fran�aises alimente la chronique par intermittence. Mais derri�re le propos polit</wlr:hasDescription><wlr:hasScore>0.811021</wlr:hasScore><wlr:hasRank>92</wlr:hasRank><dc:identifier>11333</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1799"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1799"/><wlr:hasDescription>Adieu lev�es de fourches, d�versements de lisier, saccages de b�timents administratifs et autres violences � agents de la force publique : la grande agriculture fran�aise semble �tre entr�e dans l\'�re du lobbying � visage humain. Et elle a choisi pour annonce</wlr:hasDescription><wlr:hasScore>0.811021</wlr:hasScore><wlr:hasRank>93</wlr:hasRank><dc:identifier>23127</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1976"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1976"/><wlr:hasDescription>Mais o� est donc pass�e la gauche? Cette �poque de temp�te et de crise devrait �tre faste pour elle. Alors que le capitalisme trav</wlr:hasDescription><wlr:hasScore>0.811021</wlr:hasScore><wlr:hasRank>94</wlr:hasRank><dc:identifier>24528</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5753"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5753"/><wlr:hasDescription>Chez Europe Ecologie, beaucoup ne le disent qu\'� demi-mot, mais ils sont d��us: tous auraient aim� d�passer les 16% des europ�ennes de 2009. Tout juste d�barqu� de son ma</wlr:hasDescription><wlr:hasScore>0.810912</wlr:hasScore><wlr:hasRank>95</wlr:hasRank><dc:identifier>77546</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1592"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1592"/><wlr:hasDescription>Certains auront peut-�tre du mal � le croire, mais, � quelques heures de l\'ouverture de la Convention d�mocrate de Denver, charg�e d\'investir officiellement Barack Obama, ce dernier n\'est pas encore assur� d\'acc�der � la Maison Blanche. Les 200.000 Allemands qui lui</wlr:hasDescription><wlr:hasScore>0.810167</wlr:hasScore><wlr:hasRank>96</wlr:hasRank><dc:identifier>21133</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1600"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1600"/><wlr:hasDescription>On pr�te � Talleyrand ce mot: \&quot;Quand je m\'examine, je m\'inqui�te. Quand je me compare, je me ra</wlr:hasDescription><wlr:hasScore>0.804479</wlr:hasScore><wlr:hasRank>97</wlr:hasRank><dc:identifier>21227</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5548"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5548"/><wlr:hasDescription>De notre envoy�e sp�ciale en Paca, Ce jour-l�, en campagne sur le site nucl�aire du Tricastin, Europe Ecologie vient mesurer la radioactivit� et d�poser une gerbe de fleurs: &quot;Ci-g�t la sant� publique!&quot;... Des candidats aux r�gionale</wlr:hasDescription><wlr:hasScore>0.802372</wlr:hasScore><wlr:hasRank>98</wlr:hasRank><dc:identifier>74485</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2290"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2290"/><wlr:hasDescription>Difficile construction d\'alliances majoritaires, au parti socialiste. Apr�s le vote des motions et </wlr:hasDescription><wlr:hasScore>0.801553</wlr:hasScore><wlr:hasRank>99</wlr:hasRank><dc:identifier>27360</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2033"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2033"/><wlr:hasDescription>Soudain, un week-end, le travail du dimanche est devenu priorit� nationale. Dimanche dernier, le ministre</wlr:hasDescription><wlr:hasScore>0.801468</wlr:hasScore><wlr:hasRank>100</wlr:hasRank><dc:identifier>25201</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/cluster:0"><wlr:hasNumberOfResults>19</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:0"/><wlr:hasScore>1</wlr:hasScore><wlr:hasDescription>Proche de S�gol�ne Royal, Fran�ois Rebsamen a un temps envisag� de faire le trait-d\'union avec les amis de Fran�ois Hollande pour renverser Martine Aubry de la direction du PS. Rentr� dans le rang</wlr:hasDescription><mediaUnit xsi:type="model:Image" uri="periplus://resource:41634/image" ><annotation uri="periplus://resource:41634/image/annot:0\" ><data><rdf:RDF xmlns:wls="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc=\"http://purl.org/dc/elements/1.1/" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:wlp=http://weblab.ow2.org/core/1.2/ontology/processing#" ><rdf:Description rdf:about=periplus://resource:41634/image><dc:abstract>No description available</dc:abstract><wlp:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/St%C3%A9phane%20Alli%C3%A8s/ResizedImage383255-IMG0707.JPG</wlp:hasNativeContent></rdf:Description><mediaUnit xsi:type="model:Image" uri="periplus://resource:16697/image" ><annotation uri="periplus://resource:16697/image/annot:0\" ><data><rdf:RDF xmlns:wls="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc=\"http://purl.org/dc/elements/1.1/" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:wlp=http://weblab.ow2.org/core/1.2/ontology/processing#" ><rdf:Description rdf:about=periplus://resource:16697/image><dc:abstract>No description available</dc:abstract><wlp:hasNativeContent>http://static.mediapart.fr/files/Mathilde Mathieu/229180457_9db20a3f47_m.jpg</wlp:hasNativeContent></rdf:Description><dc:title>PS</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:0"><rdf:li rdf:resource="periplus://simquery/result/hit:42360"/><rdf:li rdf:resource="periplus://simquery/result/hit:28930"/><rdf:li rdf:resource="periplus://simquery/result/hit:45247"/><rdf:li rdf:resource="periplus://simquery/result/hit:26098"/><rdf:li rdf:resource="periplus://simquery/result/hit:40411"/><rdf:li rdf:resource="periplus://simquery/result/hit:41634"/><rdf:li rdf:resource="periplus://simquery/result/hit:27180"/><rdf:li rdf:resource="periplus://simquery/result/hit:16697"/><rdf:li rdf:resource="periplus://simquery/result/hit:21227"/><rdf:li rdf:resource="periplus://simquery/result/hit:27360"/><rdf:li rdf:resource="periplus://simquery/result/hit:45812"/><rdf:li rdf:resource="periplus://simquery/result/hit:12169"/><rdf:li rdf:resource="periplus://simquery/result/hit:53147"/><rdf:li rdf:resource="periplus://simquery/result/hit:45740"/><rdf:li rdf:resource="periplus://simquery/result/hit:11001"/><rdf:li rdf:resource="periplus://simquery/result/hit:27639"/><rdf:li rdf:resource="periplus://simquery/result/hit:73823"/><rdf:li rdf:resource="periplus://simquery/result/hit:55167"/><rdf:li rdf:resource="periplus://simquery/result/hit:65097"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:1"><wlr:hasNumberOfResults>9</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:1"/><wlr:hasScore>0.970595</wlr:hasScore><wlr:hasDescription>Lot de consolation pour la droite : La Guyane basculerait. Selon des chiffres encore</wlr:hasDescription><mediaUnit xsi:type="model:Image" uri="periplus://resource:78083/image" ><annotation uri="periplus://resource:78083/image/annot:0\" ><data><rdf:RDF xmlns:wls="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc=\"http://purl.org/dc/elements/1.1/" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:wlp=http://weblab.ow2.org/core/1.2/ontology/processing#" ><rdf:Description rdf:about=periplus://resource:78083/image><dc:abstract>No description available</dc:abstract><wlp:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/La%20r%C3%A9daction%20Mediapart/rejet.png</wlp:hasNativeContent></rdf:Description><mediaUnit xsi:type="model:Image" uri="periplus://resource:78083/image" ><annotation uri="periplus://resource:78083/image/annot:0\" ><data><rdf:RDF xmlns:wls="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc=\"http://purl.org/dc/elements/1.1/" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:wlp=http://weblab.ow2.org/core/1.2/ontology/processing#" ><rdf:Description rdf:about=periplus://resource:78083/image><dc:abstract>No description available</dc:abstract><wlp:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlp:hasNativeContent></rdf:Description><dc:title>�lections r�gionales</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:1"><rdf:li rdf:resource="periplus://simquery/result/hit:78083"/><rdf:li rdf:resource="periplus://simquery/result/hit:77730"/><rdf:li rdf:resource="periplus://simquery/result/hit:74485"/><rdf:li rdf:resource="periplus://simquery/result/hit:603"/><rdf:li rdf:resource="periplus://simquery/result/hit:36313"/><rdf:li rdf:resource="periplus://simquery/result/hit:37060"/><rdf:li rdf:resource="periplus://simquery/result/hit:49377"/><rdf:li rdf:resource="periplus://simquery/result/hit:423"/><rdf:li rdf:resource="periplus://simquery/result/hit:74059"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:2"><wlr:hasNumberOfResults>25</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:2"/><wlr:hasScore>0.961693</wlr:hasScore><wlr:hasDescription>Du changement de statut de La Poste, il n\'a �t� que peu question durant la campagne des �lections europ�ennes, comme si la r�forme avait pris du retard ou n\'�tait plus d\'actualit�. Et pourtant, il n\'en est rien</wlr:hasDescription><mediaUnit xsi:type="model:Image" uri="periplus://resource:42059/image" ><annotation uri="periplus://resource:42059/image/annot:0\" ><data><rdf:RDF xmlns:wls="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc=\"http://purl.org/dc/elements/1.1/" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:wlp=http://weblab.ow2.org/core/1.2/ontology/processing#" ><rdf:Description rdf:about=periplus://resource:42059/image><dc:abstract>No description available</dc:abstract><wlp:hasNativeContent>http://static.mediapart.fr/files/Laurent Mauduit/Image 8_13.png</wlp:hasNativeContent></rdf:Description><dc:title>gouvernement UMP</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:2"><rdf:li rdf:resource="periplus://simquery/result/hit:42059"/><rdf:li rdf:resource="periplus://simquery/result/hit:25866"/><rdf:li rdf:resource="periplus://simquery/result/hit:28692"/><rdf:li rdf:resource="periplus://simquery/result/hit:70129"/><rdf:li rdf:resource="periplus://simquery/result/hit:29095"/><rdf:li rdf:resource="periplus://simquery/result/hit:19657"/><rdf:li rdf:resource="periplus://simquery/result/hit:23106"/><rdf:li rdf:resource="periplus://simquery/result/hit:26509"/><rdf:li rdf:resource="periplus://simquery/result/hit:10623"/><rdf:li rdf:resource="periplus://simquery/result/hit:21885"/><rdf:li rdf:resource="periplus://simquery/result/hit:16313"/><rdf:li rdf:resource="periplus://simquery/result/hit:21353"/><rdf:li rdf:resource="periplus://simquery/result/hit:20563"/><rdf:li rdf:resource="periplus://simquery/result/hit:18705"/><rdf:li rdf:resource="periplus://simquery/result/hit:17508"/><rdf:li rdf:resource="periplus://simquery/result/hit:19199"/><rdf:li rdf:resource="periplus://simquery/result/hit:26409"/><rdf:li rdf:resource="periplus://simquery/result/hit:24528"/><rdf:li rdf:resource="periplus://simquery/result/hit:748"/><rdf:li rdf:resource="periplus://simquery/result/hit:200"/><rdf:li rdf:resource="periplus://simquery/result/hit:10057"/><rdf:li rdf:resource="periplus://simquery/result/hit:25201"/><rdf:li rdf:resource="periplus://simquery/result/hit:63657"/><rdf:li rdf:resource="periplus://simquery/result/hit:45166"/><rdf:li rdf:resource="periplus://simquery/result/hit:56762"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:3"><wlr:hasNumberOfResults>4</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:3"/><wlr:hasScore>0.936393</wlr:hasScore><wlr:hasDescription>Une bombe dort au p�le financier du tribunal de grande instance de Paris. Les juges Fran�oise Desset et</wlr:hasDescription><mediaUnit xsi:type="model:Image" uri="periplus://resource:22632/image" ><annotation uri="periplus://resource:22632/image/annot:0\" ><data><rdf:RDF xmlns:wls="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc=\"http://purl.org/dc/elements/1.1/" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:wlp=http://weblab.ow2.org/core/1.2/ontology/processing#" ><rdf:Description rdf:about=periplus://resource:22632/image><dc:abstract>No description available</dc:abstract><wlp:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/Fabrice%20Arfi/article_photo_1218010950574-1-0.jpg</wlp:hasNativeContent></rdf:Description><dc:title>affaire de Karachi</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:3"><rdf:li rdf:resource="periplus://simquery/result/hit:22631"/><rdf:li rdf:resource="periplus://simquery/result/hit:22632"/><rdf:li rdf:resource="periplus://simquery/result/hit:43103"/><rdf:li rdf:resource="periplus://simquery/result/hit:43104"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:4"><wlr:hasNumberOfResults>9</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:4"/><wlr:hasScore>0.928015</wlr:hasScore><wlr:hasDescription>&quot;Dans une telle campagne o� les petites phrases et les effets m�diatiques semblent plus compter que le fond, de belles images au 20 heures ne peuvent pas faire de mal.&quot; Ce commentaire d\'un dirigean</wlr:hasDescription><mediaUnit xsi:type="model:Image" uri="periplus://resource:41525/image" ><annotation uri="periplus://resource:41525/image/annot:0\" ><data><rdf:RDF xmlns:wls="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc=\"http://purl.org/dc/elements/1.1/" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:wlp=http://weblab.ow2.org/core/1.2/ontology/processing#" ><rdf:Description rdf:about=periplus://resource:41525/image><dc:abstract>No description available</dc:abstract><wlp:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/St%C3%A9phane%20Alli%C3%A8s/Image%205_5.png</wlp:hasNativeContent></rdf:Description><dc:title>campagne des europ�ennes</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:4"><rdf:li rdf:resource="periplus://simquery/result/hit:41525"/><rdf:li rdf:resource="periplus://simquery/result/hit:39274"/><rdf:li rdf:resource="periplus://simquery/result/hit:42094"/><rdf:li rdf:resource="periplus://simquery/result/hit:41650"/><rdf:li rdf:resource="periplus://simquery/result/hit:39518"/><rdf:li rdf:resource="periplus://simquery/result/hit:77546"/><rdf:li rdf:resource="periplus://simquery/result/hit:42258"/><rdf:li rdf:resource="periplus://simquery/result/hit:46602"/><rdf:li rdf:resource="periplus://simquery/result/hit:38947"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:5"><wlr:hasNumberOfResults>10</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:5"/><wlr:hasScore>0.914044</wlr:hasScore><wlr:hasDescription>L\'UMP et le PS sont des jumeaux dizygotes. Ils ne sont pas issus du m�me</wlr:hasDescription><mediaUnit xsi:type="model:Image" uri="periplus://resource:39104/image" ><annotation uri="periplus://resource:39104/image/annot:0\" ><data><rdf:RDF xmlns:wls="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc=\"http://purl.org/dc/elements/1.1/" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:wlp=http://weblab.ow2.org/core/1.2/ontology/processing#" ><rdf:Description rdf:about=periplus://resource:39104/image><dc:abstract>No description available</dc:abstract><wlp:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/Marine%20Turchi/2083.jpg</wlp:hasNativeContent></rdf:Description><dc:title>UMP</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:5"><rdf:li rdf:resource="periplus://simquery/result/hit:9624"/><rdf:li rdf:resource="periplus://simquery/result/hit:40407"/><rdf:li rdf:resource="periplus://simquery/result/hit:43349"/><rdf:li rdf:resource="periplus://simquery/result/hit:16105"/><rdf:li rdf:resource="periplus://simquery/result/hit:39104"/><rdf:li rdf:resource="periplus://simquery/result/hit:12369"/><rdf:li rdf:resource="periplus://simquery/result/hit:35718"/><rdf:li rdf:resource="periplus://simquery/result/hit:29621"/><rdf:li rdf:resource="periplus://simquery/result/hit:67076"/><rdf:li rdf:resource="periplus://simquery/result/hit:73885"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:6"><wlr:hasNumberOfResults>6</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:6"/><wlr:hasScore>0.907456</wlr:hasScore><wlr:hasDescription>Jacques Julliard, 77 ans, entre en dissidence. Figure historique de la &quot;deux</wlr:hasDescription><mediaUnit xsi:type="model:Image" uri="periplus://resource:78268/image" ><annotation uri="periplus://resource:78268/image/annot:0\" ><data><rdf:RDF xmlns:wls="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc=\"http://purl.org/dc/elements/1.1/" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:wlp=http://weblab.ow2.org/core/1.2/ontology/processing#" ><rdf:Description rdf:about=periplus://resource:78268/image><dc:abstract>No description available</dc:abstract><wlp:hasNativeContent>http://static.mediapart.fr/files/imagecache/250_pixels/St%C3%A9phane%20Alli%C3%A8s/julliard.png</wlp:hasNativeContent></rdf:Description><mediaUnit xsi:type="model:Image" uri="periplus://resource:67685/image" ><annotation uri="periplus://resource:67685/image/annot:0\" ><data><rdf:RDF xmlns:wls="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc=\"http://purl.org/dc/elements/1.1/" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:wlp=http://weblab.ow2.org/core/1.2/ontology/processing#" ><rdf:Description rdf:about=periplus://resource:67685/image><dc:abstract>No description available</dc:abstract><wlp:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/Marine%20Turchi/chirac_balladur.png</wlp:hasNativeContent></rdf:Description><dc:title>livre</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:6"><rdf:li rdf:resource="periplus://simquery/result/hit:78268"/><rdf:li rdf:resource="periplus://simquery/result/hit:67685"/><rdf:li rdf:resource="periplus://simquery/result/hit:71364"/><rdf:li rdf:resource="periplus://simquery/result/hit:52502"/><rdf:li rdf:resource="periplus://simquery/result/hit:67950"/><rdf:li rdf:resource="periplus://simquery/result/hit:69111"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:7"><wlr:hasNumberOfResults>4</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:7"/><wlr:hasScore>0.865421</wlr:hasScore><wlr:hasDescription>&quot;Dans quelques ann�es nous dirons: il y a l\'UMP et il y a le Nouveau Centre&quot;, a assur� Herv� Morin, lors des v\339ux aux cadres de son parti, lundi 18 janvier. Chaque ann�e, le discours est</wlr:hasDescription><mediaUnit xsi:type="model:Image" uri="periplus://resource:72565/image" ><annotation uri="periplus://resource:72565/image/annot:0\" ><data><rdf:RDF xmlns:wls="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc=\"http://purl.org/dc/elements/1.1/" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:wlp=http://weblab.ow2.org/core/1.2/ontology/processing#" ><rdf:Description rdf:about=periplus://resource:72565/image><dc:abstract>No description available</dc:abstract><wlp:hasNativeContent>http://static.mediapart.fr/files/Marine Turchi/udf.png</wlp:hasNativeContent></rdf:Description><mediaUnit xsi:type="model:Image" uri="periplus://resource:40117/image" ><annotation uri="periplus://resource:40117/image/annot:0\" ><data><rdf:RDF xmlns:wls="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc=\"http://purl.org/dc/elements/1.1/" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:wlp=http://weblab.ow2.org/core/1.2/ontology/processing#" ><rdf:Description rdf:about=periplus://resource:40117/image><dc:abstract>No description available</dc:abstract><wlp:hasNativeContent>http://static.mediapart.fr/files/imagecache/150_pixels/Marine%20Turchi/Dominique_villepin_1.jpg</wlp:hasNativeContent></rdf:Description><dc:title>Nouveau Centre Modem</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:7"><rdf:li rdf:resource="periplus://simquery/result/hit:72565"/><rdf:li rdf:resource="periplus://simquery/result/hit:40117"/><rdf:li rdf:resource="periplus://simquery/result/hit:28041"/><rdf:li rdf:resource="periplus://simquery/result/hit:53657"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:8"><wlr:hasNumberOfResults>6</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:8"/><wlr:hasScore>0.851838</wlr:hasScore><wlr:hasDescription>En pleine panique financi�re, les responsables politiques retrouvent la parole. Apr�s la r�union de crise ce </wlr:hasDescription><mediaUnit xsi:type="model:Image" uri="periplus://resource:78812/image" ><annotation uri="periplus://resource:78812/image/annot:0\" ><data><rdf:RDF xmlns:wls="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc=\"http://purl.org/dc/elements/1.1/" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:wlp=http://weblab.ow2.org/core/1.2/ontology/processing#" ><rdf:Description rdf:about=periplus://resource:78812/image><dc:abstract>No description available</dc:abstract><wlp:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/Marine%20Turchi/baroin_sarkozy.jpg</wlp:hasNativeContent></rdf:Description><dc:title>panique financi�re</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:8"><rdf:li rdf:resource="periplus://simquery/result/hit:23938"/><rdf:li rdf:resource="periplus://simquery/result/hit:78812"/><rdf:li rdf:resource="periplus://simquery/result/hit:24554"/><rdf:li rdf:resource="periplus://simquery/result/hit:20496"/><rdf:li rdf:resource="periplus://simquery/result/hit:25510"/><rdf:li rdf:resource="periplus://simquery/result/hit:11333"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:9"><wlr:hasNumberOfResults>8</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:9"/><wlr:hasScore>0.95304</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>etc.</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:9"><rdf:li rdf:resource="periplus://simquery/result/hit:5581"/><rdf:li rdf:resource="periplus://simquery/result/hit:23127"/><rdf:li rdf:resource="periplus://simquery/result/hit:22545"/><rdf:li rdf:resource="periplus://simquery/result/hit:59562"/><rdf:li rdf:resource="periplus://simquery/result/hit:79317"/><rdf:li rdf:resource="periplus://simquery/result/hit:77916"/><rdf:li rdf:resource="periplus://simquery/result/hit:21133"/><rdf:li rdf:resource="periplus://simquery/result/hit:27334"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result"><wlr:hasQueryOffset>0</wlr:hasQueryOffset><wlr:hasNumberOfResults>100</wlr:hasNumberOfResults><wlr:isResultOf rdf:resource="periplus://simquery"/><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/model#ResultSet"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3883"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3256"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3328"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3844"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:271"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1732"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5803"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1744"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1745"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:96"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4210"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3972"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3973"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2475"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3789"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5767"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1036"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:133"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3675"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5828"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3993"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4870"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2156"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3849"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3802"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1320"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1015"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4397"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4618"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:397"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4285"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1668"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2129"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5351"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4904"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1797"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1176"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:571"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3676"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3799"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3646"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1535"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2361"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2441"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5005"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3556"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:47"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2185"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2278"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1902"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:288"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1093"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1462"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2179"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1403"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2501"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4470"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5881"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3533"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1978"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5120"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:154"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3862"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5246"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5506"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1524"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1614"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3576"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5922"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5786"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4453"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:347"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:600"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3200"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4458"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4698"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4823"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4272"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2577"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4728"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5490"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4341"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2286"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3510"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4201"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4545"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4513"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:446"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2312"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5488"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2075"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:487"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1799"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1976"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5753"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1592"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1600"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5548"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2290"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2033"/></rdf:Description></rdf:RDF></data></annotation><resource uri="periplus://resource:3883" xsi:type="model:Document"><annotation uri="periplus://resource:3883/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3883"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3883</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3256" xsi:type="model:Document"><annotation uri="periplus://resource:3256/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3256"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3256</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3328" xsi:type="model:Document"><annotation uri="periplus://resource:3328/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3328"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3328</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3844" xsi:type="model:Document"><annotation uri="periplus://resource:3844/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3844"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3844</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:271" xsi:type="model:Document"><annotation uri="periplus://resource:271/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:271"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/271</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1732" xsi:type="model:Document"><annotation uri="periplus://resource:1732/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1732"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1732</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5803" xsi:type="model:Document"><annotation uri="periplus://resource:5803/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5803"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5803</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1744" xsi:type="model:Document"><annotation uri="periplus://resource:1744/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1744"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1744</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1745" xsi:type="model:Document"><annotation uri="periplus://resource:1745/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1745"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1745</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:96" xsi:type="model:Document"><annotation uri="periplus://resource:96/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:96"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/96</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4210" xsi:type="model:Document"><annotation uri="periplus://resource:4210/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4210"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4210</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3972" xsi:type="model:Document"><annotation uri="periplus://resource:3972/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3972"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3972</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3973" xsi:type="model:Document"><annotation uri="periplus://resource:3973/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3973"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3973</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2475" xsi:type="model:Document"><annotation uri="periplus://resource:2475/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2475"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2475</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3789" xsi:type="model:Document"><annotation uri="periplus://resource:3789/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3789"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3789</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5767" xsi:type="model:Document"><annotation uri="periplus://resource:5767/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5767"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5767</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1036" xsi:type="model:Document"><annotation uri="periplus://resource:1036/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1036"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1036</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:133" xsi:type="model:Document"><annotation uri="periplus://resource:133/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:133"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/133</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3675" xsi:type="model:Document"><annotation uri="periplus://resource:3675/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3675"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3675</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5828" xsi:type="model:Document"><annotation uri="periplus://resource:5828/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5828"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5828</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3993" xsi:type="model:Document"><annotation uri="periplus://resource:3993/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3993"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3993</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4870" xsi:type="model:Document"><annotation uri="periplus://resource:4870/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4870"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4870</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2156" xsi:type="model:Document"><annotation uri="periplus://resource:2156/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2156"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2156</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3849" xsi:type="model:Document"><annotation uri="periplus://resource:3849/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3849"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3849</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3802" xsi:type="model:Document"><annotation uri="periplus://resource:3802/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3802"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3802</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1320" xsi:type="model:Document"><annotation uri="periplus://resource:1320/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1320"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1320</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1015" xsi:type="model:Document"><annotation uri="periplus://resource:1015/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1015"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1015</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4397" xsi:type="model:Document"><annotation uri="periplus://resource:4397/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4397"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4397</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4618" xsi:type="model:Document"><annotation uri="periplus://resource:4618/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4618"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4618</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:397" xsi:type="model:Document"><annotation uri="periplus://resource:397/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:397"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/397</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4285" xsi:type="model:Document"><annotation uri="periplus://resource:4285/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4285"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4285</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1668" xsi:type="model:Document"><annotation uri="periplus://resource:1668/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1668"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1668</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2129" xsi:type="model:Document"><annotation uri="periplus://resource:2129/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2129"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2129</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5351" xsi:type="model:Document"><annotation uri="periplus://resource:5351/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5351"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5351</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4904" xsi:type="model:Document"><annotation uri="periplus://resource:4904/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4904"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4904</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1797" xsi:type="model:Document"><annotation uri="periplus://resource:1797/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1797"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1797</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1176" xsi:type="model:Document"><annotation uri="periplus://resource:1176/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1176"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1176</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:571" xsi:type="model:Document"><annotation uri="periplus://resource:571/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:571"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/571</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3676" xsi:type="model:Document"><annotation uri="periplus://resource:3676/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3676"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3676</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3799" xsi:type="model:Document"><annotation uri="periplus://resource:3799/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3799"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3799</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3646" xsi:type="model:Document"><annotation uri="periplus://resource:3646/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3646"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3646</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1535" xsi:type="model:Document"><annotation uri="periplus://resource:1535/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1535"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1535</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2361" xsi:type="model:Document"><annotation uri="periplus://resource:2361/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2361"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2361</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2441" xsi:type="model:Document"><annotation uri="periplus://resource:2441/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2441"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2441</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5005" xsi:type="model:Document"><annotation uri="periplus://resource:5005/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5005"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5005</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3556" xsi:type="model:Document"><annotation uri="periplus://resource:3556/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3556"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3556</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:47" xsi:type="model:Document"><annotation uri="periplus://resource:47/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:47"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/47</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2185" xsi:type="model:Document"><annotation uri="periplus://resource:2185/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2185"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2185</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2278" xsi:type="model:Document"><annotation uri="periplus://resource:2278/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2278"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2278</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1902" xsi:type="model:Document"><annotation uri="periplus://resource:1902/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1902"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1902</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:288" xsi:type="model:Document"><annotation uri="periplus://resource:288/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:288"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/288</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1093" xsi:type="model:Document"><annotation uri="periplus://resource:1093/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1093"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1093</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1462" xsi:type="model:Document"><annotation uri="periplus://resource:1462/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1462"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1462</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2179" xsi:type="model:Document"><annotation uri="periplus://resource:2179/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2179"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2179</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1403" xsi:type="model:Document"><annotation uri="periplus://resource:1403/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1403"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1403</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2501" xsi:type="model:Document"><annotation uri="periplus://resource:2501/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2501"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2501</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4470" xsi:type="model:Document"><annotation uri="periplus://resource:4470/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4470"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4470</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5881" xsi:type="model:Document"><annotation uri="periplus://resource:5881/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5881"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5881</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3533" xsi:type="model:Document"><annotation uri="periplus://resource:3533/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3533"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3533</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1978" xsi:type="model:Document"><annotation uri="periplus://resource:1978/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1978"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1978</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5120" xsi:type="model:Document"><annotation uri="periplus://resource:5120/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5120"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5120</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:154" xsi:type="model:Document"><annotation uri="periplus://resource:154/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:154"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/154</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3862" xsi:type="model:Document"><annotation uri="periplus://resource:3862/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3862"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3862</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5246" xsi:type="model:Document"><annotation uri="periplus://resource:5246/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5246"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5246</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5506" xsi:type="model:Document"><annotation uri="periplus://resource:5506/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5506"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5506</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1524" xsi:type="model:Document"><annotation uri="periplus://resource:1524/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1524"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1524</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1614" xsi:type="model:Document"><annotation uri="periplus://resource:1614/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1614"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1614</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3576" xsi:type="model:Document"><annotation uri="periplus://resource:3576/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3576"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3576</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5922" xsi:type="model:Document"><annotation uri="periplus://resource:5922/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5922"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5922</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5786" xsi:type="model:Document"><annotation uri="periplus://resource:5786/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5786"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5786</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4453" xsi:type="model:Document"><annotation uri="periplus://resource:4453/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4453"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4453</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:347" xsi:type="model:Document"><annotation uri="periplus://resource:347/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:347"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/347</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:600" xsi:type="model:Document"><annotation uri="periplus://resource:600/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:600"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/600</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3200" xsi:type="model:Document"><annotation uri="periplus://resource:3200/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3200"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3200</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4458" xsi:type="model:Document"><annotation uri="periplus://resource:4458/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4458"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4458</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4698" xsi:type="model:Document"><annotation uri="periplus://resource:4698/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4698"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4698</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4823" xsi:type="model:Document"><annotation uri="periplus://resource:4823/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4823"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4823</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4272" xsi:type="model:Document"><annotation uri="periplus://resource:4272/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4272"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4272</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2577" xsi:type="model:Document"><annotation uri="periplus://resource:2577/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2577"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2577</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4728" xsi:type="model:Document"><annotation uri="periplus://resource:4728/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4728"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4728</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5490" xsi:type="model:Document"><annotation uri="periplus://resource:5490/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5490"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5490</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4341" xsi:type="model:Document"><annotation uri="periplus://resource:4341/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4341"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4341</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2286" xsi:type="model:Document"><annotation uri="periplus://resource:2286/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2286"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2286</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3510" xsi:type="model:Document"><annotation uri="periplus://resource:3510/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3510"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3510</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4201" xsi:type="model:Document"><annotation uri="periplus://resource:4201/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4201"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4201</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4545" xsi:type="model:Document"><annotation uri="periplus://resource:4545/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4545"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4545</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4513" xsi:type="model:Document"><annotation uri="periplus://resource:4513/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4513"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4513</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:446" xsi:type="model:Document"><annotation uri="periplus://resource:446/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:446"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/446</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2312" xsi:type="model:Document"><annotation uri="periplus://resource:2312/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2312"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2312</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5488" xsi:type="model:Document"><annotation uri="periplus://resource:5488/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5488"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5488</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2075" xsi:type="model:Document"><annotation uri="periplus://resource:2075/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2075"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2075</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:487" xsi:type="model:Document"><annotation uri="periplus://resource:487/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:487"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/487</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1799" xsi:type="model:Document"><annotation uri="periplus://resource:1799/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1799"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1799</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1976" xsi:type="model:Document"><annotation uri="periplus://resource:1976/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1976"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1976</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5753" xsi:type="model:Document"><annotation uri="periplus://resource:5753/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5753"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5753</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1592" xsi:type="model:Document"><annotation uri="periplus://resource:1592/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1592"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1592</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1600" xsi:type="model:Document"><annotation uri="periplus://resource:1600/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1600"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1600</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5548" xsi:type="model:Document"><annotation uri="periplus://resource:5548/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5548"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5548</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2290" xsi:type="model:Document"><annotation uri="periplus://resource:2290/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2290"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2290</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2033" xsi:type="model:Document"><annotation uri="periplus://resource:2033/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2033"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2033</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource></resultSet></sear:searchReturn></soapenv:Body></soapenv:Envelope>'''
+        '''res = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><sear:searchReturn xmlns:model="http://weblab.ow2.org/core/1.2/model#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sear="http://weblab.ow2.org/core/1.2/services/searcher" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><resultSet uri="periplus://simquery/result" xmlns:model="http://weblab.ow2.org/core/1.2/model#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><annotation uri="periplus://simquery/result/annotation"><data><rdf:RDF xmlns:wlr="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://simquery/result/hit:3883"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3883"/><wlr:hasDescription>Proche de Ségolène Royal, François Rebsamen a un temps envisagé de faire le trait-d\'union avec les amis de François Hollande pour renverser Martine Aubry de la direction du PS. Rentré dans le rang, il n\'en </wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>1</wlr:hasRank><dc:identifier>42360</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3256"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3256"/><wlr:hasDescription>Du 16 au 22 mars, les quelque 70.000 adhérents franciliens (rev</wlr:hasDescription><wlr:hasScore>0.970595</wlr:hasScore><wlr:hasRank>2</wlr:hasRank><dc:identifier>36313</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3328"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3328"/><wlr:hasDescription>Sans surprise, Valérie Pécresse l\'a largement emporté, dimanche 22 mars, sur son collègue Roger Karoutchi lors de la primaire organisée chez les militants UMP de l\'Ile-de-France. Entre le 16 et le 22 mars, 48</wlr:hasDescription><wlr:hasScore>0.970595</wlr:hasScore><wlr:hasRank>3</wlr:hasRank><dc:identifier>37060</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3844"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3844"/><wlr:hasDescription>Du changement de statut de La Poste, il n\'a été que peu question durant la campagne des élections européennes, comme si la réforme avait pris du retard ou n\'était plus d\'actualité. Et pourtant, il n\'en est rien</wlr:hasDescription><wlr:hasScore>0.961693</wlr:hasScore><wlr:hasRank>4</wlr:hasRank><dc:identifier>42059</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:271"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:271"/><wlr:hasDescription>Jeudi 27 mars, dans la soirée, Nicolas Sarkozy a finalement promis que l\'Assemblée nationale pourrait débattre de sa décision toute fraîche d\'envoyer des soldats supplémentaires en Afghanistan (probablement un millier). Notifiée la veille outre-manc</wlr:hasDescription><wlr:hasScore>0.95304</wlr:hasScore><wlr:hasRank>5</wlr:hasRank><dc:identifier>5581</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1732"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1732"/><wlr:hasDescription>(Si la fin de cette page s\'affiche mal, rafraîchissez votre écran- touche F5) A l\'époque, l\'Unita avait contesté par les armes le résultat favorable au MPLA, replongeant le pays dans la guerre. Le combat des deux ex-compagn</wlr:hasDescription><wlr:hasScore>0.944239</wlr:hasScore><wlr:hasRank>6</wlr:hasRank><dc:identifier>22545</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5803"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5803"/><wlr:hasDescription>Lot de consolation pour la droite : La Guyane basculerait. Selon des chiffres encore pro</wlr:hasDescription><wlr:hasScore>0.939834</wlr:hasScore><wlr:hasRank>7</wlr:hasRank><dc:identifier>78083</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1744"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1744"/><wlr:hasDescription>Une bombe dort au pôle financier du tribunal de grande instance de Paris. Les juges Françoise Desset et</wlr:hasDescription><wlr:hasScore>0.936393</wlr:hasScore><wlr:hasRank>8</wlr:hasRank><dc:identifier>22631</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1745"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1745"/><wlr:hasDescription>Une bombe dort au pôle financier du tribunal de Paris. Les juges Françoise Desset et</wlr:hasDescription><wlr:hasScore>0.935581</wlr:hasScore><wlr:hasRank>9</wlr:hasRank><dc:identifier>22632</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:96"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:96"/><wlr:hasDescription>C\'était le 18 mars 2001. Au soir du second tour des él</wlr:hasDescription><wlr:hasScore>0.930653</wlr:hasScore><wlr:hasRank>10</wlr:hasRank><dc:identifier>423</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4210"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4210"/><wlr:hasDescription>L\'échange épistolaire entre Martine Aubry et Manuel Valls a ouvert la compétition des égos au PS. Mais la présidente de la régi</wlr:hasDescription><wlr:hasScore>0.930653</wlr:hasScore><wlr:hasRank>11</wlr:hasRank><dc:identifier>45247</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3972"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3972"/><wlr:hasDescription>L\'affaire de Karachi qui préoccupe au plus haut sommet de l\'Etat est apparue au détour d\'une enquête purement financière, qui recèle potentiellement en elle-même d\'autres scandales d\'Etat, largement évoqués par Mediapart voilà déjà neuf mois. Les juges du pôle financier p</wlr:hasDescription><wlr:hasScore>0.930406</wlr:hasScore><wlr:hasRank>12</wlr:hasRank><dc:identifier>43103</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3973"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3973"/><wlr:hasDescription>L\'affaire de Karachi qui préoccupe au plus haut sommet de l\'Etat est apparue au détour d\'une enquête purement financière, qui recèle potentiellement en elle-même d\'autres scandales d\'Etat, largement évoqués par Mediapart voilà déjà neuf mois. Les juges du pôle financier p</wlr:hasDescription><wlr:hasScore>0.930406</wlr:hasScore><wlr:hasRank>13</wlr:hasRank><dc:identifier>43104</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2475"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2475"/><wlr:hasDescription>Mardi 2 décembre, dans un sous-sol de l\'Assemblée nationale, Martine Aubry a délivré une feuille de route toute fraîche aux députés socialistes. &quot;On redémarre, on est en marc</wlr:hasDescription><wlr:hasScore>0.928015</wlr:hasScore><wlr:hasRank>14</wlr:hasRank><dc:identifier>28930</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3789"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3789"/><wlr:hasDescription>&quot;Dans une telle campagne où les petites phrases et les effets médiatiques semblent plus compter que le fond, de belles images au 20 heures ne peuvent pas faire de mal.&quot; Ce commentaire d\'un dirigean</wlr:hasDescription><wlr:hasScore>0.928015</wlr:hasScore><wlr:hasRank>15</wlr:hasRank><dc:identifier>41525</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5767"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/>  <wlr:isLinkedTo rdf:resource="periplus://resource:5767"/><wlr:hasDescription>Elle n\'est pas encore la plus chouette du monde, mais la gauche française a au moins évité d\'être la plus bête, au moment de discuter unité avant le second tour des régionales. Mardi à 18h, dix-huit listes </wlr:hasDescription><wlr:hasScore>0.927953</wlr:hasScore><wlr:hasRank>16</wlr:hasRank><dc:identifier>77730</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1036"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1036"/><wlr:hasDescription>N\'en doutons pas, la semaine sociale sera à la contestation tous azimuts et, si le sujet n\'était pas grave et sérieux, un esprit malicieux pourrait voir dans ce tintamarre une nouvelle expression des contradictions françaises. A nouveau se pose le problème</wlr:hasDescription><wlr:hasScore>0.926465</wlr:hasScore><wlr:hasRank>17</wlr:hasRank><dc:identifier>16313</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:133"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:133"/><wlr:hasDescription>Face au pouvoir central incarné par le sarkozysme et ses dépendances, s\'installe un contre-pouvoir territorial porté par le socialisme et ses associés. La France est &quot; coupée en deu</wlr:hasDescription><wlr:hasScore>0.924092</wlr:hasScore><wlr:hasRank>18</wlr:hasRank><dc:identifier>603</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3675"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3675"/><wlr:hasDescription>Il faudra songer à remercier Nicolas Sarkozy. Sa pratique du pouvoir, sa ge</wlr:hasDescription><wlr:hasScore>0.914044</wlr:hasScore><wlr:hasRank>19</wlr:hasRank><dc:identifier>40407</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5828"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5828"/><wlr:hasDescription>Jacques Julliard, 77 ans, entre en dissidence. Figure historique de la &quot;deux</wlr:hasDescription><wlr:hasScore>0.907456</wlr:hasScore><wlr:hasRank>20</wlr:hasRank><dc:identifier>78268</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3993"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3993"/><wlr:hasDescription>&quot;Vive la France !&quot; Après quarante minutes, Nicolas Sarkozy en a terminé avec son &quot;grand&quot; discours du Congrès. Sous les applaudissements - p</wlr:hasDescription><wlr:hasScore>0.898695</wlr:hasScore><wlr:hasRank>21</wlr:hasRank><dc:identifier>43349</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4870"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4870"/><wlr:hasDescription>Mais pas question pour l\'ancien président de se faire piéger à l\'antenne sur les affaires de la mairie de Paris, qui vont donc être jugées: l\'opération de communication a été soigneusement préparée, avec une promotion restreinte, en terrain connu : un hebdomadaire (Le Point sort les bonnes feuilles mercredi), un quotidien (Le Figaro aura les honneurs d\'une interview jeudi), une radio (Europe 1, au micro de Jean-Pierre Elkabbach), et une télévision (il sera l\'invité de Michel Drucker dans &quot;Vivement Dimanche&quot;, sur France 2, le 29 novembre). Le livre a été envoyé au com</wlr:hasDescription><wlr:hasScore>0.895167</wlr:hasScore><wlr:hasRank>22</wlr:hasRank><dc:identifier>67685</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2156"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2156"/><wlr:hasDescription>Les débats s\'enchaînent au PS, sans que les équilibres internes ne paraissent évoluer. L\'incertitude persiste, aucun</wlr:hasDescription><wlr:hasScore>0.886579</wlr:hasScore><wlr:hasRank>23</wlr:hasRank><dc:identifier>26098</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3849"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3849"/><wlr:hasDescription>&quot;Celui qui gagne, c\'est celui qui arrive en tête&quot;, a rappelé Xavier Bertrand, le secrétaire général de l\'UMP, lors du dernier meeting européen de la majorité, jeudi soir, porte de Versailles, à Paris (lire notre article). On le sait déjà, dimanche soi</wlr:hasDescription><wlr:hasScore>0.885014</wlr:hasScore><wlr:hasRank>24</wlr:hasRank><dc:identifier>42094</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3802"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3802"/><wlr:hasDescription>Eparpiller les européennes façon puzzle, pour mieux les neutraliser : gaullistes et socialistes l\'avaient rêvé, le giscardien Raffarin l\'a fait. Le procès était instruit depu</wlr:hasDescription><wlr:hasScore>0.881176</wlr:hasScore><wlr:hasRank>25</wlr:hasRank><dc:identifier>41650</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1320"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1320"/><wlr:hasDescription>&quot;Nous hésitions entre le non et le non; ce sera non&quot;, a ironisé le sénateur socialiste Bernard Frimat, mercredi 16 juillet, en réponse à l\'interview de Nicolas Sarkozy sur la réforme des institutions, annonçant in extremis dans Le Monde quelques initiatives en faveur des droits de l\'opposition. Ces déclarations présidentiel</wlr:hasDescription><wlr:hasScore>0.878407</wlr:hasScore><wlr:hasRank>26</wlr:hasRank><dc:identifier>18705</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1015"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1015"/><wlr:hasDescription>Jeudi soir, sur le plateau d\'&quot;A vous de juger&quot;, sur France 2, la photo de famille de l\'UMP était parfaite. Derrière François Fillon, inv</wlr:hasDescription><wlr:hasScore>0.871634</wlr:hasScore><wlr:hasRank>27</wlr:hasRank><dc:identifier>16105</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4397"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4397"/><wlr:hasDescription>L\'alliance est de circonstances mais elle contraint la première secrétaire à réagir. Eparpillée depuis quelques mo</wlr:hasDescription><wlr:hasScore>0.869736</wlr:hasScore><wlr:hasRank>28</wlr:hasRank><dc:identifier>49377</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4618"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4618"/><wlr:hasDescription>Une fois de plus, Nicolas Sarkozy a profité d\'une tribune internationale - en l\'occurrence l\'assemblée générale annuelle des Nations unies à New York - pour tenir un langage extrêmement ferme à l\'attention de l\'Iran. Mais, alors que le président </wlr:hasDescription><wlr:hasScore>0.868531</wlr:hasScore><wlr:hasRank>29</wlr:hasRank><dc:identifier>59562</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:397"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:397"/><wlr:hasDescription>Les &quot; réformistes &quot; les plus conséquents à gauche ne sont pas toujours ceux que l\'on croit. Les premières réactions autou</wlr:hasDescription><wlr:hasScore>0.867952</wlr:hasScore><wlr:hasRank>30</wlr:hasRank><dc:identifier>10623</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4285"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4285"/><wlr:hasDescription>Deuxième volet de notre enquête sur les raisons de la crise du parti socialiste et les relations qu\'il entretient avec les milieux de la recherche (vous pouvez lire le premier volet en cliquant ici). Mediapart a voulu interroger </wlr:hasDescription><wlr:hasScore>0.867451</wlr:hasScore><wlr:hasRank>31</wlr:hasRank><dc:identifier>45812</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1668"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1668"/><wlr:hasDescription>Quand personne ne croyait trop que le RSA aboutirait, il faisait l\'objet de rares débats. Tant qu\'il s\'expérimentait da</wlr:hasDescription><wlr:hasScore>0.865544</wlr:hasScore><wlr:hasRank>32</wlr:hasRank><dc:identifier>21885</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2129"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2129"/><wlr:hasDescription>Edouard Balladur répondait, mercredi 22 octobre, sur le gravier de l\'Elysée à quelques questions sur les objectifs et le programme de la nouvelle mission que venait de lui confier Nicolas Sarkozy. Quelques minutes plus tôt, le</wlr:hasDescription><wlr:hasScore>0.865544</wlr:hasScore><wlr:hasRank>33</wlr:hasRank><dc:identifier>25866</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5351"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5351"/><wlr:hasDescription>&quot;Dans quelques années nous dirons: il y a l\'UMP et il y a le Nouveau Centre&quot;, a assuré Hervé Morin, lors des voeux aux cadres de son parti, lundi 18 janvier. Chaque année, le discours est</wlr:hasDescription><wlr:hasScore>0.865421</wlr:hasScore><wlr:hasRank>34</wlr:hasRank><dc:identifier>72565</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4904"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4904"/><wlr:hasDescription>François Hollande fait le bilan. Dans un livre d\'entretien ave</wlr:hasDescription><wlr:hasScore>0.86539</wlr:hasScore><wlr:hasRank>35</wlr:hasRank><dc:identifier>67950</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1797"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1797"/><wlr:hasDescription>Le fichage politique en France, c\'est fini ! C\'est du moins la promesse lancée par la ministre de l\'intérieur, devant l\'Assemblée nationale. Au gré d\'une réécriture compl</wlr:hasDescription><wlr:hasScore>0.865269</wlr:hasScore><wlr:hasRank>36</wlr:hasRank><dc:identifier>23106</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1176"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1176"/><wlr:hasDescription>Les parlementaires UMP, jusqu\'ici divisés sur la réforme des institutions, semblent avoir déniché un compromis sur le \&quot;dossier turc\&quot;, validé mardi 1er juillet par François Fillon. Les sénateurs, révulsés à l\'i</wlr:hasDescription><wlr:hasScore>0.865142</wlr:hasScore><wlr:hasRank>37</wlr:hasRank><dc:identifier>17508</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:571"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:571"/><wlr:hasDescription>Avocat, Jean-Pierre Mignard est président de l\'association Désirs d\'avenir depuis novembre 2007. Vieil ami de François Holland</wlr:hasDescription><wlr:hasScore>0.860128</wlr:hasScore><wlr:hasRank>38</wlr:hasRank><dc:identifier>12169</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3676"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3676"/><wlr:hasDescription>Comme un mauvais moment à passer. Depuis son entrée en campagne</wlr:hasDescription><wlr:hasScore>0.858979</wlr:hasScore><wlr:hasRank>39</wlr:hasRank><dc:identifier>40411</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3799"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3799"/><wlr:hasDescription>Une porcelaine (d\'une entreprise viennoise en difficulté) contre une statue africaine (de &quot;femme debout&quot;). Par cet échange de cadeaux, M</wlr:hasDescription><wlr:hasScore>0.858373</wlr:hasScore><wlr:hasRank>40</wlr:hasRank><dc:identifier>41634</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3646"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3646"/><wlr:hasDescription>Il a recueilli plus de 18% des voix au premier tour de l\'élection présidentielle de 2007. Les sondages le créditent de </wlr:hasDescription><wlr:hasScore>0.858245</wlr:hasScore><wlr:hasRank>41</wlr:hasRank><dc:identifier>40117</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1535"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1535"/><wlr:hasDescription>Nicolas Sarkozy et le gouvernement ont-t-ils bien perçu ce qui s\'est joué dans l\'environnement international? A lire les discours, à observer les décisions, la question se posait depuis un an ; la publication par l\'Insee du recul de 0,3% du PIB au deuxième trimestre et de la destruction de 12.000 emplois, avec les réaction</wlr:hasDescription><wlr:hasScore>0.856629</wlr:hasScore><wlr:hasRank>42</wlr:hasRank><dc:identifier>20563</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2361"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2361"/><wlr:hasDescription>A la veille de l\'élection du nouveau premier secrétaire socialiste, on n\'a jamais autant parlé\8230 du MoDem. Mardi, interrogée sur France </wlr:hasDescription><wlr:hasScore>0.856416</wlr:hasScore><wlr:hasRank>43</wlr:hasRank><dc:identifier>28041</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2441"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2441"/><wlr:hasDescription>A Paris, l\'UMP a des airs de parti socialiste, en cette période de renouvellement de la fédération. La semaine passée, les adhére</wlr:hasDescription><wlr:hasScore>0.854737</wlr:hasScore><wlr:hasRank>44</wlr:hasRank><dc:identifier>28692</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5005"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5005"/><wlr:hasDescription>La droite a longtemps détesté les panthéonisations. En 1908, celle de Zola fit de</wlr:hasDescription><wlr:hasScore>0.854737</wlr:hasScore><wlr:hasRank>45</wlr:hasRank><dc:identifier>69111</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3556"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3556"/><wlr:hasDescription>Martine Aubry en avait sans doute rêvé, Poul Nyrup Rasmussen l\'a fait. Le parti socialiste a enfin r</wlr:hasDescription><wlr:hasScore>0.854005</wlr:hasScore><wlr:hasRank>46</wlr:hasRank><dc:identifier>39274</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:47"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:47"/><wlr:hasDescription>C\'est assurément une crise atypique que traverse, en France, la presse quotidienne. Irruption de la gratuité et d</wlr:hasDescription><wlr:hasScore>0.853189</wlr:hasScore><wlr:hasRank>47</wlr:hasRank><dc:identifier>200</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2185"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2185"/><wlr:hasDescription>Il y a peu, les &quot;carnets noirs&quot; d\'Yves Bertrand et le fichier Edvige ravivaient le spectre de la police secrète. Dans le même temps, un servic</wlr:hasDescription><wlr:hasScore>0.852803</wlr:hasScore><wlr:hasRank>48</wlr:hasRank><dc:identifier>26509</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2278"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2278"/><wlr:hasDescription>Les grands esprits socialistes se sont reposés, au lendemain d\'une longue nuit électorale. Si Ségolène Royal arrive en t</wlr:hasDescription><wlr:hasScore>0.85201</wlr:hasScore><wlr:hasRank>49</wlr:hasRank><dc:identifier>27180</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1902"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1902"/><wlr:hasDescription>En pleine panique financière, les responsables politiques retrouvent la parole. Après la réunion de crise ce </wlr:hasDescription><wlr:hasScore>0.851838</wlr:hasScore><wlr:hasRank>50</wlr:hasRank><dc:identifier>23938</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:288"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:288"/><wlr:hasDescription>L\'UMP et le PS sont des jumeaux dizygotes. Ils ne sont pas issus du même</wlr:hasDescription><wlr:hasScore>0.848327</wlr:hasScore><wlr:hasRank>51</wlr:hasRank><dc:identifier>9624</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1093"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1093"/><wlr:hasDescription>Il dit vouloir rendre des comptes, démontrer combien les députés socialistes se sont montrés utiles depuis un an au Palais-Bourbon. Jean-Marc Ayrault organisera </wlr:hasDescription><wlr:hasScore>0.847377</wlr:hasScore><wlr:hasRank>52</wlr:hasRank><dc:identifier>16697</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1462"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1462"/><wlr:hasDescription>Les ministres sont partis en vacances mais il en est resté un, le porte-parole du gouvernement, Luc Chatel, pour faire le service après-vente des lois en cascade votées par le Parlement depuis un an. &quot;De grandes batailles idéolog</wlr:hasDescription><wlr:hasScore>0.847377</wlr:hasScore><wlr:hasRank>53</wlr:hasRank><dc:identifier>19657</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2179"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2179"/><wlr:hasDescription>Sitôt que l\'on a su que le taux de rémunération du Livret A allait baisser le 1er février prochain, de 4% actuellement à sans doute 3,5% et peut-être même 3%, cela a été un véritable tir de barrage. Comprenant qu\'en pleine tourm</wlr:hasDescription><wlr:hasScore>0.847377</wlr:hasScore><wlr:hasRank>54</wlr:hasRank><dc:identifier>26409</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1403"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1403"/><wlr:hasDescription>La \&quot;nouvelle\&quot; Constitution, parue jeudi 24 juillet au Journal officiel, fait littéralement jubiler Jean-François Copé. (Téléchargez ici le calendri</wlr:hasDescription><wlr:hasScore>0.845198</wlr:hasScore><wlr:hasRank>55</wlr:hasRank><dc:identifier>19199</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2501"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2501"/><wlr:hasDescription>Jeudi 4 décembre, l\'Assemblée nationale est entrée dans le vif du sujet, en adoptant deux mesures clés du projet de loi sur l\'audiovisuel public, qui prévoient la désignation et la révocation par le chef de l\'Etat des patrons de France Télévisions, de Radio France et d\'AEF (la holding regroupant France 24, RFI et TV5 Monde). Sur l\'article 8 (fixant le pr</wlr:hasDescription><wlr:hasScore>0.845198</wlr:hasScore><wlr:hasRank>56</wlr:hasRank><dc:identifier>29095</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4470"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4470"/><wlr:hasDescription>De notre envoyée spéciale à La Grande-Motte  Pour éviter qu\'écologistes et socialistes fassent une OPA sur le Modem, sorti très affaibli des élections européennes, Bayrou leur a lancé une &quot;offre publique de dialogue&quot;, dimanche 6 septembre, en clôture de l\'université d\'été du mouvement, organisée à La Grande-Motte. Par son discours, il a signé </wlr:hasDescription><wlr:hasScore>0.844449</wlr:hasScore><wlr:hasRank>57</wlr:hasRank><dc:identifier>53657</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5881"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5881"/><wlr:hasDescription>&quot;Je ne rentre pas au gouvernement dans les meilleures conditions, ni de popularité, ni de finances publiques&quot;, a reconnu le nouveau ministre du budget, sur Europe1, jeudi matin. Il aurait pu ajouter: &quot;ni de </wlr:hasDescription><wlr:hasScore>0.842533</wlr:hasScore><wlr:hasRank>58</wlr:hasRank><dc:identifier>78812</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3533"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3533"/><wlr:hasDescription>A l\'Elysée, on affirme que Dominique de Villepin ne fait pas peur. On prétend même qu\'il n\'a qu\'</wlr:hasDescription><wlr:hasScore>0.84111</wlr:hasScore><wlr:hasRank>59</wlr:hasRank><dc:identifier>39104</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1978"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1978"/><wlr:hasDescription>Aucune faillite retentissante, pas d\'annonce de menaces supplémentaires sur l\'économie malgré les prix de l\'immobilier qui commencent à chuter et l\'Islande qui se liquéfie. A Paris notamment, les marché</wlr:hasDescription><wlr:hasScore>0.837822</wlr:hasScore><wlr:hasRank>60</wlr:hasRank><dc:identifier>24554</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5120"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5120"/><wlr:hasDescription>Des élus qui claquent la porte de l\'UMP, des conseillers qui quittent sur la pointe des pieds l\'Elysée... Les annonces de ce lundi 7 </wlr:hasDescription><wlr:hasScore>0.837822</wlr:hasScore><wlr:hasRank>61</wlr:hasRank><dc:identifier>70129</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:154"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:154"/><wlr:hasDescription>Face au pouvoir central incarné par le sarkozysme et ses dépendances, s\'installe un contre-pouvoir territorial porté par le socialisme et ses associés. La France est &quot; coupée en deu</wlr:hasDescription><wlr:hasScore>0.837729</wlr:hasScore><wlr:hasRank>62</wlr:hasRank><dc:identifier>748</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3862"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3862"/><wlr:hasDescription>De midi à minuit, dans la journée du dimanche 7 juin, la rédaction de Mediapart a tenu la chronique, minute par minute, de la journée électorale. Vous pouvez lire ci-dessous, </wlr:hasDescription><wlr:hasScore>0.836646</wlr:hasScore><wlr:hasRank>63</wlr:hasRank><dc:identifier>42258</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5246"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5246"/><wlr:hasDescription>&quot;Les gnomes de Francfort&quot;, par exemple, qualificatif de Jean-Pierre Chevènement à l\'encontre des dirigeants de la Banque centrale européenne, gardienne du fameux traité de &quot;MasTrique&quot;. Il y a le savoureux &quot;Le parti</wlr:hasDescription><wlr:hasScore>0.829268</wlr:hasScore><wlr:hasRank>64</wlr:hasRank><dc:identifier>71364</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5506"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5506"/><wlr:hasDescription>Changement express de stratégie, négociations interminables pour boucler des listes, choix contestés en Ile-de-France, affaire Clearstream qui déchire la majorité. A moins de deux mois du scrut</wlr:hasDescription><wlr:hasScore>0.829268</wlr:hasScore><wlr:hasRank>65</wlr:hasRank><dc:identifier>74059</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1524"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1524"/><wlr:hasDescription>Les autruches sortent enfin la tête de terre. Contrairement à l\'antienne op</wlr:hasDescription><wlr:hasScore>0.827191</wlr:hasScore><wlr:hasRank>66</wlr:hasRank><dc:identifier>20496</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1614"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1614"/><wlr:hasDescription>Elle a la voix toute chevrotante, Monique. Mégaphone en main, cette inst</wlr:hasDescription><wlr:hasScore>0.825859</wlr:hasScore><wlr:hasRank>67</wlr:hasRank><dc:identifier>21353</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3576"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3576"/><wlr:hasDescription>&quot;La politique est de retour ! Ces élections seront politiques&quot;, a prévenu Xavier Bertrand en marge du premier meeting européen de l\'UMP, mardi soir, à Rueil-Malmaison (Hauts-de-Seine). Le but était clair : ramener </wlr:hasDescription><wlr:hasScore>0.825809</wlr:hasScore><wlr:hasRank>68</wlr:hasRank><dc:identifier>39518</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5922"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5922"/><wlr:hasDescription>Même s\'il est un ami de Nicolas Sarkozy et un client d\'Alain Minc, Stéphane Courbit est depuis quelque temps bien malheureux en affaires. Après avoir acquis une partic</wlr:hasDescription><wlr:hasScore>0.825159</wlr:hasScore><wlr:hasRank>69</wlr:hasRank><dc:identifier>79317</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5786"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5786"/><wlr:hasDescription>La rumeur circule depuis quelques jours - le site internet Wansquare s\'en est fait le premier l\'écho, et après lui Le Point - et nous en avons obtenu une confirmation de très bonne source: Yazid Sabeg, l\'actuel commissaire à la diversité et à l\'égalité des chances, devrait succéder à Anne Lauvergeon à la tête d\'Areva, le champion du nucléaire français. Selon nos informations, cette</wlr:hasDescription><wlr:hasScore>0.824374</wlr:hasScore><wlr:hasRank>70</wlr:hasRank><dc:identifier>77916</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4453"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4453"/><wlr:hasDescription>Après avoir passé son été à tempêter, menaçant de démissionner de la direction ou d\'en appeler aux militants pour imposer les primaires ouvertes qu\'il promeut dans un livre (Comment sauver la gauche, au Seuil, avec Olivier Ferrand), Arnaud Montebourg est finalement l\'un des grands gagnants des universités d\'été de La Rochelle. Même si son forcing a irrité </wlr:hasDescription><wlr:hasScore>0.824323</wlr:hasScore><wlr:hasRank>71</wlr:hasRank><dc:identifier>52502</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:347"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:347"/><wlr:hasDescription>L\'accueil de guérilleros des Forces armées révolutionnaires en Colombie (FARC) sur le territoire français : voilà la probable clef diplomatique de la tentative de libération d\'Ingrid Betancourt qui est en train de se jouer en Amérique du Sud. L\'Elysée a annoncé, mercredi </wlr:hasDescription><wlr:hasScore>0.823627</wlr:hasScore><wlr:hasRank>72</wlr:hasRank><dc:identifier>10057</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:600"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:600"/><wlr:hasDescription>En matière culturelle, le candidat à l\'élection présidentielle Nicolas Sarkozy s\'était limité au strict minimum. Deux promesses saillantes, en</wlr:hasDescription><wlr:hasScore>0.823627</wlr:hasScore><wlr:hasRank>73</wlr:hasRank><dc:identifier>12369</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3200"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3200"/><wlr:hasDescription>&quot;Je suis quelqu\'un de souple dans mes charentaises&quot;, plaisante Valérie Pécresse sur France Culture en février 2009, en contrepoint du fameux &quot;droit dans mes bottes&quot; d\'Alain Juppé en pleine crise de la réforme des retraites en 1995. Cette souplesse en chaussons </wlr:hasDescription><wlr:hasScore>0.823627</wlr:hasScore><wlr:hasRank>74</wlr:hasRank><dc:identifier>35718</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4458"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4458"/><wlr:hasDescription>Jean-Pierre Mignard quitte la présidence de Désirs d\'avenir désormais assumée par Ségolène Royal elle-même, qui entend transformer l\'association en &quot;ONG européenne&quot; proche d\'une fondation type think tank, comme le précise un communiqué publié jeudi 3 septembre. Dans un entretien à Mediapart</wlr:hasDescription><wlr:hasScore>0.823627</wlr:hasScore><wlr:hasRank>75</wlr:hasRank><dc:identifier>53147</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4698"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4698"/><wlr:hasDescription>Alors que la session parlementaire est à peine réunie, que les sujets foisonnent allant des suites de la crise économique au colossal déficit budgétaire en passant par la réforme des collectivités locales, quel est l\'un des tout premiers sujets que le gouvernement décide d\'inscrire à l\'ordre du jour de l\'Assemblée nationale? L\'ouverture du marché des jeux en ligne et la fin du monopole de l\'Etat sur ce secteur.&quot;Nous avons pour ambition que </wlr:hasDescription><wlr:hasScore>0.823627</wlr:hasScore><wlr:hasRank>76</wlr:hasRank><dc:identifier>63657</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4823"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4823"/><wlr:hasDescription>&quot;Je ne dirai rien sur les élections au PS, ce serait désagréable&quot;, ironisait Jean Sarkozy, vendredi, au conseil général des Hauts-de-Seine, lors de son discours de candidat au poste d\'administrateur de l\'Epad. A l\'UMP, on se plaît à renvoy</wlr:hasDescription><wlr:hasScore>0.823127</wlr:hasScore><wlr:hasRank>77</wlr:hasRank><dc:identifier>67076</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4272"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4272"/><wlr:hasDescription>Oublions Jack Lang, Bernard-Henri Lévy et leurs imprécations sur la mort assurée du Parti socialiste. Laissons à Max Gallo, ancien </wlr:hasDescription><wlr:hasScore>0.822925</wlr:hasScore><wlr:hasRank>78</wlr:hasRank><dc:identifier>45740</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2577"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2577"/><wlr:hasDescription>Attention, un train peut en cacher un autre. L\'arrivée de Patrick Devedjia</wlr:hasDescription><wlr:hasScore>0.819154</wlr:hasScore><wlr:hasRank>79</wlr:hasRank><dc:identifier>29621</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4728"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4728"/><wlr:hasDescription>L\'ex-judoka David Douillet, engagé sous les couleurs du parti présidentiel, a écrasé le premier tour de l\'élection législative partielle organisée dimanche 11 octobre, dans la 12e circonscription des Yvelines, en captant 44,2% des voix, soit le double du candidat socialiste et maire de Poissy, Frédérik Bernard, qui a recueilli 21,9% des bulletins. Le candidat d\'Europe-Ecologie</wlr:hasDescription><wlr:hasScore>0.818169</wlr:hasScore><wlr:hasRank>80</wlr:hasRank><dc:identifier>65097</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5490"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5490"/><wlr:hasDescription>Jeudi, l\'UMP était plus bavarde sur la dernière sortie du socialiste Georges Frêche que sur la relaxe de Dominique de Villepin dans le procès Clearstream. Connu pour dégainer des commu</wlr:hasDescription><wlr:hasScore>0.818169</wlr:hasScore><wlr:hasRank>81</wlr:hasRank><dc:identifier>73885</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4341"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4341"/><wlr:hasDescription>Plus de trois mois après le revers des élections européennes, où il a recueilli à peine 16,48%, devançant d\'une rien les listes Europe-Ecologie, et à quelques jours de son université d\'été de La Rochelle (28-30 août), il n\'est pas certain que le parti socialiste a retrouvé confiance, sérénité et cohésion. Entre les silences de Ségolèn</wlr:hasDescription><wlr:hasScore>0.817228</wlr:hasScore><wlr:hasRank>82</wlr:hasRank><dc:identifier>46602</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2286"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2286"/><wlr:hasDescription>Lundi 10 novembre au matin, une délégation du Cran, conseil représentatif des associations noires, est reçue à l\'Elysée. Pas par le président, ni par </wlr:hasDescription><wlr:hasScore>0.817157</wlr:hasScore><wlr:hasRank>83</wlr:hasRank><dc:identifier>27334</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3510"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3510"/><wlr:hasDescription>&quot;Une caravane mobile pour montrer que l\'Europe peut mobiliser.&quot; Lundi 20 avril, le secrétair</wlr:hasDescription><wlr:hasScore>0.817157</wlr:hasScore><wlr:hasRank>84</wlr:hasRank><dc:identifier>38947</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4201"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4201"/><wlr:hasDescription>Martin Hirsch a pris un coup de jeune. Tel un étudiant cherchant un </wlr:hasDescription><wlr:hasScore>0.817157</wlr:hasScore><wlr:hasRank>85</wlr:hasRank><dc:identifier>45166</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4545"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4545"/><wlr:hasDescription>Il aura fallu deux ans pour que Nicolas Sarkozy fasse son mea-culpa sur les empreintes génétiques réservées aux étrangers souhaitant rejoindre leur famille en France. Lors d\'une rencontre à l\'Élys</wlr:hasDescription><wlr:hasScore>0.815821</wlr:hasScore><wlr:hasRank>86</wlr:hasRank><dc:identifier>56762</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4513"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4513"/><wlr:hasDescription>Il a été l\'une des stars de \8220l\'ouverture socialiste\8221 durant l\'été, participant aux meetings de François Hollande (à Lorient en juin) puis de Vincent Peillon (à Marseille en août). Désormais ressorti de l\'anony</wlr:hasDescription><wlr:hasScore>0.814434</wlr:hasScore><wlr:hasRank>87</wlr:hasRank><dc:identifier>55167</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:446"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:446"/><wlr:hasDescription>L\'inusable Michel Charasse exclu du PS? La fédération socialiste du Puy-de-Dôme en a voté la demande jeudi soir, à une large majorité du conseil fédéral (42 voix contre 14). Mais l\'ancien ministre du Bud</wlr:hasDescription><wlr:hasScore>0.814077</wlr:hasScore><wlr:hasRank>88</wlr:hasRank><dc:identifier>11001</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2312"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2312"/><wlr:hasDescription>Ces derniers jours, le bruit s\'est répandu comme une traînée de poudre dans la maison socialiste: &quot;La presse people débarque au congrès!&quot; Les journalistes de Voici seraient déjà en route pour Reims, bardés de magnétos... Interrogé, le service de pr</wlr:hasDescription><wlr:hasScore>0.814077</wlr:hasScore><wlr:hasRank>89</wlr:hasRank><dc:identifier>27639</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5488"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5488"/><wlr:hasDescription>Si le parti socialiste n\'est toujours pas un long fleuve tranquille, il parvient tout de même à ne pas se noyer dans les eaux troubles de la division. En adoptant mardi soir une po</wlr:hasDescription><wlr:hasScore>0.814077</wlr:hasScore><wlr:hasRank>90</wlr:hasRank><dc:identifier>73823</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2075"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2075"/><wlr:hasDescription>La Caisse d\'épargne, qui a révélé une perte de 600 millions d\'euros dans des opérations de marché, doit réunir son conseil de surveillance, dimanche 19 octobre, dans l\'après-midi, afin de se prononcer sur le sort de la direction et notamment celui du président du directoire de la Caisse nationale des Caisses d\'épargne (CNCE), Charles Milhaud.Dans un entretien, publié par</wlr:hasDescription><wlr:hasScore>0.813793</wlr:hasScore><wlr:hasRank>91</wlr:hasRank><dc:identifier>25510</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:487"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:487"/><wlr:hasDescription>Du &quot;les caisses sont vides&quot; de Nicolas Sarkozy au &quot;pays en faillite&quot; de François Fillon, le triste état des finances publiques françaises alimente la chronique par intermittence. Mais derrière le propos polit</wlr:hasDescription><wlr:hasScore>0.811021</wlr:hasScore><wlr:hasRank>92</wlr:hasRank><dc:identifier>11333</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1799"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1799"/><wlr:hasDescription>Adieu levées de fourches, déversements de lisier, saccages de bâtiments administratifs et autres violences à agents de la force publique : la grande agriculture française semble être entrée dans l\'ère du lobbying à visage humain. Et elle a choisi pour annonce</wlr:hasDescription><wlr:hasScore>0.811021</wlr:hasScore><wlr:hasRank>93</wlr:hasRank><dc:identifier>23127</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1976"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1976"/><wlr:hasDescription>Mais où est donc passée la gauche? Cette époque de tempête et de crise devrait être faste pour elle. Alors que le capitalisme trav</wlr:hasDescription><wlr:hasScore>0.811021</wlr:hasScore><wlr:hasRank>94</wlr:hasRank><dc:identifier>24528</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5753"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5753"/><wlr:hasDescription>Chez Europe Ecologie, beaucoup ne le disent qu\'à demi-mot, mais ils sont déçus: tous auraient aimé dépasser les 16% des européennes de 2009. Tout juste débarqué de son ma</wlr:hasDescription><wlr:hasScore>0.810912</wlr:hasScore><wlr:hasRank>95</wlr:hasRank><dc:identifier>77546</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1592"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1592"/><wlr:hasDescription>Certains auront peut-être du mal à le croire, mais, à quelques heures de l\'ouverture de la Convention démocrate de Denver, chargée d\'investir officiellement Barack Obama, ce dernier n\'est pas encore assuré d\'accéder à la Maison Blanche. Les 200.000 Allemands qui lui</wlr:hasDescription><wlr:hasScore>0.810167</wlr:hasScore><wlr:hasRank>96</wlr:hasRank><dc:identifier>21133</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1600"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1600"/><wlr:hasDescription>On prête à Talleyrand ce mot: \&quot;Quand je m\'examine, je m\'inquiète. Quand je me compare, je me ra</wlr:hasDescription><wlr:hasScore>0.804479</wlr:hasScore><wlr:hasRank>97</wlr:hasRank><dc:identifier>21227</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5548"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5548"/><wlr:hasDescription>De notre envoyée spéciale en Paca, Ce jour-là, en campagne sur le site nucléaire du Tricastin, Europe Ecologie vient mesurer la radioactivité et déposer une gerbe de fleurs: &quot;Ci-gît la santé publique!&quot;... Des candidats aux régionale</wlr:hasDescription><wlr:hasScore>0.802372</wlr:hasScore><wlr:hasRank>98</wlr:hasRank><dc:identifier>74485</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2290"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2290"/><wlr:hasDescription>Difficile construction d\'alliances majoritaires, au parti socialiste. Après le vote des motions et </wlr:hasDescription><wlr:hasScore>0.801553</wlr:hasScore><wlr:hasRank>99</wlr:hasRank><dc:identifier>27360</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2033"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2033"/><wlr:hasDescription>Soudain, un week-end, le travail du dimanche est devenu priorité nationale. Dimanche dernier, le ministre</wlr:hasDescription><wlr:hasScore>0.801468</wlr:hasScore><wlr:hasRank>100</wlr:hasRank><dc:identifier>25201</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/cluster:0"><wlr:hasNumberOfResults>19</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:0"/><wlr:hasScore>1</wlr:hasScore><wlr:hasDescription>Proche de Ségolène Royal, François Rebsamen a un temps envisagé de faire le trait-d\'union avec les amis de François Hollande pour renverser Martine Aubry de la direction du PS. Rentré dans le rang</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/St%C3%A9phane%20Alli%C3%A8s/ResizedImage383255-IMG0707.JPG</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/Mathilde Mathieu/229180457_9db20a3f47_m.jpg</wlr:hasNativeContent></mediaUnit><dc:title>PS</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:0"><rdf:li rdf:resource="periplus://simquery/result/hit:3883"/><rdf:li rdf:resource="periplus://simquery/result/hit:2475"/><rdf:li rdf:resource="periplus://simquery/result/hit:4210"/><rdf:li rdf:resource="periplus://simquery/result/hit:2156"/><rdf:li rdf:resource="periplus://simquery/result/hit:3676"/><rdf:li rdf:resource="periplus://simquery/result/hit:3799"/><rdf:li rdf:resource="periplus://simquery/result/hit:2278"/><rdf:li rdf:resource="periplus://simquery/result/hit:1093"/><rdf:li rdf:resource="periplus://simquery/result/hit:1600"/><rdf:li rdf:resource="periplus://simquery/result/hit:2290"/><rdf:li rdf:resource="periplus://simquery/result/hit:4285"/><rdf:li rdf:resource="periplus://simquery/result/hit:571"/><rdf:li rdf:resource="periplus://simquery/result/hit:4458"/><rdf:li rdf:resource="periplus://simquery/result/hit:4272"/><rdf:li rdf:resource="periplus://simquery/result/hit:446"/><rdf:li rdf:resource="periplus://simquery/result/hit:2312"/><rdf:li rdf:resource="periplus://simquery/result/hit:5488"/><rdf:li rdf:resource="periplus://simquery/result/hit:4513"/><rdf:li rdf:resource="periplus://simquery/result/hit:4728"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:1"><wlr:hasNumberOfResults>9</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:1"/><wlr:hasScore>0.970595</wlr:hasScore><wlr:hasDescription>Lot de consolation pour la droite : La Guyane basculerait. Selon des chiffres encore</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/La%20r%C3%A9daction%20Mediapart/rejet.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><dc:title>élections régionales</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:1"><rdf:li rdf:resource="periplus://simquery/result/hit:5803"/><rdf:li rdf:resource="periplus://simquery/result/hit:5767"/><rdf:li rdf:resource="periplus://simquery/result/hit:5548"/><rdf:li rdf:resource="periplus://simquery/result/hit:133"/><rdf:li rdf:resource="periplus://simquery/result/hit:3256"/><rdf:li rdf:resource="periplus://simquery/result/hit:3328"/><rdf:li rdf:resource="periplus://simquery/result/hit:4397"/><rdf:li rdf:resource="periplus://simquery/result/hit:96"/><rdf:li rdf:resource="periplus://simquery/result/hit:5506"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:2"><wlr:hasNumberOfResults>25</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:2"/><wlr:hasScore>0.961693</wlr:hasScore><wlr:hasDescription>Du changement de statut de La Poste, il n\'a été que peu question durant la campagne des élections européennes, comme si la réforme avait pris du retard ou n\'était plus d\'actualité. Et pourtant, il n\'en est rien</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/Laurent Mauduit/Image 8_13.png</wlr:hasNativeContent></mediaUnit><dc:title>gouvernement UMP</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:2"><rdf:li rdf:resource="periplus://simquery/result/hit:3844"/><rdf:li rdf:resource="periplus://simquery/result/hit:2129"/><rdf:li rdf:resource="periplus://simquery/result/hit:2441"/><rdf:li rdf:resource="periplus://simquery/result/hit:5120"/><rdf:li rdf:resource="periplus://simquery/result/hit:2501"/><rdf:li rdf:resource="periplus://simquery/result/hit:1462"/><rdf:li rdf:resource="periplus://simquery/result/hit:1797"/><rdf:li rdf:resource="periplus://simquery/result/hit:2185"/><rdf:li rdf:resource="periplus://simquery/result/hit:397"/><rdf:li rdf:resource="periplus://simquery/result/hit:1668"/><rdf:li rdf:resource="periplus://simquery/result/hit:1036"/><rdf:li rdf:resource="periplus://simquery/result/hit:1614"/><rdf:li rdf:resource="periplus://simquery/result/hit:1535"/><rdf:li rdf:resource="periplus://simquery/result/hit:1320"/><rdf:li rdf:resource="periplus://simquery/result/hit:1176"/><rdf:li rdf:resource="periplus://simquery/result/hit:1403"/><rdf:li rdf:resource="periplus://simquery/result/hit:2179"/><rdf:li rdf:resource="periplus://simquery/result/hit:1976"/><rdf:li rdf:resource="periplus://simquery/result/hit:154"/><rdf:li rdf:resource="periplus://simquery/result/hit:47"/><rdf:li rdf:resource="periplus://simquery/result/hit:347"/><rdf:li rdf:resource="periplus://simquery/result/hit:2033"/><rdf:li rdf:resource="periplus://simquery/result/hit:4698"/><rdf:li rdf:resource="periplus://simquery/result/hit:4201"/><rdf:li rdf:resource="periplus://simquery/result/hit:4545"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:3"><wlr:hasNumberOfResults>4</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:3"/><wlr:hasScore>0.936393</wlr:hasScore><wlr:hasDescription>Une bombe dort au pôle financier du tribunal de grande instance de Paris. Les juges Françoise Desset et</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/Fabrice%20Arfi/article_photo_1218010950574-1-0.jpg</wlr:hasNativeContent></mediaUnit><dc:title>affaire de Karachi</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:3"><rdf:li rdf:resource="periplus://simquery/result/hit:1744"/><rdf:li rdf:resource="periplus://simquery/result/hit:1745"/><rdf:li rdf:resource="periplus://simquery/result/hit:3972"/><rdf:li rdf:resource="periplus://simquery/result/hit:3973"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:4"><wlr:hasNumberOfResults>9</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:4"/><wlr:hasScore>0.928015</wlr:hasScore><wlr:hasDescription>&quot;Dans une telle campagne où les petites phrases et les effets médiatiques semblent plus compter que le fond, de belles images au 20 heures ne peuvent pas faire de mal.&quot; Ce commentaire d\'un dirigean</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/St%C3%A9phane%20Alli%C3%A8s/Image%205_5.png</wlr:hasNativeContent></mediaUnit><dc:title>campagne des européennes</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:4"><rdf:li rdf:resource="periplus://simquery/result/hit:3789"/><rdf:li rdf:resource="periplus://simquery/result/hit:3556"/><rdf:li rdf:resource="periplus://simquery/result/hit:3849"/><rdf:li rdf:resource="periplus://simquery/result/hit:3802"/><rdf:li rdf:resource="periplus://simquery/result/hit:3576"/><rdf:li rdf:resource="periplus://simquery/result/hit:5753"/><rdf:li rdf:resource="periplus://simquery/result/hit:3862"/><rdf:li rdf:resource="periplus://simquery/result/hit:4341"/><rdf:li rdf:resource="periplus://simquery/result/hit:3510"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:5"><wlr:hasNumberOfResults>10</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:5"/><wlr:hasScore>0.914044</wlr:hasScore><wlr:hasDescription>L\'UMP et le PS sont des jumeaux dizygotes. Ils ne sont pas issus du même</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/Marine%20Turchi/2083.jpg</wlr:hasNativeContent></mediaUnit><dc:title>UMP</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:5"><rdf:li rdf:resource="periplus://simquery/result/hit:288"/><rdf:li rdf:resource="periplus://simquery/result/hit:3675"/><rdf:li rdf:resource="periplus://simquery/result/hit:3993"/><rdf:li rdf:resource="periplus://simquery/result/hit:1015"/><rdf:li rdf:resource="periplus://simquery/result/hit:3533"/><rdf:li rdf:resource="periplus://simquery/result/hit:600"/><rdf:li rdf:resource="periplus://simquery/result/hit:3200"/><rdf:li rdf:resource="periplus://simquery/result/hit:2577"/><rdf:li rdf:resource="periplus://simquery/result/hit:4823"/><rdf:li rdf:resource="periplus://simquery/result/hit:5490"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:6"><wlr:hasNumberOfResults>6</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:6"/><wlr:hasScore>0.907456</wlr:hasScore><wlr:hasDescription>Jacques Julliard, 77 ans, entre en dissidence. Figure historique de la &quot;deux</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/250_pixels/St%C3%A9phane%20Alli%C3%A8s/julliard.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/Marine%20Turchi/chirac_balladur.png</wlr:hasNativeContent></mediaUnit><dc:title>livre</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:6"><rdf:li rdf:resource="periplus://simquery/result/hit:5828"/><rdf:li rdf:resource="periplus://simquery/result/hit:4870"/><rdf:li rdf:resource="periplus://simquery/result/hit:5246"/><rdf:li rdf:resource="periplus://simquery/result/hit:4453"/><rdf:li rdf:resource="periplus://simquery/result/hit:4904"/><rdf:li rdf:resource="periplus://simquery/result/hit:5005"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:7"><wlr:hasNumberOfResults>4</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:7"/><wlr:hasScore>0.865421</wlr:hasScore><wlr:hasDescription>&quot;Dans quelques années nous dirons: il y a l\'UMP et il y a le Nouveau Centre&quot;, a assuré Hervé Morin, lors des voeux aux cadres de son parti, lundi 18 janvier. Chaque année, le discours est</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/Marine%20Turchi/udf.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/150_pixels/Marine%20Turchi/Dominique_villepin_1.jpg</wlr:hasNativeContent></mediaUnit><dc:title>Nouveau Centre Modem</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:7"><rdf:li rdf:resource="periplus://simquery/result/hit:5351"/><rdf:li rdf:resource="periplus://simquery/result/hit:3646"/><rdf:li rdf:resource="periplus://simquery/result/hit:2361"/><rdf:li rdf:resource="periplus://simquery/result/hit:4470"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:8"><wlr:hasNumberOfResults>6</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:8"/><wlr:hasScore>0.851838</wlr:hasScore><wlr:hasDescription>En pleine panique financière, les responsables politiques retrouvent la parole. Après la réunion de crise ce </wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3883</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3256</wlr:hasNativeContent></mediaUnit><dc:title>panique financière</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:8"><rdf:li rdf:resource="periplus://simquery/result/hit:1902"/><rdf:li rdf:resource="periplus://simquery/result/hit:5881"/><rdf:li rdf:resource="periplus://simquery/result/hit:1978"/><rdf:li rdf:resource="periplus://simquery/result/hit:1524"/><rdf:li rdf:resource="periplus://simquery/result/hit:2075"/><rdf:li rdf:resource="periplus://simquery/result/hit:487"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:9"><wlr:hasNumberOfResults>8</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:9"/><wlr:hasScore>0.95304</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>etc.</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:9"><rdf:li rdf:resource="periplus://simquery/result/hit:271"/><rdf:li rdf:resource="periplus://simquery/result/hit:1799"/><rdf:li rdf:resource="periplus://simquery/result/hit:1732"/><rdf:li rdf:resource="periplus://simquery/result/hit:4618"/><rdf:li rdf:resource="periplus://simquery/result/hit:5922"/><rdf:li rdf:resource="periplus://simquery/result/hit:5786"/><rdf:li rdf:resource="periplus://simquery/result/hit:1592"/><rdf:li rdf:resource="periplus://simquery/result/hit:2286"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result"><wlr:hasQueryOffset>0</wlr:hasQueryOffset><wlr:hasNumberOfResults>100</wlr:hasNumberOfResults><wlr:isResultOf rdf:resource="periplus://simquery"/><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/model#ResultSet"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3883"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3256"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3328"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3844"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:271"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1732"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5803"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1744"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1745"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:96"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4210"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3972"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3973"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2475"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3789"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5767"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1036"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:133"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3675"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5828"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3993"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4870"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2156"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3849"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3802"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1320"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1015"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4397"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4618"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:397"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4285"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1668"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2129"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5351"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4904"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1797"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1176"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:571"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3676"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3799"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3646"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1535"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2361"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2441"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5005"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3556"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:47"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2185"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2278"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1902"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:288"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1093"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1462"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2179"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1403"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2501"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4470"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5881"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3533"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1978"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5120"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:154"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3862"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5246"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5506"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1524"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1614"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3576"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5922"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5786"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4453"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:347"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:600"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3200"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4458"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4698"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4823"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4272"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2577"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4728"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5490"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4341"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2286"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3510"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4201"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4545"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4513"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:446"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2312"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5488"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2075"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:487"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1799"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1976"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5753"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1592"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1600"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5548"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2290"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2033"/></rdf:Description></rdf:RDF></data></annotation><resource uri="periplus://resource:3883" xsi:type="model:Document"><annotation uri="periplus://resource:3883/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3883"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3883</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3256" xsi:type="model:Document"><annotation uri="periplus://resource:3256/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3256"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3256</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3328" xsi:type="model:Document"><annotation uri="periplus://resource:3328/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3328"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3328</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3844" xsi:type="model:Document"><annotation uri="periplus://resource:3844/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3844"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3844</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:271" xsi:type="model:Document"><annotation uri="periplus://resource:271/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:271"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/271</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1732" xsi:type="model:Document"><annotation uri="periplus://resource:1732/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1732"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1732</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5803" xsi:type="model:Document"><annotation uri="periplus://resource:5803/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5803"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5803</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1744" xsi:type="model:Document"><annotation uri="periplus://resource:1744/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1744"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1744</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1745" xsi:type="model:Document"><annotation uri="periplus://resource:1745/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1745"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1745</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:96" xsi:type="model:Document"><annotation uri="periplus://resource:96/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:96"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/96</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4210" xsi:type="model:Document"><annotation uri="periplus://resource:4210/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4210"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4210</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3972" xsi:type="model:Document"><annotation uri="periplus://resource:3972/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3972"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3972</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3973" xsi:type="model:Document"><annotation uri="periplus://resource:3973/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3973"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3973</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2475" xsi:type="model:Document"><annotation uri="periplus://resource:2475/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2475"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2475</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3789" xsi:type="model:Document"><annotation uri="periplus://resource:3789/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3789"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3789</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5767" xsi:type="model:Document"><annotation uri="periplus://resource:5767/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5767"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5767</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1036" xsi:type="model:Document"><annotation uri="periplus://resource:1036/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1036"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1036</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:133" xsi:type="model:Document"><annotation uri="periplus://resource:133/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:133"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/133</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3675" xsi:type="model:Document"><annotation uri="periplus://resource:3675/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3675"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3675</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5828" xsi:type="model:Document"><annotation uri="periplus://resource:5828/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5828"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5828</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3993" xsi:type="model:Document"><annotation uri="periplus://resource:3993/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3993"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3993</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4870" xsi:type="model:Document"><annotation uri="periplus://resource:4870/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4870"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4870</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2156" xsi:type="model:Document"><annotation uri="periplus://resource:2156/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2156"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2156</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3849" xsi:type="model:Document"><annotation uri="periplus://resource:3849/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3849"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3849</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3802" xsi:type="model:Document"><annotation uri="periplus://resource:3802/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3802"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3802</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1320" xsi:type="model:Document"><annotation uri="periplus://resource:1320/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1320"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1320</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1015" xsi:type="model:Document"><annotation uri="periplus://resource:1015/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1015"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1015</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4397" xsi:type="model:Document"><annotation uri="periplus://resource:4397/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4397"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4397</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4618" xsi:type="model:Document"><annotation uri="periplus://resource:4618/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4618"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4618</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:397" xsi:type="model:Document"><annotation uri="periplus://resource:397/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:397"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/397</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4285" xsi:type="model:Document"><annotation uri="periplus://resource:4285/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4285"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4285</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1668" xsi:type="model:Document"><annotation uri="periplus://resource:1668/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1668"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1668</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2129" xsi:type="model:Document"><annotation uri="periplus://resource:2129/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2129"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2129</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5351" xsi:type="model:Document"><annotation uri="periplus://resource:5351/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5351"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5351</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4904" xsi:type="model:Document"><annotation uri="periplus://resource:4904/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4904"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4904</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1797" xsi:type="model:Document"><annotation uri="periplus://resource:1797/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1797"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1797</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1176" xsi:type="model:Document"><annotation uri="periplus://resource:1176/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1176"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1176</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:571" xsi:type="model:Document"><annotation uri="periplus://resource:571/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:571"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/571</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3676" xsi:type="model:Document"><annotation uri="periplus://resource:3676/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3676"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3676</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3799" xsi:type="model:Document"><annotation uri="periplus://resource:3799/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3799"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3799</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3646" xsi:type="model:Document"><annotation uri="periplus://resource:3646/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3646"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3646</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1535" xsi:type="model:Document"><annotation uri="periplus://resource:1535/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1535"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1535</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2361" xsi:type="model:Document"><annotation uri="periplus://resource:2361/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2361"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2361</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2441" xsi:type="model:Document"><annotation uri="periplus://resource:2441/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2441"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2441</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5005" xsi:type="model:Document"><annotation uri="periplus://resource:5005/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5005"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5005</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3556" xsi:type="model:Document"><annotation uri="periplus://resource:3556/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3556"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3556</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:47" xsi:type="model:Document"><annotation uri="periplus://resource:47/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:47"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/47</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2185" xsi:type="model:Document"><annotation uri="periplus://resource:2185/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2185"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2185</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2278" xsi:type="model:Document"><annotation uri="periplus://resource:2278/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2278"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2278</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1902" xsi:type="model:Document"><annotation uri="periplus://resource:1902/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1902"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1902</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:288" xsi:type="model:Document"><annotation uri="periplus://resource:288/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:288"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/288</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1093" xsi:type="model:Document"><annotation uri="periplus://resource:1093/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1093"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1093</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1462" xsi:type="model:Document"><annotation uri="periplus://resource:1462/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1462"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1462</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2179" xsi:type="model:Document"><annotation uri="periplus://resource:2179/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2179"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2179</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1403" xsi:type="model:Document"><annotation uri="periplus://resource:1403/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1403"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1403</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2501" xsi:type="model:Document"><annotation uri="periplus://resource:2501/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2501"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2501</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4470" xsi:type="model:Document"><annotation uri="periplus://resource:4470/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4470"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4470</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5881" xsi:type="model:Document"><annotation uri="periplus://resource:5881/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5881"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5881</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3533" xsi:type="model:Document"><annotation uri="periplus://resource:3533/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3533"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3533</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1978" xsi:type="model:Document"><annotation uri="periplus://resource:1978/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1978"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1978</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5120" xsi:type="model:Document"><annotation uri="periplus://resource:5120/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5120"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5120</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:154" xsi:type="model:Document"><annotation uri="periplus://resource:154/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:154"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/154</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3862" xsi:type="model:Document"><annotation uri="periplus://resource:3862/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3862"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3862</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5246" xsi:type="model:Document"><annotation uri="periplus://resource:5246/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5246"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5246</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5506" xsi:type="model:Document"><annotation uri="periplus://resource:5506/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5506"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5506</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1524" xsi:type="model:Document"><annotation uri="periplus://resource:1524/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1524"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1524</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1614" xsi:type="model:Document"><annotation uri="periplus://resource:1614/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1614"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1614</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3576" xsi:type="model:Document"><annotation uri="periplus://resource:3576/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3576"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3576</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5922" xsi:type="model:Document"><annotation uri="periplus://resource:5922/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5922"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5922</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5786" xsi:type="model:Document"><annotation uri="periplus://resource:5786/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5786"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5786</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4453" xsi:type="model:Document"><annotation uri="periplus://resource:4453/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4453"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4453</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:347" xsi:type="model:Document"><annotation uri="periplus://resource:347/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:347"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/347</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:600" xsi:type="model:Document"><annotation uri="periplus://resource:600/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:600"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/600</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3200" xsi:type="model:Document"><annotation uri="periplus://resource:3200/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3200"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3200</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4458" xsi:type="model:Document"><annotation uri="periplus://resource:4458/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4458"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4458</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4698" xsi:type="model:Document"><annotation uri="periplus://resource:4698/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4698"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4698</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4823" xsi:type="model:Document"><annotation uri="periplus://resource:4823/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4823"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4823</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4272" xsi:type="model:Document"><annotation uri="periplus://resource:4272/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4272"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4272</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2577" xsi:type="model:Document"><annotation uri="periplus://resource:2577/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2577"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2577</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4728" xsi:type="model:Document"><annotation uri="periplus://resource:4728/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4728"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4728</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5490" xsi:type="model:Document"><annotation uri="periplus://resource:5490/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5490"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5490</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4341" xsi:type="model:Document"><annotation uri="periplus://resource:4341/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4341"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4341</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2286" xsi:type="model:Document"><annotation uri="periplus://resource:2286/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2286"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2286</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3510" xsi:type="model:Document"><annotation uri="periplus://resource:3510/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3510"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3510</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4201" xsi:type="model:Document"><annotation uri="periplus://resource:4201/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4201"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4201</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4545" xsi:type="model:Document"><annotation uri="periplus://resource:4545/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4545"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4545</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4513" xsi:type="model:Document"><annotation uri="periplus://resource:4513/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4513"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4513</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:446" xsi:type="model:Document"><annotation uri="periplus://resource:446/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:446"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/446</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2312" xsi:type="model:Document"><annotation uri="periplus://resource:2312/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2312"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2312</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5488" xsi:type="model:Document"><annotation uri="periplus://resource:5488/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5488"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5488</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2075" xsi:type="model:Document"><annotation uri="periplus://resource:2075/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2075"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2075</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:487" xsi:type="model:Document"><annotation uri="periplus://resource:487/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:487"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/487</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1799" xsi:type="model:Document"><annotation uri="periplus://resource:1799/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1799"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1799</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1976" xsi:type="model:Document"><annotation uri="periplus://resource:1976/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1976"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1976</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5753" xsi:type="model:Document"><annotation uri="periplus://resource:5753/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5753"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5753</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1592" xsi:type="model:Document"><annotation uri="periplus://resource:1592/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1592"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1592</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1600" xsi:type="model:Document"><annotation uri="periplus://resource:1600/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1600"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1600</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5548" xsi:type="model:Document"><annotation uri="periplus://resource:5548/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5548"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5548</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2290" xsi:type="model:Document"><annotation uri="periplus://resource:2290/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2290"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2290</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2033" xsi:type="model:Document"><annotation uri="periplus://resource:2033/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2033"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2033</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource></resultSet></sear:searchReturn></soapenv:Body></soapenv:Envelope>'''
+        res = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><sear:searchReturn xmlns:model="http://weblab.ow2.org/core/1.2/model#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sear="http://weblab.ow2.org/core/1.2/services/searcher" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><resultSet uri="periplus://simquery/result" xmlns:model="http://weblab.ow2.org/core/1.2/model#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><annotation uri="periplus://simquery/result/annotation"><data><rdf:RDF xmlns:wlr="http://weblab.ow2.org/core/1.2/ontology/retrieval#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://simquery/result/hit:3883"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3883"/><wlr:hasDescription>Proche de Ségolène Royal, François Rebsamen a un temps envisagé de faire le trait-d\'union avec les amis de François Hollande pour renverser Martine Aubry de la direction du PS. Rentré dans le rang, il n\'en </wlr:hasDescription><wlr:hasScore>1</wlr:hasScore><wlr:hasRank>1</wlr:hasRank><dc:identifier>42360</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3256"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3256"/><wlr:hasDescription>Du 16 au 22 mars, les quelque 70.000 adhérents franciliens (rev</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/Marine%20Turchi/3253562677_526473474b_m.jpg</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.970595</wlr:hasScore><wlr:hasRank>2</wlr:hasRank><dc:identifier>36313</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3328"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3328"/><wlr:hasDescription>Sans surprise, Valérie Pécresse l\'a largement emporté, dimanche 22 mars, sur son collègue Roger Karoutchi lors de la primaire organisée chez les militants UMP de l\'Ile-de-France. Entre le 16 et le 22 mars, 48</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/Marine%20Turchi/3253562677_526473474b_m.jpg</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.970595</wlr:hasScore><wlr:hasRank>3</wlr:hasRank><dc:identifier>37060</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3844"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3844"/><wlr:hasDescription>Du changement de statut de La Poste, il n\'a été que peu question durant la campagne des élections européennes, comme si la réforme avait pris du retard ou n\'était plus d\'actualité. Et pourtant, il n\'en est rien</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/Laurent Mauduit/Image 8_13.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.961693</wlr:hasScore><wlr:hasRank>4</wlr:hasRank><dc:identifier>42059</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:271"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:271"/><wlr:hasDescription>Jeudi 27 mars, dans la soirée, Nicolas Sarkozy a finalement promis que l\'Assemblée nationale pourrait débattre de sa décision toute fraîche d\'envoyer des soldats supplémentaires en Afghanistan (probablement un millier). Notifiée la veille outre-manc</wlr:hasDescription><wlr:hasScore>0.95304</wlr:hasScore><wlr:hasRank>5</wlr:hasRank><dc:identifier>5581</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1732"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1732"/><wlr:hasDescription>(Si la fin de cette page s\'affiche mal, rafraîchissez votre écran- touche F5) A l\'époque, l\'Unita avait contesté par les armes le résultat favorable au MPLA, replongeant le pays dans la guerre. Le combat des deux ex-compagn</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/Fran%C3%A7ois%20Bonnet/ango.jpg</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.944239</wlr:hasScore><wlr:hasRank>6</wlr:hasRank><dc:identifier>22545</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5803"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5803"/><wlr:hasDescription>Lot de consolation pour la droite : La Guyane basculerait. Selon des chiffres encore pro</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/La%20r%C3%A9daction%20Mediapart/rejet.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.939834</wlr:hasScore><wlr:hasRank>7</wlr:hasRank><dc:identifier>78083</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1744"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1744"/><wlr:hasDescription>Une bombe dort au pôle financier du tribunal de grande instance de Paris. Les juges Françoise Desset et</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/Fabrice%20Arfi/bpc140dcn.jpg</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.936393</wlr:hasScore><wlr:hasRank>8</wlr:hasRank><dc:identifier>22631</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1745"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1745"/><wlr:hasDescription>Une bombe dort au pôle financier du tribunal de Paris. Les juges Françoise Desset et</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/225_pixels/Fabrice%20Arfi/sarko_0.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.935581</wlr:hasScore><wlr:hasRank>9</wlr:hasRank><dc:identifier>22632</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:96"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:96"/><wlr:hasDescription>C\'était le 18 mars 2001. Au soir du second tour des él</wlr:hasDescription><wlr:hasScore>0.930653</wlr:hasScore><wlr:hasRank>10</wlr:hasRank><dc:identifier>423</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4210"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4210"/><wlr:hasDescription>L\'échange épistolaire entre Martine Aubry et Manuel Valls a ouvert la compétition des égos au PS. Mais la présidente de la régi</wlr:hasDescription><wlr:hasScore>0.930653</wlr:hasScore><wlr:hasRank>11</wlr:hasRank><dc:identifier>45247</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3972"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3972"/><wlr:hasDescription>L\'affaire de Karachi qui préoccupe au plus haut sommet de l\'Etat est apparue au détour d\'une enquête purement financière, qui recèle potentiellement en elle-même d\'autres scandales d\'Etat, largement évoqués par Mediapart voilà déjà neuf mois. Les juges du pôle financier p</wlr:hasDescription><wlr:hasScore>0.930406</wlr:hasScore><wlr:hasRank>12</wlr:hasRank><dc:identifier>43103</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3973"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3973"/><wlr:hasDescription>L\'affaire de Karachi qui préoccupe au plus haut sommet de l\'Etat est apparue au détour d\'une enquête purement financière, qui recèle potentiellement en elle-même d\'autres scandales d\'Etat, largement évoqués par Mediapart voilà déjà neuf mois. Les juges du pôle financier p</wlr:hasDescription><wlr:hasScore>0.930406</wlr:hasScore><wlr:hasRank>13</wlr:hasRank><dc:identifier>43104</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2475"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2475"/><wlr:hasDescription>Mardi 2 décembre, dans un sous-sol de l\'Assemblée nationale, Martine Aubry a délivré une feuille de route toute fraîche aux députés socialistes. &quot;On redémarre, on est en marc</wlr:hasDescription><wlr:hasScore>0.928015</wlr:hasScore><wlr:hasRank>14</wlr:hasRank><dc:identifier>28930</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3789"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3789"/><wlr:hasDescription>&quot;Dans une telle campagne où les petites phrases et les effets médiatiques semblent plus compter que le fond, de belles images au 20 heures ne peuvent pas faire de mal.&quot; Ce commentaire d\'un dirigean</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/St%C3%A9phane%20Alli%C3%A8s/Image%205_5.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.928015</wlr:hasScore><wlr:hasRank>15</wlr:hasRank><dc:identifier>41525</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5767"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/>  <wlr:isLinkedTo rdf:resource="periplus://resource:5767"/><wlr:hasDescription>Elle n\'est pas encore la plus chouette du monde, mais la gauche française a au moins évité d\'être la plus bête, au moment de discuter unité avant le second tour des régionales. Mardi à 18h, dix-huit listes </wlr:hasDescription><wlr:hasScore>0.927953</wlr:hasScore><wlr:hasRank>16</wlr:hasRank><dc:identifier>77730</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1036"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1036"/><wlr:hasDescription>N\'en doutons pas, la semaine sociale sera à la contestation tous azimuts et, si le sujet n\'était pas grave et sérieux, un esprit malicieux pourrait voir dans ce tintamarre une nouvelle expression des contradictions françaises. A nouveau se pose le problème</wlr:hasDescription><wlr:hasScore>0.926465</wlr:hasScore><wlr:hasRank>17</wlr:hasRank><dc:identifier>16313</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:133"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:133"/><wlr:hasDescription>Face au pouvoir central incarné par le sarkozysme et ses dépendances, s\'installe un contre-pouvoir territorial porté par le socialisme et ses associés. La France est &quot; coupée en deu</wlr:hasDescription><wlr:hasScore>0.924092</wlr:hasScore><wlr:hasRank>18</wlr:hasRank><dc:identifier>603</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3675"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3675"/><wlr:hasDescription>Il faudra songer à remercier Nicolas Sarkozy. Sa pratique du pouvoir, sa ge</wlr:hasDescription><wlr:hasScore>0.914044</wlr:hasScore><wlr:hasRank>19</wlr:hasRank><dc:identifier>40407</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5828"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5828"/><wlr:hasDescription>Jacques Julliard, 77 ans, entre en dissidence. Figure historique de la &quot;deux</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/250_pixels/St%C3%A9phane%20Alli%C3%A8s/julliard.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.907456</wlr:hasScore><wlr:hasRank>20</wlr:hasRank><dc:identifier>78268</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3993"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3993"/><wlr:hasDescription>&quot;Vive la France !&quot; Après quarante minutes, Nicolas Sarkozy en a terminé avec son &quot;grand&quot; discours du Congrès. Sous les applaudissements - p</wlr:hasDescription><wlr:hasScore>0.898695</wlr:hasScore><wlr:hasRank>21</wlr:hasRank><dc:identifier>43349</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4870"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4870"/><wlr:hasDescription>Mais pas question pour l\'ancien président de se faire piéger à l\'antenne sur les affaires de la mairie de Paris, qui vont donc être jugées: l\'opération de communication a été soigneusement préparée, avec une promotion restreinte, en terrain connu : un hebdomadaire (Le Point sort les bonnes feuilles mercredi), un quotidien (Le Figaro aura les honneurs d\'une interview jeudi), une radio (Europe 1, au micro de Jean-Pierre Elkabbach), et une télévision (il sera l\'invité de Michel Drucker dans &quot;Vivement Dimanche&quot;, sur France 2, le 29 novembre). Le livre a été envoyé au com</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/225_pixels/Marine%20Turchi/9782841113934.jpg</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.895167</wlr:hasScore><wlr:hasRank>22</wlr:hasRank><dc:identifier>67685</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2156"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2156"/><wlr:hasDescription>Les débats s\'enchaînent au PS, sans que les équilibres internes ne paraissent évoluer. L\'incertitude persiste, aucun</wlr:hasDescription><wlr:hasScore>0.886579</wlr:hasScore><wlr:hasRank>23</wlr:hasRank><dc:identifier>26098</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3849"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3849"/><wlr:hasDescription>&quot;Celui qui gagne, c\'est celui qui arrive en tête&quot;, a rappelé Xavier Bertrand, le secrétaire général de l\'UMP, lors du dernier meeting européen de la majorité, jeudi soir, porte de Versailles, à Paris (lire notre article). On le sait déjà, dimanche soi</wlr:hasDescription><wlr:hasScore>0.885014</wlr:hasScore><wlr:hasRank>24</wlr:hasRank><dc:identifier>42094</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3802"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3802"/><wlr:hasDescription>Eparpiller les européennes façon puzzle, pour mieux les neutraliser : gaullistes et socialistes l\'avaient rêvé, le giscardien Raffarin l\'a fait. Le procès était instruit depu</wlr:hasDescription><wlr:hasScore>0.881176</wlr:hasScore><wlr:hasRank>25</wlr:hasRank><dc:identifier>41650</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1320"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1320"/><wlr:hasDescription>&quot;Nous hésitions entre le non et le non; ce sera non&quot;, a ironisé le sénateur socialiste Bernard Frimat, mercredi 16 juillet, en réponse à l\'interview de Nicolas Sarkozy sur la réforme des institutions, annonçant in extremis dans Le Monde quelques initiatives en faveur des droits de l\'opposition. Ces déclarations présidentiel</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/Mathilde Mathieu/Image 2_2.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.878407</wlr:hasScore><wlr:hasRank>26</wlr:hasRank><dc:identifier>18705</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1015"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1015"/><wlr:hasDescription>Jeudi soir, sur le plateau d\'&quot;A vous de juger&quot;, sur France 2, la photo de famille de l\'UMP était parfaite. Derrière François Fillon, inv</wlr:hasDescription><wlr:hasScore>0.871634</wlr:hasScore><wlr:hasRank>27</wlr:hasRank><dc:identifier>16105</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4397"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4397"/><wlr:hasDescription>L\'alliance est de circonstances mais elle contraint la première secrétaire à réagir. Eparpillée depuis quelques mo</wlr:hasDescription><wlr:hasScore>0.869736</wlr:hasScore><wlr:hasRank>28</wlr:hasRank><dc:identifier>49377</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4618"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4618"/><wlr:hasDescription>Une fois de plus, Nicolas Sarkozy a profité d\'une tribune internationale - en l\'occurrence l\'assemblée générale annuelle des Nations unies à New York - pour tenir un langage extrêmement ferme à l\'attention de l\'Iran. Mais, alors que le président </wlr:hasDescription><wlr:hasScore>0.868531</wlr:hasScore><wlr:hasRank>29</wlr:hasRank><dc:identifier>59562</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:397"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:397"/><wlr:hasDescription>Les &quot; réformistes &quot; les plus conséquents à gauche ne sont pas toujours ceux que l\'on croit. Les premières réactions autou</wlr:hasDescription><wlr:hasScore>0.867952</wlr:hasScore><wlr:hasRank>30</wlr:hasRank><dc:identifier>10623</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4285"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4285"/><wlr:hasDescription>Deuxième volet de notre enquête sur les raisons de la crise du parti socialiste et les relations qu\'il entretient avec les milieux de la recherche (vous pouvez lire le premier volet en cliquant ici). Mediapart a voulu interroger </wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/150_pixels/Sylvain%20Bourmeau/Matonti%20F.jpg</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.867451</wlr:hasScore><wlr:hasRank>31</wlr:hasRank><dc:identifier>45812</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1668"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1668"/><wlr:hasDescription>Quand personne ne croyait trop que le RSA aboutirait, il faisait l\'objet de rares débats. Tant qu\'il s\'expérimentait da</wlr:hasDescription><wlr:hasScore>0.865544</wlr:hasScore><wlr:hasRank>32</wlr:hasRank><dc:identifier>21885</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2129"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2129"/><wlr:hasDescription>Edouard Balladur répondait, mercredi 22 octobre, sur le gravier de l\'Elysée à quelques questions sur les objectifs et le programme de la nouvelle mission que venait de lui confier Nicolas Sarkozy. Quelques minutes plus tôt, le</wlr:hasDescription><wlr:hasScore>0.865544</wlr:hasScore><wlr:hasRank>33</wlr:hasRank><dc:identifier>25866</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5351"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5351"/><wlr:hasDescription>&quot;Dans quelques années nous dirons: il y a l\'UMP et il y a le Nouveau Centre&quot;, a assuré Hervé Morin, lors des voeux aux cadres de son parti, lundi 18 janvier. Chaque année, le discours est</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/Marine Turchi/udf.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.865421</wlr:hasScore><wlr:hasRank>34</wlr:hasRank><dc:identifier>72565</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4904"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4904"/><wlr:hasDescription>François Hollande fait le bilan. Dans un livre d\'entretien ave</wlr:hasDescription><wlr:hasScore>0.86539</wlr:hasScore><wlr:hasRank>35</wlr:hasRank><dc:identifier>67950</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1797"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1797"/><wlr:hasDescription>Le fichage politique en France, c\'est fini ! C\'est du moins la promesse lancée par la ministre de l\'intérieur, devant l\'Assemblée nationale. Au gré d\'une réécriture compl</wlr:hasDescription><wlr:hasScore>0.865269</wlr:hasScore><wlr:hasRank>36</wlr:hasRank><dc:identifier>23106</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1176"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1176"/><wlr:hasDescription>Les parlementaires UMP, jusqu\'ici divisés sur la réforme des institutions, semblent avoir déniché un compromis sur le \&quot;dossier turc\&quot;, validé mardi 1er juillet par François Fillon. Les sénateurs, révulsés à l\'i</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/Mathilde Mathieu/Image 6_3.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.865142</wlr:hasScore><wlr:hasRank>37</wlr:hasRank><dc:identifier>17508</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:571"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:571"/><wlr:hasDescription>Avocat, Jean-Pierre Mignard est président de l\'association Désirs d\'avenir depuis novembre 2007. Vieil ami de François Holland</wlr:hasDescription><wlr:hasScore>0.860128</wlr:hasScore><wlr:hasRank>38</wlr:hasRank><dc:identifier>12169</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3676"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3676"/><wlr:hasDescription>Comme un mauvais moment à passer. Depuis son entrée en campagne</wlr:hasDescription><wlr:hasScore>0.858979</wlr:hasScore><wlr:hasRank>39</wlr:hasRank><dc:identifier>40411</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3799"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3799"/><wlr:hasDescription>Une porcelaine (d\'une entreprise viennoise en difficulté) contre une statue africaine (de &quot;femme debout&quot;). Par cet échange de cadeaux, M</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/St%C3%A9phane%20Alli%C3%A8s/ResizedImage383255-IMG0707.JPG</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.858373</wlr:hasScore><wlr:hasRank>40</wlr:hasRank><dc:identifier>41634</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3646"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3646"/><wlr:hasDescription>Il a recueilli plus de 18% des voix au premier tour de l\'élection présidentielle de 2007. Les sondages le créditent de </wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/Marine%20Turchi/800px-Francois_bayrou_forum_democrate_seignosse_20070916_f_1.jpg</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.858245</wlr:hasScore><wlr:hasRank>41</wlr:hasRank><dc:identifier>40117</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1535"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1535"/><wlr:hasDescription>Nicolas Sarkozy et le gouvernement ont-t-ils bien perçu ce qui s\'est joué dans l\'environnement international? A lire les discours, à observer les décisions, la question se posait depuis un an ; la publication par l\'Insee du recul de 0,3% du PIB au deuxième trimestre et de la destruction de 12.000 emplois, avec les réaction</wlr:hasDescription><wlr:hasScore>0.856629</wlr:hasScore><wlr:hasRank>42</wlr:hasRank><dc:identifier>20563</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2361"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2361"/><wlr:hasDescription>A la veille de l\'élection du nouveau premier secrétaire socialiste, on n\'a jamais autant parlé\8230 du MoDem. Mardi, interrogée sur France </wlr:hasDescription><wlr:hasScore>0.856416</wlr:hasScore><wlr:hasRank>43</wlr:hasRank><dc:identifier>28041</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2441"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2441"/><wlr:hasDescription>A Paris, l\'UMP a des airs de parti socialiste, en cette période de renouvellement de la fédération. La semaine passée, les adhére</wlr:hasDescription><wlr:hasScore>0.854737</wlr:hasScore><wlr:hasRank>44</wlr:hasRank><dc:identifier>28692</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5005"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5005"/><wlr:hasDescription>La droite a longtemps détesté les panthéonisations. En 1908, celle de Zola fit de</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/Sophie%20Dufau/pantheon-de-paris.jpg</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.854737</wlr:hasScore><wlr:hasRank>45</wlr:hasRank><dc:identifier>69111</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3556"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3556"/><wlr:hasDescription>Martine Aubry en avait sans doute rêvé, Poul Nyrup Rasmussen l\'a fait. Le parti socialiste a enfin r</wlr:hasDescription><wlr:hasScore>0.854005</wlr:hasScore><wlr:hasRank>46</wlr:hasRank><dc:identifier>39274</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:47"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:47"/><wlr:hasDescription>C\'est assurément une crise atypique que traverse, en France, la presse quotidienne. Irruption de la gratuité et d</wlr:hasDescription><wlr:hasScore>0.853189</wlr:hasScore><wlr:hasRank>47</wlr:hasRank><dc:identifier>200</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2185"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2185"/><wlr:hasDescription>Il y a peu, les &quot;carnets noirs&quot; d\'Yves Bertrand et le fichier Edvige ravivaient le spectre de la police secrète. Dans le même temps, un servic</wlr:hasDescription><wlr:hasScore>0.852803</wlr:hasScore><wlr:hasRank>48</wlr:hasRank><dc:identifier>26509</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2278"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2278"/><wlr:hasDescription>Les grands esprits socialistes se sont reposés, au lendemain d\'une longue nuit électorale. Si Ségolène Royal arrive en t</wlr:hasDescription><wlr:hasScore>0.85201</wlr:hasScore><wlr:hasRank>49</wlr:hasRank><dc:identifier>27180</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1902"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1902"/><wlr:hasDescription>En pleine panique financière, les responsables politiques retrouvent la parole. Après la réunion de crise ce </wlr:hasDescription><wlr:hasScore>0.851838</wlr:hasScore><wlr:hasRank>50</wlr:hasRank><dc:identifier>23938</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:288"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:288"/><wlr:hasDescription>L\'UMP et le PS sont des jumeaux dizygotes. Ils ne sont pas issus du même</wlr:hasDescription><wlr:hasScore>0.848327</wlr:hasScore><wlr:hasRank>51</wlr:hasRank><dc:identifier>9624</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1093"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1093"/><wlr:hasDescription>Il dit vouloir rendre des comptes, démontrer combien les députés socialistes se sont montrés utiles depuis un an au Palais-Bourbon. Jean-Marc Ayrault organisera </wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/Mathilde Mathieu/229180457_9db20a3f47_m.jpg</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.847377</wlr:hasScore><wlr:hasRank>52</wlr:hasRank><dc:identifier>16697</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1462"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1462"/><wlr:hasDescription>Les ministres sont partis en vacances mais il en est resté un, le porte-parole du gouvernement, Luc Chatel, pour faire le service après-vente des lois en cascade votées par le Parlement depuis un an. &quot;De grandes batailles idéolog</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/Mathieu%20Magnaudeix/Image%203_7.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.847377</wlr:hasScore><wlr:hasRank>53</wlr:hasRank><dc:identifier>19657</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2179"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2179"/><wlr:hasDescription>Sitôt que l\'on a su que le taux de rémunération du Livret A allait baisser le 1er février prochain, de 4% actuellement à sans doute 3,5% et peut-être même 3%, cela a été un véritable tir de barrage. Comprenant qu\'en pleine tourm</wlr:hasDescription><wlr:hasScore>0.847377</wlr:hasScore><wlr:hasRank>54</wlr:hasRank><dc:identifier>26409</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1403"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1403"/><wlr:hasDescription>La \&quot;nouvelle\&quot; Constitution, parue jeudi 24 juillet au Journal officiel, fait littéralement jubiler Jean-François Copé. (Téléchargez ici le calendri</wlr:hasDescription><wlr:hasScore>0.845198</wlr:hasScore><wlr:hasRank>55</wlr:hasRank><dc:identifier>19199</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2501"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2501"/><wlr:hasDescription>Jeudi 4 décembre, l\'Assemblée nationale est entrée dans le vif du sujet, en adoptant deux mesures clés du projet de loi sur l\'audiovisuel public, qui prévoient la désignation et la révocation par le chef de l\'Etat des patrons de France Télévisions, de Radio France et d\'AEF (la holding regroupant France 24, RFI et TV5 Monde). Sur l\'article 8 (fixant le pr</wlr:hasDescription><wlr:hasScore>0.845198</wlr:hasScore><wlr:hasRank>56</wlr:hasRank><dc:identifier>29095</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4470"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4470"/><wlr:hasDescription>De notre envoyée spéciale à La Grande-Motte  Pour éviter qu\'écologistes et socialistes fassent une OPA sur le Modem, sorti très affaibli des élections européennes, Bayrou leur a lancé une &quot;offre publique de dialogue&quot;, dimanche 6 septembre, en clôture de l\'université d\'été du mouvement, organisée à La Grande-Motte. Par son discours, il a signé </wlr:hasDescription><wlr:hasScore>0.844449</wlr:hasScore><wlr:hasRank>57</wlr:hasRank><dc:identifier>53657</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5881"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5881"/><wlr:hasDescription>&quot;Je ne rentre pas au gouvernement dans les meilleures conditions, ni de popularité, ni de finances publiques&quot;, a reconnu le nouveau ministre du budget, sur Europe1, jeudi matin. Il aurait pu ajouter: &quot;ni de </wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/Marine%20Turchi/baroin_sarkozy.jpg</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.842533</wlr:hasScore><wlr:hasRank>58</wlr:hasRank><dc:identifier>78812</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3533"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3533"/><wlr:hasDescription>A l\'Elysée, on affirme que Dominique de Villepin ne fait pas peur. On prétend même qu\'il n\'a qu\'</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/Marine%20Turchi/2083.jpg</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.84111</wlr:hasScore><wlr:hasRank>59</wlr:hasRank><dc:identifier>39104</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1978"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1978"/><wlr:hasDescription>Aucune faillite retentissante, pas d\'annonce de menaces supplémentaires sur l\'économie malgré les prix de l\'immobilier qui commencent à chuter et l\'Islande qui se liquéfie. A Paris notamment, les marché</wlr:hasDescription><wlr:hasScore>0.837822</wlr:hasScore><wlr:hasRank>60</wlr:hasRank><dc:identifier>24554</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5120"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5120"/><wlr:hasDescription>Des élus qui claquent la porte de l\'UMP, des conseillers qui quittent sur la pointe des pieds l\'Elysée... Les annonces de ce lundi 7 </wlr:hasDescription><wlr:hasScore>0.837822</wlr:hasScore><wlr:hasRank>61</wlr:hasRank><dc:identifier>70129</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:154"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:154"/><wlr:hasDescription>Face au pouvoir central incarné par le sarkozysme et ses dépendances, s\'installe un contre-pouvoir territorial porté par le socialisme et ses associés. La France est &quot; coupée en deu</wlr:hasDescription><wlr:hasScore>0.837729</wlr:hasScore><wlr:hasRank>62</wlr:hasRank><dc:identifier>748</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3862"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3862"/><wlr:hasDescription>De midi à minuit, dans la journée du dimanche 7 juin, la rédaction de Mediapart a tenu la chronique, minute par minute, de la journée électorale. Vous pouvez lire ci-dessous, </wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/Image%206_2.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.836646</wlr:hasScore><wlr:hasRank>63</wlr:hasRank><dc:identifier>42258</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5246"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5246"/><wlr:hasDescription>&quot;Les gnomes de Francfort&quot;, par exemple, qualificatif de Jean-Pierre Chevènement à l\'encontre des dirigeants de la Banque centrale européenne, gardienne du fameux traité de &quot;MasTrique&quot;. Il y a le savoureux &quot;Le parti</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/225_pixels/Fran%C3%A7ois%20Bonnet/couv.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.829268</wlr:hasScore><wlr:hasRank>64</wlr:hasRank><dc:identifier>71364</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5506"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5506"/><wlr:hasDescription>Changement express de stratégie, négociations interminables pour boucler des listes, choix contestés en Ile-de-France, affaire Clearstream qui déchire la majorité. A moins de deux mois du scrut</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/Marine%20Turchi/conseil_national_UMP.jpg</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.829268</wlr:hasScore><wlr:hasRank>65</wlr:hasRank><dc:identifier>74059</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1524"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1524"/><wlr:hasDescription>Les autruches sortent enfin la tête de terre. Contrairement à l\'antienne op</wlr:hasDescription><wlr:hasScore>0.827191</wlr:hasScore><wlr:hasRank>66</wlr:hasRank><dc:identifier>20496</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1614"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1614"/><wlr:hasDescription>Elle a la voix toute chevrotante, Monique. Mégaphone en main, cette inst</wlr:hasDescription><wlr:hasScore>0.825859</wlr:hasScore><wlr:hasRank>67</wlr:hasRank><dc:identifier>21353</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3576"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3576"/><wlr:hasDescription>&quot;La politique est de retour ! Ces élections seront politiques&quot;, a prévenu Xavier Bertrand en marge du premier meeting européen de l\'UMP, mardi soir, à Rueil-Malmaison (Hauts-de-Seine). Le but était clair : ramener </wlr:hasDescription><wlr:hasScore>0.825809</wlr:hasScore><wlr:hasRank>68</wlr:hasRank><dc:identifier>39518</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5922"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5922"/><wlr:hasDescription>Même s\'il est un ami de Nicolas Sarkozy et un client d\'Alain Minc, Stéphane Courbit est depuis quelque temps bien malheureux en affaires. Après avoir acquis une partic</wlr:hasDescription><wlr:hasScore>0.825159</wlr:hasScore><wlr:hasRank>69</wlr:hasRank><dc:identifier>79317</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5786"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5786"/><wlr:hasDescription>La rumeur circule depuis quelques jours - le site internet Wansquare s\'en est fait le premier l\'écho, et après lui Le Point - et nous en avons obtenu une confirmation de très bonne source: Yazid Sabeg, l\'actuel commissaire à la diversité et à l\'égalité des chances, devrait succéder à Anne Lauvergeon à la tête d\'Areva, le champion du nucléaire français. Selon nos informations, cette</wlr:hasDescription><wlr:hasScore>0.824374</wlr:hasScore><wlr:hasRank>70</wlr:hasRank><dc:identifier>77916</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4453"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4453"/><wlr:hasDescription>Après avoir passé son été à tempêter, menaçant de démissionner de la direction ou d\'en appeler aux militants pour imposer les primaires ouvertes qu\'il promeut dans un livre (Comment sauver la gauche, au Seuil, avec Olivier Ferrand), Arnaud Montebourg est finalement l\'un des grands gagnants des universités d\'été de La Rochelle. Même si son forcing a irrité </wlr:hasDescription><wlr:hasScore>0.824323</wlr:hasScore><wlr:hasRank>71</wlr:hasRank><dc:identifier>52502</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:347"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:347"/><wlr:hasDescription>L\'accueil de guérilleros des Forces armées révolutionnaires en Colombie (FARC) sur le territoire français : voilà la probable clef diplomatique de la tentative de libération d\'Ingrid Betancourt qui est en train de se jouer en Amérique du Sud. L\'Elysée a annoncé, mercredi </wlr:hasDescription><wlr:hasScore>0.823627</wlr:hasScore><wlr:hasRank>72</wlr:hasRank><dc:identifier>10057</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:600"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:600"/><wlr:hasDescription>En matière culturelle, le candidat à l\'élection présidentielle Nicolas Sarkozy s\'était limité au strict minimum. Deux promesses saillantes, en</wlr:hasDescription><wlr:hasScore>0.823627</wlr:hasScore><wlr:hasRank>73</wlr:hasRank><dc:identifier>12369</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3200"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3200"/><wlr:hasDescription>&quot;Je suis quelqu\'un de souple dans mes charentaises&quot;, plaisante Valérie Pécresse sur France Culture en février 2009, en contrepoint du fameux &quot;droit dans mes bottes&quot; d\'Alain Juppé en pleine crise de la réforme des retraites en 1995. Cette souplesse en chaussons </wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/Jade%20Lindgaard/lussault.jpg</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.823627</wlr:hasScore><wlr:hasRank>74</wlr:hasRank><dc:identifier>35718</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4458"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4458"/><wlr:hasDescription>Jean-Pierre Mignard quitte la présidence de Désirs d\'avenir désormais assumée par Ségolène Royal elle-même, qui entend transformer l\'association en &quot;ONG européenne&quot; proche d\'une fondation type think tank, comme le précise un communiqué publié jeudi 3 septembre. Dans un entretien à Mediapart</wlr:hasDescription><wlr:hasScore>0.823627</wlr:hasScore><wlr:hasRank>75</wlr:hasRank><dc:identifier>53147</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4698"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4698"/><wlr:hasDescription>Alors que la session parlementaire est à peine réunie, que les sujets foisonnent allant des suites de la crise économique au colossal déficit budgétaire en passant par la réforme des collectivités locales, quel est l\'un des tout premiers sujets que le gouvernement décide d\'inscrire à l\'ordre du jour de l\'Assemblée nationale? L\'ouverture du marché des jeux en ligne et la fin du monopole de l\'Etat sur ce secteur.&quot;Nous avons pour ambition que </wlr:hasDescription><wlr:hasScore>0.823627</wlr:hasScore><wlr:hasRank>76</wlr:hasRank><dc:identifier>63657</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4823"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4823"/><wlr:hasDescription>&quot;Je ne dirai rien sur les élections au PS, ce serait désagréable&quot;, ironisait Jean Sarkozy, vendredi, au conseil général des Hauts-de-Seine, lors de son discours de candidat au poste d\'administrateur de l\'Epad. A l\'UMP, on se plaît à renvoy</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/Michel Dalloni/tableau_primaires_ump.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.823127</wlr:hasScore><wlr:hasRank>77</wlr:hasRank><dc:identifier>67076</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4272"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4272"/><wlr:hasDescription>Oublions Jack Lang, Bernard-Henri Lévy et leurs imprécations sur la mort assurée du Parti socialiste. Laissons à Max Gallo, ancien </wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/150_pixels/Sylvain%20Bourmeau/Assayag%20J.jpg</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.822925</wlr:hasScore><wlr:hasRank>78</wlr:hasRank><dc:identifier>45740</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2577"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2577"/><wlr:hasDescription>Attention, un train peut en cacher un autre. L\'arrivée de Patrick Devedjia</wlr:hasDescription><wlr:hasScore>0.819154</wlr:hasScore><wlr:hasRank>79</wlr:hasRank><dc:identifier>29621</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4728"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4728"/><wlr:hasDescription>L\'ex-judoka David Douillet, engagé sous les couleurs du parti présidentiel, a écrasé le premier tour de l\'élection législative partielle organisée dimanche 11 octobre, dans la 12e circonscription des Yvelines, en captant 44,2% des voix, soit le double du candidat socialiste et maire de Poissy, Frédérik Bernard, qui a recueilli 21,9% des bulletins. Le candidat d\'Europe-Ecologie</wlr:hasDescription><wlr:hasScore>0.818169</wlr:hasScore><wlr:hasRank>80</wlr:hasRank><dc:identifier>65097</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5490"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5490"/><wlr:hasDescription>Jeudi, l\'UMP était plus bavarde sur la dernière sortie du socialiste Georges Frêche que sur la relaxe de Dominique de Villepin dans le procès Clearstream. Connu pour dégainer des commu</wlr:hasDescription><wlr:hasScore>0.818169</wlr:hasScore><wlr:hasRank>81</wlr:hasRank><dc:identifier>73885</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4341"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4341"/><wlr:hasDescription>Plus de trois mois après le revers des élections européennes, où il a recueilli à peine 16,48%, devançant d\'une rien les listes Europe-Ecologie, et à quelques jours de son université d\'été de La Rochelle (28-30 août), il n\'est pas certain que le parti socialiste a retrouvé confiance, sérénité et cohésion. Entre les silences de Ségolèn</wlr:hasDescription><wlr:hasScore>0.817228</wlr:hasScore><wlr:hasRank>82</wlr:hasRank><dc:identifier>46602</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2286"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2286"/><wlr:hasDescription>Lundi 10 novembre au matin, une délégation du Cran, conseil représentatif des associations noires, est reçue à l\'Elysée. Pas par le président, ni par </wlr:hasDescription><wlr:hasScore>0.817157</wlr:hasScore><wlr:hasRank>83</wlr:hasRank><dc:identifier>27334</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:3510"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:3510"/><wlr:hasDescription>&quot;Une caravane mobile pour montrer que l\'Europe peut mobiliser.&quot; Lundi 20 avril, le secrétair</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/225_pixels/Marine%20Turchi/Image%202_6.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.817157</wlr:hasScore><wlr:hasRank>84</wlr:hasRank><dc:identifier>38947</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4201"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4201"/><wlr:hasDescription>Martin Hirsch a pris un coup de jeune. Tel un étudiant cherchant un </wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/225_pixels/Micha%C3%ABl%20Hajdenberg/Image%2031.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.817157</wlr:hasScore><wlr:hasRank>85</wlr:hasRank><dc:identifier>45166</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4545"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4545"/><wlr:hasDescription>Il aura fallu deux ans pour que Nicolas Sarkozy fasse son mea-culpa sur les empreintes génétiques réservées aux étrangers souhaitant rejoindre leur famille en France. Lors d\'une rencontre à l\'Élys</wlr:hasDescription><wlr:hasScore>0.815821</wlr:hasScore><wlr:hasRank>86</wlr:hasRank><dc:identifier>56762</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:4513"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:4513"/><wlr:hasDescription>Il a été l\'une des stars de \8220l\'ouverture socialiste\8221 durant l\'été, participant aux meetings de François Hollande (à Lorient en juin) puis de Vincent Peillon (à Marseille en août). Désormais ressorti de l\'anony</wlr:hasDescription><wlr:hasScore>0.814434</wlr:hasScore><wlr:hasRank>87</wlr:hasRank><dc:identifier>55167</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:446"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:446"/><wlr:hasDescription>L\'inusable Michel Charasse exclu du PS? La fédération socialiste du Puy-de-Dôme en a voté la demande jeudi soir, à une large majorité du conseil fédéral (42 voix contre 14). Mais l\'ancien ministre du Bud</wlr:hasDescription><wlr:hasScore>0.814077</wlr:hasScore><wlr:hasRank>88</wlr:hasRank><dc:identifier>11001</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2312"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2312"/><wlr:hasDescription>Ces derniers jours, le bruit s\'est répandu comme une traînée de poudre dans la maison socialiste: &quot;La presse people débarque au congrès!&quot; Les journalistes de Voici seraient déjà en route pour Reims, bardés de magnétos... Interrogé, le service de pr</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/Mathilde Mathieu/tiny_3119_couv.jpg</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.814077</wlr:hasScore><wlr:hasRank>89</wlr:hasRank><dc:identifier>27639</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5488"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5488"/><wlr:hasDescription>Si le parti socialiste n\'est toujours pas un long fleuve tranquille, il parvient tout de même à ne pas se noyer dans les eaux troubles de la division. En adoptant mardi soir une po</wlr:hasDescription><wlr:hasScore>0.814077</wlr:hasScore><wlr:hasRank>90</wlr:hasRank><dc:identifier>73823</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2075"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2075"/><wlr:hasDescription>La Caisse d\'épargne, qui a révélé une perte de 600 millions d\'euros dans des opérations de marché, doit réunir son conseil de surveillance, dimanche 19 octobre, dans l\'après-midi, afin de se prononcer sur le sort de la direction et notamment celui du président du directoire de la Caisse nationale des Caisses d\'épargne (CNCE), Charles Milhaud.Dans un entretien, publié par</wlr:hasDescription><wlr:hasScore>0.813793</wlr:hasScore><wlr:hasRank>91</wlr:hasRank><dc:identifier>25510</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:487"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:487"/><wlr:hasDescription>Du &quot;les caisses sont vides&quot; de Nicolas Sarkozy au &quot;pays en faillite&quot; de François Fillon, le triste état des finances publiques françaises alimente la chronique par intermittence. Mais derrière le propos polit</wlr:hasDescription><wlr:hasScore>0.811021</wlr:hasScore><wlr:hasRank>92</wlr:hasRank><dc:identifier>11333</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1799"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1799"/><wlr:hasDescription>Adieu levées de fourches, déversements de lisier, saccages de bâtiments administratifs et autres violences à agents de la force publique : la grande agriculture française semble être entrée dans l\'ère du lobbying à visage humain. Et elle a choisi pour annonce</wlr:hasDescription><wlr:hasScore>0.811021</wlr:hasScore><wlr:hasRank>93</wlr:hasRank><dc:identifier>23127</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1976"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1976"/><wlr:hasDescription>Mais où est donc passée la gauche? Cette époque de tempête et de crise devrait être faste pour elle. Alors que le capitalisme trav</wlr:hasDescription><wlr:hasScore>0.811021</wlr:hasScore><wlr:hasRank>94</wlr:hasRank><dc:identifier>24528</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5753"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5753"/><wlr:hasDescription>Chez Europe Ecologie, beaucoup ne le disent qu\'à demi-mot, mais ils sont déçus: tous auraient aimé dépasser les 16% des européennes de 2009. Tout juste débarqué de son ma</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/La%20r%C3%A9daction%20Mediapart/besson-photo.jpg</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.810912</wlr:hasScore><wlr:hasRank>95</wlr:hasRank><dc:identifier>77546</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1592"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1592"/><wlr:hasDescription>Certains auront peut-être du mal à le croire, mais, à quelques heures de l\'ouverture de la Convention démocrate de Denver, chargée d\'investir officiellement Barack Obama, ce dernier n\'est pas encore assuré d\'accéder à la Maison Blanche. Les 200.000 Allemands qui lui</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/Thomas%20Cantaloube/photos/Image%203_4.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.810167</wlr:hasScore><wlr:hasRank>96</wlr:hasRank><dc:identifier>21133</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:1600"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:1600"/><wlr:hasDescription>On prête à Talleyrand ce mot: \&quot;Quand je m\'examine, je m\'inquiète. Quand je me compare, je me ra</wlr:hasDescription><wlr:hasScore>0.804479</wlr:hasScore><wlr:hasRank>97</wlr:hasRank><dc:identifier>21227</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:5548"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:5548"/><wlr:hasDescription>De notre envoyée spéciale en Paca, Ce jour-là, en campagne sur le site nucléaire du Tricastin, Europe Ecologie vient mesurer la radioactivité et déposer une gerbe de fleurs: &quot;Ci-gît la santé publique!&quot;... Des candidats aux régionale</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/Mathilde%20Mathieu/vichnievsky5.jpg</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.802372</wlr:hasScore><wlr:hasRank>98</wlr:hasRank><dc:identifier>74485</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2290"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2290"/><wlr:hasDescription>Difficile construction d\'alliances majoritaires, au parti socialiste. Après le vote des motions et </wlr:hasDescription><wlr:hasScore>0.801553</wlr:hasScore><wlr:hasRank>99</wlr:hasRank><dc:identifier>27360</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/hit:2033"><wlr:inResultSetHit rdf:resource="periplus://simquery/result"/><wlr:isLinkedTo rdf:resource="periplus://resource:2033"/><wlr:hasDescription>Soudain, un week-end, le travail du dimanche est devenu priorité nationale. Dimanche dernier, le ministre</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/Mathieu%20Magnaudeix/Image%208_2.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><wlr:hasScore>0.801468</wlr:hasScore><wlr:hasRank>100</wlr:hasRank><dc:identifier>25201</dc:identifier><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/ontology/retrieval#Hit"/></rdf:Description><rdf:Description rdf:about="periplus://simquery/result/cluster:0"><wlr:hasNumberOfResults>19</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:0"/><wlr:hasScore>1</wlr:hasScore><wlr:hasDescription>Proche de Ségolène Royal, François Rebsamen a un temps envisagé de faire le trait-d\'union avec les amis de François Hollande pour renverser Martine Aubry de la direction du PS. Rentré dans le rang</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/St%C3%A9phane%20Alli%C3%A8s/ResizedImage383255-IMG0707.JPG</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/Mathilde Mathieu/229180457_9db20a3f47_m.jpg</wlr:hasNativeContent></mediaUnit><dc:title>PS</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:0"><rdf:li rdf:resource="periplus://simquery/result/hit:3883"/><rdf:li rdf:resource="periplus://simquery/result/hit:2475"/><rdf:li rdf:resource="periplus://simquery/result/hit:4210"/><rdf:li rdf:resource="periplus://simquery/result/hit:2156"/><rdf:li rdf:resource="periplus://simquery/result/hit:3676"/><rdf:li rdf:resource="periplus://simquery/result/hit:3799"/><rdf:li rdf:resource="periplus://simquery/result/hit:2278"/><rdf:li rdf:resource="periplus://simquery/result/hit:1093"/><rdf:li rdf:resource="periplus://simquery/result/hit:1600"/><rdf:li rdf:resource="periplus://simquery/result/hit:2290"/><rdf:li rdf:resource="periplus://simquery/result/hit:4285"/><rdf:li rdf:resource="periplus://simquery/result/hit:571"/><rdf:li rdf:resource="periplus://simquery/result/hit:4458"/><rdf:li rdf:resource="periplus://simquery/result/hit:4272"/><rdf:li rdf:resource="periplus://simquery/result/hit:446"/><rdf:li rdf:resource="periplus://simquery/result/hit:2312"/><rdf:li rdf:resource="periplus://simquery/result/hit:5488"/><rdf:li rdf:resource="periplus://simquery/result/hit:4513"/><rdf:li rdf:resource="periplus://simquery/result/hit:4728"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:1"><wlr:hasNumberOfResults>9</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:1"/><wlr:hasScore>0.970595</wlr:hasScore><wlr:hasDescription>Lot de consolation pour la droite : La Guyane basculerait. Selon des chiffres encore</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/La%20r%C3%A9daction%20Mediapart/rejet.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/La%20r%C3%A9daction%20Mediapart/paille.png</wlr:hasNativeContent></mediaUnit><dc:title>élections régionales</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:1"><rdf:li rdf:resource="periplus://simquery/result/hit:5803"/><rdf:li rdf:resource="periplus://simquery/result/hit:5767"/><rdf:li rdf:resource="periplus://simquery/result/hit:5548"/><rdf:li rdf:resource="periplus://simquery/result/hit:133"/><rdf:li rdf:resource="periplus://simquery/result/hit:3256"/><rdf:li rdf:resource="periplus://simquery/result/hit:3328"/><rdf:li rdf:resource="periplus://simquery/result/hit:4397"/><rdf:li rdf:resource="periplus://simquery/result/hit:96"/><rdf:li rdf:resource="periplus://simquery/result/hit:5506"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:2"><wlr:hasNumberOfResults>25</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:2"/><wlr:hasScore>0.961693</wlr:hasScore><wlr:hasDescription>Du changement de statut de La Poste, il n\'a été que peu question durant la campagne des élections européennes, comme si la réforme avait pris du retard ou n\'était plus d\'actualité. Et pourtant, il n\'en est rien</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/Laurent Mauduit/Image 8_13.png</wlr:hasNativeContent></mediaUnit><dc:title>gouvernement UMP</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:2"><rdf:li rdf:resource="periplus://simquery/result/hit:3844"/><rdf:li rdf:resource="periplus://simquery/result/hit:2129"/><rdf:li rdf:resource="periplus://simquery/result/hit:2441"/><rdf:li rdf:resource="periplus://simquery/result/hit:5120"/><rdf:li rdf:resource="periplus://simquery/result/hit:2501"/><rdf:li rdf:resource="periplus://simquery/result/hit:1462"/><rdf:li rdf:resource="periplus://simquery/result/hit:1797"/><rdf:li rdf:resource="periplus://simquery/result/hit:2185"/><rdf:li rdf:resource="periplus://simquery/result/hit:397"/><rdf:li rdf:resource="periplus://simquery/result/hit:1668"/><rdf:li rdf:resource="periplus://simquery/result/hit:1036"/><rdf:li rdf:resource="periplus://simquery/result/hit:1614"/><rdf:li rdf:resource="periplus://simquery/result/hit:1535"/><rdf:li rdf:resource="periplus://simquery/result/hit:1320"/><rdf:li rdf:resource="periplus://simquery/result/hit:1176"/><rdf:li rdf:resource="periplus://simquery/result/hit:1403"/><rdf:li rdf:resource="periplus://simquery/result/hit:2179"/><rdf:li rdf:resource="periplus://simquery/result/hit:1976"/><rdf:li rdf:resource="periplus://simquery/result/hit:154"/><rdf:li rdf:resource="periplus://simquery/result/hit:47"/><rdf:li rdf:resource="periplus://simquery/result/hit:347"/><rdf:li rdf:resource="periplus://simquery/result/hit:2033"/><rdf:li rdf:resource="periplus://simquery/result/hit:4698"/><rdf:li rdf:resource="periplus://simquery/result/hit:4201"/><rdf:li rdf:resource="periplus://simquery/result/hit:4545"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:3"><wlr:hasNumberOfResults>4</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:3"/><wlr:hasScore>0.936393</wlr:hasScore><wlr:hasDescription>Une bombe dort au pôle financier du tribunal de grande instance de Paris. Les juges Françoise Desset et</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/Fabrice%20Arfi/article_photo_1218010950574-1-0.jpg</wlr:hasNativeContent></mediaUnit><dc:title>affaire de Karachi</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:3"><rdf:li rdf:resource="periplus://simquery/result/hit:1744"/><rdf:li rdf:resource="periplus://simquery/result/hit:1745"/><rdf:li rdf:resource="periplus://simquery/result/hit:3972"/><rdf:li rdf:resource="periplus://simquery/result/hit:3973"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:4"><wlr:hasNumberOfResults>9</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:4"/><wlr:hasScore>0.928015</wlr:hasScore><wlr:hasDescription>&quot;Dans une telle campagne où les petites phrases et les effets médiatiques semblent plus compter que le fond, de belles images au 20 heures ne peuvent pas faire de mal.&quot; Ce commentaire d\'un dirigean</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/St%C3%A9phane%20Alli%C3%A8s/Image%205_5.png</wlr:hasNativeContent></mediaUnit><dc:title>campagne des européennes</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:4"><rdf:li rdf:resource="periplus://simquery/result/hit:3789"/><rdf:li rdf:resource="periplus://simquery/result/hit:3556"/><rdf:li rdf:resource="periplus://simquery/result/hit:3849"/><rdf:li rdf:resource="periplus://simquery/result/hit:3802"/><rdf:li rdf:resource="periplus://simquery/result/hit:3576"/><rdf:li rdf:resource="periplus://simquery/result/hit:5753"/><rdf:li rdf:resource="periplus://simquery/result/hit:3862"/><rdf:li rdf:resource="periplus://simquery/result/hit:4341"/><rdf:li rdf:resource="periplus://simquery/result/hit:3510"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:5"><wlr:hasNumberOfResults>10</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:5"/><wlr:hasScore>0.914044</wlr:hasScore><wlr:hasDescription>L\'UMP et le PS sont des jumeaux dizygotes. Ils ne sont pas issus du même</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/475_pixels/Marine%20Turchi/2083.jpg</wlr:hasNativeContent></mediaUnit><dc:title>UMP</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:5"><rdf:li rdf:resource="periplus://simquery/result/hit:288"/><rdf:li rdf:resource="periplus://simquery/result/hit:3675"/><rdf:li rdf:resource="periplus://simquery/result/hit:3993"/><rdf:li rdf:resource="periplus://simquery/result/hit:1015"/><rdf:li rdf:resource="periplus://simquery/result/hit:3533"/><rdf:li rdf:resource="periplus://simquery/result/hit:600"/><rdf:li rdf:resource="periplus://simquery/result/hit:3200"/><rdf:li rdf:resource="periplus://simquery/result/hit:2577"/><rdf:li rdf:resource="periplus://simquery/result/hit:4823"/><rdf:li rdf:resource="periplus://simquery/result/hit:5490"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:6"><wlr:hasNumberOfResults>6</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:6"/><wlr:hasScore>0.907456</wlr:hasScore><wlr:hasDescription>Jacques Julliard, 77 ans, entre en dissidence. Figure historique de la &quot;deux</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/250_pixels/St%C3%A9phane%20Alli%C3%A8s/julliard.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/300_pixels/Marine%20Turchi/chirac_balladur.png</wlr:hasNativeContent></mediaUnit><dc:title>livre</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:6"><rdf:li rdf:resource="periplus://simquery/result/hit:5828"/><rdf:li rdf:resource="periplus://simquery/result/hit:4870"/><rdf:li rdf:resource="periplus://simquery/result/hit:5246"/><rdf:li rdf:resource="periplus://simquery/result/hit:4453"/><rdf:li rdf:resource="periplus://simquery/result/hit:4904"/><rdf:li rdf:resource="periplus://simquery/result/hit:5005"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:7"><wlr:hasNumberOfResults>4</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:7"/><wlr:hasScore>0.865421</wlr:hasScore><wlr:hasDescription>&quot;Dans quelques années nous dirons: il y a l\'UMP et il y a le Nouveau Centre&quot;, a assuré Hervé Morin, lors des voeux aux cadres de son parti, lundi 18 janvier. Chaque année, le discours est</wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/Marine%20Turchi/udf.png</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>http://static.mediapart.fr/files/imagecache/150_pixels/Marine%20Turchi/Dominique_villepin_1.jpg</wlr:hasNativeContent></mediaUnit><dc:title>Nouveau Centre Modem</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:7"><rdf:li rdf:resource="periplus://simquery/result/hit:5351"/><rdf:li rdf:resource="periplus://simquery/result/hit:3646"/><rdf:li rdf:resource="periplus://simquery/result/hit:2361"/><rdf:li rdf:resource="periplus://simquery/result/hit:4470"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:8"><wlr:hasNumberOfResults>6</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:8"/><wlr:hasScore>0.851838</wlr:hasScore><wlr:hasDescription>En pleine panique financière, les responsables politiques retrouvent la parole. Après la réunion de crise ce </wlr:hasDescription><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3883</wlr:hasNativeContent></mediaUnit><mediaUnit xsi:type="model:Image"><wlr:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3256</wlr:hasNativeContent></mediaUnit><dc:title>panique financière</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:8"><rdf:li rdf:resource="periplus://simquery/result/hit:1902"/><rdf:li rdf:resource="periplus://simquery/result/hit:5881"/><rdf:li rdf:resource="periplus://simquery/result/hit:1978"/><rdf:li rdf:resource="periplus://simquery/result/hit:1524"/><rdf:li rdf:resource="periplus://simquery/result/hit:2075"/><rdf:li rdf:resource="periplus://simquery/result/hit:487"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result/cluster:9"><wlr:hasNumberOfResults>8</wlr:hasNumberOfResults><wlr:isLinkedTo rdf:resource="periplus://cluster:9"/><wlr:hasScore>0.95304</wlr:hasScore><wlr:hasDescription>No summary available</wlr:hasDescription><dc:title>etc.</dc:title><rdf:type rdf:resource="DocumentCluster"/></rdf:Description><rdf:Bag rdf:about="periplus://simquery/result/cluster:9"><rdf:li rdf:resource="periplus://simquery/result/hit:271"/><rdf:li rdf:resource="periplus://simquery/result/hit:1799"/><rdf:li rdf:resource="periplus://simquery/result/hit:1732"/><rdf:li rdf:resource="periplus://simquery/result/hit:4618"/><rdf:li rdf:resource="periplus://simquery/result/hit:5922"/><rdf:li rdf:resource="periplus://simquery/result/hit:5786"/><rdf:li rdf:resource="periplus://simquery/result/hit:1592"/><rdf:li rdf:resource="periplus://simquery/result/hit:2286"/></rdf:Bag><rdf:Description rdf:about="periplus://simquery/result"><wlr:hasQueryOffset>0</wlr:hasQueryOffset><wlr:hasNumberOfResults>100</wlr:hasNumberOfResults><wlr:isResultOf rdf:resource="periplus://simquery"/><rdf:type rdf:resource="http://weblab.ow2.org/core/1.2/model#ResultSet"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3883"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3256"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3328"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3844"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:271"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1732"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5803"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1744"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1745"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:96"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4210"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3972"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3973"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2475"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3789"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5767"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1036"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:133"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3675"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5828"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3993"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4870"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2156"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3849"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3802"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1320"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1015"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4397"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4618"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:397"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4285"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1668"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2129"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5351"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4904"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1797"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1176"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:571"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3676"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3799"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3646"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1535"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2361"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2441"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5005"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3556"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:47"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2185"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2278"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1902"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:288"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1093"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1462"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2179"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1403"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2501"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4470"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5881"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3533"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1978"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5120"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:154"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3862"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5246"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5506"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1524"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1614"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3576"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5922"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5786"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4453"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:347"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:600"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3200"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4458"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4698"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4823"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4272"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2577"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4728"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5490"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4341"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2286"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:3510"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4201"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4545"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:4513"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:446"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2312"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5488"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2075"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:487"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1799"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1976"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5753"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1592"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:1600"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:5548"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2290"/><wlr:hasHit rdf:resource="periplus://simquery/result/hit:2033"/></rdf:Description></rdf:RDF></data></annotation><resource uri="periplus://resource:3883" xsi:type="model:Document"><annotation uri="periplus://resource:3883/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3883"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3883</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3256" xsi:type="model:Document"><annotation uri="periplus://resource:3256/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3256"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3256</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3328" xsi:type="model:Document"><annotation uri="periplus://resource:3328/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3328"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3328</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3844" xsi:type="model:Document"><annotation uri="periplus://resource:3844/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3844"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3844</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:271" xsi:type="model:Document"><annotation uri="periplus://resource:271/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:271"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/271</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1732" xsi:type="model:Document"><annotation uri="periplus://resource:1732/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1732"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1732</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5803" xsi:type="model:Document"><annotation uri="periplus://resource:5803/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5803"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5803</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1744" xsi:type="model:Document"><annotation uri="periplus://resource:1744/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1744"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1744</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1745" xsi:type="model:Document"><annotation uri="periplus://resource:1745/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1745"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1745</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:96" xsi:type="model:Document"><annotation uri="periplus://resource:96/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:96"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/96</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4210" xsi:type="model:Document"><annotation uri="periplus://resource:4210/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4210"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4210</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3972" xsi:type="model:Document"><annotation uri="periplus://resource:3972/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3972"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3972</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3973" xsi:type="model:Document"><annotation uri="periplus://resource:3973/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3973"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3973</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2475" xsi:type="model:Document"><annotation uri="periplus://resource:2475/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2475"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2475</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3789" xsi:type="model:Document"><annotation uri="periplus://resource:3789/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3789"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3789</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5767" xsi:type="model:Document"><annotation uri="periplus://resource:5767/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5767"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5767</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1036" xsi:type="model:Document"><annotation uri="periplus://resource:1036/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1036"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1036</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:133" xsi:type="model:Document"><annotation uri="periplus://resource:133/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:133"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/133</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3675" xsi:type="model:Document"><annotation uri="periplus://resource:3675/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3675"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3675</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5828" xsi:type="model:Document"><annotation uri="periplus://resource:5828/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5828"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5828</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3993" xsi:type="model:Document"><annotation uri="periplus://resource:3993/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3993"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3993</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4870" xsi:type="model:Document"><annotation uri="periplus://resource:4870/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4870"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4870</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2156" xsi:type="model:Document"><annotation uri="periplus://resource:2156/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2156"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2156</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3849" xsi:type="model:Document"><annotation uri="periplus://resource:3849/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3849"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3849</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3802" xsi:type="model:Document"><annotation uri="periplus://resource:3802/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3802"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3802</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1320" xsi:type="model:Document"><annotation uri="periplus://resource:1320/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1320"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1320</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1015" xsi:type="model:Document"><annotation uri="periplus://resource:1015/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1015"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1015</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4397" xsi:type="model:Document"><annotation uri="periplus://resource:4397/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4397"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4397</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4618" xsi:type="model:Document"><annotation uri="periplus://resource:4618/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4618"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4618</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:397" xsi:type="model:Document"><annotation uri="periplus://resource:397/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:397"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/397</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4285" xsi:type="model:Document"><annotation uri="periplus://resource:4285/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4285"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4285</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1668" xsi:type="model:Document"><annotation uri="periplus://resource:1668/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1668"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1668</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2129" xsi:type="model:Document"><annotation uri="periplus://resource:2129/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2129"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2129</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5351" xsi:type="model:Document"><annotation uri="periplus://resource:5351/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5351"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5351</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4904" xsi:type="model:Document"><annotation uri="periplus://resource:4904/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4904"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4904</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1797" xsi:type="model:Document"><annotation uri="periplus://resource:1797/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1797"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1797</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1176" xsi:type="model:Document"><annotation uri="periplus://resource:1176/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1176"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1176</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:571" xsi:type="model:Document"><annotation uri="periplus://resource:571/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:571"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/571</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3676" xsi:type="model:Document"><annotation uri="periplus://resource:3676/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3676"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3676</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3799" xsi:type="model:Document"><annotation uri="periplus://resource:3799/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3799"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3799</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3646" xsi:type="model:Document"><annotation uri="periplus://resource:3646/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3646"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3646</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1535" xsi:type="model:Document"><annotation uri="periplus://resource:1535/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1535"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1535</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2361" xsi:type="model:Document"><annotation uri="periplus://resource:2361/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2361"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2361</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2441" xsi:type="model:Document"><annotation uri="periplus://resource:2441/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2441"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2441</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5005" xsi:type="model:Document"><annotation uri="periplus://resource:5005/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5005"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5005</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3556" xsi:type="model:Document"><annotation uri="periplus://resource:3556/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3556"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3556</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:47" xsi:type="model:Document"><annotation uri="periplus://resource:47/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:47"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/47</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2185" xsi:type="model:Document"><annotation uri="periplus://resource:2185/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2185"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2185</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2278" xsi:type="model:Document"><annotation uri="periplus://resource:2278/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2278"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2278</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1902" xsi:type="model:Document"><annotation uri="periplus://resource:1902/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1902"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1902</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:288" xsi:type="model:Document"><annotation uri="periplus://resource:288/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:288"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/288</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1093" xsi:type="model:Document"><annotation uri="periplus://resource:1093/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1093"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1093</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1462" xsi:type="model:Document"><annotation uri="periplus://resource:1462/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1462"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1462</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2179" xsi:type="model:Document"><annotation uri="periplus://resource:2179/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2179"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2179</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1403" xsi:type="model:Document"><annotation uri="periplus://resource:1403/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1403"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1403</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2501" xsi:type="model:Document"><annotation uri="periplus://resource:2501/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2501"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2501</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4470" xsi:type="model:Document"><annotation uri="periplus://resource:4470/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4470"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4470</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5881" xsi:type="model:Document"><annotation uri="periplus://resource:5881/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5881"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5881</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3533" xsi:type="model:Document"><annotation uri="periplus://resource:3533/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3533"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3533</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1978" xsi:type="model:Document"><annotation uri="periplus://resource:1978/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1978"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1978</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5120" xsi:type="model:Document"><annotation uri="periplus://resource:5120/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5120"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5120</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:154" xsi:type="model:Document"><annotation uri="periplus://resource:154/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:154"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/154</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3862" xsi:type="model:Document"><annotation uri="periplus://resource:3862/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3862"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3862</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5246" xsi:type="model:Document"><annotation uri="periplus://resource:5246/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5246"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5246</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5506" xsi:type="model:Document"><annotation uri="periplus://resource:5506/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5506"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5506</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1524" xsi:type="model:Document"><annotation uri="periplus://resource:1524/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1524"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1524</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1614" xsi:type="model:Document"><annotation uri="periplus://resource:1614/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1614"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1614</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3576" xsi:type="model:Document"><annotation uri="periplus://resource:3576/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3576"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3576</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5922" xsi:type="model:Document"><annotation uri="periplus://resource:5922/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5922"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5922</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5786" xsi:type="model:Document"><annotation uri="periplus://resource:5786/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5786"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5786</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4453" xsi:type="model:Document"><annotation uri="periplus://resource:4453/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4453"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4453</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:347" xsi:type="model:Document"><annotation uri="periplus://resource:347/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:347"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/347</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:600" xsi:type="model:Document"><annotation uri="periplus://resource:600/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:600"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/600</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3200" xsi:type="model:Document"><annotation uri="periplus://resource:3200/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3200"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3200</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4458" xsi:type="model:Document"><annotation uri="periplus://resource:4458/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4458"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4458</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4698" xsi:type="model:Document"><annotation uri="periplus://resource:4698/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4698"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4698</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4823" xsi:type="model:Document"><annotation uri="periplus://resource:4823/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4823"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4823</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4272" xsi:type="model:Document"><annotation uri="periplus://resource:4272/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4272"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4272</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2577" xsi:type="model:Document"><annotation uri="periplus://resource:2577/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2577"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2577</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4728" xsi:type="model:Document"><annotation uri="periplus://resource:4728/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4728"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4728</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5490" xsi:type="model:Document"><annotation uri="periplus://resource:5490/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5490"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5490</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4341" xsi:type="model:Document"><annotation uri="periplus://resource:4341/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4341"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4341</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2286" xsi:type="model:Document"><annotation uri="periplus://resource:2286/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2286"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2286</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:3510" xsi:type="model:Document"><annotation uri="periplus://resource:3510/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:3510"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/3510</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4201" xsi:type="model:Document"><annotation uri="periplus://resource:4201/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4201"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4201</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4545" xsi:type="model:Document"><annotation uri="periplus://resource:4545/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4545"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4545</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:4513" xsi:type="model:Document"><annotation uri="periplus://resource:4513/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:4513"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/4513</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:446" xsi:type="model:Document"><annotation uri="periplus://resource:446/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:446"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/446</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2312" xsi:type="model:Document"><annotation uri="periplus://resource:2312/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2312"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2312</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5488" xsi:type="model:Document"><annotation uri="periplus://resource:5488/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5488"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5488</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2075" xsi:type="model:Document"><annotation uri="periplus://resource:2075/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2075"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2075</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:487" xsi:type="model:Document"><annotation uri="periplus://resource:487/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:487"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/487</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1799" xsi:type="model:Document"><annotation uri="periplus://resource:1799/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1799"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1799</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1976" xsi:type="model:Document"><annotation uri="periplus://resource:1976/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1976"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1976</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5753" xsi:type="model:Document"><annotation uri="periplus://resource:5753/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5753"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5753</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1592" xsi:type="model:Document"><annotation uri="periplus://resource:1592/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1592"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1592</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:1600" xsi:type="model:Document"><annotation uri="periplus://resource:1600/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:1600"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/1600</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:5548" xsi:type="model:Document"><annotation uri="periplus://resource:5548/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:5548"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/5548</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2290" xsi:type="model:Document"><annotation uri="periplus://resource:2290/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2290"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2290</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource><resource uri="periplus://resource:2033" xsi:type="model:Document"><annotation uri="periplus://resource:2033/annot:0"><data><rdf:RDF xmlns:wlp="http://weblab.ow2.org/core/1.2/ontology/processing#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"><rdf:Description rdf:about="periplus://resource:2033"><wlp:hasNativeContent>/home/cea/WebLab/dist/run/mss/images/2033</wlp:hasNativeContent></rdf:Description></rdf:RDF></data></annotation></resource></resultSet></sear:searchReturn></soapenv:Body></soapenv:Envelope>'        
+        return res
+    
+    def build_filtered_streamgraph_(self, list_concepts, concepts_with_detailed_documents_list, attr):
+        start_date = attr.get_from_date()
+        end_date = attr.get_to_date()
+        categories = attr.get_categories()
+        # If the dates are not defined in the http request, we specify these dates from the document dates
+        start_date, end_date = self.get_start_and_end_(concepts_with_detailed_documents_list, start_date, end_date)
+        
+        dt_start_date = datetime.fromtimestamp(int(start_date)).isoformat()+'.0Z' 
+        dt_end_date = datetime.fromtimestamp(int(end_date)).isoformat()+'.0Z'
+  
+        nb_stream_graph_unit = 50    
+        time_unit = (int(end_date) - int(start_date)) / float(nb_stream_graph_unit)
+
+        json = {'from_date':dt_start_date}
+        json['to_date'] = dt_end_date
+        json['slice_count'] = nb_stream_graph_unit
+        json['clusters'] = []
+        for concept_index, concept_with_detailed_documents_list in enumerate(concepts_with_detailed_documents_list) :
+            title = list_concepts[concept_index]['title']
+            jsonconcept = {'id':concept_index}
+            jsonconcept['title'] = title
+            
+            time_interval_begin = int(start_date)
+            time_interval_end = time_interval_begin + time_unit
+            jsonvolume=[]
+            for i in range(nb_stream_graph_unit):
+                nbvolume = 0
+                for detailed_document in concept_with_detailed_documents_list:
+                    #Filtering by category
+                    if (categories != [] and detailed_document['category'] in categories) or (categories == []):
+                        doc_date = detailed_document['date']
+                        #Filtering by date
+                        if int(doc_date) >= time_interval_begin and int(doc_date) < time_interval_end:
+                            nbvolume += 1
+                jsonvolume.append(nbvolume)       
+                time_interval_begin = time_interval_end
+                time_interval_end += time_unit
+            jsonconcept['volumes'] = jsonvolume
+            json['clusters'].append(jsonconcept)
+        result = simplejson.dumps(json)
+        logger.debug(result)
+        return result
+    
+    def build_filtered_treemap_(self, concepts_list, concepts_with_detailed_documents_list, attr):
+        picture = attr.get_picture_url()
+        categories = attr.get_categories()
+        
+        if attr.has_image_file():
+            picture = 'http-post'
+        json = {}
+        jsonquery = {'text': attr.get_text()}
+        jsonquery['picture'] = picture
+        jsonquery['categories'] = categories
+        if attr.get_from_date() != '':
+            logger.info('from_date !!!!')
+            logger.info(attr.get_from_date())
+            logger.info(datetime.fromtimestamp(int(attr.get_from_date())).isoformat() + '.0Z')
+            jsonquery['from_date'] = datetime.fromtimestamp(int(attr.get_from_date())).isoformat() + '.0Z'
+        if attr.get_to_date() != '':
+            logger.info('to_date !!!!')
+            logger.info(attr.get_to_date())
+            logger.info(datetime.fromtimestamp(int(attr.get_to_date())).isoformat() + '.0Z')
+            jsonquery['to_date'] = datetime.fromtimestamp(int(attr.get_to_date())).isoformat() + '.0Z'
+        
+        if  self.request.session['refreshOnly'] == True or attr.get_filtre() == 'ok':
+            jsonquery['query_id'] = self.request.session['query_id']
+            self.request.session['refreshOnly'] = False
+        else:
+            jsonquery['query_id'] = int(attr.get_hash_value())
+            
+        json['query'] = jsonquery
+        json['clusters'] = []
+        for concept_index, concept in enumerate(concepts_list):
+            concept_with_sorted_detailed_documents = sorted(concepts_with_detailed_documents_list[concept_index], key=lambda rank: rank['rank'])
+            nb_doc = 0
+            for index, document in enumerate(concept_with_sorted_detailed_documents):
+                if (categories != [] and document['category'] in categories) or (categories == []):
+                    if (attr.get_from_date() != '' and int(document['date']) >= int(attr.get_from_date())) or attr.get_from_date() == '':
+                        if (attr.get_to_date() != '' and int(document['date']) <int(attr.get_to_date())) or attr.get_to_date() == '':
+                            nb_doc+= 1
+            
+            
+            
+            if nb_doc > 0:
+                jsonconcept = {'id':concept_index}
+                jsonconcept['title'] = concept['title']
+                jsonconcept['abstract'] = concept['abstract']
+                jsonconcept['weight'] = int(concept['score'])
+                jsonconcept['url_image'] = concept['url_image']
+                '''jsonconcept['documents_number'] = len(concepts_with_detailed_documents_list[concept_index])'''
+                jsonconcept['documents_number'] = nb_doc
+                
+                if attr.get_documentary_file() != '':
+                    clusters = Cluster.objects.filter(documentaryfile=attr.get_documentary_file())
+                else:
+                    clusters = []
+                
+                jsonconcept['annotations'] = []
+                for cluster in clusters:
+                    ''''if cluster.id == concept_index:'''
+                    annotations = Annotationcluster.objects.filter(cluster=str(cluster.id))
+                    jsonannotation = {}
+                    for annotation in annotations:
+                        jsonannotation['id'] = annotation.id
+                        jsonannotation['user'] = annotation.user.username
+                        jsonannotation['text'] = annotation.description
+                        jsonconcept['annotations'].append(jsonannotation)
+                jsonconcept['documents'] = []
+                
+                for doc_index, document in enumerate(concept_with_sorted_detailed_documents):
+                    logger.info('date du document ============='+document['date'])
+                    logger.info('from_date ============='+attr.get_from_date())
+                    logger.info('to_date ============='+attr.get_to_date())
+                    logger.info('document[category]')
+                    logger.info(document['category'])
+                    if (categories != [] and document['category'] in categories) or (categories == []):
+                        
+                        #Filtering by date
+                        if (attr.get_from_date() != '' and int(document['date']) >= int(attr.get_from_date())) or attr.get_from_date() == '':
+                            if (attr.get_to_date() != '' and int(document['date']) <int(attr.get_to_date())) or attr.get_to_date() == '':
+                                logger.info('FILTERING ADDED DOCUMENT !!!!!!')
+                                jsonarticle = {'id':self.num_(document['id'])}
+                                jsonarticle['title'] = document['title']
+                                jsonarticle['url_document'] = document['url']
+                                jsonarticle['date'] = datetime.fromtimestamp(self.num_(document['date'])).isoformat() + '.0Z' 
+                                jsonarticle['category'] = document['category']
+                                jsonarticle['url_image'] = document['image_path']
+                                jsonarticle['weight'] = float(document['weight'])
+                                jsonconcept['documents'].append(jsonarticle)
+                                # Maximum: 3 articles per cluster
+                                if doc_index > 2:
+                                    break
+                json['clusters'].append(jsonconcept)
+        result = simplejson.dumps(json)
+        print 'result**************************'
+        print result
+        return result
+    
+        '''json = ({'query':{'text':attr.get_text(), 'picture':picture, 'categories':categories,'from_date':'tutu','to_date':'toto','query_id':int(attr.get_hash_value())}})'''
+    
+    def add_doc_information_(self, concepts_with_documents_list):
+        reader = MediapartReader()
+        concepts_with_detailed_documents = []
+        for concept_with_documents in concepts_with_documents_list:
+            detailed_documents_list = []
+            for document in concept_with_documents:
+                document_id = document['id']
+                detailed_doc = {}
+                detailed_doc['id'] = document_id
+                detailed_doc['title'] = reader.get_title(document_id)
+                detailed_doc['date'] = reader.get_date(document_id)
+                detailed_doc['weight'] = document['score']
+                detailed_doc['rank'] = document['rank']
+                detailed_doc['isLinkedTo'] = document['isLinkedTo']
+                detailed_doc['category'] = reader.get_category(document_id)
+                #detailed_doc['tags'] = reader.get_tags(document_id)
+                detailed_doc['url'] = reader.get_url(document_id)
+                detailed_doc['image_path'] = document['image_path']
+                detailed_doc['abstract'] = document['abstract']
+                detailed_documents_list.append(detailed_doc)
+            concepts_with_detailed_documents.append(detailed_documents_list)
+        return concepts_with_detailed_documents
+        
+    def get_start_and_end_(self, documents_dates_concepts_list, start_date, end_date):
+        if start_date == '' or end_date == '':
+            int_start_date = 9999999999
+            int_end_date=0
+            
+            for documents_dates_concepts in documents_dates_concepts_list:
+                for documents_dates in documents_dates_concepts:
+                    doc_date = documents_dates['date']
+                    if int(doc_date) < int_start_date:
+                        int_start_date = int(doc_date)
+                    if int(doc_date) > int_end_date:
+                        int_end_date = int(doc_date)
+            if start_date == '':
+                start_date = str(int_start_date)
+            if end_date == '':
+                end_date = str(int_end_date)
+        return (start_date, end_date) 
+    
+    def num_(self, s):
+        try:
+            return int(s)
+        except Exception, err:
+            logger.error('Can\'t convert the value into int.')
+            logger.error(err)
+            return 0
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/dataparser/AnnotationsGetAttributes.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,38 @@
+'''
+Created on 7 aout 2012
+
+@author: gerard
+'''
+import logging
+
+logger = logging.getLogger('document')
+
+class AnnotationsGetAttributes(object):
+ 
+    def __init__(self, request):
+        self.request = request
+
+    
+    def get_article(self):
+        article = ''
+        try:
+            article = self.request.GET['document_id']
+        except Exception, err:
+            logger.info('No article in the http get request. ' + str(err))
+        return article
+    
+    def get_offset(self):
+        offset = ''
+        try:
+            offset = self.request.GET['offset']
+        except Exception, err:
+            logger.info('No offset in the http get request. ' + str(err))
+        return offset
+    
+    def get_count(self):
+        count = ''
+        try:
+            count = self.request.GET['count']
+        except Exception, err:
+            logger.info('No count in the http get request. ' + str(err))
+        return count
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/dataparser/ClientClusterAnnotationCreateAttributes.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,55 @@
+'''
+Created on 07 August 2012
+
+@author: Corinne
+'''
+import logging
+
+logger = logging.getLogger('document')
+
+class ClientDocumentAnnotationCreateAttributes(object):
+
+    def __init__(self, request):
+        self.request = request
+    
+    def get_user(self):
+        user = ''
+        try:
+            user = self.request.POST['user']
+        except Exception, err:
+            logger.info('No user attribute in the http post request. ' + str(err))
+        return user
+    
+    def get_documentary_file(self):
+        documentary_file = ''
+        try:
+            documentary_file = self.request.POST['documentary_file_id']
+        except Exception, err:
+            logger.info('No documentary_file attribute in the http post request. ' + str(err))
+        return documentary_file
+    
+    def get_annotation(self):
+        annotation = ''
+        try:
+            annotation = self.request.POST['annotation']
+        except Exception, err:
+            logger.info('No annotation attribute in the http post request. ' + str(err))
+        return annotation
+    
+    def get_cluster(self):
+        cluster = ''
+        try:
+            cluster = self.request.POST['cluster_id']
+        except Exception, err:
+            logger.info('No cluster attributes in the http post request. ' + str(err))
+        return cluster
+    
+    def get_tags(self):
+        tags = []
+        try:
+            tags = self.request.POST['tags']
+            tags = eval(tags)
+        except Exception, err:
+            logger.info('Info: ' + str(err))
+        
+        return tags
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/dataparser/ClientClusterAnnotationDeleteAttributes.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,38 @@
+'''
+Created on 07 August 2012
+
+@author: Corinne
+'''
+
+import logging
+logger = logging.getLogger('document')
+
+
+class ClientClusterAnnotationDeleteAttributes(object):
+
+    def __init__(self, request):
+        self.request = request
+    
+    def get_user(self):
+        user=''
+        try:
+            user = self.request.POST['user']
+        except Exception, err:
+            logger.info('No user attribute in the http post request.'+str(err))
+        return user
+    
+    def get_documentary_file(self):
+        documentary_file=''
+        try:
+            documentary_file = self.request.POST['documentary_file_id']
+        except Exception, err:
+            logger.info('No documentary_file attribute in the http post request.'+str(err))
+        return documentary_file
+    
+    def get_cluster(self):
+        cluster=''
+        try:
+            cluster = self.request.POST['cluster_id']
+        except Exception, err:
+            logger.info(' No cluster attribute in the http post request.: '+str(err))
+        return cluster
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/dataparser/ClientDocumentAnnotationCreateAttributes.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,79 @@
+'''
+Created on 07 August 2012
+
+@author: Corinne
+'''
+import logging
+
+logger = logging.getLogger('document')
+
+class ClientDocumentAnnotationCreateAttributes(object):
+
+    def __init__(self, request):
+        self.request = request
+    
+    def get_user(self):
+        user = ''
+        try:
+            user = self.request.POST['user']
+        except Exception, err:
+            logger.info('No user attribute in the http post request. ' + str(err))
+        return user
+    
+    def get_documentary_file(self):
+        documentary_file = ''
+        try:
+            documentary_file = self.request.POST['documentary_file_id']
+        except Exception, err:
+            logger.info('No documentary_file_id attribute in the http post request. ' + str(err))
+        return documentary_file
+    
+    def get_annotation_id(self):
+        annotation_id = ''
+        try:
+            annotation_id = self.request.POST['annotation']
+        except Exception, err:
+            logger.info('No annotation_id attribute in the http post request. ' + str(err))
+        return annotation_id
+    
+    def get_document(self):
+        document = ''
+        try:
+            document = self.request.POST['document_id']
+        except Exception, err:
+            logger.info('No document_id attributes in the http post request. ' + str(err))
+        return document
+    
+    def get_tags(self):
+        tags = []
+        try:
+            tags = self.request.POST['tags']
+            tags = eval(tags)
+        except Exception, err:
+            logger.info('Info: ' + str(err))
+        
+        return tags
+    
+    def get_annotated_text(self):
+        annotated_text = ''
+        try:
+            annotated_text = self.request.POST['annotated_text']
+        except Exception, err:
+            logger.info('No annotated_text attributes in the http post request. ' + str(err))
+        return annotated_text
+    
+    def get_annotated_text_page(self):
+        annotated_text_page = ''
+        try:
+            annotated_text_page = self.request.POST['annotated_text_page']
+        except Exception, err:
+            logger.info('No annotated_text_page attributes in the http post request. ' + str(err))
+        return annotated_text_page
+    
+    def get_annotated_text_offset(self):
+        annotated_text_offset = ''
+        try:
+            annotated_text_offset = self.request.POST['annotated_text_offset']
+        except Exception, err:
+            logger.info('No annotated_text_offset attributes in the http post request. ' + str(err))
+        return annotated_text_offset
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/dataparser/ClientDocumentAnnotationDeleteAttributes.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,29 @@
+'''
+Created on 07 August 2012
+
+@author: Corinne
+'''
+import logging
+
+logger = logging.getLogger('document')
+
+class ClientDocumentAnnotationDeleteAttributes(object):
+
+    def __init__(self, request):
+        self.request = request
+    
+    def get_user(self):
+        user = ''
+        try:
+            user = self.request.POST['user']
+        except Exception, err:
+            logger.info('No user attribute in the http post request. ' + str(err))
+        return user
+    
+    def get_annotation_id(self):
+        annotation_id = ''
+        try:
+            annotation_id = self.request.POST['annotation_id']
+        except Exception, err:
+            logger.info('No annotation_id attribute in the http post request. ' + str(err))
+        return annotation_id
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/dataparser/ClientDocumentaryFileAttributes.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,53 @@
+'''
+Created on 06 August 2012
+
+@author: Corinne
+'''
+import logging
+
+logger = logging.getLogger('document')
+
+class ClientDocumentaryFileAttributes(object):
+
+    def __init__(self, request):
+        self.request = request
+    
+    def get_user(self):
+        user = ''
+        try:
+            user = self.request.POST['user']
+        except Exception, err:
+            logger.info('No user attribute in the http post request.' + str(err))
+        return user
+    
+    def get_title(self):
+        title = ''
+        try:
+            title = self.request.POST['title']
+        except Exception, err:
+            logger.info('No title attribute in the http post request.' + str(err))
+        return title
+    
+    def get_description(self):
+        description = ''
+        try:
+            description = self.request.POST['description']
+        except Exception, err:
+            logger.info('No description attribute in the http post request.' + str(err))
+        return description
+    
+    def get_query_id(self):
+        query_id = ''
+        try:
+            query_id = self.request.POST['query_id']
+        except Exception, err:
+            logger.info('No query_id attribute in the http post request. ' + str(err))
+        return query_id
+    
+    def get_visibility(self):
+        visibility = False
+        try:
+            visibility = self.request.POST['visibility']
+        except Exception, err:
+            logger.info('No visibility attribute in the http post request. ' + str(err))
+        return visibility
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/dataparser/ClientDocumentaryFileDeleteAttributes.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,29 @@
+'''
+Created on 06 August 2012
+
+@author: Corinne
+'''
+import logging
+
+logger = logging.getLogger('document')
+
+class ClientDocumentaryFileDeleteAttributes(object):
+
+    def __init__(self, request):
+        self.request = request
+    
+    def get_documentary_file_id(self):
+        documentary_file_id = ''
+        try:
+            documentary_file_id = self.request.POST['documentary_file_id']
+        except Exception, err:
+            logger.info('No documentary_file_id attribute in the http post request. ' + str(err))
+        return documentary_file_id
+    
+    def get_user(self):
+        user = ''
+        try:
+            user = self.request.POST['user']
+        except Exception, err:
+            logger.info('No user attribute in the http post request. ' + str(err))
+        return user
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/dataparser/ClientDocumentaryFileVisibilityAttributes.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,37 @@
+'''
+Created on 06 August 2012
+
+@author: Corinne
+'''
+import logging
+
+logger = logging.getLogger('document')
+
+class ClientDocumentaryFileVisibilityAttribute(object):
+
+    def __init__(self, request):
+        self.request = request
+    
+    def get_documentary_file_id(self):
+        documentary_file_id = ''
+        try:
+            documentary_file_id = self.request.POST['documentary_file_id']
+        except Exception, err:
+            logger.info('No documentary_file_id attribute in the http post request. ' + str(err))
+        return documentary_file_id
+    
+    def get_visibility(self):
+        visibility = ''
+        try:
+            visibility = self.request.POST['visibility']
+        except Exception, err:
+            logger.info('No visibility attribute in the http post request. ' + str(err))
+        return visibility
+    
+    def get_user(self):
+        user = ''
+        try:
+            user = self.request.POST['user']
+        except Exception, err:
+            logger.info('No description attribute in the http post request.' + str(err))
+        return user
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/dataparser/ClientDocumentsGetAttributes.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,89 @@
+'''
+Created on 7 aout 2012
+
+@author: gerard
+'''
+import logging
+import time
+logger = logging.getLogger('document')
+
+class ClientDocumentsGetAttributes(object):
+
+    def __init__(self, request):
+        self.request = request
+    
+    def get_query_id(self):
+        query_id = ''
+        try:
+            query_id = self.request.GET['query_id']
+        except Exception, err:
+            logger.info('No query_id in the http get request. ' + str(err))
+        return query_id
+    
+    def get_cluster(self):
+        cluster = ''
+        try:
+            cluster = self.request.GET['cluster_id']
+        except Exception, err:
+            logger.info('No cluster in the http get request. ' + str(err))
+        return cluster
+    
+    def get_offset(self):
+        offset = ''
+        try:
+            offset = self.request.GET['offset']
+        except Exception, err:
+            logger.info('No offset in the http get request. ' + str(err))
+        return offset
+    
+    def get_count(self):
+        count = ''
+        try:
+            count = self.request.GET['count']
+        except Exception, err:
+            logger.info('No count in the http get request. ' + str(err))
+        return count
+    
+    def get_from_date(self):
+        date = ''
+        try:
+            from_date = self.request.POST['from_date']
+            
+            '''time_object = time.strptime(from_date, '%Y-%m-%dT%H:%M:%S.0Z')'''
+            time_object = time.strptime(from_date, '%m/%d/%Y')
+            date = str(int(time.mktime(time_object)))
+        except Exception, err:
+            logger.info('Info: ' + str(err))
+        return date
+    
+    def get_to_date(self):
+        date = ''
+        try:
+            to_date = self.request.POST['to_date']
+                       
+            '''time_object = time.strptime(to_date, '%Y-%m-%dT%H:%M:%S.0Z')'''
+            time_object = time.strptime(to_date, '%m/%d/%Y')
+            date = str(int(time.mktime(time_object)))
+        except Exception, err:
+            logger.info('Info: ' + str(err))
+        return date
+     
+    def get_categories(self):
+        categories = []
+        try:
+            print 'get_categories'
+            print self.request.POST.getlist('categories')
+            categories = self.request.POST.getlist('categories')
+            '''categories = self.request.POST['categories']'''
+            '''categories = eval(categories)'''
+
+        except Exception, err:
+            '''logger.info('Info: ' + str(err))'''
+        
+        return categories
+    
+    def get_filtering_params(self):
+        filtering_params = {'from_date':self.get_from_date()}
+        filtering_params['to_date'] = self.get_to_date()
+        filtering_params['categories'] = self.get_categories()
+        return filtering_params
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/dataparser/ClientSearchAttributes.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,117 @@
+'''
+Created on 27 juil. 2012
+
+@author: gerard
+'''
+import logging
+import time
+
+logger = logging.getLogger('document')
+
+class ClientSearchAttributes(object):
+
+    def __init__(self, request):
+        print request
+        self.request = request
+
+    def get_text(self):
+        text = ''
+        try:
+            text = self.request.POST['recherche']
+        except Exception, err:
+            '''logger.info('No recherche attribute in the http post request.'+str(err))'''
+        return text
+    
+    def get_filtre(self):
+        filtre = self.request.POST['filtre']
+        return filtre
+     
+    def get_picture_url(self):
+        picture_url = ''
+        try:
+            picture_url = self.request.POST['picture_image']
+        except Exception, err:
+            '''logger.info('Info: ' + str(err))'''
+        return picture_url
+    
+    def get_uploaded_picture_name(self):
+        uploaded_picture_name = ''
+        if self.request.FILES.keys():
+            for key in self.request.FILES.keys():    
+                image_obj = self.request.FILES[key]
+                uploaded_picture_name = image_obj.name
+        return uploaded_picture_name
+        
+    def has_image_file(self):
+        return len(self.request.FILES.keys())
+         
+    def get_from_date(self):
+        date = ''
+        try:
+            from_date = self.request.POST['from_date']
+            
+            '''time_object = time.strptime(from_date, '%Y-%m-%dT%H:%M:%S.0Z')'''
+            time_object = time.strptime(from_date, '%m/%d/%Y')
+            date = str(int(time.mktime(time_object)))
+        except Exception, err:
+            logger.info('Info: ' + str(err))
+        return date
+    
+    def get_to_date(self):
+        date = ''
+        try:
+            to_date = self.request.POST['to_date']
+                       
+            '''time_object = time.strptime(to_date, '%Y-%m-%dT%H:%M:%S.0Z')'''
+            time_object = time.strptime(to_date, '%m/%d/%Y')
+            date = str(int(time.mktime(time_object)))
+        except Exception, err:
+            logger.info('Info: ' + str(err))
+        return date
+     
+    def get_categories(self):
+        categories = []
+        try:
+            print 'get_categories'
+            print self.request.POST.getlist('categories')
+            categories = self.request.POST.getlist('categories')
+            '''categories = self.request.POST['categories']'''
+            '''categories = eval(categories)'''
+
+        except Exception, err:
+            '''logger.info('Info: ' + str(err))'''
+        
+        return categories 
+    
+    def get_documentary_file(self):
+        documentary_file = ''
+        try:
+            documentary_file = self.request.POST['documentary_file_id']
+        except Exception, err:
+            logger.info('Info: ' + str(err))
+        
+        return documentary_file
+    
+    def get_filtering_params(self):
+        filtering_params = {'from_date':self.get_from_date()}
+        filtering_params['to_date'] = self.get_to_date()
+        filtering_params['categories'] = self.get_categories()
+        return filtering_params
+        
+    def get_hash_value(self):
+        print 'get_hash_value'
+        value = 'text' + self.get_text()
+        value += 'image' + self.get_picture_url()
+        '''value += 'from_date' + self.get_from_date()
+        value += 'get_to_date' + self.get_to_date()'''
+        value += 'categories' + str(self.get_categories())
+        print str(hash(repr(value)))
+        return str(hash(repr(value)))
+    
+    def get_hash_value_from_text_image(self):
+        print 'get_hash_value_from_text_image'
+        value = 'text' + self.get_text()
+        value += 'image' + self.get_picture_url()
+        value += 'imageuploaded' + self.get_uploaded_picture_name()
+        print str(hash(repr(value)))
+        return str(hash(repr(value)))
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/dataparser/ClustersGetAttributes.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,29 @@
+'''
+Created on 7 aout 2012
+
+@author: gerard
+'''
+import logging
+
+logger = logging.getLogger('document')
+
+class ClustersGetAttributes(object):
+
+    def __init__(self, request):
+        self.request = request
+    
+    def get_documentary_file_id(self):
+        documentary_file_id = ''
+        try:
+            documentary_file_id = self.request.GET['documentary_file_id']
+        except Exception, err:
+            logger.info('No documentary_file_id in the http get request. ' + str(err))
+        return documentary_file_id
+    
+    def get_user(self):
+        user = ''
+        try:
+            user = self.request.GET['user']
+        except Exception, err:
+            logger.info('No user in the http get request. ' + str(err))
+        return user
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/dataparser/DocumentaryFileAnnotationAttributes.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,37 @@
+'''
+Created on 10 August 2012
+
+@author: Gerard
+'''
+import logging
+
+logger = logging.getLogger('document')
+
+class DocumentaryFileAnnotationCreateAttributes(object):
+
+    def __init__(self, request):
+        self.request = request
+    
+    def get_user(self):
+        user = ''
+        try:
+            user = self.request.POST['user']
+        except Exception, err:
+            logger.info('No user attribute in the http request.'+str(err))
+        return user
+    
+    def get_documentary_file_id(self):
+        documentary_file_id = ''
+        try:
+            documentary_file_id = self.request.POST['documentary_file_id']
+        except Exception, err:
+            logger.info('No documentary_file_id attribute in the http request. ' + str(err))
+        return documentary_file_id
+    
+    def get_annotation(self):
+        annotation = ''
+        try:
+            annotation = self.request.POST['annotation']
+        except Exception, err:
+            logger.info('No annotation attribute in the http request.' + str(err))
+        return annotation
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/dataparser/DocumentaryFileAnnotationDeleteAttributes.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,37 @@
+'''
+Created on 10 August 2012
+
+@author: Gerard
+'''
+import logging
+
+logger = logging.getLogger('document')
+
+class DocumentaryFileAnnotationDeleteAttributes(object):
+
+    def __init__(self, request):
+        self.request = request
+    
+    def get_user(self):
+        user = ''
+        try:
+            user = self.request.POST['user']
+        except Exception, err:
+            logger.info('No user attribute in the http request.'+str(err))
+        return user
+    
+    def get_documentary_file_id(self):
+        documentary_file_id = ''
+        try:
+            documentary_file_id = self.request.POST['documentary_file_id']
+        except Exception, err:
+            logger.info('No documentary_file_id attribute in the http request. ' + str(err))
+        return documentary_file_id
+    
+    def get_annotation_id(self):
+        annotation_id = ''
+        try:
+            annotation_id = self.request.POST['annotation_id']
+        except Exception, err:
+            logger.info('No annotation_id attribute in the http request.' + str(err))
+        return annotation_id
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/dataparser/DocumentaryFilesGetAttributes.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,37 @@
+'''
+Created on 7 aout 2012
+
+@author: gerard
+'''
+import logging
+
+logger = logging.getLogger('document')
+
+class DocumentaryFilesGetAttributes(object):
+
+    def __init__(self, request):
+        self.request = request
+    
+    def get_user(self):
+        user = ''
+        try:
+            user = self.request.GET['user']
+        except Exception, err:
+            logger.info('No user in the http get request. ' + str(err))
+        return user
+    
+    def get_offset(self):
+        offset = ''
+        try:
+            offset = self.request.GET['offset']
+        except Exception, err:
+            logger.info('No offset in the http get request. ' + str(err))
+        return offset
+    
+    def get_count(self):
+        count = ''
+        try:
+            count = self.request.GET['count']
+        except Exception, err:
+            logger.info('No count in the http get request. ' + str(err))
+        return count
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/dataparser/WebLabParser.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,141 @@
+'''
+Created on 1 aout 2012
+
+@author: gerard
+'''
+from xml.dom.minidom import parseString
+import logging
+logger = logging.getLogger('document')
+
+class WebLabParser(object):
+    
+    def parse(self, xml):
+        dom = parseString(xml)
+        self.get_xmlns(dom)
+        list_concepts = self.get_concepts(dom)
+        documents_concepts_list = self.get_documents_concepts_(dom)
+        return (list_concepts, documents_concepts_list)
+    
+    def get_xmlns(self, dom):
+        self._ns = ''
+        rdf_elts = dom.getElementsByTagName('rdf:RDF')
+        for rdf in rdf_elts:
+            for key, value in rdf.attributes.items():
+                if value == 'http://weblab.ow2.org/core/1.2/ontology/retrieval#':
+                    full_ns = key.split(':')
+                    self._ns = full_ns[1]
+                    return
+        
+                 
+    def get_concepts(self, dom):
+        concept_list = []
+        for node in dom.getElementsByTagName('annotation'):
+            parent = node.parentNode
+            if parent.localName == 'resultSet':
+                description_elts = node.getElementsByTagName('rdf:Description')
+                for description in description_elts:
+                    about = description.getAttribute('rdf:about')
+                    dc_title_elts = description.getElementsByTagName('dc:title')
+                    mediaunit_elts = description.getElementsByTagName('mediaUnit')
+                    for mediaunit in mediaunit_elts:
+                        has_native_content_elts = mediaunit.getElementsByTagName('wlr:hasNativeContent')
+                        for has_native_content in has_native_content_elts:
+                            a_url_image = has_native_content.childNodes[0].data
+                            print 'a_url_image'
+                            print a_url_image
+                            break
+                        break
+                        
+                    wls_score_elts = description.getElementsByTagName(self._ns + ':hasScore')
+                    atitle = ''
+                    for title in dc_title_elts:
+                        atitle = title.childNodes[0].data
+                    a_score = '0'
+                    for wls_score in wls_score_elts:
+                        a_score = wls_score.childNodes[0].data
+                        print 'a_score'
+                        print a_score
+                    if atitle != '':
+                        has_description_elts = description.getElementsByTagName(self._ns + ':hasDescription')
+                        cluster_abstract = ''
+                        for has_description in has_description_elts:
+                            cluster_abstract = has_description.childNodes[0].data
+                        concept_list.append({'about':about,'title': atitle, 'abstract':cluster_abstract, 'url_image':a_url_image, 'score':a_score})
+        logger.info('concept_list')
+        logger.info(concept_list)
+        return concept_list
+                           
+    def get_documents_concepts_(self, dom):
+        concepts_with_documents_list = []
+        for node in dom.getElementsByTagName('resultSet'):
+            '''parent = node.parentNode
+            if parent.localName == 'resultSet':'''
+            rdf_bag_elts = node.getElementsByTagName('rdf:Bag')
+            for rdf_bag in rdf_bag_elts: # loop with the different concepts
+                list_hits_of_a_concept = []
+                concept_documents_list = []
+                for rdf_li_elts in rdf_bag.getElementsByTagName('rdf:li'):
+                    list_hits_of_a_concept.append( rdf_li_elts.getAttribute('rdf:resource'))
+            
+                description_elts = node.getElementsByTagName('rdf:Description')
+                for description in description_elts:
+                    about = description.getAttribute('rdf:about')
+                    if about in list_hits_of_a_concept:
+                        img_internal_path = ''
+                        mediaunit_elts = description.getElementsByTagName('mediaUnit')
+                        for mediaunit in mediaunit_elts:
+                            has_native_content_elts = mediaunit.getElementsByTagName('wlr:hasNativeContent')
+                            for has_native_content in has_native_content_elts:
+                                img_internal_path = has_native_content.childNodes[0].data
+                                print 'img_internal_path'
+                                print img_internal_path
+                                break
+                            break
+                    
+                        dc_identifier_elts = description.getElementsByTagName('dc:identifier')
+                        document_id = dc_identifier_elts[0].childNodes[0].data
+                        hasScore_elts = description.getElementsByTagName(self._ns + ':hasScore')
+                        score = hasScore_elts[0].childNodes[0].data
+                        hasRank_elts = description.getElementsByTagName(self._ns + ':hasRank')
+                        rank = hasRank_elts[0].childNodes[0].data
+                        # Not used ?
+                        wlt_elts = description.getElementsByTagName(self._ns + ':isLinkedTo')
+                        isLinkedTo = wlt_elts[0].getAttribute('rdf:resource')
+                        #
+                        hasDescription_elts = description.getElementsByTagName(self._ns + ':hasDescription')
+                        abstract = hasDescription_elts[0].childNodes[0].data
+                        # 
+                        
+                        '''hasRelevantMediaUnit_elts = description.getElementsByTagName('wls:hasRelevantMediaUnit')
+                        if hasRelevantMediaUnit_elts:
+                            media_uri = hasRelevantMediaUnit_elts[0].getAttribute('rdf:resource')
+                            media_unit_elts = dom.getElementsByTagName('mediaUnit')
+                            for media_unit in media_unit_elts:
+                                uri = media_unit.getAttribute('uri')
+                                if uri == media_uri:
+                                    has_exposed_content_elts = media_unit.getElementsByTagName('wlp:hasExposedContent')
+                                    if has_exposed_content_elts:
+                                        img_internal_path = has_exposed_content_elts[0].childNodes[0].data'''
+
+                        concept_documents_list.append({'id':document_id, 'score':score, 'rank':rank, 'isLinkedTo':isLinkedTo, 'image_path':img_internal_path, 'abstract':abstract})  
+
+                concepts_with_documents_list.append(concept_documents_list)
+        logger.info('concepts_with_documents_list')
+        logger.info(concepts_with_documents_list)
+        return concepts_with_documents_list
+            
+    def get_document_ids_concepts_(self, dom, list_links_concepts):
+        document_ids_concepts_list = [] 
+        for list_links_of_a_concept in list_links_concepts:
+            empty_list = []
+            document_ids_concepts_list.append(empty_list) 
+                    
+        for node in dom.getElementsByTagName('resource'):
+            uri = node.getAttribute('uri')
+            for index, list_links_of_a_concept in enumerate(list_links_concepts):
+                if uri in list_links_of_a_concept:
+                    dc_identifier_elts = node.getElementsByTagName('dc:identifier')
+                    for dc_identifier in dc_identifier_elts:
+                        document_id = dc_identifier.childNodes[0].data
+                        document_ids_concepts_list[index].append(document_id)
+        return document_ids_concepts_list
\ No newline at end of file
Binary file alcatel/django/media/cache/57/ca/57caed232bd8d2e99dd9b7667ccc16ce.jpg has changed
Binary file alcatel/django/media/cache/9a/68/9a68bf574b1f1bd0773ef16fc7490a28.jpg has changed
Binary file alcatel/django/media/cache/ec/2f/ec2fe0d8275215241cb1df18a606683a.jpg has changed
Binary file alcatel/django/media/images/liste.jpg has changed
Binary file alcatel/django/media/images/logo-mediapart.png has changed
Binary file alcatel/django/media/images/logo_periplus.png has changed
Binary file alcatel/django/media/images/mediapartbyperiplus.png has changed
Binary file alcatel/django/media/images/treemap.jpg has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/django/templates/base.html	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,192 @@
+<!DOCTYPE html>
+<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
+<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
+<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]--><head id="head">
+
+  {% block head %}
+    
+<meta charset="utf-8">
+    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Home</title>
+    <link rel="stylesheet" href="{{ STATIC_URL }}css/reset.css" />
+    <link rel="stylesheet" href="{{ STATIC_URL }}css/common.css" />
+    <link rel="stylesheet" href="{{ STATIC_URL }}css/ui-red/jquery-ui.css">
+    <link rel="stylesheet" href="{{ STATIC_URL }}css/ui-lightness/jquery-ui-1.8.24.custom.css">
+    <script src="{{ STATIC_URL }}js/vendor/modernizr-2.6.1.min.js"></script>	 
+{% endblock %}
+</head>
+
+{% block body %}
+    <body>
+{% endblock %}
+         <div class="wrap">
+          {% block main %}
+            <div class="header">
+ {% block header %}
+ 				<div class="logo">
+                  <div class="date">
+                      <span class="year">5</span>
+                      <span class="text">années archivées</span>
+                  </div>
+                </div>
+  {% block recherche %}
+                 <div class="recherche-wrap">
+                    <h1><img src="{{ STATIC_URL }}img/mediapart-by-periplus.jpg" alt="" /></h1>
+                    <form method="post" action="/recherche/">{% csrf_token %}
+                    <input type="hidden"  name="filtre"  value="nok">
+                    <input type="hidden" name="from_date" value="07/01/2007" />
+                    <input type="hidden" name="to_date" value="12/01/2012" />
+                        <p >
+                            <a href="#" class="photo"></a>
+                            <input name="recherche" placeholder="Rechercher" class="input-recherche" type="text" id="recherche"/>
+                            <input type="submit" value="" class="recherche-submit"/>
+                           
+                        </p>
+                    </form>
+                </div>
+{% endblock %}
+                <ul class="header-menu">
+                    <li><a href="#"><img src="{{ STATIC_URL }}img/home-button.jpg" alt="" /> </a></li>
+                    <li><a href="#">INTERNATIONAL</a></li>
+                    <li><a href="#">FRANCE</a></li>
+                    <li><a href="#">ECONOMIE</a></li>
+                    <li><a href="#">CULTURE</a></li>
+                    <li><a href="#">CLUSTER X</a></li>
+                </ul>
+
+ {% block login %}
+                <div id="login" class="login-wrap">
+                {% if user.username == ''%}
+                    <h2>CONNECTER VOUS</h2>
+                    {% if form.errors %}
+	  	    	      <p>Le login et le mot de passe ne correspondent pas, essayez a nouveau.</p>
+	    	    	 {% endif %}
+                    <form method="post" action="/login/?next={{request.get_full_path}}">{% csrf_token %}
+                        <p><input id="username" type="text" name="username" placeholder="Identifiant" /></p> 
+                        {{ user.username }}
+                        <p class="submit-wrap">
+                            <input class="password" type="password" name="password" placeholder=".............."/>
+                            <input class="submit-button" type="submit" value="OK" />
+                        </p>
+                    </form>
+                    <p class="password-lost"><a  href="">Mot de passe oublié ?</a> </p>
+                    {% if not loginstatus == ''%}
+					{{ loginstatus }}
+					{% else %}
+                    	</br>
+			{% endif %}
+            {% else %}
+                <form method="post" action="/logout/?next={{request.get_full_path}}">{% csrf_token %}
+                       <div style="display:block;">
+                       <div class="header-name">
+                       {{ user.username }}
+                       </div>
+                        <input class="submit-button" type="submit" value="d&#233;connexion">
+                       </div>          
+                </form>
+            {% endif %}
+            </div>
+{% endblock %}
+
+                
+                <a href="http://localhost:8000/documentary_files/{{user.username}}/0/10" ><p class="dossier-button" >DOSSIERS DOCUMENTAIRES</p></a>
+
+                <div class="dossier-documentaire">
+                    <div class="dossier-documentaire-inner">
+                        <h2>MES DOSSIERS</h2>
+                        <ul>
+                        {% for dossierDoc in dossierDocs %}
+                			{% for mydoc in dossierDoc %}
+                             <li class="clearfix">
+                             	 <a href="#">
+                                 <img src="{{ STATIC_URL }}images/{{mydoc.url }}" alt="" />
+                             	 <span class="documentaire-texte">
+                                 <h3>{{ mydoc.title }}</h3>
+                                 <p>{{ mydoc.description }}</p>
+								  </span>
+                                </a>
+                            </li>
+                			{% endfor %}
+                		{% endfor %}
+                		</ul>
+                        <a class="documentaire-lien" href="#"></a>
+                    </div>
+                </div><!--dossier-documentaire-->
+                {% endblock %}
+            </div><!-- header -->
+            
+             <div class="content-wrap clearfix">
+              {% block frise %}
+                 <div class="frise">
+                    <div class="streamgraph"></div>
+                    <div id="slider-range"></div>
+                </div><!-- frise -->
+                {% endblock %}
+                
+                <div class="content clearfix">
+                {% block contentleft %}
+                     <div class="content-left">
+                     
+                    
+                     </div>
+                      {% endblock %}
+            		
+                    <div class="content-right" id="right">
+                    {% block contentright %}
+                     {% endblock %}
+                    </div>
+                 </div>
+                 
+                <div class="footer clearfix">
+                        <div class="footer-information">
+                            <h2>Information utiles</h2>
+                            <ul>
+                                <li>- <a href="#">Mentions légales</a></li>
+                                <li>- <a href="#">Mentions légales</a></li>
+                                <li>- <a href="#">Conditions d'utilisations générale</a></li>
+                                <li>- <a href="#">Le projet Periplus</a></li>
+                            </ul>
+                        </div>
+                        <div class="footer-raccourci">
+                            <h2>Raccourcis</h2>
+                            <ul>
+                                <li>- Année <a href="#">2009</a>, <a href="#">2009</a>, <a href="#">2009</a></li>
+                                <li>- <a href="#">International</a>, <a href="#">International</a>, <a href="#">International</a></li>
+                                <li>- <a href="#">Conditions d'utilisations générale</a>
+                            </ul>
+                        </div>
+                        <div class="footer-partenaire">
+                            <h2>Partenaires</h2>
+                            <ul>
+                                 <li><a title="iri" href="http://www.iri.centrepompidou.fr/" class="iri"></a></li>
+                                <li><a title="cea" href="http://www.cea.fr/" class="cea"></a></li>
+                                <li><a title="Alcatel" href="http://www.alcatel-lucent.com" class="alcatel"></a></li>
+                            </ul>
+                        </div>
+                        <div class="footer-texte">
+                            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+                            tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+                            quis nostrud exercitation ullamco.
+                        </p>
+                        </div>
+                  </div><!-- footer -->
+            </div><!-- content-wrap -->
+            <div class="copyright">
+                &copy; Mediapart &copy; Periplus | <a href="#">Mention légales</a> | <a href="#">Chartes éditoriale | <a href="#">CGV | <a href="#">Mediapart.fr</a>
+            </div>
+      
+            {% endblock %}
+        </div>
+        <script src="{{ STATIC_URL }}js/vendor/jquery-1.8.0.min.js"></script>
+        <script src="{{ STATIC_URL }}js/vendor/jquery-ui-1.8.24.custom.min.js"></script>
+        <script src="{{ STATIC_URL }}js/vendor/dragslider.js"></script>
+        <script src="{{ STATIC_URL }}js/lib/raphael-min.js"></script>
+        <script src="{{ STATIC_URL }}js/lib/underscore-min.js"></script>
+        <script src="{{ STATIC_URL }}js/plugins.js"></script>
+        <script src="{{ STATIC_URL }}js/main.js"></script>
+        <script src="{{ STATIC_URL }}js/streamgraph.js"></script>
+
+    </body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/django/templates/cluster.html	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,76 @@
+
+
+{% extends "base.html" %}
+{% comment %}
+
+Main page of django_consultant's website.
+
+{% endcomment %}
+
+{% block head %}
+     {{block.super}}
+      <link rel="stylesheet" href="{{ STATIC_URL }}css/article.css" />
+      <script type="text/javascript" src="{{ STATIC_URL }}libraries/jquery-1.6.4.min.js"></script>
+      <script type="text/javascript" src="{{ STATIC_URL }}js/cluster.js"></script>
+       <script type="text/javascript" src="{{ STATIC_URL }}js/recherche.js"></script>
+    {% endblock %}
+    
+    {% block body %}
+    	<body onLoad="articles({{ request.session.json2 }});">
+    {% endblock %}
+  
+	 {% block contentleft %}
+      <div class="content-left">
+              <h2> {{cluster_title}} »</h2>
+              <div class="widget-wrapper">
+                        <div class="widget-wrap">
+                            <!--div class="widget recherche">
+                                <h3><a href="#">RECHERCHE</a></h3>
+                                <div class="widget-inner">
+                                    <form action="#" method="">
+                                        <p class="clearfix">
+                                            <input type="text" name="" placeholder="Rechercher" />
+                                            <input type="submit" title="Rechercher"   value="" />
+                                        </p>
+                                    </form>
+                                </div>
+                            </div--><!-- recherche -->
+                            
+                            <div class="widget filtre">
+                                <h3><a href="#">FILTRES</a></h3>
+                                <div class="widget-inner">
+                                 <form id="ajax3" method="post" action="{{request.get_full_path}}" class="filtre-date">{% csrf_token %}
+                                    	<input type="hidden"  name="filtre"  value="ok">
+                                        <p>
+                                            <label for="">De :</label>
+                                            <input type="text" id="pickeddatebegincluster" name="from_date" class="dateBegin" value="07/01/2007" />
+                                        </p>
+                                        <p>
+                                            <label for="">à :</label>
+                                            <input type="text" id="pickeddateendcluster" name="to_date" class="dateEnd" value="12/01/2012"/>
+                                        </p>
+                                    <!--/form-->
+                                    <h4>Catégories :</h4>
+                                    <!--form action="#" class="filtre-categorie"-->
+                                        <p><input type="checkbox"  name="categories"  id="categorie1" value="International" class="checkbox_category"/> <label for="">International</label> </p>
+                                        <p><input type="checkbox" name="categories" id="categorie2" value="France" class="checkbox_category"/> <label for="">France</label> </p>
+                                        <p><input type="checkbox" name="categories" id="categorie3" value="Economie" class="checkbox_category"/> <label for="">Economie</label> </p>
+                                        <p><input type="checkbox" name="categories" id="categorie4" value="Culture" class="checkbox_category" /> <label for="">Culture</label> </p>
+                                    </form>
+                                </div>
+                            </div><!-- filtre -->
+                            <div class="widget links">
+                                <h3><a href="#">DOSSIER ASSOCIES</a></h3>
+                                <div class="widget-inner">
+                                    <ul>
+                                        <li><a href="#">« Corruption »</a></li>
+                                        <li><a href="#">« Corruption »</a></li>
+                                        <li><a href="#">« Corruption »</a></li>
+                                        <li><a href="#">« Corruption »</a></li>
+                                    </ul>
+                                </div>
+                            </div><!-- links -->
+                            </div>
+                        </div>
+                        </div>
+        {% endblock %}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/django/templates/dossiersdocumentaire.html	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,90 @@
+
+
+{% extends "base.html" %}
+{% comment %}
+
+Main page of django_consultant's website.
+
+{% endcomment %}
+
+{% block head %}
+     {{block.super}}
+     <link rel="stylesheet" href="{{ STATIC_URL }}css/dossiers.css" />
+     <script type="text/javascript" src="{{ STATIC_URL }}libraries/jquery-1.6.4.min.js"></script>
+     <script type="text/javascript" src="{{ STATIC_URL }}js/dossierdoc.js"></script>
+    {% endblock %}
+    
+    {% block body %}
+    	<body onLoad="dossiers({{ request.session.json3 }});">
+    {% endblock %}
+    
+    
+    {% block frise %}
+         <div class="header-documentaire">
+          <a class="retour" href="#">« Retour</a>
+          <h2>Tous les Dossiers Documentaires : «Rechercher»</h2>
+        </div>
+    {% endblock %}
+                
+	 {% block contentleft %}
+            <div class="content-left documentaire">
+            
+              <div class="widget-wrapper">
+                        <div class="widget-wrap">
+                            <div class="widget recherche">
+                                <h3><a href="#">RECHERCHE</a></h3>
+                                <div class="widget-inner">
+                                    <form action="#" method="">
+                                        <p class="clearfix">
+                                            <input type="text" name="" placeholder="Rechercher" />
+                                            <input type="submit" title="Rechercher"   value="" />
+                                        </p>
+                                    </form>
+                                </div>
+                            </div><!-- recherche -->
+                            <div class="widget classer">
+                                <h3><a href="#">CLASSER</a></h3>
+                                <div class="widget-inner">
+                                    <form action="#" class="filtre-categorie">
+                                        <p><input type="checkbox"> <label for="">International</label> </p>
+                                        <p><input type="checkbox"> <label for="">International</label> </p>
+                                        <p><input type="checkbox"> <label for="">International</label> </p>
+                                    </form>
+                                </div>
+                            </div><!-- classer -->
+                            <div class="widget filtre">
+                                <h3><a href="#">FILTRES</a></h3>
+                                <div class="widget-inner">
+                                    <form action="#" class="filtre-date">
+                                        <p>
+                                            <label for="">De :</label>
+                                            <input type="text" name="dateBegin" class="dateBegin" />
+                                        </p>
+                                        <p>
+                                            <label for="">à :</label>
+                                            <input type="text" name="dateEnd" class="dateEnd" />
+                                        </p>
+                                    </form>
+                                    <h4>Catégories :</h4>
+                                    <form action="#" class="filtre-categorie">
+                                        <p><input type="checkbox"> <label for="">International</label> </p>
+                                        <p><input type="checkbox"> <label for="">International</label> </p>
+                                        <p><input type="checkbox"> <label for="">International</label> </p>
+                                    </form>
+                                </div>
+                            </div><!-- filtre -->
+                            <div class="widget links">
+                                <h3><a href="#">DOSSIER ASSOCIES</a></h3>
+                                <div class="widget-inner">
+                                    <ul>
+                                        <li><a href="#">« Corruption »</a></li>
+                                        <li><a href="#">« Corruption »</a></li>
+                                        <li><a href="#">« Corruption »</a></li>
+                                        <li><a href="#">« Corruption »</a></li>
+                                    </ul>
+                                </div>
+                            </div><!-- links -->
+                            </div>
+                        </div>
+                        </div>
+        {% endblock %}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/django/templates/index.html	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,34 @@
+
+
+{% extends "base.html" %}
+{% comment %}
+
+Main page of django_consultant's website.
+
+{% endcomment %}
+	{% block head %}
+     {{block.super}}
+      <link rel="stylesheet" href="{{ STATIC_URL }}css/article.css" />
+      <script type="text/javascript" src="{{ STATIC_URL }}js/base.js"></script>
+    
+    {% endblock %}
+
+                                
+	 {% block contentleft %}
+      <div class="content-left">
+             <div class="widget-wrap">
+                <div class="widget affichage">
+                    <h3><a href="#">AFFICHAGE</a></h3>
+                    <div class="widget-inner">
+                        <ul class="clearfix">
+                            <li><a  title="Passer en vue Treemap" class="treemap active" href="" onclick="javascript:treemap({{ request.session.json }});return false;"><span class="visuel"></span><span class="fonction">Treemap</span> </a></li>
+                            <li><a  title="Passer en vue Liste" class="liste" href="" onclick="javascript:liste({{ request.session.json }});return false;"><span class="visuel"></span><span class="fonction">Liste</span> </a></li>
+                        </ul>
+                    </div>
+                </div><!-- affichage -->
+			</div>
+            </div>
+          
+        {% endblock %}
+               
+           
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/django/templates/recherche.html	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,88 @@
+{% extends "base.html" %}
+{% comment %}
+
+Main page of django_consultant's website.
+
+{% endcomment %}
+	{% block head %}
+     {{block.super}}
+       <script type="text/javascript" src="{{ STATIC_URL }}libraries/jquery-1.6.4.min.js"></script>
+       <script type="text/javascript" src="{{ STATIC_URL }}js/recherche.js"></script>
+       <link rel="stylesheet" href="{{ STATIC_URL }}css/home.css" />
+       <link rel="stylesheet" href="{{ STATIC_URL }}css/article.css" />
+     {% endblock %}
+    
+    {% block body %}
+    	<body onLoad="launchpage({{ request.session.json }});">
+    {% endblock %}
+     {% block recherche %}
+    <div class="recherche-wrap">
+    
+                    <h1><img src="{{ STATIC_URL }}img/mediapart-by-periplus.jpg" alt="" /></h1>
+                    <form id="ajax1" method="post" action="/recherche/">{% csrf_token %}
+                    	<input type="hidden"  name="filtre"  value="nok">
+                    	<input type="hidden" id="from_date" name="from_date" value="07/01/2007"/>
+                   		<input type="hidden" id="to_date" name="to_date"  value="12/01/2012"/>
+                    	                   
+                        
+                        <p >
+                            <a href="#" class="photo"></a>
+                            <input name="recherche" placeholder="Rechercher" class="input-recherche" type="text" />
+                            <input id="recherche_button" type="button" value="" class="recherche-submit"/>
+                        </p>
+                    </form>
+                </div>
+       {% endblock %}
+
+	 {% block contentleft %}
+      <div class="content-left">
+       <div class="widget-wrapper">
+            <div class="widget-wrap">
+             
+                <div class="widget affichage">
+                    <h3><a href="#">AFFICHAGE</a></h3>
+                    <div class="widget-inner">
+                        <ul class="clearfix">
+                            <li><a  title="Passer en vue Treemap" class="treemap active" href="" onClick="javascript:refreshview('treemap');return false;"><span class="visuel"></span><span class="fonction">Treemap</span> </a></li>
+                            <li id="listehref"><a   title="Passer en vue Liste" class="liste" href="" onClick="javascript:refreshview('liste');return false;"><span class="visuel"></span><span class="fonction">Liste</span> </a></li>
+                        </ul>
+                    </div>
+                </div><!-- affichage -->
+                            <div class="widget filtre">
+                                <h3><a href="#">FILTRES</a></h3>
+                                <div class="widget-inner">
+                                    <form id="ajax2" method="post" action="/recherche/" class="filtre-date">{% csrf_token %}
+                                    	<input type="hidden"  name="filtre"  value="ok">
+                                        <p>
+                                            <label for="">De :</label>
+                                            <input id="pickeddatebegin" type="text" name="from_date" class="dateBegin" value="07/01/2007"/>
+                                        </p>
+                                        <p>
+                                            <label for="">à :</label>
+                                            <input id="pickeddateend" type="text" name="to_date" class="dateEnd" value="12/01/2012"/>
+                                        </p>
+                                       
+                                    <!--/form-->
+                                    <h4>Catégories :</h4>                                    	
+                                        <p><input type="checkbox" name="categories" value="International" class="checkbox_category"/> <label for="">International</label> </p>
+                                        <p><input type="checkbox" name="categories" value="France" class="checkbox_category"/> <label for="">France</label> </p>
+                                        <p><input type="checkbox" name="categories" value="Economie" class="checkbox_category"/> <label for="">Economie</label> </p>
+                                        <p><input type="checkbox" name="categories" value="Culture" class="checkbox_category" /> <label for="">Culture</label> </p>
+                                    </form>
+                                </div>
+                            </div><!-- filtre -->
+                            <div class="widget links">
+                                <h3><a href="#">DOSSIER ASSOCIES</a></h3>
+                                <div class="widget-inner">
+                                    <ul>
+                                        <li><a href="#">« Corruption »</a></li>
+                                        <li><a href="#">« Corruption »</a></li>
+                                        <li><a href="#">« Corruption »</a></li>
+                                        <li><a href="#">« Corruption »</a></li>
+                                    </ul>
+                                </div>
+                            </div><!-- links -->
+                            </div>
+                        </div>
+       </div>
+        {% endblock %}
\ No newline at end of file
Binary file alcatel/document/__init__.pyc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/document/admin.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,24 @@
+
+from django.contrib import admin
+from document.models import Document, Annotationdocument, Image, Tag,\
+    AnnotationDocumentaryFile, Annotationcluster,\
+    Clusterdocumentweight
+from document.models import Documentaryfile
+from document.models import Cluster
+from django.contrib.auth.models import User
+
+#admin.site.register(User)
+admin.site.register(Documentaryfile)
+admin.site.register(Cluster)
+admin.site.register(Document)
+admin.site.register(AnnotationDocumentaryFile)
+admin.site.register(Annotationdocument)
+admin.site.register(Annotationcluster)
+admin.site.register(Image)
+admin.site.register(Tag)
+admin.site.register(Clusterdocumentweight)
+
+           
+
+    
+
Binary file alcatel/document/admin.pyc has changed
Binary file alcatel/document/management/__init__.pyc has changed
Binary file alcatel/document/management/commands/__init__.pyc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/document/management/commands/clearcache.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,12 @@
+'''
+Created on 16 aout 2012
+
+@author: gerard
+'''
+from django.core.management.base import BaseCommand
+from django.core.cache import cache
+
+class Command(BaseCommand):
+    def handle(self, *args, **kwargs):
+        cache.clear()
+        self.stdout.write('Cleared cache\n')
\ No newline at end of file
Binary file alcatel/document/management/commands/clearcache.pyc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/document/models.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,96 @@
+
+from django.db import models
+from django.contrib.auth.models import User
+
+'''class User(models.Model):
+    name = models.CharField(max_length=200)
+    password = models.CharField(max_length=200)
+    
+    def __unicode__(self):
+        return self.name'''
+    
+class Image(models.Model):
+    url = models.CharField(max_length=200)
+
+    def __unicode__(self):
+        return self.url
+    
+class Document(models.Model):
+    documentId = models.IntegerField(primary_key=True)
+    title = models.CharField(max_length=200)
+    description = models.CharField(max_length=400)
+    image = models.ForeignKey(Image)
+    date= models.DateTimeField()
+    def __unicode__(self):
+        return str(self.documentId)
+
+class Documentaryfile(models.Model):
+    title = models.CharField(max_length=200)
+    date = models.DateTimeField()
+    description = models.CharField(max_length=400)
+    visibility = models.BooleanField(default=False)
+    list_concepts = models.TextField()
+    concepts_with_detailed_documents_list = models.TextField()
+    image = models.ForeignKey(Image)
+    user = models.ForeignKey(User)
+    
+    def __unicode__(self):
+        return str(self.id)
+           
+class Annotationdocument(models.Model):
+    description = models.CharField(max_length=200)
+    user = models.ForeignKey(User)
+    document = models.ForeignKey(Document)
+    visibility = models.BooleanField()
+    annoted_text = models.CharField(max_length=200,blank=True,null=True)
+    annoted_text_page = models.IntegerField(blank=True,null=True)
+    annoted_text_offset = models.IntegerField(blank=True,null=True)
+    documentaryfile =  models.ForeignKey(Documentaryfile)   
+    def __unicode__(self):
+        return self.description
+    
+class AnnotationDocumentaryFile(models.Model):
+    description = models.CharField(max_length=200)
+    user = models.ForeignKey(User)
+    documentaryFile = models.ForeignKey(Documentaryfile)
+   
+    def __unicode__(self):
+        return self.description
+    
+class Cluster(models.Model):
+    title = models.CharField(max_length=200)
+    description = models.CharField(max_length=400)
+    weight = models.FloatField()
+    document = models.ManyToManyField(Document, through="Clusterdocumentweight")
+    documentaryfile = models.ForeignKey(Documentaryfile)
+    image = models.ForeignKey(Image)
+
+    def __unicode__(self):
+        return str(self.id)
+
+class Annotationcluster(models.Model):
+    description = models.CharField(max_length=200)
+    user = models.ForeignKey(User)
+    cluster = models.OneToOneField(Cluster)
+       
+    def __unicode__(self):
+        return self.description
+    
+class Clusterdocumentweight(models.Model):
+    document = models.ForeignKey(Document)
+    cluster = models.ForeignKey(Cluster)
+    weight = models.FloatField()
+    
+    # Le couple cluster/document est unique
+    class Meta:
+        unique_together = ( 'cluster', 'document' )   
+
+class Tag(models.Model):
+    value = models.CharField(max_length=50)
+    cluster = models.ForeignKey(Cluster,blank=True,null=True)
+    annotationcluster = models.ForeignKey(Annotationcluster,blank=True,null=True)
+    annotationdocument = models.ForeignKey(Annotationdocument,blank=True,null=True)
+    annotationDocumentaryFile = models.ForeignKey(AnnotationDocumentaryFile,blank=True,null=True)
+    document = models.ForeignKey(Document,blank=True,null=True)
+    def __unicode__(self):
+        return self.value
Binary file alcatel/document/models.pyc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/document/tests.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,16 @@
+"""
+This file demonstrates writing tests using the unittest module. These will pass
+when you run "manage.py test".
+
+Replace this with more appropriate tests for your application.
+"""
+
+from django.test import TestCase
+
+
+class SimpleTest(TestCase):
+    def test_basic_addition(self):
+        """
+        Tests that 1 + 1 always equals 2.
+        """
+        self.assertEqual(1 + 1, 2)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/document/views.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,369 @@
+import logging
+import json
+import simplejson as json
+from django.http import Http404
+from django.http import HttpResponse
+#from django.http import HttpResponseRedirect
+#from django.contrib.auth.decorators import login_required
+from django.contrib.auth import logout
+from django.shortcuts import render_to_response
+from django.template import RequestContext
+from django.contrib.auth import authenticate
+from django.contrib.auth import login
+from django.shortcuts import redirect
+from django.core.urlresolvers import reverse
+from django.http import HttpResponseRedirect, HttpResponse
+from django.contrib.auth.decorators import login_required
+from controller.Searcher import Searcher
+from controller.ClusterAnnotation import ClusterAnnotation
+from controller.DocumentAnnotation import DocumentAnnotation
+from controller.DocumentaryFile import DocumentaryFile
+from controller.Documents import Documents 
+from controller.DocumentaryFiles import DocumentaryFiles
+from controller.Clusters import Clusters
+from controller.DocumentaryFileAnnotation import DocumentaryFileAnnotation
+from document.models import Documentaryfile
+
+
+logger = logging.getLogger('document')
+
+def main_page(request):
+	print 'main_page called'
+	return render_to_response('index.html')
+
+def login_view(request):
+	logger.info('login_view called!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
+	print request
+	username = request.POST['username']
+	password = request.POST['password']
+	user = authenticate(username=username, password=password)
+	my_data_dictionary = {'loginstatus': ''}
+	my_data_dictionary['dossierDocs'] = []
+	
+	if user is not None:
+		if user.is_active:
+			login(request, user)
+			dossierDoc = []
+			documentaryFiles = Documentaryfile.objects.filter(user=request.user.id)
+			if documentaryFiles:
+				for docfile in documentaryFiles:
+					dossierDoc.append({'title':docfile.title, 'description':docfile.description, 'url':docfile.image.url})
+				
+				my_data_dictionary['dossierDocs'].append(dossierDoc)
+				request.session['dossierDocs'] = dossierDoc
+			logger.info(my_data_dictionary['dossierDocs'])
+			print 'user logged'
+		else:
+			logger.info('user not active')
+			print 'user not active'
+			my_data_dictionary['loginstatus'] = 'Utilisateur inactif'
+	else:
+		print 'invalid user'
+		logger.info('invalid user')
+		my_data_dictionary['loginstatus'] = 'Idenfiant ou mot de passe incorrect'
+	
+	request.session['refreshOnly'] = True
+	print 'next!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
+	print request.GET.get('next', '/')
+	return HttpResponseRedirect(request.GET.get('next', '/')) 
+
+
+def logout_view(request):
+	"""
+	Logout users out and re-direct them to the main page.
+	"""
+	query_id = request.session['query_id']
+	key1 = request.session['key1']
+	json2 = request.session['json2']
+	json = request.session['json']
+	
+	logout(request)
+	request.session['refreshOnly'] = True
+	request.session['query_id'] = query_id
+	request.session['key1'] = key1
+	request.session['json2'] = json2
+	request.session['json'] = json
+	return HttpResponseRedirect(request.GET.get('next', '/')) 
+
+
+def document_main_page(request):
+	logger.info('document_main_page called')
+	request.session['refreshOnly'] = False
+	request.session['json2'] = {}
+	request.session['json'] = {}
+	request.session['query_id'] = ''
+	request.session['key1'] = ''
+	
+	my_data_dictionary = {'user': request.user}
+	my_data_dictionary['loginstatus'] = ''
+	my_data_dictionary['dossierDocs'] = []
+	dossierDoc = []
+	
+	if not request.user.is_authenticated():
+		print 'Anonymous user'
+		return render_to_response('index.html', my_data_dictionary, context_instance=RequestContext(request))
+	else:
+		documentaryFiles = Documentaryfile.objects.filter(user=request.user.id)
+		if documentaryFiles:
+			for docfile in documentaryFiles:
+				dossierDoc.append({'title':docfile.title, 'description':docfile.description, 'url':docfile.image.url})
+			
+			my_data_dictionary['dossierDocs'].append(dossierDoc)
+			logger.info(my_data_dictionary['dossierDocs'])
+
+	# get user information here (documentary file ...)
+	
+	#
+	return render_to_response('index.html', my_data_dictionary, context_instance=RequestContext(request))
+
+def get_mesdossiersDoc(request):
+	logger.info('get_mesdossiersDoc called')
+	my_data_dictionary = {'user': request.user}
+	my_data_dictionary['loginstatus'] = ''
+	my_data_dictionary['myDocumentaryFiles'] = ''
+	logger.info('get_mesdossiersDoc called2')
+	if not request.user.is_authenticated():
+		logger.info('Anonymous user')
+		return render_to_response('index.html', my_data_dictionary, context_instance=RequestContext(request))
+	else:
+		logger.info('user'+str(request.user))
+		documentaryFiles = Documentaryfile.objects.filter(user=request.user.id)
+		if documentaryFiles:
+			my_data_dictionary['myDocumentaryFiles'] = '<section id="dossierDoc"><h1>Mes dossiers docs</h1>'
+			for docfile in documentaryFiles:
+				my_data_dictionary['myDocumentaryFiles'] += '<article style="width:278px">'
+				my_data_dictionary['myDocumentaryFiles'] += '<img src="{{ STATIC_URL }}images/'
+				my_data_dictionary['myDocumentaryFiles'] += docfile.image.url
+				my_data_dictionary['myDocumentaryFiles'] += '" style="height:60px;width:60px;float:left;padding-right:10px"/> <h2 style="float:left">'
+				my_data_dictionary['myDocumentaryFiles'] += docfile.title
+				my_data_dictionary['myDocumentaryFiles'] += '</h2><br><p>'
+				my_data_dictionary['myDocumentaryFiles'] += docfile.description
+				my_data_dictionary['myDocumentaryFiles'] += '</p></article>'
+
+	# get user information here (documentary file ...)
+	
+	#
+	return render_to_response('mesdossiersDoc.html', my_data_dictionary, context_instance=RequestContext(request))
+
+	
+def streamgraph(request):
+	print 'streamgraph'
+	if request.method == 'POST':
+		print 'POST'
+		searcher = Searcher(request);
+		json = searcher.streamgraph()
+		return HttpResponse(json)
+	else:
+		print 'ERROR'
+		raise Http404
+	return HttpResponse("OK")
+
+
+def treemap(request):
+	print 'TREEMAP ENTER !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
+	my_data_dictionary = {'user': request.user}
+	my_data_dictionary['dossierDocs'] = []
+	dossierDoc = []
+	if request.user.is_authenticated():
+		print request.user.is_authenticated()
+		documentaryFiles = Documentaryfile.objects.filter(user=request.user.id)
+		if documentaryFiles:
+			for docfile in documentaryFiles:
+				dossierDoc.append({'title':docfile.title, 'description':docfile.description, 'url':docfile.image.url})
+			print dossierDoc
+			my_data_dictionary['dossierDocs'].append(dossierDoc)
+			logger.info(my_data_dictionary['dossierDocs'])
+
+	searcher = Searcher(request);
+	json = searcher.treemap()
+	request.session['json'] = json
+	if request.is_ajax():
+		print("is_ajax")
+		return HttpResponse(json)
+	else:
+		print("isnot_ajax")
+		return render_to_response('recherche.html',my_data_dictionary, context_instance=RequestContext(request)) 
+
+
+def get_documents_with_annotations(request,query=0,cluster=0,offset=0,count=0):
+	print 'get_documents_with_annotations !!!!!!!!'
+
+	'''if request.method == 'GET':'''
+	if  request.method == 'GET' and request.session['refreshOnly'] == True:
+		print("get_request and refresh")
+		json2 = request.session['json2']
+		request.session['refreshOnly'] = False
+	else:
+		print("NOT get_request and refresh")
+		documents = Documents(request)
+		json2 = documents.get_documents(query,cluster,offset,count)
+		request.session['json2'] = json2
+				
+	d = json.loads(json2)
+	my_data_dictionary = {'cluster_title': d['cluster_title']}
+	my_data_dictionary['dossierDocs'] = []
+	dossierDoc = []
+	
+	if request.user.is_authenticated():
+		print request.user.is_authenticated()
+		documentaryFiles = Documentaryfile.objects.filter(user=request.user.id)
+		if documentaryFiles:
+			for docfile in documentaryFiles:
+				dossierDoc.append({'title':docfile.title, 'description':docfile.description, 'url':docfile.image.url})
+			print dossierDoc
+			my_data_dictionary['dossierDocs'].append(dossierDoc)
+			logger.info(my_data_dictionary['dossierDocs'])
+	
+	if request.is_ajax():
+		print("is_ajax")
+		return HttpResponse(json2)
+	else:
+		print("isnot_ajax")
+		return render_to_response('cluster.html',my_data_dictionary, context_instance=RequestContext(request))
+	'''return HttpResponse(json)'''
+	
+	'''else:
+		raise Http404'''
+	
+def get_annotations(request):
+	if request.method == 'GET':
+		print 'get_annotations'
+		annotations = DocumentAnnotation(request);
+		json = annotations.get_annotations()
+		return HttpResponse(json)
+	else:
+		raise Http404	
+
+@login_required
+def documentary_files(request,myuser="",offset=0,count=0):
+	print 'documentary_files'
+	print request.user 
+	if request.method == 'GET':
+		doc_files = DocumentaryFiles(request);
+		json = doc_files.get_files(myuser,offset,count)
+		request.session['json3'] = json
+		'''return HttpResponse(json)'''
+		
+		my_data_dictionary = {}
+		my_data_dictionary['dossierDocs'] = []
+		dossierDoc = []
+		
+		if request.user.is_authenticated():
+			print request.user.is_authenticated()
+			documentaryFiles = Documentaryfile.objects.filter(user=request.user.id)
+			if documentaryFiles:
+				for docfile in documentaryFiles:
+					dossierDoc.append({'title':docfile.title, 'description':docfile.description, 'url':docfile.image.url})
+				print dossierDoc
+				my_data_dictionary['dossierDocs'].append(dossierDoc)
+				logger.info(my_data_dictionary['dossierDocs'])
+				
+		return render_to_response('dossiersdocumentaire.html',my_data_dictionary, context_instance=RequestContext(request)) 
+	else:
+		raise Http404
+		
+def documentary_file_visibility(request):
+	if request.method == 'POST':
+		print 'documentary_file_visibility'
+		documentary_file = DocumentaryFile(request);
+		json = documentary_file.visibilityChange()		
+		return HttpResponse(json)
+	else:
+		raise Http404
+	return HttpResponse("OK")
+
+def documentary_file_delete(request):
+	if request.method == 'POST':
+		print 'documentary_file_delete'
+		documentaryfile_var = DocumentaryFile(request);
+		json = documentaryfile_var.delete()
+					
+		return HttpResponse(json)
+	else:
+		raise Http404
+	return HttpResponse("OK")
+
+def documentary_file_create(request):
+	if request.method == 'POST':
+		logger.info('documentary_file create')
+		documentary_file = DocumentaryFile(request);
+		json = documentary_file.create()
+					
+		return HttpResponse(json)
+	else:
+		raise Http404
+	return HttpResponse("OK")
+
+def cluster_annotation_create(request):
+	if request.method == 'POST':
+		logger.info('cluster annotation create')
+		clusterAnnotation_var = ClusterAnnotation(request);
+		json = clusterAnnotation_var.create()
+					
+		return HttpResponse(json)
+	else:
+		raise Http404
+	return HttpResponse("OK")
+
+def cluster_annotation_delete(request):
+	if request.method == 'POST':
+		logger.info('cluster annotation delete')
+		clusterAnnotation_var = ClusterAnnotation(request);
+		json = clusterAnnotation_var.delete()
+					
+		return HttpResponse(json)
+	else:
+		raise Http404
+	return HttpResponse("OK")
+
+def document_annotation_create(request):
+	if request.method == 'POST':
+		logger.info('document annotation create')
+		document_annotation = DocumentAnnotation(request);
+		json = document_annotation.create()
+					
+		return HttpResponse(json)
+	else:
+		raise Http404
+	return HttpResponse("OK")
+
+def document_annotation_delete(request):
+	if request.method == 'POST':
+		logger.info('document annotation delete')
+		document_annotation = DocumentAnnotation(request);
+		json = document_annotation.delete()
+					
+		return HttpResponse(json)
+	else:
+		raise Http404
+	return HttpResponse("OK")
+
+def get_clusters(request):
+	if request.method == 'GET':
+		logger.info('get clusters of a documentary file')
+		clusters = Clusters(request);
+		json = clusters.get_treemap_of_clusters()
+					
+		return HttpResponse(json)
+	else:
+		raise Http404
+
+def create_annotation_on_documentary_file(request):
+	if request.method == 'POST':
+		logger.info('create an annotation on a documentary file')
+		annotation = DocumentaryFileAnnotation(request);
+		json = annotation.create()
+					
+		return HttpResponse(json)
+	else:
+		raise Http404
+	
+def delete_annotation_on_documentary_file(request):
+	if request.method == 'POST':
+		logger.info('delete an annotation on a documentary file')
+		annotation = DocumentaryFileAnnotation(request);
+		json = annotation.delete()
+					
+		return HttpResponse(json)
+	else:
+		raise Http404
\ No newline at end of file
Binary file alcatel/document/views.pyc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/manage.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,10 @@
+#!/usr/bin/env python
+import os
+import sys
+
+if __name__ == "__main__":
+    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "periplus.settings")
+
+    from django.core.management import execute_from_command_line
+
+    execute_from_command_line(sys.argv)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/mediapartdb/MediapartReader.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,120 @@
+'''
+Created on 27 juin 2012
+
+@author: gerard
+'''
+import MySQLdb
+import logging
+import warnings
+
+logger = logging.getLogger('document')
+
+class MediapartReader() :
+    def __init__(self):
+        self.conn = MySQLdb.connect (host = 'localhost',
+            user = 'mediapart',
+            passwd = 'mediapart',
+            db = 'www_mediapart_fr')
+        
+        warnings.filterwarnings('ignore', category=MySQLdb.Warning)
+        
+    def __del__(self):
+        self.conn.close ()
+       
+    def get_date(self, document_id):     
+
+        self.conn.query('SELECT changed FROM node where nid=\''+document_id+'\'')
+        r = self.conn.use_result()
+        row = r.fetch_row()
+        if row:
+            date = (row)[0][0]
+        else:
+            date = '0'
+
+        #changed_date = datetime.datetime.fromtimestamp(int(change_date_unix[0])).strftime('%Y-%m-%d %H:%M:%S')
+        return date
+    
+    def get_title(self, document_id): 
+        self.conn.query('SELECT title FROM node where nid=\''+document_id+'\'')
+        r = self.conn.use_result()
+        row = r.fetch_row()
+        if row:
+            title = (row)[0][0].decode("windows-1252").encode("utf8")
+        else:
+            title = ''
+        return title
+    
+    '''def get_category(self, document_id):
+        self.conn.query('SELECT dst FROM url_alias where src="node/'+document_id+'"')
+        r = self.conn.use_result()
+        row = r.fetch_row()
+        if row:
+            dst = (row)[0][0]
+            fields = dst.split('/')
+            category = fields[0]
+        else:
+            category = ''
+        return category'''
+
+    
+    def get_category(self, document_id):
+        cursor =self.conn.cursor()
+        cursor.execute('SELECT tid FROM term_node where nid=\''+document_id+'\'')
+        tids = cursor.fetchall()
+        category = ''
+        for tid in tids:
+            if str(tid[0]) == '27':
+                category = 'France'
+                return category
+            elif str(tid[0]) == '28':
+                category = 'International'
+                return category
+            elif str(tid[0]) == '29':
+                category = 'Economie'
+                return category
+            elif str(tid[0]) == '30':
+                category = 'Culture'
+                return category 
+            else:
+                category = '' 
+        return category
+    
+    def get_tags(self, document_id):
+        tags=[]
+        cursor = self.conn.cursor()
+        cursor.execute('SELECT tid FROM term_node where nid=\''+document_id+'\'')
+        tids = cursor.fetchall()
+        for tid in tids:
+            if str(tid[0]) != '27' and str(tid[0]) != '28' and str(tid[0]) != '29' and str(tid[0]) != '30':
+                cursor.execute('SELECT name FROM term_data where tid=' + str(tid[0]))
+                names = cursor.fetchall()
+                for name in names:
+                    tags.append(str(name).decode("windows-1252").encode("utf8"))
+        return tags
+    
+    def get_url(self, document_id):
+        self.conn.query('SELECT dst FROM url_alias where src="node/'+document_id+'"')
+        r = self.conn.use_result()
+        row = r.fetch_row()
+        
+        if row:
+            print 'row!!!!!!!!!!!!!!!!!!!!!!!!'
+            print row
+            print (row)[0][0]
+            url = 'http://www.mediapart.fr/'+(row)[0][0]
+        else:
+            url = ''
+        return url
+    
+    def get_author(self, document_id):
+        self.conn.query('SELECT u.uid, u.name FROM users u, node n where u.uid=n.uid AND n.nid=\''+document_id+'\'')
+        r = self.conn.use_result()
+        row = r.fetch_row()
+        if row:
+            name = (row)[0][1].decode("windows-1252").encode("utf8")
+            uid = (row)[0][0]
+        else:
+            name = ''
+            uid=''
+        return {'id':uid, 'name':name}
+        
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/periplus/settings.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,194 @@
+# Django settings for periplus project.
+
+DEBUG = True
+SIMULATE_WEBLAB = True
+TEMPLATE_DEBUG = DEBUG
+
+ADMINS = (
+    # ('Your Name', 'your_email@example.com'),
+)
+
+CACHES = {
+    'default': {
+        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
+        'LOCATION': 'localhost:11211',
+    }
+}
+
+
+MANAGERS = ADMINS
+
+DATABASES = {
+    'default': {
+       'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
+        'NAME': 'periplus',                      # Or path to database file if using sqlite3.
+        'USER': 'root',                      # Not used with sqlite3.
+        'PASSWORD': 'i23grFl23&',                  # Not used with sqlite3.
+        'HOST': 'localhost',                      # Set to empty string for localhost. Not used with sqlite3.
+        'PORT': '3306',                      # Set to empty string for default. Not used with sqlite3.
+    }
+}
+
+# Local time zone for this installation. Choices can be found here:
+# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
+# although not all choices may be available on all operating systems.
+# On Unix systems, a value of None will cause Django to use the same
+# timezone as the operating system.
+# If running in a Windows environment this must be set to the same as your
+# system time zone.
+TIME_ZONE = 'Europe/Paris'
+
+# Language code for this installation. All choices can be found here:
+# http://www.i18nguy.com/unicode/language-identifiers.html
+LANGUAGE_CODE = 'en-us'
+
+SITE_ID = 1
+
+# If you set this to False, Django will make some optimizations so as not
+# to load the internationalization machinery.
+USE_I18N = True
+
+# If you set this to False, Django will not format dates, numbers and
+# calendars according to the current locale.
+USE_L10N = True
+
+# If you set this to False, Django will not use timezone-aware datetimes.
+USE_TZ = False
+
+# Absolute filesystem path to the directory that will hold user-uploaded files.
+# Example: "/home/media/media.lawrence.com/media/"
+
+MEDIA_ROOT = 'D:/projets/workspace/periplus/django/media'
+
+
+# URL that handles the media served from MEDIA_ROOT. Make sure to use a
+# trailing slash.
+# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
+MEDIA_URL = '/media/'
+
+# Absolute path to the directory static files should be collected to.
+# Don't put anything in this directory yourself; store your static files
+# in apps' "static/" subdirectories and in STATICFILES_DIRS.
+# Example: "/home/media/media.lawrence.com/static/"
+STATIC_ROOT = ''
+
+# URL prefix for static files.
+# Example: "http://media.lawrence.com/static/"
+STATIC_URL = '/static/'
+
+# Additional locations of static files
+STATICFILES_DIRS = (
+    # Put strings here, like "/home/html/static" or "C:/www/django/static".
+    # Always use forward slashes, even on Windows.
+    # Don't forget to use absolute paths, not relative paths.
+    "D:/projets/workspace/periplus/static/",
+)
+
+# List of finder classes that know how to find static files in
+# various locations.
+STATICFILES_FINDERS = (
+    'django.contrib.staticfiles.finders.FileSystemFinder',
+    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
+#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
+)
+
+STATIC_DOC_ROOT = 'D:/projets/workspace/periplus/static/images'
+
+# Make this unique, and don't share it with anybody.
+SECRET_KEY = 'rq8l8v5yw9s%q-!ti-fj+ebr@-(dkgv*%uvw(8(451egh_#$98'
+
+# List of callables that know how to import templates from various sources.
+TEMPLATE_LOADERS = (
+    'django.template.loaders.filesystem.Loader',
+    'django.template.loaders.app_directories.Loader',
+#     'django.template.loaders.eggs.Loader',
+)
+
+MIDDLEWARE_CLASSES = (
+    'django.middleware.common.CommonMiddleware',
+    'django.contrib.sessions.middleware.SessionMiddleware',
+    #'django.middleware.csrf.CsrfViewMiddleware',
+    'django.contrib.auth.middleware.AuthenticationMiddleware',
+    'django.contrib.messages.middleware.MessageMiddleware',
+    # Uncomment the next line for simple clickjacking protection:
+    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
+)
+
+ROOT_URLCONF = 'periplus.urls'
+
+# Python dotted path to the WSGI application used by Django's runserver.
+WSGI_APPLICATION = 'periplus.wsgi.application'
+
+TEMPLATE_DIRS = (
+    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
+    # Always use forward slashes, even on Windows.
+    # Don't forget to use absolute paths, not relative paths.
+    "D:/projets/workspace/periplus/django/templates"
+)
+
+TEMPLATE_CONTEXT_PROCESSORS = (
+    'django.core.context_processors.debug',
+    'django.core.context_processors.i18n',
+    'django.core.context_processors.media',
+    'django.core.context_processors.request',
+    'django.core.context_processors.static',
+    'django.contrib.auth.context_processors.auth',
+    'django.contrib.messages.context_processors.messages',
+)
+SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
+
+INSTALLED_APPS = (
+    'django.contrib.auth',
+    'django.contrib.contenttypes',
+    'django.contrib.sessions',
+    'django.contrib.sites',
+    'django.contrib.messages',
+    'django.contrib.staticfiles',
+    # Uncomment the next line to enable the admin:
+    'django.contrib.admin',
+    # Uncomment the next line to enable admin documentation:
+    # 'django.contrib.admindocs',
+    'document',
+    'sorl.thumbnail',
+    
+)
+
+SIMULATE_WEBLAB = True
+
+# A sample logging configuration. The only tangible logging
+# performed by this configuration is to send an email to
+# the site admins on every HTTP 500 error when DEBUG=False.
+# See http://docs.djangoproject.com/en/dev/topics/logging for
+# more details on how to customize your logging configuration.
+LOGGING = {
+    'version': 1,
+    'disable_existing_loggers': False,
+    'filters': {
+        'require_debug_false': {
+            '()': 'django.utils.log.RequireDebugFalse'
+        }
+    },
+    'handlers': {
+        'mail_admins': {
+            'level': 'ERROR',
+            'filters': ['require_debug_false'],
+            'class': 'django.utils.log.AdminEmailHandler'
+        },
+        'logfiles': {
+             'class': 'logging.handlers.WatchedFileHandler',
+             'filename': 'd:/tmp/document.log'
+        }
+    },
+    'loggers': {
+        'django.request': {
+            'handlers': ['mail_admins'],
+            'level': 'ERROR',
+            'propagate': True,
+        },
+        'document':{
+            'handlers': ['logfiles'],
+            'level': 'DEBUG',
+            'propagate': False
+        },
+    },
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/periplus/urls.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,71 @@
+from django.conf.urls import patterns, include, url
+from django.conf import settings
+
+# Uncomment the next two lines to enable the admin:
+from django.contrib import admin
+#import django.contrib.auth.views
+
+
+
+admin.autodiscover()
+
+urlpatterns = patterns('',
+    url(r'^streamgraph/', 'document.views.streamgraph'),
+    url(r'^recherche/$', 'document.views.treemap'),
+    
+    #url(r'^recherche/(?P<query>-?\d+)/(?P<key1>-?\d+)/$', 'document.views.treemap'),
+    url(r'^annotations_document', 'document.views.get_annotations'),
+    # Modify the "public" attribute of a documentary file
+    url(r'^documentary_file_visibility/', 'document.views.documentary_file_visibility'),
+     # Delete a documentary file
+    url(r'^documentary_file_delete/', 'document.views.documentary_file_delete'),
+    # Create a documentary file
+    url(r'^documentary_file_create/', 'document.views.documentary_file_create'),
+    # Annotate a documentary file
+    url(r'^documentary_file_annotation_create/', 'document.views.create_annotation_on_documentary_file'),
+    # Delete an annotate a documentary file
+    url(r'^documentary_file_annotation_delete/', 'document.views.delete_annotation_on_documentary_file'),
+    # Get documentary files of a user
+    url(r'^documentary_files/$', 'document.views.documentary_files'),
+    url(r'^documentary_files/(?P<myuser>\w+)/(?P<offset>\d+)/(?P<count>\d+)/$', 'document.views.documentary_files'),
+     # Delete an annotation on a cluster
+    url(r'^cluster_annotation_delete/', 'document.views.cluster_annotation_delete'),
+     # Create an annotation on a cluster
+    url(r'^cluster_annotation_create/', 'document.views.cluster_annotation_create'),
+     # Create an annotation on a document
+    url(r'^document_annotation_create/', 'document.views.document_annotation_create'),
+    # Delete an annotation on a document
+    url(r'^document_annotation_delete/', 'document.views.document_annotation_delete'),
+    # Documents of a cluster with annotations
+    url(r'^documents_cluster/$', 'document.views.get_documents_with_annotations'),
+    url(r'^documents_cluster/(?P<query>-?\d+)/(?P<cluster>-?\d+)/(?P<offset>-?\d+)/(?P<count>-?\d+)/$', 'document.views.get_documents_with_annotations'),
+        
+    # List of clusters of a documentary file
+    url(r'^clusters', 'document.views.get_clusters'),
+    
+    url(r'^mesdossiersDoc', 'document.views.get_mesdossiersDoc'),
+
+    #  to enable the admin:
+    url(r'^admin/', include(admin.site.urls)),
+    
+    # Login / logout.
+    (r'^login/$', 'document.views.login_view'),
+    (r'^logout/$', 'document.views.logout_view'),
+
+    # Main page
+    url(r'^$', 'document.views.document_main_page', name='main-page'),
+)
+
+urlpatterns += patterns('',
+        (r'^images/(?P<path>.*)$', 'django.views.static.serve',
+        {'document_root': settings.STATIC_DOC_ROOT}),    
+)
+
+urlpatterns += patterns('',
+        (r'^media/(?P<path>.*)$', 'django.views.static.serve',
+        {'document_root': settings.MEDIA_ROOT}),    
+)
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/periplus/wsgi.py	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,31 @@
+"""
+WSGI config for periplus project.
+
+This module contains the WSGI application used by Django's development server
+and any production WSGI deployments. It should expose a module-level variable
+named ``application``. Django's ``runserver`` and ``runfcgi`` commands discover
+this application via the ``WSGI_APPLICATION`` setting.
+
+Usually you will have the standard Django WSGI application here, but it also
+might make sense to replace the whole Django WSGI application with a custom one
+that later delegates to the Django one. For example, you could introduce WSGI
+middleware here, or combine a Django application with an application of another
+framework.
+
+"""
+import os
+
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "periplus.settings")
+
+# This application object is used by any WSGI server configured to use this
+# file. This includes Django's development server, if the WSGI_APPLICATION
+# setting points here.
+from django.core.wsgi import get_wsgi_application
+application = get_wsgi_application()
+
+# Apply WSGI middleware here.
+# from helloworld.wsgi import HelloWorldApplication
+# application = HelloWorldApplication(application)
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/css/article.css	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,114 @@
+/*articles*/
+.articles{
+	padding-left: 1px;
+	overflow: auto;
+	border-bottom: 1px solid #e0dde0;
+}
+.article{
+	padding: 12px 0 6px 0;
+	float: left;
+	border-bottom: 1px solid #e0dde0;
+}
+.article:hover{
+	background-color: #eee;
+}
+.inner-article{
+	width: 177px;
+	padding-left: 12px;
+	border-right: 1px solid #e0dde0;
+	min-height: 250px;
+}
+.article:nth-child(4n+4) .inner-article{  
+  border-right: none;
+}
+.article h2{
+	font-size: 20px;
+	margin-bottom: 2px;
+}
+.article h2 a{
+	text-decoration: none;
+}
+.article h2 a:hover{
+	color:#C51810;
+}
+.author{
+	font-family: Arial;
+	font-size: 8px;
+	line-height: 10px;
+	margin-bottom: 10px;
+}
+.number-article{
+	font-size: 10px;
+	overflow: hidden;
+}
+.author a:hover, 
+.number-article a:hover{
+	text-decoration: none;
+}
+.author, .author a,
+.number-article, .number-article a{
+	color: #c51810;
+}
+.number-article{
+	line-height: 22px;
+}
+.article-content{
+	width: 168px;
+	min-height: 105px;
+}
+.article-content .articlelinks li{
+	list-style-image: url(../img/article-link-arrow.png);
+}
+.article-content .articlelinks li a:hover{
+	text-decoration: none;
+}
+.article-content .articlelinks{
+	margin-top: 10px;
+	clear: both;
+	padding-left: 20px;
+}
+.article-visuel-wrap{
+	display: block;
+	float: right;
+	margin-left: 10px;
+}
+/* annotations */
+.article-annotations{
+	width: 160px;
+	height: 4px;
+	border:1px solid #edebed;
+	background-color: #898989;
+	margin-bottom: 6px;
+}
+.article-annotations a{
+	float: left;
+	display: block;
+	width: 100%;
+	height: 4px;
+	background-image: url(../img/border-right-annotation-value.png);
+	background-repeat: repeat-y;
+	background-position: right top;
+}
+.article-annotations .blue{
+	background-color: #429dd4;
+}
+.article-annotations .green{
+	background-color: #73c263;
+}
+.article-annotations .red{
+	background-color: #d64752;
+}
+.article-annotations .empty{
+	background-color: #898989;
+}
+.add-annotation{
+	width: 22px;
+	height: 17px;
+	display: block;
+	background: url(../img/article-annotations-add-comment-sprite.png) no-repeat 0 0;
+	float: right;
+	margin-right: 14px;
+}
+.add-annotation:hover{
+	background-position: -22px 0;
+} 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/css/common.css	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,685 @@
+body{
+	background-color: #e9ecf0;
+	height: 100%;
+}
+a{
+	color:#000;
+}
+.wrap{
+	min-height:100%;
+	background-color: #FFF;
+	width: 960px;
+	margin: 0 auto;
+	font-family: "Times New Roman";
+	font-size: 13px;
+	-moz-box-shadow: 0 0 14px 5px #888;
+  	-webkit-box-shadow: 0 0 14px 5px #888;
+  	box-shadow: 0 0 14px 5px #888;
+  	padding-bottom: 16px;
+  	height: 100%;
+}
+/* header */
+.header{
+	position: relative;
+	height: 128px;
+	margin-bottom: 1px;
+}
+.header-name {
+    background: url("../images/mister.png") no-repeat scroll 2px 1px transparent;
+    color: #187DA7;
+    font-weight: 900;
+    padding: 0 0 12px 20px;
+}
+/* header > logo */
+.logo{
+	width: 164px;
+	height: 105px;
+	background: url(../img/back-logo.png) 0 0 no-repeat;
+	top: 0;
+	left: 66px;
+	position: absolute;
+}
+.logo .date{
+    height: 66px;
+    left: 93px;
+    position: absolute;
+    text-align: center;
+    top: 4px;
+    width: 47px;
+}
+.logo .date .year{
+	font-size: 40px; 
+	display: block;
+}
+.logo .date .text{
+	font-size: 10px;
+	display: block;
+}
+/* header > recherche-wrap */
+.recherche-wrap{
+	position: absolute;
+	left: 324px;
+	padding-top: 10px;
+}
+.recherche-wrap h1{
+	margin-bottom: 4px;
+}
+
+.recherche-wrap .input-recherche{
+	width: 218px;
+	height: 24px;
+	padding: 0 30px 0 6px;
+	border: 1px solid black;
+	margin-right: 2px;
+}
+.recherche-wrap p input, .recherche-wrap p a{
+	float: left;
+}
+.recherche-wrap form p{
+	position: relative;
+}
+.recherche-wrap form p .photo{
+	position: absolute;
+	width: 18px;
+	height: 18px;
+	background: url(../img/photo.jpg) no-repeat 2px 4px;
+	left: 230px;
+	top: 2px;
+	z-index: 2;
+}
+.recherche-wrap .recherche-submit{
+	width: 54px;
+	height: 26px;
+	cursor: pointer;
+	border: none;
+	margin-right: 6px;
+	background-color: #000;
+	background-image: url(../img/zoom-button.png);
+	background-repeat: no-repeat;
+	background-position: 20px 6px;
+}
+.plus-button{
+	width: 30px;
+	height: 26px;
+	display: block;
+	background-color: #000;
+	background-image: url(../img/plus-button.png);
+	background-repeat: no-repeat;
+	background-position: 8px 6px;
+}
+.plus-button:hover, .recherche-submit:hover{
+	background-color: #333;
+}
+/* header > header-menu */
+.header-menu{
+	background: url(../img/bg-nav-left.png) repeat-x 0 0;
+	position: absolute;
+	height: 39px;
+	top: 89px;
+	width: 716px;
+	left: -2px;
+}
+.header-menu li{
+	float: left;
+	line-height: 28px;
+	padding: 8px 10px 0 10px;
+}
+.header-menu li .home{
+	width: 28px;
+	height: 28px;
+	display: block;
+	background:url(../img/home-sprite.png) 0 -28px no-repeat;
+}
+.header-menu li .home:hover{
+	background-position: 0 0;
+}
+.header-menu li a{
+	font-size: 16px;
+	color: #e4e36e;
+	text-decoration: none;
+}
+.header-menu li a:hover{
+	color: #FFF;
+}
+/* header > login-wrap */
+.login-wrap{
+	padding-top: 10px;
+	position: absolute;
+	left: 727px;
+}
+.login-wrap form p, .login-wrap h2{
+	margin-bottom: 4px;
+}
+.login-wrap input{
+	width: 160px;
+	height: 19px;
+	border: 1px solid #656565;
+	line-height: 19px;
+	padding: 0 3px;
+}
+.login-wrap .submit-wrap input{
+	float: left;
+}
+.login-wrap .password{
+	width: 134px;
+}
+.login-wrap .submit-button{
+	background-color: #000;
+	color: #FFF;
+	height: 21px;
+	width: auto;
+	cursor: pointer;
+	border: none;
+}
+.login-wrap .submit-button:hover{
+	background-color: #333;
+}
+.password-lost{
+	padding-left: 18px;
+}
+.password-lost a {
+	color: #000;
+	text-decoration: none;
+	font-size: 10px;
+}
+.password-lost a:hover{
+	text-decoration: underline;
+}
+/* dossier-documentaire */
+.dossier-documentaire{
+	padding: 0 6px;
+	position: absolute;
+	left: 714px;
+	top:128px;
+	z-index: 10;background-color:rgba(0,125,173,.8);
+}
+.dossier-documentaire-inner{
+	padding: 12px 4px;
+	width: 224px;background: url(../img/documentaire-bg.jpg);
+}
+.dossier-documentaire h2{
+	height: 18px;
+	line-height: 18px;
+	color: #FFF;
+	border-bottom: 1px solid #FFF;
+}
+.dossier-documentaire ul{
+	padding: 6px 0;
+}
+.dossier-documentaire ul li{
+	width: 224px;
+}
+.dossier-documentaire ul li a{
+	display: block;
+	overflow: auto;
+	padding: 1px 0;
+}
+.dossier-documentaire ul li a:hover{
+ 	background-color:rgba(221,221,221,.6);
+}
+.dossier-documentaire .documentaire-texte, .dossier-documentaire img{
+	float: left;	
+}
+.dossier-documentaire img{
+	margin-right: 6px;
+}
+.dossier-documentaire .documentaire-texte{
+	color: #FFF;
+	max-width: 142px;
+	display: block;
+}
+.documentaire-texte h3{
+	font-weight: bold;
+	margin-bottom: 2px;
+}
+.documentaire-texte p{
+	font-size: 11px;
+}
+.documentaire-lien {
+	width: 168px;
+	display: block;
+	height: 16px;
+	background-image: url(../img/documentaire-lien.jpg);
+	background-repeat: no-repeat;
+	background-position: 0 0;
+	width: 225px;
+	margin-bottom: 10px;
+}
+.documentaire-lien:hover{
+	background-position: 0 -16px;
+}
+.dossier-button{
+	background: url("../img/dossier-icon.jpg") no-repeat scroll 6px 5px #007DAD;
+    color: #FFFFFF;
+    height: 27px;
+    left: 714px;
+    line-height: 27px;
+    padding-left: 40px;
+    position: absolute;
+    text-decoration: none;
+    top: 101px;
+    width: 208px;
+}
+.dossier-button:hover{
+	color: #ddd;
+}
+/* content-wrap */
+.content-wrap{
+	width:950px;
+	padding: 0 5px;
+}
+/* content-wrap > frise */
+.frise{
+	background: #333;
+	height: 114px;
+    position: relative;
+}
+.streamgraph {
+    position: absolute; left: 0; width: 100%; top: 0; height: 100%;
+    background: #fff;
+}
+.frise .ui-slider-horizontal {
+    height: 20px;
+    position: absolute;
+    width: 100%;
+    bottom: 0;
+    background: none repeat scroll 0 0 transparent;
+   	border: none;
+    -webkit-border-radius: 0;
+  	-moz-border-radius: 0;
+  	border-radius: 0;
+}
+.frise  .ui-slider-horizontal .ui-slider-handle{
+	top: inherit;
+	bottom: 0;
+}
+.frise .ui-slider-horizontal .ui-slider-range{
+	background: none repeat scroll 0 0 transparent;
+}
+.ui-slider-handle.ui-state-default.ui-corner-all{
+	cursor: pointer;
+	width: 19px;
+	height: 28px;
+	background: url(../img/frise-cursor.png) -1px 0 no-repeat;
+	border: none;
+	-webkit-border-radius: 0;
+  	-moz-border-radius: 0;
+  	border-radius: 0;
+}
+/* content-wrap > cluster */
+.cluster-containment{
+	position: absolute;
+	height: 22px;
+}
+.cluster-wrap{
+	position: relative;
+	height: 22px;
+	border-top: 1px solid #313131;
+	border-bottom: 1px solid #313131;
+	margin-bottom: 1px;
+}
+.cluster-visible{
+	left: 20px;
+	position: absolute;
+	width: 912px;
+	margin: 0 auto;
+	height: 22px;
+	overflow: hidden;
+}
+.cluster li:first-child{
+	background: none;
+}
+.cluster li{
+	padding-top: 4px;
+	float: left;
+	padding: 2px 4px 0 6px;
+	line-height: 22px;
+	background: url(../img/cluster-item-bar.jpg) no-repeat 0 6px;
+}
+.cluster li a{
+	padding: 0 16px;
+	text-decoration: none;
+	color: #000;
+	font-style: italic;
+	height: 18px;
+	line-height: 18px;
+	display: block;
+}
+.cluster li a:hover{
+	background-color: #c51810;
+	color: #FFF;
+}
+
+.cluster-arrow{
+	z-index: 2;
+	position: absolute;
+	width: 19px;
+	height: 22px;
+	display: block;
+	background: url(../img/cluster-arrows.png) no-repeat;
+}
+.cluster-arrow.arrow-right{
+	right: 0;
+	background: url(../img/cluster-arrows.png) no-repeat -19px 0;
+}
+.cluster-arrow.arrow-right:hover{
+	background-position: -19px -22px;
+}
+.cluster-arrow.arrow-right:active{
+	background-position: -19px -44px;
+}
+.cluster-arrow.arrow-left:hover{
+	background-position: 0 -22px;
+}
+.cluster-arrow.arrow-left:active{
+	background-position: 0 -44px;
+}
+/* content */
+.content{
+	height: 100%;
+	width: 950px;
+	border-top:2px solid #c51810;
+	border-bottom:2px solid #c51810;
+	padding: 1px 0;
+
+}
+.content-left,.content-right{
+	float: left;
+}
+/* content > content-right */
+.content-right{
+	width: 761px;
+	padding-left: 1px;
+}
+/* content > content-left */
+.content-left{
+	width: 188px;
+}
+.content-left h2{
+	padding: 10px 0 10px 10px;
+	font-size: 26px;
+	line-height: 26px;
+	border-bottom: 1px solid #c51810;
+	margin-bottom: 1px;
+	width: 176px;
+}
+.widget-wrapper{
+	background: url(../img/border-dotted.png) repeat-y 187px 0 #eeeeee;
+	padding-right: 2px;
+}
+.widget-wrap{
+	height: 100%;
+	min-height: 320px;
+	padding: 14px 0;
+	
+	border: 5px solid #e0dde0;
+}
+.widget-wrap .widget{
+	width: 160px;
+	margin: 0 auto;
+}
+.widget-wrap .widget h3{
+	padding: 2px 0;
+	border-bottom: 1px solid  #c51810;
+	margin-bottom: 4px;
+}
+.widget-wrap .widget h3 a{
+	font-size: 16px;
+	text-decoration: none;
+	color : #c51810;
+	padding-left: 12px;
+	background-position: 0px 6px;
+	background-repeat: no-repeat;
+	background-image: url(../img/dossier-title-arrow-hide.jpg);
+
+}
+.widget-wrap .widget h3 .open{
+	background-position: 0px 7px;
+	background-image: url(../img/dossier-title-arrow-show.jpg);
+}
+/* content-left > header-documentaire */
+.content-wrap .header-documentaire{
+	height: 34px;
+	width: 100%;
+	padding-bottom: 1px;
+	border-bottom: 4px solid #313131;
+}
+.header-documentaire .retour{
+	padding-left: 12px;
+	display: block;
+	line-height: 34px;
+	font-size: 24px;
+	background-color: #007dad;
+	color: #FFF;
+	width: 176px;
+	text-decoration: none;
+}
+.header-documentaire .retour:hover{
+	background-color: #4fa3c4;
+}
+.header-documentaire h2{
+	padding-left: 50px;
+	background: url(../img/header-documentaire-titre-icon.jpg) no-repeat 12px 6px;
+	color: #007dad;
+	font-size: 24px;
+	line-height: 34px;
+}
+
+.header-documentaire .retour, .header-documentaire h2{
+	float: left;
+}
+/* widget (blue) */
+.documentaire.content-left .widget-wrap{
+	background-color: #4fa3c4;
+	border: 5px solid #007dad;
+	color: #FFF;
+}
+.documentaire.content-left .widget h3{
+	border-bottom: 1px solid #000;
+}
+.documentaire.content-left .widget h3 a,
+.documentaire.content-left .widget-inner .filtre-date label,
+.documentaire.content-left .widget-inner h4, 
+.documentaire.content-left .widget-inner a{
+	color: #FFF;
+}
+.content-left.documentaire .widget-wrap .widget h3 a{
+	background-image: url(../img/dossier-documentaire-title-arrow-hide.jpg);
+}
+.content-left.documentaire .widget-wrap .widget h3 .open{
+	background-image: url(../img/dossier-documentaire-title-arrow-show.jpg);
+}
+/* widget */
+.widget-inner{
+	padding: 8px 0 8px 16px;
+}
+.widget-inner h4{
+	color: #c51810;
+	padding: 5px 0;
+}
+.widget-inner form p{
+	margin-bottom: 4px;
+}
+.widget-inner .filtre-date label{
+	color: #0000;
+	width:26px;
+	display: inline-block;
+}
+.widget-inner .filtre-date input[type=text]{
+	width: 90px;
+	height: 12px;
+	border: 1px solid #828282;
+}
+.widget-inner .filtre-categorie p{
+	margin-bottom: 8px;
+}
+.widget-inner .filtre-categorie input[type=checkbox]{
+	margin: 0 10px 0 0;
+}
+.widget.links .widget-inner a{
+	color: #000;
+}
+.widget.links .widget-inner a:hover{
+	text-decoration: none;
+}
+.widget.links .widget-inner ul{
+	padding-left: 16px;
+}
+.widget.links .widget-inner ul li{
+	margin-bottom: 4px;
+	list-style-image: url(../img/widget-list-item.jpg);
+}
+.widget.affichage li a .visuel{
+	width: 39px;
+	height: 36px;
+	display: block;
+	background-position: 0 0;
+	background-repeat: none;
+	margin-bottom: 4px;
+}
+.widget.affichage li{
+	float: left;
+	margin-right: 24px;
+}
+.widget.affichage li .treemap .visuel{
+	background-image: url(../img/treemap-sprite.jpg);
+}
+.widget.affichage li .liste .visuel{
+	background-image: url(../img/liste-sprite.jpg);
+
+}
+.widget.affichage .liste span, .widget.affichage .treemap span	{
+	text-align: center;
+	display: block;
+	font-size: 11px;
+}
+.treemap:hover .visuel, .treemap:hover .visuel{
+	background-position: 0 -36px;
+}
+.widget.affichage .liste:hover .visuel, .widget.affichage .treemap.active .visuel{
+	background-position: 0 -36px;
+}
+.widget.affichage li a{
+	text-decoration: none;
+	font-size: 12px;
+	color: #C51810;
+}
+.widget.recherche input[type=text]{
+	float: left;
+	width: 100px;
+	height: 17px;
+	padding: 0 2px;
+	border: 1px solid #828282;
+	margin-right: 6px;
+}
+.widget.recherche input[type=submit]{
+	float: left;
+	width: 20px;
+	height: 18px;
+	background-image: url(../img/widget-button-recherche.jpg);
+	background-repeat: no-repeat;
+	border:none;
+	cursor: pointer;
+}
+.widget.recherche input[type=submit]:hover{
+	background-position: -20px 0;
+}
+/* datepicker */
+.ui-datepicker.ui-widget.ui-widget-content.ui-helper-clearfix.ui-corner-all{
+	font-size: 13px;
+}
+/* footer */
+.footer{
+	padding: 16px 0;
+	font-size: 12px;
+}
+.footer a:hover{
+	text-decoration: none;
+}
+.footer h2{
+	font-size: 20px;
+	margin-bottom: 10px;
+}
+.footer-information, .footer-raccourci ,.footer-partenaire{
+	float: left;
+}
+.footer-information {
+	width: 180px;
+	padding-left: 6px;
+	margin-right: 16px;
+}
+.footer-raccourci{
+	width: 220px;
+	margin-right: 16px;
+}
+.footer li{
+	margin-bottom: 4px;
+}
+.footer-partenaire{
+	margin-right: 12px;
+}
+.footer-partenaire li{
+	height: 55px;
+	float: left;
+	margin-right: 12px;
+	line-height: 55px;
+}
+.footer-partenaire li a{
+	overflow: hidden;
+	display: inline-block;
+	vertical-align: middle;
+}
+.footer-partenaire li a img{
+	vertical-align: middle;
+}
+.footer-partenaire .iri{
+	width: 90px;
+	height: 38px;
+	background: url(../img/logo-iri.png) 0 -38px no-repeat;
+}
+.footer-partenaire .alcatel{
+	width: 135px;
+	height: 29px;
+	background: url(../img/logo-alcatel.png) 0 -29px no-repeat;
+}
+.footer-partenaire .cea{
+	width: 50px;
+	height: 41px;
+	background: url(../img/logo-cea.png) 0 -41px no-repeat;
+}
+
+.footer-partenaire a:hover{
+	background-position: 0 0;
+}
+
+.footer-texte{
+	float: left;
+	padding-top: 30px;
+	width: 180px;
+}
+.copyright{
+	background-color: #eeeeee;
+	height: 18px;
+	width: 100%;
+	line-height: 18px;
+	text-align: center;
+}
+.copyright a{
+	text-decoration: none;
+}
+.copyright a:hover{
+	text-decoration: underline;
+}
+/*pagination*/
+.pagination{
+	height: 35px;
+	line-height: 35px;
+	text-align: center;
+	clear: both;
+	font-size: 18px;
+	border-bottom: 1px solid #E0DDE0;
+	margin-bottom: 10px;
+}
+.pagination .active,.pagination a:hover{
+	text-decoration: none;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/css/dossiers.css	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,141 @@
+/* dossier-similaire */
+.dossier-similaire{
+	padding-top: 22px;
+	width: 204px;
+	float: left;
+}
+.dossier-similaire .widget{
+	margin-bottom: 10px;
+}
+.dossier-similaire .widget h3{
+	border-bottom: 1px solid #007dad;
+	padding-bottom: 2px;
+
+}
+.dossier-similaire .widget h3 a{
+	font-size: 14px;
+	color: #007dad;
+	display: block;
+	background: url(../img/dossier-similaire-title-hide.jpg) no-repeat 2px 4px;
+	padding-left: 14px;
+	text-decoration: none;
+}
+.dossier-similaire .widget h3 .open{
+	background: url(../img/dossier-similaire-title-show.jpg) no-repeat 2px 4px;
+}
+.dossier-similaire .widget ul{
+	padding-left: 20px;
+}
+.dossier-similaire .widget li{
+	color: #313131;
+	margin-bottom: 4px;
+	list-style-image: url(../img/documentaire-widget-list-item.jpg);
+}
+.dossier-similaire .widget li a{
+	color: #313131;
+}
+.dossier-similaire .widget li a:hover{
+	text-decoration: none;
+}
+/* dossiers */
+.dossiers{
+	float: left;
+	width: 525px;
+}
+.dossiers > ul{
+	border-bottom: 1px solid #e0dde0;
+}
+.item-dossier:first-child{
+	border-top: none;
+}
+.item-dossier{
+	padding-top: 8px;
+	border-top: 1px solid #e0dde0;
+}
+.item-dossier:hover{
+	background-color: #f3f1f3;
+}
+.dossiers{
+	padding: 10px 0 0 14px;
+}
+.dossier-col-left, .dossier-col-right{
+	float: left;
+}
+/*item left*/
+.dossier-content{
+	padding-bottom: 10px;
+}
+.dossier-col-left{
+	width: 294px;
+	margin-right: 6px;
+}
+.dossier-col-left h2{
+	margin-bottom: 6px;
+}
+.dossier-col-left h2 a{
+	text-decoration: none;
+	font-size: 22px; 
+}
+.dossier-col-left h2 a:hover{
+	color: #C51810;
+}
+.dossier-content img{
+	float: left;
+	margin: 0 8px 8px 0;
+}
+/*item right*/
+li.item-dossier .dossier-col-right{
+	width: 200px;
+}
+
+li.item-dossier .dossier-col-right ul.links{
+	padding-left: 20px;
+}
+li.item-dossier .dossier-col-right ul.links li {
+    list-style-image: url("../img/article-link-arrow.png");
+    margin-bottom: 1px;
+}
+li.item-dossier .dossier-col-right ul.links li a:hover{
+	text-decoration: none;
+}
+
+li.item-dossier .dossier-col-right h3{
+	color: #C51810;
+	margin-bottom: 6px;
+}
+li.item-dossier .dossier-col-right ul.annotations{
+	float: right;
+
+}
+li.item-dossier .dossier-col-right ul.annotations li a{
+	width: 20px;
+	height: 20px;
+	background-image: url(../img/dossier-annotation-sprite.png);
+	background-repeat: no-repeat;
+	display: block;
+
+}
+li.item-dossier .dossier-col-right ul.annotations li a.share{
+	background-position: -6px -2px;
+}
+li.item-dossier .dossier-col-right ul.annotations li a.share:hover{
+	background-position: -36px -2px;
+}
+li.item-dossier .dossier-col-right ul.annotations li a.favorite{
+	background-position: -6px -21px;
+}
+li.item-dossier .dossier-col-right ul.annotations li a.favorite:hover{
+	background-position: -36px -21px;
+}
+li.item-dossier .dossier-col-right ul.annotations li a.trash{
+	background-position: -7px -41px;
+}
+li.item-dossier .dossier-col-right ul.annotations li a.trash:hover{
+	background-position: -37px -41px;
+}
+li.item-dossier .dossier-col-right ul.annotations li a.edit{
+	background-position: -7px -60px;
+}
+li.item-dossier .dossier-col-right ul.annotations li a.edit:hover{
+	background-position: -37px -60px;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/css/home.css	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,144 @@
+/* actu */
+.actu {
+	float: left;
+	position: relative;
+}
+.inner-actu{
+	width: 100%;
+	background-color:rgba(0,0,0,.7);
+	height: 40px;
+	position: absolute;
+	bottom: 0;
+}
+.inner-actu h2{
+	color: #FFF;
+	line-height: 40px;
+	font-size: 24px;
+	padding-left: 10px;
+}
+.inner-actu h2 a{
+	color: #FFF;
+	text-decoration: none;
+}
+.links{
+	display: none;
+	position: absolute;
+	bottom: 0;
+	right: 0;
+}
+.actu:hover .links{
+	display: block;
+}
+.links li{
+	float: left;
+	margin: 0 0 1px 1px;
+}
+.links a{
+	display: block;
+	width: 28px;
+	height: 28px;
+	background-color: #007dad;
+	background-repeat: no-repeat;
+}
+.links a:hover{
+	background-color: #4FA3C4;
+}
+.links a.trash{
+	background-image: url(../img/home-button-trash.png);
+	background-position: 8px 5px;
+}
+.links a.file{
+	background-image: url(../img/home-button-file.png);
+	background-position: 2px 6px;
+	text-decoration: none; 
+	position: relative;
+}
+.links a.file span{
+    color: #0F85B2;
+    display: block;
+    font-size: 11px;
+    left: 8px;
+    position: absolute;
+    text-align: center;
+    top: 6px;
+    width: 18px;
+}
+.links a.comment{
+	background-image: url(../img/home-button-comment.png);
+	background-position: 4px 6px;
+}
+/* treemap */
+.actus{
+	position: relative;
+}/*
+.actu{
+	position: absolute;
+	overflow: hidden;
+	float: none;
+}*/
+
+/* Home Actus */
+div.actu {
+	float: left;
+	position: relative;
+}
+div.actu div.inner-actu{
+	width: 100%;
+	background-color:rgba(0,0,0,.7);
+	height: 40px;
+	position: absolute;
+	bottom: 0;
+}
+div.actu div.inner-actu h2{
+	color: #FFF;
+	line-height: 40px;
+	font-size: 24px;
+	padding-left: 10px;
+}
+div.actu div.inner-actu h2 a{
+	color: #FFF;
+	text-decoration: none;
+}
+div.actu div.inner-actu div.links{
+	position: absolute;
+	bottom: 0;
+	right: 0;
+}
+div.actu div.links ul li{
+	float: left;
+	margin: 0 0 1px 1px;
+}
+div.actu div.links ul li a{
+	display: block;
+	width: 28px;
+	height: 28px;
+	background-color: #007dad;
+	background-repeat: no-repeat;
+}
+div.actu div.links ul li a:hover{
+	background-color: #4FA3C4;
+}
+div.actu div.links ul li a.trash{
+	background-image: url(../img/home-button-trash.png);
+	background-position: 8px 5px;
+}
+div.actu div.links ul li a.file{
+	background-image: url(../img/home-button-file.png);
+	background-position: 2px 6px;
+	text-decoration: none; 
+	position: relative;
+}
+div.actu div.links ul li a.file span{
+    color: #0F85B2;
+    display: block;
+    font-size: 11px;
+    left: 8px;
+    position: absolute;
+    text-align: center;
+    top: 6px;
+    width: 18px;
+}
+div.actu div.links ul li a.comment{
+	background-image: url(../img/home-button-comment.png);
+	background-position: 4px 6px;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/css/reset.css	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,69 @@
+/* http://meyerweb.com/eric/tools/css/reset/ 
+   v2.0 | 20110126
+   License: none (public domain)
+*/
+
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, embed, 
+figure, figcaption, footer, header, hgroup, 
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	font-size: 100%;
+	font: inherit;
+	vertical-align: baseline;
+}
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure, 
+footer, header, hgroup, menu, nav, section {
+	display: block;
+}
+body {
+	line-height: 1;
+}
+ol, ul {
+	list-style: none;
+}
+blockquote, q {
+	quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+	content: '';
+	content: none;
+}
+table {
+	border-collapse: collapse;
+	border-spacing: 0;
+}
+
+.clearfix:after {
+	content: ".";
+	display: block;
+	clear: both;
+	visibility: hidden;
+	line-height: 0;
+	height: 0;
+}
+ 
+.clearfix {
+	display: inline-block;
+}
+ 
+html[xmlns] .clearfix {
+	display: block;
+}
+ 
+* html .clearfix {
+	height: 1%;
+}
\ No newline at end of file
Binary file alcatel/static/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png has changed
Binary file alcatel/static/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png has changed
Binary file alcatel/static/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png has changed
Binary file alcatel/static/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png has changed
Binary file alcatel/static/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png has changed
Binary file alcatel/static/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png has changed
Binary file alcatel/static/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png has changed
Binary file alcatel/static/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png has changed
Binary file alcatel/static/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png has changed
Binary file alcatel/static/css/ui-lightness/images/ui-icons_222222_256x240.png has changed
Binary file alcatel/static/css/ui-lightness/images/ui-icons_228ef1_256x240.png has changed
Binary file alcatel/static/css/ui-lightness/images/ui-icons_ef8c08_256x240.png has changed
Binary file alcatel/static/css/ui-lightness/images/ui-icons_ffd27a_256x240.png has changed
Binary file alcatel/static/css/ui-lightness/images/ui-icons_ffffff_256x240.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/css/ui-lightness/jquery-ui-1.8.24.custom.css	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,563 @@
+/*!
+ * jQuery UI CSS Framework 1.8.24
+ *
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
+.ui-helper-clearfix:after { clear: both; }
+.ui-helper-clearfix { zoom: 1; }
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*!
+ * jQuery UI CSS Framework 1.8.24
+ *
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; }
+.ui-widget .ui-widget { font-size: 1em; }
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; }
+.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
+.ui-widget-content a { color: #333333; }
+.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
+.ui-widget-header a { color: #ffffff; }
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; }
+.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; }
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; }
+.ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
+.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
+.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
+.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
+.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
+.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.ui-priority-secondary, .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
+.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
+.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); }
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
+.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
+.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); }
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); }
+
+/* positioning */
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-off { background-position: -96px -144px; }
+.ui-icon-radio-on { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
+.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
+.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
+.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
+
+/* Overlays */
+.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
+.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/*!
+ * jQuery UI Resizable 1.8.24
+ *
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.ui-resizable { position: relative;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; }
+.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*!
+ * jQuery UI Selectable 1.8.24
+ *
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*!
+ * jQuery UI Accordion 1.8.24
+ *
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.ui-accordion { width: 100%; }
+.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.ui-accordion .ui-accordion-li-fix { display: inline; }
+.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.ui-accordion .ui-accordion-content-active { display: block; }
+/*!
+ * jQuery UI Autocomplete 1.8.24
+ *
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.24
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.ui-menu .ui-menu-item a.ui-state-hover,
+.ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*!
+ * jQuery UI Button 1.8.24
+ *
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
+.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; } 
+
+/*button text element */
+.ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.ui-buttonset { margin-right: 7px; }
+.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*!
+ * jQuery UI Dialog 1.8.24
+ *
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*!
+ * jQuery UI Slider 1.8.24
+ *
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.ui-slider { position: relative; text-align: left; }
+.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.ui-slider-horizontal { height: .8em; }
+.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.ui-slider-vertical { width: .8em; height: 100px; }
+.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.ui-slider-vertical .ui-slider-range-max { top: 0; }/*!
+ * jQuery UI Tabs 1.8.24
+ *
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.ui-tabs .ui-tabs-hide { display: none !important; }
+/*!
+ * jQuery UI Datepicker 1.8.24
+ *
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.ui-datepicker .ui-datepicker-prev { left:2px; }
+.ui-datepicker .ui-datepicker-next { right:2px; }
+.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.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-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;  }
+.ui-datepicker td { border: 0; padding: 1px; }
+.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi { width:auto; }
+.ui-datepicker-multi .ui-datepicker-group { float:left; }
+.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.ui-datepicker-rtl { direction: rtl; }
+.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.ui-datepicker-cover {
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*!
+ * jQuery UI Progressbar 1.8.24
+ *
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
Binary file alcatel/static/css/ui-red/images/ui-bg_diagonals-thick_75_f3d8d8_40x40.png has changed
Binary file alcatel/static/css/ui-red/images/ui-bg_dots-small_65_a6a6a6_2x2.png has changed
Binary file alcatel/static/css/ui-red/images/ui-bg_flat_0_333333_40x100.png has changed
Binary file alcatel/static/css/ui-red/images/ui-bg_flat_65_ffffff_40x100.png has changed
Binary file alcatel/static/css/ui-red/images/ui-bg_flat_75_ffffff_40x100.png has changed
Binary file alcatel/static/css/ui-red/images/ui-bg_glass_55_fbf8ee_1x400.png has changed
Binary file alcatel/static/css/ui-red/images/ui-bg_highlight-hard_100_eeeeee_1x100.png has changed
Binary file alcatel/static/css/ui-red/images/ui-bg_highlight-hard_100_f6f6f6_1x100.png has changed
Binary file alcatel/static/css/ui-red/images/ui-bg_highlight-soft_15_cc0000_1x100.png has changed
Binary file alcatel/static/css/ui-red/images/ui-icons_004276_256x240.png has changed
Binary file alcatel/static/css/ui-red/images/ui-icons_cc0000_256x240.png has changed
Binary file alcatel/static/css/ui-red/images/ui-icons_ffffff_256x240.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/css/ui-red/jquery-ui.css	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.9.0 - 2012-10-23
+* http://jqueryui.com
+* Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=cc0000&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=15&borderColorHeader=e3a1a1&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=eeeeee&fcContent=333333&iconColorContent=cc0000&bgColorDefault=eeeeee&bgTextureDefault=04_highlight_hard.png&bgImgOpacityDefault=100&borderColorDefault=d8dcdf&fcDefault=004276&iconColorDefault=cc0000&bgColorHover=f6f6f6&bgTextureHover=04_highlight_hard.png&bgImgOpacityHover=100&borderColorHover=cdd5da&fcHover=111111&iconColorHover=cc0000&bgColorActive=ffffff&bgTextureActive=01_flat.png&bgImgOpacityActive=65&borderColorActive=eeeeee&fcActive=cc0000&iconColorActive=cc0000&bgColorHighlight=fbf8ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcd3a1&fcHighlight=444444&iconColorHighlight=004276&bgColorError=f3d8d8&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=75&borderColorError=cc0000&fcError=2e2e2e&iconColorError=cc0000&bgColorOverlay=a6a6a6&bgTextureOverlay=09_dots_small.png&bgImgOpacityOverlay=65&opacityOverlay=40&bgColorShadow=333333&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=10&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+* Copyright (c) 2012 jQuery Foundation and other contributors Licensed MIT */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px);clip:rect(1px,1px,1px,1px)}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{zoom:1}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;zoom:1}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.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}* html .ui-autocomplete{width:1px}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;cursor:pointer;text-align:center;zoom:1;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:1.4}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.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-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}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0em}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right}.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-cover{position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px}.ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;width:100%}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;zoom:1;font-weight:normal}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px}.ui-menu .ui-state-disabled{font-weight:normal;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;z-index:100;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}span.ui-spinner{background:none}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em;zoom:1}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-tabs-loading a{cursor:text}.ui-tabs .ui-tabs-nav li a,.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;-o-box-shadow:0 0 5px #aaa;-moz-box-shadow:0 0 5px #aaa;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}* html .ui-tooltip{background-image:none}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #eee;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #e3a1a1;background:#c00 url(images/ui-bg_highlight-soft_15_cc0000_1x100.png) 50% 50% repeat-x;color:#fff;font-weight:bold}.ui-widget-header a{color:#fff}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d8dcdf;background:#eee url(images/ui-bg_highlight-hard_100_eeeeee_1x100.png) 50% 50% repeat-x;font-weight:bold;color:#000}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#004276;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #cdd5da;background:#f6f6f6 url(images/ui-bg_highlight-hard_100_f6f6f6_1x100.png) 50% 50% repeat-x;font-weight:bold;color:#111}.ui-state-hover a,.ui-state-hover a:hover{color:#111;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #eee;background:#fff url(images/ui-bg_flat_65_ffffff_40x100.png) 50% 50% repeat-x;font-weight:bold;color:#c00}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#c00;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcd3a1;background:#fbf8ee url(images/ui-bg_glass_55_fbf8ee_1x400.png) 50% 50% repeat-x;color:#444}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#444}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #c00;background:#f3d8d8 url(images/ui-bg_diagonals-thick_75_f3d8d8_40x40.png) 50% 50% repeat;color:#2e2e2e}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#2e2e2e}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#2e2e2e}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_cc0000_256x240.png)}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_cc0000_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_cc0000_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_cc0000_256x240.png)}.ui-state-active .ui-icon{background-image:url(images/ui-icons_cc0000_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_004276_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cc0000_256x240.png)}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:6px;-webkit-border-top-left-radius:6px;-khtml-border-top-left-radius:6px;border-top-left-radius:6px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:6px;-webkit-border-top-right-radius:6px;-khtml-border-top-right-radius:6px;border-top-right-radius:6px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:6px;-webkit-border-bottom-left-radius:6px;-khtml-border-bottom-left-radius:6px;border-bottom-left-radius:6px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:6px;-webkit-border-bottom-right-radius:6px;-khtml-border-bottom-right-radius:6px;border-bottom-right-radius:6px}.ui-widget-overlay{background:#a6a6a6 url(images/ui-bg_dots-small_65_a6a6a6_2x2.png) 50% 50% repeat;opacity:.4;filter:Alpha(Opacity=40)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#333 url(images/ui-bg_flat_0_333333_40x100.png) 50% 50% repeat-x;opacity:.1;filter:Alpha(Opacity=10);-moz-border-radius:8px;-khtml-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}
\ No newline at end of file
Binary file alcatel/static/images/back-logo.png has changed
Binary file alcatel/static/images/hollande.jpg has changed
Binary file alcatel/static/images/hollande_petit.jpg has changed
Binary file alcatel/static/images/icon_searchbox.png has changed
Binary file alcatel/static/images/img0.gif has changed
Binary file alcatel/static/images/img1.gif has changed
Binary file alcatel/static/images/img10.gif has changed
Binary file alcatel/static/images/img11.gif has changed
Binary file alcatel/static/images/img12.gif has changed
Binary file alcatel/static/images/img13.gif has changed
Binary file alcatel/static/images/img14.gif has changed
Binary file alcatel/static/images/img15.gif has changed
Binary file alcatel/static/images/img16.gif has changed
Binary file alcatel/static/images/img17.gif has changed
Binary file alcatel/static/images/img18.gif has changed
Binary file alcatel/static/images/img19.gif has changed
Binary file alcatel/static/images/img2.gif has changed
Binary file alcatel/static/images/img3.gif has changed
Binary file alcatel/static/images/img4.gif has changed
Binary file alcatel/static/images/img5.gif has changed
Binary file alcatel/static/images/img6.gif has changed
Binary file alcatel/static/images/img7.gif has changed
Binary file alcatel/static/images/img8.gif has changed
Binary file alcatel/static/images/img9.gif has changed
Binary file alcatel/static/images/logo-mediapart.png has changed
Binary file alcatel/static/images/mediapartbyperiplus.png has changed
Binary file alcatel/static/images/mister.png has changed
Binary file alcatel/static/images/sarkozy.jpg has changed
Binary file alcatel/static/images/sarkozy_petit.jpg has changed
Binary file alcatel/static/images/tableau-de-bord.png has changed
Binary file alcatel/static/images/tableau-de-bord_petit.png has changed
Binary file alcatel/static/img/article-annotations-add-comment-sprite.png has changed
Binary file alcatel/static/img/article-annotations-comment-sprite.png has changed
Binary file alcatel/static/img/article-annotations-value-sprite.png has changed
Binary file alcatel/static/img/article-link-arrow.jpg has changed
Binary file alcatel/static/img/article-link-arrow.png has changed
Binary file alcatel/static/img/back-logo.png has changed
Binary file alcatel/static/img/bg-nav-left.png has changed
Binary file alcatel/static/img/border-dotted.png has changed
Binary file alcatel/static/img/border-right-annotation-value.png has changed
Binary file alcatel/static/img/cluster-arrows.jpg has changed
Binary file alcatel/static/img/cluster-arrows.png has changed
Binary file alcatel/static/img/cluster-item-bar.jpg has changed
Binary file alcatel/static/img/documentaire-bg.jpg has changed
Binary file alcatel/static/img/documentaire-lien.jpg has changed
Binary file alcatel/static/img/documentaire-nouveau-dossier.jpg has changed
Binary file alcatel/static/img/documentaire-visuel.jpg has changed
Binary file alcatel/static/img/documentaire-widget-list-item.jpg has changed
Binary file alcatel/static/img/dossier-annotation-sprite.jpg has changed
Binary file alcatel/static/img/dossier-annotation-sprite.png has changed
Binary file alcatel/static/img/dossier-documentaire-title-arrow-hide.jpg has changed
Binary file alcatel/static/img/dossier-documentaire-title-arrow-show.jpg has changed
Binary file alcatel/static/img/dossier-icon.jpg has changed
Binary file alcatel/static/img/dossier-similaire-title-hide.jpg has changed
Binary file alcatel/static/img/dossier-similaire-title-show.jpg has changed
Binary file alcatel/static/img/dossier-title-arrow-hide.jpg has changed
Binary file alcatel/static/img/dossier-title-arrow-show.jpg has changed
Binary file alcatel/static/img/dossier-title-arrows.jpg has changed
Binary file alcatel/static/img/frise-bg.jpg has changed
Binary file alcatel/static/img/frise-cursor.png has changed
Binary file alcatel/static/img/frise.jpg has changed
Binary file alcatel/static/img/header-bg.jpg has changed
Binary file alcatel/static/img/header-documentaire-titre-icon.jpg has changed
Binary file alcatel/static/img/home-button-comment.png has changed
Binary file alcatel/static/img/home-button-file.png has changed
Binary file alcatel/static/img/home-button-trash.png has changed
Binary file alcatel/static/img/home-button.jpg has changed
Binary file alcatel/static/img/home-sprite.png has changed
Binary file alcatel/static/img/home-visuel-1.jpg has changed
Binary file alcatel/static/img/home-visuel-2.jpg has changed
Binary file alcatel/static/img/home-visuel-3.jpg has changed
Binary file alcatel/static/img/home-visuel-4.jpg has changed
Binary file alcatel/static/img/home-visuel-5.jpg has changed
Binary file alcatel/static/img/home-visuel-6.jpg has changed
Binary file alcatel/static/img/home-visuel-7.jpg has changed
Binary file alcatel/static/img/home-visuel-8.jpg has changed
Binary file alcatel/static/img/icon-rep.jpg has changed
Binary file alcatel/static/img/liste-sprite.jpg has changed
Binary file alcatel/static/img/logo-alcatel.jpg has changed
Binary file alcatel/static/img/logo-alcatel.png has changed
Binary file alcatel/static/img/logo-cea.jpg has changed
Binary file alcatel/static/img/logo-cea.png has changed
Binary file alcatel/static/img/logo-iri.jpg has changed
Binary file alcatel/static/img/logo-iri.png has changed
Binary file alcatel/static/img/mediapart-by-periplus.jpg has changed
Binary file alcatel/static/img/photo.jpg has changed
Binary file alcatel/static/img/plus-button.jpg has changed
Binary file alcatel/static/img/plus-button.png has changed
Binary file alcatel/static/img/treemap-sprite.jpg has changed
Binary file alcatel/static/img/visuel-article.jpg has changed
Binary file alcatel/static/img/widget-button-recherche.jpg has changed
Binary file alcatel/static/img/widget-list-item.jpg has changed
Binary file alcatel/static/img/zoom-button.jpg has changed
Binary file alcatel/static/img/zoom-button.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/js/base.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,48 @@
+function liste(json)
+	{
+		content = "<div class=\"articles\">";
+		
+		for (i = 0; i < json.clusters.length && i<4; i++)
+		{
+			content += "<div name=\"cluster_id\" class=\"article\" id=\""+json.clusters[i].id+"\"><div class=\"inner-article clearfix\"><h2><a title=\"Lire l\'article\" id=\""+json.clusters[i].id+"\" href=\"http://localhost:8000/documents_cluster?query_id="+json.query.query_id+"&cluster_id="+json.clusters[i].id+"&offset=0&count=10\">";
+			content += json.clusters[i].title;
+			content += "</a></h2><p class=\"number-article\"><a href=\"#\">";
+			content += json.clusters[i].documents_number;
+			content +=" articles | ";
+			content += json.clusters[i].annotations.length;
+			content += " annotations </a><a title=\"ajouter une annotation\" class=\"add-annotation\" href=\"#\"></a></p> <div class=\"article-annotations\"><a title=\"title\" class=\"blue\" href=\"#\" style=\"width:20%;\"></a><a title=\"title\" class=\"green\" href=\"#\" style=\"width:20%;\"></a><a title=\"title\" class=\"red\" href=\"#\" style=\"width:40%;\"></a><a title=\"title\" class=\"empty\" href=\"#\" style=\"width:20%;\"></a></div><div class=\"article-content\">";
+			content +="<div class=\"article-visuel-wrap\"><img class=\"article-visuel\" src=\"/static/img/visuel-article.jpg\" alt=\"\" /></div>";	 
+			content +="<p class=\"resume\">";
+			content += json.clusters[i].abstract;
+			content += "</p><ul class=\"links\"><ul>";
+			for (j = 0; j < json.clusters[i].documents.length; j++)
+			{
+				content += "<li><a href=\"\" id=\""+json.clusters[i].documents[j].id+"\">";
+				content += json.clusters[i].documents[j].title;
+				content += "</a></li>";
+			}
+			content +="</ul></ul>";
+			content +="</div></div></div>";
+		}
+		content +="</div>";
+		$("#right").empty();
+		$(content).appendTo("#right");
+	}
+	
+	
+	function treemap(json)
+	{
+		var k =1;
+		content = "<div class=\"actus\">";
+		for (i = 0; i < json.clusters.length && i<4; i++)
+		{
+			content += "<a id=\""+json.clusters[i].id+"\" href=\"http://localhost:8000/documents_cluster?query_id="+json.query.query_id+"&cluster_id="+json.clusters[i].id+"&offset=0&count=10\"><div  class=\"actu\"><img src=\"/static/img/home-visuel-"+k+".jpg\" alt=\"\" /><div class=\"inner-actu\">";
+			content += "<h2> ";
+			content += json.clusters[i].title;
+			content += "</h2></div></div></a>";
+			k++;
+		}
+		content +="</div>";
+		$("#right").empty();
+		$(content).appendTo("#right");
+	}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/js/cluster.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,99 @@
+function articles(json)
+		{
+			$("#pickeddatebegincluster").val(json.query.from_date);
+			$("#pickeddateendcluster").val(json.query.to_date);
+			$("#recherche").val(json.query.text);
+			for (j = 0; j < json.query.categories.length; j++)
+			{
+				if(json.query.categories[j] == "International")
+				{
+					alert('Inter');
+					$('input[id=categorie1]').attr('checked', true);
+				}
+				else if(json.query.categories[j] == "France")
+				{
+					alert('France');
+					$('input[id=categorie2]').attr('checked', true);
+				}
+				else if(json.query.categories[j] == "Economie")
+				{
+					alert('Economie');
+					$('input[id=categorie3]').attr('checked', true);
+				}
+				else
+				{
+					alert('Culture');
+					$('input[id=categorie4]').attr('checked', true);
+				}
+			}
+			
+
+		 	content = "<div class=\"articles\">";
+			for (i = 0; i < json.documents.length; i++)
+			{
+				content += "<div class=\"article\"><div class=\"inner-article clearfix\"><h2><a id=\""+json.documents[i].id+"\" title=\"Lire l\'article\" href=\""+json.documents[i].url_document+"\">";
+				content += json.documents[i].title;
+				content += " »</a></h2><p class=\"author\"><a href=\"#\">";
+				content += json.documents[i].date;
+				content += " </a><br/> by <a href=\"#\">";
+				content += json.documents[i].author[0].name;
+				content += "</a></p><div class=\"article-content\"><div class=\"article-visuel-wrap\"><img class=\"article-visuel\" src=\"/static/img/visuel-article.jpg\" alt=\"\" /></div><p class=\"resume\">";
+				content += json.documents[i].abstract;
+				content += " </p></div></div></div>";
+			}
+			content +="</div>";
+			$("#right").empty();
+			$(content).appendTo("#right");
+		}
+		
+$(function(){
+				
+		// Formulaire POST AJAX
+		$("#ajax3").submit( function() 
+		{
+			var urlSubmit = $(this).attr('action');
+			currentcategories = [];
+			/*var data = { 'categories' : []};*/
+			$("input:checked").each(function() {
+					/*data['categories'].push($(this).val());*/
+					currentcategories.push($(this).val());
+			});
+			currentfromdate= $("#pickeddatebegin").val();
+			currenttodate= $("#pickeddateend").val();
+						
+			$.ajax(
+			{  
+				type: "POST",
+				url: urlSubmit,
+				data      : $(this).serializeArray(),
+				success: function(data) {
+					
+					var json = jQuery.parseJSON(data);
+					
+					content = "<div class=\"articles\">";
+					for (i = 0; i < json.documents.length; i++)
+					{
+						content += "<div class=\"article\"><div class=\"inner-article clearfix\"><h2><a id=\""+json.documents[i].id+"\" title=\"Lire l\'article\" href=\""+json.documents[i].url_document+"\">";
+						content += json.documents[i].title;
+						content += " »</a></h2><p class=\"author\"><a href=\"#\">";
+						content += json.documents[i].date;
+						content += " </a><br/> by <a href=\"#\">";
+						content += json.documents[i].author[0].name;
+						content += "</a></p><div class=\"article-content\"><div class=\"article-visuel-wrap\"><img class=\"article-visuel\" src=\"/static/img/visuel-article.jpg\" alt=\"\" /></div><p class=\"resume\">";
+						content += json.documents[i].abstract;
+						content += " </p></div></div></div>";
+					}
+					content +="</div>";
+					$("#right").empty();
+					$(content).appendTo("#right");	
+				}
+			});
+			return false;
+		});
+		
+		 $('.checkbox_category').click(function(){
+			  /*var theValue = $(this).val();*/
+			 $('#ajax3').submit();
+  		});
+	
+});//jQuery
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/js/dossierdoc.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,30 @@
+function dossiers(json)
+		{
+		 	content = "<div class=\"dossiers\"><ul>";
+			for (i = 0; i < json.documentary_files.length; i++)
+			{
+				content +=  "<li class=\"item-dossier clearfix\"><div class=\"dossier-col-left\"><div class=\"header-dossier\"><h2><a  title=\"Lire l'article\" href=\"#\">";
+				content += json.documentary_files[i].title;
+				content += " »</a></h2></div><div class=\"dossier-content\"><img src=\"/static/images/";
+				content += json.documentary_files[i].url_image;
+				content += "\" alt=\"\"><p>";
+				content += json.documentary_files[i].description;
+				content += " </p></div></div><div class=\"dossier-col-right\"><ul class=\"annotations\"><li><a class=\"share\" href=\"#\"></a></li><li><a class=\"favorite\" href=\"#\"></a></li><li><a class=\"trash\" href=\"#\"></a></li><li><a class=\"edit\" href=\"#\"></a></li></ul><h3>";
+				content += json.total_count;
+				content += " articles </h3><ul class=\"links\"> <li><a href=\"#\">Financement de campagne</a></li><li><a href=\"#\">Karachi</a></li><li><a href=\"#\">Financement de campagne</a></li><li><a href=\"#\">Karachi</a></li><ul></div></li>";		
+				
+			}
+			content += " </ul><div class=\"pagination\"><a href=\"#\">Suivants »</a></div></div><div class=\"dossier-similaire\"><div class=\"widget\"><h3><a href=\"#\">DOSSIER SIMILAIRE</a></h3><div class=\"widget-inner\"><ul><li><a href=\"#\">« Election 2012 »</a> par TomeJ</li><li><a href=\"#\">« Election 2012 »</a> par TomeJ</li><li><a href=\"#\">« Election 2012 »</a> par TomeJ</li></ul></div></div><div class=\"widget\"><h3><a href=\"#\">TOUTES MES ANNOTATIONS</a></h3><div class=\"widget-inner\"><ul>";
+			for (i = 0; i < json.documentary_files.length; i++)
+			{
+				for (j = 0; j < json.documentary_files[i].annotations.length; j++)
+				{
+					content += "<li><a href=\"#\">« ";
+					content +=	json.documentary_files[i].annotations[j].text;
+					content += "»</a> par cobled</li>";		
+				}
+			}
+			content += "</ul></div></div></div></div></div>";
+			$("#right").empty();
+			$(content).appendTo("#right");
+		}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/js/lib/raphael-min.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,10 @@
+// ┌────────────────────────────────────────────────────────────────────┐ \\
+// │ Raphaël 2.1.0 - JavaScript Vector Library                          │ \\
+// ├────────────────────────────────────────────────────────────────────┤ \\
+// │ Copyright © 2008-2012 Dmitry Baranovskiy (http://raphaeljs.com)    │ \\
+// │ Copyright © 2008-2012 Sencha Labs (http://sencha.com)              │ \\
+// ├────────────────────────────────────────────────────────────────────┤ \\
+// │ Licensed under the MIT (http://raphaeljs.com/license.html) license.│ \\
+// └────────────────────────────────────────────────────────────────────┘ \\
+
+(function(a){var b="0.3.4",c="hasOwnProperty",d=/[\.\/]/,e="*",f=function(){},g=function(a,b){return a-b},h,i,j={n:{}},k=function(a,b){var c=j,d=i,e=Array.prototype.slice.call(arguments,2),f=k.listeners(a),l=0,m=!1,n,o=[],p={},q=[],r=h,s=[];h=a,i=0;for(var t=0,u=f.length;t<u;t++)"zIndex"in f[t]&&(o.push(f[t].zIndex),f[t].zIndex<0&&(p[f[t].zIndex]=f[t]));o.sort(g);while(o[l]<0){n=p[o[l++]],q.push(n.apply(b,e));if(i){i=d;return q}}for(t=0;t<u;t++){n=f[t];if("zIndex"in n)if(n.zIndex==o[l]){q.push(n.apply(b,e));if(i)break;do{l++,n=p[o[l]],n&&q.push(n.apply(b,e));if(i)break}while(n)}else p[n.zIndex]=n;else{q.push(n.apply(b,e));if(i)break}}i=d,h=r;return q.length?q:null};k.listeners=function(a){var b=a.split(d),c=j,f,g,h,i,k,l,m,n,o=[c],p=[];for(i=0,k=b.length;i<k;i++){n=[];for(l=0,m=o.length;l<m;l++){c=o[l].n,g=[c[b[i]],c[e]],h=2;while(h--)f=g[h],f&&(n.push(f),p=p.concat(f.f||[]))}o=n}return p},k.on=function(a,b){var c=a.split(d),e=j;for(var g=0,h=c.length;g<h;g++)e=e.n,!e[c[g]]&&(e[c[g]]={n:{}}),e=e[c[g]];e.f=e.f||[];for(g=0,h=e.f.length;g<h;g++)if(e.f[g]==b)return f;e.f.push(b);return function(a){+a==+a&&(b.zIndex=+a)}},k.stop=function(){i=1},k.nt=function(a){if(a)return(new RegExp("(?:\\.|\\/|^)"+a+"(?:\\.|\\/|$)")).test(h);return h},k.off=k.unbind=function(a,b){var f=a.split(d),g,h,i,k,l,m,n,o=[j];for(k=0,l=f.length;k<l;k++)for(m=0;m<o.length;m+=i.length-2){i=[m,1],g=o[m].n;if(f[k]!=e)g[f[k]]&&i.push(g[f[k]]);else for(h in g)g[c](h)&&i.push(g[h]);o.splice.apply(o,i)}for(k=0,l=o.length;k<l;k++){g=o[k];while(g.n){if(b){if(g.f){for(m=0,n=g.f.length;m<n;m++)if(g.f[m]==b){g.f.splice(m,1);break}!g.f.length&&delete g.f}for(h in g.n)if(g.n[c](h)&&g.n[h].f){var p=g.n[h].f;for(m=0,n=p.length;m<n;m++)if(p[m]==b){p.splice(m,1);break}!p.length&&delete g.n[h].f}}else{delete g.f;for(h in g.n)g.n[c](h)&&g.n[h].f&&delete g.n[h].f}g=g.n}}},k.once=function(a,b){var c=function(){var d=b.apply(this,arguments);k.unbind(a,c);return d};return k.on(a,c)},k.version=b,k.toString=function(){return"You are running Eve "+b},typeof module!="undefined"&&module.exports?module.exports=k:typeof define!="undefined"?define("eve",[],function(){return k}):a.eve=k})(this),function(){function cF(a){for(var b=0;b<cy.length;b++)cy[b].el.paper==a&&cy.splice(b--,1)}function cE(b,d,e,f,h,i){e=Q(e);var j,k,l,m=[],o,p,q,t=b.ms,u={},v={},w={};if(f)for(y=0,z=cy.length;y<z;y++){var x=cy[y];if(x.el.id==d.id&&x.anim==b){x.percent!=e?(cy.splice(y,1),l=1):k=x,d.attr(x.totalOrigin);break}}else f=+v;for(var y=0,z=b.percents.length;y<z;y++){if(b.percents[y]==e||b.percents[y]>f*b.top){e=b.percents[y],p=b.percents[y-1]||0,t=t/b.top*(e-p),o=b.percents[y+1],j=b.anim[e];break}f&&d.attr(b.anim[b.percents[y]])}if(!!j){if(!k){for(var A in j)if(j[g](A))if(U[g](A)||d.paper.customAttributes[g](A)){u[A]=d.attr(A),u[A]==null&&(u[A]=T[A]),v[A]=j[A];switch(U[A]){case C:w[A]=(v[A]-u[A])/t;break;case"colour":u[A]=a.getRGB(u[A]);var B=a.getRGB(v[A]);w[A]={r:(B.r-u[A].r)/t,g:(B.g-u[A].g)/t,b:(B.b-u[A].b)/t};break;case"path":var D=bR(u[A],v[A]),E=D[1];u[A]=D[0],w[A]=[];for(y=0,z=u[A].length;y<z;y++){w[A][y]=[0];for(var F=1,G=u[A][y].length;F<G;F++)w[A][y][F]=(E[y][F]-u[A][y][F])/t}break;case"transform":var H=d._,I=ca(H[A],v[A]);if(I){u[A]=I.from,v[A]=I.to,w[A]=[],w[A].real=!0;for(y=0,z=u[A].length;y<z;y++){w[A][y]=[u[A][y][0]];for(F=1,G=u[A][y].length;F<G;F++)w[A][y][F]=(v[A][y][F]-u[A][y][F])/t}}else{var J=d.matrix||new cb,K={_:{transform:H.transform},getBBox:function(){return d.getBBox(1)}};u[A]=[J.a,J.b,J.c,J.d,J.e,J.f],b$(K,v[A]),v[A]=K._.transform,w[A]=[(K.matrix.a-J.a)/t,(K.matrix.b-J.b)/t,(K.matrix.c-J.c)/t,(K.matrix.d-J.d)/t,(K.matrix.e-J.e)/t,(K.matrix.f-J.f)/t]}break;case"csv":var L=r(j[A])[s](c),M=r(u[A])[s](c);if(A=="clip-rect"){u[A]=M,w[A]=[],y=M.length;while(y--)w[A][y]=(L[y]-u[A][y])/t}v[A]=L;break;default:L=[][n](j[A]),M=[][n](u[A]),w[A]=[],y=d.paper.customAttributes[A].length;while(y--)w[A][y]=((L[y]||0)-(M[y]||0))/t}}var O=j.easing,P=a.easing_formulas[O];if(!P){P=r(O).match(N);if(P&&P.length==5){var R=P;P=function(a){return cC(a,+R[1],+R[2],+R[3],+R[4],t)}}else P=bf}q=j.start||b.start||+(new Date),x={anim:b,percent:e,timestamp:q,start:q+(b.del||0),status:0,initstatus:f||0,stop:!1,ms:t,easing:P,from:u,diff:w,to:v,el:d,callback:j.callback,prev:p,next:o,repeat:i||b.times,origin:d.attr(),totalOrigin:h},cy.push(x);if(f&&!k&&!l){x.stop=!0,x.start=new Date-t*f;if(cy.length==1)return cA()}l&&(x.start=new Date-x.ms*f),cy.length==1&&cz(cA)}else k.initstatus=f,k.start=new Date-k.ms*f;eve("raphael.anim.start."+d.id,d,b)}}function cD(a,b){var c=[],d={};this.ms=b,this.times=1;if(a){for(var e in a)a[g](e)&&(d[Q(e)]=a[e],c.push(Q(e)));c.sort(bd)}this.anim=d,this.top=c[c.length-1],this.percents=c}function cC(a,b,c,d,e,f){function o(a,b){var c,d,e,f,j,k;for(e=a,k=0;k<8;k++){f=m(e)-a;if(z(f)<b)return e;j=(3*i*e+2*h)*e+g;if(z(j)<1e-6)break;e=e-f/j}c=0,d=1,e=a;if(e<c)return c;if(e>d)return d;while(c<d){f=m(e);if(z(f-a)<b)return e;a>f?c=e:d=e,e=(d-c)/2+c}return e}function n(a,b){var c=o(a,b);return((l*c+k)*c+j)*c}function m(a){return((i*a+h)*a+g)*a}var g=3*b,h=3*(d-b)-g,i=1-g-h,j=3*c,k=3*(e-c)-j,l=1-j-k;return n(a,1/(200*f))}function cq(){return this.x+q+this.y+q+this.width+" × "+this.height}function cp(){return this.x+q+this.y}function cb(a,b,c,d,e,f){a!=null?(this.a=+a,this.b=+b,this.c=+c,this.d=+d,this.e=+e,this.f=+f):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0)}function bH(b,c,d){b=a._path2curve(b),c=a._path2curve(c);var e,f,g,h,i,j,k,l,m,n,o=d?0:[];for(var p=0,q=b.length;p<q;p++){var r=b[p];if(r[0]=="M")e=i=r[1],f=j=r[2];else{r[0]=="C"?(m=[e,f].concat(r.slice(1)),e=m[6],f=m[7]):(m=[e,f,e,f,i,j,i,j],e=i,f=j);for(var s=0,t=c.length;s<t;s++){var u=c[s];if(u[0]=="M")g=k=u[1],h=l=u[2];else{u[0]=="C"?(n=[g,h].concat(u.slice(1)),g=n[6],h=n[7]):(n=[g,h,g,h,k,l,k,l],g=k,h=l);var v=bG(m,n,d);if(d)o+=v;else{for(var w=0,x=v.length;w<x;w++)v[w].segment1=p,v[w].segment2=s,v[w].bez1=m,v[w].bez2=n;o=o.concat(v)}}}}}return o}function bG(b,c,d){var e=a.bezierBBox(b),f=a.bezierBBox(c);if(!a.isBBoxIntersect(e,f))return d?0:[];var g=bB.apply(0,b),h=bB.apply(0,c),i=~~(g/5),j=~~(h/5),k=[],l=[],m={},n=d?0:[];for(var o=0;o<i+1;o++){var p=a.findDotsAtSegment.apply(a,b.concat(o/i));k.push({x:p.x,y:p.y,t:o/i})}for(o=0;o<j+1;o++)p=a.findDotsAtSegment.apply(a,c.concat(o/j)),l.push({x:p.x,y:p.y,t:o/j});for(o=0;o<i;o++)for(var q=0;q<j;q++){var r=k[o],s=k[o+1],t=l[q],u=l[q+1],v=z(s.x-r.x)<.001?"y":"x",w=z(u.x-t.x)<.001?"y":"x",x=bD(r.x,r.y,s.x,s.y,t.x,t.y,u.x,u.y);if(x){if(m[x.x.toFixed(4)]==x.y.toFixed(4))continue;m[x.x.toFixed(4)]=x.y.toFixed(4);var y=r.t+z((x[v]-r[v])/(s[v]-r[v]))*(s.t-r.t),A=t.t+z((x[w]-t[w])/(u[w]-t[w]))*(u.t-t.t);y>=0&&y<=1&&A>=0&&A<=1&&(d?n++:n.push({x:x.x,y:x.y,t1:y,t2:A}))}}return n}function bF(a,b){return bG(a,b,1)}function bE(a,b){return bG(a,b)}function bD(a,b,c,d,e,f,g,h){if(!(x(a,c)<y(e,g)||y(a,c)>x(e,g)||x(b,d)<y(f,h)||y(b,d)>x(f,h))){var i=(a*d-b*c)*(e-g)-(a-c)*(e*h-f*g),j=(a*d-b*c)*(f-h)-(b-d)*(e*h-f*g),k=(a-c)*(f-h)-(b-d)*(e-g);if(!k)return;var l=i/k,m=j/k,n=+l.toFixed(2),o=+m.toFixed(2);if(n<+y(a,c).toFixed(2)||n>+x(a,c).toFixed(2)||n<+y(e,g).toFixed(2)||n>+x(e,g).toFixed(2)||o<+y(b,d).toFixed(2)||o>+x(b,d).toFixed(2)||o<+y(f,h).toFixed(2)||o>+x(f,h).toFixed(2))return;return{x:l,y:m}}}function bC(a,b,c,d,e,f,g,h,i){if(!(i<0||bB(a,b,c,d,e,f,g,h)<i)){var j=1,k=j/2,l=j-k,m,n=.01;m=bB(a,b,c,d,e,f,g,h,l);while(z(m-i)>n)k/=2,l+=(m<i?1:-1)*k,m=bB(a,b,c,d,e,f,g,h,l);return l}}function bB(a,b,c,d,e,f,g,h,i){i==null&&(i=1),i=i>1?1:i<0?0:i;var j=i/2,k=12,l=[-0.1252,.1252,-0.3678,.3678,-0.5873,.5873,-0.7699,.7699,-0.9041,.9041,-0.9816,.9816],m=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],n=0;for(var o=0;o<k;o++){var p=j*l[o]+j,q=bA(p,a,c,e,g),r=bA(p,b,d,f,h),s=q*q+r*r;n+=m[o]*w.sqrt(s)}return j*n}function bA(a,b,c,d,e){var f=-3*b+9*c-9*d+3*e,g=a*f+6*b-12*c+6*d;return a*g-3*b+3*c}function by(a,b){var c=[];for(var d=0,e=a.length;e-2*!b>d;d+=2){var f=[{x:+a[d-2],y:+a[d-1]},{x:+a[d],y:+a[d+1]},{x:+a[d+2],y:+a[d+3]},{x:+a[d+4],y:+a[d+5]}];b?d?e-4==d?f[3]={x:+a[0],y:+a[1]}:e-2==d&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[e-2],y:+a[e-1]}:e-4==d?f[3]=f[2]:d||(f[0]={x:+a[d],y:+a[d+1]}),c.push(["C",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return c}function bx(){return this.hex}function bv(a,b,c){function d(){var e=Array.prototype.slice.call(arguments,0),f=e.join("␀"),h=d.cache=d.cache||{},i=d.count=d.count||[];if(h[g](f)){bu(i,f);return c?c(h[f]):h[f]}i.length>=1e3&&delete h[i.shift()],i.push(f),h[f]=a[m](b,e);return c?c(h[f]):h[f]}return d}function bu(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return a.push(a.splice(c,1)[0])}function bm(a){if(Object(a)!==a)return a;var b=new a.constructor;for(var c in a)a[g](c)&&(b[c]=bm(a[c]));return b}function a(c){if(a.is(c,"function"))return b?c():eve.on("raphael.DOMload",c);if(a.is(c,E))return a._engine.create[m](a,c.splice(0,3+a.is(c[0],C))).add(c);var d=Array.prototype.slice.call(arguments,0);if(a.is(d[d.length-1],"function")){var e=d.pop();return b?e.call(a._engine.create[m](a,d)):eve.on("raphael.DOMload",function(){e.call(a._engine.create[m](a,d))})}return a._engine.create[m](a,arguments)}a.version="2.1.0",a.eve=eve;var b,c=/[, ]+/,d={circle:1,rect:1,path:1,ellipse:1,text:1,image:1},e=/\{(\d+)\}/g,f="prototype",g="hasOwnProperty",h={doc:document,win:window},i={was:Object.prototype[g].call(h.win,"Raphael"),is:h.win.Raphael},j=function(){this.ca=this.customAttributes={}},k,l="appendChild",m="apply",n="concat",o="createTouch"in h.doc,p="",q=" ",r=String,s="split",t="click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel"[s](q),u={mousedown:"touchstart",mousemove:"touchmove",mouseup:"touchend"},v=r.prototype.toLowerCase,w=Math,x=w.max,y=w.min,z=w.abs,A=w.pow,B=w.PI,C="number",D="string",E="array",F="toString",G="fill",H=Object.prototype.toString,I={},J="push",K=a._ISURL=/^url\(['"]?([^\)]+?)['"]?\)$/i,L=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,M={NaN:1,Infinity:1,"-Infinity":1},N=/^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,O=w.round,P="setAttribute",Q=parseFloat,R=parseInt,S=r.prototype.toUpperCase,T=a._availableAttrs={"arrow-end":"none","arrow-start":"none",blur:0,"clip-rect":"0 0 1e9 1e9",cursor:"default",cx:0,cy:0,fill:"#fff","fill-opacity":1,font:'10px "Arial"',"font-family":'"Arial"',"font-size":"10","font-style":"normal","font-weight":400,gradient:0,height:0,href:"http://raphaeljs.com/","letter-spacing":0,opacity:1,path:"M0,0",r:0,rx:0,ry:0,src:"",stroke:"#000","stroke-dasharray":"","stroke-linecap":"butt","stroke-linejoin":"butt","stroke-miterlimit":0,"stroke-opacity":1,"stroke-width":1,target:"_blank","text-anchor":"middle",title:"Raphael",transform:"",width:0,x:0,y:0},U=a._availableAnimAttrs={blur:C,"clip-rect":"csv",cx:C,cy:C,fill:"colour","fill-opacity":C,"font-size":C,height:C,opacity:C,path:"path",r:C,rx:C,ry:C,stroke:"colour","stroke-opacity":C,"stroke-width":C,transform:"transform",width:C,x:C,y:C},V=/[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]/g,W=/[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/,X={hs:1,rg:1},Y=/,?([achlmqrstvxz]),?/gi,Z=/([achlmrqstvz])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/ig,$=/([rstm])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/ig,_=/(-?\d*\.?\d*(?:e[\-+]?\d+)?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/ig,ba=a._radial_gradient=/^r(?:\(([^,]+?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*([^\)]+?)\))?/,bb={},bc=function(a,b){return a.key-b.key},bd=function(a,b){return Q(a)-Q(b)},be=function(){},bf=function(a){return a},bg=a._rectPath=function(a,b,c,d,e){if(e)return[["M",a+e,b],["l",c-e*2,0],["a",e,e,0,0,1,e,e],["l",0,d-e*2],["a",e,e,0,0,1,-e,e],["l",e*2-c,0],["a",e,e,0,0,1,-e,-e],["l",0,e*2-d],["a",e,e,0,0,1,e,-e],["z"]];return[["M",a,b],["l",c,0],["l",0,d],["l",-c,0],["z"]]},bh=function(a,b,c,d){d==null&&(d=c);return[["M",a,b],["m",0,-d],["a",c,d,0,1,1,0,2*d],["a",c,d,0,1,1,0,-2*d],["z"]]},bi=a._getPath={path:function(a){return a.attr("path")},circle:function(a){var b=a.attrs;return bh(b.cx,b.cy,b.r)},ellipse:function(a){var b=a.attrs;return bh(b.cx,b.cy,b.rx,b.ry)},rect:function(a){var b=a.attrs;return bg(b.x,b.y,b.width,b.height,b.r)},image:function(a){var b=a.attrs;return bg(b.x,b.y,b.width,b.height)},text:function(a){var b=a._getBBox();return bg(b.x,b.y,b.width,b.height)}},bj=a.mapPath=function(a,b){if(!b)return a;var c,d,e,f,g,h,i;a=bR(a);for(e=0,g=a.length;e<g;e++){i=a[e];for(f=1,h=i.length;f<h;f+=2)c=b.x(i[f],i[f+1]),d=b.y(i[f],i[f+1]),i[f]=c,i[f+1]=d}return a};a._g=h,a.type=h.win.SVGAngle||h.doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML";if(a.type=="VML"){var bk=h.doc.createElement("div"),bl;bk.innerHTML='<v:shape adj="1"/>',bl=bk.firstChild,bl.style.behavior="url(#default#VML)";if(!bl||typeof bl.adj!="object")return a.type=p;bk=null}a.svg=!(a.vml=a.type=="VML"),a._Paper=j,a.fn=k=j.prototype=a.prototype,a._id=0,a._oid=0,a.is=function(a,b){b=v.call(b);if(b=="finite")return!M[g](+a);if(b=="array")return a instanceof Array;return b=="null"&&a===null||b==typeof a&&a!==null||b=="object"&&a===Object(a)||b=="array"&&Array.isArray&&Array.isArray(a)||H.call(a).slice(8,-1).toLowerCase()==b},a.angle=function(b,c,d,e,f,g){if(f==null){var h=b-d,i=c-e;if(!h&&!i)return 0;return(180+w.atan2(-i,-h)*180/B+360)%360}return a.angle(b,c,f,g)-a.angle(d,e,f,g)},a.rad=function(a){return a%360*B/180},a.deg=function(a){return a*180/B%360},a.snapTo=function(b,c,d){d=a.is(d,"finite")?d:10;if(a.is(b,E)){var e=b.length;while(e--)if(z(b[e]-c)<=d)return b[e]}else{b=+b;var f=c%b;if(f<d)return c-f;if(f>b-d)return c-f+b}return c};var bn=a.createUUID=function(a,b){return function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(a,b).toUpperCase()}}(/[xy]/g,function(a){var b=w.random()*16|0,c=a=="x"?b:b&3|8;return c.toString(16)});a.setWindow=function(b){eve("raphael.setWindow",a,h.win,b),h.win=b,h.doc=h.win.document,a._engine.initWin&&a._engine.initWin(h.win)};var bo=function(b){if(a.vml){var c=/^\s+|\s+$/g,d;try{var e=new ActiveXObject("htmlfile");e.write("<body>"),e.close(),d=e.body}catch(f){d=createPopup().document.body}var g=d.createTextRange();bo=bv(function(a){try{d.style.color=r(a).replace(c,p);var b=g.queryCommandValue("ForeColor");b=(b&255)<<16|b&65280|(b&16711680)>>>16;return"#"+("000000"+b.toString(16)).slice(-6)}catch(e){return"none"}})}else{var i=h.doc.createElement("i");i.title="Raphaël Colour Picker",i.style.display="none",h.doc.body.appendChild(i),bo=bv(function(a){i.style.color=a;return h.doc.defaultView.getComputedStyle(i,p).getPropertyValue("color")})}return bo(b)},bp=function(){return"hsb("+[this.h,this.s,this.b]+")"},bq=function(){return"hsl("+[this.h,this.s,this.l]+")"},br=function(){return this.hex},bs=function(b,c,d){c==null&&a.is(b,"object")&&"r"in b&&"g"in b&&"b"in b&&(d=b.b,c=b.g,b=b.r);if(c==null&&a.is(b,D)){var e=a.getRGB(b);b=e.r,c=e.g,d=e.b}if(b>1||c>1||d>1)b/=255,c/=255,d/=255;return[b,c,d]},bt=function(b,c,d,e){b*=255,c*=255,d*=255;var f={r:b,g:c,b:d,hex:a.rgb(b,c,d),toString:br};a.is(e,"finite")&&(f.opacity=e);return f};a.color=function(b){var c;a.is(b,"object")&&"h"in b&&"s"in b&&"b"in b?(c=a.hsb2rgb(b),b.r=c.r,b.g=c.g,b.b=c.b,b.hex=c.hex):a.is(b,"object")&&"h"in b&&"s"in b&&"l"in b?(c=a.hsl2rgb(b),b.r=c.r,b.g=c.g,b.b=c.b,b.hex=c.hex):(a.is(b,"string")&&(b=a.getRGB(b)),a.is(b,"object")&&"r"in b&&"g"in b&&"b"in b?(c=a.rgb2hsl(b),b.h=c.h,b.s=c.s,b.l=c.l,c=a.rgb2hsb(b),b.v=c.b):(b={hex:"none"},b.r=b.g=b.b=b.h=b.s=b.v=b.l=-1)),b.toString=br;return b},a.hsb2rgb=function(a,b,c,d){this.is(a,"object")&&"h"in a&&"s"in a&&"b"in a&&(c=a.b,b=a.s,a=a.h,d=a.o),a*=360;var e,f,g,h,i;a=a%360/60,i=c*b,h=i*(1-z(a%2-1)),e=f=g=c-i,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a];return bt(e,f,g,d)},a.hsl2rgb=function(a,b,c,d){this.is(a,"object")&&"h"in a&&"s"in a&&"l"in a&&(c=a.l,b=a.s,a=a.h);if(a>1||b>1||c>1)a/=360,b/=100,c/=100;a*=360;var e,f,g,h,i;a=a%360/60,i=2*b*(c<.5?c:1-c),h=i*(1-z(a%2-1)),e=f=g=c-i/2,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a];return bt(e,f,g,d)},a.rgb2hsb=function(a,b,c){c=bs(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g;f=x(a,b,c),g=f-y(a,b,c),d=g==0?null:f==a?(b-c)/g:f==b?(c-a)/g+2:(a-b)/g+4,d=(d+360)%6*60/360,e=g==0?0:g/f;return{h:d,s:e,b:f,toString:bp}},a.rgb2hsl=function(a,b,c){c=bs(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g,h,i;g=x(a,b,c),h=y(a,b,c),i=g-h,d=i==0?null:g==a?(b-c)/i:g==b?(c-a)/i+2:(a-b)/i+4,d=(d+360)%6*60/360,f=(g+h)/2,e=i==0?0:f<.5?i/(2*f):i/(2-2*f);return{h:d,s:e,l:f,toString:bq}},a._path2string=function(){return this.join(",").replace(Y,"$1")};var bw=a._preload=function(a,b){var c=h.doc.createElement("img");c.style.cssText="position:absolute;left:-9999em;top:-9999em",c.onload=function(){b.call(this),this.onload=null,h.doc.body.removeChild(this)},c.onerror=function(){h.doc.body.removeChild(this)},h.doc.body.appendChild(c),c.src=a};a.getRGB=bv(function(b){if(!b||!!((b=r(b)).indexOf("-")+1))return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:bx};if(b=="none")return{r:-1,g:-1,b:-1,hex:"none",toString:bx};!X[g](b.toLowerCase().substring(0,2))&&b.charAt()!="#"&&(b=bo(b));var c,d,e,f,h,i,j,k=b.match(L);if(k){k[2]&&(f=R(k[2].substring(5),16),e=R(k[2].substring(3,5),16),d=R(k[2].substring(1,3),16)),k[3]&&(f=R((i=k[3].charAt(3))+i,16),e=R((i=k[3].charAt(2))+i,16),d=R((i=k[3].charAt(1))+i,16)),k[4]&&(j=k[4][s](W),d=Q(j[0]),j[0].slice(-1)=="%"&&(d*=2.55),e=Q(j[1]),j[1].slice(-1)=="%"&&(e*=2.55),f=Q(j[2]),j[2].slice(-1)=="%"&&(f*=2.55),k[1].toLowerCase().slice(0,4)=="rgba"&&(h=Q(j[3])),j[3]&&j[3].slice(-1)=="%"&&(h/=100));if(k[5]){j=k[5][s](W),d=Q(j[0]),j[0].slice(-1)=="%"&&(d*=2.55),e=Q(j[1]),j[1].slice(-1)=="%"&&(e*=2.55),f=Q(j[2]),j[2].slice(-1)=="%"&&(f*=2.55),(j[0].slice(-3)=="deg"||j[0].slice(-1)=="°")&&(d/=360),k[1].toLowerCase().slice(0,4)=="hsba"&&(h=Q(j[3])),j[3]&&j[3].slice(-1)=="%"&&(h/=100);return a.hsb2rgb(d,e,f,h)}if(k[6]){j=k[6][s](W),d=Q(j[0]),j[0].slice(-1)=="%"&&(d*=2.55),e=Q(j[1]),j[1].slice(-1)=="%"&&(e*=2.55),f=Q(j[2]),j[2].slice(-1)=="%"&&(f*=2.55),(j[0].slice(-3)=="deg"||j[0].slice(-1)=="°")&&(d/=360),k[1].toLowerCase().slice(0,4)=="hsla"&&(h=Q(j[3])),j[3]&&j[3].slice(-1)=="%"&&(h/=100);return a.hsl2rgb(d,e,f,h)}k={r:d,g:e,b:f,toString:bx},k.hex="#"+(16777216|f|e<<8|d<<16).toString(16).slice(1),a.is(h,"finite")&&(k.opacity=h);return k}return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:bx}},a),a.hsb=bv(function(b,c,d){return a.hsb2rgb(b,c,d).hex}),a.hsl=bv(function(b,c,d){return a.hsl2rgb(b,c,d).hex}),a.rgb=bv(function(a,b,c){return"#"+(16777216|c|b<<8|a<<16).toString(16).slice(1)}),a.getColor=function(a){var b=this.getColor.start=this.getColor.start||{h:0,s:1,b:a||.75},c=this.hsb2rgb(b.h,b.s,b.b);b.h+=.075,b.h>1&&(b.h=0,b.s-=.2,b.s<=0&&(this.getColor.start={h:0,s:1,b:b.b}));return c.hex},a.getColor.reset=function(){delete this.start},a.parsePathString=function(b){if(!b)return null;var c=bz(b);if(c.arr)return bJ(c.arr);var d={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},e=[];a.is(b,E)&&a.is(b[0],E)&&(e=bJ(b)),e.length||r(b).replace(Z,function(a,b,c){var f=[],g=b.toLowerCase();c.replace(_,function(a,b){b&&f.push(+b)}),g=="m"&&f.length>2&&(e.push([b][n](f.splice(0,2))),g="l",b=b=="m"?"l":"L");if(g=="r")e.push([b][n](f));else while(f.length>=d[g]){e.push([b][n](f.splice(0,d[g])));if(!d[g])break}}),e.toString=a._path2string,c.arr=bJ(e);return e},a.parseTransformString=bv(function(b){if(!b)return null;var c={r:3,s:4,t:2,m:6},d=[];a.is(b,E)&&a.is(b[0],E)&&(d=bJ(b)),d.length||r(b).replace($,function(a,b,c){var e=[],f=v.call(b);c.replace(_,function(a,b){b&&e.push(+b)}),d.push([b][n](e))}),d.toString=a._path2string;return d});var bz=function(a){var b=bz.ps=bz.ps||{};b[a]?b[a].sleep=100:b[a]={sleep:100},setTimeout(function(){for(var c in b)b[g](c)&&c!=a&&(b[c].sleep--,!b[c].sleep&&delete b[c])});return b[a]};a.findDotsAtSegment=function(a,b,c,d,e,f,g,h,i){var j=1-i,k=A(j,3),l=A(j,2),m=i*i,n=m*i,o=k*a+l*3*i*c+j*3*i*i*e+n*g,p=k*b+l*3*i*d+j*3*i*i*f+n*h,q=a+2*i*(c-a)+m*(e-2*c+a),r=b+2*i*(d-b)+m*(f-2*d+b),s=c+2*i*(e-c)+m*(g-2*e+c),t=d+2*i*(f-d)+m*(h-2*f+d),u=j*a+i*c,v=j*b+i*d,x=j*e+i*g,y=j*f+i*h,z=90-w.atan2(q-s,r-t)*180/B;(q>s||r<t)&&(z+=180);return{x:o,y:p,m:{x:q,y:r},n:{x:s,y:t},start:{x:u,y:v},end:{x:x,y:y},alpha:z}},a.bezierBBox=function(b,c,d,e,f,g,h,i){a.is(b,"array")||(b=[b,c,d,e,f,g,h,i]);var j=bQ.apply(null,b);return{x:j.min.x,y:j.min.y,x2:j.max.x,y2:j.max.y,width:j.max.x-j.min.x,height:j.max.y-j.min.y}},a.isPointInsideBBox=function(a,b,c){return b>=a.x&&b<=a.x2&&c>=a.y&&c<=a.y2},a.isBBoxIntersect=function(b,c){var d=a.isPointInsideBBox;return d(c,b.x,b.y)||d(c,b.x2,b.y)||d(c,b.x,b.y2)||d(c,b.x2,b.y2)||d(b,c.x,c.y)||d(b,c.x2,c.y)||d(b,c.x,c.y2)||d(b,c.x2,c.y2)||(b.x<c.x2&&b.x>c.x||c.x<b.x2&&c.x>b.x)&&(b.y<c.y2&&b.y>c.y||c.y<b.y2&&c.y>b.y)},a.pathIntersection=function(a,b){return bH(a,b)},a.pathIntersectionNumber=function(a,b){return bH(a,b,1)},a.isPointInsidePath=function(b,c,d){var e=a.pathBBox(b);return a.isPointInsideBBox(e,c,d)&&bH(b,[["M",c,d],["H",e.x2+10]],1)%2==1},a._removedFactory=function(a){return function(){eve("raphael.log",null,"Raphaël: you are calling to method “"+a+"” of removed object",a)}};var bI=a.pathBBox=function(a){var b=bz(a);if(b.bbox)return b.bbox;if(!a)return{x:0,y:0,width:0,height:0,x2:0,y2:0};a=bR(a);var c=0,d=0,e=[],f=[],g;for(var h=0,i=a.length;h<i;h++){g=a[h];if(g[0]=="M")c=g[1],d=g[2],e.push(c),f.push(d);else{var j=bQ(c,d,g[1],g[2],g[3],g[4],g[5],g[6]);e=e[n](j.min.x,j.max.x),f=f[n](j.min.y,j.max.y),c=g[5],d=g[6]}}var k=y[m](0,e),l=y[m](0,f),o=x[m](0,e),p=x[m](0,f),q={x:k,y:l,x2:o,y2:p,width:o-k,height:p-l};b.bbox=bm(q);return q},bJ=function(b){var c=bm(b);c.toString=a._path2string;return c},bK=a._pathToRelative=function(b){var c=bz(b);if(c.rel)return bJ(c.rel);if(!a.is(b,E)||!a.is(b&&b[0],E))b=a.parsePathString(b);var d=[],e=0,f=0,g=0,h=0,i=0;b[0][0]=="M"&&(e=b[0][1],f=b[0][2],g=e,h=f,i++,d.push(["M",e,f]));for(var j=i,k=b.length;j<k;j++){var l=d[j]=[],m=b[j];if(m[0]!=v.call(m[0])){l[0]=v.call(m[0]);switch(l[0]){case"a":l[1]=m[1],l[2]=m[2],l[3]=m[3],l[4]=m[4],l[5]=m[5],l[6]=+(m[6]-e).toFixed(3),l[7]=+(m[7]-f).toFixed(3);break;case"v":l[1]=+(m[1]-f).toFixed(3);break;case"m":g=m[1],h=m[2];default:for(var n=1,o=m.length;n<o;n++)l[n]=+(m[n]-(n%2?e:f)).toFixed(3)}}else{l=d[j]=[],m[0]=="m"&&(g=m[1]+e,h=m[2]+f);for(var p=0,q=m.length;p<q;p++)d[j][p]=m[p]}var r=d[j].length;switch(d[j][0]){case"z":e=g,f=h;break;case"h":e+=+d[j][r-1];break;case"v":f+=+d[j][r-1];break;default:e+=+d[j][r-2],f+=+d[j][r-1]}}d.toString=a._path2string,c.rel=bJ(d);return d},bL=a._pathToAbsolute=function(b){var c=bz(b);if(c.abs)return bJ(c.abs);if(!a.is(b,E)||!a.is(b&&b[0],E))b=a.parsePathString(b);if(!b||!b.length)return[["M",0,0]];var d=[],e=0,f=0,g=0,h=0,i=0;b[0][0]=="M"&&(e=+b[0][1],f=+b[0][2],g=e,h=f,i++,d[0]=["M",e,f]);var j=b.length==3&&b[0][0]=="M"&&b[1][0].toUpperCase()=="R"&&b[2][0].toUpperCase()=="Z";for(var k,l,m=i,o=b.length;m<o;m++){d.push(k=[]),l=b[m];if(l[0]!=S.call(l[0])){k[0]=S.call(l[0]);switch(k[0]){case"A":k[1]=l[1],k[2]=l[2],k[3]=l[3],k[4]=l[4],k[5]=l[5],k[6]=+(l[6]+e),k[7]=+(l[7]+f);break;case"V":k[1]=+l[1]+f;break;case"H":k[1]=+l[1]+e;break;case"R":var p=[e,f][n](l.slice(1));for(var q=2,r=p.length;q<r;q++)p[q]=+p[q]+e,p[++q]=+p[q]+f;d.pop(),d=d[n](by(p,j));break;case"M":g=+l[1]+e,h=+l[2]+f;default:for(q=1,r=l.length;q<r;q++)k[q]=+l[q]+(q%2?e:f)}}else if(l[0]=="R")p=[e,f][n](l.slice(1)),d.pop(),d=d[n](by(p,j)),k=["R"][n](l.slice(-2));else for(var s=0,t=l.length;s<t;s++)k[s]=l[s];switch(k[0]){case"Z":e=g,f=h;break;case"H":e=k[1];break;case"V":f=k[1];break;case"M":g=k[k.length-2],h=k[k.length-1];default:e=k[k.length-2],f=k[k.length-1]}}d.toString=a._path2string,c.abs=bJ(d);return d},bM=function(a,b,c,d){return[a,b,c,d,c,d]},bN=function(a,b,c,d,e,f){var g=1/3,h=2/3;return[g*a+h*c,g*b+h*d,g*e+h*c,g*f+h*d,e,f]},bO=function(a,b,c,d,e,f,g,h,i,j){var k=B*120/180,l=B/180*(+e||0),m=[],o,p=bv(function(a,b,c){var d=a*w.cos(c)-b*w.sin(c),e=a*w.sin(c)+b*w.cos(c);return{x:d,y:e}});if(!j){o=p(a,b,-l),a=o.x,b=o.y,o=p(h,i,-l),h=o.x,i=o.y;var q=w.cos(B/180*e),r=w.sin(B/180*e),t=(a-h)/2,u=(b-i)/2,v=t*t/(c*c)+u*u/(d*d);v>1&&(v=w.sqrt(v),c=v*c,d=v*d);var x=c*c,y=d*d,A=(f==g?-1:1)*w.sqrt(z((x*y-x*u*u-y*t*t)/(x*u*u+y*t*t))),C=A*c*u/d+(a+h)/2,D=A*-d*t/c+(b+i)/2,E=w.asin(((b-D)/d).toFixed(9)),F=w.asin(((i-D)/d).toFixed(9));E=a<C?B-E:E,F=h<C?B-F:F,E<0&&(E=B*2+E),F<0&&(F=B*2+F),g&&E>F&&(E=E-B*2),!g&&F>E&&(F=F-B*2)}else E=j[0],F=j[1],C=j[2],D=j[3];var G=F-E;if(z(G)>k){var H=F,I=h,J=i;F=E+k*(g&&F>E?1:-1),h=C+c*w.cos(F),i=D+d*w.sin(F),m=bO(h,i,c,d,e,0,g,I,J,[F,H,C,D])}G=F-E;var K=w.cos(E),L=w.sin(E),M=w.cos(F),N=w.sin(F),O=w.tan(G/4),P=4/3*c*O,Q=4/3*d*O,R=[a,b],S=[a+P*L,b-Q*K],T=[h+P*N,i-Q*M],U=[h,i];S[0]=2*R[0]-S[0],S[1]=2*R[1]-S[1];if(j)return[S,T,U][n](m);m=[S,T,U][n](m).join()[s](",");var V=[];for(var W=0,X=m.length;W<X;W++)V[W]=W%2?p(m[W-1],m[W],l).y:p(m[W],m[W+1],l).x;return V},bP=function(a,b,c,d,e,f,g,h,i){var j=1-i;return{x:A(j,3)*a+A(j,2)*3*i*c+j*3*i*i*e+A(i,3)*g,y:A(j,3)*b+A(j,2)*3*i*d+j*3*i*i*f+A(i,3)*h}},bQ=bv(function(a,b,c,d,e,f,g,h){var i=e-2*c+a-(g-2*e+c),j=2*(c-a)-2*(e-c),k=a-c,l=(-j+w.sqrt(j*j-4*i*k))/2/i,n=(-j-w.sqrt(j*j-4*i*k))/2/i,o=[b,h],p=[a,g],q;z(l)>"1e12"&&(l=.5),z(n)>"1e12"&&(n=.5),l>0&&l<1&&(q=bP(a,b,c,d,e,f,g,h,l),p.push(q.x),o.push(q.y)),n>0&&n<1&&(q=bP(a,b,c,d,e,f,g,h,n),p.push(q.x),o.push(q.y)),i=f-2*d+b-(h-2*f+d),j=2*(d-b)-2*(f-d),k=b-d,l=(-j+w.sqrt(j*j-4*i*k))/2/i,n=(-j-w.sqrt(j*j-4*i*k))/2/i,z(l)>"1e12"&&(l=.5),z(n)>"1e12"&&(n=.5),l>0&&l<1&&(q=bP(a,b,c,d,e,f,g,h,l),p.push(q.x),o.push(q.y)),n>0&&n<1&&(q=bP(a,b,c,d,e,f,g,h,n),p.push(q.x),o.push(q.y));return{min:{x:y[m](0,p),y:y[m](0,o)},max:{x:x[m](0,p),y:x[m](0,o)}}}),bR=a._path2curve=bv(function(a,b){var c=!b&&bz(a);if(!b&&c.curve)return bJ(c.curve);var d=bL(a),e=b&&bL(b),f={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},g={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},h=function(a,b){var c,d;if(!a)return["C",b.x,b.y,b.x,b.y,b.x,b.y];!(a[0]in{T:1,Q:1})&&(b.qx=b.qy=null);switch(a[0]){case"M":b.X=a[1],b.Y=a[2];break;case"A":a=["C"][n](bO[m](0,[b.x,b.y][n](a.slice(1))));break;case"S":c=b.x+(b.x-(b.bx||b.x)),d=b.y+(b.y-(b.by||b.y)),a=["C",c,d][n](a.slice(1));break;case"T":b.qx=b.x+(b.x-(b.qx||b.x)),b.qy=b.y+(b.y-(b.qy||b.y)),a=["C"][n](bN(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case"Q":b.qx=a[1],b.qy=a[2],a=["C"][n](bN(b.x,b.y,a[1],a[2],a[3],a[4]));break;case"L":a=["C"][n](bM(b.x,b.y,a[1],a[2]));break;case"H":a=["C"][n](bM(b.x,b.y,a[1],b.y));break;case"V":a=["C"][n](bM(b.x,b.y,b.x,a[1]));break;case"Z":a=["C"][n](bM(b.x,b.y,b.X,b.Y))}return a},i=function(a,b){if(a[b].length>7){a[b].shift();var c=a[b];while(c.length)a.splice(b++,0,["C"][n](c.splice(0,6)));a.splice(b,1),l=x(d.length,e&&e.length||0)}},j=function(a,b,c,f,g){a&&b&&a[g][0]=="M"&&b[g][0]!="M"&&(b.splice(g,0,["M",f.x,f.y]),c.bx=0,c.by=0,c.x=a[g][1],c.y=a[g][2],l=x(d.length,e&&e.length||0))};for(var k=0,l=x(d.length,e&&e.length||0);k<l;k++){d[k]=h(d[k],f),i(d,k),e&&(e[k]=h(e[k],g)),e&&i(e,k),j(d,e,f,g,k),j(e,d,g,f,k);var o=d[k],p=e&&e[k],q=o.length,r=e&&p.length;f.x=o[q-2],f.y=o[q-1],f.bx=Q(o[q-4])||f.x,f.by=Q(o[q-3])||f.y,g.bx=e&&(Q(p[r-4])||g.x),g.by=e&&(Q(p[r-3])||g.y),g.x=e&&p[r-2],g.y=e&&p[r-1]}e||(c.curve=bJ(d));return e?[d,e]:d},null,bJ),bS=a._parseDots=bv(function(b){var c=[];for(var d=0,e=b.length;d<e;d++){var f={},g=b[d].match(/^([^:]*):?([\d\.]*)/);f.color=a.getRGB(g[1]);if(f.color.error)return null;f.color=f.color.hex,g[2]&&(f.offset=g[2]+"%"),c.push(f)}for(d=1,e=c.length-1;d<e;d++)if(!c[d].offset){var h=Q(c[d-1].offset||0),i=0;for(var j=d+1;j<e;j++)if(c[j].offset){i=c[j].offset;break}i||(i=100,j=e),i=Q(i);var k=(i-h)/(j-d+1);for(;d<j;d++)h+=k,c[d].offset=h+"%"}return c}),bT=a._tear=function(a,b){a==b.top&&(b.top=a.prev),a==b.bottom&&(b.bottom=a.next),a.next&&(a.next.prev=a.prev),a.prev&&(a.prev.next=a.next)},bU=a._tofront=function(a,b){b.top!==a&&(bT(a,b),a.next=null,a.prev=b.top,b.top.next=a,b.top=a)},bV=a._toback=function(a,b){b.bottom!==a&&(bT(a,b),a.next=b.bottom,a.prev=null,b.bottom.prev=a,b.bottom=a)},bW=a._insertafter=function(a,b,c){bT(a,c),b==c.top&&(c.top=a),b.next&&(b.next.prev=a),a.next=b.next,a.prev=b,b.next=a},bX=a._insertbefore=function(a,b,c){bT(a,c),b==c.bottom&&(c.bottom=a),b.prev&&(b.prev.next=a),a.prev=b.prev,b.prev=a,a.next=b},bY=a.toMatrix=function(a,b){var c=bI(a),d={_:{transform:p},getBBox:function(){return c}};b$(d,b);return d.matrix},bZ=a.transformPath=function(a,b){return bj(a,bY(a,b))},b$=a._extractTransform=function(b,c){if(c==null)return b._.transform;c=r(c).replace(/\.{3}|\u2026/g,b._.transform||p);var d=a.parseTransformString(c),e=0,f=0,g=0,h=1,i=1,j=b._,k=new cb;j.transform=d||[];if(d)for(var l=0,m=d.length;l<m;l++){var n=d[l],o=n.length,q=r(n[0]).toLowerCase(),s=n[0]!=q,t=s?k.invert():0,u,v,w,x,y;q=="t"&&o==3?s?(u=t.x(0,0),v=t.y(0,0),w=t.x(n[1],n[2]),x=t.y(n[1],n[2]),k.translate(w-u,x-v)):k.translate(n[1],n[2]):q=="r"?o==2?(y=y||b.getBBox(1),k.rotate(n[1],y.x+y.width/2,y.y+y.height/2),e+=n[1]):o==4&&(s?(w=t.x(n[2],n[3]),x=t.y(n[2],n[3]),k.rotate(n[1],w,x)):k.rotate(n[1],n[2],n[3]),e+=n[1]):q=="s"?o==2||o==3?(y=y||b.getBBox(1),k.scale(n[1],n[o-1],y.x+y.width/2,y.y+y.height/2),h*=n[1],i*=n[o-1]):o==5&&(s?(w=t.x(n[3],n[4]),x=t.y(n[3],n[4]),k.scale(n[1],n[2],w,x)):k.scale(n[1],n[2],n[3],n[4]),h*=n[1],i*=n[2]):q=="m"&&o==7&&k.add(n[1],n[2],n[3],n[4],n[5],n[6]),j.dirtyT=1,b.matrix=k}b.matrix=k,j.sx=h,j.sy=i,j.deg=e,j.dx=f=k.e,j.dy=g=k.f,h==1&&i==1&&!e&&j.bbox?(j.bbox.x+=+f,j.bbox.y+=+g):j.dirtyT=1},b_=function(a){var b=a[0];switch(b.toLowerCase()){case"t":return[b,0,0];case"m":return[b,1,0,0,1,0,0];case"r":return a.length==4?[b,0,a[2],a[3]]:[b,0];case"s":return a.length==5?[b,1,1,a[3],a[4]]:a.length==3?[b,1,1]:[b,1]}},ca=a._equaliseTransform=function(b,c){c=r(c).replace(/\.{3}|\u2026/g,b),b=a.parseTransformString(b)||[],c=a.parseTransformString(c)||[];var d=x(b.length,c.length),e=[],f=[],g=0,h,i,j,k;for(;g<d;g++){j=b[g]||b_(c[g]),k=c[g]||b_(j);if(j[0]!=k[0]||j[0].toLowerCase()=="r"&&(j[2]!=k[2]||j[3]!=k[3])||j[0].toLowerCase()=="s"&&(j[3]!=k[3]||j[4]!=k[4]))return;e[g]=[],f[g]=[];for(h=0,i=x(j.length,k.length);h<i;h++)h in j&&(e[g][h]=j[h]),h in k&&(f[g][h]=k[h])}return{from:e,to:f}};a._getContainer=function(b,c,d,e){var f;f=e==null&&!a.is(b,"object")?h.doc.getElementById(b):b;if(f!=null){if(f.tagName)return c==null?{container:f,width:f.style.pixelWidth||f.offsetWidth,height:f.style.pixelHeight||f.offsetHeight}:{container:f,width:c,height:d};return{container:1,x:b,y:c,width:d,height:e}}},a.pathToRelative=bK,a._engine={},a.path2curve=bR,a.matrix=function(a,b,c,d,e,f){return new cb(a,b,c,d,e,f)},function(b){function d(a){var b=w.sqrt(c(a));a[0]&&(a[0]/=b),a[1]&&(a[1]/=b)}function c(a){return a[0]*a[0]+a[1]*a[1]}b.add=function(a,b,c,d,e,f){var g=[[],[],[]],h=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],i=[[a,c,e],[b,d,f],[0,0,1]],j,k,l,m;a&&a instanceof cb&&(i=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1]]);for(j=0;j<3;j++)for(k=0;k<3;k++){m=0;for(l=0;l<3;l++)m+=h[j][l]*i[l][k];g[j][k]=m}this.a=g[0][0],this.b=g[1][0],this.c=g[0][1],this.d=g[1][1],this.e=g[0][2],this.f=g[1][2]},b.invert=function(){var a=this,b=a.a*a.d-a.b*a.c;return new cb(a.d/b,-a.b/b,-a.c/b,a.a/b,(a.c*a.f-a.d*a.e)/b,(a.b*a.e-a.a*a.f)/b)},b.clone=function(){return new cb(this.a,this.b,this.c,this.d,this.e,this.f)},b.translate=function(a,b){this.add(1,0,0,1,a,b)},b.scale=function(a,b,c,d){b==null&&(b=a),(c||d)&&this.add(1,0,0,1,c,d),this.add(a,0,0,b,0,0),(c||d)&&this.add(1,0,0,1,-c,-d)},b.rotate=function(b,c,d){b=a.rad(b),c=c||0,d=d||0;var e=+w.cos(b).toFixed(9),f=+w.sin(b).toFixed(9);this.add(e,f,-f,e,c,d),this.add(1,0,0,1,-c,-d)},b.x=function(a,b){return a*this.a+b*this.c+this.e},b.y=function(a,b){return a*this.b+b*this.d+this.f},b.get=function(a){return+this[r.fromCharCode(97+a)].toFixed(4)},b.toString=function(){return a.svg?"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")":[this.get(0),this.get(2),this.get(1),this.get(3),0,0].join()},b.toFilter=function(){return"progid:DXImageTransform.Microsoft.Matrix(M11="+this.get(0)+", M12="+this.get(2)+", M21="+this.get(1)+", M22="+this.get(3)+", Dx="+this.get(4)+", Dy="+this.get(5)+", sizingmethod='auto expand')"},b.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},b.split=function(){var b={};b.dx=this.e,b.dy=this.f;var e=[[this.a,this.c],[this.b,this.d]];b.scalex=w.sqrt(c(e[0])),d(e[0]),b.shear=e[0][0]*e[1][0]+e[0][1]*e[1][1],e[1]=[e[1][0]-e[0][0]*b.shear,e[1][1]-e[0][1]*b.shear],b.scaley=w.sqrt(c(e[1])),d(e[1]),b.shear/=b.scaley;var f=-e[0][1],g=e[1][1];g<0?(b.rotate=a.deg(w.acos(g)),f<0&&(b.rotate=360-b.rotate)):b.rotate=a.deg(w.asin(f)),b.isSimple=!+b.shear.toFixed(9)&&(b.scalex.toFixed(9)==b.scaley.toFixed(9)||!b.rotate),b.isSuperSimple=!+b.shear.toFixed(9)&&b.scalex.toFixed(9)==b.scaley.toFixed(9)&&!b.rotate,b.noRotation=!+b.shear.toFixed(9)&&!b.rotate;return b},b.toTransformString=function(a){var b=a||this[s]();if(b.isSimple){b.scalex=+b.scalex.toFixed(4),b.scaley=+b.scaley.toFixed(4),b.rotate=+b.rotate.toFixed(4);return(b.dx||b.dy?"t"+[b.dx,b.dy]:p)+(b.scalex!=1||b.scaley!=1?"s"+[b.scalex,b.scaley,0,0]:p)+(b.rotate?"r"+[b.rotate,0,0]:p)}return"m"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]}}(cb.prototype);var cc=navigator.userAgent.match(/Version\/(.*?)\s/)||navigator.userAgent.match(/Chrome\/(\d+)/);navigator.vendor=="Apple Computer, Inc."&&(cc&&cc[1]<4||navigator.platform.slice(0,2)=="iP")||navigator.vendor=="Google Inc."&&cc&&cc[1]<8?k.safari=function(){var a=this.rect(-99,-99,this.width+99,this.height+99).attr({stroke:"none"});setTimeout(function(){a.remove()})}:k.safari=be;var cd=function(){this.returnValue=!1},ce=function(){return this.originalEvent.preventDefault()},cf=function(){this.cancelBubble=!0},cg=function(){return this.originalEvent.stopPropagation()},ch=function(){if(h.doc.addEventListener)return function(a,b,c,d){var e=o&&u[b]?u[b]:b,f=function(e){var f=h.doc.documentElement.scrollTop||h.doc.body.scrollTop,i=h.doc.documentElement.scrollLeft||h.doc.body.scrollLeft,j=e.clientX+i,k=e.clientY+f;if(o&&u[g](b))for(var l=0,m=e.targetTouches&&e.targetTouches.length;l<m;l++)if(e.targetTouches[l].target==a){var n=e;e=e.targetTouches[l],e.originalEvent=n,e.preventDefault=ce,e.stopPropagation=cg;break}return c.call(d,e,j,k)};a.addEventListener(e,f,!1);return function(){a.removeEventListener(e,f,!1);return!0}};if(h.doc.attachEvent)return function(a,b,c,d){var e=function(a){a=a||h.win.event;var b=h.doc.documentElement.scrollTop||h.doc.body.scrollTop,e=h.doc.documentElement.scrollLeft||h.doc.body.scrollLeft,f=a.clientX+e,g=a.clientY+b;a.preventDefault=a.preventDefault||cd,a.stopPropagation=a.stopPropagation||cf;return c.call(d,a,f,g)};a.attachEvent("on"+b,e);var f=function(){a.detachEvent("on"+b,e);return!0};return f}}(),ci=[],cj=function(a){var b=a.clientX,c=a.clientY,d=h.doc.documentElement.scrollTop||h.doc.body.scrollTop,e=h.doc.documentElement.scrollLeft||h.doc.body.scrollLeft,f,g=ci.length;while(g--){f=ci[g];if(o){var i=a.touches.length,j;while(i--){j=a.touches[i];if(j.identifier==f.el._drag.id){b=j.clientX,c=j.clientY,(a.originalEvent?a.originalEvent:a).preventDefault();break}}}else a.preventDefault();var k=f.el.node,l,m=k.nextSibling,n=k.parentNode,p=k.style.display;h.win.opera&&n.removeChild(k),k.style.display="none",l=f.el.paper.getElementByPoint(b,c),k.style.display=p,h.win.opera&&(m?n.insertBefore(k,m):n.appendChild(k)),l&&eve("raphael.drag.over."+f.el.id,f.el,l),b+=e,c+=d,eve("raphael.drag.move."+f.el.id,f.move_scope||f.el,b-f.el._drag.x,c-f.el._drag.y,b,c,a)}},ck=function(b){a.unmousemove(cj).unmouseup(ck);var c=ci.length,d;while(c--)d=ci[c],d.el._drag={},eve("raphael.drag.end."+d.el.id,d.end_scope||d.start_scope||d.move_scope||d.el,b);ci=[]},cl=a.el={};for(var cm=t.length;cm--;)(function(b){a[b]=cl[b]=function(c,d){a.is(c,"function")&&(this.events=this.events||[],this.events.push({name:b,f:c,unbind:ch(this.shape||this.node||h.doc,b,c,d||this)}));return this},a["un"+b]=cl["un"+b]=function(a){var c=this.events||[],d=c.length;while(d--)if(c[d].name==b&&c[d].f==a){c[d].unbind(),c.splice(d,1),!c.length&&delete this.events;return this}return this}})(t[cm]);cl.data=function(b,c){var d=bb[this.id]=bb[this.id]||{};if(arguments.length==1){if(a.is(b,"object")){for(var e in b)b[g](e)&&this.data(e,b[e]);return this}eve("raphael.data.get."+this.id,this,d[b],b);return d[b]}d[b]=c,eve("raphael.data.set."+this.id,this,c,b);return this},cl.removeData=function(a){a==null?bb[this.id]={}:bb[this.id]&&delete bb[this.id][a];return this},cl.hover=function(a,b,c,d){return this.mouseover(a,c).mouseout(b,d||c)},cl.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var cn=[];cl.drag=function(b,c,d,e,f,g){function i(i){(i.originalEvent||i).preventDefault();var j=h.doc.documentElement.scrollTop||h.doc.body.scrollTop,k=h.doc.documentElement.scrollLeft||h.doc.body.scrollLeft;this._drag.x=i.clientX+k,this._drag.y=i.clientY+j,this._drag.id=i.identifier,!ci.length&&a.mousemove(cj).mouseup(ck),ci.push({el:this,move_scope:e,start_scope:f,end_scope:g}),c&&eve.on("raphael.drag.start."+this.id,c),b&&eve.on("raphael.drag.move."+this.id,b),d&&eve.on("raphael.drag.end."+this.id,d),eve("raphael.drag.start."+this.id,f||e||this,i.clientX+k,i.clientY+j,i)}this._drag={},cn.push({el:this,start:i}),this.mousedown(i);return this},cl.onDragOver=function(a){a?eve.on("raphael.drag.over."+this.id,a):eve.unbind("raphael.drag.over."+this.id)},cl.undrag=function(){var b=cn.length;while(b--)cn[b].el==this&&(this.unmousedown(cn[b].start),cn.splice(b,1),eve.unbind("raphael.drag.*."+this.id));!cn.length&&a.unmousemove(cj).unmouseup(ck)},k.circle=function(b,c,d){var e=a._engine.circle(this,b||0,c||0,d||0);this.__set__&&this.__set__.push(e);return e},k.rect=function(b,c,d,e,f){var g=a._engine.rect(this,b||0,c||0,d||0,e||0,f||0);this.__set__&&this.__set__.push(g);return g},k.ellipse=function(b,c,d,e){var f=a._engine.ellipse(this,b||0,c||0,d||0,e||0);this.__set__&&this.__set__.push(f);return f},k.path=function(b){b&&!a.is(b,D)&&!a.is(b[0],E)&&(b+=p);var c=a._engine.path(a.format[m](a,arguments),this);this.__set__&&this.__set__.push(c);return c},k.image=function(b,c,d,e,f){var g=a._engine.image(this,b||"about:blank",c||0,d||0,e||0,f||0);this.__set__&&this.__set__.push(g);return g},k.text=function(b,c,d){var e=a._engine.text(this,b||0,c||0,r(d));this.__set__&&this.__set__.push(e);return e},k.set=function(b){!a.is(b,"array")&&(b=Array.prototype.splice.call(arguments,0,arguments.length));var c=new cG(b);this.__set__&&this.__set__.push(c);return c},k.setStart=function(a){this.__set__=a||this.set()},k.setFinish=function(a){var b=this.__set__;delete this.__set__;return b},k.setSize=function(b,c){return a._engine.setSize.call(this,b,c)},k.setViewBox=function(b,c,d,e,f){return a._engine.setViewBox.call(this,b,c,d,e,f)},k.top=k.bottom=null,k.raphael=a;var co=function(a){var b=a.getBoundingClientRect(),c=a.ownerDocument,d=c.body,e=c.documentElement,f=e.clientTop||d.clientTop||0,g=e.clientLeft||d.clientLeft||0,i=b.top+(h.win.pageYOffset||e.scrollTop||d.scrollTop)-f,j=b.left+(h.win.pageXOffset||e.scrollLeft||d.scrollLeft)-g;return{y:i,x:j}};k.getElementByPoint=function(a,b){var c=this,d=c.canvas,e=h.doc.elementFromPoint(a,b);if(h.win.opera&&e.tagName=="svg"){var f=co(d),g=d.createSVGRect();g.x=a-f.x,g.y=b-f.y,g.width=g.height=1;var i=d.getIntersectionList(g,null);i.length&&(e=i[i.length-1])}if(!e)return null;while(e.parentNode&&e!=d.parentNode&&!e.raphael)e=e.parentNode;e==c.canvas.parentNode&&(e=d),e=e&&e.raphael?c.getById(e.raphaelid):null;return e},k.getById=function(a){var b=this.bottom;while(b){if(b.id==a)return b;b=b.next}return null},k.forEach=function(a,b){var c=this.bottom;while(c){if(a.call(b,c)===!1)return this;c=c.next}return this},k.getElementsByPoint=function(a,b){var c=this.set();this.forEach(function(d){d.isPointInside(a,b)&&c.push(d)});return c},cl.isPointInside=function(b,c){var d=this.realPath=this.realPath||bi[this.type](this);return a.isPointInsidePath(d,b,c)},cl.getBBox=function(a){if(this.removed)return{};var b=this._;if(a){if(b.dirty||!b.bboxwt)this.realPath=bi[this.type](this),b.bboxwt=bI(this.realPath),b.bboxwt.toString=cq,b.dirty=0;return b.bboxwt}if(b.dirty||b.dirtyT||!b.bbox){if(b.dirty||!this.realPath)b.bboxwt=0,this.realPath=bi[this.type](this);b.bbox=bI(bj(this.realPath,this.matrix)),b.bbox.toString=cq,b.dirty=b.dirtyT=0}return b.bbox},cl.clone=function(){if(this.removed)return null;var a=this.paper[this.type]().attr(this.attr());this.__set__&&this.__set__.push(a);return a},cl.glow=function(a){if(this.type=="text")return null;a=a||{};var b={width:(a.width||10)+(+this.attr("stroke-width")||1),fill:a.fill||!1,opacity:a.opacity||.5,offsetx:a.offsetx||0,offsety:a.offsety||0,color:a.color||"#000"},c=b.width/2,d=this.paper,e=d.set(),f=this.realPath||bi[this.type](this);f=this.matrix?bj(f,this.matrix):f;for(var g=1;g<c+1;g++)e.push(d.path(f).attr({stroke:b.color,fill:b.fill?b.color:"none","stroke-linejoin":"round","stroke-linecap":"round","stroke-width":+(b.width/c*g).toFixed(3),opacity:+(b.opacity/c).toFixed(3)}));return e.insertBefore(this).translate(b.offsetx,b.offsety)};var cr={},cs=function(b,c,d,e,f,g,h,i,j){return j==null?bB(b,c,d,e,f,g,h,i):a.findDotsAtSegment(b,c,d,e,f,g,h,i,bC(b,c,d,e,f,g,h,i,j))},ct=function(b,c){return function(d,e,f){d=bR(d);var g,h,i,j,k="",l={},m,n=0;for(var o=0,p=d.length;o<p;o++){i=d[o];if(i[0]=="M")g=+i[1],h=+i[2];else{j=cs(g,h,i[1],i[2],i[3],i[4],i[5],i[6]);if(n+j>e){if(c&&!l.start){m=cs(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n),k+=["C"+m.start.x,m.start.y,m.m.x,m.m.y,m.x,m.y];if(f)return k;l.start=k,k=["M"+m.x,m.y+"C"+m.n.x,m.n.y,m.end.x,m.end.y,i[5],i[6]].join(),n+=j,g=+i[5],h=+i[6];continue}if(!b&&!c){m=cs(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n);return{x:m.x,y:m.y,alpha:m.alpha}}}n+=j,g=+i[5],h=+i[6]}k+=i.shift()+i}l.end=k,m=b?n:c?l:a.findDotsAtSegment(g,h,i[0],i[1],i[2],i[3],i[4],i[5],1),m.alpha&&(m={x:m.x,y:m.y,alpha:m.alpha});return m}},cu=ct(1),cv=ct(),cw=ct(0,1);a.getTotalLength=cu,a.getPointAtLength=cv,a.getSubpath=function(a,b,c){if(this.getTotalLength(a)-c<1e-6)return cw(a,b).end;var d=cw(a,c,1);return b?cw(d,b).end:d},cl.getTotalLength=function(){if(this.type=="path"){if(this.node.getTotalLength)return this.node.getTotalLength();return cu(this.attrs.path)}},cl.getPointAtLength=function(a){if(this.type=="path")return cv(this.attrs.path,a)},cl.getSubpath=function(b,c){if(this.type=="path")return a.getSubpath(this.attrs.path,b,c)};var cx=a.easing_formulas={linear:function(a){return a},"<":function(a){return A(a,1.7)},">":function(a){return A(a,.48)},"<>":function(a){var b=.48-a/1.04,c=w.sqrt(.1734+b*b),d=c-b,e=A(z(d),1/3)*(d<0?-1:1),f=-c-b,g=A(z(f),1/3)*(f<0?-1:1),h=e+g+.5;return(1-h)*3*h*h+h*h*h},backIn:function(a){var b=1.70158;return a*a*((b+1)*a-b)},backOut:function(a){a=a-1;var b=1.70158;return a*a*((b+1)*a+b)+1},elastic:function(a){if(a==!!a)return a;return A(2,-10*a)*w.sin((a-.075)*2*B/.3)+1},bounce:function(a){var b=7.5625,c=2.75,d;a<1/c?d=b*a*a:a<2/c?(a-=1.5/c,d=b*a*a+.75):a<2.5/c?(a-=2.25/c,d=b*a*a+.9375):(a-=2.625/c,d=b*a*a+.984375);return d}};cx.easeIn=cx["ease-in"]=cx["<"],cx.easeOut=cx["ease-out"]=cx[">"],cx.easeInOut=cx["ease-in-out"]=cx["<>"],cx["back-in"]=cx.backIn,cx["back-out"]=cx.backOut;var cy=[],cz=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){setTimeout(a,16)},cA=function(){var b=+(new Date),c=0;for(;c<cy.length;c++){var d=cy[c];if(d.el.removed||d.paused)continue;var e=b-d.start,f=d.ms,h=d.easing,i=d.from,j=d.diff,k=d.to,l=d.t,m=d.el,o={},p,r={},s;d.initstatus?(e=(d.initstatus*d.anim.top-d.prev)/(d.percent-d.prev)*f,d.status=d.initstatus,delete d.initstatus,d.stop&&cy.splice(c--,1)):d.status=(d.prev+(d.percent-d.prev)*(e/f))/d.anim.top;if(e<0)continue;if(e<f){var t=h(e/f);for(var u in i)if(i[g](u)){switch(U[u]){case C:p=+i[u]+t*f*j[u];break;case"colour":p="rgb("+[cB(O(i[u].r+t*f*j[u].r)),cB(O(i[u].g+t*f*j[u].g)),cB(O(i[u].b+t*f*j[u].b))].join(",")+")";break;case"path":p=[];for(var v=0,w=i[u].length;v<w;v++){p[v]=[i[u][v][0]];for(var x=1,y=i[u][v].length;x<y;x++)p[v][x]=+i[u][v][x]+t*f*j[u][v][x];p[v]=p[v].join(q)}p=p.join(q);break;case"transform":if(j[u].real){p=[];for(v=0,w=i[u].length;v<w;v++){p[v]=[i[u][v][0]];for(x=1,y=i[u][v].length;x<y;x++)p[v][x]=i[u][v][x]+t*f*j[u][v][x]}}else{var z=function(a){return+i[u][a]+t*f*j[u][a]};p=[["m",z(0),z(1),z(2),z(3),z(4),z(5)]]}break;case"csv":if(u=="clip-rect"){p=[],v=4;while(v--)p[v]=+i[u][v]+t*f*j[u][v]}break;default:var A=[][n](i[u]);p=[],v=m.paper.customAttributes[u].length;while(v--)p[v]=+A[v]+t*f*j[u][v]}o[u]=p}m.attr(o),function(a,b,c){setTimeout(function(){eve("raphael.anim.frame."+a,b,c)})}(m.id,m,d.anim)}else{(function(b,c,d){setTimeout(function(){eve("raphael.anim.frame."+c.id,c,d),eve("raphael.anim.finish."+c.id,c,d),a.is(b,"function")&&b.call(c)})})(d.callback,m,d.anim),m.attr(k),cy.splice(c--,1);if(d.repeat>1&&!d.next){for(s in k)k[g](s)&&(r[s]=d.totalOrigin[s]);d.el.attr(r),cE(d.anim,d.el,d.anim.percents[0],null,d.totalOrigin,d.repeat-1)}d.next&&!d.stop&&cE(d.anim,d.el,d.next,null,d.totalOrigin,d.repeat)}}a.svg&&m&&m.paper&&m.paper.safari(),cy.length&&cz(cA)},cB=function(a){return a>255?255:a<0?0:a};cl.animateWith=function(b,c,d,e,f,g){var h=this;if(h.removed){g&&g.call(h);return h}var i=d instanceof cD?d:a.animation(d,e,f,g),j,k;cE(i,h,i.percents[0],null,h.attr());for(var l=0,m=cy.length;l<m;l++)if(cy[l].anim==c&&cy[l].el==b){cy[m-1].start=cy[l].start;break}return h},cl.onAnimation=function(a){a?eve.on("raphael.anim.frame."+this.id,a):eve.unbind("raphael.anim.frame."+this.id);return this},cD.prototype.delay=function(a){var b=new cD(this.anim,this.ms);b.times=this.times,b.del=+a||0;return b},cD.prototype.repeat=function(a){var b=new cD(this.anim,this.ms);b.del=this.del,b.times=w.floor(x(a,0))||1;return b},a.animation=function(b,c,d,e){if(b instanceof cD)return b;if(a.is(d,"function")||!d)e=e||d||null,d=null;b=Object(b),c=+c||0;var f={},h,i;for(i in b)b[g](i)&&Q(i)!=i&&Q(i)+"%"!=i&&(h=!0,f[i]=b[i]);if(!h)return new cD(b,c);d&&(f.easing=d),e&&(f.callback=e);return new cD({100:f},c)},cl.animate=function(b,c,d,e){var f=this;if(f.removed){e&&e.call(f);return f}var g=b instanceof cD?b:a.animation(b,c,d,e);cE(g,f,g.percents[0],null,f.attr());return f},cl.setTime=function(a,b){a&&b!=null&&this.status(a,y(b,a.ms)/a.ms);return this},cl.status=function(a,b){var c=[],d=0,e,f;if(b!=null){cE(a,this,-1,y(b,1));return this}e=cy.length;for(;d<e;d++){f=cy[d];if(f.el.id==this.id&&(!a||f.anim==a)){if(a)return f.status;c.push({anim:f.anim,status:f.status})}}if(a)return 0;return c},cl.pause=function(a){for(var b=0;b<cy.length;b++)cy[b].el.id==this.id&&(!a||cy[b].anim==a)&&eve("raphael.anim.pause."+this.id,this,cy[b].anim)!==!1&&(cy[b].paused=!0);return this},cl.resume=function(a){for(var b=0;b<cy.length;b++)if(cy[b].el.id==this.id&&(!a||cy[b].anim==a)){var c=cy[b];eve("raphael.anim.resume."+this.id,this,c.anim)!==!1&&(delete c.paused,this.status(c.anim,c.status))}return this},cl.stop=function(a){for(var b=0;b<cy.length;b++)cy[b].el.id==this.id&&(!a||cy[b].anim==a)&&eve("raphael.anim.stop."+this.id,this,cy[b].anim)!==!1&&cy.splice(b--,1);return this},eve.on("raphael.remove",cF),eve.on("raphael.clear",cF),cl.toString=function(){return"Raphaël’s object"};var cG=function(a){this.items=[],this.length=0,this.type="set";if(a)for(var b=0,c=a.length;b<c;b++)a[b]&&(a[b].constructor==cl.constructor||a[b].constructor==cG)&&(this[this.items.length]=this.items[this.items.length]=a[b],this.length++)},cH=cG.prototype;cH.push=function(){var a,b;for(var c=0,d=arguments.length;c<d;c++)a=arguments[c],a&&(a.constructor==cl.constructor||a.constructor==cG)&&(b=this.items.length,this[b]=this.items[b]=a,this.length++);return this},cH.pop=function(){this.length&&delete this[this.length--];return this.items.pop()},cH.forEach=function(a,b){for(var c=0,d=this.items.length;c<d;c++)if(a.call(b,this.items[c],c)===!1)return this;return this};for(var cI in cl)cl[g](cI)&&(cH[cI]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a][m](c,b)})}}(cI));cH.attr=function(b,c){if(b&&a.is(b,E)&&a.is(b[0],"object"))for(var d=0,e=b.length;d<e;d++)this.items[d].attr(b[d]);else for(var f=0,g=this.items.length;f<g;f++)this.items[f].attr(b,c);return this},cH.clear=function(){while(this.length)this.pop()},cH.splice=function(a,b,c){a=a<0?x(this.length+a,0):a,b=x(0,y(this.length-a,b));var d=[],e=[],f=[],g;for(g=2;g<arguments.length;g++)f.push(arguments[g]);for(g=0;g<b;g++)e.push(this[a+g]);for(;g<this.length-a;g++)d.push(this[a+g]);var h=f.length;for(g=0;g<h+d.length;g++)this.items[a+g]=this[a+g]=g<h?f[g]:d[g-h];g=this.items.length=this.length-=b-h;while(this[g])delete this[g++];return new cG(e)},cH.exclude=function(a){for(var b=0,c=this.length;b<c;b++)if(this[b]==a){this.splice(b,1);return!0}},cH.animate=function(b,c,d,e){(a.is(d,"function")||!d)&&(e=d||null);var f=this.items.length,g=f,h,i=this,j;if(!f)return this;e&&(j=function(){!--f&&e.call(i)}),d=a.is(d,D)?d:j;var k=a.animation(b,c,d,j);h=this.items[--g].animate(k);while(g--)this.items[g]&&!this.items[g].removed&&this.items[g].animateWith(h,k,k);return this},cH.insertAfter=function(a){var b=this.items.length;while(b--)this.items[b].insertAfter(a);return this},cH.getBBox=function(){var a=[],b=[],c=[],d=[];for(var e=this.items.length;e--;)if(!this.items[e].removed){var f=this.items[e].getBBox();a.push(f.x),b.push(f.y),c.push(f.x+f.width),d.push(f.y+f.height)}a=y[m](0,a),b=y[m](0,b),c=x[m](0,c),d=x[m](0,d);return{x:a,y:b,x2:c,y2:d,width:c-a,height:d-b}},cH.clone=function(a){a=new cG;for(var b=0,c=this.items.length;b<c;b++)a.push(this.items[b].clone());return a},cH.toString=function(){return"Raphaël‘s set"},a.registerFont=function(a){if(!a.face)return a;this.fonts=this.fonts||{};var b={w:a.w,face:{},glyphs:{}},c=a.face["font-family"];for(var d in a.face)a.face[g](d)&&(b.face[d]=a.face[d]);this.fonts[c]?this.fonts[c].push(b):this.fonts[c]=[b];if(!a.svg){b.face["units-per-em"]=R(a.face["units-per-em"],10);for(var e in a.glyphs)if(a.glyphs[g](e)){var f=a.glyphs[e];b.glyphs[e]={w:f.w,k:{},d:f.d&&"M"+f.d.replace(/[mlcxtrv]/g,function(a){return{l:"L",c:"C",x:"z",t:"m",r:"l",v:"c"}[a]||"M"})+"z"};if(f.k)for(var h in f.k)f[g](h)&&(b.glyphs[e].k[h]=f.k[h])}}return a},k.getFont=function(b,c,d,e){e=e||"normal",d=d||"normal",c=+c||{normal:400,bold:700,lighter:300,bolder:800}[c]||400;if(!!a.fonts){var f=a.fonts[b];if(!f){var h=new RegExp("(^|\\s)"+b.replace(/[^\w\d\s+!~.:_-]/g,p)+"(\\s|$)","i");for(var i in a.fonts)if(a.fonts[g](i)&&h.test(i)){f=a.fonts[i];break}}var j;if(f)for(var k=0,l=f.length;k<l;k++){j=f[k];if(j.face["font-weight"]==c&&(j.face["font-style"]==d||!j.face["font-style"])&&j.face["font-stretch"]==e)break}return j}},k.print=function(b,d,e,f,g,h,i){h=h||"middle",i=x(y(i||0,1),-1);var j=r(e)[s](p),k=0,l=0,m=p,n;a.is(f,e)&&(f=this.getFont(f));if(f){n=(g||16)/f.face["units-per-em"];var o=f.face.bbox[s](c),q=+o[0],t=o[3]-o[1],u=0,v=+o[1]+(h=="baseline"?t+ +f.face.descent:t/2);for(var w=0,z=j.length;w<z;w++){if(j[w]=="\n")k=0,B=0,l=0,u+=t;else{var A=l&&f.glyphs[j[w-1]]||{},B=f.glyphs[j[w]];k+=l?(A.w||f.w)+(A.k&&A.k[j[w]]||0)+f.w*i:0,l=1}B&&B.d&&(m+=a.transformPath(B.d,["t",k*n,u*n,"s",n,n,q,v,"t",(b-q)/n,(d-v)/n]))}}return this.path(m).attr({fill:"#000",stroke:"none"})},k.add=function(b){if(a.is(b,"array")){var c=this.set(),e=0,f=b.length,h;for(;e<f;e++)h=b[e]||{},d[g](h.type)&&c.push(this[h.type]().attr(h))}return c},a.format=function(b,c){var d=a.is(c,E)?[0][n](c):arguments;b&&a.is(b,D)&&d.length-1&&(b=b.replace(e,function(a,b){return d[++b]==null?p:d[b]}));return b||p},a.fullfill=function(){var a=/\{([^\}]+)\}/g,b=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g,c=function(a,c,d){var e=d;c.replace(b,function(a,b,c,d,f){b=b||d,e&&(b in e&&(e=e[b]),typeof e=="function"&&f&&(e=e()))}),e=(e==null||e==d?a:e)+"";return e};return function(b,d){return String(b).replace(a,function(a,b){return c(a,b,d)})}}(),a.ninja=function(){i.was?h.win.Raphael=i.is:delete Raphael;return a},a.st=cH,function(b,c,d){function e(){/in/.test(b.readyState)?setTimeout(e,9):a.eve("raphael.DOMload")}b.readyState==null&&b.addEventListener&&(b.addEventListener(c,d=function(){b.removeEventListener(c,d,!1),b.readyState="complete"},!1),b.readyState="loading"),e()}(document,"DOMContentLoaded"),i.was?h.win.Raphael=a:Raphael=a,eve.on("raphael.DOMload",function(){b=!0})}(),window.Raphael.svg&&function(a){var b="hasOwnProperty",c=String,d=parseFloat,e=parseInt,f=Math,g=f.max,h=f.abs,i=f.pow,j=/[, ]+/,k=a.eve,l="",m=" ",n="http://www.w3.org/1999/xlink",o={block:"M5,0 0,2.5 5,5z",classic:"M5,0 0,2.5 5,5 3.5,3 3.5,2z",diamond:"M2.5,0 5,2.5 2.5,5 0,2.5z",open:"M6,1 1,3.5 6,6",oval:"M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z"},p={};a.toString=function(){return"Your browser supports SVG.\nYou are running Raphaël "+this.version};var q=function(d,e){if(e){typeof d=="string"&&(d=q(d));for(var f in e)e[b](f)&&(f.substring(0,6)=="xlink:"?d.setAttributeNS(n,f.substring(6),c(e[f])):d.setAttribute(f,c(e[f])))}else d=a._g.doc.createElementNS("http://www.w3.org/2000/svg",d),d.style&&(d.style.webkitTapHighlightColor="rgba(0,0,0,0)");return d},r=function(b,e){var j="linear",k=b.id+e,m=.5,n=.5,o=b.node,p=b.paper,r=o.style,s=a._g.doc.getElementById(k);if(!s){e=c(e).replace(a._radial_gradient,function(a,b,c){j="radial";if(b&&c){m=d(b),n=d(c);var e=(n>.5)*2-1;i(m-.5,2)+i(n-.5,2)>.25&&(n=f.sqrt(.25-i(m-.5,2))*e+.5)&&n!=.5&&(n=n.toFixed(5)-1e-5*e)}return l}),e=e.split(/\s*\-\s*/);if(j=="linear"){var t=e.shift();t=-d(t);if(isNaN(t))return null;var u=[0,0,f.cos(a.rad(t)),f.sin(a.rad(t))],v=1/(g(h(u[2]),h(u[3]))||1);u[2]*=v,u[3]*=v,u[2]<0&&(u[0]=-u[2],u[2]=0),u[3]<0&&(u[1]=-u[3],u[3]=0)}var w=a._parseDots(e);if(!w)return null;k=k.replace(/[\(\)\s,\xb0#]/g,"_"),b.gradient&&k!=b.gradient.id&&(p.defs.removeChild(b.gradient),delete b.gradient);if(!b.gradient){s=q(j+"Gradient",{id:k}),b.gradient=s,q(s,j=="radial"?{fx:m,fy:n}:{x1:u[0],y1:u[1],x2:u[2],y2:u[3],gradientTransform:b.matrix.invert()}),p.defs.appendChild(s);for(var x=0,y=w.length;x<y;x++)s.appendChild(q("stop",{offset:w[x].offset?w[x].offset:x?"100%":"0%","stop-color":w[x].color||"#fff"}))}}q(o,{fill:"url(#"+k+")",opacity:1,"fill-opacity":1}),r.fill=l,r.opacity=1,r.fillOpacity=1;return 1},s=function(a){var b=a.getBBox(1);q(a.pattern,{patternTransform:a.matrix.invert()+" translate("+b.x+","+b.y+")"})},t=function(d,e,f){if(d.type=="path"){var g=c(e).toLowerCase().split("-"),h=d.paper,i=f?"end":"start",j=d.node,k=d.attrs,m=k["stroke-width"],n=g.length,r="classic",s,t,u,v,w,x=3,y=3,z=5;while(n--)switch(g[n]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":r=g[n];break;case"wide":y=5;break;case"narrow":y=2;break;case"long":x=5;break;case"short":x=2}r=="open"?(x+=2,y+=2,z+=2,u=1,v=f?4:1,w={fill:"none",stroke:k.stroke}):(v=u=x/2,w={fill:k.stroke,stroke:"none"}),d._.arrows?f?(d._.arrows.endPath&&p[d._.arrows.endPath]--,d._.arrows.endMarker&&p[d._.arrows.endMarker]--):(d._.arrows.startPath&&p[d._.arrows.startPath]--,d._.arrows.startMarker&&p[d._.arrows.startMarker]--):d._.arrows={};if(r!="none"){var A="raphael-marker-"+r,B="raphael-marker-"+i+r+x+y;a._g.doc.getElementById(A)?p[A]++:(h.defs.appendChild(q(q("path"),{"stroke-linecap":"round",d:o[r],id:A})),p[A]=1);var C=a._g.doc.getElementById(B),D;C?(p[B]++,D=C.getElementsByTagName("use")[0]):(C=q(q("marker"),{id:B,markerHeight:y,markerWidth:x,orient:"auto",refX:v,refY:y/2}),D=q(q("use"),{"xlink:href":"#"+A,transform:(f?"rotate(180 "+x/2+" "+y/2+") ":l)+"scale("+x/z+","+y/z+")","stroke-width":(1/((x/z+y/z)/2)).toFixed(4)}),C.appendChild(D),h.defs.appendChild(C),p[B]=1),q(D,w);var F=u*(r!="diamond"&&r!="oval");f?(s=d._.arrows.startdx*m||0,t=a.getTotalLength(k.path)-F*m):(s=F*m,t=a.getTotalLength(k.path)-(d._.arrows.enddx*m||0)),w={},w["marker-"+i]="url(#"+B+")";if(t||s)w.d=Raphael.getSubpath(k.path,s,t);q(j,w),d._.arrows[i+"Path"]=A,d._.arrows[i+"Marker"]=B,d._.arrows[i+"dx"]=F,d._.arrows[i+"Type"]=r,d._.arrows[i+"String"]=e}else f?(s=d._.arrows.startdx*m||0,t=a.getTotalLength(k.path)-s):(s=0,t=a.getTotalLength(k.path)-(d._.arrows.enddx*m||0)),d._.arrows[i+"Path"]&&q(j,{d:Raphael.getSubpath(k.path,s,t)}),delete d._.arrows[i+"Path"],delete d._.arrows[i+"Marker"],delete d._.arrows[i+"dx"],delete d._.arrows[i+"Type"],delete d._.arrows[i+"String"];for(w in p)if(p[b](w)&&!p[w]){var G=a._g.doc.getElementById(w);G&&G.parentNode.removeChild(G)}}},u={"":[0],none:[0],"-":[3,1],".":[1,1],"-.":[3,1,1,1],"-..":[3,1,1,1,1,1],". ":[1,3],"- ":[4,3],"--":[8,3],"- .":[4,3,1,3],"--.":[8,3,1,3],"--..":[8,3,1,3,1,3]},v=function(a,b,d){b=u[c(b).toLowerCase()];if(b){var e=a.attrs["stroke-width"]||"1",f={round:e,square:e,butt:0}[a.attrs["stroke-linecap"]||d["stroke-linecap"]]||0,g=[],h=b.length;while(h--)g[h]=b[h]*e+(h%2?1:-1)*f;q(a.node,{"stroke-dasharray":g.join(",")})}},w=function(d,f){var i=d.node,k=d.attrs,m=i.style.visibility;i.style.visibility="hidden";for(var o in f)if(f[b](o)){if(!a._availableAttrs[b](o))continue;var p=f[o];k[o]=p;switch(o){case"blur":d.blur(p);break;case"href":case"title":case"target":var u=i.parentNode;if(u.tagName.toLowerCase()!="a"){var w=q("a");u.insertBefore(w,i),w.appendChild(i),u=w}o=="target"?u.setAttributeNS(n,"show",p=="blank"?"new":p):u.setAttributeNS(n,o,p);break;case"cursor":i.style.cursor=p;break;case"transform":d.transform(p);break;case"arrow-start":t(d,p);break;case"arrow-end":t(d,p,1);break;case"clip-rect":var x=c(p).split(j);if(x.length==4){d.clip&&d.clip.parentNode.parentNode.removeChild(d.clip.parentNode);var z=q("clipPath"),A=q("rect");z.id=a.createUUID(),q(A,{x:x[0],y:x[1],width:x[2],height:x[3]}),z.appendChild(A),d.paper.defs.appendChild(z),q(i,{"clip-path":"url(#"+z.id+")"}),d.clip=A}if(!p){var B=i.getAttribute("clip-path");if(B){var C=a._g.doc.getElementById(B.replace(/(^url\(#|\)$)/g,l));C&&C.parentNode.removeChild(C),q(i,{"clip-path":l}),delete d.clip}}break;case"path":d.type=="path"&&(q(i,{d:p?k.path=a._pathToAbsolute(p):"M0,0"}),d._.dirty=1,d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1)));break;case"width":i.setAttribute(o,p),d._.dirty=1;if(k.fx)o="x",p=k.x;else break;case"x":k.fx&&(p=-k.x-(k.width||0));case"rx":if(o=="rx"&&d.type=="rect")break;case"cx":i.setAttribute(o,p),d.pattern&&s(d),d._.dirty=1;break;case"height":i.setAttribute(o,p),d._.dirty=1;if(k.fy)o="y",p=k.y;else break;case"y":k.fy&&(p=-k.y-(k.height||0));case"ry":if(o=="ry"&&d.type=="rect")break;case"cy":i.setAttribute(o,p),d.pattern&&s(d),d._.dirty=1;break;case"r":d.type=="rect"?q(i,{rx:p,ry:p}):i.setAttribute(o,p),d._.dirty=1;break;case"src":d.type=="image"&&i.setAttributeNS(n,"href",p);break;case"stroke-width":if(d._.sx!=1||d._.sy!=1)p/=g(h(d._.sx),h(d._.sy))||1;d.paper._vbSize&&(p*=d.paper._vbSize),i.setAttribute(o,p),k["stroke-dasharray"]&&v(d,k["stroke-dasharray"],f),d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1));break;case"stroke-dasharray":v(d,p,f);break;case"fill":var D=c(p).match(a._ISURL);if(D){z=q("pattern");var F=q("image");z.id=a.createUUID(),q(z,{x:0,y:0,patternUnits:"userSpaceOnUse",height:1,width:1}),q(F,{x:0,y:0,"xlink:href":D[1]}),z.appendChild(F),function(b){a._preload(D[1],function(){var a=this.offsetWidth,c=this.offsetHeight;q(b,{width:a,height:c}),q(F,{width:a,height:c}),d.paper.safari()})}(z),d.paper.defs.appendChild(z),q(i,{fill:"url(#"+z.id+")"}),d.pattern=z,d.pattern&&s(d);break}var G=a.getRGB(p);if(!G.error)delete f.gradient,delete k.gradient,!a.is(k.opacity,"undefined")&&a.is(f.opacity,"undefined")&&q(i,{opacity:k.opacity}),!a.is(k["fill-opacity"],"undefined")&&a.is(f["fill-opacity"],"undefined")&&q(i,{"fill-opacity":k["fill-opacity"]});else if((d.type=="circle"||d.type=="ellipse"||c(p).charAt()!="r")&&r(d,p)){if("opacity"in k||"fill-opacity"in k){var H=a._g.doc.getElementById(i.getAttribute("fill").replace(/^url\(#|\)$/g,l));if(H){var I=H.getElementsByTagName("stop");q(I[I.length-1],{"stop-opacity":("opacity"in k?k.opacity:1)*("fill-opacity"in k?k["fill-opacity"]:1)})}}k.gradient=p,k.fill="none";break}G[b]("opacity")&&q(i,{"fill-opacity":G.opacity>1?G.opacity/100:G.opacity});case"stroke":G=a.getRGB(p),i.setAttribute(o,G.hex),o=="stroke"&&G[b]("opacity")&&q(i,{"stroke-opacity":G.opacity>1?G.opacity/100:G.opacity}),o=="stroke"&&d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1));break;case"gradient":(d.type=="circle"||d.type=="ellipse"||c(p).charAt()!="r")&&r(d,p);break;case"opacity":k.gradient&&!k[b]("stroke-opacity")&&q(i,{"stroke-opacity":p>1?p/100:p});case"fill-opacity":if(k.gradient){H=a._g.doc.getElementById(i.getAttribute("fill").replace(/^url\(#|\)$/g,l)),H&&(I=H.getElementsByTagName("stop"),q(I[I.length-1],{"stop-opacity":p}));break};default:o=="font-size"&&(p=e(p,10)+"px");var J=o.replace(/(\-.)/g,function(a){return a.substring(1).toUpperCase()});i.style[J]=p,d._.dirty=1,i.setAttribute(o,p)}}y(d,f),i.style.visibility=m},x=1.2,y=function(d,f){if(d.type=="text"&&!!(f[b]("text")||f[b]("font")||f[b]("font-size")||f[b]("x")||f[b]("y"))){var g=d.attrs,h=d.node,i=h.firstChild?e(a._g.doc.defaultView.getComputedStyle(h.firstChild,l).getPropertyValue("font-size"),10):10;if(f[b]("text")){g.text=f.text;while(h.firstChild)h.removeChild(h.firstChild);var j=c(f.text).split("\n"),k=[],m;for(var n=0,o=j.length;n<o;n++)m=q("tspan"),n&&q(m,{dy:i*x,x:g.x}),m.appendChild(a._g.doc.createTextNode(j[n])),h.appendChild(m),k[n]=m}else{k=h.getElementsByTagName("tspan");for(n=0,o=k.length;n<o;n++)n?q(k[n],{dy:i*x,x:g.x}):q(k[0],{dy:0})}q(h,{x:g.x,y:g.y}),d._.dirty=1;var p=d._getBBox(),r=g.y-(p.y+p.height/2);r&&a.is(r,"finite")&&q(k[0],{dy:r})}},z=function(b,c){var d=0,e=0;this[0]=this.node=b,b.raphael=!0,this.id=a._oid++,b.raphaelid=this.id,this.matrix=a.matrix(),this.realPath=null,this.paper=c,this.attrs=this.attrs||{},this._={transform:[],sx:1,sy:1,deg:0,dx:0,dy:0,dirty:1},!c.bottom&&(c.bottom=this),this.prev=c.top,c.top&&(c.top.next=this),c.top=this,this.next=null},A=a.el;z.prototype=A,A.constructor=z,a._engine.path=function(a,b){var c=q("path");b.canvas&&b.canvas.appendChild(c);var d=new z(c,b);d.type="path",w(d,{fill:"none",stroke:"#000",path:a});return d},A.rotate=function(a,b,e){if(this.removed)return this;a=c(a).split(j),a.length-1&&(b=d(a[1]),e=d(a[2])),a=d(a[0]),e==null&&(b=e);if(b==null||e==null){var f=this.getBBox(1);b=f.x+f.width/2,e=f.y+f.height/2}this.transform(this._.transform.concat([["r",a,b,e]]));return this},A.scale=function(a,b,e,f){if(this.removed)return this;a=c(a).split(j),a.length-1&&(b=d(a[1]),e=d(a[2]),f=d(a[3])),a=d(a[0]),b==null&&(b=a),f==null&&(e=f);if(e==null||f==null)var g=this.getBBox(1);e=e==null?g.x+g.width/2:e,f=f==null?g.y+g.height/2:f,this.transform(this._.transform.concat([["s",a,b,e,f]]));return this},A.translate=function(a,b){if(this.removed)return this;a=c(a).split(j),a.length-1&&(b=d(a[1])),a=d(a[0])||0,b=+b||0,this.transform(this._.transform.concat([["t",a,b]]));return this},A.transform=function(c){var d=this._;if(c==null)return d.transform;a._extractTransform(this,c),this.clip&&q(this.clip,{transform:this.matrix.invert()}),this.pattern&&s(this),this.node&&q(this.node,{transform:this.matrix});if(d.sx!=1||d.sy!=1){var e=this.attrs[b]("stroke-width")?this.attrs["stroke-width"]:1;this.attr({"stroke-width":e})}return this},A.hide=function(){!this.removed&&this.paper.safari(this.node.style.display="none");return this},A.show=function(){!this.removed&&this.paper.safari(this.node.style.display="");return this},A.remove=function(){if(!this.removed&&!!this.node.parentNode){var b=this.paper;b.__set__&&b.__set__.exclude(this),k.unbind("raphael.*.*."+this.id),this.gradient&&b.defs.removeChild(this.gradient),a._tear(this,b),this.node.parentNode.tagName.toLowerCase()=="a"?this.node.parentNode.parentNode.removeChild(this.node.parentNode):this.node.parentNode.removeChild(this.node);for(var c in this)this[c]=typeof this[c]=="function"?a._removedFactory(c):null;this.removed=!0}},A._getBBox=function(){if(this.node.style.display=="none"){this.show();var a=!0}var b={};try{b=this.node.getBBox()}catch(c){}finally{b=b||{}}a&&this.hide();return b},A.attr=function(c,d){if(this.removed)return this;if(c==null){var e={};for(var f in this.attrs)this.attrs[b](f)&&(e[f]=this.attrs[f]);e.gradient&&e.fill=="none"&&(e.fill=e.gradient)&&delete e.gradient,e.transform=this._.transform;return e}if(d==null&&a.is(c,"string")){if(c=="fill"&&this.attrs.fill=="none"&&this.attrs.gradient)return this.attrs.gradient;if(c=="transform")return this._.transform;var g=c.split(j),h={};for(var i=0,l=g.length;i<l;i++)c=g[i],c in this.attrs?h[c]=this.attrs[c]:a.is(this.paper.customAttributes[c],"function")?h[c]=this.paper.customAttributes[c].def:h[c]=a._availableAttrs[c];return l-1?h:h[g[0]]}if(d==null&&a.is(c,"array")){h={};for(i=0,l=c.length;i<l;i++)h[c[i]]=this.attr(c[i]);return h}if(d!=null){var m={};m[c]=d}else c!=null&&a.is(c,"object")&&(m=c);for(var n in m)k("raphael.attr."+n+"."+this.id,this,m[n]);for(n in this.paper.customAttributes)if(this.paper.customAttributes[b](n)&&m[b](n)&&a.is(this.paper.customAttributes[n],"function")){var o=this.paper.customAttributes[n].apply(this,[].concat(m[n]));this.attrs[n]=m[n];for(var p in o)o[b](p)&&(m[p]=o[p])}w(this,m);return this},A.toFront=function(){if(this.removed)return this;this.node.parentNode.tagName.toLowerCase()=="a"?this.node.parentNode.parentNode.appendChild(this.node.parentNode):this.node.parentNode.appendChild(this.node);var b=this.paper;b.top!=this&&a._tofront(this,b);return this},A.toBack=function(){if(this.removed)return this;var b=this.node.parentNode;b.tagName.toLowerCase()=="a"?b.parentNode.insertBefore(this.node.parentNode,this.node.parentNode.parentNode.firstChild):b.firstChild!=this.node&&b.insertBefore(this.node,this.node.parentNode.firstChild),a._toback(this,this.paper);var c=this.paper;return this},A.insertAfter=function(b){if(this.removed)return this;var c=b.node||b[b.length-1].node;c.nextSibling?c.parentNode.insertBefore(this.node,c.nextSibling):c.parentNode.appendChild(this.node),a._insertafter(this,b,this.paper);return this},A.insertBefore=function(b){if(this.removed)return this;var c=b.node||b[0].node;c.parentNode.insertBefore(this.node,c),a._insertbefore(this,b,this.paper);return this},A.blur=function(b){var c=this;if(+b!==0){var d=q("filter"),e=q("feGaussianBlur");c.attrs.blur=b,d.id=a.createUUID(),q(e,{stdDeviation:+b||1.5}),d.appendChild(e),c.paper.defs.appendChild(d),c._blur=d,q(c.node,{filter:"url(#"+d.id+")"})}else c._blur&&(c._blur.parentNode.removeChild(c._blur),delete c._blur,delete c.attrs.blur),c.node.removeAttribute("filter")},a._engine.circle=function(a,b,c,d){var e=q("circle");a.canvas&&a.canvas.appendChild(e);var f=new z(e,a);f.attrs={cx:b,cy:c,r:d,fill:"none",stroke:"#000"},f.type="circle",q(e,f.attrs);return f},a._engine.rect=function(a,b,c,d,e,f){var g=q("rect");a.canvas&&a.canvas.appendChild(g);var h=new z(g,a);h.attrs={x:b,y:c,width:d,height:e,r:f||0,rx:f||0,ry:f||0,fill:"none",stroke:"#000"},h.type="rect",q(g,h.attrs);return h},a._engine.ellipse=function(a,b,c,d,e){var f=q("ellipse");a.canvas&&a.canvas.appendChild(f);var g=new z(f,a);g.attrs={cx:b,cy:c,rx:d,ry:e,fill:"none",stroke:"#000"},g.type="ellipse",q(f,g.attrs);return g},a._engine.image=function(a,b,c,d,e,f){var g=q("image");q(g,{x:c,y:d,width:e,height:f,preserveAspectRatio:"none"}),g.setAttributeNS(n,"href",b),a.canvas&&a.canvas.appendChild(g);var h=new z(g,a);h.attrs={x:c,y:d,width:e,height:f,src:b},h.type="image";return h},a._engine.text=function(b,c,d,e){var f=q("text");b.canvas&&b.canvas.appendChild(f);var g=new z(f,b);g.attrs={x:c,y:d,"text-anchor":"middle",text:e,font:a._availableAttrs.font,stroke:"none",fill:"#000"},g.type="text",w(g,g.attrs);return g},a._engine.setSize=function(a,b){this.width=a||this.width,this.height=b||this.height,this.canvas.setAttribute("width",this.width),this.canvas.setAttribute("height",this.height),this._viewBox&&this.setViewBox.apply(this,this._viewBox);return this},a._engine.create=function(){var b=a._getContainer.apply(0,arguments),c=b&&b.container,d=b.x,e=b.y,f=b.width,g=b.height;if(!c)throw new Error("SVG container not found.");var h=q("svg"),i="overflow:hidden;",j;d=d||0,e=e||0,f=f||512,g=g||342,q(h,{height:g,version:1.1,width:f,xmlns:"http://www.w3.org/2000/svg"}),c==1?(h.style.cssText=i+"position:absolute;left:"+d+"px;top:"+e+"px",a._g.doc.body.appendChild(h),j=1):(h.style.cssText=i+"position:relative",c.firstChild?c.insertBefore(h,c.firstChild):c.appendChild(h)),c=new a._Paper,c.width=f,c.height=g,c.canvas=h,c.clear(),c._left=c._top=0,j&&(c.renderfix=function(){}),c.renderfix();return c},a._engine.setViewBox=function(a,b,c,d,e){k("raphael.setViewBox",this,this._viewBox,[a,b,c,d,e]);var f=g(c/this.width,d/this.height),h=this.top,i=e?"meet":"xMinYMin",j,l;a==null?(this._vbSize&&(f=1),delete this._vbSize,j="0 0 "+this.width+m+this.height):(this._vbSize=f,j=a+m+b+m+c+m+d),q(this.canvas,{viewBox:j,preserveAspectRatio:i});while(f&&h)l="stroke-width"in h.attrs?h.attrs["stroke-width"]:1,h.attr({"stroke-width":l}),h._.dirty=1,h._.dirtyT=1,h=h.prev;this._viewBox=[a,b,c,d,!!e];return this},a.prototype.renderfix=function(){var a=this.canvas,b=a.style,c;try{c=a.getScreenCTM()||a.createSVGMatrix()}catch(d){c=a.createSVGMatrix()}var e=-c.e%1,f=-c.f%1;if(e||f)e&&(this._left=(this._left+e)%1,b.left=this._left+"px"),f&&(this._top=(this._top+f)%1,b.top=this._top+"px")},a.prototype.clear=function(){a.eve("raphael.clear",this);var b=this.canvas;while(b.firstChild)b.removeChild(b.firstChild);this.bottom=this.top=null,(this.desc=q("desc")).appendChild(a._g.doc.createTextNode("Created with Raphaël "+a.version)),b.appendChild(this.desc),b.appendChild(this.defs=q("defs"))},a.prototype.remove=function(){k("raphael.remove",this),this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var b in this)this[b]=typeof this[b]=="function"?a._removedFactory(b):null};var B=a.st;for(var C in A)A[b](C)&&!B[b](C)&&(B[C]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(C))}(window.Raphael),window.Raphael.vml&&function(a){var b="hasOwnProperty",c=String,d=parseFloat,e=Math,f=e.round,g=e.max,h=e.min,i=e.abs,j="fill",k=/[, ]+/,l=a.eve,m=" progid:DXImageTransform.Microsoft",n=" ",o="",p={M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},q=/([clmz]),?([^clmz]*)/gi,r=/ progid:\S+Blur\([^\)]+\)/g,s=/-?[^,\s-]+/g,t="position:absolute;left:0;top:0;width:1px;height:1px",u=21600,v={path:1,rect:1,image:1},w={circle:1,ellipse:1},x=function(b){var d=/[ahqstv]/ig,e=a._pathToAbsolute;c(b).match(d)&&(e=a._path2curve),d=/[clmz]/g;if(e==a._pathToAbsolute&&!c(b).match(d)){var g=c(b).replace(q,function(a,b,c){var d=[],e=b.toLowerCase()=="m",g=p[b];c.replace(s,function(a){e&&d.length==2&&(g+=d+p[b=="m"?"l":"L"],d=[]),d.push(f(a*u))});return g+d});return g}var h=e(b),i,j;g=[];for(var k=0,l=h.length;k<l;k++){i=h[k],j=h[k][0].toLowerCase(),j=="z"&&(j="x");for(var m=1,r=i.length;m<r;m++)j+=f(i[m]*u)+(m!=r-1?",":o);g.push(j)}return g.join(n)},y=function(b,c,d){var e=a.matrix();e.rotate(-b,.5,.5);return{dx:e.x(c,d),dy:e.y(c,d)}},z=function(a,b,c,d,e,f){var g=a._,h=a.matrix,k=g.fillpos,l=a.node,m=l.style,o=1,p="",q,r=u/b,s=u/c;m.visibility="hidden";if(!!b&&!!c){l.coordsize=i(r)+n+i(s),m.rotation=f*(b*c<0?-1:1);if(f){var t=y(f,d,e);d=t.dx,e=t.dy}b<0&&(p+="x"),c<0&&(p+=" y")&&(o=-1),m.flip=p,l.coordorigin=d*-r+n+e*-s;if(k||g.fillsize){var v=l.getElementsByTagName(j);v=v&&v[0],l.removeChild(v),k&&(t=y(f,h.x(k[0],k[1]),h.y(k[0],k[1])),v.position=t.dx*o+n+t.dy*o),g.fillsize&&(v.size=g.fillsize[0]*i(b)+n+g.fillsize[1]*i(c)),l.appendChild(v)}m.visibility="visible"}};a.toString=function(){return"Your browser doesn’t support SVG. Falling down to VML.\nYou are running Raphaël "+this.version};var A=function(a,b,d){var e=c(b).toLowerCase().split("-"),f=d?"end":"start",g=e.length,h="classic",i="medium",j="medium";while(g--)switch(e[g]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":h=e[g];break;case"wide":case"narrow":j=e[g];break;case"long":case"short":i=e[g]}var k=a.node.getElementsByTagName("stroke")[0];k[f+"arrow"]=h,k[f+"arrowlength"]=i,k[f+"arrowwidth"]=j},B=function(e,i){e.attrs=e.attrs||{};var l=e.node,m=e.attrs,p=l.style,q,r=v[e.type]&&(i.x!=m.x||i.y!=m.y||i.width!=m.width||i.height!=m.height||i.cx!=m.cx||i.cy!=m.cy||i.rx!=m.rx||i.ry!=m.ry||i.r!=m.r),s=w[e.type]&&(m.cx!=i.cx||m.cy!=i.cy||m.r!=i.r||m.rx!=i.rx||m.ry!=i.ry),t=e;for(var y in i)i[b](y)&&(m[y]=i[y]);r&&(m.path=a._getPath[e.type](e),e._.dirty=1),i.href&&(l.href=i.href),i.title&&(l.title=i.title),i.target&&(l.target=i.target),i.cursor&&(p.cursor=i.cursor),"blur"in i&&e.blur(i.blur);if(i.path&&e.type=="path"||r)l.path=x(~c(m.path).toLowerCase().indexOf("r")?a._pathToAbsolute(m.path):m.path),e.type=="image"&&(e._.fillpos=[m.x,m.y],e._.fillsize=[m.width,m.height],z(e,1,1,0,0,0));"transform"in i&&e.transform(i.transform);if(s){var B=+m.cx,D=+m.cy,E=+m.rx||+m.r||0,G=+m.ry||+m.r||0;l.path=a.format("ar{0},{1},{2},{3},{4},{1},{4},{1}x",f((B-E)*u),f((D-G)*u),f((B+E)*u),f((D+G)*u),f(B*u))}if("clip-rect"in i){var H=c(i["clip-rect"]).split(k);if(H.length==4){H[2]=+H[2]+ +H[0],H[3]=+H[3]+ +H[1];var I=l.clipRect||a._g.doc.createElement("div"),J=I.style;J.clip=a.format("rect({1}px {2}px {3}px {0}px)",H),l.clipRect||(J.position="absolute",J.top=0,J.left=0,J.width=e.paper.width+"px",J.height=e.paper.height+"px",l.parentNode.insertBefore(I,l),I.appendChild(l),l.clipRect=I)}i["clip-rect"]||l.clipRect&&(l.clipRect.style.clip="auto")}if(e.textpath){var K=e.textpath.style;i.font&&(K.font=i.font),i["font-family"]&&(K.fontFamily='"'+i["font-family"].split(",")[0].replace(/^['"]+|['"]+$/g,o)+'"'),i["font-size"]&&(K.fontSize=i["font-size"]),i["font-weight"]&&(K.fontWeight=i["font-weight"]),i["font-style"]&&(K.fontStyle=i["font-style"])}"arrow-start"in i&&A(t,i["arrow-start"]),"arrow-end"in i&&A(t,i["arrow-end"],1);if(i.opacity!=null||i["stroke-width"]!=null||i.fill!=null||i.src!=null||i.stroke!=null||i["stroke-width"]!=null||i["stroke-opacity"]!=null||i["fill-opacity"]!=null||i["stroke-dasharray"]!=null||i["stroke-miterlimit"]!=null||i["stroke-linejoin"]!=null||i["stroke-linecap"]!=null){var L=l.getElementsByTagName(j),M=!1;L=L&&L[0],!L&&(M=L=F(j)),e.type=="image"&&i.src&&(L.src=i.src),i.fill&&(L.on=!0);if(L.on==null||i.fill=="none"||i.fill===null)L.on=!1;if(L.on&&i.fill){var N=c(i.fill).match(a._ISURL);if(N){L.parentNode==l&&l.removeChild(L),L.rotate=!0,L.src=N[1],L.type="tile";var O=e.getBBox(1);L.position=O.x+n+O.y,e._.fillpos=[O.x,O.y],a._preload(N[1],function(){e._.fillsize=[this.offsetWidth,this.offsetHeight]})}else L.color=a.getRGB(i.fill).hex,L.src=o,L.type="solid",a.getRGB(i.fill).error&&(t.type in{circle:1,ellipse:1}||c(i.fill).charAt()!="r")&&C(t,i.fill,L)&&(m.fill="none",m.gradient=i.fill,L.rotate=!1)}if("fill-opacity"in i||"opacity"in i){var P=((+m["fill-opacity"]+1||2)-1)*((+m.opacity+1||2)-1)*((+a.getRGB(i.fill).o+1||2)-1);P=h(g(P,0),1),L.opacity=P,L.src&&(L.color="none")}l.appendChild(L);var Q=l.getElementsByTagName("stroke")&&l.getElementsByTagName("stroke")[0],T=!1;!Q&&(T=Q=F("stroke"));if(i.stroke&&i.stroke!="none"||i["stroke-width"]||i["stroke-opacity"]!=null||i["stroke-dasharray"]||i["stroke-miterlimit"]||i["stroke-linejoin"]||i["stroke-linecap"])Q.on=!0;(i.stroke=="none"||i.stroke===null||Q.on==null||i.stroke==0||i["stroke-width"]==0)&&(Q.on=!1);var U=a.getRGB(i.stroke);Q.on&&i.stroke&&(Q.color=U.hex),P=((+m["stroke-opacity"]+1||2)-1)*((+m.opacity+1||2)-1)*((+U.o+1||2)-1);var V=(d(i["stroke-width"])||1)*.75;P=h(g(P,0),1),i["stroke-width"]==null&&(V=m["stroke-width"]),i["stroke-width"]&&(Q.weight=V),V&&V<1&&(P*=V)&&(Q.weight=1),Q.opacity=P,i["stroke-linejoin"]&&(Q.joinstyle=i["stroke-linejoin"]||"miter"),Q.miterlimit=i["stroke-miterlimit"]||8,i["stroke-linecap"]&&(Q.endcap=i["stroke-linecap"]=="butt"?"flat":i["stroke-linecap"]=="square"?"square":"round");if(i["stroke-dasharray"]){var W={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};Q.dashstyle=W[b](i["stroke-dasharray"])?W[i["stroke-dasharray"]]:o}T&&l.appendChild(Q)}if(t.type=="text"){t.paper.canvas.style.display=o;var X=t.paper.span,Y=100,Z=m.font&&m.font.match(/\d+(?:\.\d*)?(?=px)/);p=X.style,m.font&&(p.font=m.font),m["font-family"]&&(p.fontFamily=m["font-family"]),m["font-weight"]&&(p.fontWeight=m["font-weight"]),m["font-style"]&&(p.fontStyle=m["font-style"]),Z=d(m["font-size"]||Z&&Z[0])||10,p.fontSize=Z*Y+"px",t.textpath.string&&(X.innerHTML=c(t.textpath.string).replace(/</g,"&#60;").replace(/&/g,"&#38;").replace(/\n/g,"<br>"));var $=X.getBoundingClientRect();t.W=m.w=($.right-$.left)/Y,t.H=m.h=($.bottom-$.top)/Y,t.X=m.x,t.Y=m.y+t.H/2,("x"in i||"y"in i)&&(t.path.v=a.format("m{0},{1}l{2},{1}",f(m.x*u),f(m.y*u),f(m.x*u)+1));var _=["x","y","text","font","font-family","font-weight","font-style","font-size"];for(var ba=0,bb=_.length;ba<bb;ba++)if(_[ba]in i){t._.dirty=1;break}switch(m["text-anchor"]){case"start":t.textpath.style["v-text-align"]="left",t.bbx=t.W/2;break;case"end":t.textpath.style["v-text-align"]="right",t.bbx=-t.W/2;break;default:t.textpath.style["v-text-align"]="center",t.bbx=0}t.textpath.style["v-text-kern"]=!0}},C=function(b,f,g){b.attrs=b.attrs||{};var h=b.attrs,i=Math.pow,j,k,l="linear",m=".5 .5";b.attrs.gradient=f,f=c(f).replace(a._radial_gradient,function(a,b,c){l="radial",b&&c&&(b=d(b),c=d(c),i(b-.5,2)+i(c-.5,2)>.25&&(c=e.sqrt(.25-i(b-.5,2))*((c>.5)*2-1)+.5),m=b+n+c);return o}),f=f.split(/\s*\-\s*/);if(l=="linear"){var p=f.shift();p=-d(p);if(isNaN(p))return null}var q=a._parseDots(f);if(!q)return null;b=b.shape||b.node;if(q.length){b.removeChild(g),g.on=!0,g.method="none",g.color=q[0].color,g.color2=q[q.length-1].color;var r=[];for(var s=0,t=q.length;s<t;s++)q[s].offset&&r.push(q[s].offset+n+q[s].color);g.colors=r.length?r.join():"0% "+g.color,l=="radial"?(g.type="gradientTitle",g.focus="100%",g.focussize="0 0",g.focusposition=m,g.angle=0):(g.type="gradient",g.angle=(270-p)%360),b.appendChild(g)}return 1},D=function(b,c){this[0]=this.node=b,b.raphael=!0,this.id=a._oid++,b.raphaelid=this.id,this.X=0,this.Y=0,this.attrs={},this.paper=c,this.matrix=a.matrix(),this._={transform:[],sx:1,sy:1,dx:0,dy:0,deg:0,dirty:1,dirtyT:1},!c.bottom&&(c.bottom=this),this.prev=c.top,c.top&&(c.top.next=this),c.top=this,this.next=null},E=a.el;D.prototype=E,E.constructor=D,E.transform=function(b){if(b==null)return this._.transform;var d=this.paper._viewBoxShift,e=d?"s"+[d.scale,d.scale]+"-1-1t"+[d.dx,d.dy]:o,f;d&&(f=b=c(b).replace(/\.{3}|\u2026/g,this._.transform||o)),a._extractTransform(this,e+b);var g=this.matrix.clone(),h=this.skew,i=this.node,j,k=~c(this.attrs.fill).indexOf("-"),l=!c(this.attrs.fill).indexOf("url(");g.translate(-0.5,-0.5);if(l||k||this.type=="image"){h.matrix="1 0 0 1",h.offset="0 0",j=g.split();if(k&&j.noRotation||!j.isSimple){i.style.filter=g.toFilter();var m=this.getBBox(),p=this.getBBox(1),q=m.x-p.x,r=m.y-p.y;i.coordorigin=q*-u+n+r*-u,z(this,1,1,q,r,0)}else i.style.filter=o,z(this,j.scalex,j.scaley,j.dx,j.dy,j.rotate)}else i.style.filter=o,h.matrix=c(g),h.offset=g.offset();f&&(this._.transform=f);return this},E.rotate=function(a,b,e){if(this.removed)return this;if(a!=null){a=c(a).split(k),a.length-1&&(b=d(a[1]),e=d(a[2])),a=d(a[0]),e==null&&(b=e);if(b==null||e==null){var f=this.getBBox(1);b=f.x+f.width/2,e=f.y+f.height/2}this._.dirtyT=1,this.transform(this._.transform.concat([["r",a,b,e]]));return this}},E.translate=function(a,b){if(this.removed)return this;a=c(a).split(k),a.length-1&&(b=d(a[1])),a=d(a[0])||0,b=+b||0,this._.bbox&&(this._.bbox.x+=a,this._.bbox.y+=b),this.transform(this._.transform.concat([["t",a,b]]));return this},E.scale=function(a,b,e,f){if(this.removed)return this;a=c(a).split(k),a.length-1&&(b=d(a[1]),e=d(a[2]),f=d(a[3]),isNaN(e)&&(e=null),isNaN(f)&&(f=null)),a=d(a[0]),b==null&&(b=a),f==null&&(e=f);if(e==null||f==null)var g=this.getBBox(1);e=e==null?g.x+g.width/2:e,f=f==null?g.y+g.height/2:f,this.transform(this._.transform.concat([["s",a,b,e,f]])),this._.dirtyT=1;return this},E.hide=function(){!this.removed&&(this.node.style.display="none");return this},E.show=function(){!this.removed&&(this.node.style.display=o);return this},E._getBBox=function(){if(this.removed)return{};return{x:this.X+(this.bbx||0)-this.W/2,y:this.Y-this.H,width:this.W,height:this.H}},E.remove=function(){if(!this.removed&&!!this.node.parentNode){this.paper.__set__&&this.paper.__set__.exclude(this),a.eve.unbind("raphael.*.*."+this.id),a._tear(this,this.paper),this.node.parentNode.removeChild(this.node),this.shape&&this.shape.parentNode.removeChild(this.shape);for(var b in this)this[b]=typeof this[b]=="function"?a._removedFactory(b):null;this.removed=!0}},E.attr=function(c,d){if(this.removed)return this;if(c==null){var e={};for(var f in this.attrs)this.attrs[b](f)&&(e[f]=this.attrs[f]);e.gradient&&e.fill=="none"&&(e.fill=e.gradient)&&delete e.gradient,e.transform=this._.transform;return e}if(d==null&&a.is(c,"string")){if(c==j&&this.attrs.fill=="none"&&this.attrs.gradient)return this.attrs.gradient;var g=c.split(k),h={};for(var i=0,m=g.length;i<m;i++)c=g[i],c in this.attrs?h[c]=this.attrs[c]:a.is(this.paper.customAttributes[c],"function")?h[c]=this.paper.customAttributes[c].def:h[c]=a._availableAttrs[c];return m-1?h:h[g[0]]}if(this.attrs&&d==null&&a.is(c,"array")){h={};for(i=0,m=c.length;i<m;i++)h[c[i]]=this.attr(c[i]);return h}var n;d!=null&&(n={},n[c]=d),d==null&&a.is(c,"object")&&(n=c);for(var o in n)l("raphael.attr."+o+"."+this.id,this,n[o]);if(n){for(o in this.paper.customAttributes)if(this.paper.customAttributes[b](o)&&n[b](o)&&a.is(this.paper.customAttributes[o],"function")){var p=this.paper.customAttributes[o].apply(this,[].concat(n[o]));this.attrs[o]=n[o];for(var q in p)p[b](q)&&(n[q]=p[q])}n.text&&this.type=="text"&&(this.textpath.string=n.text),B(this,n)}return this},E.toFront=function(){!this.removed&&this.node.parentNode.appendChild(this.node),this.paper&&this.paper.top!=this&&a._tofront(this,this.paper);return this},E.toBack=function(){if(this.removed)return this;this.node.parentNode.firstChild!=this.node&&(this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild),a._toback(this,this.paper));return this},E.insertAfter=function(b){if(this.removed)return this;b.constructor==a.st.constructor&&(b=b[b.length-1]),b.node.nextSibling?b.node.parentNode.insertBefore(this.node,b.node.nextSibling):b.node.parentNode.appendChild(this.node),a._insertafter(this,b,this.paper);return this},E.insertBefore=function(b){if(this.removed)return this;b.constructor==a.st.constructor&&(b=b[0]),b.node.parentNode.insertBefore(this.node,b.node),a._insertbefore(this,b,this.paper);return this},E.blur=function(b){var c=this.node.runtimeStyle,d=c.filter;d=d.replace(r,o),+b!==0?(this.attrs.blur=b,c.filter=d+n+m+".Blur(pixelradius="+(+b||1.5)+")",c.margin=a.format("-{0}px 0 0 -{0}px",f(+b||1.5))):(c.filter=d,c.margin=0,delete this.attrs.blur)},a._engine.path=function(a,b){var c=F("shape");c.style.cssText=t,c.coordsize=u+n+u,c.coordorigin=b.coordorigin;var d=new D(c,b),e={fill:"none",stroke:"#000"};a&&(e.path=a),d.type="path",d.path=[],d.Path=o,B(d,e),b.canvas.appendChild(c);var f=F("skew");f.on=!0,c.appendChild(f),d.skew=f,d.transform(o);return d},a._engine.rect=function(b,c,d,e,f,g){var h=a._rectPath(c,d,e,f,g),i=b.path(h),j=i.attrs;i.X=j.x=c,i.Y=j.y=d,i.W=j.width=e,i.H=j.height=f,j.r=g,j.path=h,i.type="rect";return i},a._engine.ellipse=function(a,b,c,d,e){var f=a.path(),g=f.attrs;f.X=b-d,f.Y=c-e,f.W=d*2,f.H=e*2,f.type="ellipse",B(f,{cx:b,cy:c,rx:d,ry:e});return f},a._engine.circle=function(a,b,c,d){var e=a.path(),f=e.attrs;e.X=b-d,e.Y=c-d,e.W=e.H=d*2,e.type="circle",B(e,{cx:b,cy:c,r:d});return e},a._engine.image=function(b,c,d,e,f,g){var h=a._rectPath(d,e,f,g),i=b.path(h).attr({stroke:"none"}),k=i.attrs,l=i.node,m=l.getElementsByTagName(j)[0];k.src=c,i.X=k.x=d,i.Y=k.y=e,i.W=k.width=f,i.H=k.height=g,k.path=h,i.type="image",m.parentNode==l&&l.removeChild(m),m.rotate=!0,m.src=c,m.type="tile",i._.fillpos=[d,e],i._.fillsize=[f,g],l.appendChild(m),z(i,1,1,0,0,0);return i},a._engine.text=function(b,d,e,g){var h=F("shape"),i=F("path"),j=F("textpath");d=d||0,e=e||0,g=g||"",i.v=a.format("m{0},{1}l{2},{1}",f(d*u),f(e*u),f(d*u)+1),i.textpathok=!0,j.string=c(g),j.on=!0,h.style.cssText=t,h.coordsize=u+n+u,h.coordorigin="0 0";var k=new D(h,b),l={fill:"#000",stroke:"none",font:a._availableAttrs.font,text:g};k.shape=h,k.path=i,k.textpath=j,k.type="text",k.attrs.text=c(g),k.attrs.x=d,k.attrs.y=e,k.attrs.w=1,k.attrs.h=1,B(k,l),h.appendChild(j),h.appendChild(i),b.canvas.appendChild(h);var m=F("skew");m.on=!0,h.appendChild(m),k.skew=m,k.transform(o);return k},a._engine.setSize=function(b,c){var d=this.canvas.style;this.width=b,this.height=c,b==+b&&(b+="px"),c==+c&&(c+="px"),d.width=b,d.height=c,d.clip="rect(0 "+b+" "+c+" 0)",this._viewBox&&a._engine.setViewBox.apply(this,this._viewBox);return this},a._engine.setViewBox=function(b,c,d,e,f){a.eve("raphael.setViewBox",this,this._viewBox,[b,c,d,e,f]);var h=this.width,i=this.height,j=1/g(d/h,e/i),k,l;f&&(k=i/e,l=h/d,d*k<h&&(b-=(h-d*k)/2/k),e*l<i&&(c-=(i-e*l)/2/l)),this._viewBox=[b,c,d,e,!!f],this._viewBoxShift={dx:-b,dy:-c,scale:j},this.forEach(function(a){a.transform("...")});return this};var F;a._engine.initWin=function(a){var b=a.document;b.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)");try{!b.namespaces.rvml&&b.namespaces.add("rvml","urn:schemas-microsoft-com:vml"),F=function(a){return b.createElement("<rvml:"+a+' class="rvml">')}}catch(c){F=function(a){return b.createElement("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}},a._engine.initWin(a._g.win),a._engine.create=function(){var b=a._getContainer.apply(0,arguments),c=b.container,d=b.height,e,f=b.width,g=b.x,h=b.y;if(!c)throw new Error("VML container not found.");var i=new a._Paper,j=i.canvas=a._g.doc.createElement("div"),k=j.style;g=g||0,h=h||0,f=f||512,d=d||342,i.width=f,i.height=d,f==+f&&(f+="px"),d==+d&&(d+="px"),i.coordsize=u*1e3+n+u*1e3,i.coordorigin="0 0",i.span=a._g.doc.createElement("span"),i.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;",j.appendChild(i.span),k.cssText=a.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden",f,d),c==1?(a._g.doc.body.appendChild(j),k.left=g+"px",k.top=h+"px",k.position="absolute"):c.firstChild?c.insertBefore(j,c.firstChild):c.appendChild(j),i.renderfix=function(){};return i},a.prototype.clear=function(){a.eve("raphael.clear",this),this.canvas.innerHTML=o,this.span=a._g.doc.createElement("span"),this.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;",this.canvas.appendChild(this.span),this.bottom=this.top=null},a.prototype.remove=function(){a.eve("raphael.remove",this),this.canvas.parentNode.removeChild(this.canvas);for(var b in this)this[b]=typeof this[b]=="function"?a._removedFactory(b):null;return!0};var G=a.st;for(var H in E)E[b](H)&&!G[b](H)&&(G[H]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(H))}(window.Raphael)
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/js/lib/underscore-min.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,5 @@
+//     Underscore.js 1.4.2
+//     http://underscorejs.org
+//     (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
+//     Underscore may be freely distributed under the MIT license.
+(function(){var e=this,t=e._,n={},r=Array.prototype,i=Object.prototype,s=Function.prototype,o=r.push,u=r.slice,a=r.concat,f=r.unshift,l=i.toString,c=i.hasOwnProperty,h=r.forEach,p=r.map,d=r.reduce,v=r.reduceRight,m=r.filter,g=r.every,y=r.some,b=r.indexOf,w=r.lastIndexOf,E=Array.isArray,S=Object.keys,x=s.bind,T=function(e){if(e instanceof T)return e;if(!(this instanceof T))return new T(e);this._wrapped=e};typeof exports!="undefined"?(typeof module!="undefined"&&module.exports&&(exports=module.exports=T),exports._=T):e._=T,T.VERSION="1.4.2";var N=T.each=T.forEach=function(e,t,r){if(e==null)return;if(h&&e.forEach===h)e.forEach(t,r);else if(e.length===+e.length){for(var i=0,s=e.length;i<s;i++)if(t.call(r,e[i],i,e)===n)return}else for(var o in e)if(T.has(e,o)&&t.call(r,e[o],o,e)===n)return};T.map=T.collect=function(e,t,n){var r=[];return e==null?r:p&&e.map===p?e.map(t,n):(N(e,function(e,i,s){r[r.length]=t.call(n,e,i,s)}),r)},T.reduce=T.foldl=T.inject=function(e,t,n,r){var i=arguments.length>2;e==null&&(e=[]);if(d&&e.reduce===d)return r&&(t=T.bind(t,r)),i?e.reduce(t,n):e.reduce(t);N(e,function(e,s,o){i?n=t.call(r,n,e,s,o):(n=e,i=!0)});if(!i)throw new TypeError("Reduce of empty array with no initial value");return n},T.reduceRight=T.foldr=function(e,t,n,r){var i=arguments.length>2;e==null&&(e=[]);if(v&&e.reduceRight===v)return r&&(t=T.bind(t,r)),arguments.length>2?e.reduceRight(t,n):e.reduceRight(t);var s=e.length;if(s!==+s){var o=T.keys(e);s=o.length}N(e,function(u,a,f){a=o?o[--s]:--s,i?n=t.call(r,n,e[a],a,f):(n=e[a],i=!0)});if(!i)throw new TypeError("Reduce of empty array with no initial value");return n},T.find=T.detect=function(e,t,n){var r;return C(e,function(e,i,s){if(t.call(n,e,i,s))return r=e,!0}),r},T.filter=T.select=function(e,t,n){var r=[];return e==null?r:m&&e.filter===m?e.filter(t,n):(N(e,function(e,i,s){t.call(n,e,i,s)&&(r[r.length]=e)}),r)},T.reject=function(e,t,n){var r=[];return e==null?r:(N(e,function(e,i,s){t.call(n,e,i,s)||(r[r.length]=e)}),r)},T.every=T.all=function(e,t,r){t||(t=T.identity);var i=!0;return e==null?i:g&&e.every===g?e.every(t,r):(N(e,function(e,s,o){if(!(i=i&&t.call(r,e,s,o)))return n}),!!i)};var C=T.some=T.any=function(e,t,r){t||(t=T.identity);var i=!1;return e==null?i:y&&e.some===y?e.some(t,r):(N(e,function(e,s,o){if(i||(i=t.call(r,e,s,o)))return n}),!!i)};T.contains=T.include=function(e,t){var n=!1;return e==null?n:b&&e.indexOf===b?e.indexOf(t)!=-1:(n=C(e,function(e){return e===t}),n)},T.invoke=function(e,t){var n=u.call(arguments,2);return T.map(e,function(e){return(T.isFunction(t)?t:e[t]).apply(e,n)})},T.pluck=function(e,t){return T.map(e,function(e){return e[t]})},T.where=function(e,t){return T.isEmpty(t)?[]:T.filter(e,function(e){for(var n in t)if(t[n]!==e[n])return!1;return!0})},T.max=function(e,t,n){if(!t&&T.isArray(e)&&e[0]===+e[0]&&e.length<65535)return Math.max.apply(Math,e);if(!t&&T.isEmpty(e))return-Infinity;var r={computed:-Infinity};return N(e,function(e,i,s){var o=t?t.call(n,e,i,s):e;o>=r.computed&&(r={value:e,computed:o})}),r.value},T.min=function(e,t,n){if(!t&&T.isArray(e)&&e[0]===+e[0]&&e.length<65535)return Math.min.apply(Math,e);if(!t&&T.isEmpty(e))return Infinity;var r={computed:Infinity};return N(e,function(e,i,s){var o=t?t.call(n,e,i,s):e;o<r.computed&&(r={value:e,computed:o})}),r.value},T.shuffle=function(e){var t,n=0,r=[];return N(e,function(e){t=T.random(n++),r[n-1]=r[t],r[t]=e}),r};var k=function(e){return T.isFunction(e)?e:function(t){return t[e]}};T.sortBy=function(e,t,n){var r=k(t);return T.pluck(T.map(e,function(e,t,i){return{value:e,index:t,criteria:r.call(n,e,t,i)}}).sort(function(e,t){var n=e.criteria,r=t.criteria;if(n!==r){if(n>r||n===void 0)return 1;if(n<r||r===void 0)return-1}return e.index<t.index?-1:1}),"value")};var L=function(e,t,n,r){var i={},s=k(t);return N(e,function(t,o){var u=s.call(n,t,o,e);r(i,u,t)}),i};T.groupBy=function(e,t,n){return L(e,t,n,function(e,t,n){(T.has(e,t)?e[t]:e[t]=[]).push(n)})},T.countBy=function(e,t,n){return L(e,t,n,function(e,t,n){T.has(e,t)||(e[t]=0),e[t]++})},T.sortedIndex=function(e,t,n,r){n=n==null?T.identity:k(n);var i=n.call(r,t),s=0,o=e.length;while(s<o){var u=s+o>>>1;n.call(r,e[u])<i?s=u+1:o=u}return s},T.toArray=function(e){return e?e.length===+e.length?u.call(e):T.values(e):[]},T.size=function(e){return e.length===+e.length?e.length:T.keys(e).length},T.first=T.head=T.take=function(e,t,n){return t!=null&&!n?u.call(e,0,t):e[0]},T.initial=function(e,t,n){return u.call(e,0,e.length-(t==null||n?1:t))},T.last=function(e,t,n){return t!=null&&!n?u.call(e,Math.max(e.length-t,0)):e[e.length-1]},T.rest=T.tail=T.drop=function(e,t,n){return u.call(e,t==null||n?1:t)},T.compact=function(e){return T.filter(e,function(e){return!!e})};var A=function(e,t,n){return N(e,function(e){T.isArray(e)?t?o.apply(n,e):A(e,t,n):n.push(e)}),n};T.flatten=function(e,t){return A(e,t,[])},T.without=function(e){return T.difference(e,u.call(arguments,1))},T.uniq=T.unique=function(e,t,n,r){var i=n?T.map(e,n,r):e,s=[],o=[];return N(i,function(n,r){if(t?!r||o[o.length-1]!==n:!T.contains(o,n))o.push(n),s.push(e[r])}),s},T.union=function(){return T.uniq(a.apply(r,arguments))},T.intersection=function(e){var t=u.call(arguments,1);return T.filter(T.uniq(e),function(e){return T.every(t,function(t){return T.indexOf(t,e)>=0})})},T.difference=function(e){var t=a.apply(r,u.call(arguments,1));return T.filter(e,function(e){return!T.contains(t,e)})},T.zip=function(){var e=u.call(arguments),t=T.max(T.pluck(e,"length")),n=new Array(t);for(var r=0;r<t;r++)n[r]=T.pluck(e,""+r);return n},T.object=function(e,t){var n={};for(var r=0,i=e.length;r<i;r++)t?n[e[r]]=t[r]:n[e[r][0]]=e[r][1];return n},T.indexOf=function(e,t,n){if(e==null)return-1;var r=0,i=e.length;if(n){if(typeof n!="number")return r=T.sortedIndex(e,t),e[r]===t?r:-1;r=n<0?Math.max(0,i+n):n}if(b&&e.indexOf===b)return e.indexOf(t,n);for(;r<i;r++)if(e[r]===t)return r;return-1},T.lastIndexOf=function(e,t,n){if(e==null)return-1;var r=n!=null;if(w&&e.lastIndexOf===w)return r?e.lastIndexOf(t,n):e.lastIndexOf(t);var i=r?n:e.length;while(i--)if(e[i]===t)return i;return-1},T.range=function(e,t,n){arguments.length<=1&&(t=e||0,e=0),n=arguments[2]||1;var r=Math.max(Math.ceil((t-e)/n),0),i=0,s=new Array(r);while(i<r)s[i++]=e,e+=n;return s};var O=function(){};T.bind=function(t,n){var r,i;if(t.bind===x&&x)return x.apply(t,u.call(arguments,1));if(!T.isFunction(t))throw new TypeError;return i=u.call(arguments,2),r=function(){if(this instanceof r){O.prototype=t.prototype;var e=new O,s=t.apply(e,i.concat(u.call(arguments)));return Object(s)===s?s:e}return t.apply(n,i.concat(u.call(arguments)))}},T.bindAll=function(e){var t=u.call(arguments,1);return t.length==0&&(t=T.functions(e)),N(t,function(t){e[t]=T.bind(e[t],e)}),e},T.memoize=function(e,t){var n={};return t||(t=T.identity),function(){var r=t.apply(this,arguments);return T.has(n,r)?n[r]:n[r]=e.apply(this,arguments)}},T.delay=function(e,t){var n=u.call(arguments,2);return setTimeout(function(){return e.apply(null,n)},t)},T.defer=function(e){return T.delay.apply(T,[e,1].concat(u.call(arguments,1)))},T.throttle=function(e,t){var n,r,i,s,o,u,a=T.debounce(function(){o=s=!1},t);return function(){n=this,r=arguments;var f=function(){i=null,o&&(u=e.apply(n,r)),a()};return i||(i=setTimeout(f,t)),s?o=!0:(s=!0,u=e.apply(n,r)),a(),u}},T.debounce=function(e,t,n){var r,i;return function(){var s=this,o=arguments,u=function(){r=null,n||(i=e.apply(s,o))},a=n&&!r;return clearTimeout(r),r=setTimeout(u,t),a&&(i=e.apply(s,o)),i}},T.once=function(e){var t=!1,n;return function(){return t?n:(t=!0,n=e.apply(this,arguments),e=null,n)}},T.wrap=function(e,t){return function(){var n=[e];return o.apply(n,arguments),t.apply(this,n)}},T.compose=function(){var e=arguments;return function(){var t=arguments;for(var n=e.length-1;n>=0;n--)t=[e[n].apply(this,t)];return t[0]}},T.after=function(e,t){return e<=0?t():function(){if(--e<1)return t.apply(this,arguments)}},T.keys=S||function(e){if(e!==Object(e))throw new TypeError("Invalid object");var t=[];for(var n in e)T.has(e,n)&&(t[t.length]=n);return t},T.values=function(e){var t=[];for(var n in e)T.has(e,n)&&t.push(e[n]);return t},T.pairs=function(e){var t=[];for(var n in e)T.has(e,n)&&t.push([n,e[n]]);return t},T.invert=function(e){var t={};for(var n in e)T.has(e,n)&&(t[e[n]]=n);return t},T.functions=T.methods=function(e){var t=[];for(var n in e)T.isFunction(e[n])&&t.push(n);return t.sort()},T.extend=function(e){return N(u.call(arguments,1),function(t){for(var n in t)e[n]=t[n]}),e},T.pick=function(e){var t={},n=a.apply(r,u.call(arguments,1));return N(n,function(n){n in e&&(t[n]=e[n])}),t},T.omit=function(e){var t={},n=a.apply(r,u.call(arguments,1));for(var i in e)T.contains(n,i)||(t[i]=e[i]);return t},T.defaults=function(e){return N(u.call(arguments,1),function(t){for(var n in t)e[n]==null&&(e[n]=t[n])}),e},T.clone=function(e){return T.isObject(e)?T.isArray(e)?e.slice():T.extend({},e):e},T.tap=function(e,t){return t(e),e};var M=function(e,t,n,r){if(e===t)return e!==0||1/e==1/t;if(e==null||t==null)return e===t;e instanceof T&&(e=e._wrapped),t instanceof T&&(t=t._wrapped);var i=l.call(e);if(i!=l.call(t))return!1;switch(i){case"[object String]":return e==String(t);case"[object Number]":return e!=+e?t!=+t:e==0?1/e==1/t:e==+t;case"[object Date]":case"[object Boolean]":return+e==+t;case"[object RegExp]":return e.source==t.source&&e.global==t.global&&e.multiline==t.multiline&&e.ignoreCase==t.ignoreCase}if(typeof e!="object"||typeof t!="object")return!1;var s=n.length;while(s--)if(n[s]==e)return r[s]==t;n.push(e),r.push(t);var o=0,u=!0;if(i=="[object Array]"){o=e.length,u=o==t.length;if(u)while(o--)if(!(u=M(e[o],t[o],n,r)))break}else{var a=e.constructor,f=t.constructor;if(a!==f&&!(T.isFunction(a)&&a instanceof a&&T.isFunction(f)&&f instanceof f))return!1;for(var c in e)if(T.has(e,c)){o++;if(!(u=T.has(t,c)&&M(e[c],t[c],n,r)))break}if(u){for(c in t)if(T.has(t,c)&&!(o--))break;u=!o}}return n.pop(),r.pop(),u};T.isEqual=function(e,t){return M(e,t,[],[])},T.isEmpty=function(e){if(e==null)return!0;if(T.isArray(e)||T.isString(e))return e.length===0;for(var t in e)if(T.has(e,t))return!1;return!0},T.isElement=function(e){return!!e&&e.nodeType===1},T.isArray=E||function(e){return l.call(e)=="[object Array]"},T.isObject=function(e){return e===Object(e)},N(["Arguments","Function","String","Number","Date","RegExp"],function(e){T["is"+e]=function(t){return l.call(t)=="[object "+e+"]"}}),T.isArguments(arguments)||(T.isArguments=function(e){return!!e&&!!T.has(e,"callee")}),typeof /./!="function"&&(T.isFunction=function(e){return typeof e=="function"}),T.isFinite=function(e){return T.isNumber(e)&&isFinite(e)},T.isNaN=function(e){return T.isNumber(e)&&e!=+e},T.isBoolean=function(e){return e===!0||e===!1||l.call(e)=="[object Boolean]"},T.isNull=function(e){return e===null},T.isUndefined=function(e){return e===void 0},T.has=function(e,t){return c.call(e,t)},T.noConflict=function(){return e._=t,this},T.identity=function(e){return e},T.times=function(e,t,n){for(var r=0;r<e;r++)t.call(n,r)},T.random=function(e,t){return t==null&&(t=e,e=0),e+(0|Math.random()*(t-e+1))};var _={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"}};_.unescape=T.invert(_.escape);var D={escape:new RegExp("["+T.keys(_.escape).join("")+"]","g"),unescape:new RegExp("("+T.keys(_.unescape).join("|")+")","g")};T.each(["escape","unescape"],function(e){T[e]=function(t){return t==null?"":(""+t).replace(D[e],function(t){return _[e][t]})}}),T.result=function(e,t){if(e==null)return null;var n=e[t];return T.isFunction(n)?n.call(e):n},T.mixin=function(e){N(T.functions(e),function(t){var n=T[t]=e[t];T.prototype[t]=function(){var e=[this._wrapped];return o.apply(e,arguments),F.call(this,n.apply(T,e))}})};var P=0;T.uniqueId=function(e){var t=P++;return e?e+t:t},T.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var H=/(.)^/,B={"'":"'","\\":"\\","\r":"r","\n":"n","	":"t","\u2028":"u2028","\u2029":"u2029"},j=/\\|'|\r|\n|\t|\u2028|\u2029/g;T.template=function(e,t,n){n=T.defaults({},n,T.templateSettings);var r=new RegExp([(n.escape||H).source,(n.interpolate||H).source,(n.evaluate||H).source].join("|")+"|$","g"),i=0,s="__p+='";e.replace(r,function(t,n,r,o,u){s+=e.slice(i,u).replace(j,function(e){return"\\"+B[e]}),s+=n?"'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?"'+\n((__t=("+r+"))==null?'':__t)+\n'":o?"';\n"+o+"\n__p+='":"",i=u+t.length}),s+="';\n",n.variable||(s="with(obj||{}){\n"+s+"}\n"),s="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+s+"return __p;\n";try{var o=new Function(n.variable||"obj","_",s)}catch(u){throw u.source=s,u}if(t)return o(t,T);var a=function(e){return o.call(this,e,T)};return a.source="function("+(n.variable||"obj")+"){\n"+s+"}",a},T.chain=function(e){return T(e).chain()};var F=function(e){return this._chain?T(e).chain():e};T.mixin(T),N(["pop","push","reverse","shift","sort","splice","unshift"],function(e){var t=r[e];T.prototype[e]=function(){var n=this._wrapped;return t.apply(n,arguments),(e=="shift"||e=="splice")&&n.length===0&&delete n[0],F.call(this,n)}}),N(["concat","join","slice"],function(e){var t=r[e];T.prototype[e]=function(){return F.call(this,t.apply(this._wrapped,arguments))}}),T.extend(T.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}).call(this);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/js/main.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,163 @@
+$(function(){
+//CLUSTER
+	var clusterWidth=0;
+	$('.cluster li').each( function(){ clusterWidth += $(this).width() + 10; });
+	$('.cluster').width( clusterWidth );
+	var clusterVisibleWidth = $(".cluster-visible").width();
+	var clusterVisibleLeft = 20;
+	if (clusterWidth>clusterVisibleWidth) {
+		$(".cluster-containment").css({
+			"left": -(clusterWidth-clusterVisibleWidth),
+			"width":clusterWidth+(clusterWidth-clusterVisibleWidth+clusterVisibleLeft)
+		});
+		$(".cluster-visible").css({"left": (clusterWidth-912+clusterVisibleLeft)});
+		$("a.cluster-arrow").bind("click",function(e){
+		
+			e.preventDefault();
+			var clusterContainmentLeft = parseInt($(".cluster-containment").css("left"));
+			var clusterContainmentRight = parseInt($(".cluster-containment").css("left")) + $(".cluster-containment").width();
+			var clusterLeft = parseInt($(".cluster").css("left"));
+			var clusterRight = parseInt($(".cluster").css("left"))+$(".cluster").width();
+			if ($(this).hasClass("arrow-right")) {
+				if (clusterLeft-40>clusterContainmentLeft) {
+					$(".cluster").css({
+						"left":"-="+40	
+					});
+				}else{
+					$(".cluster").css({
+						"left":clusterContainmentLeft
+					});
+				}
+		
+			}else if($(this).hasClass("arrow-left")){
+			
+				if (clusterRight+40<clusterContainmentRight) {
+					$(".cluster").css({
+						"left":"+="+40	
+					});
+				}else{
+					$(".cluster").css({
+						"left":0
+					});
+				}
+			}
+		});
+	
+		//DRAGGABLE
+		$(".cluster").draggable({ axis: "x",containment: ".cluster-containment"  });
+	};
+//WIDGET
+	//HEIGHT
+	var contentRightHeight = $(".content-right").height();
+	var contentLeftHeight = $(".content-left").height();
+	if(contentRightHeight>contentLeftHeight){
+		$(".content-left .widget-wrap").css({
+			"height":"+="+(contentRightHeight-contentLeftHeight)
+		});
+	}
+	//VOLET
+	//Tout fermer par défaut
+	//$("div.content-left div.widget-wrap div.widget div.widget-inner").hide().removeClass("open");
+	//$("div.dossier-similaire div.widget div.widget-inner").hide().removeClass("open");
+
+	$("div.content-left div.widget-wrap div.widget h3 a, div.dossier-similaire div.widget h3 a").bind("click",function(e){
+		e.preventDefault();
+		var widgetInner = $(this).parents("h3").siblings("div.widget-inner");
+		widgetInner.stop();
+		if ($(this).hasClass("open")) {
+			widgetInner.slideUp();
+			$(this).removeClass("open");
+		}else{
+			widgetInner.slideDown();
+			$(this).addClass("open");
+		}
+	});
+	//AFFICHAGE
+	$('.widget.affichage li a').bind('click',function(e){
+		e.preventDefault();
+		if ($(this).hasClass("treemap") && !$(this).hasClass("active")) {
+			$('.widget.affichage li a.liste').removeClass("active");
+			$(this).addClass('active');
+		}else if($(this).hasClass("liste") && !$(this).hasClass("active")){
+			$('.widget.affichage li a.treemap').removeClass("active");
+			$(this).addClass('active');
+		}
+	});
+	
+	
+	
+	//DATE PICKER
+	$(".dateBegin").datepicker({
+		minDate: new Date(2007, 7 - 1, 01),
+        maxDate: new Date(2012,12 - 1 , 31),
+		onSelect: function(selectedDate) {
+			$("#pickeddatebegin").val(selectedDate);
+			$("#ajax2").submit();
+			$( "#pickeddateend" ).datepicker( "option", "minDate", selectedDate );
+        }
+	});
+	$(".dateEnd").datepicker({
+		minDate: new Date(2007, 7 - 1, 01),
+        maxDate: new Date(2012, 12 - 1, 31),
+		onSelect: function( selectedDate ) {
+			$("#pickeddateend").val(selectedDate);
+        	$("#ajax2").submit();
+			$( "#pickeddatebegin" ).datepicker( "option", "maxDate", selectedDate );
+        }
+	});
+//VOLET DOCUMENTAIRE
+	$("div.dossier-documentaire").hide();
+	/*
+	$("div.header a.dossier-button").bind("click",function(e){
+		e.preventDefault();
+		$("div.dossier-documentaire").stop()
+		if($("div.dossier-documentaire").is(":visible")){
+			$("div.dossier-documentaire").slideUp();
+		}else{
+			$("div.dossier-documentaire").slideDown();
+		}
+	});
+*/
+	//$("div.header p.dossier-button").bind("click",function(){alert('tutu';});
+	$("div.header p.dossier-button, div.header div.dossier-documentaire").hover(
+		function(){
+			$("div.dossier-documentaire").stop().slideDown();
+		},
+		function(){
+			$("div.dossier-documentaire").stop().slideUp();
+		}
+	);
+	
+//ARTICLES
+	$(".article-visuel-wrap").each(function(){
+		var contentHeight = $(this).parents(".article-content").height();
+		//$(this).height(contentHeight);
+	});
+//FRISE
+	//valeurs init du slider à définir
+	var valSlider1 = 75;
+	var valSlider2 = 300;
+	var diffSlide = valSlider2-valSlider1;
+	var widthFrise = $('.frise').width();
+
+	$( "#slider-range" ).dragslider({
+		range: true,
+		rangeDrag: true,
+		min: 0,
+		max: widthFrise,
+		values: [ valSlider1, valSlider2 ],
+		slide: function( event, ui ) {
+            if (window.streamgraph) {
+                streamgraph.slidevalues(ui.values[0], ui.values[1]);
+            }
+		},
+		change: function( event, ui ){
+			//ici on récup les valeurs après un slide
+			var value1 = ui.values[ 0 ];
+			var value2 = ui.values[ 1 ];
+		}
+	});
+
+
+	
+});//jQuery
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/js/plugins.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,14 @@
+// Avoid `console` errors in browsers that lack a console.
+if (!(window.console && console.log)) {
+    (function() {
+        var noop = function() {};
+        var methods = ['assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 'markTimeline', 'profile', 'profileEnd', 'markTimeline', 'table', 'time', 'timeEnd', 'timeStamp', 'trace', 'warn'];
+        var length = methods.length;
+        var console = window.console = {};
+        while (length--) {
+            console[methods[length]] = noop;
+        }
+    }());
+}
+
+// Place any jQuery/helper plugins in here.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/js/recherche.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,313 @@
+var curentjson = "";
+		var typeTri = "treemap";
+		var currentfromdate = "07/01/2007";
+		var currenttodate = "12/01/2012";			
+		var currentcategories = [];		
+
+
+	function launchpage(json)
+	{
+		curentjson = json;
+		if (typeTri == "treemap")
+		{
+			var k =1;
+			content = "<div class=\"actus\">";
+			for (i = 0; i < json.clusters.length && i<4; i++)
+			{
+				content += "<a id=\""+json.clusters[i].id+"\" href=\"http://localhost:8000/documents_cluster/"+json.query.query_id+"/"+json.clusters[i].id+"/0/10\"><div  class=\"actu\"><img src=\"/static/img/home-visuel-"+k+".jpg\" alt=\"\" /><div class=\"inner-actu\">";
+				content += "<h2> ";
+				content += json.clusters[i].title;
+				content += "</h2></div></div></a>";
+				k++;
+			}
+			content +="</div>";
+		}
+		else
+		{
+			content = "<div class=\"articles\">";
+			for (i = 0; i < json.clusters.length && i<4; i++)
+			{
+				content += "<div name=\"cluster_id\" class=\"article\" id=\""+json.clusters[i].id+"\"><div class=\"inner-article clearfix\"><h2><a title=\"Lire l\'article\" id=\""+json.clusters[i].id+"\" href=\"http://localhost:8000/documents_cluster/"+json.query.query_id+"/"+json.clusters[i].id+"/0/10\">";
+				content += json.clusters[i].title;
+				content += "</a></h2><p class=\"number-article\"><a href=\"#\">";
+				content += json.clusters[i].documents_number;
+				content +=" articles | ";
+				content += json.clusters[i].annotations.length;
+				content += " annotations </a><a title=\"ajouter une annotation\" class=\"add-annotation\" href=\"#\"></a></p> <div class=\"article-annotations\"><a title=\"title\" class=\"blue\" href=\"#\" style=\"width:20%;\"></a><a title=\"title\" class=\"green\" href=\"#\" style=\"width:20%;\"></a><a title=\"title\" class=\"red\" href=\"#\" style=\"width:40%;\"></a><a title=\"title\" class=\"empty\" href=\"#\" style=\"width:20%;\"></a></div><div class=\"article-content\">";
+				content +="<div class=\"article-visuel-wrap\"><img class=\"article-visuel\" src=\"/static/img/visuel-article.jpg\" alt=\"\" /></div>";	 
+				content +="<p class=\"resume\">";
+				content += json.clusters[i].abstract;
+				content += "</p><ul class=\"articlelinks\"><ul>";
+				
+				for (j = 0; j < json.clusters[i].documents.length; j++)
+				{
+					content += "<li><a href=\"\" id=\""+json.clusters[i].documents[j].id+"\">";
+					content += json.clusters[i].documents[j].title;
+					content += "</a></li>";
+				}
+				content +="</ul></ul>";
+				content +="</div></div></div>";
+			}
+			content +="</div>";
+		}
+		$("#right").empty();
+		$(content).appendTo("#right");		
+	}
+
+	
+	function refreshview(type)
+	{
+		typeTri = type; 
+		if(type == 'treemap')
+		{
+			typeTri = "treemap";
+			var k =1;
+		content = "<div class=\"actus\">";
+		for (i = 0; i < curentjson.clusters.length && i<4; i++)
+		{
+			content += "<a id=\""+curentjson.clusters[i].id+"\" href=\"http://localhost:8000/documents_cluster/"+curentjson.query.query_id+"/"+curentjson.clusters[i].id+"/0/10\"><div  class=\"actu\"><img src=\"/static/img/home-visuel-"+k+".jpg\" alt=\"\" /><div class=\"inner-actu\">";
+			content += "<h2> ";
+			content += curentjson.clusters[i].title;
+			content += "</h2></div></div></a>";
+			k++;
+		}
+		content +="</div>";
+		$("#right").empty();
+		$(content).appendTo("#right");		
+		}
+		else
+		{
+			typeTri = "liste";
+			content = "<div class=\"articles\">";
+		for (i = 0; i < curentjson.clusters.length && i<4; i++)
+		{
+			content += "<div name=\"cluster_id\" class=\"article\" id=\""+curentjson.clusters[i].id+"\"><div class=\"inner-article clearfix\"><h2><a title=\"Lire l\'article\" id=\""+curentjson.clusters[i].id+"\" href=\"http://localhost:8000/documents_cluster?query_id="+curentjson.query.query_id+"&cluster_id="+curentjson.clusters[i].id+"&offset=0&count=10\">";
+			content += curentjson.clusters[i].title;
+			content += "</a></h2><p class=\"number-article\"><a href=\"#\">";
+			content += curentjson.clusters[i].documents_number;
+			content +=" articles | ";
+			content += curentjson.clusters[i].annotations.length;
+			content += " annotations </a><a title=\"ajouter une annotation\" class=\"add-annotation\" href=\"#\"></a></p> <div class=\"article-annotations\"><a title=\"title\" class=\"blue\" href=\"#\" style=\"width:20%;\"></a><a title=\"title\" class=\"green\" href=\"#\" style=\"width:20%;\"></a><a title=\"title\" class=\"red\" href=\"#\" style=\"width:40%;\"></a><a title=\"title\" class=\"empty\" href=\"#\" style=\"width:20%;\"></a></div><div class=\"article-content\">";
+			content +="<div class=\"article-visuel-wrap\"><img class=\"article-visuel\" src=\"/static/img/visuel-article.jpg\" alt=\"\" /></div>";	 
+			content +="<p class=\"resume\">";
+			content += curentjson.clusters[i].abstract;
+			content += "</p><ul class=\"articlelinks\"><ul>";
+			
+			for (j = 0; j < curentjson.clusters[i].documents.length; j++)
+			{
+				content += "<li><a href=\"\" id=\""+curentjson.clusters[i].documents[j].id+"\">";
+				content += curentjson.clusters[i].documents[j].title;
+				content += "</a></li>";
+			}
+			content +="</ul></ul>";
+			content +="</div></div></div>";
+		}
+		content +="</div>";
+		$("#right").empty();
+		$(content).appendTo("#right");
+		}
+	}
+	
+	$(function(){
+		
+
+		$('#recherche_button').click(function() {
+
+		$('#from_date').val(currentfromdate);
+		$('#to_date').val(currenttodate);
+		
+		//$['categories'] = array('inter', 'france', 'eco');
+		
+
+		$.each(currentcategories, function() {
+			if(this != undefined)
+			{
+				$('<input />').attr('type', 'hidden')
+				.attr('name', 'categories')
+				.attr('value', this)
+				.appendTo('#ajax1');
+			}
+				
+		 });
+		/*var i=0;
+		$("input[name='categories']").each( function() {
+			if(currentcategories[i] != undefined)
+			{
+				alert(currentcategories[i]);
+				
+				$(this).attr('value', currentcategories[i]);
+			}
+			/*else
+			{
+				return false;
+			}*/
+			/*i++;
+			
+	});
+*/
+
+		$('#ajax1').submit();
+	});
+			
+		// Formulaire POST AJAX
+		$("#ajax1").submit( function() 
+		{
+			var urlSubmit = $(this).attr('action');
+			
+			/*var params = [
+               {
+                 name: "adress",
+                 value: window.location.pathname
+               },
+               {
+                  name: "time",
+                  value: new Date().getTime()
+               }
+             ];
+			 
+			$.each(currentcategories, function(i,param)
+			{
+				
+				
+				$('<input />').attr('type', 'hidden')
+					.attr('name', param.name)
+					.attr('value', param.value)
+					.appendTo('#ajax1');
+			});*/
+			
+			
+			$.ajax(
+			{  
+				type: "POST",
+				url: urlSubmit,
+				data      : $(this).serializeArray(),
+				success: function(data) {
+					var json = jQuery.parseJSON(data);
+					var k =1;
+					alert(currentfromdate);
+					if (typeTri == "treemap")
+					{
+						content = "<div class=\"actus\">";
+						for (i = 0; i < json.clusters.length & i<4; i++)
+						{
+							content += "<a id=\""+json.clusters[i].id+"\" href=\"http://localhost:8000/documents_cluster/"+json.query.query_id+"/"+json.clusters[i].id+"/0/10\"><div  class=\"actu\"><img src=\"/static/img/home-visuel-"+k+".jpg\" alt=\"\" /><div class=\"inner-actu\">";
+							content += "<h2> ";
+							content += json.clusters[i].title;
+							content += "</h2></div></div></a>";
+							k++;
+						}
+						content +="</div>";
+					}
+					else
+					{
+						content = "<div class=\"articles\">";
+						for (i = 0; i < json.clusters.length && i<4; i++)
+						{
+							content += "<div name=\"cluster_id\" class=\"article\" id=\""+json.clusters[i].id+"\"><div class=\"inner-article clearfix\"><h2><a title=\"Lire l\'article\" id=\""+json.clusters[i].id+"\" href=\"http://localhost:8000/documents_cluster/"+json.query.query_id+"/"+json.clusters[i].id+"/0/10\">";
+							content += json.clusters[i].title;
+							content += "</a></h2><p class=\"number-article\"><a href=\"#\">";
+							content += json.clusters[i].documents_number;
+							content +=" articles | ";
+							content += json.clusters[i].annotations.length;
+							content += " annotations </a><a title=\"ajouter une annotation\" class=\"add-annotation\" href=\"#\"></a></p> <div class=\"article-annotations\"><a title=\"title\" class=\"blue\" href=\"#\" style=\"width:20%;\"></a><a title=\"title\" class=\"green\" href=\"#\" style=\"width:20%;\"></a><a title=\"title\" class=\"red\" href=\"#\" style=\"width:40%;\"></a><a title=\"title\" class=\"empty\" href=\"#\" style=\"width:20%;\"></a></div><div class=\"article-content\">";
+							content +="<div class=\"article-visuel-wrap\"><img class=\"article-visuel\" src=\"/static/img/visuel-article.jpg\" alt=\"\" /></div>";	 
+							content +="<p class=\"resume\">";
+							content += json.clusters[i].abstract;
+							content += "</p><ul class=\"articlelinks\"><ul>";
+							
+							for (j = 0; j < json.clusters[i].documents.length; j++)
+							{
+								content += "<li><a href=\"\" id=\""+json.clusters[i].documents[j].id+"\">";
+								content += json.clusters[i].documents[j].title;
+								content += "</a></li>";
+							}
+							content +="</ul></ul>";
+							content +="</div></div></div>";
+						}
+						content +="</div>";
+					}
+					$("#right").empty();
+					$(content).appendTo("#right");		
+					curentjson = json;
+				}
+			});
+			return false;
+		});
+		
+		// Formulaire POST AJAX
+		$("#ajax2").submit( function() 
+		{
+			alert('ajax2');
+			var urlSubmit = $(this).attr('action');
+			currentcategories = [];
+			/*var data = { 'categories' : []};*/
+			$("input:checked").each(function() {
+					/*data['categories'].push($(this).val());*/
+					currentcategories.push($(this).val());
+			});
+			currentfromdate = $("#pickeddatebegin").val();
+			currenttodate = $("#pickeddateend").val();
+						
+			$.ajax(
+			{  
+				type: "POST",
+				url: urlSubmit,
+				data      : $(this).serializeArray(),
+				success: function(data) {
+					var json = jQuery.parseJSON(data);
+					var k =1;
+					if (typeTri == "treemap")
+					{
+						content = "<div class=\"actus\">";
+						for (i = 0; i < json.clusters.length & i<4; i++)
+						{
+							content += "<a id=\""+json.clusters[i].id+"\" href=\"http://localhost:8000/documents_cluster/"+json.query.query_id+"/"+json.clusters[i].id+"/0/10\"><div  class=\"actu\"><img src=\"/static/img/home-visuel-"+k+".jpg\" alt=\"\" /><div class=\"inner-actu\">";
+							content += "<h2> ";
+							content += json.clusters[i].title;
+							content += "</h2></div></div></a>";
+							k++;
+						}
+						content +="</div>";
+					}
+					else
+					{
+						content = "<div class=\"articles\">";
+						for (i = 0; i < json.clusters.length && i<4; i++)
+						{
+							content += "<div name=\"cluster_id\" class=\"article\" id=\""+json.clusters[i].id+"\"><div class=\"inner-article clearfix\"><h2><a title=\"Lire l\'article\" id=\""+json.clusters[i].id+"\" href=\"http://localhost:8000/documents_cluster/"+json.query.query_id+"/"+json.clusters[i].id+"/0/10\">";
+							content += json.clusters[i].title;
+							content += "</a></h2><p class=\"number-article\"><a href=\"#\">";
+							content += json.clusters[i].documents_number;
+							content +=" articles | ";
+							content += json.clusters[i].annotations.length;
+							content += " annotations </a><a title=\"ajouter une annotation\" class=\"add-annotation\" href=\"#\"></a></p> <div class=\"article-annotations\"><a title=\"title\" class=\"blue\" href=\"#\" style=\"width:20%;\"></a><a title=\"title\" class=\"green\" href=\"#\" style=\"width:20%;\"></a><a title=\"title\" class=\"red\" href=\"#\" style=\"width:40%;\"></a><a title=\"title\" class=\"empty\" href=\"#\" style=\"width:20%;\"></a></div><div class=\"article-content\">";
+							content +="<div class=\"article-visuel-wrap\"><img class=\"article-visuel\" src=\"/static/img/visuel-article.jpg\" alt=\"\" /></div>";	 
+							content +="<p class=\"resume\">";
+							content += json.clusters[i].abstract;
+							content += "</p><ul class=\"articlelinks\"><ul>";
+							
+							for (j = 0; j < json.clusters[i].documents.length; j++)
+							{
+								content += "<li><a href=\"\" id=\""+json.clusters[i].documents[j].id+"\">";
+								content += json.clusters[i].documents[j].title;
+								content += "</a></li>";
+							}
+							content +="</ul></ul>";
+							content +="</div></div></div>";
+						}
+						content +="</div>";
+					}
+					$("#right").empty();
+					$(content).appendTo("#right");		
+					curentjson = json;
+				}
+			});
+			return false;
+		});
+		
+		 $('.checkbox_category').click(function(){
+			  /*var theValue = $(this).val();*/
+			 $('#ajax2').submit();
+  		});
+	
+});//jQuery
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/js/streamgraph.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,205 @@
+function Streamgraph($selector) {
+    
+    /* Constants */
+   
+    var VMARGIN = 3,
+        YEARSHEIGHT = 20,
+        STARTTIME = new Date(2007,6,1),
+        ENDTIME = new Date(),
+        CURVE = .25,
+        DATEPADDING = 10,
+        COLORS = [ "#943a23", "#fbee97", "#cfbb95", "#da9761", "#ba5036" ],
+        SELECTEDCOLOR = "#c51810"; 
+    
+    /* Generating random data */
+    
+    var data = [],
+        clustercount = 12,
+        slicecount = 20,
+        maxdata = 10,
+        randpart = 4,
+        dampfactor = .333;
+    for (var i = 0; i < clustercount; i++) {
+        var line = [],
+            peaktime = Math.floor(Math.random() * slicecount);
+        for (var j = 0; j < slicecount; j++) {
+            var point = Math.min(maxdata, Math.max(0, (Math.random() - .5) * randpart + Math.max(0, maxdata * (1 - dampfactor * Math.abs(j - peaktime)))));
+            line.push(point);
+        }
+        data.push(line);
+    }
+    
+    /* Calculating scales and positions */
+    
+    var width = $selector.width(),
+        height = $selector.height(),
+        transp = _.zip.apply( _, data ),
+        cumulative = _(transp).map(function(column) {
+            var total = 0;
+            return _(column).map(function(point) {
+                return total += point;
+            });
+        }),
+        sums = _(cumulative).map(function(column) {
+            return _(column).last();
+        })
+        maxcol = _(sums).max(),
+        streamheight = height - YEARSHEIGHT,
+        yscale = (streamheight - 2 * VMARGIN) / maxcol,
+        centery = streamheight / 2,
+        xscale = width / (transp.length - 1),
+        txscale = width / (ENDTIME - STARTTIME),
+        coords = _(data).map(function(line, lineindex) {
+            return {
+                points : _(line).map(function(point, colindex) {
+                    var lowercumul = lineindex ? cumulative[colindex][lineindex - 1] : 0,
+                        uppercumul = cumulative[colindex][lineindex];
+                    return {
+                        data: point,
+                        x: xscale * colindex,
+                        lowery: centery + yscale * ( ( sums[colindex] / 2 ) - lowercumul ),
+                        uppery: centery + yscale * ( ( sums[colindex] / 2 ) - uppercumul ),
+                    }
+                })
+            }
+        }),
+        _(coords).each(function(line) {
+            var lowerline = _(line.points).reduce(function(path, point, colindex) {
+                var res = path;
+                if (colindex) {
+                    res += "," + (point.x - CURVE * xscale) + "," + point.lowery + "," + point.x + "," + point.lowery;
+                } else {
+                    res += "M" + point.x + "," + point.lowery;
+                }
+                if (colindex < line.points.length - 1) {
+                    res += "C" + (point.x + CURVE * xscale) + "," + point.lowery;
+                }
+                return res;
+            }, "");
+            var upperline = _(line.points).reduceRight(function(path, point, colindex) {
+                var res = path;
+                if (colindex < line.points.length - 1) {
+                    res += "," + (point.x + CURVE * xscale) + "," + point.uppery + "," + point.x + "," + point.uppery;
+                } else {
+                    res += "L" + point.x + "," + point.uppery;
+                }
+                if (colindex) {
+                    res += "C" + (point.x - CURVE * xscale) + "," + point.uppery;
+                }
+                return res;
+            }, "");
+            line.path = lowerline + upperline;
+        });
+    
+    /* Drawing streamgraph*/
+   
+    var paper = new Raphael($selector[0]);
+    
+    _(coords).each(function(line, index) {
+        line.color = COLORS[index % COLORS.length];
+        line.surface = paper.path(line.path);
+        line.surface.attr({
+            stroke: "none",
+            fill: line.color
+        });
+    });
+    
+    /* Drawing years */
+   
+    paper.path("M0," + (height - YEARSHEIGHT) + "," + width + "," + (height - YEARSHEIGHT))
+    var lastyear = ENDTIME.getFullYear();
+    for (var i = STARTTIME.getFullYear(); i <= lastyear; i++) {
+        var x = txscale * (new Date(i,0,1) - STARTTIME);
+        paper.path("M" + x + ",0," + x + "," + height);
+        var x = txscale * (new Date(i,6,1) - STARTTIME);
+        paper.text(x, height - .5 * YEARSHEIGHT, i)
+            .attr({
+                "text-anchor": "middle",
+                "font-family": "Times New Roman, serif",
+                "font-size": "14px"
+            });
+    }
+    
+    /* Drawing range window */
+    
+    var carregauche = paper.rect(width,-1,width,(2+height)),
+        carredroite = paper.rect(-width,-1,width,(2+height)),
+        attrcarres = {
+            fill: "#333333",
+            "fill-opacity": .5,
+            stroke: SELECTEDCOLOR
+        };
+    carregauche.attr(attrcarres);
+    carredroite.attr(attrcarres);
+    
+    var rangerect = paper.rect(0, (height - YEARSHEIGHT), width, YEARSHEIGHT);
+    rangerect.attr({
+        fill: SELECTEDCOLOR,
+        stroke: "none"
+    });
+    
+    function datetext(date) {
+        var d = new Date(date),
+            m = 1+d.getMonth(),
+            y = d.getFullYear();
+        return ((m < 10 ? "0" : "") + m + "/" + y);
+    }
+    
+    var startdate = paper.text(DATEPADDING, height - .5 * YEARSHEIGHT, datetext(STARTTIME));
+    startdate.attr({
+        fill: "#ffffff",
+        "text-anchor": "start"
+    });
+    var enddate = paper.text(width - DATEPADDING, height - .5 * YEARSHEIGHT, datetext(ENDTIME));
+    enddate.attr({
+        fill: "#ffffff",
+        "text-anchor": "end"
+    });
+    
+    /* Redrawing time slices for rollover effect */
+   
+    _(coords).each(function(line, index) {
+        line.mousesurface = paper.path(line.path);
+        console.log(line.mousesurface);
+        line.mousesurface.attr({
+            stroke: "none",
+            fill: line.color,
+            opacity: .01
+        }).mouseover(function() {
+            line.surface.attr({
+                fill: SELECTEDCOLOR
+            })
+        }).mouseout(function() {
+            line.surface.attr({
+                fill: line.color
+            })
+        });
+    });
+    
+    /* Returning a handler for slide value change */
+    
+    this.slidevalues = function(left, right) {
+        left = left || 0;
+        right = right || width;
+        carregauche.attr({x: left - width});
+        carredroite.attr({x: right});
+        startdate.attr({
+            x: DATEPADDING + left,
+            text: datetext(STARTTIME.valueOf() + left / txscale)
+        });
+        enddate.attr({
+            x: right - DATEPADDING,
+            text: datetext(STARTTIME.valueOf() + right / txscale)
+        });
+        rangerect.attr({
+            x: left,
+            width: right - left
+        });
+    }
+
+}
+
+$(function() {
+    window.streamgraph = new Streamgraph($(".streamgraph"));
+    streamgraph.slidevalues.apply(streamgraph,$("#slider-range").dragslider("values"));
+})
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/js/treemap.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,146 @@
+/* Génération de données aléatoires */
+
+var data = [],
+    startcolor = [ 0, 0, 255 ],
+    endcolor = [ 255, 255, 0 ]
+    elementcount = 8;
+
+for (var i = 0; i < elementcount; i++) {
+    var r = i/elementcount,
+        col = _(endcolor).map(function(e,i) {
+            var s = startcolor[i]
+            return Math.floor(r*e + (1-r)*s)
+        });
+    data.push({
+        label: "Cluster " + (1+i),
+        i: i+1,
+        color: "rgb("+col.join(",")+")",
+        value: 1+Math.pow(Math.random(),2)*5
+    });
+}
+
+/* Génération du Treemap */
+
+data = _(data).sortBy(function(d) { return -d.value; });
+
+var IDEALRATIO = 1.25;
+
+function cuttree(data, x, y, w, h, cut, ratio, callback) {
+    
+    function f(subdata, subx, suby, subw, subh) {
+        if (subdata.length == 1) {
+            subdata[0].x = subx;
+            subdata[0].y = suby;
+            subdata[0].w = subw;
+            subdata[0].h = subh;
+        } else {
+            callback(subdata, subx, suby, subw, subh)
+        }
+    }
+    
+    var first = _(data).first(cut), rest = _(data).rest(cut);
+    if (!first.length || !rest.length) {
+        return;
+    }
+    if (w/h > IDEALRATIO) {
+        var leftw = w * ratio;
+        f(first, x, y, leftw, h);
+        f(rest, x + leftw, y, w - leftw, h);
+    } else {
+        var toph = h * ratio;
+        f(first, x, y, w, toph);
+        f(rest, x, y + toph, w, h - toph);
+    }
+}
+
+function pivot(data, x, y, w, h) {
+    var cut = 1, cumul = 0, bestcumul = 0, total = _(data).reduce(function(a,b){return a+b.value},0), bestcut = Infinity;
+    for (var i = 0; i < data.length - 1; i++) {
+        cumul += data[i].value;
+        var delta = Math.abs(cumul - total/2);
+        if (delta < bestcut) {
+            bestcut = delta;
+            bestcumul = cumul;
+            cut = i+1;
+        } else {
+            break;
+        }
+    }
+    cuttree(data, x, y, w, h, cut, bestcumul / total, pivot);
+}
+
+function squarify(data, x, y, w, h) {
+    var cut = 1, cumul = 0, bestcumul = 0, total = _(data).reduce(function(a,b){return a+b.value},0), bestcut = Infinity;
+    for (var i = 0; i < data.length - 1; i++) {
+        cumul += data[i].value;
+        cuttree(data, x, y, w, h, i+1, cumul / total, pivot);
+        var ratio = Math.abs(Math.log(IDEALRATIO*data[0].h/data[0].w));
+        if (ratio < bestcut) {
+            bestcut = ratio;
+            bestcumul = cumul;
+            cut = i+1;
+        } else {
+            break;
+        }
+    }
+    cuttree(data, x, y, w, h, cut, bestcumul / total, squarify);
+}
+
+/* Template des éléments à insérer */
+var actu = 
+    '<div class="actu" style="left: <%=x%>px; top: <%=y%>px; width: <%=w%>px; height: <%=h%>px; background: <%=color%>">'+
+        '<a href="#">'+
+            '<img src="img/home-visuel-<%-i%>.jpg" alt="" />'+
+        '</a>'+
+        '<div class="inner-actu">'+
+            '<h2><a href="#"><%-label%></a></h2>'+
+            '<div class="links">'+
+                '<ul>'+
+                    '<li><a href="#" title="Supprimer le cluster" class="trash"></a></li>'+
+                    '<li><a href="#" title="317 Annotations sur ce cluster" class="file"><span>317</span></a></li>'+
+                    '<li><a href="#" title="Ajouter une annotation au cluster" class="comment"></a></li>'+
+                '</ul>'+
+            '</div>'+
+        '</div>'+
+    '</div>';
+var tmpl = _.template(actu);
+
+squarify(data,0,0,760,358);
+
+document.getElementById('treemap1').innerHTML = _(data).reduce(function(mem, d) {
+    return mem + tmpl(d);
+},"");
+
+//redimensionnement d'image
+$(".actu").each(function(k,v){
+    var wActu = $(this).width();
+    var hActu = $(this).height();
+    var img = $(this).find('img');
+    var wImg = img.width();
+    var hImg = img.height();
+
+    var ratioImg = wImg/hImg;
+    img.css('height',hActu);
+    img.css('width',hActu*ratioImg);
+    wImg = img.width();
+    hImg = img.height();
+
+    if(wActu>wImg){
+        var ratioImg = hImg/wImg;
+        img.css('width', wActu);
+        img.css('height',wActu*ratioImg);
+        wImg = img.width();
+        hImg = img.height();
+    }
+
+    if (wImg<wActu) {
+        img.css('margin-left',(wActu-wImg)/2);
+    }else{
+        img.css('margin-left',-(wImg-wActu)/2);
+    }
+    if (hImg<hActu) {
+        img.css('margin-top',(hActu-hImg)/2);
+    }else{
+        img.css('margin-top',-(hImg-hActu)/2);
+    }
+});
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/js/vendor/dragslider.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,104 @@
+//this code solves this problem: http://stackoverflow.com/questions/5955343/
+
+(function( $, undefined ) {
+
+$.widget("ui.dragslider", $.ui.slider, {
+    
+    options: $.extend({},$.ui.slider.prototype.options,{rangeDrag:false}),
+    
+    _create: function() {
+      $.ui.slider.prototype._create.apply(this,arguments);
+      this._rangeCapture = false;
+    },
+    
+    _mouseCapture: function( event ) { 
+      var o = this.options;
+
+      if ( o.disabled ) return false;
+    
+      if(event.target == this.range.get(0) && o.rangeDrag == true && o.range == true) {
+        this._rangeCapture = true;
+        this._rangeStart = null;
+      }
+      else {
+        this._rangeCapture = false;
+      }
+      
+      $.ui.slider.prototype._mouseCapture.apply(this,arguments);
+
+      if(this._rangeCapture == true) {	
+          this.handles.removeClass("ui-state-active").blur();	
+      }
+      
+      return true;
+    },
+    
+    _mouseStop: function( event ) {
+      this._rangeStart = null;
+      return $.ui.slider.prototype._mouseStop.apply(this,arguments);
+    },
+    
+    _slide: function( event, index, newVal ) {
+      if(!this._rangeCapture) { 
+        return $.ui.slider.prototype._slide.apply(this,arguments);
+      }
+      
+      if(this._rangeStart == null) {
+        this._rangeStart = newVal;
+      }
+      
+      var oldValLeft = this.options.values[0],
+          oldValRight = this.options.values[1],
+          slideDist = newVal - this._rangeStart,
+          newValueLeft = oldValLeft + slideDist,
+          newValueRight = oldValRight + slideDist,
+          allowed;
+      
+      if ( this.options.values && this.options.values.length ) {
+        if(newValueRight > this._valueMax() && slideDist > 0) {
+          slideDist -= (newValueRight-this._valueMax());
+          newValueLeft = oldValLeft + slideDist;
+          newValueRight = oldValRight + slideDist;
+        }
+        
+        if(newValueLeft < this._valueMin()) {
+          slideDist += (this._valueMin()-newValueLeft);
+          newValueLeft = oldValLeft + slideDist;
+          newValueRight = oldValRight + slideDist;
+        }
+
+        if ( slideDist != 0 ) {
+          newValues = this.values();
+          newValues[ 0 ] = newValueLeft;
+          newValues[ 1 ] = newValueRight;
+          
+          // A slide can be canceled by returning false from the slide callback
+          allowed = this._trigger( "slide", event, {
+            handle: this.handles[ index ],
+            value: slideDist,
+            values: newValues
+          } );
+          
+          if ( allowed !== false ) {
+            this.values( 0, newValueLeft, true );
+            this.values( 1, newValueRight, true );
+          }
+          this._rangeStart = newVal;
+        }
+      }
+      
+      
+     
+    },
+    
+    
+    /*
+    //only for testing purpose
+    value: function(input) {
+        console.log("this is working!");
+        $.ui.slider.prototype.value.apply(this,arguments);
+    }
+    */
+});
+
+})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/js/vendor/jquery-1.8.0.min.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,2 @@
+/*! jQuery v@1.8.0 jquery.com | jquery.org/license */
+(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d<e;d++)p.event.add(b,c,h[c][d])}g.data&&(g.data=p.extend({},g.data))}function bE(a,b){var c;if(b.nodeType!==1)return;b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?(b.parentNode&&(b.outerHTML=a.outerHTML),p.support.html5Clone&&a.innerHTML&&!p.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):c==="input"&&bv.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text),b.removeAttribute(p.expando)}function bF(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bG(a){bv.test(a.type)&&(a.defaultChecked=a.checked)}function bX(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=bV.length;while(e--){b=bV[e]+c;if(b in a)return b}return d}function bY(a,b){return a=b||a,p.css(a,"display")==="none"||!p.contains(a.ownerDocument,a)}function bZ(a,b){var c,d,e=[],f=0,g=a.length;for(;f<g;f++){c=a[f];if(!c.style)continue;e[f]=p._data(c,"olddisplay"),b?(!e[f]&&c.style.display==="none"&&(c.style.display=""),c.style.display===""&&bY(c)&&(e[f]=p._data(c,"olddisplay",cb(c.nodeName)))):(d=bH(c,"display"),!e[f]&&d!=="none"&&p._data(c,"olddisplay",d))}for(f=0;f<g;f++){c=a[f];if(!c.style)continue;if(!b||c.style.display==="none"||c.style.display==="")c.style.display=b?e[f]||"":"none"}return a}function b$(a,b,c){var d=bO.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function b_(a,b,c,d){var e=c===(d?"border":"content")?4:b==="width"?1:0,f=0;for(;e<4;e+=2)c==="margin"&&(f+=p.css(a,c+bU[e],!0)),d?(c==="content"&&(f-=parseFloat(bH(a,"padding"+bU[e]))||0),c!=="margin"&&(f-=parseFloat(bH(a,"border"+bU[e]+"Width"))||0)):(f+=parseFloat(bH(a,"padding"+bU[e]))||0,c!=="padding"&&(f+=parseFloat(bH(a,"border"+bU[e]+"Width"))||0));return f}function ca(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=!0,f=p.support.boxSizing&&p.css(a,"boxSizing")==="border-box";if(d<=0){d=bH(a,b);if(d<0||d==null)d=a.style[b];if(bP.test(d))return d;e=f&&(p.support.boxSizingReliable||d===a.style[b]),d=parseFloat(d)||0}return d+b_(a,b,c||(f?"border":"content"),e)+"px"}function cb(a){if(bR[a])return bR[a];var b=p("<"+a+">").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write("<!doctype html><html><body>"),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bR[a]=c,c}function ch(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||cd.test(a)?d(a,e):ch(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ch(a+"["+e+"]",b[e],c,d);else d(a,b)}function cy(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h<i;h++)d=g[h],f=/^\+/.test(d),f&&(d=d.substr(1)||"*"),e=a[d]=a[d]||[],e[f?"unshift":"push"](c)}}function cz(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h,i=a[f],j=0,k=i?i.length:0,l=a===cu;for(;j<k&&(l||!h);j++)h=i[j](c,d,e),typeof h=="string"&&(!l||g[h]?h=b:(c.dataTypes.unshift(h),h=cz(a,c,d,e,h,g)));return(l||!h)&&!g["*"]&&(h=cz(a,c,d,e,"*",g)),h}function cA(a,c){var d,e,f=p.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((f[d]?a:e||(e={}))[d]=c[d]);e&&p.extend(!0,a,e)}function cB(a,c,d){var e,f,g,h,i=a.contents,j=a.dataTypes,k=a.responseFields;for(f in k)f in d&&(c[k[f]]=d[f]);while(j[0]==="*")j.shift(),e===b&&(e=a.mimeType||c.getResponseHeader("content-type"));if(e)for(f in i)if(i[f]&&i[f].test(e)){j.unshift(f);break}if(j[0]in d)g=j[0];else{for(f in d){if(!j[0]||a.converters[f+" "+j[0]]){g=f;break}h||(h=f)}g=g||h}if(g)return g!==j[0]&&j.unshift(g),d[g]}function cC(a,b){var c,d,e,f,g=a.dataTypes.slice(),h=g[0],i={},j=0;a.dataFilter&&(b=a.dataFilter(b,a.dataType));if(g[1])for(c in a.converters)i[c.toLowerCase()]=a.converters[c];for(;e=g[++j];)if(e!=="*"){if(h!=="*"&&h!==e){c=i[h+" "+e]||i["* "+e];if(!c)for(d in i){f=d.split(" ");if(f[1]===e){c=i[h+" "+f[0]]||i["* "+f[0]];if(c){c===!0?c=i[d]:i[d]!==!0&&(e=f[0],g.splice(j--,0,e));break}}}if(c!==!0)if(c&&a["throws"])b=c(b);else try{b=c(b)}catch(k){return{state:"parsererror",error:c?k:"No conversion from "+h+" to "+e}}}h=e}return{state:"success",data:b}}function cK(){try{return new a.XMLHttpRequest}catch(b){}}function cL(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function cT(){return setTimeout(function(){cM=b},0),cM=p.now()}function cU(a,b){p.each(b,function(b,c){var d=(cS[b]||[]).concat(cS["*"]),e=0,f=d.length;for(;e<f;e++)if(d[e].call(a,b,c))return})}function cV(a,b,c){var d,e=0,f=0,g=cR.length,h=p.Deferred().always(function(){delete i.elem}),i=function(){var b=cM||cT(),c=Math.max(0,j.startTime+j.duration-b),d=1-(c/j.duration||0),e=0,f=j.tweens.length;for(;e<f;e++)j.tweens[e].run(d);return h.notifyWith(a,[j,d,c]),d<1&&f?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:p.extend({},b),opts:p.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:cM||cT(),duration:c.duration,tweens:[],createTween:function(b,c,d){var e=p.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(e),e},stop:function(b){var c=0,d=b?j.tweens.length:0;for(;c<d;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;cW(k,j.opts.specialEasing);for(;e<g;e++){d=cR[e].call(j,a,k,j.opts);if(d)return d}return cU(j,k),p.isFunction(j.opts.start)&&j.opts.start.call(a,j),p.fx.timer(p.extend(i,{anim:j,queue:j.opts.queue,elem:a})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function cW(a,b){var c,d,e,f,g;for(c in a){d=p.camelCase(c),e=b[d],f=a[c],p.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=p.cssHooks[d];if(g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}}function cX(a,b,c){var d,e,f,g,h,i,j,k,l=this,m=a.style,n={},o=[],q=a.nodeType&&bY(a);c.queue||(j=p._queueHooks(a,"fx"),j.unqueued==null&&(j.unqueued=0,k=j.empty.fire,j.empty.fire=function(){j.unqueued||k()}),j.unqueued++,l.always(function(){l.always(function(){j.unqueued--,p.queue(a,"fx").length||j.empty.fire()})})),a.nodeType===1&&("height"in b||"width"in b)&&(c.overflow=[m.overflow,m.overflowX,m.overflowY],p.css(a,"display")==="inline"&&p.css(a,"float")==="none"&&(!p.support.inlineBlockNeedsLayout||cb(a.nodeName)==="inline"?m.display="inline-block":m.zoom=1)),c.overflow&&(m.overflow="hidden",p.support.shrinkWrapBlocks||l.done(function(){m.overflow=c.overflow[0],m.overflowX=c.overflow[1],m.overflowY=c.overflow[2]}));for(d in b){f=b[d];if(cO.exec(f)){delete b[d];if(f===(q?"hide":"show"))continue;o.push(d)}}g=o.length;if(g){h=p._data(a,"fxshow")||p._data(a,"fxshow",{}),q?p(a).show():l.done(function(){p(a).hide()}),l.done(function(){var b;p.removeData(a,"fxshow",!0);for(b in n)p.style(a,b,n[b])});for(d=0;d<g;d++)e=o[d],i=l.createTween(e,q?h[e]:0),n[e]=h[e]||p.style(a,e),e in h||(h[e]=i.start,q&&(i.end=i.start,i.start=e==="width"||e==="height"?1:0))}}function cY(a,b,c,d,e){return new cY.prototype.init(a,b,c,d,e)}function cZ(a,b){var c,d={height:a},e=0;for(;e<4;e+=2-b)c=bU[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function c_(a){return p.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}var c,d,e=a.document,f=a.location,g=a.navigator,h=a.jQuery,i=a.$,j=Array.prototype.push,k=Array.prototype.slice,l=Array.prototype.indexOf,m=Object.prototype.toString,n=Object.prototype.hasOwnProperty,o=String.prototype.trim,p=function(a,b){return new p.fn.init(a,b,c)},q=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,r=/\S/,s=/\s+/,t=r.test(" ")?/^[\s\xA0]+|[\s\xA0]+$/g:/^\s+|\s+$/g,u=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.0",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i<j;i++)if((a=arguments[i])!=null)for(c in a){d=h[c],e=a[c];if(h===e)continue;k&&e&&(p.isPlainObject(e)||(f=p.isArray(e)))?(f?(f=!1,g=d&&p.isArray(d)?d:[]):g=d&&p.isPlainObject(d)?d:{},h[c]=p.extend(k,g,e)):e!==b&&(h[c]=e)}return h},p.extend({noConflict:function(b){return a.$===p&&(a.$=i),b&&a.jQuery===p&&(a.jQuery=h),p},isReady:!1,readyWait:1,holdReady:function(a){a?p.readyWait++:p.ready(!0)},ready:function(a){if(a===!0?--p.readyWait:p.isReady)return;if(!e.body)return setTimeout(p.ready,1);p.isReady=!0;if(a!==!0&&--p.readyWait>0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f<g;)if(c.apply(a[f++],d)===!1)break}else if(h){for(e in a)if(c.call(a[e],e,a[e])===!1)break}else for(;f<g;)if(c.call(a[f],f,a[f++])===!1)break;return a},trim:o?function(a){return a==null?"":o.call(a)}:function(a){return a==null?"":a.toString().replace(t,"")},makeArray:function(a,b){var c,d=b||[];return a!=null&&(c=p.type(a),a.length==null||c==="string"||c==="function"||c==="regexp"||p.isWindow(a)?j.call(d,a):p.merge(d,a)),d},inArray:function(a,b,c){var d;if(b){if(l)return l.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=c.length,e=a.length,f=0;if(typeof d=="number")for(;f<d;f++)a[e++]=c[f];else while(c[f]!==b)a[e++]=c[f++];return a.length=e,a},grep:function(a,b,c){var d,e=[],f=0,g=a.length;c=!!c;for(;f<g;f++)d=!!b(a[f],f),c!==d&&e.push(a[f]);return e},map:function(a,c,d){var e,f,g=[],h=0,i=a.length,j=a instanceof p||i!==b&&typeof i=="number"&&(i>0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h<i;h++)e=c(a[h],h,d),e!=null&&(g[g.length]=e);else for(f in a)e=c(a[f],f,d),e!=null&&(g[g.length]=e);return g.concat.apply([],g)},guid:1,proxy:function(a,c){var d,e,f;return typeof c=="string"&&(d=a[c],c=a,a=d),p.isFunction(a)?(e=k.call(arguments,2),f=function(){return a.apply(c,e.concat(k.call(arguments)))},f.guid=a.guid=a.guid||f.guid||p.guid++,f):b},access:function(a,c,d,e,f,g,h){var i,j=d==null,k=0,l=a.length;if(d&&typeof d=="object"){for(k in d)p.access(a,c,k,d[k],1,g,e);f=1}else if(e!==b){i=h===b&&p.isFunction(e),j&&(i?(i=c,c=function(a,b,c){return i.call(p(a),c)}):(c.call(a,e),c=null));if(c)for(;k<l;k++)c(a[k],d,i?e.call(a[k],k,c(a[k],d)):e,h);f=1}return f?a:j?c.call(a):l?c(a[0],d):g},now:function(){return(new Date).getTime()}}),p.ready.promise=function(b){if(!d){d=p.Deferred();if(e.readyState==="complete"||e.readyState!=="loading"&&e.addEventListener)setTimeout(p.ready,1);else if(e.addEventListener)e.addEventListener("DOMContentLoaded",D,!1),a.addEventListener("load",p.ready,!1);else{e.attachEvent("onreadystatechange",D),a.attachEvent("onload",p.ready);var c=!1;try{c=a.frameElement==null&&e.documentElement}catch(f){}c&&c.doScroll&&function g(){if(!p.isReady){try{c.doScroll("left")}catch(a){return setTimeout(g,50)}p.ready()}}()}}return d.promise(b)},p.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){E["[object "+b+"]"]=b.toLowerCase()}),c=p(e);var F={};p.Callbacks=function(a){a=typeof a=="string"?F[a]||G(a):p.extend({},a);var c,d,e,f,g,h,i=[],j=!a.once&&[],k=function(b){c=a.memory&&b,d=!0,h=f||0,f=0,g=i.length,e=!0;for(;i&&h<g;h++)if(i[h].apply(b[0],b[1])===!1&&a.stopOnFalse){c=!1;break}e=!1,i&&(j?j.length&&k(j.shift()):c?i=[]:l.disable())},l={add:function(){if(i){var b=i.length;(function d(b){p.each(b,function(b,c){p.isFunction(c)&&(!a.unique||!l.has(c))?i.push(c):c&&c.length&&d(c)})})(arguments),e?g=i.length:c&&(f=b,k(c))}return this},remove:function(){return i&&p.each(arguments,function(a,b){var c;while((c=p.inArray(b,i,c))>-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return typeof a=="object"?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b<d;b++)c[b]&&p.isFunction(c[b].promise)?c[b].promise().done(g(b,j,c)).fail(f.reject).progress(g(b,i,h)):--e}return e||f.resolveWith(j,c),f.promise()}}),p.support=function(){var b,c,d,f,g,h,i,j,k,l,m,n=e.createElement("div");n.setAttribute("className","t"),n.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length||!d)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="<div></div>",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/^(?:\{.*\}|\[.*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||++p.uuid:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e<f;e++)delete d[b[e]];if(!(c?K:p.isEmptyObject)(d))return}}if(!c){delete h[i].data;if(!K(h[i]))return}g?p.cleanData([a],!0):p.support.deleteExpando||h!=h.window?delete h[i]:h[i]=null},_data:function(a,b,c){return p.data(a,b,c,!0)},acceptData:function(a){var b=a.nodeName&&p.noData[a.nodeName.toLowerCase()];return!b||b!==!0&&a.getAttribute("classid")===b}}),p.fn.extend({data:function(a,c){var d,e,f,g,h,i=this[0],j=0,k=null;if(a===b){if(this.length){k=p.data(i);if(i.nodeType===1&&!p._data(i,"parsedAttrs")){f=i.attributes;for(h=f.length;j<h;j++)g=f[j].name,g.indexOf("data-")===0&&(g=p.camelCase(g.substring(5)),J(i,g,k[g]));p._data(i,"parsedAttrs",!0)}}return k}return typeof a=="object"?this.each(function(){p.data(this,a)}):(d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!",p.access(this,function(c){if(c===b)return k=this.triggerHandler("getData"+e,[d[0]]),k===b&&i&&(k=p.data(i,a),k=J(i,a,k)),k===b&&d[1]?this.data(d[0]):k;d[1]=c,this.each(function(){var b=p(this);b.triggerHandler("setData"+e,d),p.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.shift(),e=p._queueHooks(a,b),f=function(){p.dequeue(a,b)};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),delete e.stop,d.call(a,f,e)),!c.length&&e&&e.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length<d?p.queue(this[0],a):c===b?this:this.each(function(){var b=p.queue(this,a,c);p._queueHooks(this,a),a==="fx"&&b[0]!=="inprogress"&&p.dequeue(this,a)})},dequeue:function(a){return this.each(function(){p.dequeue(this,a)})},delay:function(a,b){return a=p.fx?p.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){var d,e=1,f=p.Deferred(),g=this,h=this.length,i=function(){--e||f.resolveWith(g,[g])};typeof a!="string"&&(c=a,a=b),a=a||"fx";while(h--)(d=p._data(g[h],a+"queueHooks"))&&d.empty&&(e++,d.empty.add(i));return i(),f.promise(c)}});var L,M,N,O=/[\t\r\n]/g,P=/\r/g,Q=/^(?:button|input)$/i,R=/^(?:button|input|object|select|textarea)$/i,S=/^a(?:rea|)$/i,T=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,U=p.support.getSetAttribute;p.fn.extend({attr:function(a,b){return p.access(this,p.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{f=" "+e.className+" ";for(g=0,h=b.length;g<h;g++)~f.indexOf(" "+b[g]+" ")||(f+=b[g]+" ");e.className=p.trim(f)}}}return this},removeClass:function(a){var c,d,e,f,g,h,i;if(p.isFunction(a))return this.each(function(b){p(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(s);for(h=0,i=this.length;h<i;h++){e=this[h];if(e.nodeType===1&&e.className){d=(" "+e.className+" ").replace(O," ");for(f=0,g=c.length;f<g;f++)while(d.indexOf(" "+c[f]+" ")>-1)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(O," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c<d;c++){e=h[c];if(e.selected&&(p.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!p.nodeName(e.parentNode,"optgroup"))){b=p(e).val();if(i)return b;g.push(b)}}return i&&!g.length&&h.length?p(h[f]).val():g},set:function(a,b){var c=p.makeArray(b);return p(a).find("option").each(function(){this.selected=p.inArray(p(this).val(),c)>=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,""+d),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g<d.length;g++)e=d[g],e&&(c=p.propFix[e]||e,f=T.test(e),f||p.attr(a,e,""),a.removeAttribute(U?e:c),f&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(Q.test(a.nodeName)&&a.parentNode)p.error("type property can't be changed");else if(!p.support.radioValue&&b==="radio"&&p.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}},value:{get:function(a,b){return L&&p.nodeName(a,"button")?L.get(a,b):b in a?a.value:null},set:function(a,b,c){if(L&&p.nodeName(a,"button"))return L.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,f,g,h=a.nodeType;if(!a||h===3||h===8||h===2)return;return g=h!==1||!p.isXMLDoc(a),g&&(c=p.propFix[c]||c,f=p.propHooks[c]),d!==b?f&&"set"in f&&(e=f.set(a,d,c))!==b?e:a[c]=d:f&&"get"in f&&(e=f.get(a,c))!==null?e:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):R.test(a.nodeName)||S.test(a.nodeName)&&a.href?0:b}}}}),M={get:function(a,c){var d,e=p.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;return b===!1?p.removeAttr(a,c):(d=p.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase())),c}},U||(N={name:!0,id:!0,coords:!0},L=p.valHooks.button={get:function(a,c){var d;return d=a.getAttributeNode(c),d&&(N[c]?d.value!=="":d.specified)?d.value:b},set:function(a,b,c){var d=a.getAttributeNode(c);return d||(d=e.createAttribute(c),a.setAttributeNode(d)),d.value=b+""}},p.each(["width","height"],function(a,b){p.attrHooks[b]=p.extend(p.attrHooks[b],{set:function(a,c){if(c==="")return a.setAttribute(b,"auto"),c}})}),p.attrHooks.contenteditable={get:L.get,set:function(a,b,c){b===""&&(b="false"),L.set(a,b,c)}}),p.support.hrefNormalized||p.each(["href","src","width","height"],function(a,c){p.attrHooks[c]=p.extend(p.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),p.support.style||(p.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),p.support.optSelected||(p.propHooks.selected=p.extend(p.propHooks.selected,{get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}})),p.support.enctype||(p.propFix.enctype="encoding"),p.support.checkOn||p.each(["radio","checkbox"],function(){p.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),p.each(["radio","checkbox"],function(){p.valHooks[this]=p.extend(p.valHooks[this],{set:function(a,b){if(p.isArray(b))return a.checked=p.inArray(p(a).val(),b)>=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j<c.length;j++){k=W.exec(c[j])||[],l=k[1],m=(k[2]||"").split(".").sort(),r=p.event.special[l]||{},l=(f?r.delegateType:r.bindType)||l,r=p.event.special[l]||{},n=p.extend({type:l,origType:k[1],data:e,handler:d,guid:d.guid,selector:f,namespace:m.join(".")},o),q=i[l];if(!q){q=i[l]=[],q.delegateCount=0;if(!r.setup||r.setup.call(a,e,m,h)===!1)a.addEventListener?a.addEventListener(l,h,!1):a.attachEvent&&a.attachEvent("on"+l,h)}r.add&&(r.add.call(a,n),n.handler.guid||(n.handler.guid=d.guid)),f?q.splice(q.delegateCount++,0,n):q.push(n),p.event.global[l]=!0}a=null},global:{},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,q,r=p.hasData(a)&&p._data(a);if(!r||!(m=r.events))return;b=p.trim(_(b||"")).split(" ");for(f=0;f<b.length;f++){g=W.exec(b[f])||[],h=i=g[1],j=g[2];if(!h){for(h in m)p.event.remove(a,h+b[f],c,d,!0);continue}n=p.event.special[h]||{},h=(d?n.delegateType:n.bindType)||h,o=m[h]||[],k=o.length,j=j?new RegExp("(^|\\.)"+j.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(l=0;l<o.length;l++)q=o[l],(e||i===q.origType)&&(!c||c.guid===q.guid)&&(!j||j.test(q.namespace))&&(!d||d===q.selector||d==="**"&&q.selector)&&(o.splice(l--,1),q.selector&&o.delegateCount--,n.remove&&n.remove.call(a,q));o.length===0&&k!==o.length&&((!n.teardown||n.teardown.call(a,j,r.handle)===!1)&&p.removeEvent(a,h,r.handle),delete m[h])}p.isEmptyObject(m)&&(delete r.handle,p.removeData(a,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,f,g){if(!f||f.nodeType!==3&&f.nodeType!==8){var h,i,j,k,l,m,n,o,q,r,s=c.type||c,t=[];if($.test(s+p.event.triggered))return;s.indexOf("!")>=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j<q.length&&!c.isPropagationStopped();j++)k=q[j][0],c.type=q[j][1],o=(p._data(k,"events")||{})[c.type]&&p._data(k,"handle"),o&&o.apply(k,d),o=m&&k[m],o&&p.acceptData(k)&&o.apply(k,d)===!1&&c.preventDefault();return c.type=s,!g&&!c.isDefaultPrevented()&&(!n._default||n._default.apply(f.ownerDocument,d)===!1)&&(s!=="click"||!p.nodeName(f,"a"))&&p.acceptData(f)&&m&&f[s]&&(s!=="focus"&&s!=="blur"||c.target.offsetWidth!==0)&&!p.isWindow(f)&&(l=f[m],l&&(f[m]=null),p.event.triggered=s,f[s](),p.event.triggered=b,l&&(f[m]=l)),c.result}return},dispatch:function(c){c=p.event.fix(c||a.event);var d,e,f,g,h,i,j,k,l,m,n,o=(p._data(this,"events")||{})[c.type]||[],q=o.delegateCount,r=[].slice.call(arguments),s=!c.exclusive&&!c.namespace,t=p.event.special[c.type]||{},u=[];r[0]=c,c.delegateTarget=this;if(t.preDispatch&&t.preDispatch.call(this,c)===!1)return;if(q&&(!c.button||c.type!=="click")){g=p(this),g.context=this;for(f=c.target;f!=this;f=f.parentNode||this)if(f.disabled!==!0||c.type!=="click"){i={},k=[],g[0]=f;for(d=0;d<q;d++)l=o[d],m=l.selector,i[m]===b&&(i[m]=g.is(m)),i[m]&&k.push(l);k.length&&u.push({elem:f,matches:k})}}o.length>q&&u.push({elem:this,matches:o.slice(q)});for(d=0;d<u.length&&!c.isPropagationStopped();d++){j=u[d],c.currentTarget=j.elem;for(e=0;e<j.matches.length&&!c.isImmediatePropagationStopped();e++){l=j.matches[e];if(s||!c.namespace&&!l.namespace||c.namespace_re&&c.namespace_re.test(l.namespace))c.data=l.data,c.handleObj=l,h=((p.event.special[l.origType]||{}).handle||l.handler).apply(j.elem,r),h!==b&&(c.result=h,h===!1&&(c.preventDefault(),c.stopPropagation()))}}return t.postDispatch&&t.postDispatch.call(this,c),c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,c){var d,f,g,h=c.button,i=c.fromElement;return a.pageX==null&&c.clientX!=null&&(d=a.target.ownerDocument||e,f=d.documentElement,g=d.body,a.pageX=c.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=c.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?c.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0),a}},fix:function(a){if(a[p.expando])return a;var b,c,d=a,f=p.event.fixHooks[a.type]||{},g=f.props?this.props.concat(f.props):this.props;a=p.Event(d);for(b=g.length;b;)c=g[--b],a[c]=d[c];return a.target||(a.target=d.srcElement||e),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,f.filter?f.filter(a,d):a},special:{ready:{setup:p.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){p.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=p.extend(new p.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?p.event.trigger(e,null,b):p.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},p.event.handle=p.event.dispatch,p.removeEvent=e.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]=="undefined"&&(a[d]=null),a.detachEvent(d,c))},p.Event=function(a,b){if(this instanceof p.Event)a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?bb:ba):this.type=a,b&&p.extend(this,b),this.timeStamp=a&&a.timeStamp||p.now(),this[p.expando]=!0;else return new p.Event(a,b)},p.Event.prototype={preventDefault:function(){this.isDefaultPrevented=bb;var a=this.originalEvent;if(!a)return;a.preventDefault?a.preventDefault():a.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=bb;var a=this.originalEvent;if(!a)return;a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=bb,this.stopPropagation()},isDefaultPrevented:ba,isPropagationStopped:ba,isImmediatePropagationStopped:ba},p.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){p.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj,g=f.selector;if(!e||e!==d&&!p.contains(d,e))a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b;return c}}}),p.support.submitBubbles||(p.event.special.submit={setup:function(){if(p.nodeName(this,"form"))return!1;p.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=p.nodeName(c,"input")||p.nodeName(c,"button")?c.form:b;d&&!p._data(d,"_submit_attached")&&(p.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),p._data(d,"_submit_attached",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&p.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(p.nodeName(this,"form"))return!1;p.event.remove(this,"._submit")}}),p.support.changeBubbles||(p.event.special.change={setup:function(){if(V.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")p.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),p.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),p.event.simulate("change",this,a,!0)});return!1}p.event.add(this,"beforeactivate._change",function(a){var b=a.target;V.test(b.nodeName)&&!p._data(b,"_change_attached")&&(p.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&p.event.simulate("change",this.parentNode,a,!0)}),p._data(b,"_change_attached",!0))})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){return p.event.remove(this,"._change"),V.test(this.nodeName)}}),p.support.focusinBubbles||p.each({focus:"focusin",blur:"focusout"},function(a,b){var c=0,d=function(a){p.event.simulate(b,a.target,p.event.fix(a),!0)};p.event.special[b]={setup:function(){c++===0&&e.addEventListener(a,d,!0)},teardown:function(){--c===0&&e.removeEventListener(a,d,!0)}}}),p.fn.extend({on:function(a,c,d,e,f){var g,h;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(h in a)this.on(h,c,d,a[h],f);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=ba;else if(!e)return this;return f===1&&(g=e,e=function(a){return p().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=p.guid++)),this.each(function(){p.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){var e,f;if(a&&a.preventDefault&&a.handleObj)return e=a.handleObj,p(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler),this;if(typeof a=="object"){for(f in a)this.off(f,c,a[f]);return this}if(c===!1||typeof c=="function")d=c,c=b;return d===!1&&(d=ba),this.each(function(){p.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){return p(this.context).on(a,this.selector,b,c),this},die:function(a,b){return p(this.context).off(a,this.selector||"**",b),this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a||"**",c)},trigger:function(a,b){return this.each(function(){p.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return p.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||p.guid++,d=0,e=function(c){var e=(p._data(this,"lastToggle"+a.guid)||0)%d;return p._data(this,"lastToggle"+a.guid,e+1),c.preventDefault(),b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),p.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){p.fn[b]=function(a,c){return c==null&&(c=a,a=null),arguments.length>0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bd(a,b,c,d){var e=0,f=b.length;for(;e<f;e++)Z(a,b[e],c,d)}function be(a,b,c,d,e,f){var g,h=$.setFilters[b.toLowerCase()];return h||Z.error(b),(a||!(g=e))&&bd(a||"*",d,g=[],e),g.length>0?h(g,c,f):[]}function bf(a,c,d,e,f){var g,h,i,j,k,l,m,n,p=0,q=f.length,s=L.POS,t=new RegExp("^"+s.source+"(?!"+r+")","i"),u=function(){var a=1,c=arguments.length-2;for(;a<c;a++)arguments[a]===b&&(g[a]=b)};for(;p<q;p++){s.exec(""),a=f[p],j=[],i=0,k=e;while(g=s.exec(a)){n=s.lastIndex=g.index+g[0].length;if(n>i){m=a.slice(i,g.index),i=n,l=[c],B.test(m)&&(k&&(l=k),k=e);if(h=H.test(m))m=m.slice(0,-5).replace(B,"$&*");g.length>1&&g[0].replace(t,u),k=be(m,g[1],g[2],l,k,h)}}k?(j=j.concat(k),(m=a.slice(i))&&m!==")"?B.test(m)?bd(m,j,d,e):Z(m,c,d,e?e.concat(k):k):o.apply(d,j)):Z(a,c,d,e)}return q===1?d:Z.uniqueSort(d)}function bg(a,b,c){var d,e,f,g=[],i=0,j=D.exec(a),k=!j.pop()&&!j.pop(),l=k&&a.match(C)||[""],m=$.preFilter,n=$.filter,o=!c&&b!==h;for(;(e=l[i])!=null&&k;i++){g.push(d=[]),o&&(e=" "+e);while(e){k=!1;if(j=B.exec(e))e=e.slice(j[0].length),k=d.push({part:j.pop().replace(A," "),captures:j});for(f in n)(j=L[f].exec(e))&&(!m[f]||(j=m[f](j,b,c)))&&(e=e.slice(j.shift().length),k=d.push({part:f,captures:j}));if(!k)break}}return k||Z.error(a),g}function bh(a,b,e){var f=b.dir,g=m++;return a||(a=function(a){return a===e}),b.first?function(b,c){while(b=b[f])if(b.nodeType===1)return a(b,c)&&b}:function(b,e){var h,i=g+"."+d,j=i+"."+c;while(b=b[f])if(b.nodeType===1){if((h=b[q])===j)return b.sizset;if(typeof h=="string"&&h.indexOf(i)===0){if(b.sizset)return b}else{b[q]=j;if(a(b,e))return b.sizset=!0,b;b.sizset=!1}}}}function bi(a,b){return a?function(c,d){var e=b(c,d);return e&&a(e===!0?c:e,d)}:b}function bj(a,b,c){var d,e,f=0;for(;d=a[f];f++)$.relative[d.part]?e=bh(e,$.relative[d.part],b):(d.captures.push(b,c),e=bi(e,$.filter[d.part].apply(null,d.captures)));return e}function bk(a){return function(b,c){var d,e=0;for(;d=a[e];e++)if(d(b,c))return!0;return!1}}var c,d,e,f,g,h=a.document,i=h.documentElement,j="undefined",k=!1,l=!0,m=0,n=[].slice,o=[].push,q=("sizcache"+Math.random()).replace(".",""),r="[\\x20\\t\\r\\n\\f]",s="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",t=s.replace("w","w#"),u="([*^$|!~]?=)",v="\\["+r+"*("+s+")"+r+"*(?:"+u+r+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+t+")|)|)"+r+"*\\]",w=":("+s+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|((?:[^,]|\\\\,|(?:,(?=[^\\[]*\\]))|(?:,(?=[^\\(]*\\))))*))\\)|)",x=":(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\)|)(?=[^-]|$)",y=r+"*([\\x20\\t\\r\\n\\f>+~])"+r+"*",z="(?=[^\\x20\\t\\r\\n\\f])(?:\\\\.|"+v+"|"+w.replace(2,7)+"|[^\\\\(),])+",A=new RegExp("^"+r+"+|((?:^|[^\\\\])(?:\\\\.)*)"+r+"+$","g"),B=new RegExp("^"+y),C=new RegExp(z+"?(?="+r+"*,|$)","g"),D=new RegExp("^(?:(?!,)(?:(?:^|,)"+r+"*"+z+")*?|"+r+"*(.*?))(\\)|$)"),E=new RegExp(z.slice(19,-6)+"\\x20\\t\\r\\n\\f>+~])+|"+y,"g"),F=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,G=/[\x20\t\r\n\f]*[+~]/,H=/:not\($/,I=/h\d/i,J=/input|select|textarea|button/i,K=/\\(?!\\)/g,L={ID:new RegExp("^#("+s+")"),CLASS:new RegExp("^\\.("+s+")"),NAME:new RegExp("^\\[name=['\"]?("+s+")['\"]?\\]"),TAG:new RegExp("^("+s.replace("[-","[-\\*")+")"),ATTR:new RegExp("^"+v),PSEUDO:new RegExp("^"+w),CHILD:new RegExp("^:(only|nth|last|first)-child(?:\\("+r+"*(even|odd|(([+-]|)(\\d*)n|)"+r+"*(?:([+-]|)"+r+"*(\\d+)|))"+r+"*\\)|)","i"),POS:new RegExp(x,"ig"),needsContext:new RegExp("^"+r+"*[>+~]|"+x,"i")},M={},N=[],O={},P=[],Q=function(a){return a.sizzleFilter=!0,a},R=function(a){return function(b){return b.nodeName.toLowerCase()==="input"&&b.type===a}},S=function(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}},T=function(a){var b=!1,c=h.createElement("div");try{b=a(c)}catch(d){}return c=null,b},U=T(function(a){a.innerHTML="<select></select>";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),V=T(function(a){a.id=q+0,a.innerHTML="<a name='"+q+"'></a><div name='"+q+"'></div>",i.insertBefore(a,i.firstChild);var b=h.getElementsByName&&h.getElementsByName(q).length===2+h.getElementsByName(q+0).length;return g=!h.getElementById(q),i.removeChild(a),b}),W=T(function(a){return a.appendChild(h.createComment("")),a.getElementsByTagName("*").length===0}),X=T(function(a){return a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!==j&&a.firstChild.getAttribute("href")==="#"}),Y=T(function(a){return a.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!a.getElementsByClassName||a.getElementsByClassName("e").length===0?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length!==1)}),Z=function(a,b,c,d){c=c||[],b=b||h;var e,f,g,i,j=b.nodeType;if(j!==1&&j!==9)return[];if(!a||typeof a!="string")return c;g=ba(b);if(!g&&!d)if(e=F.exec(a))if(i=e[1]){if(j===9){f=b.getElementById(i);if(!f||!f.parentNode)return c;if(f.id===i)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(i))&&bb(b,f)&&f.id===i)return c.push(f),c}else{if(e[2])return o.apply(c,n.call(b.getElementsByTagName(a),0)),c;if((i=e[3])&&Y&&b.getElementsByClassName)return o.apply(c,n.call(b.getElementsByClassName(i),0)),c}return bm(a,b,c,d,g)},$=Z.selectors={cacheLength:50,match:L,order:["ID","TAG"],attrHandle:{},createPseudo:Q,find:{ID:g?function(a,b,c){if(typeof b.getElementById!==j&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==j&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==j&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:W?function(a,b){if(typeof b.getElementsByTagName!==j)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(K,""),a[3]=(a[4]||a[5]||"").replace(K,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||Z.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&Z.error(a[0]),a},PSEUDO:function(a){var b,c=a[4];return L.CHILD.test(a[0])?null:(c&&(b=D.exec(c))&&b.pop()&&(a[0]=a[0].slice(0,b[0].length-c.length-1),c=b[0].slice(0,-1)),a.splice(2,3,c||a[3]),a)}},filter:{ID:g?function(a){return a=a.replace(K,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(K,""),function(b){var c=typeof b.getAttributeNode!==j&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(K,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=M[a];return b||(b=M[a]=new RegExp("(^|"+r+")"+a+"("+r+"|$)"),N.push(a),N.length>$.cacheLength&&delete M[N.shift()]),function(a){return b.test(a.className||typeof a.getAttribute!==j&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return b?function(d){var e=Z.attr(d,a),f=e+"";if(e==null)return b==="!=";switch(b){case"=":return f===c;case"!=":return f!==c;case"^=":return c&&f.indexOf(c)===0;case"*=":return c&&f.indexOf(c)>-1;case"$=":return c&&f.substr(f.length-c.length)===c;case"~=":return(" "+f+" ").indexOf(c)>-1;case"|=":return f===c||f.substr(0,c.length+1)===c+"-"}}:function(b){return Z.attr(b,a)!=null}},CHILD:function(a,b,c,d){if(a==="nth"){var e=m++;return function(a){var b,f,g=0,h=a;if(c===1&&d===0)return!0;b=a.parentNode;if(b&&(b[q]!==e||!a.sizset)){for(h=b.firstChild;h;h=h.nextSibling)if(h.nodeType===1){h.sizset=++g;if(h===a)break}b[q]=e}return f=a.sizset-d,c===0?f===0:f%c===0&&f/c>=0}}return function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b,c,d){var e=$.pseudos[a]||$.pseudos[a.toLowerCase()];return e||Z.error("unsupported pseudo: "+a),e.sizzleFilter?e(b,c,d):e}},pseudos:{not:Q(function(a,b,c){var d=bl(a.replace(A,"$1"),b,c);return function(a){return!d(a)}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!$.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},contains:Q(function(a){return function(b){return(b.textContent||b.innerText||bc(b)).indexOf(a)>-1}}),has:Q(function(a){return function(b){return Z(a,b).length>0}}),header:function(a){return I.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:R("radio"),checkbox:R("checkbox"),file:R("file"),password:R("password"),image:R("image"),submit:S("submit"),reset:S("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return J.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b,c){return c?a.slice(1):[a[0]]},last:function(a,b,c){var d=a.pop();return c?a:[d]},even:function(a,b,c){var d=[],e=c?1:0,f=a.length;for(;e<f;e=e+2)d.push(a[e]);return d},odd:function(a,b,c){var d=[],e=c?0:1,f=a.length;for(;e<f;e=e+2)d.push(a[e]);return d},lt:function(a,b,c){return c?a.slice(+b):a.slice(0,+b)},gt:function(a,b,c){return c?a.slice(0,+b+1):a.slice(+b+1)},eq:function(a,b,c){var d=a.splice(+b,1);return c?a:d}}};$.setFilters.nth=$.setFilters.eq,$.filters=$.pseudos,X||($.attrHandle={href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}}),V&&($.order.push("NAME"),$.find.NAME=function(a,b){if(typeof b.getElementsByName!==j)return b.getElementsByName(a)}),Y&&($.order.splice(1,0,"CLASS"),$.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!==j&&!c)return b.getElementsByClassName(a)});try{n.call(i.childNodes,0)[0].nodeType}catch(_){n=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}var ba=Z.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},bb=Z.contains=i.compareDocumentPosition?function(a,b){return!!(a.compareDocumentPosition(b)&16)}:i.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},bc=Z.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=bc(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=bc(b);return c};Z.attr=function(a,b){var c,d=ba(a);return d||(b=b.toLowerCase()),$.attrHandle[b]?$.attrHandle[b](a):U||d?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},Z.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},[0,0].sort(function(){return l=0}),i.compareDocumentPosition?e=function(a,b){return a===b?(k=!0,0):(!a.compareDocumentPosition||!b.compareDocumentPosition?a.compareDocumentPosition:a.compareDocumentPosition(b)&4)?-1:1}:(e=function(a,b){if(a===b)return k=!0,0;if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],g=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return f(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)g.unshift(j),j=j.parentNode;c=e.length,d=g.length;for(var l=0;l<c&&l<d;l++)if(e[l]!==g[l])return f(e[l],g[l]);return l===c?f(a,g[l],-1):f(e[l],b,1)},f=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),Z.uniqueSort=function(a){var b,c=1;if(e){k=l,a.sort(e);if(k)for(;b=a[c];c++)b===a[c-1]&&a.splice(c--,1)}return a};var bl=Z.compile=function(a,b,c){var d,e,f,g=O[a];if(g&&g.context===b)return g;e=bg(a,b,c);for(f=0;d=e[f];f++)e[f]=bj(d,b,c);return g=O[a]=bk(e),g.context=b,g.runs=g.dirruns=0,P.push(a),P.length>$.cacheLength&&delete O[P.shift()],g};Z.matches=function(a,b){return Z(a,null,null,b)},Z.matchesSelector=function(a,b){return Z(b,null,null,[a]).length>0};var bm=function(a,b,e,f,g){a=a.replace(A,"$1");var h,i,j,k,l,m,p,q,r,s=a.match(C),t=a.match(E),u=b.nodeType;if(L.POS.test(a))return bf(a,b,e,f,s);if(f)h=n.call(f,0);else if(s&&s.length===1){if(t.length>1&&u===9&&!g&&(s=L.ID.exec(t[0]))){b=$.find.ID(s[1],b,g)[0];if(!b)return e;a=a.slice(t.shift().length)}q=(s=G.exec(t[0]))&&!s.index&&b.parentNode||b,r=t.pop(),m=r.split(":not")[0];for(j=0,k=$.order.length;j<k;j++){p=$.order[j];if(s=L[p].exec(m)){h=$.find[p]((s[1]||"").replace(K,""),q,g);if(h==null)continue;m===r&&(a=a.slice(0,a.length-r.length)+m.replace(L[p],""),a||o.apply(e,n.call(h,0)));break}}}if(a){i=bl(a,b,g),d=i.dirruns++,h==null&&(h=$.find.TAG("*",G.test(a)&&b.parentNode||b));for(j=0;l=h[j];j++)c=i.runs++,i(l,b)&&e.push(l)}return e};h.querySelectorAll&&function(){var a,b=bm,c=/'|\\/g,d=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,e=[],f=[":active"],g=i.matchesSelector||i.mozMatchesSelector||i.webkitMatchesSelector||i.oMatchesSelector||i.msMatchesSelector;T(function(a){a.innerHTML="<select><option selected></option></select>",a.querySelectorAll("[selected]").length||e.push("\\["+r+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),T(function(a){a.innerHTML="<p test=''></p>",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+r+"*(?:\"\"|'')"),a.innerHTML="<input type='hidden'>",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=e.length&&new RegExp(e.join("|")),bm=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a)))if(d.nodeType===9)try{return o.apply(f,n.call(d.querySelectorAll(a),0)),f}catch(i){}else if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){var j=d.getAttribute("id"),k=j||q,l=G.test(a)&&d.parentNode||d;j?k=k.replace(c,"\\$&"):d.setAttribute("id",k);try{return o.apply(f,n.call(l.querySelectorAll(a.replace(C,"[id='"+k+"'] $&")),0)),f}catch(i){}finally{j||d.removeAttribute("id")}}return b(a,d,f,g,h)},g&&(T(function(b){a=g.call(b,"div");try{g.call(b,"[test!='']:sizzle"),f.push($.match.PSEUDO)}catch(c){}}),f=new RegExp(f.join("|")),Z.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!ba(b)&&!f.test(c)&&(!e||!e.test(c)))try{var h=g.call(b,c);if(h||a||b.document&&b.document.nodeType!==11)return h}catch(i){}return Z(c,null,null,[b]).length>0})}(),Z.attr=p.attr,p.find=Z,p.expr=Z.selectors,p.expr[":"]=p.expr.pseudos,p.unique=Z.uniqueSort,p.text=Z.getText,p.isXMLDoc=Z.isXML,p.contains=Z.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b<c;b++)if(p.contains(h[b],this))return!0});g=this.pushStack("","find",a);for(b=0,c=this.length;b<c;b++){d=g.length,p.find(a,this[b],g);if(b>0)for(e=d;e<g.length;e++)for(f=0;f<d;f++)if(g[f]===g[e]){g.splice(e--,1);break}}return g},has:function(a){var b,c=p(a,this),d=c.length;return this.filter(function(){for(b=0;b<d;b++)if(p.contains(this,c[b]))return!0})},not:function(a){return this.pushStack(bj(this,a,!1),"not",a)},filter:function(a){return this.pushStack(bj(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?bf.test(a)?p(a,this.context).index(this[0])>=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d<e;d++){c=this[d];while(c&&c.ownerDocument&&c!==b&&c.nodeType!==11){if(g?g.index(c)>-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/<tbody/i,br=/<|&#?\w+;/,bs=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,bu=new RegExp("<(?:"+bl+")[\\s/>]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,bz={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X<div>","</div>"]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1></$2>");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),c.innerHTML=a);c=0}catch(f){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){return bh(this[0])?this.length?this.pushStack(p(p.isFunction(a)?a():a),"replaceWith",a):this:p.isFunction(a)?this.each(function(b){var c=p(this),d=c.html();c.replaceWith(a.call(this,b,d))}):(typeof a!="string"&&(a=p(a).detach()),this.each(function(){var b=this.nextSibling,c=this.parentNode;p(this).remove(),b?p(b).before(a):p(c).append(a)}))},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){a=[].concat.apply([],a);var e,f,g,h,i=0,j=a[0],k=[],l=this.length;if(!p.support.checkClone&&l>1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i<l;i++)d.call(c&&p.nodeName(this[i],"table")?bC(this[i],"tbody"):this[i],i===h?g:p.clone(g,!0,!0))}g=f=null,k.length&&p.each(k,function(a,b){b.src?p.ajax?p.ajax({url:b.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):p.error("no ajax"):p.globalEval((b.text||b.textContent||b.innerHTML||"").replace(by,"")),b.parentNode&&b.parentNode.removeChild(b)})}return this}}),p.buildFragment=function(a,c,d){var f,g,h,i=a[0];return c=c||e,c=(c[0]||c).ownerDocument||c[0]||c,typeof c.createDocumentFragment=="undefined"&&(c=e),a.length===1&&typeof i=="string"&&i.length<512&&c===e&&i.charAt(0)==="<"&&!bt.test(i)&&(p.support.checkClone||!bw.test(i))&&(p.support.html5Clone||!bu.test(i))&&(g=!0,f=p.fragments[i],h=f!==b),f||(f=c.createDocumentFragment(),p.clean(a,c,f,d),g&&(p.fragments[i]=h&&f)),{fragment:f,cacheable:g}},p.fragments={},p.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){p.fn[a]=function(c){var d,e=0,f=[],g=p(c),h=g.length,i=this.length===1&&this[0].parentNode;if((i==null||i&&i.nodeType===11&&i.childNodes.length===1)&&h===1)return g[b](this[0]),this;for(;e<h;e++)d=(e>0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=0,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(g=b===e&&bA;(h=a[s])!=null;s++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{g=g||bk(b),l=l||g.appendChild(b.createElement("div")),h=h.replace(bo,"<$1></$2>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]==="<table>"&&!m?l.childNodes:[];for(f=n.length-1;f>=0;--f)p.nodeName(n[f],"tbody")&&!n[f].childNodes.length&&n[f].parentNode.removeChild(n[f])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l=g.lastChild}h.nodeType?t.push(h):t=p.merge(t,h)}l&&(g.removeChild(l),h=l=g=null);if(!p.support.appendChecked)for(s=0;(h=t[s])!=null;s++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(s=0;(h=t[s])!=null;s++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[s+1,0].concat(r)),s+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^margin/,bO=new RegExp("^("+q+")(.*)$","i"),bP=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bQ=new RegExp("^([-+])=("+q+")","i"),bR={},bS={position:"absolute",visibility:"hidden",display:"block"},bT={letterSpacing:0,fontWeight:400,lineHeight:1},bU=["Top","Right","Bottom","Left"],bV=["Webkit","O","Moz","ms"],bW=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return bZ(this,!0)},hide:function(){return bZ(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bW.apply(this,arguments):this.each(function(){(c?a:bY(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bX(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bQ.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bX(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bT&&(f=bT[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(a,b){var c,d,e,f,g=getComputedStyle(a,null),h=a.style;return g&&(c=g[b],c===""&&!p.contains(a.ownerDocument.documentElement,a)&&(c=p.style(a,b)),bP.test(c)&&bN.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=c,c=g.width,h.width=d,h.minWidth=e,h.maxWidth=f)),c}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bP.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0||bH(a,"display")!=="none"?ca(a,b,d):p.swap(a,bS,function(){return ca(a,b,d)})},set:function(a,c,d){return b$(a,c,d?b_(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bP.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bU[d]+b]=e[d]||e[d-2]||e[0];return f}},bN.test(a)||(p.cssHooks[a+b].set=b$)});var cc=/%20/g,cd=/\[\]$/,ce=/\r?\n/g,cf=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,cg=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||cg.test(this.nodeName)||cf.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(ce,"\r\n")}}):{name:b.name,value:c.replace(ce,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ch(d,a[d],c,f);return e.join("&").replace(cc,"+")};var ci,cj,ck=/#.*$/,cl=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cm=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,cn=/^(?:GET|HEAD)$/,co=/^\/\//,cp=/\?/,cq=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,cr=/([?&])_=[^&]*/,cs=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,ct=p.fn.load,cu={},cv={},cw=["*/"]+["*"];try{ci=f.href}catch(cx){ci=e.createElement("a"),ci.href="",ci=ci.href}cj=cs.exec(ci.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&ct)return ct.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("<div>").append(a.replace(cq,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cA(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cA(a,b),a},ajaxSettings:{url:ci,isLocal:cm.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cw},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cy(cu),ajaxTransport:cy(cv),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cB(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cC(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=""+(c||y),k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cl.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(ck,"").replace(co,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=cs.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]==cj[1]&&i[2]==cj[2]&&(i[3]||(i[1]==="http:"?80:443))==(cj[3]||(cj[1]==="http:"?80:443)))),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cz(cu,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!cn.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cp.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cr,"$1_="+z);l.url=A+(A===l.url?(cp.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cw+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cz(cv,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cD=[],cE=/\?/,cF=/(=)\?(?=&|$)|\?\?/,cG=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cD.pop()||p.expando+"_"+cG++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cF.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cF.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cF,"$1"+f):m?c.data=i.replace(cF,"$1"+f):k&&(c.url+=(cE.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cD.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cH,cI=a.ActiveXObject?function(){for(var a in cH)cH[a](0,1)}:!1,cJ=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cK()||cL()}:cK,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cI&&delete cH[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cJ,cI&&(cH||(cH={},p(a).unload(cI)),cH[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cM,cN,cO=/^(?:toggle|show|hide)$/,cP=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cQ=/queueHooks$/,cR=[cX],cS={"*":[function(a,b){var c,d,e,f=this.createTween(a,b),g=cP.exec(b),h=f.cur(),i=+h||0,j=1;if(g){c=+g[2],d=g[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&i){i=p.css(f.elem,a,!0)||c||1;do e=j=j||".5",i=i/j,p.style(f.elem,a,i+d),j=f.cur()/h;while(j!==1&&j!==e)}f.unit=d,f.start=i,f.end=g[1]?i+(g[1]+1)*c:c}return f}]};p.Animation=p.extend(cV,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d<e;d++)c=a[d],cS[c]=cS[c]||[],cS[c].unshift(b)},prefilter:function(a,b){b?cR.unshift(a):cR.push(a)}}),p.Tween=cY,cY.prototype={constructor:cY,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(p.cssNumber[c]?"":"px")},cur:function(){var a=cY.propHooks[this.prop];return a&&a.get?a.get(this):cY.propHooks._default.get(this)},run:function(a){var b,c=cY.propHooks[this.prop];return this.pos=b=p.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration),this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):cY.propHooks._default.set(this),this}},cY.prototype.init.prototype=cY.prototype,cY.propHooks={_default:{get:function(a){var b;return a.elem[a.prop]==null||!!a.elem.style&&a.elem.style[a.prop]!=null?(b=p.css(a.elem,a.prop,!1,""),!b||b==="auto"?0:b):a.elem[a.prop]},set:function(a){p.fx.step[a.prop]?p.fx.step[a.prop](a):a.elem.style&&(a.elem.style[p.cssProps[a.prop]]!=null||p.cssHooks[a.prop])?p.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},cY.propHooks.scrollTop=cY.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},p.each(["toggle","show","hide"],function(a,b){var c=p.fn[b];p.fn[b]=function(d,e,f){return d==null||typeof d=="boolean"||!a&&p.isFunction(d)&&p.isFunction(e)?c.apply(this,arguments):this.animate(cZ(b,!0),d,e,f)}}),p.fn.extend({fadeTo:function(a,b,c,d){return this.filter(bY).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=p.isEmptyObject(a),f=p.speed(b,c,d),g=function(){var b=cV(this,p.extend({},a),f);e&&b.stop(!0)};return e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,c,d){var e=function(a){var b=a.stop;delete a.stop,b(d)};return typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,c=a!=null&&a+"queueHooks",f=p.timers,g=p._data(this);if(c)g[c]&&g[c].stop&&e(g[c]);else for(c in g)g[c]&&g[c].stop&&cQ.test(c)&&e(g[c]);for(c=f.length;c--;)f[c].elem===this&&(a==null||f[c].queue===a)&&(f[c].anim.stop(d),b=!1,f.splice(c,1));(b||!d)&&p.dequeue(this,a)})}}),p.each({slideDown:cZ("show"),slideUp:cZ("hide"),slideToggle:cZ("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){p.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),p.speed=function(a,b,c){var d=a&&typeof a=="object"?p.extend({},a):{complete:c||!c&&b||p.isFunction(a)&&a,duration:a,easing:c&&b||b&&!p.isFunction(b)&&b};d.duration=p.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in p.fx.speeds?p.fx.speeds[d.duration]:p.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";return d.old=d.complete,d.complete=function(){p.isFunction(d.old)&&d.old.call(this),d.queue&&p.dequeue(this,d.queue)},d},p.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},p.timers=[],p.fx=cY.prototype.init,p.fx.tick=function(){var a,b=p.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||p.fx.stop()},p.fx.timer=function(a){a()&&p.timers.push(a)&&!cN&&(cN=setInterval(p.fx.tick,p.fx.interval))},p.fx.interval=13,p.fx.stop=function(){clearInterval(cN),cN=null},p.fx.speeds={slow:600,fast:200,_default:400},p.fx.step={},p.expr&&p.expr.filters&&(p.expr.filters.animated=function(a){return p.grep(p.timers,function(b){return a===b.elem}).length});var c$=/^(?:body|html)$/i;p.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){p.offset.setOffset(this,a,b)});var c,d,e,f,g,h,i,j,k,l,m=this[0],n=m&&m.ownerDocument;if(!n)return;return(e=n.body)===m?p.offset.bodyOffset(m):(d=n.documentElement,p.contains(d,m)?(c=m.getBoundingClientRect(),f=c_(n),g=d.clientTop||e.clientTop||0,h=d.clientLeft||e.clientLeft||0,i=f.pageYOffset||d.scrollTop,j=f.pageXOffset||d.scrollLeft,k=c.top+i-g,l=c.left+j-h,{top:k,left:l}):{top:0,left:0})},p.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;return p.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(p.css(a,"marginTop"))||0,c+=parseFloat(p.css(a,"marginLeft"))||0),{top:b,left:c}},setOffset:function(a,b,c){var d=p.css(a,"position");d==="static"&&(a.style.position="relative");var e=p(a),f=e.offset(),g=p.css(a,"top"),h=p.css(a,"left"),i=(d==="absolute"||d==="fixed")&&p.inArray("auto",[g,h])>-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c$.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c$.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=c_(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/js/vendor/jquery-ui-1.8.24.custom.min.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,125 @@
+/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.core.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;return!b.href||!g||f.nodeName.toLowerCase()!=="map"?!1:(h=a("img[usemap=#"+g+"]")[0],!!h&&d(h))}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.ui=a.ui||{};if(a.ui.version)return;a.extend(a.ui,{version:"1.8.24",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;return a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0),/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a("<a>").outerWidth(1).jquery||a.each(["Width","Height"],function(c,d){function h(b,c,d,f){return a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)}),c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){return c===b?g["inner"+d].call(this):this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){return typeof b!="number"?g["outer"+d].call(this,b):this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:a.expr.createPseudo?a.expr.createPseudo(function(b){return function(c){return!!a.data(c,b)}}):function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.curCSS||(a.curCSS=a.css),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!d||!a.element[0].parentNode)return;for(var e=0;e<d.length;e++)a.options[d[e][0]]&&d[e][1].apply(a.element,c)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(b,c){if(a(b).css("overflow")==="hidden")return!1;var d=c&&c==="left"?"scrollLeft":"scrollTop",e=!1;return b[d]>0?!0:(b[d]=1,e=b[d]>0,b[d]=0,e)},isOverAxis:function(a,b,c){return a>b&&a<b+c},isOver:function(b,c,d,e,f,g){return a.ui.isOverAxis(b,d,f)&&a.ui.isOverAxis(c,e,g)}})})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.widget.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){if(a.cleanData){var c=a.cleanData;a.cleanData=function(b){for(var d=0,e;(e=b[d])!=null;d++)try{a(e).triggerHandler("remove")}catch(f){}c(b)}}else{var d=a.fn.remove;a.fn.remove=function(b,c){return this.each(function(){return c||(!b||a.filter(b,[this]).length)&&a("*",this).add([this]).each(function(){try{a(this).triggerHandler("remove")}catch(b){}}),d.call(a(this),b,c)})}}a.widget=function(b,c,d){var e=b.split(".")[0],f;b=b.split(".")[1],f=e+"-"+b,d||(d=c,c=a.Widget),a.expr[":"][f]=function(c){return!!a.data(c,b)},a[e]=a[e]||{},a[e][b]=function(a,b){arguments.length&&this._createWidget(a,b)};var g=new c;g.options=a.extend(!0,{},g.options),a[e][b].prototype=a.extend(!0,g,{namespace:e,widgetName:b,widgetEventPrefix:a[e][b].prototype.widgetEventPrefix||b,widgetBaseClass:f},d),a.widget.bridge(b,a[e][b])},a.widget.bridge=function(c,d){a.fn[c]=function(e){var f=typeof e=="string",g=Array.prototype.slice.call(arguments,1),h=this;return e=!f&&g.length?a.extend.apply(null,[!0,e].concat(g)):e,f&&e.charAt(0)==="_"?h:(f?this.each(function(){var d=a.data(this,c),f=d&&a.isFunction(d[e])?d[e].apply(d,g):d;if(f!==d&&f!==b)return h=f,!1}):this.each(function(){var b=a.data(this,c);b?b.option(e||{})._init():a.data(this,c,new d(e,this))}),h)}},a.Widget=function(a,b){arguments.length&&this._createWidget(a,b)},a.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:!1},_createWidget:function(b,c){a.data(c,this.widgetName,this),this.element=a(c),this.options=a.extend(!0,{},this.options,this._getCreateOptions(),b);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()}),this._create(),this._trigger("create"),this._init()},_getCreateOptions:function(){return a.metadata&&a.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName),this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled "+"ui-state-disabled")},widget:function(){return this.element},option:function(c,d){var e=c;if(arguments.length===0)return a.extend({},this.options);if(typeof c=="string"){if(d===b)return this.options[c];e={},e[c]=d}return this._setOptions(e),this},_setOptions:function(b){var c=this;return a.each(b,function(a,b){c._setOption(a,b)}),this},_setOption:function(a,b){return this.options[a]=b,a==="disabled"&&this.widget()[b?"addClass":"removeClass"](this.widgetBaseClass+"-disabled"+" "+"ui-state-disabled").attr("aria-disabled",b),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_trigger:function(b,c,d){var e,f,g=this.options[b];d=d||{},c=a.Event(c),c.type=(b===this.widgetEventPrefix?b:this.widgetEventPrefix+b).toLowerCase(),c.target=this.element[0],f=c.originalEvent;if(f)for(e in f)e in c||(c[e]=f[e]);return this.element.trigger(c,d),!(a.isFunction(g)&&g.call(this.element[0],c,d)===!1||c.isDefaultPrevented())}}})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.mouse.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){var c=!1;a(document).mouseup(function(a){c=!1}),a.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var b=this;this.element.bind("mousedown."+this.widgetName,function(a){return b._mouseDown(a)}).bind("click."+this.widgetName,function(c){if(!0===a.data(c.target,b.widgetName+".preventClickEvent"))return a.removeData(c.target,b.widgetName+".preventClickEvent"),c.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(b){if(c)return;this._mouseStarted&&this._mouseUp(b),this._mouseDownEvent=b;var d=this,e=b.which==1,f=typeof this.options.cancel=="string"&&b.target.nodeName?a(b.target).closest(this.options.cancel).length:!1;if(!e||f||!this._mouseCapture(b))return!0;this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){d.mouseDelayMet=!0},this.options.delay));if(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)){this._mouseStarted=this._mouseStart(b)!==!1;if(!this._mouseStarted)return b.preventDefault(),!0}return!0===a.data(b.target,this.widgetName+".preventClickEvent")&&a.removeData(b.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(a){return d._mouseMove(a)},this._mouseUpDelegate=function(a){return d._mouseUp(a)},a(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),b.preventDefault(),c=!0,!0},_mouseMove:function(b){return!a.browser.msie||document.documentMode>=9||!!b.button?this._mouseStarted?(this._mouseDrag(b),b.preventDefault()):(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b)),!this._mouseStarted):this._mouseUp(b)},_mouseUp:function(b){return a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b)),!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.position.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.ui=a.ui||{};var c=/left|center|right/,d=/top|center|bottom/,e="center",f={},g=a.fn.position,h=a.fn.offset;a.fn.position=function(b){if(!b||!b.of)return g.apply(this,arguments);b=a.extend({},b);var h=a(b.of),i=h[0],j=(b.collision||"flip").split(" "),k=b.offset?b.offset.split(" "):[0,0],l,m,n;return i.nodeType===9?(l=h.width(),m=h.height(),n={top:0,left:0}):i.setTimeout?(l=h.width(),m=h.height(),n={top:h.scrollTop(),left:h.scrollLeft()}):i.preventDefault?(b.at="left top",l=m=0,n={top:b.of.pageY,left:b.of.pageX}):(l=h.outerWidth(),m=h.outerHeight(),n=h.offset()),a.each(["my","at"],function(){var a=(b[this]||"").split(" ");a.length===1&&(a=c.test(a[0])?a.concat([e]):d.test(a[0])?[e].concat(a):[e,e]),a[0]=c.test(a[0])?a[0]:e,a[1]=d.test(a[1])?a[1]:e,b[this]=a}),j.length===1&&(j[1]=j[0]),k[0]=parseInt(k[0],10)||0,k.length===1&&(k[1]=k[0]),k[1]=parseInt(k[1],10)||0,b.at[0]==="right"?n.left+=l:b.at[0]===e&&(n.left+=l/2),b.at[1]==="bottom"?n.top+=m:b.at[1]===e&&(n.top+=m/2),n.left+=k[0],n.top+=k[1],this.each(function(){var c=a(this),d=c.outerWidth(),g=c.outerHeight(),h=parseInt(a.curCSS(this,"marginLeft",!0))||0,i=parseInt(a.curCSS(this,"marginTop",!0))||0,o=d+h+(parseInt(a.curCSS(this,"marginRight",!0))||0),p=g+i+(parseInt(a.curCSS(this,"marginBottom",!0))||0),q=a.extend({},n),r;b.my[0]==="right"?q.left-=d:b.my[0]===e&&(q.left-=d/2),b.my[1]==="bottom"?q.top-=g:b.my[1]===e&&(q.top-=g/2),f.fractions||(q.left=Math.round(q.left),q.top=Math.round(q.top)),r={left:q.left-h,top:q.top-i},a.each(["left","top"],function(c,e){a.ui.position[j[c]]&&a.ui.position[j[c]][e](q,{targetWidth:l,targetHeight:m,elemWidth:d,elemHeight:g,collisionPosition:r,collisionWidth:o,collisionHeight:p,offset:k,my:b.my,at:b.at})}),a.fn.bgiframe&&c.bgiframe(),c.offset(a.extend(q,{using:b.using}))})},a.ui.position={fit:{left:function(b,c){var d=a(window),e=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft();b.left=e>0?b.left-e:Math.max(b.left-c.collisionPosition.left,b.left)},top:function(b,c){var d=a(window),e=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop();b.top=e>0?b.top-e:Math.max(b.top-c.collisionPosition.top,b.top)}},flip:{left:function(b,c){if(c.at[0]===e)return;var d=a(window),f=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft(),g=c.my[0]==="left"?-c.elemWidth:c.my[0]==="right"?c.elemWidth:0,h=c.at[0]==="left"?c.targetWidth:-c.targetWidth,i=-2*c.offset[0];b.left+=c.collisionPosition.left<0?g+h+i:f>0?g+h+i:0},top:function(b,c){if(c.at[1]===e)return;var d=a(window),f=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop(),g=c.my[1]==="top"?-c.elemHeight:c.my[1]==="bottom"?c.elemHeight:0,h=c.at[1]==="top"?c.targetHeight:-c.targetHeight,i=-2*c.offset[1];b.top+=c.collisionPosition.top<0?g+h+i:f>0?g+h+i:0}}},a.offset.setOffset||(a.offset.setOffset=function(b,c){/static/.test(a.curCSS(b,"position"))&&(b.style.position="relative");var d=a(b),e=d.offset(),f=parseInt(a.curCSS(b,"top",!0),10)||0,g=parseInt(a.curCSS(b,"left",!0),10)||0,h={top:c.top-e.top+f,left:c.left-e.left+g};"using"in c?c.using.call(b,h):d.css(h)},a.fn.offset=function(b){var c=this[0];return!c||!c.ownerDocument?null:b?a.isFunction(b)?this.each(function(c){a(this).offset(b.call(this,c,a(this).offset()))}):this.each(function(){a.offset.setOffset(this,b)}):h.call(this)}),a.curCSS||(a.curCSS=a.css),function(){var b=document.getElementsByTagName("body")[0],c=document.createElement("div"),d,e,g,h,i;d=document.createElement(b?"div":"body"),g={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},b&&a.extend(g,{position:"absolute",left:"-1000px",top:"-1000px"});for(var j in g)d.style[j]=g[j];d.appendChild(c),e=b||document.documentElement,e.insertBefore(d,e.firstChild),c.style.cssText="position: absolute; left: 10.7432222px; top: 10.432325px; height: 30px; width: 201px;",h=a(c).offset(function(a,b){return b}).offset(),d.innerHTML="",e.removeChild(d),i=h.top+h.left+(b?2e3:0),f.fractions=i>21&&i<22}()})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.draggable.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.widget("ui.draggable",a.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){this.options.helper=="original"&&!/^(?:r|a|f)/.test(this.element.css("position"))&&(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},destroy:function(){if(!this.element.data("draggable"))return;return this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy(),this},_mouseCapture:function(b){var c=this.options;return this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")?!1:(this.handle=this._getHandle(b),this.handle?(c.iframeFix&&a(c.iframeFix===!0?"iframe":c.iframeFix).each(function(){a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(a(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(b){var c=this.options;return this.helper=this._createHelper(b),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),a.ui.ddmanager&&(a.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt),c.containment&&this._setContainment(),this._trigger("start",b)===!1?(this._clear(),!1):(this._cacheHelperProportions(),a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this._mouseDrag(b,!0),a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,b),!0)},_mouseDrag:function(b,c){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute");if(!c){var d=this._uiHash();if(this._trigger("drag",b,d)===!1)return this._mouseUp({}),!1;this.position=d.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";return a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),!1},_mouseStop:function(b){var c=!1;a.ui.ddmanager&&!this.options.dropBehaviour&&(c=a.ui.ddmanager.drop(this,b)),this.dropped&&(c=this.dropped,this.dropped=!1);var d=this.element[0],e=!1;while(d&&(d=d.parentNode))d==document&&(e=!0);if(!e&&this.options.helper==="original")return!1;if(this.options.revert=="invalid"&&!c||this.options.revert=="valid"&&c||this.options.revert===!0||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,c)){var f=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){f._trigger("stop",b)!==!1&&f._clear()})}else this._trigger("stop",b)!==!1&&this._clear();return!1},_mouseUp:function(b){return a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,b),a.ui.mouse.prototype._mouseUp.call(this,b)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?!0:!1;return a(this.options.handle,this.element).find("*").andSelf().each(function(){this==b.target&&(c=!0)}),c},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b])):c.helper=="clone"?this.element.clone().removeAttr("id"):this.element;return d.parents("body").length||d.appendTo(c.appendTo=="parent"?this.element[0].parentNode:c.appendTo),d[0]!=this.element[0]&&!/(fixed|absolute)/.test(d.css("position"))&&d.css("position","absolute"),d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[b.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,b.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(b.containment=="document"?0:a(window).scrollLeft())+a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(b.containment=="document"?0:a(window).scrollTop())+(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)&&b.containment.constructor!=Array){var c=a(b.containment),d=c[0];if(!d)return;var e=c.offset(),f=a(d).css("overflow")!="hidden";this.containment=[(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0),(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0),(f?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(f?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=c}else b.containment.constructor==Array&&(this.containment=b.containment)},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName),f=b.pageX,g=b.pageY;if(this.originalPosition){var h;if(this.containment){if(this.relative_container){var i=this.relative_container.offset();h=[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]}else h=this.containment;b.pageX-this.offset.click.left<h[0]&&(f=h[0]+this.offset.click.left),b.pageY-this.offset.click.top<h[1]&&(g=h[1]+this.offset.click.top),b.pageX-this.offset.click.left>h[2]&&(f=h[2]+this.offset.click.left),b.pageY-this.offset.click.top>h[3]&&(g=h[3]+this.offset.click.top)}if(c.grid){var j=c.grid[1]?this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1]:this.originalPageY;g=h?j-this.offset.click.top<h[1]||j-this.offset.click.top>h[3]?j-this.offset.click.top<h[1]?j+c.grid[1]:j-c.grid[1]:j:j;var k=c.grid[0]?this.originalPageX+Math.round((f-this.originalPageX)/c.grid[0])*c.grid[0]:this.originalPageX;f=h?k-this.offset.click.left<h[0]||k-this.offset.click.left>h[2]?k-this.offset.click.left<h[0]?k+c.grid[0]:k-c.grid[0]:k:k}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:d.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:d.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1},_trigger:function(b,c,d){return d=d||this._uiHash(),a.ui.plugin.call(this,b,[c,d]),b=="drag"&&(this.positionAbs=this._convertPositionTo("absolute")),a.Widget.prototype._trigger.call(this,b,c,d)},plugins:{},_uiHash:function(a){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),a.extend(a.ui.draggable,{version:"1.8.24"}),a.ui.plugin.add("draggable","connectToSortable",{start:function(b,c){var d=a(this).data("draggable"),e=d.options,f=a.extend({},c,{item:d.element});d.sortables=[],a(e.connectToSortable).each(function(){var c=a.data(this,"sortable");c&&!c.options.disabled&&(d.sortables.push({instance:c,shouldRevert:c.options.revert}),c.refreshPositions(),c._trigger("activate",b,f))})},stop:function(b,c){var d=a(this).data("draggable"),e=a.extend({},c,{item:d.element});a.each(d.sortables,function(){this.instance.isOver?(this.instance.isOver=0,d.cancelHelperRemoval=!0,this.instance.cancelHelperRemoval=!1,this.shouldRevert&&(this.instance.options.revert=!0),this.instance._mouseStop(b),this.instance.options.helper=this.instance.options._helper,d.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})):(this.instance.cancelHelperRemoval=!1,this.instance._trigger("deactivate",b,e))})},drag:function(b,c){var d=a(this).data("draggable"),e=this,f=function(b){var c=this.offset.click.top,d=this.offset.click.left,e=this.positionAbs.top,f=this.positionAbs.left,g=b.height,h=b.width,i=b.top,j=b.left;return a.ui.isOver(e+c,f+d,i,j,g,h)};a.each(d.sortables,function(f){this.instance.positionAbs=d.positionAbs,this.instance.helperProportions=d.helperProportions,this.instance.offset.click=d.offset.click,this.instance._intersectsWith(this.instance.containerCache)?(this.instance.isOver||(this.instance.isOver=1,this.instance.currentItem=a(e).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item",!0),this.instance.options._helper=this.instance.options.helper,this.instance.options.helper=function(){return c.helper[0]},b.target=this.instance.currentItem[0],this.instance._mouseCapture(b,!0),this.instance._mouseStart(b,!0,!0),this.instance.offset.click.top=d.offset.click.top,this.instance.offset.click.left=d.offset.click.left,this.instance.offset.parent.left-=d.offset.parent.left-this.instance.offset.parent.left,this.instance.offset.parent.top-=d.offset.parent.top-this.instance.offset.parent.top,d._trigger("toSortable",b),d.dropped=this.instance.element,d.currentItem=d.element,this.instance.fromOutside=d),this.instance.currentItem&&this.instance._mouseDrag(b)):this.instance.isOver&&(this.instance.isOver=0,this.instance.cancelHelperRemoval=!0,this.instance.options.revert=!1,this.instance._trigger("out",b,this.instance._uiHash(this.instance)),this.instance._mouseStop(b,!0),this.instance.options.helper=this.instance.options._helper,this.instance.currentItem.remove(),this.instance.placeholder&&this.instance.placeholder.remove(),d._trigger("fromSortable",b),d.dropped=!1)})}}),a.ui.plugin.add("draggable","cursor",{start:function(b,c){var d=a("body"),e=a(this).data("draggable").options;d.css("cursor")&&(e._cursor=d.css("cursor")),d.css("cursor",e.cursor)},stop:function(b,c){var d=a(this).data("draggable").options;d._cursor&&a("body").css("cursor",d._cursor)}}),a.ui.plugin.add("draggable","opacity",{start:function(b,c){var d=a(c.helper),e=a(this).data("draggable").options;d.css("opacity")&&(e._opacity=d.css("opacity")),d.css("opacity",e.opacity)},stop:function(b,c){var d=a(this).data("draggable").options;d._opacity&&a(c.helper).css("opacity",d._opacity)}}),a.ui.plugin.add("draggable","scroll",{start:function(b,c){var d=a(this).data("draggable");d.scrollParent[0]!=document&&d.scrollParent[0].tagName!="HTML"&&(d.overflowOffset=d.scrollParent.offset())},drag:function(b,c){var d=a(this).data("draggable"),e=d.options,f=!1;if(d.scrollParent[0]!=document&&d.scrollParent[0].tagName!="HTML"){if(!e.axis||e.axis!="x")d.overflowOffset.top+d.scrollParent[0].offsetHeight-b.pageY<e.scrollSensitivity?d.scrollParent[0].scrollTop=f=d.scrollParent[0].scrollTop+e.scrollSpeed:b.pageY-d.overflowOffset.top<e.scrollSensitivity&&(d.scrollParent[0].scrollTop=f=d.scrollParent[0].scrollTop-e.scrollSpeed);if(!e.axis||e.axis!="y")d.overflowOffset.left+d.scrollParent[0].offsetWidth-b.pageX<e.scrollSensitivity?d.scrollParent[0].scrollLeft=f=d.scrollParent[0].scrollLeft+e.scrollSpeed:b.pageX-d.overflowOffset.left<e.scrollSensitivity&&(d.scrollParent[0].scrollLeft=f=d.scrollParent[0].scrollLeft-e.scrollSpeed)}else{if(!e.axis||e.axis!="x")b.pageY-a(document).scrollTop()<e.scrollSensitivity?f=a(document).scrollTop(a(document).scrollTop()-e.scrollSpeed):a(window).height()-(b.pageY-a(document).scrollTop())<e.scrollSensitivity&&(f=a(document).scrollTop(a(document).scrollTop()+e.scrollSpeed));if(!e.axis||e.axis!="y")b.pageX-a(document).scrollLeft()<e.scrollSensitivity?f=a(document).scrollLeft(a(document).scrollLeft()-e.scrollSpeed):a(window).width()-(b.pageX-a(document).scrollLeft())<e.scrollSensitivity&&(f=a(document).scrollLeft(a(document).scrollLeft()+e.scrollSpeed))}f!==!1&&a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(d,b)}}),a.ui.plugin.add("draggable","snap",{start:function(b,c){var d=a(this).data("draggable"),e=d.options;d.snapElements=[],a(e.snap.constructor!=String?e.snap.items||":data(draggable)":e.snap).each(function(){var b=a(this),c=b.offset();this!=d.element[0]&&d.snapElements.push({item:this,width:b.outerWidth(),height:b.outerHeight(),top:c.top,left:c.left})})},drag:function(b,c){var d=a(this).data("draggable"),e=d.options,f=e.snapTolerance,g=c.offset.left,h=g+d.helperProportions.width,i=c.offset.top,j=i+d.helperProportions.height;for(var k=d.snapElements.length-1;k>=0;k--){var l=d.snapElements[k].left,m=l+d.snapElements[k].width,n=d.snapElements[k].top,o=n+d.snapElements[k].height;if(!(l-f<g&&g<m+f&&n-f<i&&i<o+f||l-f<g&&g<m+f&&n-f<j&&j<o+f||l-f<h&&h<m+f&&n-f<i&&i<o+f||l-f<h&&h<m+f&&n-f<j&&j<o+f)){d.snapElements[k].snapping&&d.options.snap.release&&d.options.snap.release.call(d.element,b,a.extend(d._uiHash(),{snapItem:d.snapElements[k].item})),d.snapElements[k].snapping=!1;continue}if(e.snapMode!="inner"){var p=Math.abs(n-j)<=f,q=Math.abs(o-i)<=f,r=Math.abs(l-h)<=f,s=Math.abs(m-g)<=f;p&&(c.position.top=d._convertPositionTo("relative",{top:n-d.helperProportions.height,left:0}).top-d.margins.top),q&&(c.position.top=d._convertPositionTo("relative",{top:o,left:0}).top-d.margins.top),r&&(c.position.left=d._convertPositionTo("relative",{top:0,left:l-d.helperProportions.width}).left-d.margins.left),s&&(c.position.left=d._convertPositionTo("relative",{top:0,left:m}).left-d.margins.left)}var t=p||q||r||s;if(e.snapMode!="outer"){var p=Math.abs(n-i)<=f,q=Math.abs(o-j)<=f,r=Math.abs(l-g)<=f,s=Math.abs(m-h)<=f;p&&(c.position.top=d._convertPositionTo("relative",{top:n,left:0}).top-d.margins.top),q&&(c.position.top=d._convertPositionTo("relative",{top:o-d.helperProportions.height,left:0}).top-d.margins.top),r&&(c.position.left=d._convertPositionTo("relative",{top:0,left:l}).left-d.margins.left),s&&(c.position.left=d._convertPositionTo("relative",{top:0,left:m-d.helperProportions.width}).left-d.margins.left)}!d.snapElements[k].snapping&&(p||q||r||s||t)&&d.options.snap.snap&&d.options.snap.snap.call(d.element,b,a.extend(d._uiHash(),{snapItem:d.snapElements[k].item})),d.snapElements[k].snapping=p||q||r||s||t}}}),a.ui.plugin.add("draggable","stack",{start:function(b,c){var d=a(this).data("draggable").options,e=a.makeArray(a(d.stack)).sort(function(b,c){return(parseInt(a(b).css("zIndex"),10)||0)-(parseInt(a(c).css("zIndex"),10)||0)});if(!e.length)return;var f=parseInt(e[0].style.zIndex)||0;a(e).each(function(a){this.style.zIndex=f+a}),this[0].style.zIndex=f+e.length}}),a.ui.plugin.add("draggable","zIndex",{start:function(b,c){var d=a(c.helper),e=a(this).data("draggable").options;d.css("zIndex")&&(e._zIndex=d.css("zIndex")),d.css("zIndex",e.zIndex)},stop:function(b,c){var d=a(this).data("draggable").options;d._zIndex&&a(c.helper).css("zIndex",d._zIndex)}})})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.droppable.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect"},_create:function(){var b=this.options,c=b.accept;this.isover=0,this.isout=1,this.accept=a.isFunction(c)?c:function(a){return a.is(c)},this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight},a.ui.ddmanager.droppables[b.scope]=a.ui.ddmanager.droppables[b.scope]||[],a.ui.ddmanager.droppables[b.scope].push(this),b.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){var b=a.ui.ddmanager.droppables[this.options.scope];for(var c=0;c<b.length;c++)b[c]==this&&b.splice(c,1);return this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable"),this},_setOption:function(b,c){b=="accept"&&(this.accept=a.isFunction(c)?c:function(a){return a.is(c)}),a.Widget.prototype._setOption.apply(this,arguments)},_activate:function(b){var c=a.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),c&&this._trigger("activate",b,this.ui(c))},_deactivate:function(b){var c=a.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),c&&this._trigger("deactivate",b,this.ui(c))},_over:function(b){var c=a.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return;this.accept.call(this.element[0],c.currentItem||c.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",b,this.ui(c)))},_out:function(b){var c=a.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return;this.accept.call(this.element[0],c.currentItem||c.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",b,this.ui(c)))},_drop:function(b,c){var d=c||a.ui.ddmanager.current;if(!d||(d.currentItem||d.element)[0]==this.element[0])return!1;var e=!1;return this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var b=a.data(this,"droppable");if(b.options.greedy&&!b.options.disabled&&b.options.scope==d.options.scope&&b.accept.call(b.element[0],d.currentItem||d.element)&&a.ui.intersect(d,a.extend(b,{offset:b.element.offset()}),b.options.tolerance))return e=!0,!1}),e?!1:this.accept.call(this.element[0],d.currentItem||d.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",b,this.ui(d)),this.element):!1},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}}),a.extend(a.ui.droppable,{version:"1.8.24"}),a.ui.intersect=function(b,c,d){if(!c.offset)return!1;var e=(b.positionAbs||b.position.absolute).left,f=e+b.helperProportions.width,g=(b.positionAbs||b.position.absolute).top,h=g+b.helperProportions.height,i=c.offset.left,j=i+c.proportions.width,k=c.offset.top,l=k+c.proportions.height;switch(d){case"fit":return i<=e&&f<=j&&k<=g&&h<=l;case"intersect":return i<e+b.helperProportions.width/2&&f-b.helperProportions.width/2<j&&k<g+b.helperProportions.height/2&&h-b.helperProportions.height/2<l;case"pointer":var m=(b.positionAbs||b.position.absolute).left+(b.clickOffset||b.offset.click).left,n=(b.positionAbs||b.position.absolute).top+(b.clickOffset||b.offset.click).top,o=a.ui.isOver(n,m,k,i,c.proportions.height,c.proportions.width);return o;case"touch":return(g>=k&&g<=l||h>=k&&h<=l||g<k&&h>l)&&(e>=i&&e<=j||f>=i&&f<=j||e<i&&f>j);default:return!1}},a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(b,c){var d=a.ui.ddmanager.droppables[b.options.scope]||[],e=c?c.type:null,f=(b.currentItem||b.element).find(":data(droppable)").andSelf();g:for(var h=0;h<d.length;h++){if(d[h].options.disabled||b&&!d[h].accept.call(d[h].element[0],b.currentItem||b.element))continue;for(var i=0;i<f.length;i++)if(f[i]==d[h].element[0]){d[h].proportions.height=0;continue g}d[h].visible=d[h].element.css("display")!="none";if(!d[h].visible)continue;e=="mousedown"&&d[h]._activate.call(d[h],c),d[h].offset=d[h].element.offset(),d[h].proportions={width:d[h].element[0].offsetWidth,height:d[h].element[0].offsetHeight}}},drop:function(b,c){var d=!1;return a.each(a.ui.ddmanager.droppables[b.options.scope]||[],function(){if(!this.options)return;!this.options.disabled&&this.visible&&a.ui.intersect(b,this,this.options.tolerance)&&(d=this._drop.call(this,c)||d),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],b.currentItem||b.element)&&(this.isout=1,this.isover=0,this._deactivate.call(this,c))}),d},dragStart:function(b,c){b.element.parents(":not(body,html)").bind("scroll.droppable",function(){b.options.refreshPositions||a.ui.ddmanager.prepareOffsets(b,c)})},drag:function(b,c){b.options.refreshPositions&&a.ui.ddmanager.prepareOffsets(b,c),a.each(a.ui.ddmanager.droppables[b.options.scope]||[],function(){if(this.options.disabled||this.greedyChild||!this.visible)return;var d=a.ui.intersect(b,this,this.options.tolerance),e=!d&&this.isover==1?"isout":d&&this.isover==0?"isover":null;if(!e)return;var f;if(this.options.greedy){var g=this.options.scope,h=this.element.parents(":data(droppable)").filter(function(){return a.data(this,"droppable").options.scope===g});h.length&&(f=a.data(h[0],"droppable"),f.greedyChild=e=="isover"?1:0)}f&&e=="isover"&&(f.isover=0,f.isout=1,f._out.call(f,c)),this[e]=1,this[e=="isout"?"isover":"isout"]=0,this[e=="isover"?"_over":"_out"].call(this,c),f&&e=="isout"&&(f.isout=0,f.isover=1,f._over.call(f,c))})},dragStop:function(b,c){b.element.parents(":not(body,html)").unbind("scroll.droppable"),b.options.refreshPositions||a.ui.ddmanager.prepareOffsets(b,c)}}})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.resizable.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.widget("ui.resizable",a.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var b=this,c=this.options;this.element.addClass("ui-resizable"),a.extend(this,{_aspectRatio:!!c.aspectRatio,aspectRatio:c.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:c.helper||c.ghost||c.animate?c.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(a('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e<d.length;e++){var f=a.trim(d[e]),g="ui-resizable-"+f,h=a('<div class="ui-resizable-handle '+g+'"></div>');h.css({zIndex:c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){if(c.disabled)return;a(this).removeClass("ui-resizable-autohide"),b._handles.show()},function(){if(c.disabled)return;b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}return this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement),this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");return a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b),!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);return l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui()),!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}return a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),e<h.maxWidth&&(h.maxWidth=e),g<h.maxHeight&&(h.maxHeight=g);this._vBoundaries=h},_updateCache:function(a){var b=this.options;this.offset=this.helper.offset(),d(a.left)&&(this.position.left=a.left),d(a.top)&&(this.position.top=a.top),d(a.height)&&(this.size.height=a.height),d(a.width)&&(this.size.width=a.width)},_updateRatio:function(a,b){var c=this.options,e=this.position,f=this.size,g=this.axis;return d(a.height)?a.width=a.height*this.aspectRatio:d(a.width)&&(a.height=a.width/this.aspectRatio),g=="sw"&&(a.left=e.left+(f.width-a.width),a.top=null),g=="nw"&&(a.top=e.top+(f.height-a.height),a.left=e.left+(f.width-a.width)),a},_respectSize:function(a,b){var c=this.helper,e=this._vBoundaries,f=this._aspectRatio||b.shiftKey,g=this.axis,h=d(a.width)&&e.maxWidth&&e.maxWidth<a.width,i=d(a.height)&&e.maxHeight&&e.maxHeight<a.height,j=d(a.width)&&e.minWidth&&e.minWidth>a.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;return p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null),a},_proportionallyResize:function(){var b=this.options;if(!this._proportionallyResizeElements.length)return;var c=this.helper||this.element;for(var d=0;d<this._proportionallyResizeElements.length;d++){var e=this._proportionallyResizeElements[d];if(!this.borderDif){var f=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],g=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];this.borderDif=a.map(f,function(a,b){var c=parseInt(a,10)||0,d=parseInt(g[b],10)||0;return c+d})}if(!a.browser.msie||!a(c).is(":hidden")&&!a(c).parents(":hidden").length)e.css({height:c.height()-this.borderDif[0]-this.borderDif[2]||0,width:c.width()-this.borderDif[1]-this.borderDif[3]||0});else continue}},_renderProxy:function(){var b=this.element,c=this.options;this.elementOffset=b.offset();if(this._helper){this.helper=this.helper||a('<div style="overflow:hidden;"></div>');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:"1.8.24"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,d){a(b).each(function(){var b=a(this),e=a(this).data("resizable-alsoresize"),f={},g=d&&d.length?d:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(g,function(a,b){var c=(e[b]||0)+(h[b]||0);c&&c>=0&&(f[b]=c||null)}),b.css(f)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!i)return;e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/d.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*d.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.selectable.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.widget("ui.selectable",a.ui.mouse,{options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var b=this;this.element.addClass("ui-selectable"),this.dragged=!1;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]),c.addClass("ui-selectee"),c.each(function(){var b=a(this),c=b.offset();a.data(this,"selectable-item",{element:this,$element:b,left:c.left,top:c.top,right:c.left+b.outerWidth(),bottom:c.top+b.outerHeight(),startselected:!1,selected:b.hasClass("ui-selected"),selecting:b.hasClass("ui-selecting"),unselecting:b.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=c.addClass("ui-selectee"),this._mouseInit(),this.helper=a("<div class='ui-selectable-helper'></div>")},destroy:function(){return this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable"),this._mouseDestroy(),this},_mouseStart:function(b){var c=this;this.opos=[b.pageX,b.pageY];if(this.options.disabled)return;var d=this.options;this.selectees=a(d.filter,this.element[0]),this._trigger("start",b),a(d.appendTo).append(this.helper),this.helper.css({left:b.clientX,top:b.clientY,width:0,height:0}),d.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var d=a.data(this,"selectable-item");d.startselected=!0,!b.metaKey&&!b.ctrlKey&&(d.$element.removeClass("ui-selected"),d.selected=!1,d.$element.addClass("ui-unselecting"),d.unselecting=!0,c._trigger("unselecting",b,{unselecting:d.element}))}),a(b.target).parents().andSelf().each(function(){var d=a.data(this,"selectable-item");if(d){var e=!b.metaKey&&!b.ctrlKey||!d.$element.hasClass("ui-selected");return d.$element.removeClass(e?"ui-unselecting":"ui-selected").addClass(e?"ui-selecting":"ui-unselecting"),d.unselecting=!e,d.selecting=e,d.selected=e,e?c._trigger("selecting",b,{selecting:d.element}):c._trigger("unselecting",b,{unselecting:d.element}),!1}})},_mouseDrag:function(b){var c=this;this.dragged=!0;if(this.options.disabled)return;var d=this.options,e=this.opos[0],f=this.opos[1],g=b.pageX,h=b.pageY;if(e>g){var i=g;g=e,e=i}if(f>h){var i=h;h=f,f=i}return this.helper.css({left:e,top:f,width:g-e,height:h-f}),this.selectees.each(function(){var i=a.data(this,"selectable-item");if(!i||i.element==c.element[0])return;var j=!1;d.tolerance=="touch"?j=!(i.left>g||i.right<e||i.top>h||i.bottom<f):d.tolerance=="fit"&&(j=i.left>e&&i.right<g&&i.top>f&&i.bottom<h),j?(i.selected&&(i.$element.removeClass("ui-selected"),i.selected=!1),i.unselecting&&(i.$element.removeClass("ui-unselecting"),i.unselecting=!1),i.selecting||(i.$element.addClass("ui-selecting"),i.selecting=!0,c._trigger("selecting",b,{selecting:i.element}))):(i.selecting&&((b.metaKey||b.ctrlKey)&&i.startselected?(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.$element.addClass("ui-selected"),i.selected=!0):(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.startselected&&(i.$element.addClass("ui-unselecting"),i.unselecting=!0),c._trigger("unselecting",b,{unselecting:i.element}))),i.selected&&!b.metaKey&&!b.ctrlKey&&!i.startselected&&(i.$element.removeClass("ui-selected"),i.selected=!1,i.$element.addClass("ui-unselecting"),i.unselecting=!0,c._trigger("unselecting",b,{unselecting:i.element})))}),!1},_mouseStop:function(b){var c=this;this.dragged=!1;var d=this.options;return a(".ui-unselecting",this.element[0]).each(function(){var d=a.data(this,"selectable-item");d.$element.removeClass("ui-unselecting"),d.unselecting=!1,d.startselected=!1,c._trigger("unselected",b,{unselected:d.element})}),a(".ui-selecting",this.element[0]).each(function(){var d=a.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected"),d.selecting=!1,d.selected=!0,d.startselected=!0,c._trigger("selected",b,{selected:d.element})}),this._trigger("stop",b),this.helper.remove(),!1}}),a.extend(a.ui.selectable,{version:"1.8.24"})})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.sortable.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.widget("ui.sortable",a.ui.mouse,{widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var a=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},destroy:function(){a.Widget.prototype.destroy.call(this),this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var b=this.items.length-1;b>=0;b--)this.items[b].item.removeData(this.widgetName+"-item");return this},_setOption:function(b,c){b==="disabled"?(this.options[b]=c,this.widget()[c?"addClass":"removeClass"]("ui-sortable-disabled")):a.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(b,c){var d=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type=="static")return!1;this._refreshItems(b);var e=null,f=this,g=a(b.target).parents().each(function(){if(a.data(this,d.widgetName+"-item")==f)return e=a(this),!1});a.data(b.target,d.widgetName+"-item")==f&&(e=a(b.target));if(!e)return!1;if(this.options.handle&&!c){var h=!1;a(this.options.handle,e).find("*").andSelf().each(function(){this==b.target&&(h=!0)});if(!h)return!1}return this.currentItem=e,this._removeCurrentsFromItems(),!0},_mouseStart:function(b,c,d){var e=this.options,f=this;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(b),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),e.containment&&this._setContainment(),e.cursor&&(a("body").css("cursor")&&(this._storedCursor=a("body").css("cursor")),a("body").css("cursor",e.cursor)),e.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",e.opacity)),e.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",e.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",b,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!d)for(var g=this.containers.length-1;g>=0;g--)this.containers[g]._trigger("activate",b,f._uiHash(this));return a.ui.ddmanager&&(a.ui.ddmanager.current=this),a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(b),!0},_mouseDrag:function(b){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var c=this.options,d=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-b.pageY<c.scrollSensitivity?this.scrollParent[0].scrollTop=d=this.scrollParent[0].scrollTop+c.scrollSpeed:b.pageY-this.overflowOffset.top<c.scrollSensitivity&&(this.scrollParent[0].scrollTop=d=this.scrollParent[0].scrollTop-c.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-b.pageX<c.scrollSensitivity?this.scrollParent[0].scrollLeft=d=this.scrollParent[0].scrollLeft+c.scrollSpeed:b.pageX-this.overflowOffset.left<c.scrollSensitivity&&(this.scrollParent[0].scrollLeft=d=this.scrollParent[0].scrollLeft-c.scrollSpeed)):(b.pageY-a(document).scrollTop()<c.scrollSensitivity?d=a(document).scrollTop(a(document).scrollTop()-c.scrollSpeed):a(window).height()-(b.pageY-a(document).scrollTop())<c.scrollSensitivity&&(d=a(document).scrollTop(a(document).scrollTop()+c.scrollSpeed)),b.pageX-a(document).scrollLeft()<c.scrollSensitivity?d=a(document).scrollLeft(a(document).scrollLeft()-c.scrollSpeed):a(window).width()-(b.pageX-a(document).scrollLeft())<c.scrollSensitivity&&(d=a(document).scrollLeft(a(document).scrollLeft()+c.scrollSpeed))),d!==!1&&a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(var e=this.items.length-1;e>=0;e--){var f=this.items[e],g=f.item[0],h=this._intersectsWithPointer(f);if(!h)continue;if(f.instance!==this.currentContainer)continue;if(g!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=g&&!a.ui.contains(this.placeholder[0],g)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],g):!0)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(f))this._rearrange(b,f);else break;this._trigger("change",b,this._uiHash());break}}return this._contactContainers(b),a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),this._trigger("sort",b,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(b,c){if(!b)return;a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,b);if(this.options.revert){var d=this,e=d.placeholder.offset();d.reverting=!0,a(this.helper).animate({left:e.left-this.offset.parent.left-d.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-d.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){d._clear(b)})}else this._clear(b,c);return!1},cancel:function(){var b=this;if(this.dragging){this._mouseUp({target:null}),this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("deactivate",null,b._uiHash(this)),this.containers[c].containerCache.over&&(this.containers[c]._trigger("out",null,b._uiHash(this)),this.containers[c].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),a.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},a(c).each(function(){var c=(a(b.item||this).attr(b.attribute||"id")||"").match(b.expression||/(.+)[-=_](.+)/);c&&d.push((b.key||c[1]+"[]")+"="+(b.key&&b.expression?c[1]:c[2]))}),!d.length&&b.key&&d.push(b.key+"="),d.join("&")},toArray:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},c.each(function(){d.push(a(b.item||this).attr(b.attribute||"id")||"")}),d},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,d=this.positionAbs.top,e=d+this.helperProportions.height,f=a.left,g=f+a.width,h=a.top,i=h+a.height,j=this.offset.click.top,k=this.offset.click.left,l=d+j>h&&d+j<i&&b+k>f&&b+k<g;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]?l:f<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<g&&h<d+this.helperProportions.height/2&&e-this.helperProportions.height/2<i},_intersectsWithPointer:function(b){var c=this.options.axis==="x"||a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,b.top,b.height),d=this.options.axis==="y"||a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,b.left,b.width),e=c&&d,f=this._getDragVerticalDirection(),g=this._getDragHorizontalDirection();return e?this.floating?g&&g=="right"||f=="down"?2:1:f&&(f=="down"?2:1):!1},_intersectsWithSides:function(b){var c=a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,b.top+b.height/2,b.height),d=a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,b.left+b.width/2,b.width),e=this._getDragVerticalDirection(),f=this._getDragHorizontalDirection();return this.floating&&f?f=="right"&&d||f=="left"&&!d:e&&(e=="down"&&c||e=="up"&&!c)},_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return a!=0&&(a>0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){return this._refreshItems(a),this.refreshPositions(),this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(b){var c=this,d=[],e=[],f=this._connectWith();if(f&&b)for(var g=f.length-1;g>=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&e.push([a.isFunction(j.options.items)?j.options.items.call(j.element):a(j.options.items,j.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),j])}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var g=e.length-1;g>=0;g--)e[g][0].each(function(){d.push(this)});return a(d)},_removeCurrentsFromItems:function(){var a=this.currentItem.find(":data("+this.widgetName+"-item)");for(var b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(b){this.items=[],this.containers=[this];var c=this.items,d=this,e=[[a.isFunction(this.options.items)?this.options.items.call(this.element[0],b,{item:this.currentItem}):a(this.options.items,this.element),this]],f=this._connectWith();if(f&&this.ready)for(var g=f.length-1;g>=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&(e.push([a.isFunction(j.options.items)?j.options.items.call(j.element[0],b,{item:this.currentItem}):a(j.options.items,j.element),j]),this.containers.push(j))}}for(var g=e.length-1;g>=0;g--){var k=e[g][1],l=e[g][0];for(var i=0,m=l.length;i<m;i++){var n=a(l[i]);n.data(this.widgetName+"-item",k),c.push({item:n,instance:k,width:0,height:0,left:0,top:0})}}},refreshPositions:function(b){this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());for(var c=this.items.length-1;c>=0;c--){var d=this.items[c];if(d.instance!=this.currentContainer&&this.currentContainer&&d.item[0]!=this.currentItem[0])continue;var e=this.options.toleranceElement?a(this.options.toleranceElement,d.item):d.item;b||(d.width=e.outerWidth(),d.height=e.outerHeight());var f=e.offset();d.left=f.left,d.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var c=this.containers.length-1;c>=0;c--){var f=this.containers[c].element.offset();this.containers[c].containerCache.left=f.left,this.containers[c].containerCache.top=f.top,this.containers[c].containerCache.width=this.containers[c].element.outerWidth(),this.containers[c].containerCache.height=this.containers[c].element.outerHeight()}return this},_createPlaceholder:function(b){var c=b||this,d=c.options;if(!d.placeholder||d.placeholder.constructor==String){var e=d.placeholder;d.placeholder={element:function(){var b=a(document.createElement(c.currentItem[0].nodeName)).addClass(e||c.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];return e||(b.style.visibility="hidden"),b},update:function(a,b){if(e&&!d.forcePlaceholderSize)return;b.height()||b.height(c.currentItem.innerHeight()-parseInt(c.currentItem.css("paddingTop")||0,10)-parseInt(c.currentItem.css("paddingBottom")||0,10)),b.width()||b.width(c.currentItem.innerWidth()-parseInt(c.currentItem.css("paddingLeft")||0,10)-parseInt(c.currentItem.css("paddingRight")||0,10))}}}c.placeholder=a(d.placeholder.element.call(c.element,c.currentItem)),c.currentItem.after(c.placeholder),d.placeholder.update(c,c.placeholder)},_contactContainers:function(b){var c=null,d=null;for(var e=this.containers.length-1;e>=0;e--){if(a.ui.contains(this.currentItem[0],this.containers[e].element[0]))continue;if(this._intersectsWith(this.containers[e].containerCache)){if(c&&a.ui.contains(this.containers[e].element[0],c.element[0]))continue;c=this.containers[e],d=e}else this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",b,this._uiHash(this)),this.containers[e].containerCache.over=0)}if(!c)return;if(this.containers.length===1)this.containers[d]._trigger("over",b,this._uiHash(this)),this.containers[d].containerCache.over=1;else if(this.currentContainer!=this.containers[d]){var f=1e4,g=null,h=this.positionAbs[this.containers[d].floating?"left":"top"];for(var i=this.items.length-1;i>=0;i--){if(!a.ui.contains(this.containers[d].element[0],this.items[i].item[0]))continue;var j=this.containers[d].floating?this.items[i].item.offset().left:this.items[i].item.offset().top;Math.abs(j-h)<f&&(f=Math.abs(j-h),g=this.items[i],this.direction=j-h>0?"down":"up")}if(!g&&!this.options.dropOnEmpty)return;this.currentContainer=this.containers[d],g?this._rearrange(b,g,null,!0):this._rearrange(b,null,this.containers[d].element,!0),this._trigger("change",b,this._uiHash()),this.containers[d]._trigger("change",b,this._uiHash(this)),this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[d]._trigger("over",b,this._uiHash(this)),this.containers[d].containerCache.over=1}},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b,this.currentItem])):c.helper=="clone"?this.currentItem.clone():this.currentItem;return d.parents("body").length||a(c.appendTo!="parent"?c.appendTo:this.currentItem[0].parentNode)[0].appendChild(d[0]),d[0]==this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(d[0].style.width==""||c.forceHelperSize)&&d.width(this.currentItem.width()),(d[0].style.height==""||c.forceHelperSize)&&d.height(this.currentItem.height()),d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)){var c=a(b.containment)[0],d=a(b.containment).offset(),e=a(c).css("overflow")!="hidden";this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(e?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(e?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName);this.cssPosition=="relative"&&(this.scrollParent[0]==document||this.scrollParent[0]==this.offsetParent[0])&&(this.offset.relative=this._getRelativeOffset());var f=b.pageX,g=b.pageY;if(this.originalPosition){this.containment&&(b.pageX-this.offset.click.left<this.containment[0]&&(f=this.containment[0]+this.offset.click.left),b.pageY-this.offset.click.top<this.containment[1]&&(g=this.containment[1]+this.offset.click.top),b.pageX-this.offset.click.left>this.containment[2]&&(f=this.containment[2]+this.offset.click.left),b.pageY-this.offset.click.top>this.containment[3]&&(g=this.containment[3]+this.offset.click.top));if(c.grid){var h=this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1];g=this.containment?h-this.offset.click.top<this.containment[1]||h-this.offset.click.top>this.containment[3]?h-this.offset.click.top<this.containment[1]?h+c.grid[1]:h-c.grid[1]:h:h;var i=this.originalPageX+Math.round((f-this.originalPageX)/c.grid[0])*c.grid[0];f=this.containment?i-this.offset.click.left<this.containment[0]||i-this.offset.click.left>this.containment[2]?i-this.offset.click.left<this.containment[0]?i+c.grid[0]:i-c.grid[0]:i:i}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:d.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:d.scrollLeft())}},_rearrange:function(a,b,c,d){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?b.item[0]:b.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var e=this,f=this.counter;window.setTimeout(function(){f==e.counter&&e.refreshPositions(!d)},0)},_clear:function(b,c){this.reverting=!1;var d=[],e=this;!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var f in this._storedCSS)if(this._storedCSS[f]=="auto"||this._storedCSS[f]=="static")this._storedCSS[f]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!c&&d.push(function(a){this._trigger("receive",a,this._uiHash(this.fromOutside))}),(this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!c&&d.push(function(a){this._trigger("update",a,this._uiHash())}),this!==this.currentContainer&&(c||(d.push(function(a){this._trigger("remove",a,this._uiHash())}),d.push(function(a){return function(b){a._trigger("receive",b,this._uiHash(this))}}.call(this,this.currentContainer)),d.push(function(a){return function(b){a._trigger("update",b,this._uiHash(this))}}.call(this,this.currentContainer))));for(var f=this.containers.length-1;f>=0;f--)c||d.push(function(a){return function(b){a._trigger("deactivate",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over&&(d.push(function(a){return function(b){a._trigger("out",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over=0);this._storedCursor&&a("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!c){this._trigger("beforeStop",b,this._uiHash());for(var f=0;f<d.length;f++)d[f].call(this,b);this._trigger("stop",b,this._uiHash())}return this.fromOutside=!1,!1}c||this._trigger("beforeStop",b,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.helper[0]!=this.currentItem[0]&&this.helper.remove(),this.helper=null;if(!c){for(var f=0;f<d.length;f++)d[f].call(this,b);this._trigger("stop",b,this._uiHash())}return this.fromOutside=!1,!0},_trigger:function(){a.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(b){var c=b||this;return{helper:c.helper,placeholder:c.placeholder||a([]),position:c.position,originalPosition:c.originalPosition,offset:c.positionAbs,item:c.currentItem,sender:b?b.element:null}}}),a.extend(a.ui.sortable,{version:"1.8.24"})})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.accordion.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:!0,clearStyle:!1,collapsible:!1,event:"click",fillSpace:!1,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:!1,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var b=this,c=b.options;b.running=0,b.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"),b.headers=b.element.find(c.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){if(c.disabled)return;a(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){if(c.disabled)return;a(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){if(c.disabled)return;a(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){if(c.disabled)return;a(this).removeClass("ui-state-focus")}),b.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");if(c.navigation){var d=b.element.find("a").filter(c.navigationFilter).eq(0);if(d.length){var e=d.closest(".ui-accordion-header");e.length?b.active=e:b.active=d.closest(".ui-accordion-content").prev()}}b.active=b._findActive(b.active||c.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top"),b.active.next().addClass("ui-accordion-content-active"),b._createIcons(),b.resize(),b.element.attr("role","tablist"),b.headers.attr("role","tab").bind("keydown.accordion",function(a){return b._keydown(a)}).next().attr("role","tabpanel"),b.headers.not(b.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide(),b.active.length?b.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):b.headers.eq(0).attr("tabIndex",0),a.browser.safari||b.headers.find("a").attr("tabIndex",-1),c.event&&b.headers.bind(c.event.split(" ").join(".accordion ")+".accordion",function(a){b._clickHandler.call(b,a,this),a.preventDefault()})},_createIcons:function(){var b=this.options;b.icons&&(a("<span></span>").addClass("ui-icon "+b.icons.header).prependTo(this.headers),this.active.children(".ui-icon").toggleClass(b.icons.header).toggleClass(b.icons.headerSelected),this.element.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.children(".ui-icon").remove(),this.element.removeClass("ui-accordion-icons")},destroy:function(){var b=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"),this.headers.find("a").removeAttr("tabIndex"),this._destroyIcons();var c=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");return(b.autoHeight||b.fillHeight)&&c.css("height",""),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),b=="active"&&this.activate(c),b=="icons"&&(this._destroyIcons(),c&&this._createIcons()),b=="disabled"&&this.headers.add(this.headers.next())[c?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(b){if(this.options.disabled||b.altKey||b.ctrlKey)return;var c=a.ui.keyCode,d=this.headers.length,e=this.headers.index(b.target),f=!1;switch(b.keyCode){case c.RIGHT:case c.DOWN:f=this.headers[(e+1)%d];break;case c.LEFT:case c.UP:f=this.headers[(e-1+d)%d];break;case c.SPACE:case c.ENTER:this._clickHandler({target:b.target},b.target),b.preventDefault()}return f?(a(b.target).attr("tabIndex",-1),a(f).attr("tabIndex",0),f.focus(),!1):!0},resize:function(){var b=this.options,c;if(b.fillSpace){if(a.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}c=this.element.parent().height(),a.browser.msie&&this.element.parent().css("overflow",d),this.headers.each(function(){c-=a(this).outerHeight(!0)}),this.headers.next().each(function(){a(this).height(Math.max(0,c-a(this).innerHeight()+a(this).height()))}).css("overflow","auto")}else b.autoHeight&&(c=0,this.headers.next().each(function(){c=Math.max(c,a(this).height("").height())}).height(c));return this},activate:function(a){this.options.active=a;var b=this._findActive(a)[0];return this._clickHandler({target:b},b),this},_findActive:function(b){return b?typeof b=="number"?this.headers.filter(":eq("+b+")"):this.headers.not(this.headers.not(b)):b===!1?a([]):this.headers.filter(":eq(0)")},_clickHandler:function(b,c){var d=this.options;if(d.disabled)return;if(!b.target){if(!d.collapsible)return;this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header),this.active.next().addClass("ui-accordion-content-active");var e=this.active.next(),f={options:d,newHeader:a([]),oldHeader:d.active,newContent:a([]),oldContent:e},g=this.active=a([]);this._toggle(g,e,f);return}var h=a(b.currentTarget||c),i=h[0]===this.active[0];d.active=d.collapsible&&i?!1:this.headers.index(h);if(this.running||!d.collapsible&&i)return;var j=this.active,g=h.next(),e=this.active.next(),f={options:d,newHeader:i&&d.collapsible?a([]):h,oldHeader:this.active,newContent:i&&d.collapsible?a([]):g,oldContent:e},k=this.headers.index(this.active[0])>this.headers.index(h[0]);this.active=i?a([]):h,this._toggle(g,e,f,i,k),j.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header),i||(h.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected),h.next().addClass("ui-accordion-content-active"));return},_toggle:function(b,c,d,e,f){var g=this,h=g.options;g.toShow=b,g.toHide=c,g.data=d;var i=function(){if(!g)return;return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data),g.running=c.size()===0?b.size():c.size();if(h.animated){var j={};h.collapsible&&e?j={toShow:a([]),toHide:c,complete:i,down:f,autoHeight:h.autoHeight||h.fillSpace}:j={toShow:b,toHide:c,complete:i,down:f,autoHeight:h.autoHeight||h.fillSpace},h.proxied||(h.proxied=h.animated),h.proxiedDuration||(h.proxiedDuration=h.duration),h.animated=a.isFunction(h.proxied)?h.proxied(j):h.proxied,h.duration=a.isFunction(h.proxiedDuration)?h.proxiedDuration(j):h.proxiedDuration;var k=a.ui.accordion.animations,l=h.duration,m=h.animated;m&&!k[m]&&!a.easing[m]&&(m="slide"),k[m]||(k[m]=function(a){this.slide(a,{easing:m,duration:l||700})}),k[m](j)}else h.collapsible&&e?b.toggle():(c.hide(),b.show()),i(!0);c.prev().attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).blur(),b.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(this.running)return;this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""}),this.toHide.removeClass("ui-accordion-content-active"),this.toHide.length&&(this.toHide.parent()[0].className=this.toHide.parent()[0].className),this._trigger("change",null,this.data)}}),a.extend(a.ui.accordion,{version:"1.8.24",animations:{slide:function(b,c){b=a.extend({easing:"swing",duration:300},b,c);if(!b.toHide.size()){b.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},b);return}if(!b.toShow.size()){b.toHide.animate({height:"hide",paddingTop:"hide",paddingBottom:"hide"},b);return}var d=b.toShow.css("overflow"),e=0,f={},g={},h=["height","paddingTop","paddingBottom"],i,j=b.toShow;i=j[0].style.width,j.width(j.parent().width()-parseFloat(j.css("paddingLeft"))-parseFloat(j.css("paddingRight"))-(parseFloat(j.css("borderLeftWidth"))||0)-(parseFloat(j.css("borderRightWidth"))||0)),a.each(h,function(c,d){g[d]="hide";var e=(""+a.css(b.toShow[0],d)).match(/^([\d+-.]+)(.*)$/);f[d]={value:e[1],unit:e[2]||"px"}}),b.toShow.css({height:0,overflow:"hidden"}).show(),b.toHide.filter(":hidden").each(b.complete).end().filter(":visible").animate(g,{step:function(a,c){c.prop=="height"&&(e=c.end-c.start===0?0:(c.now-c.start)/(c.end-c.start)),b.toShow[0].style[c.prop]=e*f[c.prop].value+f[c.prop].unit},duration:b.duration,easing:b.easing,complete:function(){b.autoHeight||b.toShow.css("height",""),b.toShow.css({width:i,overflow:d}),b.complete()}})},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1e3:200})}}})})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.autocomplete.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){var c=0;a.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var b=this,c=this.element[0].ownerDocument,d;this.isMultiLine=this.element.is("textarea"),this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(b.options.disabled||b.element.propAttr("readOnly"))return;d=!1;var e=a.ui.keyCode;switch(c.keyCode){case e.PAGE_UP:b._move("previousPage",c);break;case e.PAGE_DOWN:b._move("nextPage",c);break;case e.UP:b._keyEvent("previous",c);break;case e.DOWN:b._keyEvent("next",c);break;case e.ENTER:case e.NUMPAD_ENTER:b.menu.active&&(d=!0,c.preventDefault());case e.TAB:if(!b.menu.active)return;b.menu.select(c);break;case e.ESCAPE:b.element.val(b.term),b.close(c);break;default:clearTimeout(b.searching),b.searching=setTimeout(function(){b.term!=b.element.val()&&(b.selectedItem=null,b.search(null,c))},b.options.delay)}}).bind("keypress.autocomplete",function(a){d&&(d=!1,a.preventDefault())}).bind("focus.autocomplete",function(){if(b.options.disabled)return;b.selectedItem=null,b.previous=b.element.val()}).bind("blur.autocomplete",function(a){if(b.options.disabled)return;clearTimeout(b.searching),b.closing=setTimeout(function(){b.close(a),b._change(a)},150)}),this._initSource(),this.menu=a("<ul></ul>").addClass("ui-autocomplete").appendTo(a(this.options.appendTo||"body",c)[0]).mousedown(function(c){var d=b.menu.element[0];a(c.target).closest(".ui-menu-item").length||setTimeout(function(){a(document).one("mousedown",function(c){c.target!==b.element[0]&&c.target!==d&&!a.ui.contains(d,c.target)&&b.close()})},1),setTimeout(function(){clearTimeout(b.closing)},13)}).menu({focus:function(a,c){var d=c.item.data("item.autocomplete");!1!==b._trigger("focus",a,{item:d})&&/^key/.test(a.originalEvent.type)&&b.element.val(d.value)},selected:function(a,d){var e=d.item.data("item.autocomplete"),f=b.previous;b.element[0]!==c.activeElement&&(b.element.focus(),b.previous=f,setTimeout(function(){b.previous=f,b.selectedItem=e},1)),!1!==b._trigger("select",a,{item:e})&&b.element.val(e.value),b.term=b.element.val(),b.close(a),b.selectedItem=e},blur:function(a,c){b.menu.element.is(":visible")&&b.element.val()!==b.term&&b.element.val(b.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"),a.fn.bgiframe&&this.menu.element.bgiframe(),b.beforeunloadHandler=function(){b.element.removeAttr("autocomplete")},a(window).bind("beforeunload",b.beforeunloadHandler)},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"),this.menu.element.remove(),a(window).unbind("beforeunload",this.beforeunloadHandler),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),b==="source"&&this._initSource(),b==="appendTo"&&this.menu.element.appendTo(a(c||"body",this.element[0].ownerDocument)[0]),b==="disabled"&&c&&this.xhr&&this.xhr.abort()},_initSource:function(){var b=this,c,d;a.isArray(this.options.source)?(c=this.options.source,this.source=function(b,d){d(a.ui.autocomplete.filter(c,b.term))}):typeof this.options.source=="string"?(d=this.options.source,this.source=function(c,e){b.xhr&&b.xhr.abort(),b.xhr=a.ajax({url:d,data:c,dataType:"json",success:function(a,b){e(a)},error:function(){e([])}})}):this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val(),this.term=this.element.val();if(a.length<this.options.minLength)return this.close(b);clearTimeout(this.closing);if(this._trigger("search",b)===!1)return;return this._search(a)},_search:function(a){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.source({term:a},this._response())},_response:function(){var a=this,b=++c;return function(d){b===c&&a.__response(d),a.pending--,a.pending||a.element.removeClass("ui-autocomplete-loading")}},__response:function(a){!this.options.disabled&&a&&a.length?(a=this._normalize(a),this._suggest(a),this._trigger("open")):this.close()},close:function(a){clearTimeout(this.closing),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.deactivate(),this._trigger("close",a))},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(b){return b.length&&b[0].label&&b[0].value?b:a.map(b,function(b){return typeof b=="string"?{label:b,value:b}:a.extend({label:b.label||b.value,value:b.value||b.label},b)})},_suggest:function(b){var c=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(c,b),this.menu.deactivate(),this.menu.refresh(),c.show(),this._resizeMenu(),c.position(a.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(new a.Event("mouseover"))},_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(b,c){var d=this;a.each(c,function(a,c){d._renderItem(b,c)})},_renderItem:function(b,c){return a("<li></li>").data("item.autocomplete",c).append(a("<a></a>").text(c.label)).appendTo(b)},_move:function(a,b){if(!this.menu.element.is(":visible")){this.search(null,b);return}if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term),this.menu.deactivate();return}this.menu[a](b)},widget:function(){return this.menu.element},_keyEvent:function(a,b){if(!this.isMultiLine||this.menu.element.is(":visible"))this._move(a,b),b.preventDefault()}}),a.extend(a.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(b,c){var d=new RegExp(a.ui.autocomplete.escapeRegex(c),"i");return a.grep(b,function(a){return d.test(a.label||a.value||a)})}})})(jQuery),function(a){a.widget("ui.menu",{_create:function(){var b=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(c){if(!a(c.target).closest(".ui-menu-item a").length)return;c.preventDefault(),b.select(c)}),this.refresh()},refresh:function(){var b=this,c=this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem");c.children("a").addClass("ui-corner-all").attr("tabindex",-1).mouseenter(function(c){b.activate(c,a(this).parent())}).mouseleave(function(){b.deactivate()})},activate:function(a,b){this.deactivate();if(this.hasScroll()){var c=b.offset().top-this.element.offset().top,d=this.element.scrollTop(),e=this.element.height();c<0?this.element.scrollTop(d+c):c>=e&&this.element.scrollTop(d+c-e+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end(),this._trigger("focus",a,{item:b})},deactivate:function(){if(!this.active)return;this.active.children("a").removeClass("ui-state-hover").removeAttr("id"),this._trigger("blur"),this.active=null},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(a,b,c){if(!this.active){this.activate(c,this.element.children(b));return}var d=this.active[a+"All"](".ui-menu-item").eq(0);d.length?this.activate(c,d):this.activate(c,this.element.children(b))},nextPage:function(b){if(this.hasScroll()){if(!this.active||this.last()){this.activate(b,this.element.children(".ui-menu-item:first"));return}var c=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c-d+a(this).height();return b<10&&b>-10});e.length||(e=this.element.children(".ui-menu-item:last")),this.activate(b,e)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(b){if(this.hasScroll()){if(!this.active||this.first()){this.activate(b,this.element.children(".ui-menu-item:last"));return}var c=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c+d-a(this).height();return b<10&&b>-10});e.length||(e=this.element.children(".ui-menu-item:first")),this.activate(b,e)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element[a.fn.prop?"prop":"attr"]("scrollHeight")},select:function(a){this._trigger("selected",a,{item:this.active})}})}(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.button.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){var c,d,e,f,g="ui-button ui-widget ui-state-default ui-corner-all",h="ui-state-hover ui-state-active ",i="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",j=function(){var b=a(this).find(":ui-button");setTimeout(function(){b.button("refresh")},1)},k=function(b){var c=b.name,d=b.form,e=a([]);return c&&(d?e=a(d).find("[name='"+c+"']"):e=a("[name='"+c+"']",b.ownerDocument).filter(function(){return!this.form})),e};a.widget("ui.button",{options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",j),typeof this.options.disabled!="boolean"?this.options.disabled=!!this.element.propAttr("disabled"):this.element.propAttr("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var b=this,h=this.options,i=this.type==="checkbox"||this.type==="radio",l="ui-state-hover"+(i?"":" ui-state-active"),m="ui-state-focus";h.label===null&&(h.label=this.buttonElement.html()),this.buttonElement.addClass(g).attr("role","button").bind("mouseenter.button",function(){if(h.disabled)return;a(this).addClass("ui-state-hover"),this===c&&a(this).addClass("ui-state-active")}).bind("mouseleave.button",function(){if(h.disabled)return;a(this).removeClass(l)}).bind("click.button",function(a){h.disabled&&(a.preventDefault(),a.stopImmediatePropagation())}),this.element.bind("focus.button",function(){b.buttonElement.addClass(m)}).bind("blur.button",function(){b.buttonElement.removeClass(m)}),i&&(this.element.bind("change.button",function(){if(f)return;b.refresh()}),this.buttonElement.bind("mousedown.button",function(a){if(h.disabled)return;f=!1,d=a.pageX,e=a.pageY}).bind("mouseup.button",function(a){if(h.disabled)return;if(d!==a.pageX||e!==a.pageY)f=!0})),this.type==="checkbox"?this.buttonElement.bind("click.button",function(){if(h.disabled||f)return!1;a(this).toggleClass("ui-state-active"),b.buttonElement.attr("aria-pressed",b.element[0].checked)}):this.type==="radio"?this.buttonElement.bind("click.button",function(){if(h.disabled||f)return!1;a(this).addClass("ui-state-active"),b.buttonElement.attr("aria-pressed","true");var c=b.element[0];k(c).not(c).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown.button",function(){if(h.disabled)return!1;a(this).addClass("ui-state-active"),c=this,a(document).one("mouseup",function(){c=null})}).bind("mouseup.button",function(){if(h.disabled)return!1;a(this).removeClass("ui-state-active")}).bind("keydown.button",function(b){if(h.disabled)return!1;(b.keyCode==a.ui.keyCode.SPACE||b.keyCode==a.ui.keyCode.ENTER)&&a(this).addClass("ui-state-active")}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(b){b.keyCode===a.ui.keyCode.SPACE&&a(this).click()})),this._setOption("disabled",h.disabled),this._resetButton()},_determineButtonType:function(){this.element.is(":checkbox")?this.type="checkbox":this.element.is(":radio")?this.type="radio":this.element.is("input")?this.type="input":this.type="button";if(this.type==="checkbox"||this.type==="radio"){var a=this.element.parents().filter(":last"),b="label[for='"+this.element.attr("id")+"']";this.buttonElement=a.find(b),this.buttonElement.length||(a=a.length?a.siblings():this.element.siblings(),this.buttonElement=a.filter(b),this.buttonElement.length||(this.buttonElement=a.find(b))),this.element.addClass("ui-helper-hidden-accessible");var c=this.element.is(":checked");c&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.attr("aria-pressed",c)}else this.buttonElement=this.element},widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(g+" "+h+" "+i).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title"),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments);if(b==="disabled"){c?this.element.propAttr("disabled",!0):this.element.propAttr("disabled",!1);return}this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b),this.type==="radio"?k(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):this.type==="checkbox"&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if(this.type==="input"){this.options.label&&this.element.val(this.options.label);return}var b=this.buttonElement.removeClass(i),c=a("<span></span>",this.element[0].ownerDocument).addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary,f=[];d.primary||d.secondary?(this.options.text&&f.push("ui-button-text-icon"+(e?"s":d.primary?"-primary":"-secondary")),d.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>"),d.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>"),this.options.text||(f.push(e?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||b.attr("title",c))):f.push("ui-button-text-only"),b.addClass(f.join(" "))}}),a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c),a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var b=this.element.css("direction")==="rtl";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(b?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(b?"ui-corner-left":"ui-corner-right").end().end()},destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"),a.Widget.prototype.destroy.call(this)}})})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.dialog.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){var c="ui-dialog ui-widget ui-widget-content ui-corner-all ",d={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},e={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};a.widget("ui.dialog",{options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",collision:"fit",using:function(b){var c=a(this).css(b).offset().top;c<0&&a(this).css("top",b.top-c)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title"),typeof this.originalTitle!="string"&&(this.originalTitle=""),this.options.title=this.options.title||this.originalTitle;var b=this,d=b.options,e=d.title||"&#160;",f=a.ui.dialog.getTitleId(b.element),g=(b.uiDialog=a("<div></div>")).appendTo(document.body).hide().addClass(c+d.dialogClass).css({zIndex:d.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(c){d.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}).attr({role:"dialog","aria-labelledby":f}).mousedown(function(a){b.moveToTop(!1,a)}),h=b.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g),i=(b.uiDialogTitlebar=a("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),j=a('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){j.addClass("ui-state-hover")},function(){j.removeClass("ui-state-hover")}).focus(function(){j.addClass("ui-state-focus")}).blur(function(){j.removeClass("ui-state-focus")}).click(function(a){return b.close(a),!1}).appendTo(i),k=(b.uiDialogTitlebarCloseText=a("<span></span>")).addClass("ui-icon ui-icon-closethick").text(d.closeText).appendTo(j),l=a("<span></span>").addClass("ui-dialog-title").attr("id",f).html(e).prependTo(i);a.isFunction(d.beforeclose)&&!a.isFunction(d.beforeClose)&&(d.beforeClose=d.beforeclose),i.find("*").add(i).disableSelection(),d.draggable&&a.fn.draggable&&b._makeDraggable(),d.resizable&&a.fn.resizable&&b._makeResizable(),b._createButtons(d.buttons),b._isOpen=!1,a.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;return a.overlay&&a.overlay.destroy(),a.uiDialog.hide(),a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),a.uiDialog.remove(),a.originalTitle&&a.element.attr("title",a.originalTitle),a},widget:function(){return this.uiDialog},close:function(b){var c=this,d,e;if(!1===c._trigger("beforeClose",b))return;return c.overlay&&c.overlay.destroy(),c.uiDialog.unbind("keypress.ui-dialog"),c._isOpen=!1,c.options.hide?c.uiDialog.hide(c.options.hide,function(){c._trigger("close",b)}):(c.uiDialog.hide(),c._trigger("close",b)),a.ui.dialog.overlay.resize(),c.options.modal&&(d=0,a(".ui-dialog").each(function(){this!==c.uiDialog[0]&&(e=a(this).css("z-index"),isNaN(e)||(d=Math.max(d,e)))}),a.ui.dialog.maxZ=d),c},isOpen:function(){return this._isOpen},moveToTop:function(b,c){var d=this,e=d.options,f;return e.modal&&!b||!e.stack&&!e.modal?d._trigger("focus",c):(e.zIndex>a.ui.dialog.maxZ&&(a.ui.dialog.maxZ=e.zIndex),d.overlay&&(a.ui.dialog.maxZ+=1,d.overlay.$el.css("z-index",a.ui.dialog.overlay.maxZ=a.ui.dialog.maxZ)),f={scrollTop:d.element.scrollTop(),scrollLeft:d.element.scrollLeft()},a.ui.dialog.maxZ+=1,d.uiDialog.css("z-index",a.ui.dialog.maxZ),d.element.attr(f),d._trigger("focus",c),d)},open:function(){if(this._isOpen)return;var b=this,c=b.options,d=b.uiDialog;return b.overlay=c.modal?new a.ui.dialog.overlay(b):null,b._size(),b._position(c.position),d.show(c.show),b.moveToTop(!0),c.modal&&d.bind("keydown.ui-dialog",function(b){if(b.keyCode!==a.ui.keyCode.TAB)return;var c=a(":tabbable",this),d=c.filter(":first"),e=c.filter(":last");if(b.target===e[0]&&!b.shiftKey)return d.focus(1),!1;if(b.target===d[0]&&b.shiftKey)return e.focus(1),!1}),a(b.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus(),b._isOpen=!0,b._trigger("open"),b},_createButtons:function(b){var c=this,d=!1,e=a("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),f=a("<div></div>").addClass("ui-dialog-buttonset").appendTo(e);c.uiDialog.find(".ui-dialog-buttonpane").remove(),typeof b=="object"&&b!==null&&a.each(b,function(){return!(d=!0)}),d&&(a.each(b,function(b,d){d=a.isFunction(d)?{click:d,text:b}:d;var e=a('<button type="button"></button>').click(function(){d.click.apply(c.element[0],arguments)}).appendTo(f);a.each(d,function(a,b){if(a==="click")return;a in e?e[a](b):e.attr(a,b)}),a.fn.button&&e.button()}),e.appendTo(c.uiDialog))},_makeDraggable:function(){function f(a){return{position:a.position,offset:a.offset}}var b=this,c=b.options,d=a(document),e;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(d,g){e=c.height==="auto"?"auto":a(this).height(),a(this).height(a(this).height()).addClass("ui-dialog-dragging"),b._trigger("dragStart",d,f(g))},drag:function(a,c){b._trigger("drag",a,f(c))},stop:function(g,h){c.position=[h.position.left-d.scrollLeft(),h.position.top-d.scrollTop()],a(this).removeClass("ui-dialog-dragging").height(e),b._trigger("dragStop",g,f(h)),a.ui.dialog.overlay.resize()}})},_makeResizable:function(c){function h(a){return{originalPosition:a.originalPosition,originalSize:a.originalSize,position:a.position,size:a.size}}c=c===b?this.options.resizable:c;var d=this,e=d.options,f=d.uiDialog.css("position"),g=typeof c=="string"?c:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:g,start:function(b,c){a(this).addClass("ui-dialog-resizing"),d._trigger("resizeStart",b,h(c))},resize:function(a,b){d._trigger("resize",a,h(b))},stop:function(b,c){a(this).removeClass("ui-dialog-resizing"),e.height=a(this).height(),e.width=a(this).width(),d._trigger("resizeStop",b,h(c)),a.ui.dialog.overlay.resize()}}).css("position",f).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(b){var c=[],d=[0,0],e;if(b){if(typeof b=="string"||typeof b=="object"&&"0"in b)c=b.split?b.split(" "):[b[0],b[1]],c.length===1&&(c[1]=c[0]),a.each(["left","top"],function(a,b){+c[a]===c[a]&&(d[a]=c[a],c[a]=b)}),b={my:c.join(" "),at:c.join(" "),offset:d.join(" ")};b=a.extend({},a.ui.dialog.prototype.options.position,b)}else b=a.ui.dialog.prototype.options.position;e=this.uiDialog.is(":visible"),e||this.uiDialog.show(),this.uiDialog.css({top:0,left:0}).position(a.extend({of:window},b)),e||this.uiDialog.hide()},_setOptions:function(b){var c=this,f={},g=!1;a.each(b,function(a,b){c._setOption(a,b),a in d&&(g=!0),a in e&&(f[a]=b)}),g&&this._size(),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",f)},_setOption:function(b,d){var e=this,f=e.uiDialog;switch(b){case"beforeclose":b="beforeClose";break;case"buttons":e._createButtons(d);break;case"closeText":e.uiDialogTitlebarCloseText.text(""+d);break;case"dialogClass":f.removeClass(e.options.dialogClass).addClass(c+d);break;case"disabled":d?f.addClass("ui-dialog-disabled"):f.removeClass("ui-dialog-disabled");break;case"draggable":var g=f.is(":data(draggable)");g&&!d&&f.draggable("destroy"),!g&&d&&e._makeDraggable();break;case"position":e._position(d);break;case"resizable":var h=f.is(":data(resizable)");h&&!d&&f.resizable("destroy"),h&&typeof d=="string"&&f.resizable("option","handles",d),!h&&d!==!1&&e._makeResizable(d);break;case"title":a(".ui-dialog-title",e.uiDialogTitlebar).html(""+(d||"&#160;"))}a.Widget.prototype._setOption.apply(e,arguments)},_size:function(){var b=this.options,c,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0}),b.minWidth>b.width&&(b.width=b.minWidth),c=this.uiDialog.css({height:"auto",width:b.width}).height(),d=Math.max(0,b.minHeight-c);if(b.height==="auto")if(a.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();var f=this.element.css("height","auto").height();e||this.uiDialog.hide(),this.element.height(Math.max(f,d))}else this.element.height(Math.max(b.height-c,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}}),a.extend(a.ui.dialog,{version:"1.8.24",uuid:0,maxZ:0,getTitleId:function(a){var b=a.attr("id");return b||(this.uuid+=1,b=this.uuid),"ui-dialog-title-"+b},overlay:function(b){this.$el=a.ui.dialog.overlay.create(b)}}),a.extend(a.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:a.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(b){this.instances.length===0&&(setTimeout(function(){a.ui.dialog.overlay.instances.length&&a(document).bind(a.ui.dialog.overlay.events,function(b){if(a(b.target).zIndex()<a.ui.dialog.overlay.maxZ)return!1})},1),a(document).bind("keydown.dialog-overlay",function(c){b.options.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}),a(window).bind("resize.dialog-overlay",a.ui.dialog.overlay.resize));var c=(this.oldInstances.pop()||a("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});return a.fn.bgiframe&&c.bgiframe(),this.instances.push(c),c},destroy:function(b){var c=a.inArray(b,this.instances);c!=-1&&this.oldInstances.push(this.instances.splice(c,1)[0]),this.instances.length===0&&a([document,window]).unbind(".dialog-overlay"),b.remove();var d=0;a.each(this.instances,function(){d=Math.max(d,this.css("z-index"))}),this.maxZ=d},height:function(){var b,c;return a.browser.msie&&a.browser.version<7?(b=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),c=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight),b<c?a(window).height()+"px":b+"px"):a(document).height()+"px"},width:function(){var b,c;return a.browser.msie?(b=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth),c=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth),b<c?a(window).width()+"px":b+"px"):a(document).width()+"px"},resize:function(){var b=a([]);a.each(a.ui.dialog.overlay.instances,function(){b=b.add(this)}),b.css({width:0,height:0}).css({width:a.ui.dialog.overlay.width(),height:a.ui.dialog.overlay.height()})}}),a.extend(a.ui.dialog.overlay.prototype,{destroy:function(){a.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.slider.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){var c=5;a.widget("ui.slider",a.ui.mouse,{widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null},_create:function(){var b=this,d=this.options,e=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f="<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>",g=d.values&&d.values.length||1,h=[];this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"+(d.disabled?" ui-slider-disabled ui-disabled":"")),this.range=a([]),d.range&&(d.range===!0&&(d.values||(d.values=[this._valueMin(),this._valueMin()]),d.values.length&&d.values.length!==2&&(d.values=[d.values[0],d.values[0]])),this.range=a("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(d.range==="min"||d.range==="max"?" ui-slider-range-"+d.range:"")));for(var i=e.length;i<g;i+=1)h.push(f);this.handles=e.add(a(h.join("")).appendTo(b.element)),this.handle=this.handles.eq(0),this.handles.add(this.range).filter("a").click(function(a){a.preventDefault()}).hover(function(){d.disabled||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}).focus(function(){d.disabled?a(this).blur():(a(".ui-slider .ui-state-focus").removeClass("ui-state-focus"),a(this).addClass("ui-state-focus"))}).blur(function(){a(this).removeClass("ui-state-focus")}),this.handles.each(function(b){a(this).data("index.ui-slider-handle",b)}),this.handles.keydown(function(d){var e=a(this).data("index.ui-slider-handle"),f,g,h,i;if(b.options.disabled)return;switch(d.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.PAGE_UP:case a.ui.keyCode.PAGE_DOWN:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:d.preventDefault();if(!b._keySliding){b._keySliding=!0,a(this).addClass("ui-state-active"),f=b._start(d,e);if(f===!1)return}}i=b.options.step,b.options.values&&b.options.values.length?g=h=b.values(e):g=h=b.value();switch(d.keyCode){case a.ui.keyCode.HOME:h=b._valueMin();break;case a.ui.keyCode.END:h=b._valueMax();break;case a.ui.keyCode.PAGE_UP:h=b._trimAlignValue(g+(b._valueMax()-b._valueMin())/c);break;case a.ui.keyCode.PAGE_DOWN:h=b._trimAlignValue(g-(b._valueMax()-b._valueMin())/c);break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(g===b._valueMax())return;h=b._trimAlignValue(g+i);break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(g===b._valueMin())return;h=b._trimAlignValue(g-i)}b._slide(d,e,h)}).keyup(function(c){var d=a(this).data("index.ui-slider-handle");b._keySliding&&(b._keySliding=!1,b._stop(c,d),b._change(c,d),a(this).removeClass("ui-state-active"))}),this._refreshValue(),this._animateOff=!1},destroy:function(){return this.handles.remove(),this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"),this._mouseDestroy(),this},_mouseCapture:function(b){var c=this.options,d,e,f,g,h,i,j,k,l;return c.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),d={x:b.pageX,y:b.pageY},e=this._normValueFromMouse(d),f=this._valueMax()-this._valueMin()+1,h=this,this.handles.each(function(b){var c=Math.abs(e-h.values(b));f>c&&(f=c,g=a(this),i=b)}),c.range===!0&&this.values(1)===c.min&&(i+=1,g=a(this.handles[i])),j=this._start(b,i),j===!1?!1:(this._mouseSliding=!0,h._handleIndex=i,g.addClass("ui-state-active").focus(),k=g.offset(),l=!a(b.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:b.pageX-k.left-g.width()/2,top:b.pageY-k.top-g.height()/2-(parseInt(g.css("borderTopWidth"),10)||0)-(parseInt(g.css("borderBottomWidth"),10)||0)+(parseInt(g.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(b,i,e),this._animateOff=!0,!0))},_mouseStart:function(a){return!0},_mouseDrag:function(a){var b={x:a.pageX,y:a.pageY},c=this._normValueFromMouse(b);return this._slide(a,this._handleIndex,c),!1},_mouseStop:function(a){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(a,this._handleIndex),this._change(a,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b,c,d,e,f;return this.orientation==="horizontal"?(b=this.elementSize.width,c=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(b=this.elementSize.height,c=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),d=c/b,d>1&&(d=1),d<0&&(d=0),this.orientation==="vertical"&&(d=1-d),e=this._valueMax()-this._valueMin(),f=this._valueMin()+d*e,this._trimAlignValue(f)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};return this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("start",a,c)},_slide:function(a,b,c){var d,e,f;this.options.values&&this.options.values.length?(d=this.values(b?0:1),this.options.values.length===2&&this.options.range===!0&&(b===0&&c>d||b===1&&c<d)&&(c=d),c!==this.values(b)&&(e=this.values(),e[b]=c,f=this._trigger("slide",a,{handle:this.handles[b],value:c,values:e}),d=this.values(b?0:1),f!==!1&&this.values(b,c,!0))):c!==this.value()&&(f=this._trigger("slide",a,{handle:this.handles[b],value:c}),f!==!1&&this.value(c))},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("change",a,c)}},value:function(a){if(arguments.length){this.options.value=this._trimAlignValue(a),this._refreshValue(),this._change(null,0);return}return this._value()},values:function(b,c){var d,e,f;if(arguments.length>1){this.options.values[b]=this._trimAlignValue(c),this._refreshValue(),this._change(null,b);return}if(!arguments.length)return this._values();if(!a.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(b):this.value();d=this.options.values,e=arguments[0];for(f=0;f<d.length;f+=1)d[f]=this._trimAlignValue(e[f]),this._change(null,f);this._refreshValue()},_setOption:function(b,c){var d,e=0;a.isArray(this.options.values)&&(e=this.options.values.length),a.Widget.prototype._setOption.apply(this,arguments);switch(b){case"disabled":c?(this.handles.filter(".ui-state-focus").blur(),this.handles.removeClass("ui-state-hover"),this.handles.propAttr("disabled",!0),this.element.addClass("ui-disabled")):(this.handles.propAttr("disabled",!1),this.element.removeClass("ui-disabled"));break;case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue();break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":this._animateOff=!0,this._refreshValue();for(d=0;d<e;d+=1)this._change(null,d);this._animateOff=!1}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a),a},_values:function(a){var b,c,d;if(arguments.length)return b=this.options.values[a],b=this._trimAlignValue(b),b;c=this.options.values.slice();for(d=0;d<c.length;d+=1)c[d]=this._trimAlignValue(c[d]);return c},_trimAlignValue:function(a){if(a<=this._valueMin())return this._valueMin();if(a>=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b,d=a-c;return Math.abs(c)*2>=b&&(d+=c>0?b:-b),parseFloat(d.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var b=this.options.range,c=this.options,d=this,e=this._animateOff?!1:c.animate,f,g={},h,i,j,k;this.options.values&&this.options.values.length?this.handles.each(function(b,i){f=(d.values(b)-d._valueMin())/(d._valueMax()-d._valueMin())*100,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",a(this).stop(1,1)[e?"animate":"css"](g,c.animate),d.options.range===!0&&(d.orientation==="horizontal"?(b===0&&d.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({width:f-h+"%"},{queue:!1,duration:c.animate})):(b===0&&d.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({height:f-h+"%"},{queue:!1,duration:c.animate}))),h=f}):(i=this.value(),j=this._valueMin(),k=this._valueMax(),f=k!==j?(i-j)/(k-j)*100:0,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",this.handle.stop(1,1)[e?"animate":"css"](g,c.animate),b==="min"&&this.orientation==="horizontal"&&this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"},c.animate),b==="max"&&this.orientation==="horizontal"&&this.range[e?"animate":"css"]({width:100-f+"%"},{queue:!1,duration:c.animate}),b==="min"&&this.orientation==="vertical"&&this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},c.animate),b==="max"&&this.orientation==="vertical"&&this.range[e?"animate":"css"]({height:100-f+"%"},{queue:!1,duration:c.animate}))}}),a.extend(a.ui.slider,{version:"1.8.24"})})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.tabs.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){function e(){return++c}function f(){return++d}var c=0,d=0;a.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:!1,cookie:null,collapsible:!1,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading&#8230;</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(!0)},_setOption:function(a,b){if(a=="selected"){if(this.options.collapsible&&b==this.options.selected)return;this.select(b)}else this.options[a]=b,this._tabify()},_tabId:function(a){return a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+e()},_sanitizeSelector:function(a){return a.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+f());return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(a,b){return{tab:a,panel:b,index:this.anchors.index(a)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function m(b,c){b.css("display",""),!a.support.opacity&&c.opacity&&b[0].style.removeAttribute("filter")}var d=this,e=this.options,f=/^#.+/;this.list=this.element.find("ol,ul").eq(0),this.lis=a(" > li:has(a[href])",this.list),this.anchors=this.lis.map(function(){return a("a",this)[0]}),this.panels=a([]),this.anchors.each(function(b,c){var g=a(c).attr("href"),h=g.split("#")[0],i;h&&(h===location.toString().split("#")[0]||(i=a("base")[0])&&h===i.href)&&(g=c.hash,c.href=g);if(f.test(g))d.panels=d.panels.add(d.element.find(d._sanitizeSelector(g)));else if(g&&g!=="#"){a.data(c,"href.tabs",g),a.data(c,"load.tabs",g.replace(/#.*$/,""));var j=d._tabId(c);c.href="#"+j;var k=d.element.find("#"+j);k.length||(k=a(e.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(d.panels[b-1]||d.list),k.data("destroy.tabs",!0)),d.panels=d.panels.add(k)}else e.disabled.push(b)}),c?(this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"),this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.lis.addClass("ui-state-default ui-corner-top"),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom"),e.selected===b?(location.hash&&this.anchors.each(function(a,b){if(b.hash==location.hash)return e.selected=a,!1}),typeof e.selected!="number"&&e.cookie&&(e.selected=parseInt(d._cookie(),10)),typeof e.selected!="number"&&this.lis.filter(".ui-tabs-selected").length&&(e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))),e.selected=e.selected||(this.lis.length?0:-1)):e.selected===null&&(e.selected=-1),e.selected=e.selected>=0&&this.anchors[e.selected]||e.selected<0?e.selected:0,e.disabled=a.unique(e.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(a,b){return d.lis.index(a)}))).sort(),a.inArray(e.selected,e.disabled)!=-1&&e.disabled.splice(a.inArray(e.selected,e.disabled),1),this.panels.addClass("ui-tabs-hide"),this.lis.removeClass("ui-tabs-selected ui-state-active"),e.selected>=0&&this.anchors.length&&(d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash)).removeClass("ui-tabs-hide"),this.lis.eq(e.selected).addClass("ui-tabs-selected ui-state-active"),d.element.queue("tabs",function(){d._trigger("show",null,d._ui(d.anchors[e.selected],d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash))[0]))}),this.load(e.selected)),a(window).bind("unload",function(){d.lis.add(d.anchors).unbind(".tabs"),d.lis=d.anchors=d.panels=null})):e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")),this.element[e.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible"),e.cookie&&this._cookie(e.selected,e.cookie);for(var g=0,h;h=this.lis[g];g++)a(h)[a.inArray(g,e.disabled)!=-1&&!a(h).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");e.cache===!1&&this.anchors.removeData("cache.tabs"),this.lis.add(this.anchors).unbind(".tabs");if(e.event!=="mouseover"){var i=function(a,b){b.is(":not(.ui-state-disabled)")&&b.addClass("ui-state-"+a)},j=function(a,b){b.removeClass("ui-state-"+a)};this.lis.bind("mouseover.tabs",function(){i("hover",a(this))}),this.lis.bind("mouseout.tabs",function(){j("hover",a(this))}),this.anchors.bind("focus.tabs",function(){i("focus",a(this).closest("li"))}),this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var k,l;e.fx&&(a.isArray(e.fx)?(k=e.fx[0],l=e.fx[1]):k=l=e.fx);var n=l?function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.hide().removeClass("ui-tabs-hide").animate(l,l.duration||"normal",function(){m(c,l),d._trigger("show",null,d._ui(b,c[0]))})}:function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.removeClass("ui-tabs-hide"),d._trigger("show",null,d._ui(b,c[0]))},o=k?function(a,b){b.animate(k,k.duration||"normal",function(){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),m(b,k),d.element.dequeue("tabs")})}:function(a,b,c){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),d.element.dequeue("tabs")};this.anchors.bind(e.event+".tabs",function(){var b=this,c=a(b).closest("li"),f=d.panels.filter(":not(.ui-tabs-hide)"),g=d.element.find(d._sanitizeSelector(b.hash));if(c.hasClass("ui-tabs-selected")&&!e.collapsible||c.hasClass("ui-state-disabled")||c.hasClass("ui-state-processing")||d.panels.filter(":animated").length||d._trigger("select",null,d._ui(this,g[0]))===!1)return this.blur(),!1;e.selected=d.anchors.index(this),d.abort();if(e.collapsible){if(c.hasClass("ui-tabs-selected"))return e.selected=-1,e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){o(b,f)}).dequeue("tabs"),this.blur(),!1;if(!f.length)return e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this)),this.blur(),!1}e.cookie&&d._cookie(e.selected,e.cookie);if(g.length)f.length&&d.element.queue("tabs",function(){o(b,f)}),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this));else throw"jQuery UI Tabs: Mismatching fragment identifier.";a.browser.msie&&this.blur()}),this.anchors.bind("click.tabs",function(){return!1})},_getIndex:function(a){return typeof a=="string"&&(a=this.anchors.index(this.anchors.filter("[href$='"+a+"']"))),a},destroy:function(){var b=this.options;return this.abort(),this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs"),this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.anchors.each(function(){var b=a.data(this,"href.tabs");b&&(this.href=b);var c=a(this).unbind(".tabs");a.each(["href","load","cache"],function(a,b){c.removeData(b+".tabs")})}),this.lis.unbind(".tabs").add(this.panels).each(function(){a.data(this,"destroy.tabs")?a(this).remove():a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}),b.cookie&&this._cookie(null,b.cookie),this},add:function(c,d,e){e===b&&(e=this.anchors.length);var f=this,g=this.options,h=a(g.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,d)),i=c.indexOf("#")?this._tabId(a("a",h)[0]):c.replace("#","");h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",!0);var j=f.element.find("#"+i);return j.length||(j=a(g.panelTemplate).attr("id",i).data("destroy.tabs",!0)),j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"),e>=this.lis.length?(h.appendTo(this.list),j.appendTo(this.list[0].parentNode)):(h.insertBefore(this.lis[e]),j.insertBefore(this.panels[e])),g.disabled=a.map(g.disabled,function(a,b){return a>=e?++a:a}),this._tabify(),this.anchors.length==1&&(g.selected=0,h.addClass("ui-tabs-selected ui-state-active"),j.removeClass("ui-tabs-hide"),this.element.queue("tabs",function(){f._trigger("show",null,f._ui(f.anchors[0],f.panels[0]))}),this.load(0)),this._trigger("add",null,this._ui(this.anchors[e],this.panels[e])),this},remove:function(b){b=this._getIndex(b);var c=this.options,d=this.lis.eq(b).remove(),e=this.panels.eq(b).remove();return d.hasClass("ui-tabs-selected")&&this.anchors.length>1&&this.select(b+(b+1<this.anchors.length?1:-1)),c.disabled=a.map(a.grep(c.disabled,function(a,c){return a!=b}),function(a,c){return a>=b?--a:a}),this._tabify(),this._trigger("remove",null,this._ui(d.find("a")[0],e[0])),this},enable:function(b){b=this._getIndex(b);var c=this.options;if(a.inArray(b,c.disabled)==-1)return;return this.lis.eq(b).removeClass("ui-state-disabled"),c.disabled=a.grep(c.disabled,function(a,c){return a!=b}),this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b])),this},disable:function(a){a=this._getIndex(a);var b=this,c=this.options;return a!=c.selected&&(this.lis.eq(a).addClass("ui-state-disabled"),c.disabled.push(a),c.disabled.sort(),this._trigger("disable",null,this._ui(this.anchors[a],this.panels[a]))),this},select:function(a){a=this._getIndex(a);if(a==-1)if(this.options.collapsible&&this.options.selected!=-1)a=this.options.selected;else return this;return this.anchors.eq(a).trigger(this.options.event+".tabs"),this},load:function(b){b=this._getIndex(b);var c=this,d=this.options,e=this.anchors.eq(b)[0],f=a.data(e,"load.tabs");this.abort();if(!f||this.element.queue("tabs").length!==0&&a.data(e,"cache.tabs")){this.element.dequeue("tabs");return}this.lis.eq(b).addClass("ui-state-processing");if(d.spinner){var g=a("span",e);g.data("label.tabs",g.html()).html(d.spinner)}return this.xhr=a.ajax(a.extend({},d.ajaxOptions,{url:f,success:function(f,g){c.element.find(c._sanitizeSelector(e.hash)).html(f),c._cleanup(),d.cache&&a.data(e,"cache.tabs",!0),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.success(f,g)}catch(h){}},error:function(a,f,g){c._cleanup(),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.error(a,f,b,e)}catch(g){}}})),c.element.dequeue("tabs"),this},abort:function(){return this.element.queue([]),this.panels.stop(!1,!0),this.element.queue("tabs",this.element.queue("tabs").splice(-2,2)),this.xhr&&(this.xhr.abort(),delete this.xhr),this._cleanup(),this},url:function(a,b){return this.anchors.eq(a).removeData("cache.tabs").data("load.tabs",b),this},length:function(){return this.anchors.length}}),a.extend(a.ui.tabs,{version:"1.8.24"}),a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(a,b){var c=this,d=this.options,e=c._rotate||(c._rotate=function(b){clearTimeout(c.rotation),c.rotation=setTimeout(function(){var a=d.selected;c.select(++a<c.anchors.length?a:0)},a),b&&b.stopPropagation()}),f=c._unrotate||(c._unrotate=b?function(a){e()}:function(a){a.clientX&&c.rotate(null)});return a?(this.element.bind("tabsshow",e),this.anchors.bind(d.event+".tabs",f),e()):(clearTimeout(c.rotation),this.element.unbind("tabsshow",e),this.anchors.unbind(d.event+".tabs",f),delete this._rotate,delete this._unrotate),this}})})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.datepicker.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function($,undefined){function Datepicker(){this.debug=!1,this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},$.extend(this._defaults,this.regional[""]),this.dpDiv=bindHover($('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}function bindHover(a){var b="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return a.bind("mouseout",function(a){var c=$(a.target).closest(b);if(!c.length)return;c.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(c){var d=$(c.target).closest(b);if($.datepicker._isDisabledDatepicker(instActive.inline?a.parent()[0]:instActive.input[0])||!d.length)return;d.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),d.addClass("ui-state-hover"),d.hasClass("ui-datepicker-prev")&&d.addClass("ui-datepicker-prev-hover"),d.hasClass("ui-datepicker-next")&&d.addClass("ui-datepicker-next-hover")})}function extendRemove(a,b){$.extend(a,b);for(var c in b)if(b[c]==null||b[c]==undefined)a[c]=b[c];return a}function isArray(a){return a&&($.browser.safari&&typeof a=="object"&&a.length||a.constructor&&a.constructor.toString().match(/\Array\(\)/))}$.extend($.ui,{datepicker:{version:"1.8.24"}});var PROP_NAME="datepicker",dpuuid=(new Date).getTime(),instActive;$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){return extendRemove(this._defaults,a||{}),this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase(),inline=nodeName=="div"||nodeName=="span";target.id||(this.uuid+=1,target.id="dp"+this.uuid);var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{}),nodeName=="input"?this._connectDatepicker(target,inst):inline&&this._inlineDatepicker(target,inst)},_newInst:function(a,b){var c=a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1");return{id:c,input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:b?bindHover($('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')):this.dpDiv}},_connectDatepicker:function(a,b){var c=$(a);b.append=$([]),b.trigger=$([]);if(c.hasClass(this.markerClassName))return;this._attachments(c,b),c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),this._autoSize(b),$.data(a,PROP_NAME,b),b.settings.disabled&&this._disableDatepicker(a)},_attachments:function(a,b){var c=this._get(b,"appendText"),d=this._get(b,"isRTL");b.append&&b.append.remove(),c&&(b.append=$('<span class="'+this._appendClass+'">'+c+"</span>"),a[d?"before":"after"](b.append)),a.unbind("focus",this._showDatepicker),b.trigger&&b.trigger.remove();var e=this._get(b,"showOn");(e=="focus"||e=="both")&&a.focus(this._showDatepicker);if(e=="button"||e=="both"){var f=this._get(b,"buttonText"),g=this._get(b,"buttonImage");b.trigger=$(this._get(b,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:g,alt:f,title:f}):$('<button type="button"></button>').addClass(this._triggerClass).html(g==""?f:$("<img/>").attr({src:g,alt:f,title:f}))),a[d?"before":"after"](b.trigger),b.trigger.click(function(){return $.datepicker._datepickerShowing&&$.datepicker._lastInput==a[0]?$.datepicker._hideDatepicker():$.datepicker._datepickerShowing&&$.datepicker._lastInput!=a[0]?($.datepicker._hideDatepicker(),$.datepicker._showDatepicker(a[0])):$.datepicker._showDatepicker(a[0]),!1})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var d=function(a){var b=0,c=0;for(var d=0;d<a.length;d++)a[d].length>b&&(b=a[d].length,c=d);return c};b.setMonth(d(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort"))),b.setDate(d(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=$(a);if(c.hasClass(this.markerClassName))return;c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),$.data(a,PROP_NAME,b),this._setDate(b,this._getDefaultDate(b),!0),this._updateDatepicker(b),this._updateAlternate(b),b.settings.disabled&&this._disableDatepicker(a),b.dpDiv.css("display","block")},_dialogDatepicker:function(a,b,c,d,e){var f=this._dialogInst;if(!f){this.uuid+=1;var g="dp"+this.uuid;this._dialogInput=$('<input type="text" id="'+g+'" style="position: absolute; top: -100px; width: 0px;"/>'),this._dialogInput.keydown(this._doKeyDown),$("body").append(this._dialogInput),f=this._dialogInst=this._newInst(this._dialogInput,!1),f.settings={},$.data(this._dialogInput[0],PROP_NAME,f)}extendRemove(f.settings,d||{}),b=b&&b.constructor==Date?this._formatDate(f,b):b,this._dialogInput.val(b),this._pos=e?e.length?e:[e.pageX,e.pageY]:null;if(!this._pos){var h=document.documentElement.clientWidth,i=document.documentElement.clientHeight,j=document.documentElement.scrollLeft||document.body.scrollLeft,k=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[h/2-100+j,i/2-150+k]}return this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),f.settings.onSelect=c,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),$.blockUI&&$.blockUI(this.dpDiv),$.data(this._dialogInput[0],PROP_NAME,f),this},_destroyDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();$.removeData(a,PROP_NAME),d=="input"?(c.append.remove(),c.trigger.remove(),b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):(d=="div"||d=="span")&&b.removeClass(this.markerClassName).empty()},_enableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!1,c.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().removeClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b})},_disableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!0,c.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().addClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b}),this._disabledInputs[this._disabledInputs.length]=a},_isDisabledDatepicker:function(a){if(!a)return!1;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return!0;return!1},_getInst:function(a){try{return $.data(a,PROP_NAME)}catch(b){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(a,b,c){var d=this._getInst(a);if(arguments.length==2&&typeof b=="string")return b=="defaults"?$.extend({},$.datepicker._defaults):d?b=="all"?$.extend({},d.settings):this._get(d,b):null;var e=b||{};typeof b=="string"&&(e={},e[b]=c);if(d){this._curInst==d&&this._hideDatepicker();var f=this._getDateDatepicker(a,!0),g=this._getMinMaxDate(d,"min"),h=this._getMinMaxDate(d,"max");extendRemove(d.settings,e),g!==null&&e.dateFormat!==undefined&&e.minDate===undefined&&(d.settings.minDate=this._formatDate(d,g)),h!==null&&e.dateFormat!==undefined&&e.maxDate===undefined&&(d.settings.maxDate=this._formatDate(d,h)),this._attachments($(a),d),this._autoSize(d),this._setDate(d,f),this._updateAlternate(d),this._updateDatepicker(d)}},_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){var b=this._getInst(a);b&&this._updateDatepicker(b)},_setDateDatepicker:function(a,b){var c=this._getInst(a);c&&(this._setDate(c,b),this._updateDatepicker(c),this._updateAlternate(c))},_getDateDatepicker:function(a,b){var c=this._getInst(a);return c&&!c.inline&&this._setDateFromField(c,b),c?this._getDate(c):null},_doKeyDown:function(a){var b=$.datepicker._getInst(a.target),c=!0,d=b.dpDiv.is(".ui-datepicker-rtl");b._keyEvent=!0;if($.datepicker._datepickerShowing)switch(a.keyCode){case 9:$.datepicker._hideDatepicker(),c=!1;break;case 13:var e=$("td."+$.datepicker._dayOverClass+":not(."+$.datepicker._currentClass+")",b.dpDiv);e[0]&&$.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,e[0]);var f=$.datepicker._get(b,"onSelect");if(f){var g=$.datepicker._formatDate(b);f.apply(b.input?b.input[0]:null,[g,b])}else $.datepicker._hideDatepicker();return!1;case 27:$.datepicker._hideDatepicker();break;case 33:$.datepicker._adjustDate(a.target,a.ctrlKey?-$.datepicker._get(b,"stepBigMonths"):-$.datepicker._get(b,"stepMonths"),"M");break;case 34:$.datepicker._adjustDate(a.target,a.ctrlKey?+$.datepicker._get(b,"stepBigMonths"):+$.datepicker._get(b,"stepMonths"),"M");break;case 35:(a.ctrlKey||a.metaKey)&&$.datepicker._clearDate(a.target),c=a.ctrlKey||a.metaKey;break;case 36:(a.ctrlKey||a.metaKey)&&$.datepicker._gotoToday(a.target),c=a.ctrlKey||a.metaKey;break;case 37:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,d?1:-1,"D"),c=a.ctrlKey||a.metaKey,a.originalEvent.altKey&&$.datepicker._adjustDate(a.target,a.ctrlKey?-$.datepicker._get(b,"stepBigMonths"):-$.datepicker._get(b,"stepMonths"),"M");break;case 38:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,-7,"D"),c=a.ctrlKey||a.metaKey;break;case 39:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,d?-1:1,"D"),c=a.ctrlKey||a.metaKey,a.originalEvent.altKey&&$.datepicker._adjustDate(a.target,a.ctrlKey?+$.datepicker._get(b,"stepBigMonths"):+$.datepicker._get(b,"stepMonths"),"M");break;case 40:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,7,"D"),c=a.ctrlKey||a.metaKey;break;default:c=!1}else a.keyCode==36&&a.ctrlKey?$.datepicker._showDatepicker(this):c=!1;c&&(a.preventDefault(),a.stopPropagation())},_doKeyPress:function(a){var b=$.datepicker._getInst(a.target);if($.datepicker._get(b,"constrainInput")){var c=$.datepicker._possibleChars($.datepicker._get(b,"dateFormat")),d=String.fromCharCode(a.charCode==undefined?a.keyCode:a.charCode);return a.ctrlKey||a.metaKey||d<" "||!c||c.indexOf(d)>-1}},_doKeyUp:function(a){var b=$.datepicker._getInst(a.target);if(b.input.val()!=b.lastVal)try{var c=$.datepicker.parseDate($.datepicker._get(b,"dateFormat"),b.input?b.input.val():null,$.datepicker._getFormatConfig(b));c&&($.datepicker._setDateFromField(b),$.datepicker._updateAlternate(b),$.datepicker._updateDatepicker(b))}catch(d){$.datepicker.log(d)}return!0},_showDatepicker:function(a){a=a.target||a,a.nodeName.toLowerCase()!="input"&&(a=$("input",a.parentNode)[0]);if($.datepicker._isDisabledDatepicker(a)||$.datepicker._lastInput==a)return;var b=$.datepicker._getInst(a);$.datepicker._curInst&&$.datepicker._curInst!=b&&($.datepicker._curInst.dpDiv.stop(!0,!0),b&&$.datepicker._datepickerShowing&&$.datepicker._hideDatepicker($.datepicker._curInst.input[0]));var c=$.datepicker._get(b,"beforeShow"),d=c?c.apply(a,[a,b]):{};if(d===!1)return;extendRemove(b.settings,d),b.lastVal=null,$.datepicker._lastInput=a,$.datepicker._setDateFromField(b),$.datepicker._inDialog&&(a.value=""),$.datepicker._pos||($.datepicker._pos=$.datepicker._findPos(a),$.datepicker._pos[1]+=a.offsetHeight);var e=!1;$(a).parents().each(function(){return e|=$(this).css("position")=="fixed",!e}),e&&$.browser.opera&&($.datepicker._pos[0]-=document.documentElement.scrollLeft,$.datepicker._pos[1]-=document.documentElement.scrollTop);var f={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null,b.dpDiv.empty(),b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),$.datepicker._updateDatepicker(b),f=$.datepicker._checkOffset(b,f,e),b.dpDiv.css({position:$.datepicker._inDialog&&$.blockUI?"static":e?"fixed":"absolute",display:"none",left:f.left+"px",top:f.top+"px"});if(!b.inline){var g=$.datepicker._get(b,"showAnim"),h=$.datepicker._get(b,"duration"),i=function(){var a=b.dpDiv.find("iframe.ui-datepicker-cover");if(!!a.length){var c=$.datepicker._getBorders(b.dpDiv);a.css({left:-c[0],top:-c[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex($(a).zIndex()+1),$.datepicker._datepickerShowing=!0,$.effects&&$.effects[g]?b.dpDiv.show(g,$.datepicker._get(b,"showOptions"),h,i):b.dpDiv[g||"show"](g?h:null,i),(!g||!h)&&i(),b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus(),$.datepicker._curInst=b}},_updateDatepicker:function(a){var b=this;b.maxRows=4;var c=$.datepicker._getBorders(a.dpDiv);instActive=a,a.dpDiv.empty().append(this._generateHTML(a)),this._attachHandlers(a);var d=a.dpDiv.find("iframe.ui-datepicker-cover");!d.length||d.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}),a.dpDiv.find("."+this._dayOverClass+" a").mouseover();var e=this._getNumberOfMonths(a),f=e[1],g=17;a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),f>1&&a.dpDiv.addClass("ui-datepicker-multi-"+f).css("width",g*f+"em"),a.dpDiv[(e[0]!=1||e[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi"),a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),a==$.datepicker._curInst&&$.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var h=a.yearshtml;setTimeout(function(){h===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml),h=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(a){return{thin:1,medium:2,thick:3}[a]||a};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var d=a.dpDiv.outerWidth(),e=a.dpDiv.outerHeight(),f=a.input?a.input.outerWidth():0,g=a.input?a.input.outerHeight():0,h=document.documentElement.clientWidth+(c?0:$(document).scrollLeft()),i=document.documentElement.clientHeight+(c?0:$(document).scrollTop());return b.left-=this._get(a,"isRTL")?d-f:0,b.left-=c&&b.left==a.input.offset().left?$(document).scrollLeft():0,b.top-=c&&b.top==a.input.offset().top+g?$(document).scrollTop():0,b.left-=Math.min(b.left,b.left+d>h&&h>d?Math.abs(b.left+d-h):0),b.top-=Math.min(b.top,b.top+e>i&&i>e?Math.abs(e+g):0),b},_findPos:function(a){var b=this._getInst(a),c=this._get(b,"isRTL");while(a&&(a.type=="hidden"||a.nodeType!=1||$.expr.filters.hidden(a)))a=a[c?"previousSibling":"nextSibling"];var d=$(a).offset();return[d.left,d.top]},_hideDatepicker:function(a){var b=this._curInst;if(!b||a&&b!=$.data(a,PROP_NAME))return;if(this._datepickerShowing){var c=this._get(b,"showAnim"),d=this._get(b,"duration"),e=function(){$.datepicker._tidyDialog(b)};$.effects&&$.effects[c]?b.dpDiv.hide(c,$.datepicker._get(b,"showOptions"),d,e):b.dpDiv[c=="slideDown"?"slideUp":c=="fadeIn"?"fadeOut":"hide"](c?d:null,e),c||e(),this._datepickerShowing=!1;var f=this._get(b,"onClose");f&&f.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),$.blockUI&&($.unblockUI(),$("body").append(this.dpDiv))),this._inDialog=!1}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(!$.datepicker._curInst)return;var b=$(a.target),c=$.datepicker._getInst(b[0]);(b[0].id!=$.datepicker._mainDivId&&b.parents("#"+$.datepicker._mainDivId).length==0&&!b.hasClass($.datepicker.markerClassName)&&!b.closest("."+$.datepicker._triggerClass).length&&$.datepicker._datepickerShowing&&(!$.datepicker._inDialog||!$.blockUI)||b.hasClass($.datepicker.markerClassName)&&$.datepicker._curInst!=c)&&$.datepicker._hideDatepicker()},_adjustDate:function(a,b,c){var d=$(a),e=this._getInst(d[0]);if(this._isDisabledDatepicker(d[0]))return;this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c),this._updateDatepicker(e)},_gotoToday:function(a){var b=$(a),c=this._getInst(b[0]);if(this._get(c,"gotoCurrent")&&c.currentDay)c.selectedDay=c.currentDay,c.drawMonth=c.selectedMonth=c.currentMonth,c.drawYear=c.selectedYear=c.currentYear;else{var d=new Date;c.selectedDay=d.getDate(),c.drawMonth=c.selectedMonth=d.getMonth(),c.drawYear=c.selectedYear=d.getFullYear()}this._notifyChange(c),this._adjustDate(b)},_selectMonthYear:function(a,b,c){var d=$(a),e=this._getInst(d[0]);e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10),this._notifyChange(e),this._adjustDate(d)},_selectDay:function(a,b,c,d){var e=$(a);if($(d).hasClass(this._unselectableClass)||this._isDisabledDatepicker(e[0]))return;var f=this._getInst(e[0]);f.selectedDay=f.currentDay=$("a",d).html(),f.selectedMonth=f.currentMonth=b,f.selectedYear=f.currentYear=c,this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))},_clearDate:function(a){var b=$(a),c=this._getInst(b[0]);this._selectDate(b,"")},_selectDate:function(a,b){var c=$(a),d=this._getInst(c[0]);b=b!=null?b:this._formatDate(d),d.input&&d.input.val(b),this._updateAlternate(d);var e=this._get(d,"onSelect");e?e.apply(d.input?d.input[0]:null,[b,d]):d.input&&d.input.trigger("change"),d.inline?this._updateDatepicker(d):(this._hideDatepicker(),this._lastInput=d.input[0],typeof d.input[0]!="object"&&d.input.focus(),this._lastInput=null)},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),d=this._getDate(a),e=this.formatDate(c,d,this._getFormatConfig(a));$(b).each(function(){$(this).val(e)})}},noWeekends:function(a){var b=a.getDay();return[b>0&&b<6,""]},iso8601Week:function(a){var b=new Date(a.getTime());b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var d=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;d=typeof d!="string"?d:(new Date).getFullYear()%100+parseInt(d,10);var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,g=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,h=(c?c.monthNames:null)||this._defaults.monthNames,i=-1,j=-1,k=-1,l=-1,m=!1,n=function(b){var c=s+1<a.length&&a.charAt(s+1)==b;return c&&s++,c},o=function(a){var c=n(a),d=a=="@"?14:a=="!"?20:a=="y"&&c?4:a=="o"?3:2,e=new RegExp("^\\d{1,"+d+"}"),f=b.substring(r).match(e);if(!f)throw"Missing number at position "+r;return r+=f[0].length,parseInt(f[0],10)},p=function(a,c,d){var e=$.map(n(a)?d:c,function(a,b){return[[b,a]]}).sort(function(a,b){return-(a[1].length-b[1].length)}),f=-1;$.each(e,function(a,c){var d=c[1];if(b.substr(r,d.length).toLowerCase()==d.toLowerCase())return f=c[0],r+=d.length,!1});if(f!=-1)return f+1;throw"Unknown name at position "+r},q=function(){if(b.charAt(r)!=a.charAt(s))throw"Unexpected literal at position "+r;r++},r=0;for(var s=0;s<a.length;s++)if(m)a.charAt(s)=="'"&&!n("'")?m=!1:q();else switch(a.charAt(s)){case"d":k=o("d");break;case"D":p("D",e,f);break;case"o":l=o("o");break;case"m":j=o("m");break;case"M":j=p("M",g,h);break;case"y":i=o("y");break;case"@":var t=new Date(o("@"));i=t.getFullYear(),j=t.getMonth()+1,k=t.getDate();break;case"!":var t=new Date((o("!")-this._ticksTo1970)/1e4);i=t.getFullYear(),j=t.getMonth()+1,k=t.getDate();break;case"'":n("'")?q():m=!0;break;default:q()}if(r<b.length)throw"Extra/unparsed characters found in date: "+b.substring(r);i==-1?i=(new Date).getFullYear():i<100&&(i+=(new Date).getFullYear()-(new Date).getFullYear()%100+(i<=d?0:-100));if(l>-1){j=1,k=l;do{var u=this._getDaysInMonth(i,j-1);if(k<=u)break;j++,k-=u}while(!0)}var t=this._daylightSavingAdjust(new Date(i,j-1,k));if(t.getFullYear()!=i||t.getMonth()+1!=j||t.getDate()!=k)throw"Invalid date";return t},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1e7,formatDate:function(a,b,c){if(!b)return"";var d=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,e=(c?c.dayNames:null)||this._defaults.dayNames,f=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,h=function(b){var c=m+1<a.length&&a.charAt(m+1)==b;return c&&m++,c},i=function(a,b,c){var d=""+b;if(h(a))while(d.length<c)d="0"+d;return d},j=function(a,b,c,d){return h(a)?d[b]:c[b]},k="",l=!1;if(b)for(var m=0;m<a.length;m++)if(l)a.charAt(m)=="'"&&!h("'")?l=!1:k+=a.charAt(m);else switch(a.charAt(m)){case"d":k+=i("d",b.getDate(),2);break;case"D":k+=j("D",b.getDay(),d,e);break;case"o":k+=i("o",Math.round(((new Date(b.getFullYear(),b.getMonth(),b.getDate())).getTime()-(new Date(b.getFullYear(),0,0)).getTime())/864e5),3);break;case"m":k+=i("m",b.getMonth()+1,2);break;case"M":k+=j("M",b.getMonth(),f,g);break;case"y":k+=h("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case"@":k+=b.getTime();break;case"!":k+=b.getTime()*1e4+this._ticksTo1970;break;case"'":h("'")?k+="'":l=!0;break;default:k+=a.charAt(m)}return k},_possibleChars:function(a){var b="",c=!1,d=function(b){var c=e+1<a.length&&a.charAt(e+1)==b;return c&&e++,c};for(var e=0;e<a.length;e++)if(c)a.charAt(e)=="'"&&!d("'")?c=!1:b+=a.charAt(e);else switch(a.charAt(e)){case"d":case"m":case"y":case"@":b+="0123456789";break;case"D":case"M":return null;case"'":d("'")?b+="'":c=!0;break;default:b+=a.charAt(e)}return b},_get:function(a,b){return a.settings[b]!==undefined?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()==a.lastVal)return;var c=this._get(a,"dateFormat"),d=a.lastVal=a.input?a.input.val():null,e,f;e=f=this._getDefaultDate(a);var g=this._getFormatConfig(a);try{e=this.parseDate(c,d,g)||f}catch(h){this.log(h),d=b?"":d}a.selectedDay=e.getDate(),a.drawMonth=a.selectedMonth=e.getMonth(),a.drawYear=a.selectedYear=e.getFullYear(),a.currentDay=d?e.getDate():0,a.currentMonth=d?e.getMonth():0,a.currentYear=d?e.getFullYear():0,this._adjustInstDate(a)},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var d=function(a){var b=new Date;return b.setDate(b.getDate()+a),b},e=function(b){try{return $.datepicker.parseDate($.datepicker._get(a,"dateFormat"),b,$.datepicker._getFormatConfig(a))}catch(c){}var d=(b.toLowerCase().match(/^c/)?$.datepicker._getDate(a):null)||new Date,e=d.getFullYear(),f=d.getMonth(),g=d.getDate(),h=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,i=h.exec(b);while(i){switch(i[2]||"d"){case"d":case"D":g+=parseInt(i[1],10);break;case"w":case"W":g+=parseInt(i[1],10)*7;break;case"m":case"M":f+=parseInt(i[1],10),g=Math.min(g,$.datepicker._getDaysInMonth(e,f));break;case"y":case"Y":e+=parseInt(i[1],10),g=Math.min(g,$.datepicker._getDaysInMonth(e,f))}i=h.exec(b)}return new Date(e,f,g)},f=b==null||b===""?c:typeof b=="string"?e(b):typeof b=="number"?isNaN(b)?c:d(b):new Date(b.getTime());return f=f&&f.toString()=="Invalid Date"?c:f,f&&(f.setHours(0),f.setMinutes(0),f.setSeconds(0),f.setMilliseconds(0)),this._daylightSavingAdjust(f)},_daylightSavingAdjust:function(a){return a?(a.setHours(a.getHours()>12?a.getHours()+2:0),a):null},_setDate:function(a,b,c){var d=!b,e=a.selectedMonth,f=a.selectedYear,g=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=g.getDate(),a.drawMonth=a.selectedMonth=a.currentMonth=g.getMonth(),a.drawYear=a.selectedYear=a.currentYear=g.getFullYear(),(e!=a.selectedMonth||f!=a.selectedYear)&&!c&&this._notifyChange(a),this._adjustInstDate(a),a.input&&a.input.val(d?"":this._formatDate(a))},_getDate:function(a){var b=!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return b},_attachHandlers:function(a){var b=this._get(a,"stepMonths"),c="#"+a.id.replace(/\\\\/g,"\\");a.dpDiv.find("[data-handler]").map(function(){var a={prev:function(){window["DP_jQuery_"+dpuuid].datepicker._adjustDate(c,-b,"M")},next:function(){window["DP_jQuery_"+dpuuid].datepicker._adjustDate(c,+b,"M")},hide:function(){window["DP_jQuery_"+dpuuid].datepicker._hideDatepicker()},today:function(){window["DP_jQuery_"+dpuuid].datepicker._gotoToday(c)},selectDay:function(){return window["DP_jQuery_"+dpuuid].datepicker._selectDay(c,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return window["DP_jQuery_"+dpuuid].datepicker._selectMonthYear(c,this,"M"),!1},selectYear:function(){return window["DP_jQuery_"+dpuuid].datepicker._selectMonthYear(c,this,"Y"),!1}};$(this).bind(this.getAttribute("data-event"),a[this.getAttribute("data-handler")])})},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),d=this._get(a,"showButtonPanel"),e=this._get(a,"hideIfNoPrevNext"),f=this._get(a,"navigationAsDateFormat"),g=this._getNumberOfMonths(a),h=this._get(a,"showCurrentAtPos"),i=this._get(a,"stepMonths"),j=g[0]!=1||g[1]!=1,k=this._daylightSavingAdjust(a.currentDay?new Date(a.currentYear,a.currentMonth,a.currentDay):new Date(9999,9,9)),l=this._getMinMaxDate(a,"min"),m=this._getMinMaxDate(a,"max"),n=a.drawMonth-h,o=a.drawYear;n<0&&(n+=12,o--);if(m){var p=this._daylightSavingAdjust(new Date(m.getFullYear(),m.getMonth()-g[0]*g[1]+1,m.getDate()));p=l&&p<l?l:p;while(this._daylightSavingAdjust(new Date(o,n,1))>p)n--,n<0&&(n=11,o--)}a.drawMonth=n,a.drawYear=o;var q=this._get(a,"prevText");q=f?this.formatDate(q,this._daylightSavingAdjust(new Date(o,n-i,1)),this._getFormatConfig(a)):q;var r=this._canAdjustMonth(a,-1,o,n)?'<a class="ui-datepicker-prev ui-corner-all" data-handler="prev" data-event="click" title="'+q+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+q+"</span></a>":e?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+q+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+q+"</span></a>",s=this._get(a,"nextText");s=f?this.formatDate(s,this._daylightSavingAdjust(new Date(o,n+i,1)),this._getFormatConfig(a)):s;var t=this._canAdjustMonth(a,1,o,n)?'<a class="ui-datepicker-next ui-corner-all" data-handler="next" data-event="click" title="'+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>":e?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>",u=this._get(a,"currentText"),v=this._get(a,"gotoCurrent")&&a.currentDay?k:b;u=f?this.formatDate(u,v,this._getFormatConfig(a)):u;var w=a.inline?"":'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" data-handler="hide" data-event="click">'+this._get(a,"closeText")+"</button>",x=d?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?w:"")+(this._isInRange(a,v)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" data-handler="today" data-event="click">'+u+"</button>":"")+(c?"":w)+"</div>":"",y=parseInt(this._get(a,"firstDay"),10);y=isNaN(y)?0:y;var z=this._get(a,"showWeek"),A=this._get(a,"dayNames"),B=this._get(a,"dayNamesShort"),C=this._get(a,"dayNamesMin"),D=this._get(a,"monthNames"),E=this._get(a,"monthNamesShort"),F=this._get(a,"beforeShowDay"),G=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths"),I=this._get(a,"calculateWeek")||this.iso8601Week,J=this._getDefaultDate(a),K="";for(var L=0;L<g[0];L++){var M="";this.maxRows=4;for(var N=0;N<g[1];N++){var O=this._daylightSavingAdjust(new Date(o,n,a.selectedDay)),P=" ui-corner-all",Q="";if(j){Q+='<div class="ui-datepicker-group';if(g[1]>1)switch(N){case 0:Q+=" ui-datepicker-group-first",P=" ui-corner-"+(c?"right":"left");break;case g[1]-1:Q+=" ui-datepicker-group-last",P=" ui-corner-"+(c?"left":"right");break;default:Q+=" ui-datepicker-group-middle",P=""}Q+='">'}Q+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+P+'">'+(/all|left/.test(P)&&L==0?c?t:r:"")+(/all|right/.test(P)&&L==0?c?r:t:"")+this._generateMonthYearHeader(a,n,o,l,m,L>0||N>0,D,E)+'</div><table class="ui-datepicker-calendar"><thead>'+"<tr>";var R=z?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"";for(var S=0;S<7;S++){var T=(S+y)%7;R+="<th"+((S+y+6)%7>=5?' class="ui-datepicker-week-end"':"")+">"+'<span title="'+A[T]+'">'+C[T]+"</span></th>"}Q+=R+"</tr></thead><tbody>";var U=this._getDaysInMonth(o,n);o==a.selectedYear&&n==a.selectedMonth&&(a.selectedDay=Math.min(a.selectedDay,U));var V=(this._getFirstDayOfMonth(o,n)-y+7)%7,W=Math.ceil((V+U)/7),X=j?this.maxRows>W?this.maxRows:W:W;this.maxRows=X;var Y=this._daylightSavingAdjust(new Date(o,n,1-V));for(var Z=0;Z<X;Z++){Q+="<tr>";var _=z?'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(Y)+"</td>":"";for(var S=0;S<7;S++){var ba=F?F.apply(a.input?a.input[0]:null,[Y]):[!0,""],bb=Y.getMonth()!=n,bc=bb&&!H||!ba[0]||l&&Y<l||m&&Y>m;_+='<td class="'+((S+y+6)%7>=5?" ui-datepicker-week-end":"")+(bb?" ui-datepicker-other-month":"")+(Y.getTime()==O.getTime()&&n==a.selectedMonth&&a._keyEvent||J.getTime()==Y.getTime()&&J.getTime()==O.getTime()?" "+this._dayOverClass:"")+(bc?" "+this._unselectableClass+" ui-state-disabled":"")+(bb&&!G?"":" "+ba[1]+(Y.getTime()==k.getTime()?" "+this._currentClass:"")+(Y.getTime()==b.getTime()?" ui-datepicker-today":""))+'"'+((!bb||G)&&ba[2]?' title="'+ba[2]+'"':"")+(bc?"":' data-handler="selectDay" data-event="click" data-month="'+Y.getMonth()+'" data-year="'+Y.getFullYear()+'"')+">"+(bb&&!G?"&#xa0;":bc?'<span class="ui-state-default">'+Y.getDate()+"</span>":'<a class="ui-state-default'+(Y.getTime()==b.getTime()?" ui-state-highlight":"")+(Y.getTime()==k.getTime()?" ui-state-active":"")+(bb?" ui-priority-secondary":"")+'" href="#">'+Y.getDate()+"</a>")+"</td>",Y.setDate(Y.getDate()+1),Y=this._daylightSavingAdjust(Y)}Q+=_+"</tr>"}n++,n>11&&(n=0,o++),Q+="</tbody></table>"+(j?"</div>"+(g[0]>0&&N==g[1]-1?'<div class="ui-datepicker-row-break"></div>':""):""),M+=Q}K+=M}return K+=x+($.browser.msie&&parseInt($.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':""),a._keyEvent=!1,K},_generateMonthYearHeader:function(a,b,c,d,e,f,g,h){var i=this._get(a,"changeMonth"),j=this._get(a,"changeYear"),k=this._get(a,"showMonthAfterYear"),l='<div class="ui-datepicker-title">',m="";if(f||!i)m+='<span class="ui-datepicker-month">'+g[b]+"</span>";else{var n=d&&d.getFullYear()==c,o=e&&e.getFullYear()==c;m+='<select class="ui-datepicker-month" data-handler="selectMonth" data-event="change">';for(var p=0;p<12;p++)(!n||p>=d.getMonth())&&(!o||p<=e.getMonth())&&(m+='<option value="'+p+'"'+(p==b?' selected="selected"':"")+">"+h[p]+"</option>");m+="</select>"}k||(l+=m+(f||!i||!j?"&#xa0;":""));if(!a.yearshtml){a.yearshtml="";if(f||!j)l+='<span class="ui-datepicker-year">'+c+"</span>";else{var q=this._get(a,"yearRange").split(":"),r=(new Date).getFullYear(),s=function(a){var b=a.match(/c[+-].*/)?c+parseInt(a.substring(1),10):a.match(/[+-].*/)?r+parseInt(a,10):parseInt(a,10);return isNaN(b)?r:b},t=s(q[0]),u=Math.max(t,s(q[1]||""));t=d?Math.max(t,d.getFullYear()):t,u=e?Math.min(u,e.getFullYear()):u,a.yearshtml+='<select class="ui-datepicker-year" data-handler="selectYear" data-event="change">';for(;t<=u;t++)a.yearshtml+='<option value="'+t+'"'+(t==c?' selected="selected"':"")+">"+t+"</option>";a.yearshtml+="</select>",l+=a.yearshtml,a.yearshtml=null}}return l+=this._get(a,"yearSuffix"),k&&(l+=(f||!i||!j?"&#xa0;":"")+m),l+="</div>",l},_adjustInstDate:function(a,b,c){var d=a.drawYear+(c=="Y"?b:0),e=a.drawMonth+(c=="M"?b:0),f=Math.min(a.selectedDay,this._getDaysInMonth(d,e))+(c=="D"?b:0),g=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(d,e,f)));a.selectedDay=g.getDate(),a.drawMonth=a.selectedMonth=g.getMonth(),a.drawYear=a.selectedYear=g.getFullYear(),(c=="M"||c=="Y")&&this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max"),e=c&&b<c?c:b;return e=d&&e>d?d:e,e},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");b&&b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){var b=this._get(a,"numberOfMonths");return b==null?[1,1]:typeof b=="number"?[1,b]:b},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,d){var e=this._getNumberOfMonths(a),f=this._daylightSavingAdjust(new Date(c,d+(b<0?b:e[0]*e[1]),1));return b<0&&f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth())),this._isInRange(a,f)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!d||b.getTime()<=d.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");return b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10),{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,d){b||(a.currentDay=a.selectedDay,a.currentMonth=a.selectedMonth,a.currentYear=a.selectedYear);var e=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(d,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),e,this._getFormatConfig(a))}}),$.fn.datepicker=function(a){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv),$.datepicker.initialized=!0);var b=Array.prototype.slice.call(arguments,1);return typeof a!="string"||a!="isDisabled"&&a!="getDate"&&a!="widget"?a=="option"&&arguments.length==2&&typeof arguments[1]=="string"?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b)):this.each(function(){typeof a=="string"?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this].concat(b)):$.datepicker._attachDatepicker(this,a)}):$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.8.24",window["DP_jQuery_"+dpuuid]=$})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.progressbar.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()}),this.valueDiv=a("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove(),a.Widget.prototype.destroy.apply(this,arguments)},value:function(a){return a===b?this._value():(this._setOption("value",a),this)},_setOption:function(b,c){b==="value"&&(this.options.value=c,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),a.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;return typeof a!="number"&&(a=0),Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var a=this.value(),b=this._percentage();this.oldValue!==a&&(this.oldValue=a,this._trigger("change")),this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(b.toFixed(0)+"%"),this.element.attr("aria-valuenow",a)}}),a.extend(a.ui.progressbar,{version:"1.8.24"})})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.effects.core.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+jQuery.effects||function(a,b){function c(b){var c;return b&&b.constructor==Array&&b.length==3?b:(c=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(b))?[parseInt(c[1],10),parseInt(c[2],10),parseInt(c[3],10)]:(c=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(b))?[parseFloat(c[1])*2.55,parseFloat(c[2])*2.55,parseFloat(c[3])*2.55]:(c=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(b))?[parseInt(c[1],16),parseInt(c[2],16),parseInt(c[3],16)]:(c=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(b))?[parseInt(c[1]+c[1],16),parseInt(c[2]+c[2],16),parseInt(c[3]+c[3],16)]:(c=/rgba\(0, 0, 0, 0\)/.exec(b))?e.transparent:e[a.trim(b).toLowerCase()]}function d(b,d){var e;do{e=(a.curCSS||a.css)(b,d);if(e!=""&&e!="transparent"||a.nodeName(b,"body"))break;d="backgroundColor"}while(b=b.parentNode);return c(e)}function h(){var a=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,b={},c,d;if(a&&a.length&&a[0]&&a[a[0]]){var e=a.length;while(e--)c=a[e],typeof a[c]=="string"&&(d=c.replace(/\-(\w)/g,function(a,b){return b.toUpperCase()}),b[d]=a[c])}else for(c in a)typeof a[c]=="string"&&(b[c]=a[c]);return b}function i(b){var c,d;for(c in b)d=b[c],(d==null||a.isFunction(d)||c in g||/scrollbar/.test(c)||!/color/i.test(c)&&isNaN(parseFloat(d)))&&delete b[c];return b}function j(a,b){var c={_:0},d;for(d in b)a[d]!=b[d]&&(c[d]=b[d]);return c}function k(b,c,d,e){typeof b=="object"&&(e=c,d=null,c=b,b=c.effect),a.isFunction(c)&&(e=c,d=null,c={});if(typeof c=="number"||a.fx.speeds[c])e=d,d=c,c={};return a.isFunction(d)&&(e=d,d=null),c=c||{},d=d||c.duration,d=a.fx.off?0:typeof d=="number"?d:d in a.fx.speeds?a.fx.speeds[d]:a.fx.speeds._default,e=e||c.complete,[b,c,d,e]}function l(b){return!b||typeof b=="number"||a.fx.speeds[b]?!0:typeof b=="string"&&!a.effects[b]?!0:!1}a.effects={},a.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","borderColor","color","outlineColor"],function(b,e){a.fx.step[e]=function(a){a.colorInit||(a.start=d(a.elem,e),a.end=c(a.end),a.colorInit=!0),a.elem.style[e]="rgb("+Math.max(Math.min(parseInt(a.pos*(a.end[0]-a.start[0])+a.start[0],10),255),0)+","+Math.max(Math.min(parseInt(a.pos*(a.end[1]-a.start[1])+a.start[1],10),255),0)+","+Math.max(Math.min(parseInt(a.pos*(a.end[2]-a.start[2])+a.start[2],10),255),0)+")"}});var e={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},f=["add","remove","toggle"],g={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};a.effects.animateClass=function(b,c,d,e){return a.isFunction(d)&&(e=d,d=null),this.queue(function(){var g=a(this),k=g.attr("style")||" ",l=i(h.call(this)),m,n=g.attr("class")||"";a.each(f,function(a,c){b[c]&&g[c+"Class"](b[c])}),m=i(h.call(this)),g.attr("class",n),g.animate(j(l,m),{queue:!1,duration:c,easing:d,complete:function(){a.each(f,function(a,c){b[c]&&g[c+"Class"](b[c])}),typeof g.attr("style")=="object"?(g.attr("style").cssText="",g.attr("style").cssText=k):g.attr("style",k),e&&e.apply(this,arguments),a.dequeue(this)}})})},a.fn.extend({_addClass:a.fn.addClass,addClass:function(b,c,d,e){return c?a.effects.animateClass.apply(this,[{add:b},c,d,e]):this._addClass(b)},_removeClass:a.fn.removeClass,removeClass:function(b,c,d,e){return c?a.effects.animateClass.apply(this,[{remove:b},c,d,e]):this._removeClass(b)},_toggleClass:a.fn.toggleClass,toggleClass:function(c,d,e,f,g){return typeof d=="boolean"||d===b?e?a.effects.animateClass.apply(this,[d?{add:c}:{remove:c},e,f,g]):this._toggleClass(c,d):a.effects.animateClass.apply(this,[{toggle:c},d,e,f])},switchClass:function(b,c,d,e,f){return a.effects.animateClass.apply(this,[{add:c,remove:b},d,e,f])}}),a.extend(a.effects,{version:"1.8.24",save:function(a,b){for(var c=0;c<b.length;c++)b[c]!==null&&a.data("ec.storage."+b[c],a[0].style[b[c]])},restore:function(a,b){for(var c=0;c<b.length;c++)b[c]!==null&&a.css(b[c],a.data("ec.storage."+b[c]))},setMode:function(a,b){return b=="toggle"&&(b=a.is(":hidden")?"show":"hide"),b},getBaseline:function(a,b){var c,d;switch(a[0]){case"top":c=0;break;case"middle":c=.5;break;case"bottom":c=1;break;default:c=a[0]/b.height}switch(a[1]){case"left":d=0;break;case"center":d=.5;break;case"right":d=1;break;default:d=a[1]/b.width}return{x:d,y:c}},createWrapper:function(b){if(b.parent().is(".ui-effects-wrapper"))return b.parent();var c={width:b.outerWidth(!0),height:b.outerHeight(!0),"float":b.css("float")},d=a("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e=document.activeElement;try{e.id}catch(f){e=document.body}return b.wrap(d),(b[0]===e||a.contains(b[0],e))&&a(e).focus(),d=b.parent(),b.css("position")=="static"?(d.css({position:"relative"}),b.css({position:"relative"})):(a.extend(c,{position:b.css("position"),zIndex:b.css("z-index")}),a.each(["top","left","bottom","right"],function(a,d){c[d]=b.css(d),isNaN(parseInt(c[d],10))&&(c[d]="auto")}),b.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),d.css(c).show()},removeWrapper:function(b){var c,d=document.activeElement;return b.parent().is(".ui-effects-wrapper")?(c=b.parent().replaceWith(b),(b[0]===d||a.contains(b[0],d))&&a(d).focus(),c):b},setTransition:function(b,c,d,e){return e=e||{},a.each(c,function(a,c){var f=b.cssUnit(c);f[0]>0&&(e[c]=f[0]*d+f[1])}),e}}),a.fn.extend({effect:function(b,c,d,e){var f=k.apply(this,arguments),g={options:f[1],duration:f[2],callback:f[3]},h=g.options.mode,i=a.effects[b];return a.fx.off||!i?h?this[h](g.duration,g.callback):this.each(function(){g.callback&&g.callback.call(this)}):i.call(this,g)},_show:a.fn.show,show:function(a){if(l(a))return this._show.apply(this,arguments);var b=k.apply(this,arguments);return b[1].mode="show",this.effect.apply(this,b)},_hide:a.fn.hide,hide:function(a){if(l(a))return this._hide.apply(this,arguments);var b=k.apply(this,arguments);return b[1].mode="hide",this.effect.apply(this,b)},__toggle:a.fn.toggle,toggle:function(b){if(l(b)||typeof b=="boolean"||a.isFunction(b))return this.__toggle.apply(this,arguments);var c=k.apply(this,arguments);return c[1].mode="toggle",this.effect.apply(this,c)},cssUnit:function(b){var c=this.css(b),d=[];return a.each(["em","px","%","pt"],function(a,b){c.indexOf(b)>0&&(d=[parseFloat(c),b])}),d}});var m={};a.each(["Quad","Cubic","Quart","Quint","Expo"],function(a,b){m[b]=function(b){return Math.pow(b,a+2)}}),a.extend(m,{Sine:function(a){return 1-Math.cos(a*Math.PI/2)},Circ:function(a){return 1-Math.sqrt(1-a*a)},Elastic:function(a){return a===0||a===1?a:-Math.pow(2,8*(a-1))*Math.sin(((a-1)*80-7.5)*Math.PI/15)},Back:function(a){return a*a*(3*a-2)},Bounce:function(a){var b,c=4;while(a<((b=Math.pow(2,--c))-1)/11);return 1/Math.pow(4,3-c)-7.5625*Math.pow((b*3-2)/22-a,2)}}),a.each(m,function(b,c){a.easing["easeIn"+b]=c,a.easing["easeOut"+b]=function(a){return 1-c(1-a)},a.easing["easeInOut"+b]=function(a){return a<.5?c(a*2)/2:c(a*-2+2)/-2+1}})}(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.effects.blind.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.effects.blind=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"hide"),f=b.options.direction||"vertical";a.effects.save(c,d),c.show();var g=a.effects.createWrapper(c).css({overflow:"hidden"}),h=f=="vertical"?"height":"width",i=f=="vertical"?g.height():g.width();e=="show"&&g.css(h,0);var j={};j[h]=e=="show"?i:0,g.animate(j,b.duration,b.options.easing,function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.effects.bounce.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.effects.bounce=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"effect"),f=b.options.direction||"up",g=b.options.distance||20,h=b.options.times||5,i=b.duration||250;/show|hide/.test(e)&&d.push("opacity"),a.effects.save(c,d),c.show(),a.effects.createWrapper(c);var j=f=="up"||f=="down"?"top":"left",k=f=="up"||f=="left"?"pos":"neg",g=b.options.distance||(j=="top"?c.outerHeight(!0)/3:c.outerWidth(!0)/3);e=="show"&&c.css("opacity",0).css(j,k=="pos"?-g:g),e=="hide"&&(g=g/(h*2)),e!="hide"&&h--;if(e=="show"){var l={opacity:1};l[j]=(k=="pos"?"+=":"-=")+g,c.animate(l,i/2,b.options.easing),g=g/2,h--}for(var m=0;m<h;m++){var n={},p={};n[j]=(k=="pos"?"-=":"+=")+g,p[j]=(k=="pos"?"+=":"-=")+g,c.animate(n,i/2,b.options.easing).animate(p,i/2,b.options.easing),g=e=="hide"?g*2:g/2}if(e=="hide"){var l={opacity:0};l[j]=(k=="pos"?"-=":"+=")+g,c.animate(l,i/2,b.options.easing,function(){c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments)})}else{var n={},p={};n[j]=(k=="pos"?"-=":"+=")+g,p[j]=(k=="pos"?"+=":"-=")+g,c.animate(n,i/2,b.options.easing).animate(p,i/2,b.options.easing,function(){a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments)})}c.queue("fx",function(){c.dequeue()}),c.dequeue()})}})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.effects.clip.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.effects.clip=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right","height","width"],e=a.effects.setMode(c,b.options.mode||"hide"),f=b.options.direction||"vertical";a.effects.save(c,d),c.show();var g=a.effects.createWrapper(c).css({overflow:"hidden"}),h=c[0].tagName=="IMG"?g:c,i={size:f=="vertical"?"height":"width",position:f=="vertical"?"top":"left"},j=f=="vertical"?h.height():h.width();e=="show"&&(h.css(i.size,0),h.css(i.position,j/2));var k={};k[i.size]=e=="show"?j:0,k[i.position]=e=="show"?0:j/2,h.animate(k,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.effects.drop.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.effects.drop=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right","opacity"],e=a.effects.setMode(c,b.options.mode||"hide"),f=b.options.direction||"left";a.effects.save(c,d),c.show(),a.effects.createWrapper(c);var g=f=="up"||f=="down"?"top":"left",h=f=="up"||f=="left"?"pos":"neg",i=b.options.distance||(g=="top"?c.outerHeight(!0)/2:c.outerWidth(!0)/2);e=="show"&&c.css("opacity",0).css(g,h=="pos"?-i:i);var j={opacity:e=="show"?1:0};j[g]=(e=="show"?h=="pos"?"+=":"-=":h=="pos"?"-=":"+=")+i,c.animate(j,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.effects.explode.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.effects.explode=function(b){return this.queue(function(){var c=b.options.pieces?Math.round(Math.sqrt(b.options.pieces)):3,d=b.options.pieces?Math.round(Math.sqrt(b.options.pieces)):3;b.options.mode=b.options.mode=="toggle"?a(this).is(":visible")?"hide":"show":b.options.mode;var e=a(this).show().css("visibility","hidden"),f=e.offset();f.top-=parseInt(e.css("marginTop"),10)||0,f.left-=parseInt(e.css("marginLeft"),10)||0;var g=e.outerWidth(!0),h=e.outerHeight(!0);for(var i=0;i<c;i++)for(var j=0;j<d;j++)e.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-j*(g/d),top:-i*(h/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:g/d,height:h/c,left:f.left+j*(g/d)+(b.options.mode=="show"?(j-Math.floor(d/2))*(g/d):0),top:f.top+i*(h/c)+(b.options.mode=="show"?(i-Math.floor(c/2))*(h/c):0),opacity:b.options.mode=="show"?0:1}).animate({left:f.left+j*(g/d)+(b.options.mode=="show"?0:(j-Math.floor(d/2))*(g/d)),top:f.top+i*(h/c)+(b.options.mode=="show"?0:(i-Math.floor(c/2))*(h/c)),opacity:b.options.mode=="show"?1:0},b.duration||500);setTimeout(function(){b.options.mode=="show"?e.css({visibility:"visible"}):e.css({visibility:"visible"}).hide(),b.callback&&b.callback.apply(e[0]),e.dequeue(),a("div.ui-effects-explode").remove()},b.duration||500)})}})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.effects.fade.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.effects.fade=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||"hide");c.animate({opacity:d},{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.effects.fold.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.effects.fold=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"hide"),f=b.options.size||15,g=!!b.options.horizFirst,h=b.duration?b.duration/2:a.fx.speeds._default/2;a.effects.save(c,d),c.show();var i=a.effects.createWrapper(c).css({overflow:"hidden"}),j=e=="show"!=g,k=j?["width","height"]:["height","width"],l=j?[i.width(),i.height()]:[i.height(),i.width()],m=/([0-9]+)%/.exec(f);m&&(f=parseInt(m[1],10)/100*l[e=="hide"?0:1]),e=="show"&&i.css(g?{height:0,width:f}:{height:f,width:0});var n={},p={};n[k[0]]=e=="show"?l[0]:f,p[k[1]]=e=="show"?l[1]:0,i.animate(n,h,b.options.easing).animate(p,h,b.options.easing,function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.effects.highlight.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.effects.highlight=function(b){return this.queue(function(){var c=a(this),d=["backgroundImage","backgroundColor","opacity"],e=a.effects.setMode(c,b.options.mode||"show"),f={backgroundColor:c.css("backgroundColor")};e=="hide"&&(f.opacity=0),a.effects.save(c,d),c.show().css({backgroundImage:"none",backgroundColor:b.options.color||"#ffff99"}).animate(f,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e=="hide"&&c.hide(),a.effects.restore(c,d),e=="show"&&!a.support.opacity&&this.style.removeAttribute("filter"),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.effects.pulsate.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.effects.pulsate=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||"show"),e=(b.options.times||5)*2-1,f=b.duration?b.duration/2:a.fx.speeds._default/2,g=c.is(":visible"),h=0;g||(c.css("opacity",0).show(),h=1),(d=="hide"&&g||d=="show"&&!g)&&e--;for(var i=0;i<e;i++)c.animate({opacity:h},f,b.options.easing),h=(h+1)%2;c.animate({opacity:h},f,b.options.easing,function(){h==0&&c.hide(),b.callback&&b.callback.apply(this,arguments)}),c.queue("fx",function(){c.dequeue()}).dequeue()})}})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.effects.scale.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.effects.puff=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||"hide"),e=parseInt(b.options.percent,10)||150,f=e/100,g={height:c.height(),width:c.width()};a.extend(b.options,{fade:!0,mode:d,percent:d=="hide"?e:100,from:d=="hide"?g:{height:g.height*f,width:g.width*f}}),c.effect("scale",b.options,b.duration,b.callback),c.dequeue()})},a.effects.scale=function(b){return this.queue(function(){var c=a(this),d=a.extend(!0,{},b.options),e=a.effects.setMode(c,b.options.mode||"effect"),f=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:e=="hide"?0:100),g=b.options.direction||"both",h=b.options.origin;e!="effect"&&(d.origin=h||["middle","center"],d.restore=!0);var i={height:c.height(),width:c.width()};c.from=b.options.from||(e=="show"?{height:0,width:0}:i);var j={y:g!="horizontal"?f/100:1,x:g!="vertical"?f/100:1};c.to={height:i.height*j.y,width:i.width*j.x},b.options.fade&&(e=="show"&&(c.from.opacity=0,c.to.opacity=1),e=="hide"&&(c.from.opacity=1,c.to.opacity=0)),d.from=c.from,d.to=c.to,d.mode=e,c.effect("size",d,b.duration,b.callback),c.dequeue()})},a.effects.size=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right","width","height","overflow","opacity"],e=["position","top","bottom","left","right","overflow","opacity"],f=["width","height","overflow"],g=["fontSize"],h=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],i=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],j=a.effects.setMode(c,b.options.mode||"effect"),k=b.options.restore||!1,l=b.options.scale||"both",m=b.options.origin,n={height:c.height(),width:c.width()};c.from=b.options.from||n,c.to=b.options.to||n;if(m){var p=a.effects.getBaseline(m,n);c.from.top=(n.height-c.from.height)*p.y,c.from.left=(n.width-c.from.width)*p.x,c.to.top=(n.height-c.to.height)*p.y,c.to.left=(n.width-c.to.width)*p.x}var q={from:{y:c.from.height/n.height,x:c.from.width/n.width},to:{y:c.to.height/n.height,x:c.to.width/n.width}};if(l=="box"||l=="both")q.from.y!=q.to.y&&(d=d.concat(h),c.from=a.effects.setTransition(c,h,q.from.y,c.from),c.to=a.effects.setTransition(c,h,q.to.y,c.to)),q.from.x!=q.to.x&&(d=d.concat(i),c.from=a.effects.setTransition(c,i,q.from.x,c.from),c.to=a.effects.setTransition(c,i,q.to.x,c.to));(l=="content"||l=="both")&&q.from.y!=q.to.y&&(d=d.concat(g),c.from=a.effects.setTransition(c,g,q.from.y,c.from),c.to=a.effects.setTransition(c,g,q.to.y,c.to)),a.effects.save(c,k?d:e),c.show(),a.effects.createWrapper(c),c.css("overflow","hidden").css(c.from);if(l=="content"||l=="both")h=h.concat(["marginTop","marginBottom"]).concat(g),i=i.concat(["marginLeft","marginRight"]),f=d.concat(h).concat(i),c.find("*[width]").each(function(){var c=a(this);k&&a.effects.save(c,f);var d={height:c.height(),width:c.width()};c.from={height:d.height*q.from.y,width:d.width*q.from.x},c.to={height:d.height*q.to.y,width:d.width*q.to.x},q.from.y!=q.to.y&&(c.from=a.effects.setTransition(c,h,q.from.y,c.from),c.to=a.effects.setTransition(c,h,q.to.y,c.to)),q.from.x!=q.to.x&&(c.from=a.effects.setTransition(c,i,q.from.x,c.from),c.to=a.effects.setTransition(c,i,q.to.x,c.to)),c.css(c.from),c.animate(c.to,b.duration,b.options.easing,function(){k&&a.effects.restore(c,f)})});c.animate(c.to,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){c.to.opacity===0&&c.css("opacity",c.from.opacity),j=="hide"&&c.hide(),a.effects.restore(c,k?d:e),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.effects.shake.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.effects.shake=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"effect"),f=b.options.direction||"left",g=b.options.distance||20,h=b.options.times||3,i=b.duration||b.options.duration||140;a.effects.save(c,d),c.show(),a.effects.createWrapper(c);var j=f=="up"||f=="down"?"top":"left",k=f=="up"||f=="left"?"pos":"neg",l={},m={},n={};l[j]=(k=="pos"?"-=":"+=")+g,m[j]=(k=="pos"?"+=":"-=")+g*2,n[j]=(k=="pos"?"-=":"+=")+g*2,c.animate(l,i,b.options.easing);for(var p=1;p<h;p++)c.animate(m,i,b.options.easing).animate(n,i,b.options.easing);c.animate(m,i,b.options.easing).animate(l,i/2,b.options.easing,function(){a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments)}),c.queue("fx",function(){c.dequeue()}),c.dequeue()})}})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.effects.slide.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.effects.slide=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"show"),f=b.options.direction||"left";a.effects.save(c,d),c.show(),a.effects.createWrapper(c).css({overflow:"hidden"});var g=f=="up"||f=="down"?"top":"left",h=f=="up"||f=="left"?"pos":"neg",i=b.options.distance||(g=="top"?c.outerHeight(!0):c.outerWidth(!0));e=="show"&&c.css(g,h=="pos"?isNaN(i)?"-"+i:-i:i);var j={};j[g]=(e=="show"?h=="pos"?"+=":"-=":h=="pos"?"-=":"+=")+i,c.animate(j,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.effects.transfer.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.effects.transfer=function(b){return this.queue(function(){var c=a(this),d=a(b.options.to),e=d.offset(),f={top:e.top,left:e.left,height:d.innerHeight(),width:d.innerWidth()},g=c.offset(),h=a('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(b.options.className).css({top:g.top,left:g.left,height:c.innerHeight(),width:c.innerWidth(),position:"absolute"}).animate(f,b.duration,b.options.easing,function(){h.remove(),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);;
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/js/vendor/modernizr-2.6.1.min.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,4 @@
+/* Modernizr 2.6.1 (Custom Build) | MIT & BSD
+ * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load
+ */
+;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a){var e=a[d];if(!G(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return F(b,"string")||F(b,"undefined")?H(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),I(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d<e;d++)u[c[d]]=c[d]in k;return u.list&&(u.list=!!b.createElement("datalist")&&!!a.HTMLDataListElement),u}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,f,h,i=a.length;d<i;d++)k.setAttribute("type",f=a[d]),e=k.type!=="text",e&&(k.value=l,k.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&k.style.WebkitAppearance!==c?(g.appendChild(k),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(k,null).WebkitAppearance!=="textfield"&&k.offsetHeight!==0,g.removeChild(k)):/^(search|tel)$/.test(f)||(/^(url|email)$/.test(f)?e=k.checkValidity&&k.checkValidity()===!1:e=k.value!=l)),t[a[d]]=!!e;return t}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var d="2.6.1",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k=b.createElement("input"),l=":)",m={}.toString,n=" -webkit- -moz- -o- -ms- ".split(" "),o="Webkit Moz O ms",p=o.split(" "),q=o.toLowerCase().split(" "),r={svg:"http://www.w3.org/2000/svg"},s={},t={},u={},v=[],w=v.slice,x,y=function(a,c,d,e){var f,i,j,k=b.createElement("div"),l=b.body,m=l?l:b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),k.appendChild(j);return f=["&#173;",'<style id="s',h,'">',a,"</style>"].join(""),k.id=h,(l?k:m).innerHTML+=f,m.appendChild(k),l||(m.style.background="",g.appendChild(m)),i=c(k,a),l?k.parentNode.removeChild(k):m.parentNode.removeChild(m),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=F(e[d],"function"),F(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),B={}.hasOwnProperty,C;!F(B,"undefined")&&!F(B.call,"undefined")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return J("flexWrap")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J("indexedDB",a)},s.hashchange=function(){return A("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return D("background-color:rgba(150,255,150,.5)"),G(j.backgroundColor,"rgba")},s.hsla=function(){return D("background-color:hsla(120,40%,100%,.5)"),G(j.backgroundColor,"rgba")||G(j.backgroundColor,"hsla")},s.multiplebgs=function(){return D("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return J("backgroundSize")},s.borderimage=function(){return J("borderImage")},s.borderradius=function(){return J("borderRadius")},s.boxshadow=function(){return J("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return E("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return J("animationName")},s.csscolumns=function(){return J("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return D((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),G(j.backgroundImage,"gradient")},s.cssreflections=function(){return J("boxReflect")},s.csstransforms=function(){return!!J("transform")},s.csstransforms3d=function(){var a=!!J("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return J("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(['#modernizr:after{content:"',l,'";visibility:hidden}'].join(""),function(b){a=b.offsetHeight>=1}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var L in s)C(s,L)&&(x=L.toLowerCase(),e[x]=s[L](),v.push((e[x]?"":"no-")+x));return e.input||K(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)C(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},D(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e<g;e++)d.createElement(f[e]);return d}function p(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return r.shivMethods?n(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+l().join().replace(/\w+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(r,b.frag)}function q(a){a||(a=b);var c=m(a);return r.shivCSS&&!f&&!c.hasCSS&&(c.hasCSS=!!k(a,"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")),j||p(a,c),a}var c=a.html5||{},d=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,e=/^<|^(?:a|b|button|code|div|fieldset|form|h1|h2|h3|h4|h5|h6|i|iframe|img|input|label|li|link|ol|option|p|param|q|script|select|span|strong|style|table|tbody|td|textarea|tfoot|th|thead|tr|ul)$/i,f,g="_html5shiv",h=0,i={},j;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,e.prefixed=function(a,b,c){return b?J(a,b,c):J(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return o.call(a)=="[object Function]"}function e(a){return typeof a=="string"}function f(){}function g(a){return!a||a=="loaded"||a=="complete"||a=="uninitialized"}function h(){var a=p.shift();q=1,a?a.t?m(function(){(a.t=="c"?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){a!="img"&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l={},o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};y[c]===1&&(r=1,y[c]=[],l=b.createElement(a)),a=="object"?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),a!="img"&&(r||y[c]===2?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i(b=="c"?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),p.length==1&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&o.call(a.opera)=="[object Opera]",l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return o.call(a)=="[object Array]"},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,i){var j=b(a),l=j.autoCallback;j.url.split(".").pop().split("?").shift(),j.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]||h),j.instead?j.instead(a,e,f,g,i):(y[j.url]?j.noexec=!0:y[j.url]=1,f.load(j.url,j.forceCSS||!j.forceJS&&"css"==j.url.split(".").pop().split("?").shift()?"c":c,j.noexec,j.attrs,j.timeout),(d(e)||d(l))&&f.load(function(){k(),e&&e(j.origUrl,i,g),l&&l(j.origUrl,i,g),y[j.url]=2})))}function i(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var j,l,m=this.yepnope.loader;if(e(a))g(a,0,m,0);else if(w(a))for(j=0;j<a.length;j++)l=a[j],e(l)?g(l,0,m,0):w(l)?B(l):Object(l)===l&&i(l,m);else Object(a)===a&&i(a,m)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,b.readyState==null&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))};
Binary file alcatel/static/libraries/Paper/lib/paper.js has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/colorbrewer.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,32 @@
+/*
+ * This product includes color specifications and designs developed by Cynthia
+ * Brewer (http://colorbrewer.org/).
+ */
+var colorbrewer = {
+YlGn:{3:["rgb(247,252,185)","rgb(173,221,142)","rgb(49,163,84)"],4:["rgb(255,255,204)","rgb(194,230,153)","rgb(120,198,121)","rgb(35,132,67)"],5:["rgb(255,255,204)","rgb(194,230,153)","rgb(120,198,121)","rgb(49,163,84)","rgb(0,104,55)"],6:["rgb(255,255,204)","rgb(217,240,163)","rgb(173,221,142)","rgb(120,198,121)","rgb(49,163,84)","rgb(0,104,55)"],7:["rgb(255,255,204)","rgb(217,240,163)","rgb(173,221,142)","rgb(120,198,121)","rgb(65,171,93)","rgb(35,132,67)","rgb(0,90,50)"],8:["rgb(255,255,229)","rgb(247,252,185)","rgb(217,240,163)","rgb(173,221,142)","rgb(120,198,121)","rgb(65,171,93)","rgb(35,132,67)","rgb(0,90,50)"],9:["rgb(255,255,229)","rgb(247,252,185)","rgb(217,240,163)","rgb(173,221,142)","rgb(120,198,121)","rgb(65,171,93)","rgb(35,132,67)","rgb(0,104,55)","rgb(0,69,41)"]},
+YlGnBu:{3:["rgb(237,248,177)","rgb(127,205,187)","rgb(44,127,184)"],4:["rgb(255,255,204)","rgb(161,218,180)","rgb(65,182,196)","rgb(34,94,168)"],5:["rgb(255,255,204)","rgb(161,218,180)","rgb(65,182,196)","rgb(44,127,184)","rgb(37,52,148)"],6:["rgb(255,255,204)","rgb(199,233,180)","rgb(127,205,187)","rgb(65,182,196)","rgb(44,127,184)","rgb(37,52,148)"],7:["rgb(255,255,204)","rgb(199,233,180)","rgb(127,205,187)","rgb(65,182,196)","rgb(29,145,192)","rgb(34,94,168)","rgb(12,44,132)"],8:["rgb(255,255,217)","rgb(237,248,177)","rgb(199,233,180)","rgb(127,205,187)","rgb(65,182,196)","rgb(29,145,192)","rgb(34,94,168)","rgb(12,44,132)"],9:["rgb(255,255,217)","rgb(237,248,177)","rgb(199,233,180)","rgb(127,205,187)","rgb(65,182,196)","rgb(29,145,192)","rgb(34,94,168)","rgb(37,52,148)","rgb(8,29,88)"]},
+GnBu:{3:["rgb(224,243,219)","rgb(168,221,181)","rgb(67,162,202)"],4:["rgb(240,249,232)","rgb(186,228,188)","rgb(123,204,196)","rgb(43,140,190)"],5:["rgb(240,249,232)","rgb(186,228,188)","rgb(123,204,196)","rgb(67,162,202)","rgb(8,104,172)"],6:["rgb(240,249,232)","rgb(204,235,197)","rgb(168,221,181)","rgb(123,204,196)","rgb(67,162,202)","rgb(8,104,172)"],7:["rgb(240,249,232)","rgb(204,235,197)","rgb(168,221,181)","rgb(123,204,196)","rgb(78,179,211)","rgb(43,140,190)","rgb(8,88,158)"],8:["rgb(247,252,240)","rgb(224,243,219)","rgb(204,235,197)","rgb(168,221,181)","rgb(123,204,196)","rgb(78,179,211)","rgb(43,140,190)","rgb(8,88,158)"],9:["rgb(247,252,240)","rgb(224,243,219)","rgb(204,235,197)","rgb(168,221,181)","rgb(123,204,196)","rgb(78,179,211)","rgb(43,140,190)","rgb(8,104,172)","rgb(8,64,129)"]},
+BuGn:{3:["rgb(229,245,249)","rgb(153,216,201)","rgb(44,162,95)"],4:["rgb(237,248,251)","rgb(178,226,226)","rgb(102,194,164)","rgb(35,139,69)"],5:["rgb(237,248,251)","rgb(178,226,226)","rgb(102,194,164)","rgb(44,162,95)","rgb(0,109,44)"],6:["rgb(237,248,251)","rgb(204,236,230)","rgb(153,216,201)","rgb(102,194,164)","rgb(44,162,95)","rgb(0,109,44)"],7:["rgb(237,248,251)","rgb(204,236,230)","rgb(153,216,201)","rgb(102,194,164)","rgb(65,174,118)","rgb(35,139,69)","rgb(0,88,36)"],8:["rgb(247,252,253)","rgb(229,245,249)","rgb(204,236,230)","rgb(153,216,201)","rgb(102,194,164)","rgb(65,174,118)","rgb(35,139,69)","rgb(0,88,36)"],9:["rgb(247,252,253)","rgb(229,245,249)","rgb(204,236,230)","rgb(153,216,201)","rgb(102,194,164)","rgb(65,174,118)","rgb(35,139,69)","rgb(0,109,44)","rgb(0,68,27)"]},
+PuBuGn:{3:["rgb(236,226,240)","rgb(166,189,219)","rgb(28,144,153)"],4:["rgb(246,239,247)","rgb(189,201,225)","rgb(103,169,207)","rgb(2,129,138)"],5:["rgb(246,239,247)","rgb(189,201,225)","rgb(103,169,207)","rgb(28,144,153)","rgb(1,108,89)"],6:["rgb(246,239,247)","rgb(208,209,230)","rgb(166,189,219)","rgb(103,169,207)","rgb(28,144,153)","rgb(1,108,89)"],7:["rgb(246,239,247)","rgb(208,209,230)","rgb(166,189,219)","rgb(103,169,207)","rgb(54,144,192)","rgb(2,129,138)","rgb(1,100,80)"],8:["rgb(255,247,251)","rgb(236,226,240)","rgb(208,209,230)","rgb(166,189,219)","rgb(103,169,207)","rgb(54,144,192)","rgb(2,129,138)","rgb(1,100,80)"],9:["rgb(255,247,251)","rgb(236,226,240)","rgb(208,209,230)","rgb(166,189,219)","rgb(103,169,207)","rgb(54,144,192)","rgb(2,129,138)","rgb(1,108,89)","rgb(1,70,54)"]},
+PuBu:{3:["rgb(236,231,242)","rgb(166,189,219)","rgb(43,140,190)"],4:["rgb(241,238,246)","rgb(189,201,225)","rgb(116,169,207)","rgb(5,112,176)"],5:["rgb(241,238,246)","rgb(189,201,225)","rgb(116,169,207)","rgb(43,140,190)","rgb(4,90,141)"],6:["rgb(241,238,246)","rgb(208,209,230)","rgb(166,189,219)","rgb(116,169,207)","rgb(43,140,190)","rgb(4,90,141)"],7:["rgb(241,238,246)","rgb(208,209,230)","rgb(166,189,219)","rgb(116,169,207)","rgb(54,144,192)","rgb(5,112,176)","rgb(3,78,123)"],8:["rgb(255,247,251)","rgb(236,231,242)","rgb(208,209,230)","rgb(166,189,219)","rgb(116,169,207)","rgb(54,144,192)","rgb(5,112,176)","rgb(3,78,123)"],9:["rgb(255,247,251)","rgb(236,231,242)","rgb(208,209,230)","rgb(166,189,219)","rgb(116,169,207)","rgb(54,144,192)","rgb(5,112,176)","rgb(4,90,141)","rgb(2,56,88)"]},
+BuPu:{3:["rgb(224,236,244)","rgb(158,188,218)","rgb(136,86,167)"],4:["rgb(237,248,251)","rgb(179,205,227)","rgb(140,150,198)","rgb(136,65,157)"],5:["rgb(237,248,251)","rgb(179,205,227)","rgb(140,150,198)","rgb(136,86,167)","rgb(129,15,124)"],6:["rgb(237,248,251)","rgb(191,211,230)","rgb(158,188,218)","rgb(140,150,198)","rgb(136,86,167)","rgb(129,15,124)"],7:["rgb(237,248,251)","rgb(191,211,230)","rgb(158,188,218)","rgb(140,150,198)","rgb(140,107,177)","rgb(136,65,157)","rgb(110,1,107)"],8:["rgb(247,252,253)","rgb(224,236,244)","rgb(191,211,230)","rgb(158,188,218)","rgb(140,150,198)","rgb(140,107,177)","rgb(136,65,157)","rgb(110,1,107)"],9:["rgb(247,252,253)","rgb(224,236,244)","rgb(191,211,230)","rgb(158,188,218)","rgb(140,150,198)","rgb(140,107,177)","rgb(136,65,157)","rgb(129,15,124)","rgb(77,0,75)"]},
+RdPu:{3:["rgb(253,224,221)","rgb(250,159,181)","rgb(197,27,138)"],4:["rgb(254,235,226)","rgb(251,180,185)","rgb(247,104,161)","rgb(174,1,126)"],5:["rgb(254,235,226)","rgb(251,180,185)","rgb(247,104,161)","rgb(197,27,138)","rgb(122,1,119)"],6:["rgb(254,235,226)","rgb(252,197,192)","rgb(250,159,181)","rgb(247,104,161)","rgb(197,27,138)","rgb(122,1,119)"],7:["rgb(254,235,226)","rgb(252,197,192)","rgb(250,159,181)","rgb(247,104,161)","rgb(221,52,151)","rgb(174,1,126)","rgb(122,1,119)"],8:["rgb(255,247,243)","rgb(253,224,221)","rgb(252,197,192)","rgb(250,159,181)","rgb(247,104,161)","rgb(221,52,151)","rgb(174,1,126)","rgb(122,1,119)"],9:["rgb(255,247,243)","rgb(253,224,221)","rgb(252,197,192)","rgb(250,159,181)","rgb(247,104,161)","rgb(221,52,151)","rgb(174,1,126)","rgb(122,1,119)","rgb(73,0,106)"]},
+PuRd:{3:["rgb(231,225,239)","rgb(201,148,199)","rgb(221,28,119)"],4:["rgb(241,238,246)","rgb(215,181,216)","rgb(223,101,176)","rgb(206,18,86)"],5:["rgb(241,238,246)","rgb(215,181,216)","rgb(223,101,176)","rgb(221,28,119)","rgb(152,0,67)"],6:["rgb(241,238,246)","rgb(212,185,218)","rgb(201,148,199)","rgb(223,101,176)","rgb(221,28,119)","rgb(152,0,67)"],7:["rgb(241,238,246)","rgb(212,185,218)","rgb(201,148,199)","rgb(223,101,176)","rgb(231,41,138)","rgb(206,18,86)","rgb(145,0,63)"],8:["rgb(247,244,249)","rgb(231,225,239)","rgb(212,185,218)","rgb(201,148,199)","rgb(223,101,176)","rgb(231,41,138)","rgb(206,18,86)","rgb(145,0,63)"],9:["rgb(247,244,249)","rgb(231,225,239)","rgb(212,185,218)","rgb(201,148,199)","rgb(223,101,176)","rgb(231,41,138)","rgb(206,18,86)","rgb(152,0,67)","rgb(103,0,31)"]},
+OrRd:{3:["rgb(254,232,200)","rgb(253,187,132)","rgb(227,74,51)"],4:["rgb(254,240,217)","rgb(253,204,138)","rgb(252,141,89)","rgb(215,48,31)"],5:["rgb(254,240,217)","rgb(253,204,138)","rgb(252,141,89)","rgb(227,74,51)","rgb(179,0,0)"],6:["rgb(254,240,217)","rgb(253,212,158)","rgb(253,187,132)","rgb(252,141,89)","rgb(227,74,51)","rgb(179,0,0)"],7:["rgb(254,240,217)","rgb(253,212,158)","rgb(253,187,132)","rgb(252,141,89)","rgb(239,101,72)","rgb(215,48,31)","rgb(153,0,0)"],8:["rgb(255,247,236)","rgb(254,232,200)","rgb(253,212,158)","rgb(253,187,132)","rgb(252,141,89)","rgb(239,101,72)","rgb(215,48,31)","rgb(153,0,0)"],9:["rgb(255,247,236)","rgb(254,232,200)","rgb(253,212,158)","rgb(253,187,132)","rgb(252,141,89)","rgb(239,101,72)","rgb(215,48,31)","rgb(179,0,0)","rgb(127,0,0)"]},
+YlOrRd:{3:["rgb(255,237,160)","rgb(254,178,76)","rgb(240,59,32)"],4:["rgb(255,255,178)","rgb(254,204,92)","rgb(253,141,60)","rgb(227,26,28)"],5:["rgb(255,255,178)","rgb(254,204,92)","rgb(253,141,60)","rgb(240,59,32)","rgb(189,0,38)"],6:["rgb(255,255,178)","rgb(254,217,118)","rgb(254,178,76)","rgb(253,141,60)","rgb(240,59,32)","rgb(189,0,38)"],7:["rgb(255,255,178)","rgb(254,217,118)","rgb(254,178,76)","rgb(253,141,60)","rgb(252,78,42)","rgb(227,26,28)","rgb(177,0,38)"],8:["rgb(255,255,204)","rgb(255,237,160)","rgb(254,217,118)","rgb(254,178,76)","rgb(253,141,60)","rgb(252,78,42)","rgb(227,26,28)","rgb(177,0,38)"],9:["rgb(255,255,204)","rgb(255,237,160)","rgb(254,217,118)","rgb(254,178,76)","rgb(253,141,60)","rgb(252,78,42)","rgb(227,26,28)","rgb(189,0,38)","rgb(128,0,38)"]},
+YlOrBr:{3:["rgb(255,247,188)","rgb(254,196,79)","rgb(217,95,14)"],4:["rgb(255,255,212)","rgb(254,217,142)","rgb(254,153,41)","rgb(204,76,2)"],5:["rgb(255,255,212)","rgb(254,217,142)","rgb(254,153,41)","rgb(217,95,14)","rgb(153,52,4)"],6:["rgb(255,255,212)","rgb(254,227,145)","rgb(254,196,79)","rgb(254,153,41)","rgb(217,95,14)","rgb(153,52,4)"],7:["rgb(255,255,212)","rgb(254,227,145)","rgb(254,196,79)","rgb(254,153,41)","rgb(236,112,20)","rgb(204,76,2)","rgb(140,45,4)"],8:["rgb(255,255,229)","rgb(255,247,188)","rgb(254,227,145)","rgb(254,196,79)","rgb(254,153,41)","rgb(236,112,20)","rgb(204,76,2)","rgb(140,45,4)"],9:["rgb(255,255,229)","rgb(255,247,188)","rgb(254,227,145)","rgb(254,196,79)","rgb(254,153,41)","rgb(236,112,20)","rgb(204,76,2)","rgb(153,52,4)","rgb(102,37,6)"]},
+Purples:{3:["rgb(239,237,245)","rgb(188,189,220)","rgb(117,107,177)"],4:["rgb(242,240,247)","rgb(203,201,226)","rgb(158,154,200)","rgb(106,81,163)"],5:["rgb(242,240,247)","rgb(203,201,226)","rgb(158,154,200)","rgb(117,107,177)","rgb(84,39,143)"],6:["rgb(242,240,247)","rgb(218,218,235)","rgb(188,189,220)","rgb(158,154,200)","rgb(117,107,177)","rgb(84,39,143)"],7:["rgb(242,240,247)","rgb(218,218,235)","rgb(188,189,220)","rgb(158,154,200)","rgb(128,125,186)","rgb(106,81,163)","rgb(74,20,134)"],8:["rgb(252,251,253)","rgb(239,237,245)","rgb(218,218,235)","rgb(188,189,220)","rgb(158,154,200)","rgb(128,125,186)","rgb(106,81,163)","rgb(74,20,134)"],9:["rgb(252,251,253)","rgb(239,237,245)","rgb(218,218,235)","rgb(188,189,220)","rgb(158,154,200)","rgb(128,125,186)","rgb(106,81,163)","rgb(84,39,143)","rgb(63,0,125)"]},
+Blues:{3:["rgb(222,235,247)","rgb(158,202,225)","rgb(49,130,189)"],4:["rgb(239,243,255)","rgb(189,215,231)","rgb(107,174,214)","rgb(33,113,181)"],5:["rgb(239,243,255)","rgb(189,215,231)","rgb(107,174,214)","rgb(49,130,189)","rgb(8,81,156)"],6:["rgb(239,243,255)","rgb(198,219,239)","rgb(158,202,225)","rgb(107,174,214)","rgb(49,130,189)","rgb(8,81,156)"],7:["rgb(239,243,255)","rgb(198,219,239)","rgb(158,202,225)","rgb(107,174,214)","rgb(66,146,198)","rgb(33,113,181)","rgb(8,69,148)"],8:["rgb(247,251,255)","rgb(222,235,247)","rgb(198,219,239)","rgb(158,202,225)","rgb(107,174,214)","rgb(66,146,198)","rgb(33,113,181)","rgb(8,69,148)"],9:["rgb(247,251,255)","rgb(222,235,247)","rgb(198,219,239)","rgb(158,202,225)","rgb(107,174,214)","rgb(66,146,198)","rgb(33,113,181)","rgb(8,81,156)","rgb(8,48,107)"]},
+Greens:{3:["rgb(229,245,224)","rgb(161,217,155)","rgb(49,163,84)"],4:["rgb(237,248,233)","rgb(186,228,179)","rgb(116,196,118)","rgb(35,139,69)"],5:["rgb(237,248,233)","rgb(186,228,179)","rgb(116,196,118)","rgb(49,163,84)","rgb(0,109,44)"],6:["rgb(237,248,233)","rgb(199,233,192)","rgb(161,217,155)","rgb(116,196,118)","rgb(49,163,84)","rgb(0,109,44)"],7:["rgb(237,248,233)","rgb(199,233,192)","rgb(161,217,155)","rgb(116,196,118)","rgb(65,171,93)","rgb(35,139,69)","rgb(0,90,50)"],8:["rgb(247,252,245)","rgb(229,245,224)","rgb(199,233,192)","rgb(161,217,155)","rgb(116,196,118)","rgb(65,171,93)","rgb(35,139,69)","rgb(0,90,50)"],9:["rgb(247,252,245)","rgb(229,245,224)","rgb(199,233,192)","rgb(161,217,155)","rgb(116,196,118)","rgb(65,171,93)","rgb(35,139,69)","rgb(0,109,44)","rgb(0,68,27)"]},
+Oranges:{3:["rgb(254,230,206)","rgb(253,174,107)","rgb(230,85,13)"],4:["rgb(254,237,222)","rgb(253,190,133)","rgb(253,141,60)","rgb(217,71,1)"],5:["rgb(254,237,222)","rgb(253,190,133)","rgb(253,141,60)","rgb(230,85,13)","rgb(166,54,3)"],6:["rgb(254,237,222)","rgb(253,208,162)","rgb(253,174,107)","rgb(253,141,60)","rgb(230,85,13)","rgb(166,54,3)"],7:["rgb(254,237,222)","rgb(253,208,162)","rgb(253,174,107)","rgb(253,141,60)","rgb(241,105,19)","rgb(217,72,1)","rgb(140,45,4)"],8:["rgb(255,245,235)","rgb(254,230,206)","rgb(253,208,162)","rgb(253,174,107)","rgb(253,141,60)","rgb(241,105,19)","rgb(217,72,1)","rgb(140,45,4)"],9:["rgb(255,245,235)","rgb(254,230,206)","rgb(253,208,162)","rgb(253,174,107)","rgb(253,141,60)","rgb(241,105,19)","rgb(217,72,1)","rgb(166,54,3)","rgb(127,39,4)"]},
+Reds:{3:["rgb(254,224,210)","rgb(252,146,114)","rgb(222,45,38)"],4:["rgb(254,229,217)","rgb(252,174,145)","rgb(251,106,74)","rgb(203,24,29)"],5:["rgb(254,229,217)","rgb(252,174,145)","rgb(251,106,74)","rgb(222,45,38)","rgb(165,15,21)"],6:["rgb(254,229,217)","rgb(252,187,161)","rgb(252,146,114)","rgb(251,106,74)","rgb(222,45,38)","rgb(165,15,21)"],7:["rgb(254,229,217)","rgb(252,187,161)","rgb(252,146,114)","rgb(251,106,74)","rgb(239,59,44)","rgb(203,24,29)","rgb(153,0,13)"],8:["rgb(255,245,240)","rgb(254,224,210)","rgb(252,187,161)","rgb(252,146,114)","rgb(251,106,74)","rgb(239,59,44)","rgb(203,24,29)","rgb(153,0,13)"],9:["rgb(255,245,240)","rgb(254,224,210)","rgb(252,187,161)","rgb(252,146,114)","rgb(251,106,74)","rgb(239,59,44)","rgb(203,24,29)","rgb(165,15,21)","rgb(103,0,13)"]},
+Greys:{3:["rgb(240,240,240)","rgb(189,189,189)","rgb(99,99,99)"],4:["rgb(247,247,247)","rgb(204,204,204)","rgb(150,150,150)","rgb(82,82,82)"],5:["rgb(247,247,247)","rgb(204,204,204)","rgb(150,150,150)","rgb(99,99,99)","rgb(37,37,37)"],6:["rgb(247,247,247)","rgb(217,217,217)","rgb(189,189,189)","rgb(150,150,150)","rgb(99,99,99)","rgb(37,37,37)"],7:["rgb(247,247,247)","rgb(217,217,217)","rgb(189,189,189)","rgb(150,150,150)","rgb(115,115,115)","rgb(82,82,82)","rgb(37,37,37)"],8:["rgb(255,255,255)","rgb(240,240,240)","rgb(217,217,217)","rgb(189,189,189)","rgb(150,150,150)","rgb(115,115,115)","rgb(82,82,82)","rgb(37,37,37)"],9:["rgb(255,255,255)","rgb(240,240,240)","rgb(217,217,217)","rgb(189,189,189)","rgb(150,150,150)","rgb(115,115,115)","rgb(82,82,82)","rgb(37,37,37)","rgb(0,0,0)"]},
+PuOr:{3:["rgb(241,163,64)","rgb(247,247,247)","rgb(153,142,195)"],4:["rgb(230,97,1)","rgb(253,184,99)","rgb(178,171,210)","rgb(94,60,153)"],5:["rgb(230,97,1)","rgb(253,184,99)","rgb(247,247,247)","rgb(178,171,210)","rgb(94,60,153)"],6:["rgb(179,88,6)","rgb(241,163,64)","rgb(254,224,182)","rgb(216,218,235)","rgb(153,142,195)","rgb(84,39,136)"],7:["rgb(179,88,6)","rgb(241,163,64)","rgb(254,224,182)","rgb(247,247,247)","rgb(216,218,235)","rgb(153,142,195)","rgb(84,39,136)"],8:["rgb(179,88,6)","rgb(224,130,20)","rgb(253,184,99)","rgb(254,224,182)","rgb(216,218,235)","rgb(178,171,210)","rgb(128,115,172)","rgb(84,39,136)"],9:["rgb(179,88,6)","rgb(224,130,20)","rgb(253,184,99)","rgb(254,224,182)","rgb(247,247,247)","rgb(216,218,235)","rgb(178,171,210)","rgb(128,115,172)","rgb(84,39,136)"],10:["rgb(127,59,8)","rgb(179,88,6)","rgb(224,130,20)","rgb(253,184,99)","rgb(254,224,182)","rgb(216,218,235)","rgb(178,171,210)","rgb(128,115,172)","rgb(84,39,136)","rgb(45,0,75)"],11:["rgb(127,59,8)","rgb(179,88,6)","rgb(224,130,20)","rgb(253,184,99)","rgb(254,224,182)","rgb(247,247,247)","rgb(216,218,235)","rgb(178,171,210)","rgb(128,115,172)","rgb(84,39,136)","rgb(45,0,75)"]},
+BrBG:{3:["rgb(216,179,101)","rgb(245,245,245)","rgb(90,180,172)"],4:["rgb(166,97,26)","rgb(223,194,125)","rgb(128,205,193)","rgb(1,133,113)"],5:["rgb(166,97,26)","rgb(223,194,125)","rgb(245,245,245)","rgb(128,205,193)","rgb(1,133,113)"],6:["rgb(140,81,10)","rgb(216,179,101)","rgb(246,232,195)","rgb(199,234,229)","rgb(90,180,172)","rgb(1,102,94)"],7:["rgb(140,81,10)","rgb(216,179,101)","rgb(246,232,195)","rgb(245,245,245)","rgb(199,234,229)","rgb(90,180,172)","rgb(1,102,94)"],8:["rgb(140,81,10)","rgb(191,129,45)","rgb(223,194,125)","rgb(246,232,195)","rgb(199,234,229)","rgb(128,205,193)","rgb(53,151,143)","rgb(1,102,94)"],9:["rgb(140,81,10)","rgb(191,129,45)","rgb(223,194,125)","rgb(246,232,195)","rgb(245,245,245)","rgb(199,234,229)","rgb(128,205,193)","rgb(53,151,143)","rgb(1,102,94)"],10:["rgb(84,48,5)","rgb(140,81,10)","rgb(191,129,45)","rgb(223,194,125)","rgb(246,232,195)","rgb(199,234,229)","rgb(128,205,193)","rgb(53,151,143)","rgb(1,102,94)","rgb(0,60,48)"],11:["rgb(84,48,5)","rgb(140,81,10)","rgb(191,129,45)","rgb(223,194,125)","rgb(246,232,195)","rgb(245,245,245)","rgb(199,234,229)","rgb(128,205,193)","rgb(53,151,143)","rgb(1,102,94)","rgb(0,60,48)"]},
+PRGn:{3:["rgb(175,141,195)","rgb(247,247,247)","rgb(127,191,123)"],4:["rgb(123,50,148)","rgb(194,165,207)","rgb(166,219,160)","rgb(0,136,55)"],5:["rgb(123,50,148)","rgb(194,165,207)","rgb(247,247,247)","rgb(166,219,160)","rgb(0,136,55)"],6:["rgb(118,42,131)","rgb(175,141,195)","rgb(231,212,232)","rgb(217,240,211)","rgb(127,191,123)","rgb(27,120,55)"],7:["rgb(118,42,131)","rgb(175,141,195)","rgb(231,212,232)","rgb(247,247,247)","rgb(217,240,211)","rgb(127,191,123)","rgb(27,120,55)"],8:["rgb(118,42,131)","rgb(153,112,171)","rgb(194,165,207)","rgb(231,212,232)","rgb(217,240,211)","rgb(166,219,160)","rgb(90,174,97)","rgb(27,120,55)"],9:["rgb(118,42,131)","rgb(153,112,171)","rgb(194,165,207)","rgb(231,212,232)","rgb(247,247,247)","rgb(217,240,211)","rgb(166,219,160)","rgb(90,174,97)","rgb(27,120,55)"],10:["rgb(64,0,75)","rgb(118,42,131)","rgb(153,112,171)","rgb(194,165,207)","rgb(231,212,232)","rgb(217,240,211)","rgb(166,219,160)","rgb(90,174,97)","rgb(27,120,55)","rgb(0,68,27)"],11:["rgb(64,0,75)","rgb(118,42,131)","rgb(153,112,171)","rgb(194,165,207)","rgb(231,212,232)","rgb(247,247,247)","rgb(217,240,211)","rgb(166,219,160)","rgb(90,174,97)","rgb(27,120,55)","rgb(0,68,27)"]},
+PiYG:{3:["rgb(233,163,201)","rgb(247,247,247)","rgb(161,215,106)"],4:["rgb(208,28,139)","rgb(241,182,218)","rgb(184,225,134)","rgb(77,172,38)"],5:["rgb(208,28,139)","rgb(241,182,218)","rgb(247,247,247)","rgb(184,225,134)","rgb(77,172,38)"],6:["rgb(197,27,125)","rgb(233,163,201)","rgb(253,224,239)","rgb(230,245,208)","rgb(161,215,106)","rgb(77,146,33)"],7:["rgb(197,27,125)","rgb(233,163,201)","rgb(253,224,239)","rgb(247,247,247)","rgb(230,245,208)","rgb(161,215,106)","rgb(77,146,33)"],8:["rgb(197,27,125)","rgb(222,119,174)","rgb(241,182,218)","rgb(253,224,239)","rgb(230,245,208)","rgb(184,225,134)","rgb(127,188,65)","rgb(77,146,33)"],9:["rgb(197,27,125)","rgb(222,119,174)","rgb(241,182,218)","rgb(253,224,239)","rgb(247,247,247)","rgb(230,245,208)","rgb(184,225,134)","rgb(127,188,65)","rgb(77,146,33)"],10:["rgb(142,1,82)","rgb(197,27,125)","rgb(222,119,174)","rgb(241,182,218)","rgb(253,224,239)","rgb(230,245,208)","rgb(184,225,134)","rgb(127,188,65)","rgb(77,146,33)","rgb(39,100,25)"],11:["rgb(142,1,82)","rgb(197,27,125)","rgb(222,119,174)","rgb(241,182,218)","rgb(253,224,239)","rgb(247,247,247)","rgb(230,245,208)","rgb(184,225,134)","rgb(127,188,65)","rgb(77,146,33)","rgb(39,100,25)"]},
+RdBu:{3:["rgb(239,138,98)","rgb(247,247,247)","rgb(103,169,207)"],4:["rgb(202,0,32)","rgb(244,165,130)","rgb(146,197,222)","rgb(5,113,176)"],5:["rgb(202,0,32)","rgb(244,165,130)","rgb(247,247,247)","rgb(146,197,222)","rgb(5,113,176)"],6:["rgb(178,24,43)","rgb(239,138,98)","rgb(253,219,199)","rgb(209,229,240)","rgb(103,169,207)","rgb(33,102,172)"],7:["rgb(178,24,43)","rgb(239,138,98)","rgb(253,219,199)","rgb(247,247,247)","rgb(209,229,240)","rgb(103,169,207)","rgb(33,102,172)"],8:["rgb(178,24,43)","rgb(214,96,77)","rgb(244,165,130)","rgb(253,219,199)","rgb(209,229,240)","rgb(146,197,222)","rgb(67,147,195)","rgb(33,102,172)"],9:["rgb(178,24,43)","rgb(214,96,77)","rgb(244,165,130)","rgb(253,219,199)","rgb(247,247,247)","rgb(209,229,240)","rgb(146,197,222)","rgb(67,147,195)","rgb(33,102,172)"],10:["rgb(103,0,31)","rgb(178,24,43)","rgb(214,96,77)","rgb(244,165,130)","rgb(253,219,199)","rgb(209,229,240)","rgb(146,197,222)","rgb(67,147,195)","rgb(33,102,172)","rgb(5,48,97)"],11:["rgb(103,0,31)","rgb(178,24,43)","rgb(214,96,77)","rgb(244,165,130)","rgb(253,219,199)","rgb(247,247,247)","rgb(209,229,240)","rgb(146,197,222)","rgb(67,147,195)","rgb(33,102,172)","rgb(5,48,97)"]},
+RdGy:{3:["rgb(239,138,98)","rgb(255,255,255)","rgb(153,153,153)"],4:["rgb(202,0,32)","rgb(244,165,130)","rgb(186,186,186)","rgb(64,64,64)"],5:["rgb(202,0,32)","rgb(244,165,130)","rgb(255,255,255)","rgb(186,186,186)","rgb(64,64,64)"],6:["rgb(178,24,43)","rgb(239,138,98)","rgb(253,219,199)","rgb(224,224,224)","rgb(153,153,153)","rgb(77,77,77)"],7:["rgb(178,24,43)","rgb(239,138,98)","rgb(253,219,199)","rgb(255,255,255)","rgb(224,224,224)","rgb(153,153,153)","rgb(77,77,77)"],8:["rgb(178,24,43)","rgb(214,96,77)","rgb(244,165,130)","rgb(253,219,199)","rgb(224,224,224)","rgb(186,186,186)","rgb(135,135,135)","rgb(77,77,77)"],9:["rgb(178,24,43)","rgb(214,96,77)","rgb(244,165,130)","rgb(253,219,199)","rgb(255,255,255)","rgb(224,224,224)","rgb(186,186,186)","rgb(135,135,135)","rgb(77,77,77)"],10:["rgb(103,0,31)","rgb(178,24,43)","rgb(214,96,77)","rgb(244,165,130)","rgb(253,219,199)","rgb(224,224,224)","rgb(186,186,186)","rgb(135,135,135)","rgb(77,77,77)","rgb(26,26,26)"],11:["rgb(103,0,31)","rgb(178,24,43)","rgb(214,96,77)","rgb(244,165,130)","rgb(253,219,199)","rgb(255,255,255)","rgb(224,224,224)","rgb(186,186,186)","rgb(135,135,135)","rgb(77,77,77)","rgb(26,26,26)"]},
+RdYlBu:{3:["rgb(252,141,89)","rgb(255,255,191)","rgb(145,191,219)"],4:["rgb(215,25,28)","rgb(253,174,97)","rgb(171,217,233)","rgb(44,123,182)"],5:["rgb(215,25,28)","rgb(253,174,97)","rgb(255,255,191)","rgb(171,217,233)","rgb(44,123,182)"],6:["rgb(215,48,39)","rgb(252,141,89)","rgb(254,224,144)","rgb(224,243,248)","rgb(145,191,219)","rgb(69,117,180)"],7:["rgb(215,48,39)","rgb(252,141,89)","rgb(254,224,144)","rgb(255,255,191)","rgb(224,243,248)","rgb(145,191,219)","rgb(69,117,180)"],8:["rgb(215,48,39)","rgb(244,109,67)","rgb(253,174,97)","rgb(254,224,144)","rgb(224,243,248)","rgb(171,217,233)","rgb(116,173,209)","rgb(69,117,180)"],9:["rgb(215,48,39)","rgb(244,109,67)","rgb(253,174,97)","rgb(254,224,144)","rgb(255,255,191)","rgb(224,243,248)","rgb(171,217,233)","rgb(116,173,209)","rgb(69,117,180)"],10:["rgb(165,0,38)","rgb(215,48,39)","rgb(244,109,67)","rgb(253,174,97)","rgb(254,224,144)","rgb(224,243,248)","rgb(171,217,233)","rgb(116,173,209)","rgb(69,117,180)","rgb(49,54,149)"],11:["rgb(165,0,38)","rgb(215,48,39)","rgb(244,109,67)","rgb(253,174,97)","rgb(254,224,144)","rgb(255,255,191)","rgb(224,243,248)","rgb(171,217,233)","rgb(116,173,209)","rgb(69,117,180)","rgb(49,54,149)"]},
+Spectral:{3:["rgb(252,141,89)","rgb(255,255,191)","rgb(153,213,148)"],4:["rgb(215,25,28)","rgb(253,174,97)","rgb(171,221,164)","rgb(43,131,186)"],5:["rgb(215,25,28)","rgb(253,174,97)","rgb(255,255,191)","rgb(171,221,164)","rgb(43,131,186)"],6:["rgb(213,62,79)","rgb(252,141,89)","rgb(254,224,139)","rgb(230,245,152)","rgb(153,213,148)","rgb(50,136,189)"],7:["rgb(213,62,79)","rgb(252,141,89)","rgb(254,224,139)","rgb(255,255,191)","rgb(230,245,152)","rgb(153,213,148)","rgb(50,136,189)"],8:["rgb(213,62,79)","rgb(244,109,67)","rgb(253,174,97)","rgb(254,224,139)","rgb(230,245,152)","rgb(171,221,164)","rgb(102,194,165)","rgb(50,136,189)"],9:["rgb(213,62,79)","rgb(244,109,67)","rgb(253,174,97)","rgb(254,224,139)","rgb(255,255,191)","rgb(230,245,152)","rgb(171,221,164)","rgb(102,194,165)","rgb(50,136,189)"],10:["rgb(158,1,66)","rgb(213,62,79)","rgb(244,109,67)","rgb(253,174,97)","rgb(254,224,139)","rgb(230,245,152)","rgb(171,221,164)","rgb(102,194,165)","rgb(50,136,189)","rgb(94,79,162)"],11:["rgb(158,1,66)","rgb(213,62,79)","rgb(244,109,67)","rgb(253,174,97)","rgb(254,224,139)","rgb(255,255,191)","rgb(230,245,152)","rgb(171,221,164)","rgb(102,194,165)","rgb(50,136,189)","rgb(94,79,162)"]},
+RdYlGn:{3:["rgb(252,141,89)","rgb(255,255,191)","rgb(145,207,96)"],4:["rgb(215,25,28)","rgb(253,174,97)","rgb(166,217,106)","rgb(26,150,65)"],5:["rgb(215,25,28)","rgb(253,174,97)","rgb(255,255,191)","rgb(166,217,106)","rgb(26,150,65)"],6:["rgb(215,48,39)","rgb(252,141,89)","rgb(254,224,139)","rgb(217,239,139)","rgb(145,207,96)","rgb(26,152,80)"],7:["rgb(215,48,39)","rgb(252,141,89)","rgb(254,224,139)","rgb(255,255,191)","rgb(217,239,139)","rgb(145,207,96)","rgb(26,152,80)"],8:["rgb(215,48,39)","rgb(244,109,67)","rgb(253,174,97)","rgb(254,224,139)","rgb(217,239,139)","rgb(166,217,106)","rgb(102,189,99)","rgb(26,152,80)"],9:["rgb(215,48,39)","rgb(244,109,67)","rgb(253,174,97)","rgb(254,224,139)","rgb(255,255,191)","rgb(217,239,139)","rgb(166,217,106)","rgb(102,189,99)","rgb(26,152,80)"],10:["rgb(165,0,38)","rgb(215,48,39)","rgb(244,109,67)","rgb(253,174,97)","rgb(254,224,139)","rgb(217,239,139)","rgb(166,217,106)","rgb(102,189,99)","rgb(26,152,80)","rgb(0,104,55)"],11:["rgb(165,0,38)","rgb(215,48,39)","rgb(244,109,67)","rgb(253,174,97)","rgb(254,224,139)","rgb(255,255,191)","rgb(217,239,139)","rgb(166,217,106)","rgb(102,189,99)","rgb(26,152,80)","rgb(0,104,55)"]}};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/d3/d3.chart.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,984 @@
+(function(){d3.chart = {};
+// Inspired by http://informationandvisualization.de/blog/box-plot
+d3.chart.box = function() {
+  var width = 1,
+      height = 1,
+      duration = 0,
+      domain = null,
+      value = Number,
+      whiskers = d3_chart_boxWhiskers,
+      quartiles = d3_chart_boxQuartiles,
+      tickFormat = null;
+
+  // For each small multiple…
+  function box(g) {
+    g.each(function(d, i) {
+      d = d.map(value).sort(d3.ascending);
+      var g = d3.select(this),
+          n = d.length,
+          min = d[0],
+          max = d[n - 1];
+
+      // Compute quartiles. Must return exactly 3 elements.
+      var quartileData = d.quartiles = quartiles(d);
+
+      // Compute whiskers. Must return exactly 2 elements, or null.
+      var whiskerIndices = whiskers && whiskers.call(this, d, i),
+          whiskerData = whiskerIndices && whiskerIndices.map(function(i) { return d[i]; });
+
+      // Compute outliers. If no whiskers are specified, all data are "outliers".
+      // We compute the outliers as indices, so that we can join across transitions!
+      var outlierIndices = whiskerIndices
+          ? d3.range(0, whiskerIndices[0]).concat(d3.range(whiskerIndices[1] + 1, n))
+          : d3.range(n);
+
+      // Compute the new x-scale.
+      var x1 = d3.scale.linear()
+          .domain(domain && domain.call(this, d, i) || [min, max])
+          .range([height, 0]);
+
+      // Retrieve the old x-scale, if this is an update.
+      var x0 = this.__chart__ || d3.scale.linear()
+          .domain([0, Infinity])
+          .range(x1.range());
+
+      // Stash the new scale.
+      this.__chart__ = x1;
+
+      // Note: the box, median, and box tick elements are fixed in number,
+      // so we only have to handle enter and update. In contrast, the outliers
+      // and other elements are variable, so we need to exit them! Variable
+      // elements also fade in and out.
+
+      // Update center line: the vertical line spanning the whiskers.
+      var center = g.selectAll("line.center")
+          .data(whiskerData ? [whiskerData] : []);
+
+      center.enter().insert("svg:line", "rect")
+          .attr("class", "center")
+          .attr("x1", width / 2)
+          .attr("y1", function(d) { return x0(d[0]); })
+          .attr("x2", width / 2)
+          .attr("y2", function(d) { return x0(d[1]); })
+          .style("opacity", 1e-6)
+        .transition()
+          .duration(duration)
+          .style("opacity", 1)
+          .attr("y1", function(d) { return x1(d[0]); })
+          .attr("y2", function(d) { return x1(d[1]); });
+
+      center.transition()
+          .duration(duration)
+          .style("opacity", 1)
+          .attr("y1", function(d) { return x1(d[0]); })
+          .attr("y2", function(d) { return x1(d[1]); });
+
+      center.exit().transition()
+          .duration(duration)
+          .style("opacity", 1e-6)
+          .attr("y1", function(d) { return x1(d[0]); })
+          .attr("y2", function(d) { return x1(d[1]); })
+          .remove();
+
+      // Update innerquartile box.
+      var box = g.selectAll("rect.box")
+          .data([quartileData]);
+
+      box.enter().append("svg:rect")
+          .attr("class", "box")
+          .attr("x", 0)
+          .attr("y", function(d) { return x0(d[2]); })
+          .attr("width", width)
+          .attr("height", function(d) { return x0(d[0]) - x0(d[2]); })
+        .transition()
+          .duration(duration)
+          .attr("y", function(d) { return x1(d[2]); })
+          .attr("height", function(d) { return x1(d[0]) - x1(d[2]); });
+
+      box.transition()
+          .duration(duration)
+          .attr("y", function(d) { return x1(d[2]); })
+          .attr("height", function(d) { return x1(d[0]) - x1(d[2]); });
+
+      // Update median line.
+      var medianLine = g.selectAll("line.median")
+          .data([quartileData[1]]);
+
+      medianLine.enter().append("svg:line")
+          .attr("class", "median")
+          .attr("x1", 0)
+          .attr("y1", x0)
+          .attr("x2", width)
+          .attr("y2", x0)
+        .transition()
+          .duration(duration)
+          .attr("y1", x1)
+          .attr("y2", x1);
+
+      medianLine.transition()
+          .duration(duration)
+          .attr("y1", x1)
+          .attr("y2", x1);
+
+      // Update whiskers.
+      var whisker = g.selectAll("line.whisker")
+          .data(whiskerData || []);
+
+      whisker.enter().insert("svg:line", "circle, text")
+          .attr("class", "whisker")
+          .attr("x1", 0)
+          .attr("y1", x0)
+          .attr("x2", width)
+          .attr("y2", x0)
+          .style("opacity", 1e-6)
+        .transition()
+          .duration(duration)
+          .attr("y1", x1)
+          .attr("y2", x1)
+          .style("opacity", 1);
+
+      whisker.transition()
+          .duration(duration)
+          .attr("y1", x1)
+          .attr("y2", x1)
+          .style("opacity", 1);
+
+      whisker.exit().transition()
+          .duration(duration)
+          .attr("y1", x1)
+          .attr("y2", x1)
+          .style("opacity", 1e-6)
+          .remove();
+
+      // Update outliers.
+      var outlier = g.selectAll("circle.outlier")
+          .data(outlierIndices, Number);
+
+      outlier.enter().insert("svg:circle", "text")
+          .attr("class", "outlier")
+          .attr("r", 5)
+          .attr("cx", width / 2)
+          .attr("cy", function(i) { return x0(d[i]); })
+          .style("opacity", 1e-6)
+        .transition()
+          .duration(duration)
+          .attr("cy", function(i) { return x1(d[i]); })
+          .style("opacity", 1);
+
+      outlier.transition()
+          .duration(duration)
+          .attr("cy", function(i) { return x1(d[i]); })
+          .style("opacity", 1);
+
+      outlier.exit().transition()
+          .duration(duration)
+          .attr("cy", function(i) { return x1(d[i]); })
+          .style("opacity", 1e-6)
+          .remove();
+
+      // Compute the tick format.
+      var format = tickFormat || x1.tickFormat(8);
+
+      // Update box ticks.
+      var boxTick = g.selectAll("text.box")
+          .data(quartileData);
+
+      boxTick.enter().append("svg:text")
+          .attr("class", "box")
+          .attr("dy", ".3em")
+          .attr("dx", function(d, i) { return i & 1 ? 6 : -6 })
+          .attr("x", function(d, i) { return i & 1 ? width : 0 })
+          .attr("y", x0)
+          .attr("text-anchor", function(d, i) { return i & 1 ? "start" : "end"; })
+          .text(format)
+        .transition()
+          .duration(duration)
+          .attr("y", x1);
+
+      boxTick.transition()
+          .duration(duration)
+          .text(format)
+          .attr("y", x1);
+
+      // Update whisker ticks. These are handled separately from the box
+      // ticks because they may or may not exist, and we want don't want
+      // to join box ticks pre-transition with whisker ticks post-.
+      var whiskerTick = g.selectAll("text.whisker")
+          .data(whiskerData || []);
+
+      whiskerTick.enter().append("svg:text")
+          .attr("class", "whisker")
+          .attr("dy", ".3em")
+          .attr("dx", 6)
+          .attr("x", width)
+          .attr("y", x0)
+          .text(format)
+          .style("opacity", 1e-6)
+        .transition()
+          .duration(duration)
+          .attr("y", x1)
+          .style("opacity", 1);
+
+      whiskerTick.transition()
+          .duration(duration)
+          .text(format)
+          .attr("y", x1)
+          .style("opacity", 1);
+
+      whiskerTick.exit().transition()
+          .duration(duration)
+          .attr("y", x1)
+          .style("opacity", 1e-6)
+          .remove();
+    });
+    d3.timer.flush();
+  }
+
+  box.width = function(x) {
+    if (!arguments.length) return width;
+    width = x;
+    return box;
+  };
+
+  box.height = function(x) {
+    if (!arguments.length) return height;
+    height = x;
+    return box;
+  };
+
+  box.tickFormat = function(x) {
+    if (!arguments.length) return tickFormat;
+    tickFormat = x;
+    return box;
+  };
+
+  box.duration = function(x) {
+    if (!arguments.length) return duration;
+    duration = x;
+    return box;
+  };
+
+  box.domain = function(x) {
+    if (!arguments.length) return domain;
+    domain = x == null ? x : d3.functor(x);
+    return box;
+  };
+
+  box.value = function(x) {
+    if (!arguments.length) return value;
+    value = x;
+    return box;
+  };
+
+  box.whiskers = function(x) {
+    if (!arguments.length) return whiskers;
+    whiskers = x;
+    return box;
+  };
+
+  box.quartiles = function(x) {
+    if (!arguments.length) return quartiles;
+    quartiles = x;
+    return box;
+  };
+
+  return box;
+};
+
+function d3_chart_boxWhiskers(d) {
+  return [0, d.length - 1];
+}
+
+function d3_chart_boxQuartiles(d) {
+  return [
+    d3.quantile(d, .25),
+    d3.quantile(d, .5),
+    d3.quantile(d, .75)
+  ];
+}
+// Chart design based on the recommendations of Stephen Few. Implementation
+// based on the work of Clint Ivy, Jamie Love, and Jason Davies.
+// http://projects.instantcognition.com/protovis/bulletchart/
+d3.chart.bullet = function() {
+  var orient = "left", // TODO top & bottom
+      reverse = false,
+      duration = 0,
+      ranges = d3_chart_bulletRanges,
+      markers = d3_chart_bulletMarkers,
+      measures = d3_chart_bulletMeasures,
+      width = 380,
+      height = 30,
+      tickFormat = null;
+
+  // For each small multiple…
+  function bullet(g) {
+    g.each(function(d, i) {
+      var rangez = ranges.call(this, d, i).slice().sort(d3.descending),
+          markerz = markers.call(this, d, i).slice().sort(d3.descending),
+          measurez = measures.call(this, d, i).slice().sort(d3.descending),
+          g = d3.select(this);
+
+      // Compute the new x-scale.
+      var x1 = d3.scale.linear()
+          .domain([0, Math.max(rangez[0], markerz[0], measurez[0])])
+          .range(reverse ? [width, 0] : [0, width]);
+
+      // Retrieve the old x-scale, if this is an update.
+      var x0 = this.__chart__ || d3.scale.linear()
+          .domain([0, Infinity])
+          .range(x1.range());
+
+      // Stash the new scale.
+      this.__chart__ = x1;
+
+      // Derive width-scales from the x-scales.
+      var w0 = d3_chart_bulletWidth(x0),
+          w1 = d3_chart_bulletWidth(x1);
+
+      // Update the range rects.
+      var range = g.selectAll("rect.range")
+          .data(rangez);
+
+      range.enter().append("svg:rect")
+          .attr("class", function(d, i) { return "range s" + i; })
+          .attr("width", w0)
+          .attr("height", height)
+          .attr("x", reverse ? x0 : 0)
+        .transition()
+          .duration(duration)
+          .attr("width", w1)
+          .attr("x", reverse ? x1 : 0);
+
+      range.transition()
+          .duration(duration)
+          .attr("x", reverse ? x1 : 0)
+          .attr("width", w1)
+          .attr("height", height);
+
+      // Update the measure rects.
+      var measure = g.selectAll("rect.measure")
+          .data(measurez);
+
+      measure.enter().append("svg:rect")
+          .attr("class", function(d, i) { return "measure s" + i; })
+          .attr("width", w0)
+          .attr("height", height / 3)
+          .attr("x", reverse ? x0 : 0)
+          .attr("y", height / 3)
+        .transition()
+          .duration(duration)
+          .attr("width", w1)
+          .attr("x", reverse ? x1 : 0);
+
+      measure.transition()
+          .duration(duration)
+          .attr("width", w1)
+          .attr("height", height / 3)
+          .attr("x", reverse ? x1 : 0)
+          .attr("y", height / 3);
+
+      // Update the marker lines.
+      var marker = g.selectAll("line.marker")
+          .data(markerz);
+
+      marker.enter().append("svg:line")
+          .attr("class", "marker")
+          .attr("x1", x0)
+          .attr("x2", x0)
+          .attr("y1", height / 6)
+          .attr("y2", height * 5 / 6)
+        .transition()
+          .duration(duration)
+          .attr("x1", x1)
+          .attr("x2", x1);
+
+      marker.transition()
+          .duration(duration)
+          .attr("x1", x1)
+          .attr("x2", x1)
+          .attr("y1", height / 6)
+          .attr("y2", height * 5 / 6);
+
+      // Compute the tick format.
+      var format = tickFormat || x1.tickFormat(8);
+
+      // Update the tick groups.
+      var tick = g.selectAll("g.tick")
+          .data(x1.ticks(8), function(d) {
+            return this.textContent || format(d);
+          });
+
+      // Initialize the ticks with the old scale, x0.
+      var tickEnter = tick.enter().append("svg:g")
+          .attr("class", "tick")
+          .attr("transform", d3_chart_bulletTranslate(x0))
+          .style("opacity", 1e-6);
+
+      tickEnter.append("svg:line")
+          .attr("y1", height)
+          .attr("y2", height * 7 / 6);
+
+      tickEnter.append("svg:text")
+          .attr("text-anchor", "middle")
+          .attr("dy", "1em")
+          .attr("y", height * 7 / 6)
+          .text(format);
+
+      // Transition the entering ticks to the new scale, x1.
+      tickEnter.transition()
+          .duration(duration)
+          .attr("transform", d3_chart_bulletTranslate(x1))
+          .style("opacity", 1);
+
+      // Transition the updating ticks to the new scale, x1.
+      var tickUpdate = tick.transition()
+          .duration(duration)
+          .attr("transform", d3_chart_bulletTranslate(x1))
+          .style("opacity", 1);
+
+      tickUpdate.select("line")
+          .attr("y1", height)
+          .attr("y2", height * 7 / 6);
+
+      tickUpdate.select("text")
+          .attr("y", height * 7 / 6);
+
+      // Transition the exiting ticks to the new scale, x1.
+      tick.exit().transition()
+          .duration(duration)
+          .attr("transform", d3_chart_bulletTranslate(x1))
+          .style("opacity", 1e-6)
+          .remove();
+    });
+    d3.timer.flush();
+  }
+
+  // left, right, top, bottom
+  bullet.orient = function(x) {
+    if (!arguments.length) return orient;
+    orient = x;
+    reverse = orient == "right" || orient == "bottom";
+    return bullet;
+  };
+
+  // ranges (bad, satisfactory, good)
+  bullet.ranges = function(x) {
+    if (!arguments.length) return ranges;
+    ranges = x;
+    return bullet;
+  };
+
+  // markers (previous, goal)
+  bullet.markers = function(x) {
+    if (!arguments.length) return markers;
+    markers = x;
+    return bullet;
+  };
+
+  // measures (actual, forecast)
+  bullet.measures = function(x) {
+    if (!arguments.length) return measures;
+    measures = x;
+    return bullet;
+  };
+
+  bullet.width = function(x) {
+    if (!arguments.length) return width;
+    width = x;
+    return bullet;
+  };
+
+  bullet.height = function(x) {
+    if (!arguments.length) return height;
+    height = x;
+    return bullet;
+  };
+
+  bullet.tickFormat = function(x) {
+    if (!arguments.length) return tickFormat;
+    tickFormat = x;
+    return bullet;
+  };
+
+  bullet.duration = function(x) {
+    if (!arguments.length) return duration;
+    duration = x;
+    return bullet;
+  };
+
+  return bullet;
+};
+
+function d3_chart_bulletRanges(d) {
+  return d.ranges;
+}
+
+function d3_chart_bulletMarkers(d) {
+  return d.markers;
+}
+
+function d3_chart_bulletMeasures(d) {
+  return d.measures;
+}
+
+function d3_chart_bulletTranslate(x) {
+  return function(d) {
+    return "translate(" + x(d) + ",0)";
+  };
+}
+
+function d3_chart_bulletWidth(x) {
+  var x0 = x(0);
+  return function(d) {
+    return Math.abs(x(d) - x0);
+  };
+}
+// Implements a horizon layout, which is a variation of a single-series
+// area chart where the area is folded into multiple bands. Color is used to
+// encode band, allowing the size of the chart to be reduced significantly
+// without impeding readability. This layout algorithm is based on the work of
+// J. Heer, N. Kong and M. Agrawala in "Sizing the Horizon: The Effects of Chart
+// Size and Layering on the Graphical Perception of Time Series Visualizations",
+// CHI 2009. http://hci.stanford.edu/publications/2009/heer-horizon-chi09.pdf
+d3.chart.horizon = function() {
+  var bands = 1, // between 1 and 5, typically
+      mode = "offset", // or mirror
+      interpolate = "linear", // or basis, monotone, step-before, etc.
+      x = d3_chart_horizonX,
+      y = d3_chart_horizonY,
+      w = 960,
+      h = 40,
+      duration = 0;
+
+  var color = d3.scale.linear()
+      .domain([-1, 0, 1])
+      .range(["#d62728", "#fff", "#1f77b4"]);
+
+  // For each small multiple…
+  function horizon(g) {
+    g.each(function(d, i) {
+      var g = d3.select(this),
+          n = 2 * bands + 1,
+          xMin = Infinity,
+          xMax = -Infinity,
+          yMax = -Infinity,
+          x0, // old x-scale
+          y0, // old y-scale
+          id; // unique id for paths
+
+      // Compute x- and y-values along with extents.
+      var data = d.map(function(d, i) {
+        var xv = x.call(this, d, i),
+            yv = y.call(this, d, i);
+        if (xv < xMin) xMin = xv;
+        if (xv > xMax) xMax = xv;
+        if (-yv > yMax) yMax = -yv;
+        if (yv > yMax) yMax = yv;
+        return [xv, yv];
+      });
+
+      // Compute the new x- and y-scales.
+      var x1 = d3.scale.linear().domain([xMin, xMax]).range([0, w]),
+          y1 = d3.scale.linear().domain([0, yMax]).range([0, h * bands]);
+
+      // Retrieve the old scales, if this is an update.
+      if (this.__chart__) {
+        x0 = this.__chart__.x;
+        y0 = this.__chart__.y;
+        id = this.__chart__.id;
+      } else {
+        x0 = d3.scale.linear().domain([0, Infinity]).range(x1.range());
+        y0 = d3.scale.linear().domain([0, Infinity]).range(y1.range());
+        id = ++d3_chart_horizonId;
+      }
+
+      // We'll use a defs to store the area path and the clip path.
+      var defs = g.selectAll("defs")
+          .data([data]);
+
+      var defsEnter = defs.enter().append("svg:defs");
+
+      // The clip path is a simple rect.
+      defsEnter.append("svg:clipPath")
+          .attr("id", "d3_chart_horizon_clip" + id)
+        .append("svg:rect")
+          .attr("width", w)
+          .attr("height", h);
+
+      defs.select("rect").transition()
+          .duration(duration)
+          .attr("width", w)
+          .attr("height", h);
+
+      // The area path is rendered with our resuable d3.svg.area.
+      defsEnter.append("svg:path")
+          .attr("id", "d3_chart_horizon_path" + id)
+          .attr("d", d3_chart_horizonArea
+          .interpolate(interpolate)
+          .x(function(d) { return x0(d[0]); })
+          .y0(h * bands)
+          .y1(function(d) { return h * bands - y0(d[1]); }))
+        .transition()
+          .duration(duration)
+          .attr("d", d3_chart_horizonArea
+          .x(function(d) { return x1(d[0]); })
+          .y1(function(d) { return h * bands - y1(d[1]); }));
+
+      defs.select("path").transition()
+          .duration(duration)
+          .attr("d", d3_chart_horizonArea);
+
+      // We'll use a container to clip all horizon layers at once.
+      g.selectAll("g")
+          .data([null])
+        .enter().append("svg:g")
+          .attr("clip-path", "url(#d3_chart_horizon_clip" + id + ")");
+
+      // Define the transform function based on the mode.
+      var transform = mode == "offset"
+          ? function(d) { return "translate(0," + (d + (d < 0) - bands) * h + ")"; }
+          : function(d) { return (d < 0 ? "scale(1,-1)" : "") + "translate(0," + (d - bands) * h + ")"; };
+
+      // Instantiate each copy of the path with different transforms.
+      var u = g.select("g").selectAll("use")
+          .data(d3.range(-1, -bands - 1, -1).concat(d3.range(1, bands + 1)), Number);
+
+      // TODO don't fudge the enter transition
+      u.enter().append("svg:use")
+          .attr("xlink:href", "#d3_chart_horizon_path" + id)
+          .attr("transform", function(d) { return transform(d + (d > 0 ? 1 : -1)); })
+          .style("fill", color)
+        .transition()
+          .duration(duration)
+          .attr("transform", transform);
+
+      u.transition()
+          .duration(duration)
+          .attr("transform", transform)
+          .style("fill", color);
+
+      u.exit().transition()
+          .duration(duration)
+          .attr("transform", transform)
+          .remove();
+
+      // Stash the new scales.
+      this.__chart__ = {x: x1, y: y1, id: id};
+    });
+    d3.timer.flush();
+  }
+
+  horizon.duration = function(x) {
+    if (!arguments.length) return duration;
+    duration = +x;
+    return horizon;
+  };
+
+  horizon.bands = function(x) {
+    if (!arguments.length) return bands;
+    bands = +x;
+    color.domain([-bands, 0, bands]);
+    return horizon;
+  };
+
+  horizon.mode = function(x) {
+    if (!arguments.length) return mode;
+    mode = x + "";
+    return horizon;
+  };
+
+  horizon.colors = function(x) {
+    if (!arguments.length) return color.range();
+    color.range(x);
+    return horizon;
+  };
+
+  horizon.interpolate = function(x) {
+    if (!arguments.length) return interpolate;
+    interpolate = x + "";
+    return horizon;
+  };
+
+  horizon.x = function(z) {
+    if (!arguments.length) return x;
+    x = z;
+    return horizon;
+  };
+
+  horizon.y = function(z) {
+    if (!arguments.length) return y;
+    y = z;
+    return horizon;
+  };
+
+  horizon.width = function(x) {
+    if (!arguments.length) return w;
+    w = +x;
+    return horizon;
+  };
+
+  horizon.height = function(x) {
+    if (!arguments.length) return h;
+    h = +x;
+    return horizon;
+  };
+
+  return horizon;
+};
+
+var d3_chart_horizonArea = d3.svg.area(),
+    d3_chart_horizonId = 0;
+
+function d3_chart_horizonX(d) {
+  return d[0];
+}
+
+function d3_chart_horizonY(d) {
+  return d[1];
+}
+// Based on http://vis.stanford.edu/protovis/ex/qqplot.html
+d3.chart.qq = function() {
+  var width = 1,
+      height = 1,
+      duration = 0,
+      domain = null,
+      tickFormat = null,
+      n = 100,
+      x = d3_chart_qqX,
+      y = d3_chart_qqY;
+
+  // For each small multiple…
+  function qq(g) {
+    g.each(function(d, i) {
+      var g = d3.select(this),
+          qx = d3_chart_qqQuantiles(n, x.call(this, d, i)),
+          qy = d3_chart_qqQuantiles(n, y.call(this, d, i)),
+          xd = domain && domain.call(this, d, i) || [d3.min(qx), d3.max(qx)], // new x-domain
+          yd = domain && domain.call(this, d, i) || [d3.min(qy), d3.max(qy)], // new y-domain
+          x0, // old x-scale
+          y0; // old y-scale
+
+      // Compute the new x-scale.
+      var x1 = d3.scale.linear()
+          .domain(xd)
+          .range([0, width]);
+
+      // Compute the new y-scale.
+      var y1 = d3.scale.linear()
+          .domain(yd)
+          .range([height, 0]);
+
+      // Retrieve the old scales, if this is an update.
+      if (this.__chart__) {
+        x0 = this.__chart__.x;
+        y0 = this.__chart__.y;
+      } else {
+        x0 = d3.scale.linear().domain([0, Infinity]).range(x1.range());
+        y0 = d3.scale.linear().domain([0, Infinity]).range(y1.range());
+      }
+
+      // Stash the new scales.
+      this.__chart__ = {x: x1, y: y1};
+
+      // Update diagonal line.
+      var diagonal = g.selectAll("line.diagonal")
+          .data([null]);
+
+      diagonal.enter().append("svg:line")
+          .attr("class", "diagonal")
+          .attr("x1", x1(yd[0]))
+          .attr("y1", y1(xd[0]))
+          .attr("x2", x1(yd[1]))
+          .attr("y2", y1(xd[1]));
+
+      diagonal.transition()
+          .duration(duration)
+          .attr("x1", x1(yd[0]))
+          .attr("y1", y1(xd[0]))
+          .attr("x2", x1(yd[1]))
+          .attr("y2", y1(xd[1]));
+
+      // Update quantile plots.
+      var circle = g.selectAll("circle")
+          .data(d3.range(n).map(function(i) {
+            return {x: qx[i], y: qy[i]};
+          }));
+
+      circle.enter().append("svg:circle")
+          .attr("class", "quantile")
+          .attr("r", 4.5)
+          .attr("cx", function(d) { return x0(d.x); })
+          .attr("cy", function(d) { return y0(d.y); })
+          .style("opacity", 1e-6)
+        .transition()
+          .duration(duration)
+          .attr("cx", function(d) { return x1(d.x); })
+          .attr("cy", function(d) { return y1(d.y); })
+          .style("opacity", 1);
+
+      circle.transition()
+          .duration(duration)
+          .attr("cx", function(d) { return x1(d.x); })
+          .attr("cy", function(d) { return y1(d.y); })
+          .style("opacity", 1);
+
+      circle.exit().transition()
+          .duration(duration)
+          .attr("cx", function(d) { return x1(d.x); })
+          .attr("cy", function(d) { return y1(d.y); })
+          .style("opacity", 1e-6)
+          .remove();
+
+      var xformat = tickFormat || x1.tickFormat(4),
+          yformat = tickFormat || y1.tickFormat(4),
+          tx = function(d) { return "translate(" + x1(d) + "," + height + ")"; },
+          ty = function(d) { return "translate(0," + y1(d) + ")"; };
+
+      // Update x-ticks.
+      var xtick = g.selectAll("g.x.tick")
+          .data(x1.ticks(4), function(d) {
+            return this.textContent || xformat(d);
+          });
+
+      var xtickEnter = xtick.enter().append("svg:g")
+          .attr("class", "x tick")
+          .attr("transform", function(d) { return "translate(" + x0(d) + "," + height + ")"; })
+          .style("opacity", 1e-6);
+
+      xtickEnter.append("svg:line")
+          .attr("y1", 0)
+          .attr("y2", -6);
+
+      xtickEnter.append("svg:text")
+          .attr("text-anchor", "middle")
+          .attr("dy", "1em")
+          .text(xformat);
+
+      // Transition the entering ticks to the new scale, x1.
+      xtickEnter.transition()
+          .duration(duration)
+          .attr("transform", tx)
+          .style("opacity", 1);
+
+      // Transition the updating ticks to the new scale, x1.
+      xtick.transition()
+          .duration(duration)
+          .attr("transform", tx)
+          .style("opacity", 1);
+
+      // Transition the exiting ticks to the new scale, x1.
+      xtick.exit().transition()
+          .duration(duration)
+          .attr("transform", tx)
+          .style("opacity", 1e-6)
+          .remove();
+
+      // Update ticks.
+      var ytick = g.selectAll("g.y.tick")
+          .data(y1.ticks(4), function(d) {
+            return this.textContent || yformat(d);
+          });
+
+      var ytickEnter = ytick.enter().append("svg:g")
+          .attr("class", "y tick")
+          .attr("transform", function(d) { return "translate(0," + y0(d) + ")"; })
+          .style("opacity", 1e-6);
+
+      ytickEnter.append("svg:line")
+          .attr("x1", 0)
+          .attr("x2", 6);
+
+      ytickEnter.append("svg:text")
+          .attr("text-anchor", "end")
+          .attr("dx", "-.5em")
+          .attr("dy", ".3em")
+          .text(yformat);
+
+      // Transition the entering ticks to the new scale, y1.
+      ytickEnter.transition()
+          .duration(duration)
+          .attr("transform", ty)
+          .style("opacity", 1);
+
+      // Transition the updating ticks to the new scale, y1.
+      ytick.transition()
+          .duration(duration)
+          .attr("transform", ty)
+          .style("opacity", 1);
+
+      // Transition the exiting ticks to the new scale, y1.
+      ytick.exit().transition()
+          .duration(duration)
+          .attr("transform", ty)
+          .style("opacity", 1e-6)
+          .remove();
+    });
+  }
+
+  qq.width = function(x) {
+    if (!arguments.length) return width;
+    width = x;
+    return qq;
+  };
+
+  qq.height = function(x) {
+    if (!arguments.length) return height;
+    height = x;
+    return qq;
+  };
+
+  qq.duration = function(x) {
+    if (!arguments.length) return duration;
+    duration = x;
+    return qq;
+  };
+
+  qq.domain = function(x) {
+    if (!arguments.length) return domain;
+    domain = x == null ? x : d3.functor(x);
+    return qq;
+  };
+
+  qq.count = function(z) {
+    if (!arguments.length) return n;
+    n = z;
+    return qq;
+  };
+
+  qq.x = function(z) {
+    if (!arguments.length) return x;
+    x = z;
+    return qq;
+  };
+
+  qq.y = function(z) {
+    if (!arguments.length) return y;
+    y = z;
+    return qq;
+  };
+
+  qq.tickFormat = function(x) {
+    if (!arguments.length) return tickFormat;
+    tickFormat = x;
+    return qq;
+  };
+
+  return qq;
+};
+
+function d3_chart_qqQuantiles(n, values) {
+  var m = values.length - 1;
+  values = values.slice().sort(d3.ascending);
+  return d3.range(n).map(function(i) {
+    return values[~~(i * m / n)];
+  });
+}
+
+function d3_chart_qqX(d) {
+  return d.x;
+}
+
+function d3_chart_qqY(d) {
+  return d.y;
+}
+})();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/d3/d3.chart.min.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,1 @@
+(function(){function a(a){return[0,a.length-1]}function b(a){return[d3.quantile(a,.25),d3.quantile(a,.5),d3.quantile(a,.75)]}function c(a){return a.ranges}function d(a){return a.markers}function e(a){return a.measures}function f(a){return function(b){return"translate("+a(b)+",0)"}}function g(a){var b=a(0);return function(c){return Math.abs(a(c)-b)}}function j(a){return a[0]}function k(a){return a[1]}function l(a,b){var c=b.length-1;return b=b.slice().sort(d3.ascending),d3.range(a).map(function(d){return b[~~(d*c/a)]})}function m(a){return a.x}function n(a){return a.y}d3.chart={},d3.chart.box=function(){function k(a){a.each(function(a,b){a=a.map(g).sort(d3.ascending);var k=d3.select(this),l=a.length,m=a[0],n=a[l-1],o=a.quartiles=i(a),p=h&&h.call(this,a,b),q=p&&p.map(function(b){return a[b]}),r=p?d3.range(0,p[0]).concat(d3.range(p[1]+1,l)):d3.range(l),s=d3.scale.linear().domain(f&&f.call(this,a,b)||[m,n]).range([d,0]),t=this.__chart__||d3.scale.linear().domain([0,Infinity]).range(s.range());this.__chart__=s;var u=k.selectAll("line.center").data(q?[q]:[]);u.enter().insert("svg:line","rect").attr("class","center").attr("x1",c/2).attr("y1",function(a){return t(a[0])}).attr("x2",c/2).attr("y2",function(a){return t(a[1])}).style("opacity",1e-6).transition().duration(e).style("opacity",1).attr("y1",function(a){return s(a[0])}).attr("y2",function(a){return s(a[1])}),u.transition().duration(e).style("opacity",1).attr("y1",function(a){return s(a[0])}).attr("y2",function(a){return s(a[1])}),u.exit().transition().duration(e).style("opacity",1e-6).attr("y1",function(a){return s(a[0])}).attr("y2",function(a){return s(a[1])}).remove();var v=k.selectAll("rect.box").data([o]);v.enter().append("svg:rect").attr("class","box").attr("x",0).attr("y",function(a){return t(a[2])}).attr("width",c).attr("height",function(a){return t(a[0])-t(a[2])}).transition().duration(e).attr("y",function(a){return s(a[2])}).attr("height",function(a){return s(a[0])-s(a[2])}),v.transition().duration(e).attr("y",function(a){return s(a[2])}).attr("height",function(a){return s(a[0])-s(a[2])});var w=k.selectAll("line.median").data([o[1]]);w.enter().append("svg:line").attr("class","median").attr("x1",0).attr("y1",t).attr("x2",c).attr("y2",t).transition().duration(e).attr("y1",s).attr("y2",s),w.transition().duration(e).attr("y1",s).attr("y2",s);var x=k.selectAll("line.whisker").data(q||[]);x.enter().insert("svg:line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",t).attr("x2",c).attr("y2",t).style("opacity",1e-6).transition().duration(e).attr("y1",s).attr("y2",s).style("opacity",1),x.transition().duration(e).attr("y1",s).attr("y2",s).style("opacity",1),x.exit().transition().duration(e).attr("y1",s).attr("y2",s).style("opacity",1e-6).remove();var y=k.selectAll("circle.outlier").data(r,Number);y.enter().insert("svg:circle","text").attr("class","outlier").attr("r",5).attr("cx",c/2).attr("cy",function(b){return t(a[b])}).style("opacity",1e-6).transition().duration(e).attr("cy",function(b){return s(a[b])}).style("opacity",1),y.transition().duration(e).attr("cy",function(b){return s(a[b])}).style("opacity",1),y.exit().transition().duration(e).attr("cy",function(b){return s(a[b])}).style("opacity",1e-6).remove();var z=j||s.tickFormat(8),A=k.selectAll("text.box").data(o);A.enter().append("svg:text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return b&1?6:-6}).attr("x",function(a,b){return b&1?c:0}).attr("y",t).attr("text-anchor",function(a,b){return b&1?"start":"end"}).text(z).transition().duration(e).attr("y",s),A.transition().duration(e).text(z).attr("y",s);var B=k.selectAll("text.whisker").data(q||[]);B.enter().append("svg:text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",c).attr("y",t).text(z).style("opacity",1e-6).transition().duration(e).attr("y",s).style("opacity",1),B.transition().duration(e).text(z).attr("y",s).style("opacity",1),B.exit().transition().duration(e).attr("y",s).style("opacity",1e-6).remove()}),d3.timer.flush()}var c=1,d=1,e=0,f=null,g=Number,h=a,i=b,j=null;return k.width=function(a){return arguments.length?(c=a,k):c},k.height=function(a){return arguments.length?(d=a,k):d},k.tickFormat=function(a){return arguments.length?(j=a,k):j},k.duration=function(a){return arguments.length?(e=a,k):e},k.domain=function(a){return arguments.length?(f=a==null?a:d3.functor(a),k):f},k.value=function(a){return arguments.length?(g=a,k):g},k.whiskers=function(a){return arguments.length?(h=a,k):h},k.quartiles=function(a){return arguments.length?(i=a,k):i},k},d3.chart.bullet=function(){function o(a){a.each(function(a,c){var d=i.call(this,a,c).slice().sort(d3.descending),e=j.call(this,a,c).slice().sort(d3.descending),o=k.call(this,a,c).slice().sort(d3.descending),p=d3.select(this),q=d3.scale.linear().domain([0,Math.max(d[0],e[0],o[0])]).range(b?[l,0]:[0,l]),r=this.__chart__||d3.scale.linear().domain([0,Infinity]).range(q.range());this.__chart__=q;var s=g(r),t=g(q),u=p.selectAll("rect.range").data(d);u.enter().append("svg:rect").attr("class",function(a,b){return"range s"+b}).attr("width",s).attr("height",m).attr("x",b?r:0).transition().duration(h).attr("width",t).attr("x",b?q:0),u.transition().duration(h).attr("x",b?q:0).attr("width",t).attr("height",m);var v=p.selectAll("rect.measure").data(o);v.enter().append("svg:rect").attr("class",function(a,b){return"measure s"+b}).attr("width",s).attr("height",m/3).attr("x",b?r:0).attr("y",m/3).transition().duration(h).attr("width",t).attr("x",b?q:0),v.transition().duration(h).attr("width",t).attr("height",m/3).attr("x",b?q:0).attr("y",m/3);var w=p.selectAll("line.marker").data(e);w.enter().append("svg:line").attr("class","marker").attr("x1",r).attr("x2",r).attr("y1",m/6).attr("y2",m*5/6).transition().duration(h).attr("x1",q).attr("x2",q),w.transition().duration(h).attr("x1",q).attr("x2",q).attr("y1",m/6).attr("y2",m*5/6);var x=n||q.tickFormat(8),y=p.selectAll("g.tick").data(q.ticks(8),function(a){return this.textContent||x(a)}),z=y.enter().append("svg:g").attr("class","tick").attr("transform",f(r)).style("opacity",1e-6);z.append("svg:line").attr("y1",m).attr("y2",m*7/6),z.append("svg:text").attr("text-anchor","middle").attr("dy","1em").attr("y",m*7/6).text(x),z.transition().duration(h).attr("transform",f(q)).style("opacity",1);var A=y.transition().duration(h).attr("transform",f(q)).style("opacity",1);A.select("line").attr("y1",m).attr("y2",m*7/6),A.select("text").attr("y",m*7/6),y.exit().transition().duration(h).attr("transform",f(q)).style("opacity",1e-6).remove()}),d3.timer.flush()}var a="left",b=!1,h=0,i=c,j=d,k=e,l=380,m=30,n=null;return o.orient=function(c){return arguments.length?(a=c,b=a=="right"||a=="bottom",o):a},o.ranges=function(a){return arguments.length?(i=a,o):i},o.markers=function(a){return arguments.length?(j=a,o):j},o.measures=function(a){return arguments.length?(k=a,o):k},o.width=function(a){return arguments.length?(l=a,o):l},o.height=function(a){return arguments.length?(m=a,o):m},o.tickFormat=function(a){return arguments.length?(n=a,o):n},o.duration=function(a){return arguments.length?(h=a,o):h},o},d3.chart.horizon=function(){function n(j){j.each(function(j,k){var n=d3.select(this),o=2*a+1,p=Infinity,q=-Infinity,r=-Infinity,s,t,u,v=j.map(function(a,b){var c=d.call(this,a,b),f=e.call(this,a,b);return c<p&&(p=c),c>q&&(q=c),-f>r&&(r=-f),f>r&&(r=f),[c,f]}),z=d3.scale.linear().domain([p,q]).range([0,f]),A=d3.scale.linear().domain([0,r]).range([0,g*a]);this.__chart__?(s=this.__chart__.x,t=this.__chart__.y,u=this.__chart__.id):(s=d3.scale.linear().domain([0,Infinity]).range(z.range()),t=d3.scale.linear().domain([0,Infinity]).range(A.range()),u=++i);var B=n.selectAll("defs").data([v]),C=B.enter().append("svg:defs");C.append("svg:clipPath").attr("id","d3_chart_horizon_clip"+u).append("svg:rect").attr("width",f).attr("height",g),B.select("rect").transition().duration(l).attr("width",f).attr("height",g),C.append("svg:path").attr("id","d3_chart_horizon_path"+u).attr("d",h.interpolate(c).x(function(a){return s(a[0])}).y0(g*a).y1(function(b){return g*a-t(b[1])})).transition().duration(l).attr("d",h.x(function(a){return z(a[0])}).y1(function(b){return g*a-A(b[1])})),B.select("path").transition().duration(l).attr("d",h),n.selectAll("g").data([null]).enter().append("svg:g").attr("clip-path","url(#d3_chart_horizon_clip"+u+")");var D=b=="offset"?function(b){return"translate(0,"+(b+(b<0)-a)*g+")"}:function(b){return(b<0?"scale(1,-1)":"")+"translate(0,"+(b-a)*g+")"},E=n.select("g").selectAll("use").data(d3.range(-1,-a-1,-1).concat(d3.range(1,a+1)),Number);E.enter().append("svg:use").attr("xlink:href","#d3_chart_horizon_path"+u).attr("transform",function(a){return D(a+(a>0?1:-1))}).style("fill",m).transition().duration(l).attr("transform",D),E.transition().duration(l).attr("transform",D).style("fill",m),E.exit().transition().duration(l).attr("transform",D).remove(),this.__chart__={x:z,y:A,id:u}}),d3.timer.flush()}var a=1,b="offset",c="linear",d=j,e=k,f=960,g=40,l=0,m=d3.scale.linear().domain([-1,0,1]).range(["#d62728","#fff","#1f77b4"]);return n.duration=function(a){return arguments.length?(l=+a,n):l},n.bands=function(b){return arguments.length?(a=+b,m.domain([-a,0,a]),n):a},n.mode=function(a){return arguments.length?(b=a+"",n):b},n.colors=function(a){return arguments.length?(m.range(a),n):m.range()},n.interpolate=function(a){return arguments.length?(c=a+"",n):c},n.x=function(a){return arguments.length?(d=a,n):d},n.y=function(a){return arguments.length?(e=a,n):e},n.width=function(a){return arguments.length?(f=+a,n):f},n.height=function(a){return arguments.length?(g=+a,n):g},n};var h=d3.svg.area(),i=0;d3.chart.qq=function(){function i(i){i.each(function(i,j){var k=d3.select(this),m=l(f,g.call(this,i,j)),n=l(f,h.call(this,i,j)),o=d&&d.call(this,i,j)||[d3.min(m),d3.max(m)],p=d&&d.call(this,i,j)||[d3.min(n),d3.max(n)],q,r,s=d3.scale.linear().domain(o).range([0,a]),t=d3.scale.linear().domain(p).range([b,0]);this.__chart__?(q=this.__chart__.x,r=this.__chart__.y):(q=d3.scale.linear().domain([0,Infinity]).range(s.range()),r=d3.scale.linear().domain([0,Infinity]).range(t.range())),this.__chart__={x:s,y:t};var u=k.selectAll("line.diagonal").data([null]);u.enter().append("svg:line").attr("class","diagonal").attr("x1",s(p[0])).attr("y1",t(o[0])).attr("x2",s(p[1])).attr("y2",t(o[1])),u.transition().duration(c).attr("x1",s(p[0])).attr("y1",t(o[0])).attr("x2",s(p[1])).attr("y2",t(o[1]));var v=k.selectAll("circle").data(d3.range(f).map(function(a){return{x:m[a],y:n[a]}}));v.enter().append("svg:circle").attr("class","quantile").attr("r",4.5).attr("cx",function(a){return q(a.x)}).attr("cy",function(a){return r(a.y)}).style("opacity",1e-6).transition().duration(c).attr("cx",function(a){return s(a.x)}).attr("cy",function(a){return t(a.y)}).style("opacity",1),v.transition().duration(c).attr("cx",function(a){return s(a.x)}).attr("cy",function(a){return t(a.y)}).style("opacity",1),v.exit().transition().duration(c).attr("cx",function(a){return s(a.x)}).attr("cy",function(a){return t(a.y)}).style("opacity",1e-6).remove();var w=e||s.tickFormat(4),z=e||t.tickFormat(4),A=function(a){return"translate("+s(a)+","+b+")"},B=function(a){return"translate(0,"+t(a)+")"},C=k.selectAll("g.x.tick").data(s.ticks(4),function(a){return this.textContent||w(a)}),D=C.enter().append("svg:g").attr("class","x tick").attr("transform",function(a){return"translate("+q(a)+","+b+")"}).style("opacity",1e-6);D.append("svg:line").attr("y1",0).attr("y2",-6),D.append("svg:text").attr("text-anchor","middle").attr("dy","1em").text(w),D.transition().duration(c).attr("transform",A).style("opacity",1),C.transition().duration(c).attr("transform",A).style("opacity",1),C.exit().transition().duration(c).attr("transform",A).style("opacity",1e-6).remove();var E=k.selectAll("g.y.tick").data(t.ticks(4),function(a){return this.textContent||z(a)}),F=E.enter().append("svg:g").attr("class","y tick").attr("transform",function(a){return"translate(0,"+r(a)+")"}).style("opacity",1e-6);F.append("svg:line").attr("x1",0).attr("x2",6),F.append("svg:text").attr("text-anchor","end").attr("dx","-.5em").attr("dy",".3em").text(z),F.transition().duration(c).attr("transform",B).style("opacity",1),E.transition().duration(c).attr("transform",B).style("opacity",1),E.exit().transition().duration(c).attr("transform",B).style("opacity",1e-6).remove()})}var a=1,b=1,c=0,d=null,e=null,f=100,g=m,h=n;return i.width=function(b){return arguments.length?(a=b,i):a},i.height=function(a){return arguments.length?(b=a,i):b},i.duration=function(a){return arguments.length?(c=a,i):c},i.domain=function(a){return arguments.length?(d=a==null?a:d3.functor(a),i):d},i.count=function(a){return arguments.length?(f=a,i):f},i.x=function(a){return arguments.length?(g=a,i):g},i.y=function(a){return arguments.length?(h=a,i):h},i.tickFormat=function(a){return arguments.length?(e=a,i):e},i}})();
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/d3/d3.csv.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,92 @@
+(function(){d3.csv = function(url, callback) {
+  d3.text(url, "text/csv", function(text) {
+    callback(text && d3.csv.parse(text));
+  });
+};
+d3.csv.parse = function(text) {
+  var header;
+  return d3.csv.parseRows(text, function(row, i) {
+    if (i) {
+      var o = {}, j = -1, m = header.length;
+      while (++j < m) o[header[j]] = row[j];
+      return o;
+    } else {
+      header = row;
+      return null;
+    }
+  });
+};
+
+d3.csv.parseRows = function(text, f) {
+  var EOL = {}, // sentinel value for end-of-line
+      EOF = {}, // sentinel value for end-of-file
+      rows = [], // output rows
+      re = /\r\n|[,\r\n]/g, // field separator regex
+      n = 0, // the current line number
+      t, // the current token
+      eol; // is the current token followed by EOL?
+
+  re.lastIndex = 0; // work-around bug in FF 3.6
+
+  /** @private Returns the next token. */
+  function token() {
+    if (re.lastIndex >= text.length) return EOF; // special case: end of file
+    if (eol) { eol = false; return EOL; } // special case: end of line
+
+    // special case: quotes
+    var j = re.lastIndex;
+    if (text.charCodeAt(j) === 34) {
+      var i = j;
+      while (i++ < text.length) {
+        if (text.charCodeAt(i) === 34) {
+          if (text.charCodeAt(i + 1) !== 34) break;
+          i++;
+        }
+      }
+      re.lastIndex = i + 2;
+      var c = text.charCodeAt(i + 1);
+      if (c === 13) {
+        eol = true;
+        if (text.charCodeAt(i + 2) === 10) re.lastIndex++;
+      } else if (c === 10) {
+        eol = true;
+      }
+      return text.substring(j + 1, i).replace(/""/g, "\"");
+    }
+
+    // common case
+    var m = re.exec(text);
+    if (m) {
+      eol = m[0].charCodeAt(0) !== 44;
+      return text.substring(j, m.index);
+    }
+    re.lastIndex = text.length;
+    return text.substring(j);
+  }
+
+  while ((t = token()) !== EOF) {
+    var a = [];
+    while ((t !== EOL) && (t !== EOF)) {
+      a.push(t);
+      t = token();
+    }
+    if (f && !(a = f(a, n++))) continue;
+    rows.push(a);
+  }
+
+  return rows;
+};
+d3.csv.format = function(rows) {
+  return rows.map(d3_csv_formatRow).join("\n");
+};
+
+function d3_csv_formatRow(row) {
+  return row.map(d3_csv_formatValue).join(",");
+}
+
+function d3_csv_formatValue(text) {
+  return /[",\n]/.test(text)
+      ? "\"" + text.replace(/\"/g, "\"\"") + "\""
+      : text;
+}
+})();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/d3/d3.csv.min.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,1 @@
+(function(){function a(a){return a.map(b).join(",")}function b(a){return/[",\n]/.test(a)?'"'+a.replace(/\"/g,'""')+'"':a}d3.csv=function(a,b){d3.text(a,"text/csv",function(a){b(a&&d3.csv.parse(a))})},d3.csv.parse=function(a){var b;return d3.csv.parseRows(a,function(a,c){if(c){var d={},e=-1,f=b.length;while(++e<f)d[b[e]]=a[e];return d}return b=a,null})},d3.csv.parseRows=function(a,b){function j(){if(f.lastIndex>=a.length)return d;if(i)return i=!1,c;var b=f.lastIndex;if(a.charCodeAt(b)===34){var e=b;while(e++<a.length)if(a.charCodeAt(e)===34){if(a.charCodeAt(e+1)!==34)break;e++}f.lastIndex=e+2;var g=a.charCodeAt(e+1);return g===13?(i=!0,a.charCodeAt(e+2)===10&&f.lastIndex++):g===10&&(i=!0),a.substring(b+1,e).replace(/""/g,'"')}var h=f.exec(a);return h?(i=h[0].charCodeAt(0)!==44,a.substring(b,h.index)):(f.lastIndex=a.length,a.substring(b))}var c={},d={},e=[],f=/\r\n|[,\r\n]/g,g=0,h,i;f.lastIndex=0;while((h=j())!==d){var k=[];while(h!==c&&h!==d)k.push(h),h=j();if(b&&!(k=b(k,g++)))continue;e.push(k)}return e},d3.csv.format=function(b){return b.map(a).join("\n")}})();
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/d3/d3.geo.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,931 @@
+(function(){d3.geo = {};
+
+var d3_geo_radians = Math.PI / 180;
+// TODO clip input coordinates on opposite hemisphere
+d3.geo.azimuthal = function() {
+  var mode = "orthographic", // or stereographic, gnomonic, equidistant or equalarea
+      origin,
+      scale = 200,
+      translate = [480, 250],
+      x0,
+      y0,
+      cy0,
+      sy0;
+
+  function azimuthal(coordinates) {
+    var x1 = coordinates[0] * d3_geo_radians - x0,
+        y1 = coordinates[1] * d3_geo_radians,
+        cx1 = Math.cos(x1),
+        sx1 = Math.sin(x1),
+        cy1 = Math.cos(y1),
+        sy1 = Math.sin(y1),
+        cc = mode !== "orthographic" ? sy0 * sy1 + cy0 * cy1 * cx1 : null,
+        c,
+        k = mode === "stereographic" ? 1 / (1 + cc)
+          : mode === "gnomonic" ? 1 / cc
+          : mode === "equidistant" ? (c = Math.acos(cc), c ? c / Math.sin(c) : 0)
+          : mode === "equalarea" ? Math.sqrt(2 / (1 + cc))
+          : 1,
+        x = k * cy1 * sx1,
+        y = k * (sy0 * cy1 * cx1 - cy0 * sy1);
+    return [
+      scale * x + translate[0],
+      scale * y + translate[1]
+    ];
+  }
+
+  azimuthal.invert = function(coordinates) {
+    var x = (coordinates[0] - translate[0]) / scale,
+        y = (coordinates[1] - translate[1]) / scale,
+        p = Math.sqrt(x * x + y * y),
+        c = mode === "stereographic" ? 2 * Math.atan(p)
+          : mode === "gnomonic" ? Math.atan(p)
+          : mode === "equidistant" ? p
+          : mode === "equalarea" ? 2 * Math.asin(.5 * p)
+          : Math.asin(p),
+        sc = Math.sin(c),
+        cc = Math.cos(c);
+    return [
+      (x0 + Math.atan2(x * sc, p * cy0 * cc + y * sy0 * sc)) / d3_geo_radians,
+      Math.asin(cc * sy0 - (p ? (y * sc * cy0) / p : 0)) / d3_geo_radians
+    ];
+  };
+
+  azimuthal.mode = function(x) {
+    if (!arguments.length) return mode;
+    mode = x + "";
+    return azimuthal;
+  };
+
+  azimuthal.origin = function(x) {
+    if (!arguments.length) return origin;
+    origin = x;
+    x0 = origin[0] * d3_geo_radians;
+    y0 = origin[1] * d3_geo_radians;
+    cy0 = Math.cos(y0);
+    sy0 = Math.sin(y0);
+    return azimuthal;
+  };
+
+  azimuthal.scale = function(x) {
+    if (!arguments.length) return scale;
+    scale = +x;
+    return azimuthal;
+  };
+
+  azimuthal.translate = function(x) {
+    if (!arguments.length) return translate;
+    translate = [+x[0], +x[1]];
+    return azimuthal;
+  };
+
+  return azimuthal.origin([0, 0]);
+};
+// Derived from Tom Carden's Albers implementation for Protovis.
+// http://gist.github.com/476238
+// http://mathworld.wolfram.com/AlbersEqual-AreaConicProjection.html
+
+d3.geo.albers = function() {
+  var origin = [-98, 38],
+      parallels = [29.5, 45.5],
+      scale = 1000,
+      translate = [480, 250],
+      lng0, // d3_geo_radians * origin[0]
+      n,
+      C,
+      p0;
+
+  function albers(coordinates) {
+    var t = n * (d3_geo_radians * coordinates[0] - lng0),
+        p = Math.sqrt(C - 2 * n * Math.sin(d3_geo_radians * coordinates[1])) / n;
+    return [
+      scale * p * Math.sin(t) + translate[0],
+      scale * (p * Math.cos(t) - p0) + translate[1]
+    ];
+  }
+
+  albers.invert = function(coordinates) {
+    var x = (coordinates[0] - translate[0]) / scale,
+        y = (coordinates[1] - translate[1]) / scale,
+        p0y = p0 + y,
+        t = Math.atan2(x, p0y),
+        p = Math.sqrt(x * x + p0y * p0y);
+    return [
+      (lng0 + t / n) / d3_geo_radians,
+      Math.asin((C - p * p * n * n) / (2 * n)) / d3_geo_radians
+    ];
+  };
+
+  function reload() {
+    var phi1 = d3_geo_radians * parallels[0],
+        phi2 = d3_geo_radians * parallels[1],
+        lat0 = d3_geo_radians * origin[1],
+        s = Math.sin(phi1),
+        c = Math.cos(phi1);
+    lng0 = d3_geo_radians * origin[0];
+    n = .5 * (s + Math.sin(phi2));
+    C = c * c + 2 * n * s;
+    p0 = Math.sqrt(C - 2 * n * Math.sin(lat0)) / n;
+    return albers;
+  }
+
+  albers.origin = function(x) {
+    if (!arguments.length) return origin;
+    origin = [+x[0], +x[1]];
+    return reload();
+  };
+
+  albers.parallels = function(x) {
+    if (!arguments.length) return parallels;
+    parallels = [+x[0], +x[1]];
+    return reload();
+  };
+
+  albers.scale = function(x) {
+    if (!arguments.length) return scale;
+    scale = +x;
+    return albers;
+  };
+
+  albers.translate = function(x) {
+    if (!arguments.length) return translate;
+    translate = [+x[0], +x[1]];
+    return albers;
+  };
+
+  return reload();
+};
+
+// A composite projection for the United States, 960x500. The set of standard
+// parallels for each region comes from USGS, which is published here:
+// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers
+// TODO allow the composite projection to be rescaled?
+d3.geo.albersUsa = function() {
+  var lower48 = d3.geo.albers();
+
+  var alaska = d3.geo.albers()
+      .origin([-160, 60])
+      .parallels([55, 65]);
+
+  var hawaii = d3.geo.albers()
+      .origin([-160, 20])
+      .parallels([8, 18]);
+
+  var puertoRico = d3.geo.albers()
+      .origin([-60, 10])
+      .parallels([8, 18]);
+
+  function albersUsa(coordinates) {
+    var lon = coordinates[0],
+        lat = coordinates[1];
+    return (lat > 50 ? alaska
+        : lon < -140 ? hawaii
+        : lat < 21 ? puertoRico
+        : lower48)(coordinates);
+  }
+
+  albersUsa.scale = function(x) {
+    if (!arguments.length) return lower48.scale();
+    lower48.scale(x);
+    alaska.scale(x * .6);
+    hawaii.scale(x);
+    puertoRico.scale(x * 1.5);
+    return albersUsa.translate(lower48.translate());
+  };
+
+  albersUsa.translate = function(x) {
+    if (!arguments.length) return lower48.translate();
+    var dz = lower48.scale() / 1000,
+        dx = x[0],
+        dy = x[1];
+    lower48.translate(x);
+    alaska.translate([dx - 400 * dz, dy + 170 * dz]);
+    hawaii.translate([dx - 190 * dz, dy + 200 * dz]);
+    puertoRico.translate([dx + 580 * dz, dy + 430 * dz]);
+    return albersUsa;
+  };
+
+  return albersUsa.scale(lower48.scale());
+};
+d3.geo.bonne = function() {
+  var scale = 200,
+      translate = [480, 250],
+      x0, // origin longitude in radians
+      y0, // origin latitude in radians
+      y1, // parallel latitude in radians
+      c1; // cot(y1)
+
+  function bonne(coordinates) {
+    var x = coordinates[0] * d3_geo_radians - x0,
+        y = coordinates[1] * d3_geo_radians - y0;
+    if (y1) {
+      var p = c1 + y1 - y, E = x * Math.cos(y) / p;
+      x = p * Math.sin(E);
+      y = p * Math.cos(E) - c1;
+    } else {
+      x *= Math.cos(y);
+      y *= -1;
+    }
+    return [
+      scale * x + translate[0],
+      scale * y + translate[1]
+    ];
+  }
+
+  bonne.invert = function(coordinates) {
+    var x = (coordinates[0] - translate[0]) / scale,
+        y = (coordinates[1] - translate[1]) / scale;
+    if (y1) {
+      var c = c1 + y, p = Math.sqrt(x * x + c * c);
+      y = c1 + y1 - p;
+      x = x0 + p * Math.atan2(x, c) / Math.cos(y);
+    } else {
+      y *= -1;
+      x /= Math.cos(y);
+    }
+    return [
+      x / d3_geo_radians,
+      y / d3_geo_radians
+    ];
+  };
+
+  // 90° for Werner, 0° for Sinusoidal
+  bonne.parallel = function(x) {
+    if (!arguments.length) return y1 / d3_geo_radians;
+    c1 = 1 / Math.tan(y1 = x * d3_geo_radians);
+    return bonne;
+  };
+
+  bonne.origin = function(x) {
+    if (!arguments.length) return [x0 / d3_geo_radians, y0 / d3_geo_radians];
+    x0 = x[0] * d3_geo_radians;
+    y0 = x[1] * d3_geo_radians;
+    return bonne;
+  };
+
+  bonne.scale = function(x) {
+    if (!arguments.length) return scale;
+    scale = +x;
+    return bonne;
+  };
+
+  bonne.translate = function(x) {
+    if (!arguments.length) return translate;
+    translate = [+x[0], +x[1]];
+    return bonne;
+  };
+
+  return bonne.origin([0, 0]).parallel(45);
+};
+d3.geo.equirectangular = function() {
+  var scale = 500,
+      translate = [480, 250];
+
+  function equirectangular(coordinates) {
+    var x = coordinates[0] / 360,
+        y = -coordinates[1] / 360;
+    return [
+      scale * x + translate[0],
+      scale * y + translate[1]
+    ];
+  }
+
+  equirectangular.invert = function(coordinates) {
+    var x = (coordinates[0] - translate[0]) / scale,
+        y = (coordinates[1] - translate[1]) / scale;
+    return [
+      360 * x,
+      -360 * y
+    ];
+  };
+
+  equirectangular.scale = function(x) {
+    if (!arguments.length) return scale;
+    scale = +x;
+    return equirectangular;
+  };
+
+  equirectangular.translate = function(x) {
+    if (!arguments.length) return translate;
+    translate = [+x[0], +x[1]];
+    return equirectangular;
+  };
+
+  return equirectangular;
+};
+d3.geo.mercator = function() {
+  var scale = 500,
+      translate = [480, 250];
+
+  function mercator(coordinates) {
+    var x = coordinates[0] / 360,
+        y = -(Math.log(Math.tan(Math.PI / 4 + coordinates[1] * d3_geo_radians / 2)) / d3_geo_radians) / 360;
+    return [
+      scale * x + translate[0],
+      scale * Math.max(-.5, Math.min(.5, y)) + translate[1]
+    ];
+  }
+
+  mercator.invert = function(coordinates) {
+    var x = (coordinates[0] - translate[0]) / scale,
+        y = (coordinates[1] - translate[1]) / scale;
+    return [
+      360 * x,
+      2 * Math.atan(Math.exp(-360 * y * d3_geo_radians)) / d3_geo_radians - 90
+    ];
+  };
+
+  mercator.scale = function(x) {
+    if (!arguments.length) return scale;
+    scale = +x;
+    return mercator;
+  };
+
+  mercator.translate = function(x) {
+    if (!arguments.length) return translate;
+    translate = [+x[0], +x[1]];
+    return mercator;
+  };
+
+  return mercator;
+};
+function d3_geo_type(types, defaultValue) {
+  return function(object) {
+    return object && object.type in types ? types[object.type](object) : defaultValue;
+  };
+}
+/**
+ * Returns a function that, given a GeoJSON object (e.g., a feature), returns
+ * the corresponding SVG path. The function can be customized by overriding the
+ * projection. Point features are mapped to circles with a default radius of
+ * 4.5px; the radius can be specified either as a constant or a function that
+ * is evaluated per object.
+ */
+d3.geo.path = function() {
+  var pointRadius = 4.5,
+      pointCircle = d3_path_circle(pointRadius),
+      projection = d3.geo.albersUsa();
+
+  function path(d, i) {
+    if (typeof pointRadius === "function") {
+      pointCircle = d3_path_circle(pointRadius.apply(this, arguments));
+    }
+    return pathType(d) || null;
+  }
+
+  function project(coordinates) {
+    return projection(coordinates).join(",");
+  }
+
+  var pathType = d3_geo_type({
+
+    FeatureCollection: function(o) {
+      var path = [],
+          features = o.features,
+          i = -1, // features.index
+          n = features.length;
+      while (++i < n) path.push(pathType(features[i].geometry));
+      return path.join("");
+    },
+
+    Feature: function(o) {
+      return pathType(o.geometry);
+    },
+
+    Point: function(o) {
+      return "M" + project(o.coordinates) + pointCircle;
+    },
+
+    MultiPoint: function(o) {
+      var path = [],
+          coordinates = o.coordinates,
+          i = -1, // coordinates.index
+          n = coordinates.length;
+      while (++i < n) path.push("M", project(coordinates[i]), pointCircle);
+      return path.join("");
+    },
+
+    LineString: function(o) {
+      var path = ["M"],
+          coordinates = o.coordinates,
+          i = -1, // coordinates.index
+          n = coordinates.length;
+      while (++i < n) path.push(project(coordinates[i]), "L");
+      path.pop();
+      return path.join("");
+    },
+
+    MultiLineString: function(o) {
+      var path = [],
+          coordinates = o.coordinates,
+          i = -1, // coordinates.index
+          n = coordinates.length,
+          subcoordinates, // coordinates[i]
+          j, // subcoordinates.index
+          m; // subcoordinates.length
+      while (++i < n) {
+        subcoordinates = coordinates[i];
+        j = -1;
+        m = subcoordinates.length;
+        path.push("M");
+        while (++j < m) path.push(project(subcoordinates[j]), "L");
+        path.pop();
+      }
+      return path.join("");
+    },
+
+    Polygon: function(o) {
+      var path = [],
+          coordinates = o.coordinates,
+          i = -1, // coordinates.index
+          n = coordinates.length,
+          subcoordinates, // coordinates[i]
+          j, // subcoordinates.index
+          m; // subcoordinates.length
+      while (++i < n) {
+        subcoordinates = coordinates[i];
+        j = -1;
+        if ((m = subcoordinates.length - 1) > 0) {
+          path.push("M");
+          while (++j < m) path.push(project(subcoordinates[j]), "L");
+          path[path.length - 1] = "Z";
+        }
+      }
+      return path.join("");
+    },
+
+    MultiPolygon: function(o) {
+      var path = [],
+          coordinates = o.coordinates,
+          i = -1, // coordinates index
+          n = coordinates.length,
+          subcoordinates, // coordinates[i]
+          j, // subcoordinates index
+          m, // subcoordinates.length
+          subsubcoordinates, // subcoordinates[j]
+          k, // subsubcoordinates index
+          p; // subsubcoordinates.length
+      while (++i < n) {
+        subcoordinates = coordinates[i];
+        j = -1;
+        m = subcoordinates.length;
+        while (++j < m) {
+          subsubcoordinates = subcoordinates[j];
+          k = -1;
+          if ((p = subsubcoordinates.length - 1) > 0) {
+            path.push("M");
+            while (++k < p) path.push(project(subsubcoordinates[k]), "L");
+            path[path.length - 1] = "Z";
+          }
+        }
+      }
+      return path.join("");
+    },
+
+    GeometryCollection: function(o) {
+      var path = [],
+          geometries = o.geometries,
+          i = -1, // geometries index
+          n = geometries.length;
+      while (++i < n) path.push(pathType(geometries[i]));
+      return path.join("");
+    }
+
+  });
+
+  var areaType = path.area = d3_geo_type({
+
+    FeatureCollection: function(o) {
+      var area = 0,
+          features = o.features,
+          i = -1, // features.index
+          n = features.length;
+      while (++i < n) area += areaType(features[i]);
+      return area;
+    },
+
+    Feature: function(o) {
+      return areaType(o.geometry);
+    },
+
+    Polygon: function(o) {
+      return polygonArea(o.coordinates);
+    },
+
+    MultiPolygon: function(o) {
+      var sum = 0,
+          coordinates = o.coordinates,
+          i = -1, // coordinates index
+          n = coordinates.length;
+      while (++i < n) sum += polygonArea(coordinates[i]);
+      return sum;
+    },
+
+    GeometryCollection: function(o) {
+      var sum = 0,
+          geometries = o.geometries,
+          i = -1, // geometries index
+          n = geometries.length;
+      while (++i < n) sum += areaType(geometries[i]);
+      return sum;
+    }
+
+  }, 0);
+
+  function polygonArea(coordinates) {
+    var sum = area(coordinates[0]), // exterior ring
+        i = 0, // coordinates.index
+        n = coordinates.length;
+    while (++i < n) sum -= area(coordinates[i]); // holes
+    return sum;
+  }
+
+  function polygonCentroid(coordinates) {
+    var polygon = d3.geom.polygon(coordinates[0].map(projection)), // exterior ring
+        area = polygon.area(),
+        centroid = polygon.centroid(area < 0 ? (area *= -1, 1) : -1),
+        x = centroid[0],
+        y = centroid[1],
+        z = area,
+        i = 0, // coordinates index
+        n = coordinates.length;
+    while (++i < n) {
+      polygon = d3.geom.polygon(coordinates[i].map(projection)); // holes
+      area = polygon.area();
+      centroid = polygon.centroid(area < 0 ? (area *= -1, 1) : -1);
+      x -= centroid[0];
+      y -= centroid[1];
+      z -= area;
+    }
+    return [x, y, 6 * z]; // weighted centroid
+  }
+
+  var centroidType = path.centroid = d3_geo_type({
+
+    // TODO FeatureCollection
+    // TODO Point
+    // TODO MultiPoint
+    // TODO LineString
+    // TODO MultiLineString
+    // TODO GeometryCollection
+
+    Feature: function(o) {
+      return centroidType(o.geometry);
+    },
+
+    Polygon: function(o) {
+      var centroid = polygonCentroid(o.coordinates);
+      return [centroid[0] / centroid[2], centroid[1] / centroid[2]];
+    },
+
+    MultiPolygon: function(o) {
+      var area = 0,
+          coordinates = o.coordinates,
+          centroid,
+          x = 0,
+          y = 0,
+          z = 0,
+          i = -1, // coordinates index
+          n = coordinates.length;
+      while (++i < n) {
+        centroid = polygonCentroid(coordinates[i]);
+        x += centroid[0];
+        y += centroid[1];
+        z += centroid[2];
+      }
+      return [x / z, y / z];
+    }
+
+  });
+
+  function area(coordinates) {
+    return Math.abs(d3.geom.polygon(coordinates.map(projection)).area());
+  }
+
+  path.projection = function(x) {
+    projection = x;
+    return path;
+  };
+
+  path.pointRadius = function(x) {
+    if (typeof x === "function") pointRadius = x;
+    else {
+      pointRadius = +x;
+      pointCircle = d3_path_circle(pointRadius);
+    }
+    return path;
+  };
+
+  return path;
+};
+
+function d3_path_circle(radius) {
+  return "m0," + radius
+      + "a" + radius + "," + radius + " 0 1,1 0," + (-2 * radius)
+      + "a" + radius + "," + radius + " 0 1,1 0," + (+2 * radius)
+      + "z";
+}
+/**
+ * Given a GeoJSON object, returns the corresponding bounding box. The bounding
+ * box is represented by a two-dimensional array: [[left, bottom], [right,
+ * top]], where left is the minimum longitude, bottom is the minimum latitude,
+ * right is maximum longitude, and top is the maximum latitude.
+ */
+d3.geo.bounds = function(feature) {
+  var left = Infinity,
+      bottom = Infinity,
+      right = -Infinity,
+      top = -Infinity;
+  d3_geo_bounds(feature, function(x, y) {
+    if (x < left) left = x;
+    if (x > right) right = x;
+    if (y < bottom) bottom = y;
+    if (y > top) top = y;
+  });
+  return [[left, bottom], [right, top]];
+};
+
+function d3_geo_bounds(o, f) {
+  if (o.type in d3_geo_boundsTypes) d3_geo_boundsTypes[o.type](o, f);
+}
+
+var d3_geo_boundsTypes = {
+  Feature: d3_geo_boundsFeature,
+  FeatureCollection: d3_geo_boundsFeatureCollection,
+  LineString: d3_geo_boundsLineString,
+  MultiLineString: d3_geo_boundsMultiLineString,
+  MultiPoint: d3_geo_boundsLineString,
+  MultiPolygon: d3_geo_boundsMultiPolygon,
+  Point: d3_geo_boundsPoint,
+  Polygon: d3_geo_boundsPolygon
+};
+
+function d3_geo_boundsFeature(o, f) {
+  d3_geo_bounds(o.geometry, f);
+}
+
+function d3_geo_boundsFeatureCollection(o, f) {
+  for (var a = o.features, i = 0, n = a.length; i < n; i++) {
+    d3_geo_bounds(a[i].geometry, f);
+  }
+}
+
+function d3_geo_boundsLineString(o, f) {
+  for (var a = o.coordinates, i = 0, n = a.length; i < n; i++) {
+    f.apply(null, a[i]);
+  }
+}
+
+function d3_geo_boundsMultiLineString(o, f) {
+  for (var a = o.coordinates, i = 0, n = a.length; i < n; i++) {
+    for (var b = a[i], j = 0, m = b.length; j < m; j++) {
+      f.apply(null, b[j]);
+    }
+  }
+}
+
+function d3_geo_boundsMultiPolygon(o, f) {
+  for (var a = o.coordinates, i = 0, n = a.length; i < n; i++) {
+    for (var b = a[i][0], j = 0, m = b.length; j < m; j++) {
+      f.apply(null, b[j]);
+    }
+  }
+}
+
+function d3_geo_boundsPoint(o, f) {
+  f.apply(null, o.coordinates);
+}
+
+function d3_geo_boundsPolygon(o, f) {
+  for (var a = o.coordinates[0], i = 0, n = a.length; i < n; i++) {
+    f.apply(null, a[i]);
+  }
+}
+// TODO breakAtDateLine?
+
+d3.geo.circle = function() {
+  var origin = [0, 0],
+      degrees = 90 - 1e-2,
+      radians = degrees * d3_geo_radians,
+      arc = d3.geo.greatArc().target(Object);
+
+  function circle() {
+    // TODO render a circle as a Polygon
+  }
+
+  function visible(point) {
+    return arc.distance(point) < radians;
+  }
+
+  circle.clip = function(d) {
+    arc.source(typeof origin === "function" ? origin.apply(this, arguments) : origin);
+    return clipType(d);
+  };
+
+  var clipType = d3_geo_type({
+
+    FeatureCollection: function(o) {
+      var features = o.features.map(clipType).filter(Object);
+      return features && (o = Object.create(o), o.features = features, o);
+    },
+
+    Feature: function(o) {
+      var geometry = clipType(o.geometry);
+      return geometry && (o = Object.create(o), o.geometry = geometry, o);
+    },
+
+    Point: function(o) {
+      return visible(o.coordinates) && o;
+    },
+
+    MultiPoint: function(o) {
+      var coordinates = o.coordinates.filter(visible);
+      return coordinates.length && {
+        type: o.type,
+        coordinates: coordinates
+      };
+    },
+
+    LineString: function(o) {
+      var coordinates = clip(o.coordinates);
+      return coordinates.length && (o = Object.create(o), o.coordinates = coordinates, o);
+    },
+
+    MultiLineString: function(o) {
+      var coordinates = o.coordinates.map(clip).filter(function(d) { return d.length; });
+      return coordinates.length && (o = Object.create(o), o.coordinates = coordinates, o);
+    },
+
+    Polygon: function(o) {
+      var coordinates = o.coordinates.map(clip);
+      return coordinates[0].length && (o = Object.create(o), o.coordinates = coordinates, o);
+    },
+
+    MultiPolygon: function(o) {
+      var coordinates = o.coordinates.map(function(d) { return d.map(clip); }).filter(function(d) { return d[0].length; });
+      return coordinates.length && (o = Object.create(o), o.coordinates = coordinates, o);
+    },
+
+    GeometryCollection: function(o) {
+      var geometries = o.geometries.map(clipType).filter(Object);
+      return geometries.length && (o = Object.create(o), o.geometries = geometries, o);
+    }
+
+  });
+
+  function clip(coordinates) {
+    var i = -1,
+        n = coordinates.length,
+        clipped = [],
+        p0,
+        p1,
+        p2,
+        d0,
+        d1;
+
+    while (++i < n) {
+      d1 = arc.distance(p2 = coordinates[i]);
+      if (d1 < radians) {
+        if (p1) clipped.push(d3_geo_greatArcInterpolate(p1, p2)((d0 - radians) / (d0 - d1)));
+        clipped.push(p2);
+        p0 = p1 = null;
+      } else {
+        p1 = p2;
+        if (!p0 && clipped.length) {
+          clipped.push(d3_geo_greatArcInterpolate(clipped[clipped.length - 1], p1)((radians - d0) / (d1 - d0)));
+          p0 = p1;
+        }
+      }
+      d0 = d1;
+    }
+
+    if (p1 && clipped.length) {
+      d1 = arc.distance(p2 = clipped[0]);
+      clipped.push(d3_geo_greatArcInterpolate(p1, p2)((d0 - radians) / (d0 - d1)));
+    }
+
+    return resample(clipped);
+  }
+
+  // Resample coordinates, creating great arcs between each.
+  function resample(coordinates) {
+    var i = 0,
+        n = coordinates.length,
+        j,
+        m,
+        resampled = n ? [coordinates[0]] : coordinates,
+        resamples,
+        origin = arc.source();
+
+    while (++i < n) {
+      resamples = arc.source(coordinates[i - 1])(coordinates[i]).coordinates;
+      for (j = 0, m = resamples.length; ++j < m;) resampled.push(resamples[j]);
+    }
+
+    arc.source(origin);
+    return resampled;
+  }
+
+  circle.origin = function(x) {
+    if (!arguments.length) return origin;
+    origin = x;
+    return circle;
+  };
+
+  circle.angle = function(x) {
+    if (!arguments.length) return degrees;
+    radians = (degrees = +x) * d3_geo_radians;
+    return circle;
+  };
+
+  // Precision is specified in degrees.
+  circle.precision = function(x) {
+    if (!arguments.length) return arc.precision();
+    arc.precision(x);
+    return circle;
+  };
+
+  return circle;
+}
+d3.geo.greatArc = function() {
+  var source = d3_geo_greatArcSource,
+      target = d3_geo_greatArcTarget,
+      precision = 6 * d3_geo_radians;
+
+  function greatArc() {
+    var a = typeof source === "function" ? source.apply(this, arguments) : source,
+        b = typeof target === "function" ? target.apply(this, arguments) : target,
+        i = d3_geo_greatArcInterpolate(a, b),
+        dt = precision / i.d,
+        t = 0,
+        coordinates = [a];
+    while ((t += dt) < 1) coordinates.push(i(t));
+    coordinates.push(b);
+    return {
+      type: "LineString",
+      coordinates: coordinates
+    };
+  }
+
+  // Length returned in radians; multiply by radius for distance.
+  greatArc.distance = function() {
+    var a = typeof source === "function" ? source.apply(this, arguments) : source,
+        b = typeof target === "function" ? target.apply(this, arguments) : target;
+     return d3_geo_greatArcInterpolate(a, b).d;
+  };
+
+  greatArc.source = function(x) {
+    if (!arguments.length) return source;
+    source = x;
+    return greatArc;
+  };
+
+  greatArc.target = function(x) {
+    if (!arguments.length) return target;
+    target = x;
+    return greatArc;
+  };
+
+  // Precision is specified in degrees.
+  greatArc.precision = function(x) {
+    if (!arguments.length) return precision / d3_geo_radians;
+    precision = x * d3_geo_radians;
+    return greatArc;
+  };
+
+  return greatArc;
+};
+
+function d3_geo_greatArcSource(d) {
+  return d.source;
+}
+
+function d3_geo_greatArcTarget(d) {
+  return d.target;
+}
+
+function d3_geo_greatArcInterpolate(a, b) {
+  var x0 = a[0] * d3_geo_radians, cx0 = Math.cos(x0), sx0 = Math.sin(x0),
+      y0 = a[1] * d3_geo_radians, cy0 = Math.cos(y0), sy0 = Math.sin(y0),
+      x1 = b[0] * d3_geo_radians, cx1 = Math.cos(x1), sx1 = Math.sin(x1),
+      y1 = b[1] * d3_geo_radians, cy1 = Math.cos(y1), sy1 = Math.sin(y1),
+      d = interpolate.d = Math.acos(Math.max(-1, Math.min(1, sy0 * sy1 + cy0 * cy1 * Math.cos(x1 - x0)))),
+      sd = Math.sin(d);
+
+  // From http://williams.best.vwh.net/avform.htm#Intermediate
+  function interpolate(t) {
+    var A = Math.sin(d - (t *= d)) / sd,
+        B = Math.sin(t) / sd,
+        x = A * cy0 * cx0 + B * cy1 * cx1,
+        y = A * cy0 * sx0 + B * cy1 * sx1,
+        z = A * sy0       + B * sy1;
+    return [
+      Math.atan2(y, x) / d3_geo_radians,
+      Math.atan2(z, Math.sqrt(x * x + y * y)) / d3_geo_radians
+    ];
+  }
+
+  return interpolate;
+}
+d3.geo.greatCircle = d3.geo.circle;
+})();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/d3/d3.geo.min.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,1 @@
+(function(){function b(a,b){return function(c){return c&&c.type in a?a[c.type](c):b}}function c(a){return"m0,"+a+"a"+a+","+a+" 0 1,1 0,"+ -2*a+"a"+a+","+a+" 0 1,1 0,"+2*a+"z"}function d(a,b){a.type in e&&e[a.type](a,b)}function f(a,b){d(a.geometry,b)}function g(a,b){for(var c=a.features,e=0,f=c.length;e<f;e++)d(c[e].geometry,b)}function h(a,b){for(var c=a.coordinates,d=0,e=c.length;d<e;d++)b.apply(null,c[d])}function i(a,b){for(var c=a.coordinates,d=0,e=c.length;d<e;d++)for(var f=c[d],g=0,h=f.length;g<h;g++)b.apply(null,f[g])}function j(a,b){for(var c=a.coordinates,d=0,e=c.length;d<e;d++)for(var f=c[d][0],g=0,h=f.length;g<h;g++)b.apply(null,f[g])}function k(a,b){b.apply(null,a.coordinates)}function l(a,b){for(var c=a.coordinates[0],d=0,e=c.length;d<e;d++)b.apply(null,c[d])}function m(a){return a.source}function n(a){return a.target}function o(b,c){function r(b){var c=Math.sin(p-(b*=p))/q,d=Math.sin(b)/q,g=c*h*e+d*n*k,j=c*h*f+d*n*l,m=c*i+d*o;return[Math.atan2(j,g)/a,Math.atan2(m,Math.sqrt(g*g+j*j))/a]}var d=b[0]*a,e=Math.cos(d),f=Math.sin(d),g=b[1]*a,h=Math.cos(g),i=Math.sin(g),j=c[0]*a,k=Math.cos(j),l=Math.sin(j),m=c[1]*a,n=Math.cos(m),o=Math.sin(m),p=r.d=Math.acos(Math.max(-1,Math.min(1,i*o+h*n*Math.cos(j-d)))),q=Math.sin(p);return r}d3.geo={};var a=Math.PI/180;d3.geo.azimuthal=function(){function j(c){var g=c[0]*a-f,j=c[1]*a,k=Math.cos(g),l=Math.sin(g),m=Math.cos(j),n=Math.sin(j),o=b!=="orthographic"?i*n+h*m*k:null,p,q=b==="stereographic"?1/(1+o):b==="gnomonic"?1/o:b==="equidistant"?(p=Math.acos(o),p?p/Math.sin(p):0):b==="equalarea"?Math.sqrt(2/(1+o)):1,r=q*m*l,s=q*(i*m*k-h*n);return[d*r+e[0],d*s+e[1]]}var b="orthographic",c,d=200,e=[480,250],f,g,h,i;return j.invert=function(c){var g=(c[0]-e[0])/d,j=(c[1]-e[1])/d,k=Math.sqrt(g*g+j*j),l=b==="stereographic"?2*Math.atan(k):b==="gnomonic"?Math.atan(k):b==="equidistant"?k:b==="equalarea"?2*Math.asin(.5*k):Math.asin(k),m=Math.sin(l),n=Math.cos(l);return[(f+Math.atan2(g*m,k*h*n+j*i*m))/a,Math.asin(n*i-(k?j*m*h/k:0))/a]},j.mode=function(a){return arguments.length?(b=a+"",j):b},j.origin=function(b){return arguments.length?(c=b,f=c[0]*a,g=c[1]*a,h=Math.cos(g),i=Math.sin(g),j):c},j.scale=function(a){return arguments.length?(d=+a,j):d},j.translate=function(a){return arguments.length?(e=[+a[0],+a[1]],j):e},j.origin([0,0])},d3.geo.albers=function(){function j(b){var c=g*(a*b[0]-f),j=Math.sqrt(h-2*g*Math.sin(a*b[1]))/g;return[d*j*Math.sin(c)+e[0],d*(j*Math.cos(c)-i)+e[1]]}function k(){var d=a*c[0],e=a*c[1],k=a*b[1],l=Math.sin(d),m=Math.cos(d);return f=a*b[0],g=.5*(l+Math.sin(e)),h=m*m+2*g*l,i=Math.sqrt(h-2*g*Math.sin(k))/g,j}var b=[-98,38],c=[29.5,45.5],d=1e3,e=[480,250],f,g,h,i;return j.invert=function(b){var c=(b[0]-e[0])/d,j=(b[1]-e[1])/d,k=i+j,l=Math.atan2(c,k),m=Math.sqrt(c*c+k*k);return[(f+l/g)/a,Math.asin((h-m*m*g*g)/(2*g))/a]},j.origin=function(a){return arguments.length?(b=[+a[0],+a[1]],k()):b},j.parallels=function(a){return arguments.length?(c=[+a[0],+a[1]],k()):c},j.scale=function(a){return arguments.length?(d=+a,j):d},j.translate=function(a){return arguments.length?(e=[+a[0],+a[1]],j):e},k()},d3.geo.albersUsa=function(){function e(e){var f=e[0],g=e[1];return(g>50?b:f<-140?c:g<21?d:a)(e)}var a=d3.geo.albers(),b=d3.geo.albers().origin([-160,60]).parallels([55,65]),c=d3.geo.albers().origin([-160,20]).parallels([8,18]),d=d3.geo.albers().origin([-60,10]).parallels([8,18]);return e.scale=function(f){return arguments.length?(a.scale(f),b.scale(f*.6),c.scale(f),d.scale(f*1.5),e.translate(a.translate())):a.scale()},e.translate=function(f){if(!arguments.length)return a.translate();var g=a.scale()/1e3,h=f[0],i=f[1];return a.translate(f),b.translate([h-400*g,i+170*g]),c.translate([h-190*g,i+200*g]),d.translate([h+580*g,i+430*g]),e},e.scale(a.scale())},d3.geo.bonne=function(){function h(h){var i=h[0]*a-d,j=h[1]*a-e;if(f){var k=g+f-j,l=i*Math.cos(j)/k;i=k*Math.sin(l),j=k*Math.cos(l)-g}else i*=Math.cos(j),j*=-1;return[b*i+c[0],b*j+c[1]]}var b=200,c=[480,250],d,e,f,g;return h.invert=function(e){var h=(e[0]-c[0])/b,i=(e[1]-c[1])/b;if(f){var j=g+i,k=Math.sqrt(h*h+j*j);i=g+f-k,h=d+k*Math.atan2(h,j)/Math.cos(i)}else i*=-1,h/=Math.cos(i);return[h/a,i/a]},h.parallel=function(b){return arguments.length?(g=1/Math.tan(f=b*a),h):f/a},h.origin=function(b){return arguments.length?(d=b[0]*a,e=b[1]*a,h):[d/a,e/a]},h.scale=function(a){return arguments.length?(b=+a,h):b},h.translate=function(a){return arguments.length?(c=[+a[0],+a[1]],h):c},h.origin([0,0]).parallel(45)},d3.geo.equirectangular=function(){function c(c){var d=c[0]/360,e=-c[1]/360;return[a*d+b[0],a*e+b[1]]}var a=500,b=[480,250];return c.invert=function(c){var d=(c[0]-b[0])/a,e=(c[1]-b[1])/a;return[360*d,-360*e]},c.scale=function(b){return arguments.length?(a=+b,c):a},c.translate=function(a){return arguments.length?(b=[+a[0],+a[1]],c):b},c},d3.geo.mercator=function(){function d(d){var e=d[0]/360,f=-(Math.log(Math.tan(Math.PI/4+d[1]*a/2))/a)/360;return[b*e+c[0],b*Math.max(-0.5,Math.min(.5,f))+c[1]]}var b=500,c=[480,250];return d.invert=function(d){var e=(d[0]-c[0])/b,f=(d[1]-c[1])/b;return[360*e,2*Math.atan(Math.exp(-360*f*a))/a-90]},d.scale=function(a){return arguments.length?(b=+a,d):b},d.translate=function(a){return arguments.length?(c=[+a[0],+a[1]],d):c},d},d3.geo.path=function(){function f(b,e){return typeof a=="function"&&(d=c(a.apply(this,arguments))),h(b)||null}function g(a){return e(a).join(",")}function j(a){var b=m(a[0]),c=0,d=a.length;while(++c<d)b-=m(a[c]);return b}function k(a){var b=d3.geom.polygon(a[0].map(e)),c=b.area(),d=b.centroid(c<0?(c*=-1,1):-1),f=d[0],g=d[1],h=c,i=0,j=a.length;while(++i<j)b=d3.geom.polygon(a[i].map(e)),c=b.area(),d=b.centroid(c<0?(c*=-1,1):-1),f-=d[0],g-=d[1],h-=c;return[f,g,6*h]}function m(a){return Math.abs(d3.geom.polygon(a.map(e)).area())}var a=4.5,d=c(a),e=d3.geo.albersUsa(),h=b({FeatureCollection:function(a){var b=[],c=a.features,d=-1,e=c.length;while(++d<e)b.push(h(c[d].geometry));return b.join("")},Feature:function(a){return h(a.geometry)},Point:function(a){return"M"+g(a.coordinates)+d},MultiPoint:function(a){var b=[],c=a.coordinates,e=-1,f=c.length;while(++e<f)b.push("M",g(c[e]),d);return b.join("")},LineString:function(a){var b=["M"],c=a.coordinates,d=-1,e=c.length;while(++d<e)b.push(g(c[d]),"L");return b.pop(),b.join("")},MultiLineString:function(a){var b=[],c=a.coordinates,d=-1,e=c.length,f,h,i;while(++d<e){f=c[d],h=-1,i=f.length,b.push("M");while(++h<i)b.push(g(f[h]),"L");b.pop()}return b.join("")},Polygon:function(a){var b=[],c=a.coordinates,d=-1,e=c.length,f,h,i;while(++d<e){f=c[d],h=-1;if((i=f.length-1)>0){b.push("M");while(++h<i)b.push(g(f[h]),"L");b[b.length-1]="Z"}}return b.join("")},MultiPolygon:function(a){var b=[],c=a.coordinates,d=-1,e=c.length,f,h,i,j,k,l;while(++d<e){f=c[d],h=-1,i=f.length;while(++h<i){j=f[h],k=-1;if((l=j.length-1)>0){b.push("M");while(++k<l)b.push(g(j[k]),"L");b[b.length-1]="Z"}}}return b.join("")},GeometryCollection:function(a){var b=[],c=a.geometries,d=-1,e=c.length;while(++d<e)b.push(h(c[d]));return b.join("")}}),i=f.area=b({FeatureCollection:function(a){var b=0,c=a.features,d=-1,e=c.length;while(++d<e)b+=i(c[d]);return b},Feature:function(a){return i(a.geometry)},Polygon:function(a){return j(a.coordinates)},MultiPolygon:function(a){var b=0,c=a.coordinates,d=-1,e=c.length;while(++d<e)b+=j(c[d]);return b},GeometryCollection:function(a){var b=0,c=a.geometries,d=-1,e=c.length;while(++d<e)b+=i(c[d]);return b}},0),l=f.centroid=b({Feature:function(a){return l(a.geometry)},Polygon:function(a){var b=k(a.coordinates);return[b[0]/b[2],b[1]/b[2]]},MultiPolygon:function(a){var b=0,c=a.coordinates,d,e=0,f=0,g=0,h=-1,i=c.length;while(++h<i)d=k(c[h]),e+=d[0],f+=d[1],g+=d[2];return[e/g,f/g]}});return f.projection=function(a){return e=a,f},f.pointRadius=function(b){return typeof b=="function"?a=b:(a=+b,d=c(a)),f},f},d3.geo.bounds=function(a){var b=Infinity,c=Infinity,e=-Infinity,f=-Infinity;return d(a,function(a,d){a<b&&(b=a),a>e&&(e=a),d<c&&(c=d),d>f&&(f=d)}),[[b,c],[e,f]]};var e={Feature:f,FeatureCollection:g,LineString:h,MultiLineString:i,MultiPoint:h,MultiPolygon:j,Point:k,Polygon:l};d3.geo.circle=function(){function g(){}function h(a){return f.distance(a)<e}function j(a){var b=-1,c=a.length,d=[],g,h,i,j,l;while(++b<c)l=f.distance(i=a[b]),l<e?(h&&d.push(o(h,i)((j-e)/(j-l))),d.push(i),g=h=null):(h=i,!g&&d.length&&(d.push(o(d[d.length-1],h)((e-j)/(l-j))),g=h)),j=l;return h&&d.length&&(l=f.distance(i=d[0]),d.push(o(h,i)((j-e)/(j-l)))),k(d)}function k(a){var b=0,c=a.length,d,e,g=c?[a[0]]:a,h,i=f.source();while(++b<c){h=f.source(a[b-1])(a[b]).coordinates;for(d=0,e=h.length;++d<e;)g.push(h[d])}return f.source(i),g}var c=[0,0],d=89.99,e=d*a,f=d3.geo.greatArc().target(Object);g.clip=function(a){return f.source(typeof c=="function"?c.apply(this,arguments):c),i(a)};var i=b({FeatureCollection:function(a){var b=a.features.map(i).filter(Object);return b&&(a=Object.create(a),a.features=b,a)},Feature:function(a){var b=i(a.geometry);return b&&(a=Object.create(a),a.geometry=b,a)},Point:function(a){return h(a.coordinates)&&a},MultiPoint:function(a){var b=a.coordinates.filter(h);return b.length&&{type:a.type,coordinates:b}},LineString:function(a){var b=j(a.coordinates);return b.length&&(a=Object.create(a),a.coordinates=b,a)},MultiLineString:function(a){var b=a.coordinates.map(j).filter(function(a){return a.length});return b.length&&(a=Object.create(a),a.coordinates=b,a)},Polygon:function(a){var b=a.coordinates.map(j);return b[0].length&&(a=Object.create(a),a.coordinates=b,a)},MultiPolygon:function(a){var b=a.coordinates.map(function(a){return a.map(j)}).filter(function(a){return a[0].length});return b.length&&(a=Object.create(a),a.coordinates=b,a)},GeometryCollection:function(a){var b=a.geometries.map(i).filter(Object);return b.length&&(a=Object.create(a),a.geometries=b,a)}});return g.origin=function(a){return arguments.length?(c=a,g):c},g.angle=function(b){return arguments.length?(e=(d=+b)*a,g):d},g.precision=function(a){return arguments.length?(f.precision(a),g):f.precision()},g},d3.geo.greatArc=function(){function e(){var a=typeof b=="function"?b.apply(this,arguments):b,e=typeof c=="function"?c.apply(this,arguments):c,f=o(a,e),g=d/f.d,h=0,i=[a];while((h+=g)<1)i.push(f(h));return i.push(e),{type:"LineString",coordinates:i}}var b=m,c=n,d=6*a;return e.distance=function(){var a=typeof b=="function"?b.apply(this,arguments):b,d=typeof c=="function"?c.apply(this,arguments):c;return o(a,d).d},e.source=function(a){return arguments.length?(b=a,e):b},e.target=function(a){return arguments.length?(c=a,e):c},e.precision=function(b){return arguments.length?(d=b*a,e):d/a},e},d3.geo.greatCircle=d3.geo.circle})();
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/d3/d3.geom.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,835 @@
+(function(){d3.geom = {};
+/**
+ * Computes a contour for a given input grid function using the <a
+ * href="http://en.wikipedia.org/wiki/Marching_squares">marching
+ * squares</a> algorithm. Returns the contour polygon as an array of points.
+ *
+ * @param grid a two-input function(x, y) that returns true for values
+ * inside the contour and false for values outside the contour.
+ * @param start an optional starting point [x, y] on the grid.
+ * @returns polygon [[x1, y1], [x2, y2], …]
+ */
+d3.geom.contour = function(grid, start) {
+  var s = start || d3_geom_contourStart(grid), // starting point
+      c = [],    // contour polygon
+      x = s[0],  // current x position
+      y = s[1],  // current y position
+      dx = 0,    // next x direction
+      dy = 0,    // next y direction
+      pdx = NaN, // previous x direction
+      pdy = NaN, // previous y direction
+      i = 0;
+
+  do {
+    // determine marching squares index
+    i = 0;
+    if (grid(x-1, y-1)) i += 1;
+    if (grid(x,   y-1)) i += 2;
+    if (grid(x-1, y  )) i += 4;
+    if (grid(x,   y  )) i += 8;
+
+    // determine next direction
+    if (i === 6) {
+      dx = pdy === -1 ? -1 : 1;
+      dy = 0;
+    } else if (i === 9) {
+      dx = 0;
+      dy = pdx === 1 ? -1 : 1;
+    } else {
+      dx = d3_geom_contourDx[i];
+      dy = d3_geom_contourDy[i];
+    }
+
+    // update contour polygon
+    if (dx != pdx && dy != pdy) {
+      c.push([x, y]);
+      pdx = dx;
+      pdy = dy;
+    }
+
+    x += dx;
+    y += dy;
+  } while (s[0] != x || s[1] != y);
+
+  return c;
+};
+
+// lookup tables for marching directions
+var d3_geom_contourDx = [1, 0, 1, 1,-1, 0,-1, 1,0, 0,0,0,-1, 0,-1,NaN],
+    d3_geom_contourDy = [0,-1, 0, 0, 0,-1, 0, 0,1,-1,1,1, 0,-1, 0,NaN];
+
+function d3_geom_contourStart(grid) {
+  var x = 0,
+      y = 0;
+
+  // search for a starting point; begin at origin
+  // and proceed along outward-expanding diagonals
+  while (true) {
+    if (grid(x,y)) {
+      return [x,y];
+    }
+    if (x === 0) {
+      x = y + 1;
+      y = 0;
+    } else {
+      x = x - 1;
+      y = y + 1;
+    }
+  }
+}
+/**
+ * Computes the 2D convex hull of a set of points using Graham's scanning
+ * algorithm. The algorithm has been implemented as described in Cormen,
+ * Leiserson, and Rivest's Introduction to Algorithms. The running time of
+ * this algorithm is O(n log n), where n is the number of input points.
+ *
+ * @param vertices [[x1, y1], [x2, y2], …]
+ * @returns polygon [[x1, y1], [x2, y2], …]
+ */
+d3.geom.hull = function(vertices) {
+  if (vertices.length < 3) return [];
+
+  var len = vertices.length,
+      plen = len - 1,
+      points = [],
+      stack = [],
+      i, j, h = 0, x1, y1, x2, y2, u, v, a, sp;
+
+  // find the starting ref point: leftmost point with the minimum y coord
+  for (i=1; i<len; ++i) {
+    if (vertices[i][1] < vertices[h][1]) {
+      h = i;
+    } else if (vertices[i][1] == vertices[h][1]) {
+      h = (vertices[i][0] < vertices[h][0] ? i : h);
+    }
+  }
+
+  // calculate polar angles from ref point and sort
+  for (i=0; i<len; ++i) {
+    if (i === h) continue;
+    y1 = vertices[i][1] - vertices[h][1];
+    x1 = vertices[i][0] - vertices[h][0];
+    points.push({angle: Math.atan2(y1, x1), index: i});
+  }
+  points.sort(function(a, b) { return a.angle - b.angle; });
+
+  // toss out duplicate angles
+  a = points[0].angle;
+  v = points[0].index;
+  u = 0;
+  for (i=1; i<plen; ++i) {
+    j = points[i].index;
+    if (a == points[i].angle) {
+      // keep angle for point most distant from the reference
+      x1 = vertices[v][0] - vertices[h][0];
+      y1 = vertices[v][1] - vertices[h][1];
+      x2 = vertices[j][0] - vertices[h][0];
+      y2 = vertices[j][1] - vertices[h][1];
+      if ((x1*x1 + y1*y1) >= (x2*x2 + y2*y2)) {
+        points[i].index = -1;
+      } else {
+        points[u].index = -1;
+        a = points[i].angle;
+        u = i;
+        v = j;
+      }
+    } else {
+      a = points[i].angle;
+      u = i;
+      v = j;
+    }
+  }
+
+  // initialize the stack
+  stack.push(h);
+  for (i=0, j=0; i<2; ++j) {
+    if (points[j].index !== -1) {
+      stack.push(points[j].index);
+      i++;
+    }
+  }
+  sp = stack.length;
+
+  // do graham's scan
+  for (; j<plen; ++j) {
+    if (points[j].index === -1) continue; // skip tossed out points
+    while (!d3_geom_hullCCW(stack[sp-2], stack[sp-1], points[j].index, vertices)) {
+      --sp;
+    }
+    stack[sp++] = points[j].index;
+  }
+
+  // construct the hull
+  var poly = [];
+  for (i=0; i<sp; ++i) {
+    poly.push(vertices[stack[i]]);
+  }
+  return poly;
+}
+
+// are three points in counter-clockwise order?
+function d3_geom_hullCCW(i1, i2, i3, v) {
+  var t, a, b, c, d, e, f;
+  t = v[i1]; a = t[0]; b = t[1];
+  t = v[i2]; c = t[0]; d = t[1];
+  t = v[i3]; e = t[0]; f = t[1];
+  return ((f-b)*(c-a) - (d-b)*(e-a)) > 0;
+}
+// Note: requires coordinates to be counterclockwise and convex!
+d3.geom.polygon = function(coordinates) {
+
+  coordinates.area = function() {
+    var i = 0,
+        n = coordinates.length,
+        a = coordinates[n - 1][0] * coordinates[0][1],
+        b = coordinates[n - 1][1] * coordinates[0][0];
+    while (++i < n) {
+      a += coordinates[i - 1][0] * coordinates[i][1];
+      b += coordinates[i - 1][1] * coordinates[i][0];
+    }
+    return (b - a) * .5;
+  };
+
+  coordinates.centroid = function(k) {
+    var i = -1,
+        n = coordinates.length - 1,
+        x = 0,
+        y = 0,
+        a,
+        b,
+        c;
+    if (!arguments.length) k = -1 / (6 * coordinates.area());
+    while (++i < n) {
+      a = coordinates[i];
+      b = coordinates[i + 1];
+      c = a[0] * b[1] - b[0] * a[1];
+      x += (a[0] + b[0]) * c;
+      y += (a[1] + b[1]) * c;
+    }
+    return [x * k, y * k];
+  };
+
+  // The Sutherland-Hodgman clipping algorithm.
+  coordinates.clip = function(subject) {
+    var input,
+        i = -1,
+        n = coordinates.length,
+        j,
+        m,
+        a = coordinates[n - 1],
+        b,
+        c,
+        d;
+    while (++i < n) {
+      input = subject.slice();
+      subject.length = 0;
+      b = coordinates[i];
+      c = input[(m = input.length) - 1];
+      j = -1;
+      while (++j < m) {
+        d = input[j];
+        if (d3_geom_polygonInside(d, a, b)) {
+          if (!d3_geom_polygonInside(c, a, b)) {
+            subject.push(d3_geom_polygonIntersect(c, d, a, b));
+          }
+          subject.push(d);
+        } else if (d3_geom_polygonInside(c, a, b)) {
+          subject.push(d3_geom_polygonIntersect(c, d, a, b));
+        }
+        c = d;
+      }
+      a = b;
+    }
+    return subject;
+  };
+
+  return coordinates;
+};
+
+function d3_geom_polygonInside(p, a, b) {
+  return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);
+}
+
+// Intersect two infinite lines cd and ab.
+function d3_geom_polygonIntersect(c, d, a, b) {
+  var x1 = c[0], x2 = d[0], x3 = a[0], x4 = b[0],
+      y1 = c[1], y2 = d[1], y3 = a[1], y4 = b[1],
+      x13 = x1 - x3,
+      x21 = x2 - x1,
+      x43 = x4 - x3,
+      y13 = y1 - y3,
+      y21 = y2 - y1,
+      y43 = y4 - y3,
+      ua = (x43 * y13 - y43 * x13) / (y43 * x21 - x43 * y21);
+  return [x1 + ua * x21, y1 + ua * y21];
+}
+// Adapted from Nicolas Garcia Belmonte's JIT implementation:
+// http://blog.thejit.org/2010/02/12/voronoi-tessellation/
+// http://blog.thejit.org/assets/voronoijs/voronoi.js
+// See lib/jit/LICENSE for details.
+
+// Notes:
+//
+// This implementation does not clip the returned polygons, so if you want to
+// clip them to a particular shape you will need to do that either in SVG or by
+// post-processing with d3.geom.polygon's clip method.
+//
+// If any vertices are coincident or have NaN positions, the behavior of this
+// method is undefined. Most likely invalid polygons will be returned. You
+// should filter invalid points, and consolidate coincident points, before
+// computing the tessellation.
+
+/**
+ * @param vertices [[x1, y1], [x2, y2], …]
+ * @returns polygons [[[x1, y1], [x2, y2], …], …]
+ */
+d3.geom.voronoi = function(vertices) {
+  var polygons = vertices.map(function() { return []; });
+
+  d3_voronoi_tessellate(vertices, function(e) {
+    var s1,
+        s2,
+        x1,
+        x2,
+        y1,
+        y2;
+    if (e.a === 1 && e.b >= 0) {
+      s1 = e.ep.r;
+      s2 = e.ep.l;
+    } else {
+      s1 = e.ep.l;
+      s2 = e.ep.r;
+    }
+    if (e.a === 1) {
+      y1 = s1 ? s1.y : -1e6;
+      x1 = e.c - e.b * y1;
+      y2 = s2 ? s2.y : 1e6;
+      x2 = e.c - e.b * y2;
+    } else {
+      x1 = s1 ? s1.x : -1e6;
+      y1 = e.c - e.a * x1;
+      x2 = s2 ? s2.x : 1e6;
+      y2 = e.c - e.a * x2;
+    }
+    var v1 = [x1, y1],
+        v2 = [x2, y2];
+    polygons[e.region.l.index].push(v1, v2);
+    polygons[e.region.r.index].push(v1, v2);
+  });
+
+  // Reconnect the polygon segments into counterclockwise loops.
+  return polygons.map(function(polygon, i) {
+    var cx = vertices[i][0],
+        cy = vertices[i][1];
+    polygon.forEach(function(v) {
+      v.angle = Math.atan2(v[0] - cx, v[1] - cy);
+    });
+    return polygon.sort(function(a, b) {
+      return a.angle - b.angle;
+    }).filter(function(d, i) {
+      return !i || (d.angle - polygon[i - 1].angle > 1e-10);
+    });
+  });
+};
+
+var d3_voronoi_opposite = {"l": "r", "r": "l"};
+
+function d3_voronoi_tessellate(vertices, callback) {
+
+  var Sites = {
+    list: vertices
+      .map(function(v, i) {
+        return {
+          index: i,
+          x: v[0],
+          y: v[1]
+        };
+      })
+      .sort(function(a, b) {
+        return a.y < b.y ? -1
+          : a.y > b.y ? 1
+          : a.x < b.x ? -1
+          : a.x > b.x ? 1
+          : 0;
+      }),
+    bottomSite: null
+  };
+
+  var EdgeList = {
+    list: [],
+    leftEnd: null,
+    rightEnd: null,
+
+    init: function() {
+      EdgeList.leftEnd = EdgeList.createHalfEdge(null, "l");
+      EdgeList.rightEnd = EdgeList.createHalfEdge(null, "l");
+      EdgeList.leftEnd.r = EdgeList.rightEnd;
+      EdgeList.rightEnd.l = EdgeList.leftEnd;
+      EdgeList.list.unshift(EdgeList.leftEnd, EdgeList.rightEnd);
+    },
+
+    createHalfEdge: function(edge, side) {
+      return {
+        edge: edge,
+        side: side,
+        vertex: null,
+        "l": null,
+        "r": null
+      };
+    },
+
+    insert: function(lb, he) {
+      he.l = lb;
+      he.r = lb.r;
+      lb.r.l = he;
+      lb.r = he;
+    },
+
+    leftBound: function(p) {
+      var he = EdgeList.leftEnd;
+      do {
+        he = he.r;
+      } while (he != EdgeList.rightEnd && Geom.rightOf(he, p));
+      he = he.l;
+      return he;
+    },
+
+    del: function(he) {
+      he.l.r = he.r;
+      he.r.l = he.l;
+      he.edge = null;
+    },
+
+    right: function(he) {
+      return he.r;
+    },
+
+    left: function(he) {
+      return he.l;
+    },
+
+    leftRegion: function(he) {
+      return he.edge == null
+          ? Sites.bottomSite
+          : he.edge.region[he.side];
+    },
+
+    rightRegion: function(he) {
+      return he.edge == null
+          ? Sites.bottomSite
+          : he.edge.region[d3_voronoi_opposite[he.side]];
+    }
+  };
+
+  var Geom = {
+
+    bisect: function(s1, s2) {
+      var newEdge = {
+        region: {"l": s1, "r": s2},
+        ep: {"l": null, "r": null}
+      };
+
+      var dx = s2.x - s1.x,
+          dy = s2.y - s1.y,
+          adx = dx > 0 ? dx : -dx,
+          ady = dy > 0 ? dy : -dy;
+
+      newEdge.c = s1.x * dx + s1.y * dy
+          + (dx * dx + dy * dy) * .5;
+
+      if (adx > ady) {
+        newEdge.a = 1;
+        newEdge.b = dy / dx;
+        newEdge.c /= dx;
+      } else {
+        newEdge.b = 1;
+        newEdge.a = dx / dy;
+        newEdge.c /= dy;
+      }
+
+      return newEdge;
+    },
+
+    intersect: function(el1, el2) {
+      var e1 = el1.edge,
+          e2 = el2.edge;
+      if (!e1 || !e2 || (e1.region.r == e2.region.r)) {
+        return null;
+      }
+      var d = (e1.a * e2.b) - (e1.b * e2.a);
+      if (Math.abs(d) < 1e-10) {
+        return null;
+      }
+      var xint = (e1.c * e2.b - e2.c * e1.b) / d,
+          yint = (e2.c * e1.a - e1.c * e2.a) / d,
+          e1r = e1.region.r,
+          e2r = e2.region.r,
+          el,
+          e;
+      if ((e1r.y < e2r.y) ||
+         (e1r.y == e2r.y && e1r.x < e2r.x)) {
+        el = el1;
+        e = e1;
+      } else {
+        el = el2;
+        e = e2;
+      }
+      var rightOfSite = (xint >= e.region.r.x);
+      if ((rightOfSite && (el.side === "l")) ||
+        (!rightOfSite && (el.side === "r"))) {
+        return null;
+      }
+      return {
+        x: xint,
+        y: yint
+      };
+    },
+
+    rightOf: function(he, p) {
+      var e = he.edge,
+          topsite = e.region.r,
+          rightOfSite = (p.x > topsite.x);
+
+      if (rightOfSite && (he.side === "l")) {
+        return 1;
+      }
+      if (!rightOfSite && (he.side === "r")) {
+        return 0;
+      }
+      if (e.a === 1) {
+        var dyp = p.y - topsite.y,
+            dxp = p.x - topsite.x,
+            fast = 0,
+            above = 0;
+
+        if ((!rightOfSite && (e.b < 0)) ||
+          (rightOfSite && (e.b >= 0))) {
+          above = fast = (dyp >= e.b * dxp);
+        } else {
+          above = ((p.x + p.y * e.b) > e.c);
+          if (e.b < 0) {
+            above = !above;
+          }
+          if (!above) {
+            fast = 1;
+          }
+        }
+        if (!fast) {
+          var dxs = topsite.x - e.region.l.x;
+          above = (e.b * (dxp * dxp - dyp * dyp)) <
+            (dxs * dyp * (1 + 2 * dxp / dxs + e.b * e.b));
+
+          if (e.b < 0) {
+            above = !above;
+          }
+        }
+      } else /* e.b == 1 */ {
+        var yl = e.c - e.a * p.x,
+            t1 = p.y - yl,
+            t2 = p.x - topsite.x,
+            t3 = yl - topsite.y;
+
+        above = (t1 * t1) > (t2 * t2 + t3 * t3);
+      }
+      return he.side === "l" ? above : !above;
+    },
+
+    endPoint: function(edge, side, site) {
+      edge.ep[side] = site;
+      if (!edge.ep[d3_voronoi_opposite[side]]) return;
+      callback(edge);
+    },
+
+    distance: function(s, t) {
+      var dx = s.x - t.x,
+          dy = s.y - t.y;
+      return Math.sqrt(dx * dx + dy * dy);
+    }
+  };
+
+  var EventQueue = {
+    list: [],
+
+    insert: function(he, site, offset) {
+      he.vertex = site;
+      he.ystar = site.y + offset;
+      for (var i=0, list=EventQueue.list, l=list.length; i<l; i++) {
+        var next = list[i];
+        if (he.ystar > next.ystar ||
+          (he.ystar == next.ystar &&
+          site.x > next.vertex.x)) {
+          continue;
+        } else {
+          break;
+        }
+      }
+      list.splice(i, 0, he);
+    },
+
+    del: function(he) {
+      for (var i=0, ls=EventQueue.list, l=ls.length; i<l && (ls[i] != he); ++i) {}
+      ls.splice(i, 1);
+    },
+
+    empty: function() { return EventQueue.list.length === 0; },
+
+    nextEvent: function(he) {
+      for (var i=0, ls=EventQueue.list, l=ls.length; i<l; ++i) {
+        if (ls[i] == he) return ls[i+1];
+      }
+      return null;
+    },
+
+    min: function() {
+      var elem = EventQueue.list[0];
+      return {
+        x: elem.vertex.x,
+        y: elem.ystar
+      };
+    },
+
+    extractMin: function() {
+      return EventQueue.list.shift();
+    }
+  };
+
+  EdgeList.init();
+  Sites.bottomSite = Sites.list.shift();
+
+  var newSite = Sites.list.shift(), newIntStar;
+  var lbnd, rbnd, llbnd, rrbnd, bisector;
+  var bot, top, temp, p, v;
+  var e, pm;
+
+  while (true) {
+    if (!EventQueue.empty()) {
+      newIntStar = EventQueue.min();
+    }
+    if (newSite && (EventQueue.empty()
+      || newSite.y < newIntStar.y
+      || (newSite.y == newIntStar.y
+      && newSite.x < newIntStar.x))) { //new site is smallest
+      lbnd = EdgeList.leftBound(newSite);
+      rbnd = EdgeList.right(lbnd);
+      bot = EdgeList.rightRegion(lbnd);
+      e = Geom.bisect(bot, newSite);
+      bisector = EdgeList.createHalfEdge(e, "l");
+      EdgeList.insert(lbnd, bisector);
+      p = Geom.intersect(lbnd, bisector);
+      if (p) {
+        EventQueue.del(lbnd);
+        EventQueue.insert(lbnd, p, Geom.distance(p, newSite));
+      }
+      lbnd = bisector;
+      bisector = EdgeList.createHalfEdge(e, "r");
+      EdgeList.insert(lbnd, bisector);
+      p = Geom.intersect(bisector, rbnd);
+      if (p) {
+        EventQueue.insert(bisector, p, Geom.distance(p, newSite));
+      }
+      newSite = Sites.list.shift();
+    } else if (!EventQueue.empty()) { //intersection is smallest
+      lbnd = EventQueue.extractMin();
+      llbnd = EdgeList.left(lbnd);
+      rbnd = EdgeList.right(lbnd);
+      rrbnd = EdgeList.right(rbnd);
+      bot = EdgeList.leftRegion(lbnd);
+      top = EdgeList.rightRegion(rbnd);
+      v = lbnd.vertex;
+      Geom.endPoint(lbnd.edge, lbnd.side, v);
+      Geom.endPoint(rbnd.edge, rbnd.side, v);
+      EdgeList.del(lbnd);
+      EventQueue.del(rbnd);
+      EdgeList.del(rbnd);
+      pm = "l";
+      if (bot.y > top.y) {
+        temp = bot;
+        bot = top;
+        top = temp;
+        pm = "r";
+      }
+      e = Geom.bisect(bot, top);
+      bisector = EdgeList.createHalfEdge(e, pm);
+      EdgeList.insert(llbnd, bisector);
+      Geom.endPoint(e, d3_voronoi_opposite[pm], v);
+      p = Geom.intersect(llbnd, bisector);
+      if (p) {
+        EventQueue.del(llbnd);
+        EventQueue.insert(llbnd, p, Geom.distance(p, bot));
+      }
+      p = Geom.intersect(bisector, rrbnd);
+      if (p) {
+        EventQueue.insert(bisector, p, Geom.distance(p, bot));
+      }
+    } else {
+      break;
+    }
+  }//end while
+
+  for (lbnd = EdgeList.right(EdgeList.leftEnd);
+      lbnd != EdgeList.rightEnd;
+      lbnd = EdgeList.right(lbnd)) {
+    callback(lbnd.edge);
+  }
+}
+/**
+* @param vertices [[x1, y1], [x2, y2], …]
+* @returns triangles [[[x1, y1], [x2, y2], [x3, y3]], …]
+ */
+d3.geom.delaunay = function(vertices) {
+  var edges = vertices.map(function() { return []; }),
+      triangles = [];
+
+  // Use the Voronoi tessellation to determine Delaunay edges.
+  d3_voronoi_tessellate(vertices, function(e) {
+    edges[e.region.l.index].push(vertices[e.region.r.index]);
+  });
+
+  // Reconnect the edges into counterclockwise triangles.
+  edges.forEach(function(edge, i) {
+    var v = vertices[i],
+        cx = v[0],
+        cy = v[1];
+    edge.forEach(function(v) {
+      v.angle = Math.atan2(v[0] - cx, v[1] - cy);
+    });
+    edge.sort(function(a, b) {
+      return a.angle - b.angle;
+    });
+    for (var j = 0, m = edge.length - 1; j < m; j++) {
+      triangles.push([v, edge[j], edge[j + 1]]);
+    }
+  });
+
+  return triangles;
+};
+// Constructs a new quadtree for the specified array of points. A quadtree is a
+// two-dimensional recursive spatial subdivision. This implementation uses
+// square partitions, dividing each square into four equally-sized squares. Each
+// point exists in a unique node; if multiple points are in the same position,
+// some points may be stored on internal nodes rather than leaf nodes. Quadtrees
+// can be used to accelerate various spatial operations, such as the Barnes-Hut
+// approximation for computing n-body forces, or collision detection.
+d3.geom.quadtree = function(points, x1, y1, x2, y2) {
+  var p,
+      i = -1,
+      n = points.length;
+
+  // Type conversion for deprecated API.
+  if (n && isNaN(points[0].x)) points = points.map(d3_geom_quadtreePoint);
+
+  // Allow bounds to be specified explicitly.
+  if (arguments.length < 5) {
+    if (arguments.length === 3) {
+      y2 = x2 = y1;
+      y1 = x1;
+    } else {
+      x1 = y1 = Infinity;
+      x2 = y2 = -Infinity;
+
+      // Compute bounds.
+      while (++i < n) {
+        p = points[i];
+        if (p.x < x1) x1 = p.x;
+        if (p.y < y1) y1 = p.y;
+        if (p.x > x2) x2 = p.x;
+        if (p.y > y2) y2 = p.y;
+      }
+
+      // Squarify the bounds.
+      var dx = x2 - x1,
+          dy = y2 - y1;
+      if (dx > dy) y2 = y1 + dx;
+      else x2 = x1 + dy;
+    }
+  }
+
+  // Recursively inserts the specified point p at the node n or one of its
+  // descendants. The bounds are defined by [x1, x2] and [y1, y2].
+  function insert(n, p, x1, y1, x2, y2) {
+    if (isNaN(p.x) || isNaN(p.y)) return; // ignore invalid points
+    if (n.leaf) {
+      var v = n.point;
+      if (v) {
+        // If the point at this leaf node is at the same position as the new
+        // point we are adding, we leave the point associated with the
+        // internal node while adding the new point to a child node. This
+        // avoids infinite recursion.
+        if ((Math.abs(v.x - p.x) + Math.abs(v.y - p.y)) < .01) {
+          insertChild(n, p, x1, y1, x2, y2);
+        } else {
+          n.point = null;
+          insertChild(n, v, x1, y1, x2, y2);
+          insertChild(n, p, x1, y1, x2, y2);
+        }
+      } else {
+        n.point = p;
+      }
+    } else {
+      insertChild(n, p, x1, y1, x2, y2);
+    }
+  }
+
+  // Recursively inserts the specified point p into a descendant of node n. The
+  // bounds are defined by [x1, x2] and [y1, y2].
+  function insertChild(n, p, x1, y1, x2, y2) {
+    // Compute the split point, and the quadrant in which to insert p.
+    var sx = (x1 + x2) * .5,
+        sy = (y1 + y2) * .5,
+        right = p.x >= sx,
+        bottom = p.y >= sy,
+        i = (bottom << 1) + right;
+
+    // Recursively insert into the child node.
+    n.leaf = false;
+    n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());
+
+    // Update the bounds as we recurse.
+    if (right) x1 = sx; else x2 = sx;
+    if (bottom) y1 = sy; else y2 = sy;
+    insert(n, p, x1, y1, x2, y2);
+  }
+
+  // Create the root node.
+  var root = d3_geom_quadtreeNode();
+
+  root.add = function(p) {
+    insert(root, p, x1, y1, x2, y2);
+  };
+
+  root.visit = function(f) {
+    d3_geom_quadtreeVisit(f, root, x1, y1, x2, y2);
+  };
+
+  // Insert all points.
+  points.forEach(root.add);
+  return root;
+};
+
+function d3_geom_quadtreeNode() {
+  return {
+    leaf: true,
+    nodes: [],
+    point: null
+  };
+}
+
+function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {
+  if (!f(node, x1, y1, x2, y2)) {
+    var sx = (x1 + x2) * .5,
+        sy = (y1 + y2) * .5,
+        children = node.nodes;
+    if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);
+    if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);
+    if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);
+    if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);
+  }
+}
+
+function d3_geom_quadtreePoint(p) {
+  return {
+    x: p[0],
+    y: p[1]
+  };
+}
+})();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/d3/d3.geom.min.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,1 @@
+(function(){function c(a){var b=0,c=0;for(;;){if(a(b,c))return[b,c];b===0?(b=c+1,c=0):(b-=1,c+=1)}}function d(a,b,c,d){var e,f,g,h,i,j,k;return e=d[a],f=e[0],g=e[1],e=d[b],h=e[0],i=e[1],e=d[c],j=e[0],k=e[1],(k-g)*(h-f)-(i-g)*(j-f)>0}function e(a,b,c){return(c[0]-b[0])*(a[1]-b[1])<(c[1]-b[1])*(a[0]-b[0])}function f(a,b,c,d){var e=a[0],f=b[0],g=c[0],h=d[0],i=a[1],j=b[1],k=c[1],l=d[1],m=e-g,n=f-e,o=h-g,p=i-k,q=j-i,r=l-k,s=(o*p-r*m)/(r*n-o*q);return[e+s*n,i+s*q]}function h(a,b){var c={list:a.map(function(a,b){return{index:b,x:a[0],y:a[1]}}).sort(function(a,b){return a.y<b.y?-1:a.y>b.y?1:a.x<b.x?-1:a.x>b.x?1:0}),bottomSite:null},d={list:[],leftEnd:null,rightEnd:null,init:function(){d.leftEnd=d.createHalfEdge(null,"l"),d.rightEnd=d.createHalfEdge(null,"l"),d.leftEnd.r=d.rightEnd,d.rightEnd.l=d.leftEnd,d.list.unshift(d.leftEnd,d.rightEnd)},createHalfEdge:function(a,b){return{edge:a,side:b,vertex:null,l:null,r:null}},insert:function(a,b){b.l=a,b.r=a.r,a.r.l=b,a.r=b},leftBound:function(a){var b=d.leftEnd;do b=b.r;while(b!=d.rightEnd&&e.rightOf(b,a));return b=b.l,b},del:function(a){a.l.r=a.r,a.r.l=a.l,a.edge=null},right:function(a){return a.r},left:function(a){return a.l},leftRegion:function(a){return a.edge==null?c.bottomSite:a.edge.region[a.side]},rightRegion:function(a){return a.edge==null?c.bottomSite:a.edge.region[g[a.side]]}},e={bisect:function(a,b){var c={region:{l:a,r:b},ep:{l:null,r:null}},d=b.x-a.x,e=b.y-a.y,f=d>0?d:-d,g=e>0?e:-e;return c.c=a.x*d+a.y*e+(d*d+e*e)*.5,f>g?(c.a=1,c.b=e/d,c.c/=d):(c.b=1,c.a=d/e,c.c/=e),c},intersect:function(a,b){var c=a.edge,d=b.edge;if(!c||!d||c.region.r==d.region.r)return null;var e=c.a*d.b-c.b*d.a;if(Math.abs(e)<1e-10)return null;var f=(c.c*d.b-d.c*c.b)/e,g=(d.c*c.a-c.c*d.a)/e,h=c.region.r,i=d.region.r,j,k;h.y<i.y||h.y==i.y&&h.x<i.x?(j=a,k=c):(j=b,k=d);var l=f>=k.region.r.x;return l&&j.side==="l"||!l&&j.side==="r"?null:{x:f,y:g}},rightOf:function(a,b){var c=a.edge,d=c.region.r,e=b.x>d.x;if(e&&a.side==="l")return 1;if(!e&&a.side==="r")return 0;if(c.a===1){var f=b.y-d.y,g=b.x-d.x,h=0,i=0;!e&&c.b<0||e&&c.b>=0?i=h=f>=c.b*g:(i=b.x+b.y*c.b>c.c,c.b<0&&(i=!i),i||(h=1));if(!h){var j=d.x-c.region.l.x;i=c.b*(g*g-f*f)<j*f*(1+2*g/j+c.b*c.b),c.b<0&&(i=!i)}}else{var k=c.c-c.a*b.x,l=b.y-k,m=b.x-d.x,n=k-d.y;i=l*l>m*m+n*n}return a.side==="l"?i:!i},endPoint:function(a,c,d){a.ep[c]=d;if(!a.ep[g[c]])return;b(a)},distance:function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)}},f={list:[],insert:function(a,b,c){a.vertex=b,a.ystar=b.y+c;for(var d=0,e=f.list,g=e.length;d<g;d++){var h=e[d];if(a.ystar>h.ystar||a.ystar==h.ystar&&b.x>h.vertex.x)continue;break}e.splice(d,0,a)},del:function(a){for(var b=0,c=f.list,d=c.length;b<d&&c[b]!=a;++b);c.splice(b,1)},empty:function(){return f.list.length===0},nextEvent:function(a){for(var b=0,c=f.list,d=c.length;b<d;++b)if(c[b]==a)return c[b+1];return null},min:function(){var a=f.list[0];return{x:a.vertex.x,y:a.ystar}},extractMin:function(){return f.list.shift()}};d.init(),c.bottomSite=c.list.shift();var h=c.list.shift(),i,j,k,l,m,n,o,p,q,r,s,t,u;for(;;){f.empty()||(i=f.min());if(h&&(f.empty()||h.y<i.y||h.y==i.y&&h.x<i.x))j=d.leftBound(h),k=d.right(j),o=d.rightRegion(j),t=e.bisect(o,h),n=d.createHalfEdge(t,"l"),d.insert(j,n),r=e.intersect(j,n),r&&(f.del(j),f.insert(j,r,e.distance(r,h))),j=n,n=d.createHalfEdge(t,"r"),d.insert(j,n),r=e.intersect(n,k),r&&f.insert(n,r,e.distance(r,h)),h=c.list.shift();else if(!f.empty())j=f.extractMin(),l=d.left(j),k=d.right(j),m=d.right(k),o=d.leftRegion(j),p=d.rightRegion(k),s=j.vertex,e.endPoint(j.edge,j.side,s),e.endPoint(k.edge,k.side,s),d.del(j),f.del(k),d.del(k),u="l",o.y>p.y&&(q=o,o=p,p=q,u="r"),t=e.bisect(o,p),n=d.createHalfEdge(t,u),d.insert(l,n),e.endPoint(t,g[u],s),r=e.intersect(l,n),r&&(f.del(l),f.insert(l,r,e.distance(r,o))),r=e.intersect(n,m),r&&f.insert(n,r,e.distance(r,o));else break}for(j=d.right(d.leftEnd);j!=d.rightEnd;j=d.right(j))b(j.edge)}function i(){return{leaf:!0,nodes:[],point:null}}function j(a,b,c,d,e,f){if(!a(b,c,d,e,f)){var g=(c+e)*.5,h=(d+f)*.5,i=b.nodes;i[0]&&j(a,i[0],c,d,g,h),i[1]&&j(a,i[1],g,d,e,h),i[2]&&j(a,i[2],c,h,g,f),i[3]&&j(a,i[3],g,h,e,f)}}function k(a){return{x:a[0],y:a[1]}}d3.geom={},d3.geom.contour=function(d,e){var f=e||c(d),g=[],h=f[0],i=f[1],j=0,k=0,l=NaN,m=NaN,n=0;do n=0,d(h-1,i-1)&&(n+=1),d(h,i-1)&&(n+=2),d(h-1,i)&&(n+=4),d(h,i)&&(n+=8),n===6?(j=m===-1?-1:1,k=0):n===9?(j=0,k=l===1?-1:1):(j=a[n],k=b[n]),j!=l&&k!=m&&(g.push([h,i]),l=j,m=k),h+=j,i+=k;while(f[0]!=h||f[1]!=i);return g};var a=[1,0,1,1,-1,0,-1,1,0,0,0,0,-1,0,-1,NaN],b=[0,-1,0,0,0,-1,0,0,1,-1,1,1,0,-1,0,NaN];d3.geom.hull=function(a){if(a.length<3)return[];var b=a.length,c=b-1,e=[],f=[],g,h,i=0,j,k,l,m,n,o,p,q;for(g=1;g<b;++g)a[g][1]<a[i][1]?i=g:a[g][1]==a[i][1]&&(i=a[g][0]<a[i][0]?g:i);for(g=0;g<b;++g){if(g===i)continue;k=a[g][1]-a[i][1],j=a[g][0]-a[i][0],e.push({angle:Math.atan2(k,j),index:g})}e.sort(function(a,b){return a.angle-b.angle}),p=e[0].angle,o=e[0].index,n=0;for(g=1;g<c;++g)h=e[g].index,p==e[g].angle?(j=a[o][0]-a[i][0],k=a[o][1]-a[i][1],l=a[h][0]-a[i][0],m=a[h][1]-a[i][1],j*j+k*k>=l*l+m*m?e[g].index=-1:(e[n].index=-1,p=e[g].angle,n=g,o=h)):(p=e[g].angle,n=g,o=h);f.push(i);for(g=0,h=0;g<2;++h)e[h].index!==-1&&(f.push(e[h].index),g++);q=f.length;for(;h<c;++h){if(e[h].index===-1)continue;while(!d(f[q-2],f[q-1],e[h].index,a))--q;f[q++]=e[h].index}var r=[];for(g=0;g<q;++g)r.push(a[f[g]]);return r},d3.geom.polygon=function(a){return a.area=function(){var b=0,c=a.length,d=a[c-1][0]*a[0][1],e=a[c-1][1]*a[0][0];while(++b<c)d+=a[b-1][0]*a[b][1],e+=a[b-1][1]*a[b][0];return(e-d)*.5},a.centroid=function(b){var c=-1,d=a.length-1,e=0,f=0,g,h,i;arguments.length||(b=-1/(6*a.area()));while(++c<d)g=a[c],h=a[c+1],i=g[0]*h[1]-h[0]*g[1],e+=(g[0]+h[0])*i,f+=(g[1]+h[1])*i;return[e*b,f*b]},a.clip=function(b){var c,d=-1,g=a.length,h,i,j=a[g-1],k,l,m;while(++d<g){c=b.slice(),b.length=0,k=a[d],l=c[(i=c.length)-1],h=-1;while(++h<i)m=c[h],e(m,j,k)?(e(l,j,k)||b.push(f(l,m,j,k)),b.push(m)):e(l,j,k)&&b.push(f(l,m,j,k)),l=m;j=k}return b},a},d3.geom.voronoi=function(a){var b=a.map(function(){return[]});return h(a,function(a){var c,d,e,f,g,h;a.a===1&&a.b>=0?(c=a.ep.r,d=a.ep.l):(c=a.ep.l,d=a.ep.r),a.a===1?(g=c?c.y:-1e6,e=a.c-a.b*g,h=d?d.y:1e6,f=a.c-a.b*h):(e=c?c.x:-1e6,g=a.c-a.a*e,f=d?d.x:1e6,h=a.c-a.a*f);var i=[e,g],j=[f,h];b[a.region.l.index].push(i,j),b[a.region.r.index].push(i,j)}),b.map(function(b,c){var d=a[c][0],e=a[c][1];return b.forEach(function(a){a.angle=Math.atan2(a[0]-d,a[1]-e)}),b.sort(function(a,b){return a.angle-b.angle}).filter(function(a,c){return!c||a.angle-b[c-1].angle>1e-10})})};var g={l:"r",r:"l"};d3.geom.delaunay=function(a){var b=a.map(function(){return[]}),c=[];return h(a,function(c){b[c.region.l.index].push(a[c.region.r.index])}),b.forEach(function(b,d){var e=a[d],f=e[0],g=e[1];b.forEach(function(a){a.angle=Math.atan2(a[0]-f,a[1]-g)}),b.sort(function(a,b){return a.angle-b.angle});for(var h=0,i=b.length-1;h<i;h++)c.push([e,b[h],b[h+1]])}),c},d3.geom.quadtree=function(a,b,c,d,e){function n(a,b,c,d,e,f){if(isNaN(b.x)||isNaN(b.y))return;if(a.leaf){var g=a.point;g?Math.abs(g.x-b.x)+Math.abs(g.y-b.y)<.01?o(a,b,c,d,e,f):(a.point=null,o(a,g,c,d,e,f),o(a,b,c,d,e,f)):a.point=b}else o(a,b,c,d,e,f)}function o(a,b,c,d,e,f){var g=(c+e)*.5,h=(d+f)*.5,j=b.x>=g,k=b.y>=h,l=(k<<1)+j;a.leaf=!1,a=a.nodes[l]||(a.nodes[l]=i()),j?c=g:e=g,k?d=h:f=h,n(a,b,c,d,e,f)}var f,g=-1,h=a.length;h&&isNaN(a[0].x)&&(a=a.map(k));if(arguments.length<5)if(arguments.length===3)e=d=c,c=b;else{b=c=Infinity,d=e=-Infinity;while(++g<h)f=a[g],f.x<b&&(b=f.x),f.y<c&&(c=f.y),f.x>d&&(d=f.x),f.y>e&&(e=f.y);var l=d-b,m=e-c;l>m?e=c+l:d=b+m}var p=i();return p.add=function(a){n(p,a,b,c,d,e)},p.visit=function(a){j(a,p,b,c,d,e)},a.forEach(p.add),p}})();
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/d3/d3.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,4621 @@
+(function(){if (!Date.now) Date.now = function() {
+  return +new Date;
+};
+try {
+  document.createElement("div").style.setProperty("opacity", 0, "");
+} catch (error) {
+  var d3_style_prototype = CSSStyleDeclaration.prototype,
+      d3_style_setProperty = d3_style_prototype.setProperty;
+  d3_style_prototype.setProperty = function(name, value, priority) {
+    d3_style_setProperty.call(this, name, value + "", priority);
+  };
+}
+d3 = {version: "2.5.0"}; // semver
+var d3_array = d3_arraySlice; // conversion for NodeLists
+
+function d3_arrayCopy(pseudoarray) {
+  var i = -1, n = pseudoarray.length, array = [];
+  while (++i < n) array.push(pseudoarray[i]);
+  return array;
+}
+
+function d3_arraySlice(pseudoarray) {
+  return Array.prototype.slice.call(pseudoarray);
+}
+
+try {
+  d3_array(document.documentElement.childNodes)[0].nodeType;
+} catch(e) {
+  d3_array = d3_arrayCopy;
+}
+
+var d3_arraySubclass = [].__proto__?
+
+// Until ECMAScript supports array subclassing, prototype injection works well.
+function(array, prototype) {
+  array.__proto__ = prototype;
+}:
+
+// And if your browser doesn't support __proto__, we'll use direct extension.
+function(array, prototype) {
+  for (var property in prototype) array[property] = prototype[property];
+};
+function d3_this() {
+  return this;
+}
+d3.functor = function(v) {
+  return typeof v === "function" ? v : function() { return v; };
+};
+// A getter-setter method that preserves the appropriate `this` context.
+d3.rebind = function(object, method) {
+  return function() {
+    var x = method.apply(object, arguments);
+    return arguments.length ? object : x;
+  };
+};
+d3.ascending = function(a, b) {
+  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
+};
+d3.descending = function(a, b) {
+  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
+};
+d3.mean = function(array, f) {
+  var n = array.length,
+      a,
+      m = 0,
+      i = -1,
+      j = 0;
+  if (arguments.length === 1) {
+    while (++i < n) if (d3_number(a = array[i])) m += (a - m) / ++j;
+  } else {
+    while (++i < n) if (d3_number(a = f.call(array, array[i], i))) m += (a - m) / ++j;
+  }
+  return j ? m : undefined;
+};
+d3.median = function(array, f) {
+  if (arguments.length > 1) array = array.map(f);
+  array = array.filter(d3_number);
+  return array.length ? d3.quantile(array.sort(d3.ascending), .5) : undefined;
+};
+d3.min = function(array, f) {
+  var i = -1,
+      n = array.length,
+      a,
+      b;
+  if (arguments.length === 1) {
+    while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
+    while (++i < n) if ((b = array[i]) != null && a > b) a = b;
+  } else {
+    while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
+    while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;
+  }
+  return a;
+};
+d3.max = function(array, f) {
+  var i = -1,
+      n = array.length,
+      a,
+      b;
+  if (arguments.length === 1) {
+    while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
+    while (++i < n) if ((b = array[i]) != null && b > a) a = b;
+  } else {
+    while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
+    while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;
+  }
+  return a;
+};
+d3.extent = function(array, f) {
+  var i = -1,
+      n = array.length,
+      a,
+      b,
+      c;
+  if (arguments.length === 1) {
+    while (++i < n && ((a = c = array[i]) == null || a != a)) a = c = undefined;
+    while (++i < n) if ((b = array[i]) != null) {
+      if (a > b) a = b;
+      if (c < b) c = b;
+    }
+  } else {
+    while (++i < n && ((a = c = f.call(array, array[i], i)) == null || a != a)) a = undefined;
+    while (++i < n) if ((b = f.call(array, array[i], i)) != null) {
+      if (a > b) a = b;
+      if (c < b) c = b;
+    }
+  }
+  return [a, c];
+};
+d3.random = {
+  normal: function(mean, deviation) {
+    if (arguments.length < 2) deviation = 1;
+    if (arguments.length < 1) mean = 0;
+    return function() {
+      var x, y, r;
+      do {
+        x = Math.random() * 2 - 1;
+        y = Math.random() * 2 - 1;
+        r = x * x + y * y;
+      } while (!r || r > 1);
+      return mean + deviation * x * Math.sqrt(-2 * Math.log(r) / r);
+    };
+  }
+};
+function d3_number(x) {
+  return x != null && !isNaN(x);
+}
+d3.sum = function(array, f) {
+  var s = 0,
+      n = array.length,
+      a,
+      i = -1;
+
+  if (arguments.length === 1) {
+    while (++i < n) if (!isNaN(a = +array[i])) s += a;
+  } else {
+    while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a;
+  }
+
+  return s;
+};
+// R-7 per <http://en.wikipedia.org/wiki/Quantile>
+d3.quantile = function(values, p) {
+  var H = (values.length - 1) * p + 1,
+      h = Math.floor(H),
+      v = values[h - 1],
+      e = H - h;
+  return e ? v + e * (values[h] - v) : v;
+};
+d3.zip = function() {
+  if (!(n = arguments.length)) return [];
+  for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m;) {
+    for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n;) {
+      zip[j] = arguments[j][i];
+    }
+  }
+  return zips;
+};
+
+function d3_zipLength(d) {
+  return d.length;
+}
+// Locate the insertion point for x in a to maintain sorted order. The
+// arguments lo and hi may be used to specify a subset of the array which should
+// be considered; by default the entire array is used. If x is already present
+// in a, the insertion point will be before (to the left of) any existing
+// entries. The return value is suitable for use as the first argument to
+// `array.splice` assuming that a is already sorted.
+//
+// The returned insertion point i partitions the array a into two halves so that
+// all v < x for v in a[lo:i] for the left side and all v >= x for v in a[i:hi]
+// for the right side.
+d3.bisectLeft = function(a, x, lo, hi) {
+  if (arguments.length < 3) lo = 0;
+  if (arguments.length < 4) hi = a.length;
+  while (lo < hi) {
+    var mid = (lo + hi) >> 1;
+    if (a[mid] < x) lo = mid + 1;
+    else hi = mid;
+  }
+  return lo;
+};
+
+// Similar to bisectLeft, but returns an insertion point which comes after (to
+// the right of) any existing entries of x in a.
+//
+// The returned insertion point i partitions the array into two halves so that
+// all v <= x for v in a[lo:i] for the left side and all v > x for v in a[i:hi]
+// for the right side.
+d3.bisect =
+d3.bisectRight = function(a, x, lo, hi) {
+  if (arguments.length < 3) lo = 0;
+  if (arguments.length < 4) hi = a.length;
+  while (lo < hi) {
+    var mid = (lo + hi) >> 1;
+    if (x < a[mid]) hi = mid;
+    else lo = mid + 1;
+  }
+  return lo;
+};
+d3.first = function(array, f) {
+  var i = 0,
+      n = array.length,
+      a = array[0],
+      b;
+  if (arguments.length === 1) f = d3.ascending;
+  while (++i < n) {
+    if (f.call(array, a, b = array[i]) > 0) {
+      a = b;
+    }
+  }
+  return a;
+};
+d3.last = function(array, f) {
+  var i = 0,
+      n = array.length,
+      a = array[0],
+      b;
+  if (arguments.length === 1) f = d3.ascending;
+  while (++i < n) {
+    if (f.call(array, a, b = array[i]) <= 0) {
+      a = b;
+    }
+  }
+  return a;
+};
+d3.nest = function() {
+  var nest = {},
+      keys = [],
+      sortKeys = [],
+      sortValues,
+      rollup;
+
+  function map(array, depth) {
+    if (depth >= keys.length) return rollup
+        ? rollup.call(nest, array) : (sortValues
+        ? array.sort(sortValues)
+        : array);
+
+    var i = -1,
+        n = array.length,
+        key = keys[depth++],
+        keyValue,
+        object,
+        o = {};
+
+    while (++i < n) {
+      if ((keyValue = key(object = array[i])) in o) {
+        o[keyValue].push(object);
+      } else {
+        o[keyValue] = [object];
+      }
+    }
+
+    for (keyValue in o) {
+      o[keyValue] = map(o[keyValue], depth);
+    }
+
+    return o;
+  }
+
+  function entries(map, depth) {
+    if (depth >= keys.length) return map;
+
+    var a = [],
+        sortKey = sortKeys[depth++],
+        key;
+
+    for (key in map) {
+      a.push({key: key, values: entries(map[key], depth)});
+    }
+
+    if (sortKey) a.sort(function(a, b) {
+      return sortKey(a.key, b.key);
+    });
+
+    return a;
+  }
+
+  nest.map = function(array) {
+    return map(array, 0);
+  };
+
+  nest.entries = function(array) {
+    return entries(map(array, 0), 0);
+  };
+
+  nest.key = function(d) {
+    keys.push(d);
+    return nest;
+  };
+
+  // Specifies the order for the most-recently specified key.
+  // Note: only applies to entries. Map keys are unordered!
+  nest.sortKeys = function(order) {
+    sortKeys[keys.length - 1] = order;
+    return nest;
+  };
+
+  // Specifies the order for leaf values.
+  // Applies to both maps and entries array.
+  nest.sortValues = function(order) {
+    sortValues = order;
+    return nest;
+  };
+
+  nest.rollup = function(f) {
+    rollup = f;
+    return nest;
+  };
+
+  return nest;
+};
+d3.keys = function(map) {
+  var keys = [];
+  for (var key in map) keys.push(key);
+  return keys;
+};
+d3.values = function(map) {
+  var values = [];
+  for (var key in map) values.push(map[key]);
+  return values;
+};
+d3.entries = function(map) {
+  var entries = [];
+  for (var key in map) entries.push({key: key, value: map[key]});
+  return entries;
+};
+d3.permute = function(array, indexes) {
+  var permutes = [],
+      i = -1,
+      n = indexes.length;
+  while (++i < n) permutes[i] = array[indexes[i]];
+  return permutes;
+};
+d3.merge = function(arrays) {
+  return Array.prototype.concat.apply([], arrays);
+};
+d3.split = function(array, f) {
+  var arrays = [],
+      values = [],
+      value,
+      i = -1,
+      n = array.length;
+  if (arguments.length < 2) f = d3_splitter;
+  while (++i < n) {
+    if (f.call(values, value = array[i], i)) {
+      values = [];
+    } else {
+      if (!values.length) arrays.push(values);
+      values.push(value);
+    }
+  }
+  return arrays;
+};
+
+function d3_splitter(d) {
+  return d == null;
+}
+function d3_collapse(s) {
+  return s.replace(/(^\s+)|(\s+$)/g, "").replace(/\s+/g, " ");
+}
+/**
+ * @param {number}
+ *            start
+ * @param {number=}
+ *            stop
+ * @param {number=}
+ *            step
+ */
+d3.range = function(start, stop, step) {
+  if (arguments.length < 3) {
+    step = 1;
+    if (arguments.length < 2) {
+      stop = start;
+      start = 0;
+    }
+  }
+  if ((stop - start) / step == Infinity) throw new Error("infinite range");
+  var range = [],
+       i = -1,
+       j;
+  if (step < 0) while ((j = start + step * ++i) > stop) range.push(j);
+  else while ((j = start + step * ++i) < stop) range.push(j);
+  return range;
+};
+d3.requote = function(s) {
+  return s.replace(d3_requote_re, "\\$&");
+};
+
+var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;
+d3.round = function(x, n) {
+  return n
+      ? Math.round(x * Math.pow(10, n)) * Math.pow(10, -n)
+      : Math.round(x);
+};
+d3.xhr = function(url, mime, callback) {
+  var req = new XMLHttpRequest;
+  if (arguments.length < 3) callback = mime;
+  else if (mime && req.overrideMimeType) req.overrideMimeType(mime);
+  req.open("GET", url, true);
+  req.onreadystatechange = function() {
+    if (req.readyState === 4) callback(req.status < 300 ? req : null);
+  };
+  req.send(null);
+};
+d3.text = function(url, mime, callback) {
+  function ready(req) {
+    callback(req && req.responseText);
+  }
+  if (arguments.length < 3) {
+    callback = mime;
+    mime = null;
+  }
+  d3.xhr(url, mime, ready);
+};
+d3.json = function(url, callback) {
+  d3.text(url, "application/json", function(text) {
+    callback(text ? JSON.parse(text) : null);
+  });
+};
+d3.html = function(url, callback) {
+  d3.text(url, "text/html", function(text) {
+    if (text != null) { // Treat empty string as valid HTML.
+      var range = document.createRange();
+      range.selectNode(document.body);
+      text = range.createContextualFragment(text);
+    }
+    callback(text);
+  });
+};
+d3.xml = function(url, mime, callback) {
+  function ready(req) {
+    callback(req && req.responseXML);
+  }
+  if (arguments.length < 3) {
+    callback = mime;
+    mime = null;
+  }
+  d3.xhr(url, mime, ready);
+};
+d3.ns = {
+
+  prefix: {
+    svg: "http://www.w3.org/2000/svg",
+    xhtml: "http://www.w3.org/1999/xhtml",
+    xlink: "http://www.w3.org/1999/xlink",
+    xml: "http://www.w3.org/XML/1998/namespace",
+    xmlns: "http://www.w3.org/2000/xmlns/"
+  },
+
+  qualify: function(name) {
+    var i = name.indexOf(":");
+    return i < 0 ? name : {
+      space: d3.ns.prefix[name.substring(0, i)],
+      local: name.substring(i + 1)
+    };
+  }
+
+};
+d3.dispatch = function() {
+  var dispatch = new d3_dispatch(),
+      i = -1,
+      n = arguments.length;
+  while (++i < n) dispatch[arguments[i]] = d3_dispatch_event();
+  return dispatch;
+};
+
+function d3_dispatch() {}
+
+d3_dispatch.prototype.on = function(type, listener) {
+  var i = type.indexOf("."),
+      name = "";
+
+  // Extract optional namespace, e.g., "click.foo"
+  if (i > 0) {
+    name = type.substring(i + 1);
+    type = type.substring(0, i);
+  }
+
+  this[type].on(name, listener);
+};
+
+function d3_dispatch_event() {
+  var listeners = [],
+      listenerByName = {};
+
+  function dispatch() {
+    var z = listeners, // defensive reference
+        i = -1,
+        n = z.length,
+        l;
+    while (++i < n) if ((l = z[i])._on) l.apply(this, arguments);
+  }
+
+  dispatch.on = function(name, listener) {
+    var l, i;
+
+    // remove the old listener, if any
+    if (l = listenerByName[name]) {
+      l._on = false;
+      listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));
+      delete listenerByName[name];
+    }
+
+    // add the new listener, if any
+    if (listener) {
+      listener._on = true;
+      listeners.push(listener);
+      listenerByName[name] = listener;
+    }
+
+    return dispatch;
+  };
+
+  return dispatch;
+};
+// TODO align
+d3.format = function(specifier) {
+  var match = d3_format_re.exec(specifier),
+      fill = match[1] || " ",
+      sign = match[3] || "",
+      zfill = match[5],
+      width = +match[6],
+      comma = match[7],
+      precision = match[8],
+      type = match[9],
+      scale = 1,
+      suffix = "",
+      integer = false;
+
+  if (precision) precision = +precision.substring(1);
+
+  if (zfill) {
+    fill = "0"; // TODO align = "=";
+    if (comma) width -= Math.floor((width - 1) / 4);
+  }
+
+  switch (type) {
+    case "n": comma = true; type = "g"; break;
+    case "%": scale = 100; suffix = "%"; type = "f"; break;
+    case "p": scale = 100; suffix = "%"; type = "r"; break;
+    case "d": integer = true; precision = 0; break;
+    case "s": scale = -1; type = "r"; break;
+  }
+
+  // If no precision is specified for r, fallback to general notation.
+  if (type == "r" && !precision) type = "g";
+
+  type = d3_format_types[type] || d3_format_typeDefault;
+
+  return function(value) {
+
+    // Return the empty string for floats formatted as ints.
+    if (integer && (value % 1)) return "";
+
+    // Convert negative to positive, and record the sign prefix.
+    var negative = (value < 0) && (value = -value) ? "\u2212" : sign;
+
+    // Apply the scale, computing it from the value's exponent for si format.
+    if (scale < 0) {
+      var prefix = d3.formatPrefix(value, precision);
+      value *= prefix.scale;
+      suffix = prefix.symbol;
+    } else {
+      value *= scale;
+    }
+
+    // Convert to the desired precision.
+    value = type(value, precision);
+
+    // If the fill character is 0, the sign and group is applied after the fill.
+    if (zfill) {
+      var length = value.length + negative.length;
+      if (length < width) value = new Array(width - length + 1).join(fill) + value;
+      if (comma) value = d3_format_group(value);
+      value = negative + value;
+    }
+
+    // Otherwise (e.g., space-filling), the sign and group is applied before.
+    else {
+      if (comma) value = d3_format_group(value);
+      value = negative + value;
+      var length = value.length;
+      if (length < width) value = new Array(width - length + 1).join(fill) + value;
+    }
+
+    return value + suffix;
+  };
+};
+
+// [[fill]align][sign][#][0][width][,][.precision][type]
+var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/;
+
+var d3_format_types = {
+  g: function(x, p) { return x.toPrecision(p); },
+  e: function(x, p) { return x.toExponential(p); },
+  f: function(x, p) { return x.toFixed(p); },
+  r: function(x, p) { return d3.round(x, p = d3_format_precision(x, p)).toFixed(Math.max(0, Math.min(20, p))); }
+};
+
+function d3_format_precision(x, p) {
+  return p - (x ? 1 + Math.floor(Math.log(x + Math.pow(10, 1 + Math.floor(Math.log(x) / Math.LN10) - p)) / Math.LN10) : 1);
+}
+
+function d3_format_typeDefault(x) {
+  return x + "";
+}
+
+// Apply comma grouping for thousands.
+function d3_format_group(value) {
+  var i = value.lastIndexOf("."),
+      f = i >= 0 ? value.substring(i) : (i = value.length, ""),
+      t = [];
+  while (i > 0) t.push(value.substring(i -= 3, i + 3));
+  return t.reverse().join(",") + f;
+}
+var d3_formatPrefixes = ["y","z","a","f","p","n","μ","m","","k","M","G","T","P","E","Z","Y"].map(d3_formatPrefix);
+
+d3.formatPrefix = function(value, precision) {
+  var i = 0;
+  if (value) {
+    if (value < 0) value *= -1;
+    if (precision) value = d3.round(value, d3_format_precision(value, precision));
+    i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);
+    i = Math.max(-24, Math.min(24, Math.floor((i <= 0 ? i + 1 : i - 1) / 3) * 3));
+  }
+  return d3_formatPrefixes[8 + i / 3];
+};
+
+function d3_formatPrefix(d, i) {
+  return {
+    scale: Math.pow(10, (8 - i) * 3),
+    symbol: d
+  };
+}
+
+/*
+ * TERMS OF USE - EASING EQUATIONS
+ * 
+ * Open source under the BSD License.
+ * 
+ * Copyright 2001 Robert Penner All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *  - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *  - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *  - Neither the name of the author nor the names of contributors may be used
+ * to endorse or promote products derived from this software without specific
+ * prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+var d3_ease_quad = d3_ease_poly(2),
+    d3_ease_cubic = d3_ease_poly(3);
+
+var d3_ease = {
+  linear: function() { return d3_ease_linear; },
+  poly: d3_ease_poly,
+  quad: function() { return d3_ease_quad; },
+  cubic: function() { return d3_ease_cubic; },
+  sin: function() { return d3_ease_sin; },
+  exp: function() { return d3_ease_exp; },
+  circle: function() { return d3_ease_circle; },
+  elastic: d3_ease_elastic,
+  back: d3_ease_back,
+  bounce: function() { return d3_ease_bounce; }
+};
+
+var d3_ease_mode = {
+  "in": function(f) { return f; },
+  "out": d3_ease_reverse,
+  "in-out": d3_ease_reflect,
+  "out-in": function(f) { return d3_ease_reflect(d3_ease_reverse(f)); }
+};
+
+d3.ease = function(name) {
+  var i = name.indexOf("-"),
+      t = i >= 0 ? name.substring(0, i) : name,
+      m = i >= 0 ? name.substring(i + 1) : "in";
+  return d3_ease_clamp(d3_ease_mode[m](d3_ease[t].apply(null, Array.prototype.slice.call(arguments, 1))));
+};
+
+function d3_ease_clamp(f) {
+  return function(t) {
+    return t <= 0 ? 0 : t >= 1 ? 1 : f(t);
+  };
+}
+
+function d3_ease_reverse(f) {
+  return function(t) {
+    return 1 - f(1 - t);
+  };
+}
+
+function d3_ease_reflect(f) {
+  return function(t) {
+    return .5 * (t < .5 ? f(2 * t) : (2 - f(2 - 2 * t)));
+  };
+}
+
+function d3_ease_linear(t) {
+  return t;
+}
+
+function d3_ease_poly(e) {
+  return function(t) {
+    return Math.pow(t, e);
+  }
+}
+
+function d3_ease_sin(t) {
+  return 1 - Math.cos(t * Math.PI / 2);
+}
+
+function d3_ease_exp(t) {
+  return Math.pow(2, 10 * (t - 1));
+}
+
+function d3_ease_circle(t) {
+  return 1 - Math.sqrt(1 - t * t);
+}
+
+function d3_ease_elastic(a, p) {
+  var s;
+  if (arguments.length < 2) p = 0.45;
+  if (arguments.length < 1) { a = 1; s = p / 4; }
+  else s = p / (2 * Math.PI) * Math.asin(1 / a);
+  return function(t) {
+    return 1 + a * Math.pow(2, 10 * -t) * Math.sin((t - s) * 2 * Math.PI / p);
+  };
+}
+
+function d3_ease_back(s) {
+  if (!s) s = 1.70158;
+  return function(t) {
+    return t * t * ((s + 1) * t - s);
+  };
+}
+
+function d3_ease_bounce(t) {
+  return t < 1 / 2.75 ? 7.5625 * t * t
+      : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75
+      : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375
+      : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;
+}
+d3.event = null;
+
+function d3_eventCancel() {
+  d3.event.stopPropagation();
+  d3.event.preventDefault();
+}
+d3.interpolate = function(a, b) {
+  var i = d3.interpolators.length, f;
+  while (--i >= 0 && !(f = d3.interpolators[i](a, b)));
+  return f;
+};
+
+d3.interpolateNumber = function(a, b) {
+  b -= a;
+  return function(t) { return a + b * t; };
+};
+
+d3.interpolateRound = function(a, b) {
+  b -= a;
+  return function(t) { return Math.round(a + b * t); };
+};
+
+d3.interpolateString = function(a, b) {
+  var m, // current match
+      i, // current index
+      j, // current index (for coallescing)
+      s0 = 0, // start index of current string prefix
+      s1 = 0, // end index of current string prefix
+      s = [], // string constants and placeholders
+      q = [], // number interpolators
+      n, // q.length
+      o;
+
+  // Reset our regular expression!
+  d3_interpolate_number.lastIndex = 0;
+
+  // Find all numbers in b.
+  for (i = 0; m = d3_interpolate_number.exec(b); ++i) {
+    if (m.index) s.push(b.substring(s0, s1 = m.index));
+    q.push({i: s.length, x: m[0]});
+    s.push(null);
+    s0 = d3_interpolate_number.lastIndex;
+  }
+  if (s0 < b.length) s.push(b.substring(s0));
+
+  // Find all numbers in a.
+  for (i = 0, n = q.length; (m = d3_interpolate_number.exec(a)) && i < n; ++i) {
+    o = q[i];
+    if (o.x == m[0]) { // The numbers match, so coallesce.
+      if (o.i) {
+        if (s[o.i + 1] == null) { // This match is followed by another number.
+          s[o.i - 1] += o.x;
+          s.splice(o.i, 1);
+          for (j = i + 1; j < n; ++j) q[j].i--;
+        } else { // This match is followed by a string, so coallesce twice.
+          s[o.i - 1] += o.x + s[o.i + 1];
+          s.splice(o.i, 2);
+          for (j = i + 1; j < n; ++j) q[j].i -= 2;
+        }
+      } else {
+          if (s[o.i + 1] == null) { // This match is followed by another number.
+          s[o.i] = o.x;
+        } else { // This match is followed by a string, so coallesce twice.
+          s[o.i] = o.x + s[o.i + 1];
+          s.splice(o.i + 1, 1);
+          for (j = i + 1; j < n; ++j) q[j].i--;
+        }
+      }
+      q.splice(i, 1);
+      n--;
+      i--;
+    } else {
+      o.x = d3.interpolateNumber(parseFloat(m[0]), parseFloat(o.x));
+    }
+  }
+
+  // Remove any numbers in b not found in a.
+  while (i < n) {
+    o = q.pop();
+    if (s[o.i + 1] == null) { // This match is followed by another number.
+      s[o.i] = o.x;
+    } else { // This match is followed by a string, so coallesce twice.
+      s[o.i] = o.x + s[o.i + 1];
+      s.splice(o.i + 1, 1);
+    }
+    n--;
+  }
+
+  // Special optimization for only a single match.
+  if (s.length === 1) {
+    return s[0] == null ? q[0].x : function() { return b; };
+  }
+
+  // Otherwise, interpolate each of the numbers and rejoin the string.
+  return function(t) {
+    for (i = 0; i < n; ++i) s[(o = q[i]).i] = o.x(t);
+    return s.join("");
+  };
+};
+
+d3.interpolateTransform = function(a, b) {
+  return d3.interpolateString(d3.transform(a) + "", d3.transform(b) + "");
+};
+
+d3.interpolateRgb = function(a, b) {
+  a = d3.rgb(a);
+  b = d3.rgb(b);
+  var ar = a.r,
+      ag = a.g,
+      ab = a.b,
+      br = b.r - ar,
+      bg = b.g - ag,
+      bb = b.b - ab;
+  return function(t) {
+    return "#"
+        + d3_rgb_hex(Math.round(ar + br * t))
+        + d3_rgb_hex(Math.round(ag + bg * t))
+        + d3_rgb_hex(Math.round(ab + bb * t));
+  };
+};
+
+// interpolates HSL space, but outputs RGB string (for compatibility)
+d3.interpolateHsl = function(a, b) {
+  a = d3.hsl(a);
+  b = d3.hsl(b);
+  var h0 = a.h,
+      s0 = a.s,
+      l0 = a.l,
+      h1 = b.h - h0,
+      s1 = b.s - s0,
+      l1 = b.l - l0;
+  return function(t) {
+    return d3_hsl_rgb(h0 + h1 * t, s0 + s1 * t, l0 + l1 * t).toString();
+  };
+};
+
+d3.interpolateArray = function(a, b) {
+  var x = [],
+      c = [],
+      na = a.length,
+      nb = b.length,
+      n0 = Math.min(a.length, b.length),
+      i;
+  for (i = 0; i < n0; ++i) x.push(d3.interpolate(a[i], b[i]));
+  for (; i < na; ++i) c[i] = a[i];
+  for (; i < nb; ++i) c[i] = b[i];
+  return function(t) {
+    for (i = 0; i < n0; ++i) c[i] = x[i](t);
+    return c;
+  };
+};
+
+d3.interpolateObject = function(a, b) {
+  var i = {},
+      c = {},
+      k;
+  for (k in a) {
+    if (k in b) {
+      i[k] = d3_interpolateByName(k)(a[k], b[k]);
+    } else {
+      c[k] = a[k];
+    }
+  }
+  for (k in b) {
+    if (!(k in a)) {
+      c[k] = b[k];
+    }
+  }
+  return function(t) {
+    for (k in i) c[k] = i[k](t);
+    return c;
+  };
+}
+
+var d3_interpolate_number = /[-+]?(?:\d*\.?\d+)(?:[eE][-+]?\d+)?/g;
+
+function d3_interpolateByName(n) {
+  return n == "transform"
+      ? d3.interpolateTransform
+      : d3.interpolate;
+}
+
+d3.interpolators = [
+  d3.interpolateObject,
+  function(a, b) { return (b instanceof Array) && d3.interpolateArray(a, b); },
+  function(a, b) { return (typeof b === "string") && d3.interpolateString(a + "", b); },
+  function(a, b) { return (typeof b === "string" ? b in d3_rgb_names || /^(#|rgb\(|hsl\()/.test(b) : b instanceof d3_Rgb || b instanceof d3_Hsl) && d3.interpolateRgb(a + "", b); },
+  function(a, b) { return (typeof b === "number") && d3.interpolateNumber(+a, b); }
+];
+function d3_uninterpolateNumber(a, b) {
+  b = b - (a = +a) ? 1 / (b - a) : 0;
+  return function(x) { return (x - a) * b; };
+}
+
+function d3_uninterpolateClamp(a, b) {
+  b = b - (a = +a) ? 1 / (b - a) : 0;
+  return function(x) { return Math.max(0, Math.min(1, (x - a) * b)); };
+}
+d3.rgb = function(r, g, b) {
+  return arguments.length === 1
+      ? (r instanceof d3_Rgb ? d3_rgb(r.r, r.g, r.b)
+      : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb))
+      : d3_rgb(~~r, ~~g, ~~b);
+};
+
+function d3_rgb(r, g, b) {
+  return new d3_Rgb(r, g, b);
+}
+
+function d3_Rgb(r, g, b) {
+  this.r = r;
+  this.g = g;
+  this.b = b;
+}
+
+d3_Rgb.prototype.brighter = function(k) {
+  k = Math.pow(0.7, arguments.length ? k : 1);
+  var r = this.r,
+      g = this.g,
+      b = this.b,
+      i = 30;
+  if (!r && !g && !b) return d3_rgb(i, i, i);
+  if (r && r < i) r = i;
+  if (g && g < i) g = i;
+  if (b && b < i) b = i;
+  return d3_rgb(
+      Math.min(255, Math.floor(r / k)),
+      Math.min(255, Math.floor(g / k)),
+      Math.min(255, Math.floor(b / k)));
+};
+
+d3_Rgb.prototype.darker = function(k) {
+  k = Math.pow(0.7, arguments.length ? k : 1);
+  return d3_rgb(
+      Math.floor(k * this.r),
+      Math.floor(k * this.g),
+      Math.floor(k * this.b));
+};
+
+d3_Rgb.prototype.hsl = function() {
+  return d3_rgb_hsl(this.r, this.g, this.b);
+};
+
+d3_Rgb.prototype.toString = function() {
+  return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);
+};
+
+function d3_rgb_hex(v) {
+  return v < 0x10
+      ? "0" + Math.max(0, v).toString(16)
+      : Math.min(255, v).toString(16);
+}
+
+function d3_rgb_parse(format, rgb, hsl) {
+  var r = 0, // red channel; int in [0, 255]
+      g = 0, // green channel; int in [0, 255]
+      b = 0, // blue channel; int in [0, 255]
+      m1, // CSS color specification match
+      m2, // CSS color specification type (e.g., rgb)
+      name;
+
+  /* Handle hsl, rgb. */
+  m1 = /([a-z]+)\((.*)\)/i.exec(format);
+  if (m1) {
+    m2 = m1[2].split(",");
+    switch (m1[1]) {
+      case "hsl": {
+        return hsl(
+          parseFloat(m2[0]), // degrees
+          parseFloat(m2[1]) / 100, // percentage
+          parseFloat(m2[2]) / 100 // percentage
+        );
+      }
+      case "rgb": {
+        return rgb(
+          d3_rgb_parseNumber(m2[0]),
+          d3_rgb_parseNumber(m2[1]),
+          d3_rgb_parseNumber(m2[2])
+        );
+      }
+    }
+  }
+
+  /* Named colors. */
+  if (name = d3_rgb_names[format]) return rgb(name.r, name.g, name.b);
+
+  /* Hexadecimal colors: #rgb and #rrggbb. */
+  if (format != null && format.charAt(0) === "#") {
+    if (format.length === 4) {
+      r = format.charAt(1); r += r;
+      g = format.charAt(2); g += g;
+      b = format.charAt(3); b += b;
+    } else if (format.length === 7) {
+      r = format.substring(1, 3);
+      g = format.substring(3, 5);
+      b = format.substring(5, 7);
+    }
+    r = parseInt(r, 16);
+    g = parseInt(g, 16);
+    b = parseInt(b, 16);
+  }
+
+  return rgb(r, g, b);
+}
+
+function d3_rgb_hsl(r, g, b) {
+  var min = Math.min(r /= 255, g /= 255, b /= 255),
+      max = Math.max(r, g, b),
+      d = max - min,
+      h,
+      s,
+      l = (max + min) / 2;
+  if (d) {
+    s = l < .5 ? d / (max + min) : d / (2 - max - min);
+    if (r == max) h = (g - b) / d + (g < b ? 6 : 0);
+    else if (g == max) h = (b - r) / d + 2;
+    else h = (r - g) / d + 4;
+    h *= 60;
+  } else {
+    s = h = 0;
+  }
+  return d3_hsl(h, s, l);
+}
+
+function d3_rgb_parseNumber(c) { // either integer or percentage
+  var f = parseFloat(c);
+  return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f;
+}
+
+var d3_rgb_names = {
+  aliceblue: "#f0f8ff",
+  antiquewhite: "#faebd7",
+  aqua: "#00ffff",
+  aquamarine: "#7fffd4",
+  azure: "#f0ffff",
+  beige: "#f5f5dc",
+  bisque: "#ffe4c4",
+  black: "#000000",
+  blanchedalmond: "#ffebcd",
+  blue: "#0000ff",
+  blueviolet: "#8a2be2",
+  brown: "#a52a2a",
+  burlywood: "#deb887",
+  cadetblue: "#5f9ea0",
+  chartreuse: "#7fff00",
+  chocolate: "#d2691e",
+  coral: "#ff7f50",
+  cornflowerblue: "#6495ed",
+  cornsilk: "#fff8dc",
+  crimson: "#dc143c",
+  cyan: "#00ffff",
+  darkblue: "#00008b",
+  darkcyan: "#008b8b",
+  darkgoldenrod: "#b8860b",
+  darkgray: "#a9a9a9",
+  darkgreen: "#006400",
+  darkgrey: "#a9a9a9",
+  darkkhaki: "#bdb76b",
+  darkmagenta: "#8b008b",
+  darkolivegreen: "#556b2f",
+  darkorange: "#ff8c00",
+  darkorchid: "#9932cc",
+  darkred: "#8b0000",
+  darksalmon: "#e9967a",
+  darkseagreen: "#8fbc8f",
+  darkslateblue: "#483d8b",
+  darkslategray: "#2f4f4f",
+  darkslategrey: "#2f4f4f",
+  darkturquoise: "#00ced1",
+  darkviolet: "#9400d3",
+  deeppink: "#ff1493",
+  deepskyblue: "#00bfff",
+  dimgray: "#696969",
+  dimgrey: "#696969",
+  dodgerblue: "#1e90ff",
+  firebrick: "#b22222",
+  floralwhite: "#fffaf0",
+  forestgreen: "#228b22",
+  fuchsia: "#ff00ff",
+  gainsboro: "#dcdcdc",
+  ghostwhite: "#f8f8ff",
+  gold: "#ffd700",
+  goldenrod: "#daa520",
+  gray: "#808080",
+  green: "#008000",
+  greenyellow: "#adff2f",
+  grey: "#808080",
+  honeydew: "#f0fff0",
+  hotpink: "#ff69b4",
+  indianred: "#cd5c5c",
+  indigo: "#4b0082",
+  ivory: "#fffff0",
+  khaki: "#f0e68c",
+  lavender: "#e6e6fa",
+  lavenderblush: "#fff0f5",
+  lawngreen: "#7cfc00",
+  lemonchiffon: "#fffacd",
+  lightblue: "#add8e6",
+  lightcoral: "#f08080",
+  lightcyan: "#e0ffff",
+  lightgoldenrodyellow: "#fafad2",
+  lightgray: "#d3d3d3",
+  lightgreen: "#90ee90",
+  lightgrey: "#d3d3d3",
+  lightpink: "#ffb6c1",
+  lightsalmon: "#ffa07a",
+  lightseagreen: "#20b2aa",
+  lightskyblue: "#87cefa",
+  lightslategray: "#778899",
+  lightslategrey: "#778899",
+  lightsteelblue: "#b0c4de",
+  lightyellow: "#ffffe0",
+  lime: "#00ff00",
+  limegreen: "#32cd32",
+  linen: "#faf0e6",
+  magenta: "#ff00ff",
+  maroon: "#800000",
+  mediumaquamarine: "#66cdaa",
+  mediumblue: "#0000cd",
+  mediumorchid: "#ba55d3",
+  mediumpurple: "#9370db",
+  mediumseagreen: "#3cb371",
+  mediumslateblue: "#7b68ee",
+  mediumspringgreen: "#00fa9a",
+  mediumturquoise: "#48d1cc",
+  mediumvioletred: "#c71585",
+  midnightblue: "#191970",
+  mintcream: "#f5fffa",
+  mistyrose: "#ffe4e1",
+  moccasin: "#ffe4b5",
+  navajowhite: "#ffdead",
+  navy: "#000080",
+  oldlace: "#fdf5e6",
+  olive: "#808000",
+  olivedrab: "#6b8e23",
+  orange: "#ffa500",
+  orangered: "#ff4500",
+  orchid: "#da70d6",
+  palegoldenrod: "#eee8aa",
+  palegreen: "#98fb98",
+  paleturquoise: "#afeeee",
+  palevioletred: "#db7093",
+  papayawhip: "#ffefd5",
+  peachpuff: "#ffdab9",
+  peru: "#cd853f",
+  pink: "#ffc0cb",
+  plum: "#dda0dd",
+  powderblue: "#b0e0e6",
+  purple: "#800080",
+  red: "#ff0000",
+  rosybrown: "#bc8f8f",
+  royalblue: "#4169e1",
+  saddlebrown: "#8b4513",
+  salmon: "#fa8072",
+  sandybrown: "#f4a460",
+  seagreen: "#2e8b57",
+  seashell: "#fff5ee",
+  sienna: "#a0522d",
+  silver: "#c0c0c0",
+  skyblue: "#87ceeb",
+  slateblue: "#6a5acd",
+  slategray: "#708090",
+  slategrey: "#708090",
+  snow: "#fffafa",
+  springgreen: "#00ff7f",
+  steelblue: "#4682b4",
+  tan: "#d2b48c",
+  teal: "#008080",
+  thistle: "#d8bfd8",
+  tomato: "#ff6347",
+  turquoise: "#40e0d0",
+  violet: "#ee82ee",
+  wheat: "#f5deb3",
+  white: "#ffffff",
+  whitesmoke: "#f5f5f5",
+  yellow: "#ffff00",
+  yellowgreen: "#9acd32"
+};
+
+for (var d3_rgb_name in d3_rgb_names) {
+  d3_rgb_names[d3_rgb_name] = d3_rgb_parse(
+      d3_rgb_names[d3_rgb_name],
+      d3_rgb,
+      d3_hsl_rgb);
+}
+d3.hsl = function(h, s, l) {
+  return arguments.length === 1
+      ? (h instanceof d3_Hsl ? d3_hsl(h.h, h.s, h.l)
+      : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl))
+      : d3_hsl(+h, +s, +l);
+};
+
+function d3_hsl(h, s, l) {
+  return new d3_Hsl(h, s, l);
+}
+
+function d3_Hsl(h, s, l) {
+  this.h = h;
+  this.s = s;
+  this.l = l;
+}
+
+d3_Hsl.prototype.brighter = function(k) {
+  k = Math.pow(0.7, arguments.length ? k : 1);
+  return d3_hsl(this.h, this.s, this.l / k);
+};
+
+d3_Hsl.prototype.darker = function(k) {
+  k = Math.pow(0.7, arguments.length ? k : 1);
+  return d3_hsl(this.h, this.s, k * this.l);
+};
+
+d3_Hsl.prototype.rgb = function() {
+  return d3_hsl_rgb(this.h, this.s, this.l);
+};
+
+d3_Hsl.prototype.toString = function() {
+  return this.rgb().toString();
+};
+
+function d3_hsl_rgb(h, s, l) {
+  var m1,
+      m2;
+
+  /* Some simple corrections for h, s and l. */
+  h = h % 360; if (h < 0) h += 360;
+  s = s < 0 ? 0 : s > 1 ? 1 : s;
+  l = l < 0 ? 0 : l > 1 ? 1 : l;
+
+  /* From FvD 13.37, CSS Color Module Level 3 */
+  m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
+  m1 = 2 * l - m2;
+
+  function v(h) {
+    if (h > 360) h -= 360;
+    else if (h < 0) h += 360;
+    if (h < 60) return m1 + (m2 - m1) * h / 60;
+    if (h < 180) return m2;
+    if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
+    return m1;
+  }
+
+  function vv(h) {
+    return Math.round(v(h) * 255);
+  }
+
+  return d3_rgb(vv(h + 120), vv(h), vv(h - 120));
+}
+function d3_selection(groups) {
+  d3_arraySubclass(groups, d3_selectionPrototype);
+  return groups;
+}
+
+var d3_select = function(s, n) { return n.querySelector(s); },
+    d3_selectAll = function(s, n) { return n.querySelectorAll(s); };
+
+// Prefer Sizzle, if available.
+if (typeof Sizzle === "function") {
+  d3_select = function(s, n) { return Sizzle(s, n)[0]; };
+  d3_selectAll = function(s, n) { return Sizzle.uniqueSort(Sizzle(s, n)); };
+}
+
+var d3_selectionPrototype = [];
+
+d3.selection = function() {
+  return d3_selectionRoot;
+};
+
+d3.selection.prototype = d3_selectionPrototype;
+d3_selectionPrototype.select = function(selector) {
+  var subgroups = [],
+      subgroup,
+      subnode,
+      group,
+      node;
+
+  if (typeof selector !== "function") selector = d3_selection_selector(selector);
+
+  for (var j = -1, m = this.length; ++j < m;) {
+    subgroups.push(subgroup = []);
+    subgroup.parentNode = (group = this[j]).parentNode;
+    for (var i = -1, n = group.length; ++i < n;) {
+      if (node = group[i]) {
+        subgroup.push(subnode = selector.call(node, node.__data__, i));
+        if (subnode && "__data__" in node) subnode.__data__ = node.__data__;
+      } else {
+        subgroup.push(null);
+      }
+    }
+  }
+
+  return d3_selection(subgroups);
+};
+
+function d3_selection_selector(selector) {
+  return function() {
+    return d3_select(selector, this);
+  };
+}
+d3_selectionPrototype.selectAll = function(selector) {
+  var subgroups = [],
+      subgroup,
+      node;
+
+  if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
+
+  for (var j = -1, m = this.length; ++j < m;) {
+    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
+      if (node = group[i]) {
+        subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i)));
+        subgroup.parentNode = node;
+      }
+    }
+  }
+
+  return d3_selection(subgroups);
+};
+
+function d3_selection_selectorAll(selector) {
+  return function() {
+    return d3_selectAll(selector, this);
+  };
+}
+d3_selectionPrototype.attr = function(name, value) {
+  name = d3.ns.qualify(name);
+
+  // If no value is specified, return the first value.
+  if (arguments.length < 2) {
+    var node = this.node();
+    return name.local
+        ? node.getAttributeNS(name.space, name.local)
+        : node.getAttribute(name);
+  }
+
+  function attrNull() {
+    this.removeAttribute(name);
+  }
+
+  function attrNullNS() {
+    this.removeAttributeNS(name.space, name.local);
+  }
+
+  function attrConstant() {
+    this.setAttribute(name, value);
+  }
+
+  function attrConstantNS() {
+    this.setAttributeNS(name.space, name.local, value);
+  }
+
+  function attrFunction() {
+    var x = value.apply(this, arguments);
+    if (x == null) this.removeAttribute(name);
+    else this.setAttribute(name, x);
+  }
+
+  function attrFunctionNS() {
+    var x = value.apply(this, arguments);
+    if (x == null) this.removeAttributeNS(name.space, name.local);
+    else this.setAttributeNS(name.space, name.local, x);
+  }
+
+  return this.each(value == null
+      ? (name.local ? attrNullNS : attrNull) : (typeof value === "function"
+      ? (name.local ? attrFunctionNS : attrFunction)
+      : (name.local ? attrConstantNS : attrConstant)));
+};
+d3_selectionPrototype.classed = function(name, value) {
+  var names = name.split(d3_selection_classedWhitespace),
+      n = names.length,
+      i = -1;
+  if (arguments.length > 1) {
+    while (++i < n) d3_selection_classed.call(this, names[i], value);
+    return this;
+  } else {
+    while (++i < n) if (!d3_selection_classed.call(this, names[i])) return false;
+    return true;
+  }
+};
+
+var d3_selection_classedWhitespace = /\s+/g;
+
+function d3_selection_classed(name, value) {
+  var re = new RegExp("(^|\\s+)" + d3.requote(name) + "(\\s+|$)", "g");
+
+  // If no value is specified, return the first value.
+  if (arguments.length < 2) {
+    var node = this.node();
+    if (c = node.classList) return c.contains(name);
+    var c = node.className;
+    re.lastIndex = 0;
+    return re.test(c.baseVal != null ? c.baseVal : c);
+  }
+
+  function classedAdd() {
+    if (c = this.classList) return c.add(name);
+    var c = this.className,
+        cb = c.baseVal != null,
+        cv = cb ? c.baseVal : c;
+    re.lastIndex = 0;
+    if (!re.test(cv)) {
+      cv = d3_collapse(cv + " " + name);
+      if (cb) c.baseVal = cv;
+      else this.className = cv;
+    }
+  }
+
+  function classedRemove() {
+    if (c = this.classList) return c.remove(name);
+    var c = this.className,
+        cb = c.baseVal != null,
+        cv = cb ? c.baseVal : c;
+    cv = d3_collapse(cv.replace(re, " "));
+    if (cb) c.baseVal = cv;
+    else this.className = cv;
+  }
+
+  function classedFunction() {
+    (value.apply(this, arguments)
+        ? classedAdd
+        : classedRemove).call(this);
+  }
+
+  return this.each(typeof value === "function"
+      ? classedFunction : value
+      ? classedAdd
+      : classedRemove);
+}
+d3_selectionPrototype.style = function(name, value, priority) {
+  if (arguments.length < 3) priority = "";
+
+  // If no value is specified, return the first value.
+  if (arguments.length < 2) return window
+      .getComputedStyle(this.node(), null)
+      .getPropertyValue(name);
+
+  function styleNull() {
+    this.style.removeProperty(name);
+  }
+
+  function styleConstant() {
+    this.style.setProperty(name, value, priority);
+  }
+
+  function styleFunction() {
+    var x = value.apply(this, arguments);
+    if (x == null) this.style.removeProperty(name);
+    else this.style.setProperty(name, x, priority);
+  }
+
+  return this.each(value == null
+      ? styleNull : (typeof value === "function"
+      ? styleFunction : styleConstant));
+};
+d3_selectionPrototype.property = function(name, value) {
+
+  // If no value is specified, return the first value.
+  if (arguments.length < 2) return this.node()[name];
+
+  function propertyNull() {
+    delete this[name];
+  }
+
+  function propertyConstant() {
+    this[name] = value;
+  }
+
+  function propertyFunction() {
+    var x = value.apply(this, arguments);
+    if (x == null) delete this[name];
+    else this[name] = x;
+  }
+
+  return this.each(value == null
+      ? propertyNull : (typeof value === "function"
+      ? propertyFunction : propertyConstant));
+};
+// TODO addition to get this shortcut
+d3_selectionPrototype.datum = function(name, value) {
+  return arguments.length < 2
+      ? this.property("__data__")[name]
+      : this.property("__data__")[name] = value;
+};
+d3_selectionPrototype.text = function(value) {
+  return arguments.length < 1 ? this.node().textContent
+      : (this.each(typeof value === "function"
+      ? function() { this.textContent = value.apply(this, arguments); }
+      : function() { this.textContent = value; }));
+};
+d3_selectionPrototype.html = function(value) {
+  return arguments.length < 1 ? this.node().innerHTML
+      : (this.each(typeof value === "function"
+      ? function() { this.innerHTML = value.apply(this, arguments); }
+      : function() { this.innerHTML = value; }));
+};
+// TODO append(node)?
+// TODO append(function)?
+d3_selectionPrototype.append = function(name) {
+  name = d3.ns.qualify(name);
+
+  function append() {
+    return this.appendChild(document.createElement(name));
+  }
+
+  function appendNS() {
+    return this.appendChild(document.createElementNS(name.space, name.local));
+  }
+
+  return this.select(name.local ? appendNS : append);
+};
+// TODO insert(node, function)?
+// TODO insert(function, string)?
+// TODO insert(function, function)?
+d3_selectionPrototype.insert = function(name, before) {
+  name = d3.ns.qualify(name);
+
+  function insert() {
+    return this.insertBefore(
+        document.createElement(name),
+        d3_select(before, this));
+  }
+
+  function insertNS() {
+    return this.insertBefore(
+        document.createElementNS(name.space, name.local),
+        d3_select(before, this));
+  }
+
+  return this.select(name.local ? insertNS : insert);
+};
+// TODO remove(selector)?
+// TODO remove(node)?
+// TODO remove(function)?
+d3_selectionPrototype.remove = function() {
+  return this.each(function() {
+    var parent = this.parentNode;
+    if (parent) parent.removeChild(this);
+  });
+};
+// TODO data(null) for clearing data?
+d3_selectionPrototype.data = function(data, join) {
+  var enter = [],
+      update = [],
+      exit = [];
+
+  function bind(group, groupData) {
+    var i,
+        n = group.length,
+        m = groupData.length,
+        n0 = Math.min(n, m),
+        n1 = Math.max(n, m),
+        updateNodes = [],
+        enterNodes = [],
+        exitNodes = [],
+        node,
+        nodeData;
+
+    if (join) {
+      var nodeByKey = {},
+          keys = [],
+          key,
+          j = groupData.length;
+
+      for (i = -1; ++i < n;) {
+        key = join.call(node = group[i], node.__data__, i);
+        if (key in nodeByKey) {
+          exitNodes[j++] = node; // duplicate key
+        } else {
+          nodeByKey[key] = node;
+        }
+        keys.push(key);
+      }
+
+      for (i = -1; ++i < m;) {
+        node = nodeByKey[key = join.call(groupData, nodeData = groupData[i], i)];
+        if (node) {
+          node.__data__ = nodeData;
+          updateNodes[i] = node;
+          enterNodes[i] = exitNodes[i] = null;
+        } else {
+          enterNodes[i] = d3_selection_dataNode(nodeData);
+          updateNodes[i] = exitNodes[i] = null;
+        }
+        delete nodeByKey[key];
+      }
+
+      for (i = -1; ++i < n;) {
+        if (keys[i] in nodeByKey) {
+          exitNodes[i] = group[i];
+        }
+      }
+    } else {
+      for (i = -1; ++i < n0;) {
+        node = group[i];
+        nodeData = groupData[i];
+        if (node) {
+          node.__data__ = nodeData;
+          updateNodes[i] = node;
+          enterNodes[i] = exitNodes[i] = null;
+        } else {
+          enterNodes[i] = d3_selection_dataNode(nodeData);
+          updateNodes[i] = exitNodes[i] = null;
+        }
+      }
+      for (; i < m; ++i) {
+        enterNodes[i] = d3_selection_dataNode(groupData[i]);
+        updateNodes[i] = exitNodes[i] = null;
+      }
+      for (; i < n1; ++i) {
+        exitNodes[i] = group[i];
+        enterNodes[i] = updateNodes[i] = null;
+      }
+    }
+
+    enterNodes.update
+        = updateNodes;
+
+    enterNodes.parentNode
+        = updateNodes.parentNode
+        = exitNodes.parentNode
+        = group.parentNode;
+
+    enter.push(enterNodes);
+    update.push(updateNodes);
+    exit.push(exitNodes);
+  }
+
+  var i = -1,
+      n = this.length,
+      group;
+  if (typeof data === "function") {
+    while (++i < n) {
+      bind(group = this[i], data.call(group, group.parentNode.__data__, i));
+    }
+  } else {
+    while (++i < n) {
+      bind(group = this[i], data);
+    }
+  }
+
+  var selection = d3_selection(update);
+  selection.enter = function() { return d3_selection_enter(enter); };
+  selection.exit = function() { return d3_selection(exit); };
+  return selection;
+};
+
+function d3_selection_dataNode(data) {
+  return {__data__: data};
+}
+// TODO preserve null elements to maintain index?
+d3_selectionPrototype.filter = function(filter) {
+  var subgroups = [],
+      subgroup,
+      group,
+      node;
+
+  for (var j = 0, m = this.length; j < m; j++) {
+    subgroups.push(subgroup = []);
+    subgroup.parentNode = (group = this[j]).parentNode;
+    for (var i = 0, n = group.length; i < n; i++) {
+      if ((node = group[i]) && filter.call(node, node.__data__, i)) {
+        subgroup.push(node);
+      }
+    }
+  }
+
+  return d3_selection(subgroups);
+};
+d3_selectionPrototype.map = function(map) {
+  return this.each(function() {
+    this.__data__ = map.apply(this, arguments);
+  });
+};
+d3_selectionPrototype.sort = function(comparator) {
+  comparator = d3_selection_sortComparator.apply(this, arguments);
+  for (var j = 0, m = this.length; j < m; j++) {
+    for (var group = this[j].sort(comparator), i = 1, n = group.length, prev = group[0]; i < n; i++) {
+      var node = group[i];
+      if (node) {
+        if (prev) prev.parentNode.insertBefore(node, prev.nextSibling);
+        prev = node;
+      }
+    }
+  }
+  return this;
+};
+
+function d3_selection_sortComparator(comparator) {
+  if (!arguments.length) comparator = d3.ascending;
+  return function(a, b) {
+    return comparator(a && a.__data__, b && b.__data__);
+  };
+}
+// type can be namespaced, e.g., "click.foo"
+// listener can be null for removal
+d3_selectionPrototype.on = function(type, listener, capture) {
+  if (arguments.length < 3) capture = false;
+
+  // parse the type specifier
+  var name = "__on" + type, i = type.indexOf(".");
+  if (i > 0) type = type.substring(0, i);
+
+  // if called with only one argument, return the current listener
+  if (arguments.length < 2) return (i = this.node()[name]) && i._;
+
+  // remove the old event listener, and add the new event listener
+  return this.each(function(d, i) {
+    var node = this;
+
+    if (node[name]) node.removeEventListener(type, node[name], capture);
+    if (listener) node.addEventListener(type, node[name] = l, capture);
+
+    // wrapped event listener that preserves i
+    function l(e) {
+      var o = d3.event; // Events can be reentrant (e.g., focus).
+      d3.event = e;
+      try {
+        listener.call(node, node.__data__, i);
+      } finally {
+        d3.event = o;
+      }
+    }
+
+    // stash the unwrapped listener for retrieval
+    l._ = listener;
+  });
+};
+d3_selectionPrototype.each = function(callback) {
+  for (var j = -1, m = this.length; ++j < m;) {
+    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
+      var node = group[i];
+      if (node) callback.call(node, node.__data__, i, j);
+    }
+  }
+  return this;
+};
+//
+// Note: assigning to the arguments array simultaneously changes the value of
+// the corresponding argument!
+//
+// TODO The `this` argument probably shouldn't be the first argument to the
+// callback, anyway, since it's redundant. However, that will require a major
+// version bump due to backwards compatibility, so I'm not changing it right
+// away.
+//
+d3_selectionPrototype.call = function(callback) {
+  callback.apply(this, (arguments[0] = this, arguments));
+  return this;
+};
+d3_selectionPrototype.empty = function() {
+  return !this.node();
+};
+d3_selectionPrototype.node = function(callback) {
+  for (var j = 0, m = this.length; j < m; j++) {
+    for (var group = this[j], i = 0, n = group.length; i < n; i++) {
+      var node = group[i];
+      if (node) return node;
+    }
+  }
+  return null;
+};
+d3_selectionPrototype.transition = function() {
+  var subgroups = [],
+      subgroup,
+      node;
+
+  for (var j = -1, m = this.length; ++j < m;) {
+    subgroups.push(subgroup = []);
+    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
+      subgroup.push((node = group[i]) ? {node: node, delay: 0, duration: 250} : null);
+    }
+  }
+
+  return d3_transition(subgroups, d3_transitionInheritId || ++d3_transitionId, Date.now());
+};
+var d3_selectionRoot = d3_selection([[document]]);
+
+d3_selectionRoot[0].parentNode = document.documentElement;
+
+// TODO fast singleton implementation!
+// TODO select(function)
+d3.select = function(selector) {
+  return typeof selector === "string"
+      ? d3_selectionRoot.select(selector)
+      : d3_selection([[selector]]); // assume node
+};
+
+// TODO selectAll(function)
+d3.selectAll = function(selector) {
+  return typeof selector === "string"
+      ? d3_selectionRoot.selectAll(selector)
+      : d3_selection([d3_array(selector)]); // assume node[]
+};
+function d3_selection_enter(selection) {
+  d3_arraySubclass(selection, d3_selection_enterPrototype);
+  return selection;
+}
+
+var d3_selection_enterPrototype = [];
+
+d3_selection_enterPrototype.append = d3_selectionPrototype.append;
+d3_selection_enterPrototype.insert = d3_selectionPrototype.insert;
+d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;
+d3_selection_enterPrototype.node = d3_selectionPrototype.node;
+d3_selection_enterPrototype.select = function(selector) {
+  var subgroups = [],
+      subgroup,
+      subnode,
+      upgroup,
+      group,
+      node;
+
+  for (var j = -1, m = this.length; ++j < m;) {
+    upgroup = (group = this[j]).update;
+    subgroups.push(subgroup = []);
+    subgroup.parentNode = group.parentNode;
+    for (var i = -1, n = group.length; ++i < n;) {
+      if (node = group[i]) {
+        subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i));
+        subnode.__data__ = node.__data__;
+      } else {
+        subgroup.push(null);
+      }
+    }
+  }
+
+  return d3_selection(subgroups);
+};
+function d3_transition(groups, id, time) {
+  d3_arraySubclass(groups, d3_transitionPrototype);
+
+  var tweens = {},
+      event = d3.dispatch("start", "end"),
+      ease = d3_transitionEase;
+
+  groups.id = id;
+
+  groups.time = time;
+
+  groups.tween = function(name, tween) {
+    if (arguments.length < 2) return tweens[name];
+    if (tween == null) delete tweens[name];
+    else tweens[name] = tween;
+    return groups;
+  };
+
+  groups.ease = function(value) {
+    if (!arguments.length) return ease;
+    ease = typeof value === "function" ? value : d3.ease.apply(d3, arguments);
+    return groups;
+  };
+
+  groups.each = function(type, listener) {
+    if (arguments.length < 2) return d3_transition_each.call(groups, type);
+    event.on(type, listener);
+    return groups;
+  };
+
+  d3.timer(function(elapsed) {
+    groups.each(function(d, i, j) {
+      var tweened = [],
+          node = this,
+          delay = groups[j][i].delay,
+          duration = groups[j][i].duration,
+          lock = node.__transition__ || (node.__transition__ = {active: 0, count: 0});
+
+      ++lock.count;
+
+      delay <= elapsed ? start(elapsed) : d3.timer(start, delay, time);
+
+      function start(elapsed) {
+        if (lock.active > id) return stop();
+        lock.active = id;
+
+        for (var tween in tweens) {
+          if (tween = tweens[tween].call(node, d, i)) {
+            tweened.push(tween);
+          }
+        }
+
+        event.start.call(node, d, i);
+        if (!tick(elapsed)) d3.timer(tick, 0, time);
+        return 1;
+      }
+
+      function tick(elapsed) {
+        if (lock.active !== id) return stop();
+
+        var t = (elapsed - delay) / duration,
+            e = ease(t),
+            n = tweened.length;
+
+        while (n > 0) {
+          tweened[--n].call(node, e);
+        }
+
+        if (t >= 1) {
+          stop();
+          d3_transitionInheritId = id;
+          event.end.call(node, d, i);
+          d3_transitionInheritId = 0;
+          return 1;
+        }
+      }
+
+      function stop() {
+        if (!--lock.count) delete node.__transition__;
+        return 1;
+      }
+    });
+    return 1;
+  }, 0, time);
+
+  return groups;
+}
+
+var d3_transitionRemove = {};
+
+function d3_transitionNull(d, i, a) {
+  return a != "" && d3_transitionRemove;
+}
+
+function d3_transitionTween(name, b) {
+  var interpolate = d3_interpolateByName(name);
+
+  function transitionFunction(d, i, a) {
+    var v = b.call(this, d, i);
+    return v == null
+        ? a != "" && d3_transitionRemove
+        : a != v && interpolate(a, v);
+  }
+
+  function transitionString(d, i, a) {
+    return a != b && interpolate(a, b);
+  }
+
+  return typeof b === "function" ? transitionFunction
+      : b == null ? d3_transitionNull
+      : (b += "", transitionString);
+}
+
+var d3_transitionPrototype = [],
+    d3_transitionId = 0,
+    d3_transitionInheritId = 0,
+    d3_transitionEase = d3.ease("cubic-in-out");
+
+d3_transitionPrototype.call = d3_selectionPrototype.call;
+
+d3.transition = function() {
+  return d3_selectionRoot.transition();
+};
+
+d3.transition.prototype = d3_transitionPrototype;
+d3_transitionPrototype.select = function(selector) {
+  var subgroups = [],
+      subgroup,
+      subnode,
+      node;
+
+  if (typeof selector !== "function") selector = d3_selection_selector(selector);
+
+  for (var j = -1, m = this.length; ++j < m;) {
+    subgroups.push(subgroup = []);
+    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
+      if ((node = group[i]) && (subnode = selector.call(node.node, node.node.__data__, i))) {
+        if ("__data__" in node.node) subnode.__data__ = node.node.__data__;
+        subgroup.push({node: subnode, delay: node.delay, duration: node.duration});
+      } else {
+        subgroup.push(null);
+      }
+    }
+  }
+
+  return d3_transition(subgroups, this.id, this.time).ease(this.ease());
+};
+d3_transitionPrototype.selectAll = function(selector) {
+  var subgroups = [],
+      subgroup,
+      subnodes,
+      node;
+
+  if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
+
+  for (var j = -1, m = this.length; ++j < m;) {
+    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
+      if (node = group[i]) {
+        subnodes = selector.call(node.node, node.node.__data__, i);
+        subgroups.push(subgroup = []);
+        for (var k = -1, o = subnodes.length; ++k < o;) {
+          subgroup.push({node: subnodes[k], delay: node.delay, duration: node.duration});
+        }
+      }
+    }
+  }
+
+  return d3_transition(subgroups, this.id, this.time).ease(this.ease());
+};
+d3_transitionPrototype.attr = function(name, value) {
+  return this.attrTween(name, d3_transitionTween(name, value));
+};
+
+d3_transitionPrototype.attrTween = function(nameNS, tween) {
+  var name = d3.ns.qualify(nameNS);
+
+  function attrTween(d, i) {
+    var f = tween.call(this, d, i, this.getAttribute(name));
+    return f === d3_transitionRemove
+        ? (this.removeAttribute(name), null)
+        : f && function(t) { this.setAttribute(name, f(t)); };
+  }
+
+  function attrTweenNS(d, i) {
+    var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));
+    return f === d3_transitionRemove
+        ? (this.removeAttributeNS(name.space, name.local), null)
+        : f && function(t) { this.setAttributeNS(name.space, name.local, f(t)); };
+  }
+
+  return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween);
+};
+d3_transitionPrototype.style = function(name, value, priority) {
+  if (arguments.length < 3) priority = "";
+  return this.styleTween(name, d3_transitionTween(name, value), priority);
+};
+
+d3_transitionPrototype.styleTween = function(name, tween, priority) {
+  if (arguments.length < 3) priority = "";
+  return this.tween("style." + name, function(d, i) {
+    var f = tween.call(this, d, i, window.getComputedStyle(this, null).getPropertyValue(name));
+    return f === d3_transitionRemove
+        ? (this.style.removeProperty(name), null)
+        : f && function(t) { this.style.setProperty(name, f(t), priority); };
+  });
+};
+d3_transitionPrototype.text = function(value) {
+  return this.tween("text", function(d, i) {
+    this.textContent = typeof value === "function"
+        ? value.call(this, d, i)
+        : value;
+  });
+};
+d3_transitionPrototype.remove = function() {
+  return this.each("end", function() {
+    var p;
+    if (!this.__transition__ && (p = this.parentNode)) p.removeChild(this);
+  });
+};
+d3_transitionPrototype.delay = function(value) {
+  var groups = this;
+  return groups.each(typeof value === "function"
+      ? function(d, i, j) { groups[j][i].delay = +value.apply(this, arguments); }
+      : (value = +value, function(d, i, j) { groups[j][i].delay = value; }));
+};
+d3_transitionPrototype.duration = function(value) {
+  var groups = this;
+  return groups.each(typeof value === "function"
+      ? function(d, i, j) { groups[j][i].duration = +value.apply(this, arguments); }
+      : (value = +value, function(d, i, j) { groups[j][i].duration = value; }));
+};
+function d3_transition_each(callback) {
+  for (var j = 0, m = this.length; j < m; j++) {
+    for (var group = this[j], i = 0, n = group.length; i < n; i++) {
+      var node = group[i];
+      if (node) callback.call(node = node.node, node.__data__, i, j);
+    }
+  }
+  return this;
+}
+d3_transitionPrototype.transition = function() {
+  return this.select(d3_this);
+};
+var d3_timer_queue = null,
+    d3_timer_interval, // is an interval (or frame) active?
+    d3_timer_timeout; // is a timeout active?
+
+// The timer will continue to fire until callback returns true.
+d3.timer = function(callback, delay, then) {
+  var found = false,
+      t0,
+      t1 = d3_timer_queue;
+
+  if (arguments.length < 3) {
+    if (arguments.length < 2) delay = 0;
+    else if (!isFinite(delay)) return;
+    then = Date.now();
+  }
+
+  // See if the callback's already in the queue.
+  while (t1) {
+    if (t1.callback === callback) {
+      t1.then = then;
+      t1.delay = delay;
+      found = true;
+      break;
+    }
+    t0 = t1;
+    t1 = t1.next;
+  }
+
+  // Otherwise, add the callback to the queue.
+  if (!found) d3_timer_queue = {
+    callback: callback,
+    then: then,
+    delay: delay,
+    next: d3_timer_queue
+  };
+
+  // Start animatin'!
+  if (!d3_timer_interval) {
+    d3_timer_timeout = clearTimeout(d3_timer_timeout);
+    d3_timer_interval = 1;
+    d3_timer_frame(d3_timer_step);
+  }
+}
+
+function d3_timer_step() {
+  var elapsed,
+      now = Date.now(),
+      t1 = d3_timer_queue;
+
+  while (t1) {
+    elapsed = now - t1.then;
+    if (elapsed >= t1.delay) t1.flush = t1.callback(elapsed);
+    t1 = t1.next;
+  }
+
+  var delay = d3_timer_flush() - now;
+  if (delay > 24) {
+    if (isFinite(delay)) {
+      clearTimeout(d3_timer_timeout);
+      d3_timer_timeout = setTimeout(d3_timer_step, delay);
+    }
+    d3_timer_interval = 0;
+  } else {
+    d3_timer_interval = 1;
+    d3_timer_frame(d3_timer_step);
+  }
+}
+
+d3.timer.flush = function() {
+  var elapsed,
+      now = Date.now(),
+      t1 = d3_timer_queue;
+
+  while (t1) {
+    elapsed = now - t1.then;
+    if (!t1.delay) t1.flush = t1.callback(elapsed);
+    t1 = t1.next;
+  }
+
+  d3_timer_flush();
+};
+
+// Flush after callbacks, to avoid concurrent queue modification.
+function d3_timer_flush() {
+  var t0 = null,
+      t1 = d3_timer_queue,
+      then = Infinity;
+  while (t1) {
+    if (t1.flush) {
+      t1 = t0 ? t0.next = t1.next : d3_timer_queue = t1.next;
+    } else {
+      then = Math.min(then, t1.then + t1.delay);
+      t1 = (t0 = t1).next;
+    }
+  }
+  return then;
+}
+
+var d3_timer_frame = window.requestAnimationFrame
+    || window.webkitRequestAnimationFrame
+    || window.mozRequestAnimationFrame
+    || window.oRequestAnimationFrame
+    || window.msRequestAnimationFrame
+    || function(callback) { setTimeout(callback, 17); };
+d3.transform = function(string) {
+  d3_transformG.setAttribute("transform", string);
+  return new d3_transform(d3_transformG.transform.baseVal.consolidate().matrix);
+};
+
+// Compute x-scale and normalize the first row.
+// Compute shear and make second row orthogonal to first.
+// Compute y-scale and normalize the second row.
+// Finally, compute the rotation.
+function d3_transform(m) {
+  var r0 = [m.a, m.b],
+      r1 = [m.c, m.d],
+      kx = d3_transformNormalize(r0),
+      kz = d3_transformDot(r0, r1),
+      ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz));
+  this.translate = [m.e, m.f];
+  this.rotate = Math.atan2(m.b, m.a) * d3_transformDegrees;
+  this.scale = [kx, ky || 0];
+  this.skew = ky ? kz / ky * d3_transformDegrees : 0;
+};
+
+d3_transform.prototype.toString = function() {
+  return "translate(" + this.translate
+      + ")rotate(" + this.rotate
+      + ")skewX(" + this.skew
+      + ")scale(" + this.scale
+      + ")";
+};
+
+function d3_transformDot(a, b) {
+  return a[0] * b[0] + a[1] * b[1];
+}
+
+function d3_transformNormalize(a) {
+  var k = Math.sqrt(d3_transformDot(a, a));
+  a[0] /= k;
+  a[1] /= k;
+  return k;
+}
+
+function d3_transformCombine(a, b, k) {
+  a[0] += k * b[0];
+  a[1] += k * b[1];
+  return a;
+}
+
+var d3_transformG = document.createElementNS(d3.ns.prefix.svg, "g"),
+    d3_transformDegrees = 180 / Math.PI;
+function d3_noop() {}
+d3.scale = {};
+
+function d3_scaleExtent(domain) {
+  var start = domain[0], stop = domain[domain.length - 1];
+  return start < stop ? [start, stop] : [stop, start];
+}
+function d3_scale_nice(domain, nice) {
+  var i0 = 0,
+      i1 = domain.length - 1,
+      x0 = domain[i0],
+      x1 = domain[i1],
+      dx;
+
+  if (x1 < x0) {
+    dx = i0; i0 = i1; i1 = dx;
+    dx = x0; x0 = x1; x1 = dx;
+  }
+
+  if (dx = x1 - x0) {
+    nice = nice(dx);
+    domain[i0] = nice.floor(x0);
+    domain[i1] = nice.ceil(x1);
+  }
+
+  return domain;
+}
+
+function d3_scale_niceDefault() {
+  return Math;
+}
+d3.scale.linear = function() {
+  return d3_scale_linear([0, 1], [0, 1], d3.interpolate, false);
+};
+
+function d3_scale_linear(domain, range, interpolate, clamp) {
+  var output,
+      input;
+
+  function rescale() {
+    var linear = domain.length == 2 ? d3_scale_bilinear : d3_scale_polylinear,
+        uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;
+    output = linear(domain, range, uninterpolate, interpolate);
+    input = linear(range, domain, uninterpolate, d3.interpolate);
+    return scale;
+  }
+
+  function scale(x) {
+    return output(x);
+  }
+
+  // Note: requires range is coercible to number!
+  scale.invert = function(y) {
+    return input(y);
+  };
+
+  scale.domain = function(x) {
+    if (!arguments.length) return domain;
+    domain = x.map(Number);
+    return rescale();
+  };
+
+  scale.range = function(x) {
+    if (!arguments.length) return range;
+    range = x;
+    return rescale();
+  };
+
+  scale.rangeRound = function(x) {
+    return scale.range(x).interpolate(d3.interpolateRound);
+  };
+
+  scale.clamp = function(x) {
+    if (!arguments.length) return clamp;
+    clamp = x;
+    return rescale();
+  };
+
+  scale.interpolate = function(x) {
+    if (!arguments.length) return interpolate;
+    interpolate = x;
+    return rescale();
+  };
+
+  scale.ticks = function(m) {
+    return d3_scale_linearTicks(domain, m);
+  };
+
+  scale.tickFormat = function(m) {
+    return d3_scale_linearTickFormat(domain, m);
+  };
+
+  scale.nice = function() {
+    d3_scale_nice(domain, d3_scale_linearNice);
+    return rescale();
+  };
+
+  scale.copy = function() {
+    return d3_scale_linear(domain, range, interpolate, clamp);
+  };
+
+  return rescale();
+};
+
+function d3_scale_linearRebind(scale, linear) {
+  scale.range = d3.rebind(scale, linear.range);
+  scale.rangeRound = d3.rebind(scale, linear.rangeRound);
+  scale.interpolate = d3.rebind(scale, linear.interpolate);
+  scale.clamp = d3.rebind(scale, linear.clamp);
+  return scale;
+}
+
+function d3_scale_linearNice(dx) {
+  dx = Math.pow(10, Math.round(Math.log(dx) / Math.LN10) - 1);
+  return {
+    floor: function(x) { return Math.floor(x / dx) * dx; },
+    ceil: function(x) { return Math.ceil(x / dx) * dx; }
+  };
+}
+
+// TODO Dates? Ugh.
+function d3_scale_linearTickRange(domain, m) {
+  var extent = d3_scaleExtent(domain),
+      span = extent[1] - extent[0],
+      step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)),
+      err = m / span * step;
+
+  // Filter ticks to get closer to the desired count.
+  if (err <= .15) step *= 10;
+  else if (err <= .35) step *= 5;
+  else if (err <= .75) step *= 2;
+
+  // Round start and stop values to step interval.
+  extent[0] = Math.ceil(extent[0] / step) * step;
+  extent[1] = Math.floor(extent[1] / step) * step + step * .5; // inclusive
+  extent[2] = step;
+  return extent;
+}
+
+function d3_scale_linearTicks(domain, m) {
+  return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));
+}
+
+function d3_scale_linearTickFormat(domain, m) {
+  return d3.format(",." + Math.max(0, -Math.floor(Math.log(d3_scale_linearTickRange(domain, m)[2]) / Math.LN10 + .01)) + "f");
+}
+function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {
+  var u = uninterpolate(domain[0], domain[1]),
+      i = interpolate(range[0], range[1]);
+  return function(x) {
+    return i(u(x));
+  };
+}
+function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {
+  var u = [],
+      i = [],
+      j = 0,
+      n = domain.length;
+
+  while (++j < n) {
+    u.push(uninterpolate(domain[j - 1], domain[j]));
+    i.push(interpolate(range[j - 1], range[j]));
+  }
+
+  return function(x) {
+    var j = d3.bisect(domain, x, 1, domain.length - 1) - 1;
+    return i[j](u[j](x));
+  };
+}
+d3.scale.log = function() {
+  return d3_scale_log(d3.scale.linear(), d3_scale_logp);
+};
+
+function d3_scale_log(linear, log) {
+  var pow = log.pow;
+
+  function scale(x) {
+    return linear(log(x));
+  }
+
+  scale.invert = function(x) {
+    return pow(linear.invert(x));
+  };
+
+  scale.domain = function(x) {
+    if (!arguments.length) return linear.domain().map(pow);
+    log = x[0] < 0 ? d3_scale_logn : d3_scale_logp;
+    pow = log.pow;
+    linear.domain(x.map(log));
+    return scale;
+  };
+
+  scale.nice = function() {
+    linear.domain(d3_scale_nice(linear.domain(), d3_scale_niceDefault));
+    return scale;
+  };
+
+  scale.ticks = function() {
+    var extent = d3_scaleExtent(linear.domain()),
+        ticks = [];
+    if (extent.every(isFinite)) {
+      var i = Math.floor(extent[0]),
+          j = Math.ceil(extent[1]),
+          u = Math.round(pow(extent[0])),
+          v = Math.round(pow(extent[1]));
+      if (log === d3_scale_logn) {
+        ticks.push(pow(i));
+        for (; i++ < j;) for (var k = 9; k > 0; k--) ticks.push(pow(i) * k);
+      } else {
+        for (; i < j; i++) for (var k = 1; k < 10; k++) ticks.push(pow(i) * k);
+        ticks.push(pow(i));
+      }
+      for (i = 0; ticks[i] < u; i++) {} // strip small values
+      for (j = ticks.length; ticks[j - 1] > v; j--) {} // strip big values
+      ticks = ticks.slice(i, j);
+    }
+    return ticks;
+  };
+
+  scale.tickFormat = function(n, format) {
+    if (arguments.length < 2) format = d3_scale_logFormat;
+    if (arguments.length < 1) return format;
+    var k = n / scale.ticks().length,
+        f = log === d3_scale_logn ? (e = -1e-15, Math.floor) : (e = 1e-15, Math.ceil),
+        e;
+    return function(d) {
+      return d / pow(f(log(d) + e)) < k ? format(d) : "";
+    };
+  };
+
+  scale.copy = function() {
+    return d3_scale_log(linear.copy(), log);
+  };
+
+  return d3_scale_linearRebind(scale, linear);
+};
+
+var d3_scale_logFormat = d3.format("e");
+
+function d3_scale_logp(x) {
+  return Math.log(x) / Math.LN10;
+}
+
+function d3_scale_logn(x) {
+  return -Math.log(-x) / Math.LN10;
+}
+
+d3_scale_logp.pow = function(x) {
+  return Math.pow(10, x);
+};
+
+d3_scale_logn.pow = function(x) {
+  return -Math.pow(10, -x);
+};
+d3.scale.pow = function() {
+  return d3_scale_pow(d3.scale.linear(), 1);
+};
+
+function d3_scale_pow(linear, exponent) {
+  var powp = d3_scale_powPow(exponent),
+      powb = d3_scale_powPow(1 / exponent);
+
+  function scale(x) {
+    return linear(powp(x));
+  }
+
+  scale.invert = function(x) {
+    return powb(linear.invert(x));
+  };
+
+  scale.domain = function(x) {
+    if (!arguments.length) return linear.domain().map(powb);
+    linear.domain(x.map(powp));
+    return scale;
+  };
+
+  scale.ticks = function(m) {
+    return d3_scale_linearTicks(scale.domain(), m);
+  };
+
+  scale.tickFormat = function(m) {
+    return d3_scale_linearTickFormat(scale.domain(), m);
+  };
+
+  scale.nice = function() {
+    return scale.domain(d3_scale_nice(scale.domain(), d3_scale_linearNice));
+  };
+
+  scale.exponent = function(x) {
+    if (!arguments.length) return exponent;
+    var domain = scale.domain();
+    powp = d3_scale_powPow(exponent = x);
+    powb = d3_scale_powPow(1 / exponent);
+    return scale.domain(domain);
+  };
+
+  scale.copy = function() {
+    return d3_scale_pow(linear.copy(), exponent);
+  };
+
+  return d3_scale_linearRebind(scale, linear);
+};
+
+function d3_scale_powPow(e) {
+  return function(x) {
+    return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);
+  };
+}
+d3.scale.sqrt = function() {
+  return d3.scale.pow().exponent(.5);
+};
+d3.scale.ordinal = function() {
+  return d3_scale_ordinal([], {t: "range", x: []});
+};
+
+function d3_scale_ordinal(domain, ranger) {
+  var index,
+      range,
+      rangeBand;
+
+  function scale(x) {
+    return range[((index[x] || (index[x] = domain.push(x))) - 1) % range.length];
+  }
+
+  function steps(start, step) {
+    return d3.range(domain.length).map(function(i) { return start + step * i; });
+  }
+
+  scale.domain = function(x) {
+    if (!arguments.length) return domain;
+    domain = [];
+    index = {};
+    var i = -1, n = x.length, xi;
+    while (++i < n) if (!index[xi = x[i]]) index[xi] = domain.push(xi);
+    return scale[ranger.t](ranger.x, ranger.p);
+  };
+
+  scale.range = function(x) {
+    if (!arguments.length) return range;
+    range = x;
+    rangeBand = 0;
+    ranger = {t: "range", x: x};
+    return scale;
+  };
+
+  scale.rangePoints = function(x, padding) {
+    if (arguments.length < 2) padding = 0;
+    var start = x[0],
+        stop = x[1],
+        step = (stop - start) / (domain.length - 1 + padding);
+    range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step);
+    rangeBand = 0;
+    ranger = {t: "rangePoints", x: x, p: padding};
+    return scale;
+  };
+
+  scale.rangeBands = function(x, padding) {
+    if (arguments.length < 2) padding = 0;
+    var start = x[0],
+        stop = x[1],
+        step = (stop - start) / (domain.length + padding);
+    range = steps(start + step * padding, step);
+    rangeBand = step * (1 - padding);
+    ranger = {t: "rangeBands", x: x, p: padding};
+    return scale;
+  };
+
+  scale.rangeRoundBands = function(x, padding) {
+    if (arguments.length < 2) padding = 0;
+    var start = x[0],
+        stop = x[1],
+        step = Math.floor((stop - start) / (domain.length + padding));
+    range = steps(start + Math.round((stop - start - (domain.length - padding) * step) / 2), step);
+    rangeBand = Math.round(step * (1 - padding));
+    ranger = {t: "rangeRoundBands", x: x, p: padding};
+    return scale;
+  };
+
+  scale.rangeBand = function() {
+    return rangeBand;
+  };
+
+  scale.copy = function() {
+    return d3_scale_ordinal(domain, ranger);
+  };
+
+  return scale.domain(domain);
+};
+/*
+ * This product includes color specifications and designs developed by Cynthia
+ * Brewer (http://colorbrewer.org/). See lib/colorbrewer for more information.
+ */
+
+d3.scale.category10 = function() {
+  return d3.scale.ordinal().range(d3_category10);
+};
+
+d3.scale.category20 = function() {
+  return d3.scale.ordinal().range(d3_category20);
+};
+
+d3.scale.category20b = function() {
+  return d3.scale.ordinal().range(d3_category20b);
+};
+
+d3.scale.category20c = function() {
+  return d3.scale.ordinal().range(d3_category20c);
+};
+
+var d3_category10 = [
+  "#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd",
+  "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf"
+];
+
+var d3_category20 = [
+  "#1f77b4", "#aec7e8",
+  "#ff7f0e", "#ffbb78",
+  "#2ca02c", "#98df8a",
+  "#d62728", "#ff9896",
+  "#9467bd", "#c5b0d5",
+  "#8c564b", "#c49c94",
+  "#e377c2", "#f7b6d2",
+  "#7f7f7f", "#c7c7c7",
+  "#bcbd22", "#dbdb8d",
+  "#17becf", "#9edae5"
+];
+
+var d3_category20b = [
+  "#393b79", "#5254a3", "#6b6ecf", "#9c9ede",
+  "#637939", "#8ca252", "#b5cf6b", "#cedb9c",
+  "#8c6d31", "#bd9e39", "#e7ba52", "#e7cb94",
+  "#843c39", "#ad494a", "#d6616b", "#e7969c",
+  "#7b4173", "#a55194", "#ce6dbd", "#de9ed6"
+];
+
+var d3_category20c = [
+  "#3182bd", "#6baed6", "#9ecae1", "#c6dbef",
+  "#e6550d", "#fd8d3c", "#fdae6b", "#fdd0a2",
+  "#31a354", "#74c476", "#a1d99b", "#c7e9c0",
+  "#756bb1", "#9e9ac8", "#bcbddc", "#dadaeb",
+  "#636363", "#969696", "#bdbdbd", "#d9d9d9"
+];
+d3.scale.quantile = function() {
+  return d3_scale_quantile([], []);
+};
+
+function d3_scale_quantile(domain, range) {
+  var thresholds;
+
+  function rescale() {
+    var k = 0,
+        n = domain.length,
+        q = range.length;
+    thresholds = [];
+    while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);
+    return scale;
+  }
+
+  function scale(x) {
+    if (isNaN(x = +x)) return NaN;
+    return range[d3.bisect(thresholds, x)];
+  }
+
+  scale.domain = function(x) {
+    if (!arguments.length) return domain;
+    domain = x.filter(function(d) { return !isNaN(d); }).sort(d3.ascending);
+    return rescale();
+  };
+
+  scale.range = function(x) {
+    if (!arguments.length) return range;
+    range = x;
+    return rescale();
+  };
+
+  scale.quantiles = function() {
+    return thresholds;
+  };
+
+  scale.copy = function() {
+    return d3_scale_quantile(domain, range); // copy on write!
+  };
+
+  return rescale();
+};
+d3.scale.quantize = function() {
+  return d3_scale_quantize(0, 1, [0, 1]);
+};
+
+function d3_scale_quantize(x0, x1, range) {
+  var kx, i;
+
+  function scale(x) {
+    return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];
+  }
+
+  function rescale() {
+    kx = range.length / (x1 - x0);
+    i = range.length - 1;
+    return scale;
+  }
+
+  scale.domain = function(x) {
+    if (!arguments.length) return [x0, x1];
+    x0 = +x[0];
+    x1 = +x[x.length - 1];
+    return rescale();
+  };
+
+  scale.range = function(x) {
+    if (!arguments.length) return range;
+    range = x;
+    return rescale();
+  };
+
+  scale.copy = function() {
+    return d3_scale_quantize(x0, x1, range); // copy on write
+  };
+
+  return rescale();
+};
+d3.svg = {};
+d3.svg.arc = function() {
+  var innerRadius = d3_svg_arcInnerRadius,
+      outerRadius = d3_svg_arcOuterRadius,
+      startAngle = d3_svg_arcStartAngle,
+      endAngle = d3_svg_arcEndAngle;
+
+  function arc() {
+    var r0 = innerRadius.apply(this, arguments),
+        r1 = outerRadius.apply(this, arguments),
+        a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset,
+        a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset,
+        da = (a1 < a0 && (da = a0, a0 = a1, a1 = da), a1 - a0),
+        df = da < Math.PI ? "0" : "1",
+        c0 = Math.cos(a0),
+        s0 = Math.sin(a0),
+        c1 = Math.cos(a1),
+        s1 = Math.sin(a1);
+    return da >= d3_svg_arcMax
+      ? (r0
+      ? "M0," + r1
+      + "A" + r1 + "," + r1 + " 0 1,1 0," + (-r1)
+      + "A" + r1 + "," + r1 + " 0 1,1 0," + r1
+      + "M0," + r0
+      + "A" + r0 + "," + r0 + " 0 1,0 0," + (-r0)
+      + "A" + r0 + "," + r0 + " 0 1,0 0," + r0
+      + "Z"
+      : "M0," + r1
+      + "A" + r1 + "," + r1 + " 0 1,1 0," + (-r1)
+      + "A" + r1 + "," + r1 + " 0 1,1 0," + r1
+      + "Z")
+      : (r0
+      ? "M" + r1 * c0 + "," + r1 * s0
+      + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1
+      + "L" + r0 * c1 + "," + r0 * s1
+      + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0
+      + "Z"
+      : "M" + r1 * c0 + "," + r1 * s0
+      + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1
+      + "L0,0"
+      + "Z");
+  }
+
+  arc.innerRadius = function(v) {
+    if (!arguments.length) return innerRadius;
+    innerRadius = d3.functor(v);
+    return arc;
+  };
+
+  arc.outerRadius = function(v) {
+    if (!arguments.length) return outerRadius;
+    outerRadius = d3.functor(v);
+    return arc;
+  };
+
+  arc.startAngle = function(v) {
+    if (!arguments.length) return startAngle;
+    startAngle = d3.functor(v);
+    return arc;
+  };
+
+  arc.endAngle = function(v) {
+    if (!arguments.length) return endAngle;
+    endAngle = d3.functor(v);
+    return arc;
+  };
+
+  arc.centroid = function() {
+    var r = (innerRadius.apply(this, arguments)
+        + outerRadius.apply(this, arguments)) / 2,
+        a = (startAngle.apply(this, arguments)
+        + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset;
+    return [Math.cos(a) * r, Math.sin(a) * r];
+  };
+
+  return arc;
+};
+
+var d3_svg_arcOffset = -Math.PI / 2,
+    d3_svg_arcMax = 2 * Math.PI - 1e-6;
+
+function d3_svg_arcInnerRadius(d) {
+  return d.innerRadius;
+}
+
+function d3_svg_arcOuterRadius(d) {
+  return d.outerRadius;
+}
+
+function d3_svg_arcStartAngle(d) {
+  return d.startAngle;
+}
+
+function d3_svg_arcEndAngle(d) {
+  return d.endAngle;
+}
+function d3_svg_line(projection) {
+  var x = d3_svg_lineX,
+      y = d3_svg_lineY,
+      interpolate = "linear",
+      interpolator = d3_svg_lineInterpolators[interpolate],
+      tension = .7;
+
+  function line(d) {
+    return d.length < 1 ? null : "M" + interpolator(projection(d3_svg_linePoints(this, d, x, y)), tension);
+  }
+
+  line.x = function(v) {
+    if (!arguments.length) return x;
+    x = v;
+    return line;
+  };
+
+  line.y = function(v) {
+    if (!arguments.length) return y;
+    y = v;
+    return line;
+  };
+
+  line.interpolate = function(v) {
+    if (!arguments.length) return interpolate;
+    interpolator = d3_svg_lineInterpolators[interpolate = v];
+    return line;
+  };
+
+  line.tension = function(v) {
+    if (!arguments.length) return tension;
+    tension = v;
+    return line;
+  };
+
+  return line;
+}
+
+d3.svg.line = function() {
+  return d3_svg_line(Object);
+};
+
+// Converts the specified array of data into an array of points
+// (x-y tuples), by evaluating the specified `x` and `y` functions on each
+// data point. The `this` context of the evaluated functions is the specified
+// "self" object; each function is passed the current datum and index.
+function d3_svg_linePoints(self, d, x, y) {
+  var points = [],
+      i = -1,
+      n = d.length,
+      fx = typeof x === "function",
+      fy = typeof y === "function",
+      value;
+  if (fx && fy) {
+    while (++i < n) points.push([
+      x.call(self, value = d[i], i),
+      y.call(self, value, i)
+    ]);
+  } else if (fx) {
+    while (++i < n) points.push([x.call(self, d[i], i), y]);
+  } else if (fy) {
+    while (++i < n) points.push([x, y.call(self, d[i], i)]);
+  } else {
+    while (++i < n) points.push([x, y]);
+  }
+  return points;
+}
+
+// The default `x` property, which references d[0].
+function d3_svg_lineX(d) {
+  return d[0];
+}
+
+// The default `y` property, which references d[1].
+function d3_svg_lineY(d) {
+  return d[1];
+}
+
+// The various interpolators supported by the `line` class.
+var d3_svg_lineInterpolators = {
+  "linear": d3_svg_lineLinear,
+  "step-before": d3_svg_lineStepBefore,
+  "step-after": d3_svg_lineStepAfter,
+  "basis": d3_svg_lineBasis,
+  "basis-open": d3_svg_lineBasisOpen,
+  "basis-closed": d3_svg_lineBasisClosed,
+  "bundle": d3_svg_lineBundle,
+  "cardinal": d3_svg_lineCardinal,
+  "cardinal-open": d3_svg_lineCardinalOpen,
+  "cardinal-closed": d3_svg_lineCardinalClosed,
+  "monotone": d3_svg_lineMonotone
+};
+
+// Linear interpolation; generates "L" commands.
+function d3_svg_lineLinear(points) {
+  var i = 0,
+      n = points.length,
+      p = points[0],
+      path = [p[0], ",", p[1]];
+  while (++i < n) path.push("L", (p = points[i])[0], ",", p[1]);
+  return path.join("");
+}
+
+// Step interpolation; generates "H" and "V" commands.
+function d3_svg_lineStepBefore(points) {
+  var i = 0,
+      n = points.length,
+      p = points[0],
+      path = [p[0], ",", p[1]];
+  while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]);
+  return path.join("");
+}
+
+// Step interpolation; generates "H" and "V" commands.
+function d3_svg_lineStepAfter(points) {
+  var i = 0,
+      n = points.length,
+      p = points[0],
+      path = [p[0], ",", p[1]];
+  while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]);
+  return path.join("");
+}
+
+// Open cardinal spline interpolation; generates "C" commands.
+function d3_svg_lineCardinalOpen(points, tension) {
+  return points.length < 4
+      ? d3_svg_lineLinear(points)
+      : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1),
+        d3_svg_lineCardinalTangents(points, tension));
+}
+
+// Closed cardinal spline interpolation; generates "C" commands.
+function d3_svg_lineCardinalClosed(points, tension) {
+  return points.length < 3
+      ? d3_svg_lineLinear(points)
+      : points[0] + d3_svg_lineHermite((points.push(points[0]), points),
+        d3_svg_lineCardinalTangents([points[points.length - 2]]
+        .concat(points, [points[1]]), tension));
+}
+
+// Cardinal spline interpolation; generates "C" commands.
+function d3_svg_lineCardinal(points, tension, closed) {
+  return points.length < 3
+      ? d3_svg_lineLinear(points)
+      : points[0] + d3_svg_lineHermite(points,
+        d3_svg_lineCardinalTangents(points, tension));
+}
+
+// Hermite spline construction; generates "C" commands.
+function d3_svg_lineHermite(points, tangents) {
+  if (tangents.length < 1
+      || (points.length != tangents.length
+      && points.length != tangents.length + 2)) {
+    return d3_svg_lineLinear(points);
+  }
+
+  var quad = points.length != tangents.length,
+      path = "",
+      p0 = points[0],
+      p = points[1],
+      t0 = tangents[0],
+      t = t0,
+      pi = 1;
+
+  if (quad) {
+    path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3)
+        + "," + p[0] + "," + p[1];
+    p0 = points[1];
+    pi = 2;
+  }
+
+  if (tangents.length > 1) {
+    t = tangents[1];
+    p = points[pi];
+    pi++;
+    path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1])
+        + "," + (p[0] - t[0]) + "," + (p[1] - t[1])
+        + "," + p[0] + "," + p[1];
+    for (var i = 2; i < tangents.length; i++, pi++) {
+      p = points[pi];
+      t = tangents[i];
+      path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1])
+          + "," + p[0] + "," + p[1];
+    }
+  }
+
+  if (quad) {
+    var lp = points[pi];
+    path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3)
+        + "," + lp[0] + "," + lp[1];
+  }
+
+  return path;
+}
+
+// Generates tangents for a cardinal spline.
+function d3_svg_lineCardinalTangents(points, tension) {
+  var tangents = [],
+      a = (1 - tension) / 2,
+      p0,
+      p1 = points[0],
+      p2 = points[1],
+      i = 1,
+      n = points.length;
+  while (++i < n) {
+    p0 = p1;
+    p1 = p2;
+    p2 = points[i];
+    tangents.push([a * (p2[0] - p0[0]), a * (p2[1] - p0[1])]);
+  }
+  return tangents;
+}
+
+// B-spline interpolation; generates "C" commands.
+function d3_svg_lineBasis(points) {
+  if (points.length < 3) return d3_svg_lineLinear(points);
+  var i = 1,
+      n = points.length,
+      pi = points[0],
+      x0 = pi[0],
+      y0 = pi[1],
+      px = [x0, x0, x0, (pi = points[1])[0]],
+      py = [y0, y0, y0, pi[1]],
+      path = [x0, ",", y0];
+  d3_svg_lineBasisBezier(path, px, py);
+  while (++i < n) {
+    pi = points[i];
+    px.shift(); px.push(pi[0]);
+    py.shift(); py.push(pi[1]);
+    d3_svg_lineBasisBezier(path, px, py);
+  }
+  i = -1;
+  while (++i < 2) {
+    px.shift(); px.push(pi[0]);
+    py.shift(); py.push(pi[1]);
+    d3_svg_lineBasisBezier(path, px, py);
+  }
+  return path.join("");
+}
+
+// Open B-spline interpolation; generates "C" commands.
+function d3_svg_lineBasisOpen(points) {
+  if (points.length < 4) return d3_svg_lineLinear(points);
+  var path = [],
+      i = -1,
+      n = points.length,
+      pi,
+      px = [0],
+      py = [0];
+  while (++i < 3) {
+    pi = points[i];
+    px.push(pi[0]);
+    py.push(pi[1]);
+  }
+  path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px)
+    + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));
+  --i; while (++i < n) {
+    pi = points[i];
+    px.shift(); px.push(pi[0]);
+    py.shift(); py.push(pi[1]);
+    d3_svg_lineBasisBezier(path, px, py);
+  }
+  return path.join("");
+}
+
+// Closed B-spline interpolation; generates "C" commands.
+function d3_svg_lineBasisClosed(points) {
+  var path,
+      i = -1,
+      n = points.length,
+      m = n + 4,
+      pi,
+      px = [],
+      py = [];
+  while (++i < 4) {
+    pi = points[i % n];
+    px.push(pi[0]);
+    py.push(pi[1]);
+  }
+  path = [
+    d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",",
+    d3_svg_lineDot4(d3_svg_lineBasisBezier3, py)
+  ];
+  --i; while (++i < m) {
+    pi = points[i % n];
+    px.shift(); px.push(pi[0]);
+    py.shift(); py.push(pi[1]);
+    d3_svg_lineBasisBezier(path, px, py);
+  }
+  return path.join("");
+}
+
+function d3_svg_lineBundle(points, tension) {
+  var n = points.length - 1,
+      x0 = points[0][0],
+      y0 = points[0][1],
+      dx = points[n][0] - x0,
+      dy = points[n][1] - y0,
+      i = -1,
+      p,
+      t;
+  while (++i <= n) {
+    p = points[i];
+    t = i / n;
+    p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);
+    p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);
+  }
+  return d3_svg_lineBasis(points);
+}
+
+// Returns the dot product of the given four-element vectors.
+function d3_svg_lineDot4(a, b) {
+  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
+}
+
+// Matrix to transform basis (b-spline) control points to bezier
+// control points. Derived from FvD 11.2.8.
+var d3_svg_lineBasisBezier1 = [0, 2/3, 1/3, 0],
+    d3_svg_lineBasisBezier2 = [0, 1/3, 2/3, 0],
+    d3_svg_lineBasisBezier3 = [0, 1/6, 2/3, 1/6];
+
+// Pushes a "C" Bézier curve onto the specified path array, given the
+// two specified four-element arrays which define the control points.
+function d3_svg_lineBasisBezier(path, x, y) {
+  path.push(
+      "C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x),
+      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y),
+      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x),
+      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y),
+      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x),
+      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));
+}
+
+// Computes the slope from points p0 to p1.
+function d3_svg_lineSlope(p0, p1) {
+  return (p1[1] - p0[1]) / (p1[0] - p0[0]);
+}
+
+// Compute three-point differences for the given points.
+// http://en.wikipedia.org/wiki/Cubic_Hermite_spline#Finite_difference
+function d3_svg_lineFiniteDifferences(points) {
+  var i = 0,
+      j = points.length - 1,
+      m = [],
+      p0 = points[0],
+      p1 = points[1],
+      d = m[0] = d3_svg_lineSlope(p0, p1);
+  while (++i < j) {
+    m[i] = d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]));
+  }
+  m[i] = d;
+  return m;
+}
+
+// Interpolates the given points using Fritsch-Carlson Monotone cubic Hermite
+// interpolation. Returns an array of tangent vectors. For details, see
+// http://en.wikipedia.org/wiki/Monotone_cubic_interpolation
+function d3_svg_lineMonotoneTangents(points) {
+  var tangents = [],
+      d,
+      a,
+      b,
+      s,
+      m = d3_svg_lineFiniteDifferences(points),
+      i = -1,
+      j = points.length - 1;
+
+  // The first two steps are done by computing finite-differences:
+  // 1. Compute the slopes of the secant lines between successive points.
+  // 2. Initialize the tangents at every point as the average of the secants.
+
+  // Then, for each segment…
+  while (++i < j) {
+    d = d3_svg_lineSlope(points[i], points[i + 1]);
+
+    // 3. If two successive yk = y{k + 1} are equal (i.e., d is zero), then set
+    // mk = m{k + 1} = 0 as the spline connecting these points must be flat to
+    // preserve monotonicity. Ignore step 4 and 5 for those k.
+
+    if (Math.abs(d) < 1e-6) {
+      m[i] = m[i + 1] = 0;
+    } else {
+      // 4. Let ak = mk / dk and bk = m{k + 1} / dk.
+      a = m[i] / d;
+      b = m[i + 1] / d;
+
+      // 5. Prevent overshoot and ensure monotonicity by restricting the
+      // magnitude of vector <ak, bk> to a circle of radius 3.
+      s = a * a + b * b;
+      if (s > 9) {
+        s = d * 3 / Math.sqrt(s);
+        m[i] = s * a;
+        m[i + 1] = s * b;
+      }
+    }
+  }
+
+  // Compute the normalized tangent vector from the slopes. Note that if x is
+  // not monotonic, it's possible that the slope will be infinite, so we
+	// protect
+  // against NaN by setting the coordinate to zero.
+  i = -1; while (++i <= j) {
+    s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0])
+      / (6 * (1 + m[i] * m[i]));
+    tangents.push([s || 0, m[i] * s || 0]);
+  }
+
+  return tangents;
+}
+
+function d3_svg_lineMonotone(points) {
+  return points.length < 3
+      ? d3_svg_lineLinear(points)
+      : points[0] +
+        d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));
+}
+d3.svg.line.radial = function() {
+  var line = d3_svg_line(d3_svg_lineRadial);
+  line.radius = line.x, delete line.x;
+  line.angle = line.y, delete line.y;
+  return line;
+};
+
+function d3_svg_lineRadial(points) {
+  var point,
+      i = -1,
+      n = points.length,
+      r,
+      a;
+  while (++i < n) {
+    point = points[i];
+    r = point[0];
+    a = point[1] + d3_svg_arcOffset;
+    point[0] = r * Math.cos(a);
+    point[1] = r * Math.sin(a);
+  }
+  return points;
+}
+function d3_svg_area(projection) {
+  var x0 = d3_svg_lineX,
+      x1 = d3_svg_lineX,
+      y0 = 0,
+      y1 = d3_svg_lineY,
+      interpolate,
+      i0,
+      i1,
+      tension = .7;
+
+  function area(d) {
+    if (d.length < 1) return null;
+    var points0 = d3_svg_linePoints(this, d, x0, y0),
+        points1 = d3_svg_linePoints(this, d, x0 === x1 ? d3_svg_areaX(points0) : x1, y0 === y1 ? d3_svg_areaY(points0) : y1);
+    return "M" + i0(projection(points1), tension)
+         + "L" + i1(projection(points0.reverse()), tension)
+         + "Z";
+  }
+
+  area.x = function(x) {
+    if (!arguments.length) return x1;
+    x0 = x1 = x;
+    return area;
+  };
+
+  area.x0 = function(x) {
+    if (!arguments.length) return x0;
+    x0 = x;
+    return area;
+  };
+
+  area.x1 = function(x) {
+    if (!arguments.length) return x1;
+    x1 = x;
+    return area;
+  };
+
+  area.y = function(y) {
+    if (!arguments.length) return y1;
+    y0 = y1 = y;
+    return area;
+  };
+
+  area.y0 = function(y) {
+    if (!arguments.length) return y0;
+    y0 = y;
+    return area;
+  };
+
+  area.y1 = function(y) {
+    if (!arguments.length) return y1;
+    y1 = y;
+    return area;
+  };
+
+  area.interpolate = function(x) {
+    if (!arguments.length) return interpolate;
+    i0 = d3_svg_lineInterpolators[interpolate = x];
+    i1 = i0.reverse || i0;
+    return area;
+  };
+
+  area.tension = function(x) {
+    if (!arguments.length) return tension;
+    tension = x;
+    return area;
+  };
+
+  return area.interpolate("linear");
+}
+
+d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;
+d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;
+
+d3.svg.area = function() {
+  return d3_svg_area(Object);
+};
+
+function d3_svg_areaX(points) {
+  return function(d, i) {
+    return points[i][0];
+  };
+}
+
+function d3_svg_areaY(points) {
+  return function(d, i) {
+    return points[i][1];
+  };
+}
+d3.svg.area.radial = function() {
+  var area = d3_svg_area(d3_svg_lineRadial);
+  area.radius = area.x, delete area.x;
+  area.innerRadius = area.x0, delete area.x0;
+  area.outerRadius = area.x1, delete area.x1;
+  area.angle = area.y, delete area.y;
+  area.startAngle = area.y0, delete area.y0;
+  area.endAngle = area.y1, delete area.y1;
+  return area;
+};
+d3.svg.chord = function() {
+  var source = d3_svg_chordSource,
+      target = d3_svg_chordTarget,
+      radius = d3_svg_chordRadius,
+      startAngle = d3_svg_arcStartAngle,
+      endAngle = d3_svg_arcEndAngle;
+
+  // TODO Allow control point to be customized.
+
+  function chord(d, i) {
+    var s = subgroup(this, source, d, i),
+        t = subgroup(this, target, d, i);
+    return "M" + s.p0
+      + arc(s.r, s.p1) + (equals(s, t)
+      ? curve(s.r, s.p1, s.r, s.p0)
+      : curve(s.r, s.p1, t.r, t.p0)
+      + arc(t.r, t.p1)
+      + curve(t.r, t.p1, s.r, s.p0))
+      + "Z";
+  }
+
+  function subgroup(self, f, d, i) {
+    var subgroup = f.call(self, d, i),
+        r = radius.call(self, subgroup, i),
+        a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset,
+        a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset;
+    return {
+      r: r,
+      a0: a0,
+      a1: a1,
+      p0: [r * Math.cos(a0), r * Math.sin(a0)],
+      p1: [r * Math.cos(a1), r * Math.sin(a1)]
+    };
+  }
+
+  function equals(a, b) {
+    return a.a0 == b.a0 && a.a1 == b.a1;
+  }
+
+  function arc(r, p) {
+    return "A" + r + "," + r + " 0 0,1 " + p;
+  }
+
+  function curve(r0, p0, r1, p1) {
+    return "Q 0,0 " + p1;
+  }
+
+  chord.radius = function(v) {
+    if (!arguments.length) return radius;
+    radius = d3.functor(v);
+    return chord;
+  };
+
+  chord.source = function(v) {
+    if (!arguments.length) return source;
+    source = d3.functor(v);
+    return chord;
+  };
+
+  chord.target = function(v) {
+    if (!arguments.length) return target;
+    target = d3.functor(v);
+    return chord;
+  };
+
+  chord.startAngle = function(v) {
+    if (!arguments.length) return startAngle;
+    startAngle = d3.functor(v);
+    return chord;
+  };
+
+  chord.endAngle = function(v) {
+    if (!arguments.length) return endAngle;
+    endAngle = d3.functor(v);
+    return chord;
+  };
+
+  return chord;
+};
+
+function d3_svg_chordSource(d) {
+  return d.source;
+}
+
+function d3_svg_chordTarget(d) {
+  return d.target;
+}
+
+function d3_svg_chordRadius(d) {
+  return d.radius;
+}
+
+function d3_svg_chordStartAngle(d) {
+  return d.startAngle;
+}
+
+function d3_svg_chordEndAngle(d) {
+  return d.endAngle;
+}
+d3.svg.diagonal = function() {
+  var source = d3_svg_chordSource,
+      target = d3_svg_chordTarget,
+      projection = d3_svg_diagonalProjection;
+
+  function diagonal(d, i) {
+    var p0 = source.call(this, d, i),
+        p3 = target.call(this, d, i),
+        m = (p0.y + p3.y) / 2,
+        p = [p0, {x: p0.x, y: m}, {x: p3.x, y: m}, p3];
+    p = p.map(projection);
+    return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3];
+  }
+
+  diagonal.source = function(x) {
+    if (!arguments.length) return source;
+    source = d3.functor(x);
+    return diagonal;
+  };
+
+  diagonal.target = function(x) {
+    if (!arguments.length) return target;
+    target = d3.functor(x);
+    return diagonal;
+  };
+
+  diagonal.projection = function(x) {
+    if (!arguments.length) return projection;
+    projection = x;
+    return diagonal;
+  };
+
+  return diagonal;
+};
+
+function d3_svg_diagonalProjection(d) {
+  return [d.x, d.y];
+}
+d3.svg.diagonal.radial = function() {
+  var diagonal = d3.svg.diagonal(),
+      projection = d3_svg_diagonalProjection,
+      projection_ = diagonal.projection;
+
+  diagonal.projection = function(x) {
+    return arguments.length
+        ? projection_(d3_svg_diagonalRadialProjection(projection = x))
+        : projection;
+  };
+
+  return diagonal;
+};
+
+function d3_svg_diagonalRadialProjection(projection) {
+  return function() {
+    var d = projection.apply(this, arguments),
+        r = d[0],
+        a = d[1] + d3_svg_arcOffset;
+    return [r * Math.cos(a), r * Math.sin(a)];
+  };
+}
+d3.svg.mouse = function(container) {
+  return d3_svg_mousePoint(container, d3.event);
+};
+
+// https://bugs.webkit.org/show_bug.cgi?id=44083
+var d3_mouse_bug44083 = /WebKit/.test(navigator.userAgent) ? -1 : 0;
+
+function d3_svg_mousePoint(container, e) {
+  var point = (container.ownerSVGElement || container).createSVGPoint();
+  if ((d3_mouse_bug44083 < 0) && (window.scrollX || window.scrollY)) {
+    var svg = d3.select(document.body)
+      .append("svg:svg")
+        .style("position", "absolute")
+        .style("top", 0)
+        .style("left", 0);
+    var ctm = svg[0][0].getScreenCTM();
+    d3_mouse_bug44083 = !(ctm.f || ctm.e);
+    svg.remove();
+  }
+  if (d3_mouse_bug44083) {
+    point.x = e.pageX;
+    point.y = e.pageY;
+  } else {
+    point.x = e.clientX;
+    point.y = e.clientY;
+  }
+  point = point.matrixTransform(container.getScreenCTM().inverse());
+  return [point.x, point.y];
+};
+d3.svg.touches = function(container, touches) {
+  if (arguments.length < 2) touches = d3.event.touches;
+
+  return touches ? d3_array(touches).map(function(touch) {
+    var point = d3_svg_mousePoint(container, touch);
+    point.identifier = touch.identifier;
+    return point;
+  }) : [];
+};
+d3.svg.symbol = function() {
+  var type = d3_svg_symbolType,
+      size = d3_svg_symbolSize;
+
+  function symbol(d, i) {
+    return (d3_svg_symbols[type.call(this, d, i)]
+        || d3_svg_symbols.circle)
+        (size.call(this, d, i));
+  }
+
+  symbol.type = function(x) {
+    if (!arguments.length) return type;
+    type = d3.functor(x);
+    return symbol;
+  };
+
+  // size of symbol in square pixels
+  symbol.size = function(x) {
+    if (!arguments.length) return size;
+    size = d3.functor(x);
+    return symbol;
+  };
+
+  return symbol;
+};
+
+function d3_svg_symbolSize() {
+  return 64;
+}
+
+function d3_svg_symbolType() {
+  return "circle";
+}
+
+// TODO cross-diagonal?
+var d3_svg_symbols = {
+  "circle": function(size) {
+    var r = Math.sqrt(size / Math.PI);
+    return "M0," + r
+        + "A" + r + "," + r + " 0 1,1 0," + (-r)
+        + "A" + r + "," + r + " 0 1,1 0," + r
+        + "Z";
+  },
+  "cross": function(size) {
+    var r = Math.sqrt(size / 5) / 2;
+    return "M" + -3 * r + "," + -r
+        + "H" + -r
+        + "V" + -3 * r
+        + "H" + r
+        + "V" + -r
+        + "H" + 3 * r
+        + "V" + r
+        + "H" + r
+        + "V" + 3 * r
+        + "H" + -r
+        + "V" + r
+        + "H" + -3 * r
+        + "Z";
+  },
+  "diamond": function(size) {
+    var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)),
+        rx = ry * d3_svg_symbolTan30;
+    return "M0," + -ry
+        + "L" + rx + ",0"
+        + " 0," + ry
+        + " " + -rx + ",0"
+        + "Z";
+  },
+  "square": function(size) {
+    var r = Math.sqrt(size) / 2;
+    return "M" + -r + "," + -r
+        + "L" + r + "," + -r
+        + " " + r + "," + r
+        + " " + -r + "," + r
+        + "Z";
+  },
+  "triangle-down": function(size) {
+    var rx = Math.sqrt(size / d3_svg_symbolSqrt3),
+        ry = rx * d3_svg_symbolSqrt3 / 2;
+    return "M0," + ry
+        + "L" + rx +"," + -ry
+        + " " + -rx + "," + -ry
+        + "Z";
+  },
+  "triangle-up": function(size) {
+    var rx = Math.sqrt(size / d3_svg_symbolSqrt3),
+        ry = rx * d3_svg_symbolSqrt3 / 2;
+    return "M0," + -ry
+        + "L" + rx +"," + ry
+        + " " + -rx + "," + ry
+        + "Z";
+  }
+};
+
+d3.svg.symbolTypes = d3.keys(d3_svg_symbols);
+
+var d3_svg_symbolSqrt3 = Math.sqrt(3),
+    d3_svg_symbolTan30 = Math.tan(30 * Math.PI / 180);
+d3.svg.axis = function() {
+  var scale = d3.scale.linear(),
+      orient = "bottom",
+      tickMajorSize = 6,
+      tickMinorSize = 6,
+      tickEndSize = 6,
+      tickPadding = 3,
+      tickArguments_ = [10],
+      tickFormat_,
+      tickSubdivide = 0;
+
+  function axis(selection) {
+    selection.each(function(d, i, j) {
+      var g = d3.select(this);
+
+      // If selection is a transition, create subtransitions.
+      var transition = selection.delay ? function(o) {
+        var id = d3_transitionInheritId;
+        try {
+          d3_transitionInheritId = selection.id;
+          return o.transition()
+              .delay(selection[j][i].delay)
+              .duration(selection[j][i].duration)
+              .ease(selection.ease());
+        } finally {
+          d3_transitionInheritId = id;
+        }
+      } : Object;
+
+      // Ticks.
+      var ticks = scale.ticks.apply(scale, tickArguments_),
+          tickFormat = tickFormat_ == null ? scale.tickFormat.apply(scale, tickArguments_) : tickFormat_;
+
+      // Minor ticks.
+      var subticks = d3_svg_axisSubdivide(scale, ticks, tickSubdivide),
+          subtick = g.selectAll(".minor").data(subticks, String),
+          subtickEnter = subtick.enter().insert("svg:line", "g").attr("class", "tick minor").style("opacity", 1e-6),
+          subtickExit = transition(subtick.exit()).style("opacity", 1e-6).remove(),
+          subtickUpdate = transition(subtick).style("opacity", 1);
+
+      // Major ticks.
+      var tick = g.selectAll("g").data(ticks, String),
+          tickEnter = tick.enter().insert("svg:g", "path").style("opacity", 1e-6),
+          tickExit = transition(tick.exit()).style("opacity", 1e-6).remove(),
+          tickUpdate = transition(tick).style("opacity", 1),
+          tickTransform;
+
+      // Domain.
+      var range = d3_scaleExtent(scale.range()),
+          path = g.selectAll(".domain").data([0]),
+          pathEnter = path.enter().append("svg:path").attr("class", "domain"),
+          pathUpdate = transition(path);
+
+      // Stash the new scale and grab the old scale.
+      var scale0 = this.__chart__ || scale;
+      this.__chart__ = scale.copy();
+
+      tickEnter.append("svg:line").attr("class", "tick");
+      tickEnter.append("svg:text");
+      tickUpdate.select("text").text(tickFormat);
+
+      switch (orient) {
+        case "bottom": {
+          tickTransform = d3_svg_axisX;
+          subtickUpdate.attr("x2", 0).attr("y2", tickMinorSize);
+          tickUpdate.select("line").attr("x2", 0).attr("y2", tickMajorSize);
+          tickUpdate.select("text").attr("x", 0).attr("y", Math.max(tickMajorSize, 0) + tickPadding).attr("dy", ".71em").attr("text-anchor", "middle");
+          pathUpdate.attr("d", "M" + range[0] + "," + tickEndSize + "V0H" + range[1] + "V" + tickEndSize);
+          break;
+        }
+        case "top": {
+          tickTransform = d3_svg_axisX;
+          subtickUpdate.attr("x2", 0).attr("y2", -tickMinorSize);
+          tickUpdate.select("line").attr("x2", 0).attr("y2", -tickMajorSize);
+          tickUpdate.select("text").attr("x", 0).attr("y", -(Math.max(tickMajorSize, 0) + tickPadding)).attr("dy", "0em").attr("text-anchor", "middle");
+          pathUpdate.attr("d", "M" + range[0] + "," + -tickEndSize + "V0H" + range[1] + "V" + -tickEndSize);
+          break;
+        }
+        case "left": {
+          tickTransform = d3_svg_axisY;
+          subtickUpdate.attr("x2", -tickMinorSize).attr("y2", 0);
+          tickUpdate.select("line").attr("x2", -tickMajorSize).attr("y2", 0);
+          tickUpdate.select("text").attr("x", -(Math.max(tickMajorSize, 0) + tickPadding)).attr("y", 0).attr("dy", ".32em").attr("text-anchor", "end");
+          pathUpdate.attr("d", "M" + -tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + -tickEndSize);
+          break;
+        }
+        case "right": {
+          tickTransform = d3_svg_axisY;
+          subtickUpdate.attr("x2", tickMinorSize).attr("y2", 0);
+          tickUpdate.select("line").attr("x2", tickMajorSize).attr("y2", 0);
+          tickUpdate.select("text").attr("x", Math.max(tickMajorSize, 0) + tickPadding).attr("y", 0).attr("dy", ".32em").attr("text-anchor", "start");
+          pathUpdate.attr("d", "M" + tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + tickEndSize);
+          break;
+        }
+      }
+
+      tickEnter.call(tickTransform, scale0);
+      tickUpdate.call(tickTransform, scale);
+      tickExit.call(tickTransform, scale);
+
+      subtickEnter.call(tickTransform, scale0);
+      subtickUpdate.call(tickTransform, scale);
+      subtickExit.call(tickTransform, scale);
+    });
+  }
+
+  axis.scale = function(x) {
+    if (!arguments.length) return scale;
+    scale = x;
+    return axis;
+  };
+
+  axis.orient = function(x) {
+    if (!arguments.length) return orient;
+    orient = x;
+    return axis;
+  };
+
+  axis.ticks = function() {
+    if (!arguments.length) return tickArguments_;
+    tickArguments_ = arguments;
+    return axis;
+  };
+
+  axis.tickFormat = function(x) {
+    if (!arguments.length) return tickFormat_;
+    tickFormat_ = x;
+    return axis;
+  };
+
+  axis.tickSize = function(x, y, z) {
+    if (!arguments.length) return tickMajorSize;
+    var n = arguments.length - 1;
+    tickMajorSize = +x;
+    tickMinorSize = n > 1 ? +y : tickMajorSize;
+    tickEndSize = n > 0 ? +arguments[n] : tickMajorSize;
+    return axis;
+  };
+
+  axis.tickPadding = function(x) {
+    if (!arguments.length) return tickPadding;
+    tickPadding = +x;
+    return axis;
+  };
+
+  axis.tickSubdivide = function(x) {
+    if (!arguments.length) return tickSubdivide;
+    tickSubdivide = +x;
+    return axis;
+  };
+
+  return axis;
+};
+
+function d3_svg_axisX(selection, x) {
+  selection.attr("transform", function(d) { return "translate(" + x(d) + ",0)"; });
+}
+
+function d3_svg_axisY(selection, y) {
+  selection.attr("transform", function(d) { return "translate(0," + y(d) + ")"; });
+}
+
+function d3_svg_axisSubdivide(scale, ticks, m) {
+  subticks = [];
+  if (m && ticks.length > 1) {
+    var extent = d3_scaleExtent(scale.domain()),
+        subticks,
+        i = -1,
+        n = ticks.length,
+        d = (ticks[1] - ticks[0]) / ++m,
+        j,
+        v;
+    while (++i < n) {
+      for (j = m; --j > 0;) {
+        if ((v = +ticks[i] - j * d) >= extent[0]) {
+          subticks.push(v);
+        }
+      }
+    }
+    for (--i, j = 0; ++j < m && (v = +ticks[i] + j * d) < extent[1];) {
+      subticks.push(v);
+    }
+  }
+  return subticks;
+}
+d3.svg.brush = function() {
+  var event = d3.dispatch("brushstart", "brush", "brushend"),
+      x, // x-scale, optional
+      y, // y-scale, optional
+      extent = [[0, 0], [0, 0]]; // [x0, y0], [x1, y1]
+
+  function brush(g) {
+    var resizes = x && y ? ["n", "e", "s", "w", "nw", "ne", "se", "sw"]
+        : x ? ["e", "w"]
+        : y ? ["n", "s"]
+        : [];
+
+    g.each(function() {
+      var g = d3.select(this).on("mousedown.brush", down),
+          bg = g.selectAll(".background").data([,]),
+          fg = g.selectAll(".extent").data([,]),
+          tz = g.selectAll(".resize").data(resizes, String),
+          e;
+
+      // An invisible, mouseable area for starting a new brush.
+      bg.enter().append("svg:rect")
+          .attr("class", "background")
+          .style("visibility", "hidden")
+          .style("pointer-events", "all")
+          .style("cursor", "crosshair");
+
+      // The visible brush extent; style this as you like!
+      fg.enter().append("svg:rect")
+          .attr("class", "extent")
+          .style("cursor", "move");
+
+      // More invisible rects for resizing the extent.
+      tz.enter().append("svg:rect")
+          .attr("class", function(d) { return "resize " + d; })
+          .attr("width", 6)
+          .attr("height", 6)
+          .style("visibility", "hidden")
+          .style("pointer-events", brush.empty() ? "none" : "all")
+          .style("cursor", function(d) { return d3_svg_brushCursor[d]; });
+
+      // Remove any superfluous resizers.
+      tz.exit().remove();
+
+      // Initialize the background to fill the defined range.
+      // If the range isn't defined, you can post-process.
+      if (x) {
+        e = d3_scaleExtent(x.range());
+        bg.attr("x", e[0]).attr("width", e[1] - e[0]);
+        d3_svg_brushRedrawX(g, extent);
+      }
+      if (y) {
+        e = d3_scaleExtent(y.range());
+        bg.attr("y", e[0]).attr("height", e[1] - e[0]);
+        d3_svg_brushRedrawY(g, extent);
+      }
+    });
+  }
+
+  function down() {
+    var target = d3.select(d3.event.target);
+
+    // Store some global state for the duration of the brush gesture.
+    d3_svg_brush = brush;
+    d3_svg_brushTarget = this;
+    d3_svg_brushExtent = extent;
+    d3_svg_brushOffset = d3.svg.mouse(d3_svg_brushTarget);
+
+    // If the extent was clicked on, drag rather than brush;
+    // store the offset between the mouse and extent origin instead.
+    if (d3_svg_brushDrag = target.classed("extent")) {
+      d3_svg_brushOffset[0] = extent[0][0] - d3_svg_brushOffset[0];
+      d3_svg_brushOffset[1] = extent[0][1] - d3_svg_brushOffset[1];
+    }
+
+    // If a resizer was clicked on, record which side is to be resized.
+    // Also, set the offset to the opposite side.
+    else if (target.classed("resize")) {
+      d3_svg_brushResize = d3.event.target.__data__;
+      d3_svg_brushOffset[0] = extent[+/w$/.test(d3_svg_brushResize)][0];
+      d3_svg_brushOffset[1] = extent[+/^n/.test(d3_svg_brushResize)][1];
+    }
+
+    // If the ALT key is down when starting a brush, the center is at the mouse.
+    else if (d3.event.altKey) {
+      d3_svg_brushCenter = d3_svg_brushOffset.slice();
+    }
+
+    // Restrict which dimensions are resized.
+    d3_svg_brushX = !/^(n|s)$/.test(d3_svg_brushResize) && x;
+    d3_svg_brushY = !/^(e|w)$/.test(d3_svg_brushResize) && y;
+
+    // Notify listeners.
+    d3_svg_brushDispatch = dispatcher(this, arguments);
+    d3_svg_brushDispatch("brushstart");
+    d3_svg_brushMove();
+    d3_eventCancel();
+  }
+
+  function dispatcher(that, argumentz) {
+    return function(type) {
+      var e = d3.event;
+      try {
+        d3.event = {type: type, target: brush};
+        event[type].apply(that, argumentz);
+      } finally {
+        d3.event = e;
+      }
+    };
+  }
+
+  brush.x = function(z) {
+    if (!arguments.length) return x;
+    x = z;
+    return brush;
+  };
+
+  brush.y = function(z) {
+    if (!arguments.length) return y;
+    y = z;
+    return brush;
+  };
+
+  brush.extent = function(z) {
+    var x0, x1, y0, y1, t;
+
+    // Invert the pixel extent to data-space.
+    if (!arguments.length) {
+      if (x) {
+        x0 = x.invert(extent[0][0]), x1 = x.invert(extent[1][0]);
+        if (x1 < x0) t = x0, x0 = x1, x1 = t;
+      }
+      if (y) {
+        y0 = y.invert(extent[0][1]), y1 = y.invert(extent[1][1]);
+        if (y1 < y0) t = y0, y0 = y1, y1 = t;
+      }
+      return x && y ? [[x0, y0], [x1, y1]] : x ? [x0, x1] : y && [y0, y1];
+    }
+
+    // Scale the data-space extent to pixels.
+    if (x) {
+      x0 = z[0], x1 = z[1];
+      if (y) x0 = x0[0], x1 = x1[0];
+      x0 = x(x0), x1 = x(x1);
+      if (x1 < x0) t = x0, x0 = x1, x1 = t;
+      extent[0][0] = x0, extent[1][0] = x1;
+    }
+    if (y) {
+      y0 = z[0], y1 = z[1];
+      if (x) y0 = y0[1], y1 = y1[1];
+      y0 = y(y0), y1 = y(y1);
+      if (y1 < y0) t = y0, y0 = y1, y1 = t;
+      extent[0][1] = y0, extent[1][1] = y1;
+    }
+
+    return brush;
+  };
+
+  brush.clear = function() {
+    extent[0][0] =
+    extent[0][1] =
+    extent[1][0] =
+    extent[1][1] = 0;
+    return brush;
+  };
+
+  brush.empty = function() {
+    return (x && extent[0][0] === extent[1][0])
+        || (y && extent[0][1] === extent[1][1]);
+  };
+
+  brush.on = function(type, listener) {
+    event.on(type, listener);
+    return brush;
+  };
+
+  d3.select(window)
+      .on("mousemove.brush", d3_svg_brushMove)
+      .on("mouseup.brush", d3_svg_brushUp)
+      .on("keydown.brush", d3_svg_brushKeydown)
+      .on("keyup.brush", d3_svg_brushKeyup);
+
+  return brush;
+};
+
+var d3_svg_brush,
+    d3_svg_brushDispatch,
+    d3_svg_brushTarget,
+    d3_svg_brushX,
+    d3_svg_brushY,
+    d3_svg_brushExtent,
+    d3_svg_brushDrag,
+    d3_svg_brushResize,
+    d3_svg_brushCenter,
+    d3_svg_brushOffset;
+
+function d3_svg_brushRedrawX(g, extent) {
+  g.select(".extent").attr("x", extent[0][0]);
+  g.selectAll(".n,.s,.w,.nw,.sw").attr("x", extent[0][0] - 2);
+  g.selectAll(".e,.ne,.se").attr("x", extent[1][0] - 3);
+  g.selectAll(".extent,.n,.s").attr("width", extent[1][0] - extent[0][0]);
+}
+
+function d3_svg_brushRedrawY(g, extent) {
+  g.select(".extent").attr("y", extent[0][1]);
+  g.selectAll(".n,.e,.w,.nw,.ne").attr("y", extent[0][1] - 3);
+  g.selectAll(".s,.se,.sw").attr("y", extent[1][1] - 4);
+  g.selectAll(".extent,.e,.w").attr("height", extent[1][1] - extent[0][1]);
+}
+
+function d3_svg_brushKeydown() {
+  if (d3.event.keyCode == 32 && d3_svg_brushTarget && !d3_svg_brushDrag) {
+    d3_svg_brushCenter = null;
+    d3_svg_brushOffset[0] -= d3_svg_brushExtent[1][0];
+    d3_svg_brushOffset[1] -= d3_svg_brushExtent[1][1];
+    d3_svg_brushDrag = 2;
+    d3_eventCancel();
+  }
+}
+
+function d3_svg_brushKeyup() {
+  if (d3.event.keyCode == 32 && d3_svg_brushDrag == 2) {
+    d3_svg_brushOffset[0] += d3_svg_brushExtent[1][0];
+    d3_svg_brushOffset[1] += d3_svg_brushExtent[1][1];
+    d3_svg_brushDrag = 0;
+    d3_eventCancel();
+  }
+}
+
+function d3_svg_brushMove() {
+  if (d3_svg_brushOffset) {
+    var mouse = d3.svg.mouse(d3_svg_brushTarget),
+        g = d3.select(d3_svg_brushTarget);
+
+    if (!d3_svg_brushDrag) {
+
+      // If needed, determine the center from the current extent.
+      if (d3.event.altKey) {
+        if (!d3_svg_brushCenter) {
+          d3_svg_brushCenter = [
+            (d3_svg_brushExtent[0][0] + d3_svg_brushExtent[1][0]) / 2,
+            (d3_svg_brushExtent[0][1] + d3_svg_brushExtent[1][1]) / 2
+          ];
+        }
+
+        // Update the offset, for when the ALT key is released.
+        d3_svg_brushOffset[0] = d3_svg_brushExtent[+(mouse[0] < d3_svg_brushCenter[0])][0];
+        d3_svg_brushOffset[1] = d3_svg_brushExtent[+(mouse[1] < d3_svg_brushCenter[1])][1];
+      }
+
+      // When the ALT key is released, we clear the center.
+      else d3_svg_brushCenter = null;
+    }
+
+    // Update the brush extent for each dimension.
+    if (d3_svg_brushX) {
+      d3_svg_brushMove1(mouse, d3_svg_brushX, 0);
+      d3_svg_brushRedrawX(g, d3_svg_brushExtent);
+    }
+    if (d3_svg_brushY) {
+      d3_svg_brushMove1(mouse, d3_svg_brushY, 1);
+      d3_svg_brushRedrawY(g, d3_svg_brushExtent);
+    }
+
+    // Notify listeners.
+    d3_svg_brushDispatch("brush");
+  }
+}
+
+function d3_svg_brushMove1(mouse, scale, i) {
+  var range = d3_scaleExtent(scale.range()),
+      offset = d3_svg_brushOffset[i],
+      size = d3_svg_brushExtent[1][i] - d3_svg_brushExtent[0][i],
+      min,
+      max;
+
+  // When dragging, reduce the range by the extent size and offset.
+  if (d3_svg_brushDrag) {
+    range[0] -= offset;
+    range[1] -= size + offset;
+  }
+
+  // Clamp the mouse so that the extent fits within the range extent.
+  min = Math.max(range[0], Math.min(range[1], mouse[i]));
+
+  // Compute the new extent bounds.
+  if (d3_svg_brushDrag) {
+    max = (min += offset) + size;
+  } else {
+
+    // If the ALT key is pressed, then preserve the center of the extent.
+    if (d3_svg_brushCenter) offset = Math.max(range[0], Math.min(range[1], 2 * d3_svg_brushCenter[i] - min));
+
+    // Compute the min and max of the offset and mouse.
+    if (offset < min) {
+      max = min;
+      min = offset;
+    } else {
+      max = offset;
+    }
+  }
+
+  // Update the stored bounds.
+  d3_svg_brushExtent[0][i] = min;
+  d3_svg_brushExtent[1][i] = max;
+}
+
+function d3_svg_brushUp() {
+  if (d3_svg_brushOffset) {
+    d3_svg_brushMove();
+    d3.select(d3_svg_brushTarget).selectAll(".resize").style("pointer-events", d3_svg_brush.empty() ? "none" : "all");
+    d3_svg_brushDispatch("brushend");
+    d3_svg_brush =
+    d3_svg_brushDispatch =
+    d3_svg_brushTarget =
+    d3_svg_brushX =
+    d3_svg_brushY =
+    d3_svg_brushExtent =
+    d3_svg_brushDrag =
+    d3_svg_brushResize =
+    d3_svg_brushCenter =
+    d3_svg_brushOffset = null;
+    d3_eventCancel();
+  }
+}
+
+var d3_svg_brushCursor = {
+  n: "ns-resize",
+  e: "ew-resize",
+  s: "ns-resize",
+  w: "ew-resize",
+  nw: "nwse-resize",
+  ne: "nesw-resize",
+  se: "nwse-resize",
+  sw: "nesw-resize"
+};
+d3.behavior = {};
+d3.behavior.drag = function() {
+  var event = d3.dispatch("drag", "dragstart", "dragend");
+
+  function drag() {
+    this
+        .on("mousedown.drag", mousedown)
+        .on("touchstart.drag", mousedown);
+
+    d3.select(window)
+        .on("mousemove.drag", d3_behavior_dragMove)
+        .on("touchmove.drag", d3_behavior_dragMove)
+        .on("mouseup.drag", d3_behavior_dragUp, true)
+        .on("touchend.drag", d3_behavior_dragUp, true)
+        .on("click.drag", d3_behavior_dragClick, true);
+  }
+
+  // snapshot the local context for subsequent dispatch
+  function start() {
+    d3_behavior_dragEvent = event;
+    d3_behavior_dragEventTarget = d3.event.target;
+    d3_behavior_dragOffset = d3_behavior_dragPoint((d3_behavior_dragTarget = this).parentNode);
+    d3_behavior_dragMoved = 0;
+    d3_behavior_dragArguments = arguments;
+  }
+
+  function mousedown() {
+    start.apply(this, arguments);
+    d3_behavior_dragDispatch("dragstart");
+  }
+
+  drag.on = function(type, listener) {
+    event.on(type, listener);
+    return drag;
+  };
+
+  return drag;
+};
+
+var d3_behavior_dragEvent,
+    d3_behavior_dragEventTarget,
+    d3_behavior_dragTarget,
+    d3_behavior_dragArguments,
+    d3_behavior_dragOffset,
+    d3_behavior_dragMoved,
+    d3_behavior_dragStopClick;
+
+function d3_behavior_dragDispatch(type) {
+  var o = d3.event, p = d3_behavior_dragTarget.parentNode, dx = 0, dy = 0;
+
+  if (p) {
+    p = d3_behavior_dragPoint(p);
+    dx = p[0] - d3_behavior_dragOffset[0];
+    dy = p[1] - d3_behavior_dragOffset[1];
+    d3_behavior_dragOffset = p;
+    d3_behavior_dragMoved |= dx | dy;
+  }
+
+  try {
+    d3.event = {dx: dx, dy: dy};
+    d3_behavior_dragEvent[type].apply(d3_behavior_dragTarget, d3_behavior_dragArguments);
+  } finally {
+    d3.event = o;
+  }
+
+  o.preventDefault();
+}
+
+function d3_behavior_dragPoint(container, type) {
+  // TODO Track touch points by identifier.
+  var t = d3.event.changedTouches;
+  return t ? d3.svg.touches(container, t)[0] : d3.svg.mouse(container);
+}
+
+function d3_behavior_dragMove() {
+  if (!d3_behavior_dragTarget) return;
+  var parent = d3_behavior_dragTarget.parentNode;
+
+  // O NOES! The drag element was removed from the DOM.
+  if (!parent) return d3_behavior_dragUp();
+
+  d3_behavior_dragDispatch("drag");
+  d3_eventCancel();
+}
+
+function d3_behavior_dragUp() {
+  if (!d3_behavior_dragTarget) return;
+  d3_behavior_dragDispatch("dragend");
+  d3_behavior_dragTarget = null;
+
+  // If the node was moved, prevent the mouseup from propagating.
+  // Also prevent the subsequent click from propagating (e.g., for anchors).
+  if (d3_behavior_dragMoved && d3_behavior_dragEventTarget === d3.event.target) {
+    d3_behavior_dragStopClick = true;
+    d3_eventCancel();
+  }
+}
+
+function d3_behavior_dragClick() {
+  if (d3_behavior_dragStopClick && d3_behavior_dragEventTarget === d3.event.target) {
+    d3_eventCancel();
+    d3_behavior_dragStopClick = false;
+    d3_behavior_dragEventTarget = null;
+  }
+}
+// TODO unbind zoom behavior?
+d3.behavior.zoom = function() {
+  var xyz = [0, 0, 0],
+      event = d3.dispatch("zoom"),
+      extent = d3_behavior_zoomInfiniteExtent;
+
+  function zoom() {
+    this
+        .on("mousedown.zoom", mousedown)
+        .on("mousewheel.zoom", mousewheel)
+        .on("DOMMouseScroll.zoom", mousewheel)
+        .on("dblclick.zoom", dblclick)
+        .on("touchstart.zoom", touchstart);
+
+    d3.select(window)
+        .on("mousemove.zoom", d3_behavior_zoomMousemove)
+        .on("mouseup.zoom", d3_behavior_zoomMouseup)
+        .on("touchmove.zoom", d3_behavior_zoomTouchmove)
+        .on("touchend.zoom", d3_behavior_zoomTouchup)
+        .on("click.zoom", d3_behavior_zoomClick, true);
+  }
+
+  // snapshot the local context for subsequent dispatch
+  function start() {
+    d3_behavior_zoomXyz = xyz;
+    d3_behavior_zoomExtent = extent;
+    d3_behavior_zoomDispatch = event.zoom;
+    d3_behavior_zoomEventTarget = d3.event.target;
+    d3_behavior_zoomTarget = this;
+    d3_behavior_zoomArguments = arguments;
+  }
+
+  function mousedown() {
+    start.apply(this, arguments);
+    d3_behavior_zoomPanning = d3_behavior_zoomLocation(d3.svg.mouse(d3_behavior_zoomTarget));
+    d3_behavior_zoomMoved = false;
+    d3.event.preventDefault();
+    window.focus();
+  }
+
+  // store starting mouse location
+  function mousewheel() {
+    start.apply(this, arguments);
+    if (!d3_behavior_zoomZooming) d3_behavior_zoomZooming = d3_behavior_zoomLocation(d3.svg.mouse(d3_behavior_zoomTarget));
+    d3_behavior_zoomTo(d3_behavior_zoomDelta() + xyz[2], d3.svg.mouse(d3_behavior_zoomTarget), d3_behavior_zoomZooming);
+  }
+
+  function dblclick() {
+    start.apply(this, arguments);
+    var mouse = d3.svg.mouse(d3_behavior_zoomTarget);
+    d3_behavior_zoomTo(d3.event.shiftKey ? Math.ceil(xyz[2] - 1) : Math.floor(xyz[2] + 1), mouse, d3_behavior_zoomLocation(mouse));
+  }
+
+  // doubletap detection
+  function touchstart() {
+    start.apply(this, arguments);
+    var touches = d3_behavior_zoomTouchup(),
+        touch,
+        now = Date.now();
+    if ((touches.length === 1) && (now - d3_behavior_zoomLast < 300)) {
+      d3_behavior_zoomTo(1 + Math.floor(xyz[2]), touch = touches[0], d3_behavior_zoomLocations[touch.identifier]);
+    }
+    d3_behavior_zoomLast = now;
+  }
+
+  zoom.extent = function(x) {
+    if (!arguments.length) return extent;
+    extent = x == null ? d3_behavior_zoomInfiniteExtent : x;
+    return zoom;
+  };
+
+  zoom.on = function(type, listener) {
+    event.on(type, listener);
+    return zoom;
+  };
+
+  return zoom;
+};
+
+var d3_behavior_zoomDiv,
+    d3_behavior_zoomPanning,
+    d3_behavior_zoomZooming,
+    d3_behavior_zoomLocations = {}, // identifier -> location
+    d3_behavior_zoomLast = 0,
+    d3_behavior_zoomXyz,
+    d3_behavior_zoomExtent,
+    d3_behavior_zoomDispatch,
+    d3_behavior_zoomEventTarget,
+    d3_behavior_zoomTarget,
+    d3_behavior_zoomArguments,
+    d3_behavior_zoomMoved,
+    d3_behavior_zoomStopClick;
+
+function d3_behavior_zoomLocation(point) {
+  return [
+    point[0] - d3_behavior_zoomXyz[0],
+    point[1] - d3_behavior_zoomXyz[1],
+    d3_behavior_zoomXyz[2]
+  ];
+}
+
+// detect the pixels that would be scrolled by this wheel event
+function d3_behavior_zoomDelta() {
+
+  // mousewheel events are totally broken!
+  // https://bugs.webkit.org/show_bug.cgi?id=40441
+  // not only that, but Chrome and Safari differ in re. to acceleration!
+  if (!d3_behavior_zoomDiv) {
+    d3_behavior_zoomDiv = d3.select("body").append("div")
+        .style("visibility", "hidden")
+        .style("top", 0)
+        .style("height", 0)
+        .style("width", 0)
+        .style("overflow-y", "scroll")
+      .append("div")
+        .style("height", "2000px")
+      .node().parentNode;
+  }
+
+  var e = d3.event, delta;
+  try {
+    d3_behavior_zoomDiv.scrollTop = 1000;
+    d3_behavior_zoomDiv.dispatchEvent(e);
+    delta = 1000 - d3_behavior_zoomDiv.scrollTop;
+  } catch (error) {
+    delta = e.wheelDelta || (-e.detail * 5);
+  }
+
+  return delta * .005;
+}
+
+// Note: Since we don't rotate, it's possible for the touches to become
+// slightly detached from their original positions. Thus, we recompute the
+// touch points on touchend as well as touchstart!
+function d3_behavior_zoomTouchup() {
+  var touches = d3.svg.touches(d3_behavior_zoomTarget),
+      i = -1,
+      n = touches.length,
+      touch;
+  while (++i < n) d3_behavior_zoomLocations[(touch = touches[i]).identifier] = d3_behavior_zoomLocation(touch);
+  return touches;
+}
+
+function d3_behavior_zoomTouchmove() {
+  var touches = d3.svg.touches(d3_behavior_zoomTarget);
+  switch (touches.length) {
+
+    // single-touch pan
+    case 1: {
+      var touch = touches[0];
+      d3_behavior_zoomTo(d3_behavior_zoomXyz[2], touch, d3_behavior_zoomLocations[touch.identifier]);
+      break;
+    }
+
+    // double-touch pan + zoom
+    case 2: {
+      var p0 = touches[0],
+          p1 = touches[1],
+          p2 = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2],
+          l0 = d3_behavior_zoomLocations[p0.identifier],
+          l1 = d3_behavior_zoomLocations[p1.identifier],
+          l2 = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2, l0[2]];
+      d3_behavior_zoomTo(Math.log(d3.event.scale) / Math.LN2 + l0[2], p2, l2);
+      break;
+    }
+  }
+}
+
+function d3_behavior_zoomMousemove() {
+  d3_behavior_zoomZooming = null;
+  if (d3_behavior_zoomPanning) {
+    d3_behavior_zoomMoved = true;
+    d3_behavior_zoomTo(d3_behavior_zoomXyz[2], d3.svg.mouse(d3_behavior_zoomTarget), d3_behavior_zoomPanning);
+  }
+}
+
+function d3_behavior_zoomMouseup() {
+  if (d3_behavior_zoomPanning) {
+    if (d3_behavior_zoomMoved && d3_behavior_zoomEventTarget === d3.event.target) {
+      d3_behavior_zoomStopClick = true;
+    }
+    d3_behavior_zoomMousemove();
+    d3_behavior_zoomPanning = null;
+  }
+}
+
+function d3_behavior_zoomClick() {
+  if (d3_behavior_zoomStopClick && d3_behavior_zoomEventTarget === d3.event.target) {
+    d3.event.stopPropagation();
+    d3.event.preventDefault();
+    d3_behavior_zoomStopClick = false;
+    d3_behavior_zoomEventTarget = null;
+  }
+}
+
+function d3_behavior_zoomTo(z, x0, x1) {
+  z = d3_behavior_zoomExtentClamp(z, 2);
+  var j = Math.pow(2, d3_behavior_zoomXyz[2]),
+      k = Math.pow(2, z),
+      K = Math.pow(2, (d3_behavior_zoomXyz[2] = z) - x1[2]),
+      x_ = d3_behavior_zoomXyz[0],
+      y_ = d3_behavior_zoomXyz[1],
+      x = d3_behavior_zoomXyz[0] = d3_behavior_zoomExtentClamp((x0[0] - x1[0] * K), 0, k),
+      y = d3_behavior_zoomXyz[1] = d3_behavior_zoomExtentClamp((x0[1] - x1[1] * K), 1, k),
+      o = d3.event; // Events can be reentrant (e.g., focus).
+
+  d3.event = {
+    scale: k,
+    translate: [x, y],
+    transform: function(sx, sy) {
+      if (sx) transform(sx, x_, x);
+      if (sy) transform(sy, y_, y);
+    }
+  };
+
+  function transform(scale, a, b) {
+    scale.domain(scale.range().map(function(v) { return scale.invert(((v - b) * j) / k + a); }));
+  }
+
+  try {
+    d3_behavior_zoomDispatch.apply(d3_behavior_zoomTarget, d3_behavior_zoomArguments);
+  } finally {
+    d3.event = o;
+  }
+
+  o.preventDefault();
+}
+
+var d3_behavior_zoomInfiniteExtent = [
+  [-Infinity, Infinity],
+  [-Infinity, Infinity],
+  [-Infinity, Infinity]
+];
+
+function d3_behavior_zoomExtentClamp(x, i, k) {
+  var range = d3_behavior_zoomExtent[i],
+      r0 = range[0],
+      r1 = range[1];
+  return arguments.length === 3
+      ? Math.max(r1 * (r1 === Infinity ? -Infinity : 1 / k - 1),
+        Math.min(r0 === -Infinity ? Infinity : r0, x / k)) * k
+      : Math.max(r0, Math.min(r1, x));
+}
+})();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/d3/d3.layout.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,1895 @@
+(function(){d3.layout = {};
+// Implements hierarchical edge bundling using Holten's algorithm. For each
+// input link, a path is computed that travels through the tree, up the parent
+// hierarchy to the least common ancestor, and then back down to the destination
+// node. Each path is simply an array of nodes.
+d3.layout.bundle = function() {
+  return function(links) {
+    var paths = [],
+        i = -1,
+        n = links.length;
+    while (++i < n) paths.push(d3_layout_bundlePath(links[i]));
+    return paths;
+  };
+};
+
+function d3_layout_bundlePath(link) {
+  var start = link.source,
+      end = link.target,
+      lca = d3_layout_bundleLeastCommonAncestor(start, end),
+      points = [start];
+  while (start !== lca) {
+    start = start.parent;
+    points.push(start);
+  }
+  var k = points.length;
+  while (end !== lca) {
+    points.splice(k, 0, end);
+    end = end.parent;
+  }
+  return points;
+}
+
+function d3_layout_bundleAncestors(node) {
+  var ancestors = [],
+      parent = node.parent;
+  while (parent != null) {
+    ancestors.push(node);
+    node = parent;
+    parent = parent.parent;
+  }
+  ancestors.push(node);
+  return ancestors;
+}
+
+function d3_layout_bundleLeastCommonAncestor(a, b) {
+  if (a === b) return a;
+  var aNodes = d3_layout_bundleAncestors(a),
+      bNodes = d3_layout_bundleAncestors(b),
+      aNode = aNodes.pop(),
+      bNode = bNodes.pop(),
+      sharedNode = null;
+  while (aNode === bNode) {
+    sharedNode = aNode;
+    aNode = aNodes.pop();
+    bNode = bNodes.pop();
+  }
+  return sharedNode;
+}
+d3.layout.chord = function() {
+  var chord = {},
+      chords,
+      groups,
+      matrix,
+      n,
+      padding = 0,
+      sortGroups,
+      sortSubgroups,
+      sortChords;
+
+  function relayout() {
+    var subgroups = {},
+        groupSums = [],
+        groupIndex = d3.range(n),
+        subgroupIndex = [],
+        k,
+        x,
+        x0,
+        i,
+        j;
+
+    chords = [];
+    groups = [];
+
+    // Compute the sum.
+    k = 0, i = -1; while (++i < n) {
+      x = 0, j = -1; while (++j < n) {
+        x += matrix[i][j];
+      }
+      groupSums.push(x);
+      subgroupIndex.push(d3.range(n));
+      k += x;
+    }
+
+    // Sort groups…
+    if (sortGroups) {
+      groupIndex.sort(function(a, b) {
+        return sortGroups(groupSums[a], groupSums[b]);
+      });
+    }
+
+    // Sort subgroups…
+    if (sortSubgroups) {
+      subgroupIndex.forEach(function(d, i) {
+        d.sort(function(a, b) {
+          return sortSubgroups(matrix[i][a], matrix[i][b]);
+        });
+      });
+    }
+
+    // Convert the sum to scaling factor for [0, 2pi].
+    // TODO Allow start and end angle to be specified.
+    // TODO Allow padding to be specified as percentage?
+    k = (2 * Math.PI - padding * n) / k;
+
+    // Compute the start and end angle for each group and subgroup.
+    // Note: Opera has a bug reordering object literal properties!
+    x = 0, i = -1; while (++i < n) {
+      x0 = x, j = -1; while (++j < n) {
+        var di = groupIndex[i],
+            dj = subgroupIndex[di][j],
+            v = matrix[di][dj],
+            a0 = x,
+            a1 = x += v * k;
+        subgroups[di + "-" + dj] = {
+          index: di,
+          subindex: dj,
+          startAngle: a0,
+          endAngle: a1,
+          value: v
+        };
+      }
+      groups.push({
+        index: di,
+        startAngle: x0,
+        endAngle: x,
+        value: (x - x0) / k
+      });
+      x += padding;
+    }
+
+    // Generate chords for each (non-empty) subgroup-subgroup link.
+    i = -1; while (++i < n) {
+      j = i - 1; while (++j < n) {
+        var source = subgroups[i + "-" + j],
+            target = subgroups[j + "-" + i];
+        if (source.value || target.value) {
+          chords.push(source.value < target.value
+              ? {source: target, target: source}
+              : {source: source, target: target});
+        }
+      }
+    }
+
+    if (sortChords) resort();
+  }
+
+  function resort() {
+    chords.sort(function(a, b) {
+      return sortChords(
+          (a.source.value + a.target.value) / 2,
+          (b.source.value + b.target.value) / 2);
+    });
+  }
+
+  chord.matrix = function(x) {
+    if (!arguments.length) return matrix;
+    n = (matrix = x) && matrix.length;
+    chords = groups = null;
+    return chord;
+  };
+
+  chord.padding = function(x) {
+    if (!arguments.length) return padding;
+    padding = x;
+    chords = groups = null;
+    return chord;
+  };
+
+  chord.sortGroups = function(x) {
+    if (!arguments.length) return sortGroups;
+    sortGroups = x;
+    chords = groups = null;
+    return chord;
+  };
+
+  chord.sortSubgroups = function(x) {
+    if (!arguments.length) return sortSubgroups;
+    sortSubgroups = x;
+    chords = null;
+    return chord;
+  };
+
+  chord.sortChords = function(x) {
+    if (!arguments.length) return sortChords;
+    sortChords = x;
+    if (chords) resort();
+    return chord;
+  };
+
+  chord.chords = function() {
+    if (!chords) relayout();
+    return chords;
+  };
+
+  chord.groups = function() {
+    if (!groups) relayout();
+    return groups;
+  };
+
+  return chord;
+};
+// A rudimentary force layout using Gauss-Seidel.
+d3.layout.force = function() {
+  var force = {},
+      event = d3.dispatch("tick"),
+      size = [1, 1],
+      drag,
+      alpha,
+      friction = .9,
+      linkDistance = d3_layout_forceLinkDistance,
+      linkStrength = d3_layout_forceLinkStrength,
+      charge = -30,
+      gravity = .1,
+      theta = .8,
+      interval,
+      nodes = [],
+      links = [],
+      distances,
+      strengths,
+      charges;
+
+  function repulse(node) {
+    return function(quad, x1, y1, x2, y2) {
+      if (quad.point !== node) {
+        var dx = quad.cx - node.x,
+            dy = quad.cy - node.y,
+            dn = 1 / Math.sqrt(dx * dx + dy * dy);
+
+        /* Barnes-Hut criterion. */
+        if ((x2 - x1) * dn < theta) {
+          var k = quad.charge * dn * dn;
+          node.px -= dx * k;
+          node.py -= dy * k;
+          return true;
+        }
+
+        if (quad.point && isFinite(dn)) {
+          var k = quad.pointCharge * dn * dn;
+          node.px -= dx * k;
+          node.py -= dy * k;
+        }
+      }
+      return !quad.charge;
+    };
+  }
+
+  function tick() {
+    var n = nodes.length,
+        m = links.length,
+        q,
+        i, // current index
+        o, // current object
+        s, // current source
+        t, // current target
+        l, // current distance
+        k, // current force
+        x, // x-distance
+        y; // y-distance
+
+    // gauss-seidel relaxation for links
+    for (i = 0; i < m; ++i) {
+      o = links[i];
+      s = o.source;
+      t = o.target;
+      x = t.x - s.x;
+      y = t.y - s.y;
+      if (l = (x * x + y * y)) {
+        l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;
+        x *= l;
+        y *= l;
+        t.x -= x * (k = s.weight / (t.weight + s.weight));
+        t.y -= y * k;
+        s.x += x * (k = 1 - k);
+        s.y += y * k;
+      }
+    }
+
+    // apply gravity forces
+    if (k = alpha * gravity) {
+      x = size[0] / 2;
+      y = size[1] / 2;
+      i = -1; if (k) while (++i < n) {
+        o = nodes[i];
+        o.x += (x - o.x) * k;
+        o.y += (y - o.y) * k;
+      }
+    }
+
+    // compute quadtree center of mass and apply charge forces
+    if (charge) {
+      d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);
+      i = -1; while (++i < n) {
+        if (!(o = nodes[i]).fixed) {
+          q.visit(repulse(o));
+        }
+      }
+    }
+
+    // position verlet integration
+    i = -1; while (++i < n) {
+      o = nodes[i];
+      if (o.fixed) {
+        o.x = o.px;
+        o.y = o.py;
+      } else {
+        o.x -= (o.px - (o.px = o.x)) * friction;
+        o.y -= (o.py - (o.py = o.y)) * friction;
+      }
+    }
+
+    event.tick({type: "tick", alpha: alpha});
+
+    // simulated annealing, basically
+    return (alpha *= .99) < .005;
+  }
+
+  force.on = function(type, listener) {
+    event.on(type, listener);
+    return force;
+  };
+
+  force.nodes = function(x) {
+    if (!arguments.length) return nodes;
+    nodes = x;
+    return force;
+  };
+
+  force.links = function(x) {
+    if (!arguments.length) return links;
+    links = x;
+    return force;
+  };
+
+  force.size = function(x) {
+    if (!arguments.length) return size;
+    size = x;
+    return force;
+  };
+
+  force.linkDistance = function(x) {
+    if (!arguments.length) return linkDistance;
+    linkDistance = d3.functor(x);
+    return force;
+  };
+
+  // For backwards-compatibility.
+  force.distance = force.linkDistance;
+
+  force.linkStrength = function(x) {
+    if (!arguments.length) return linkStrength;
+    linkStrength = d3.functor(x);
+    return force;
+  };
+
+  force.friction = function(x) {
+    if (!arguments.length) return friction;
+    friction = x;
+    return force;
+  };
+
+  force.charge = function(x) {
+    if (!arguments.length) return charge;
+    charge = typeof x === "function" ? x : +x;
+    return force;
+  };
+
+  force.gravity = function(x) {
+    if (!arguments.length) return gravity;
+    gravity = x;
+    return force;
+  };
+
+  force.theta = function(x) {
+    if (!arguments.length) return theta;
+    theta = x;
+    return force;
+  };
+
+  force.start = function() {
+    var i,
+        j,
+        n = nodes.length,
+        m = links.length,
+        w = size[0],
+        h = size[1],
+        neighbors,
+        o;
+
+    for (i = 0; i < n; ++i) {
+      (o = nodes[i]).index = i;
+      o.weight = 0;
+    }
+
+    distances = [];
+    strengths = [];
+    for (i = 0; i < m; ++i) {
+      o = links[i];
+      if (typeof o.source == "number") o.source = nodes[o.source];
+      if (typeof o.target == "number") o.target = nodes[o.target];
+      distances[i] = linkDistance.call(this, o, i);
+      strengths[i] = linkStrength.call(this, o, i);
+      ++o.source.weight;
+      ++o.target.weight;
+    }
+
+    for (i = 0; i < n; ++i) {
+      o = nodes[i];
+      if (isNaN(o.x)) o.x = position("x", w);
+      if (isNaN(o.y)) o.y = position("y", h);
+      if (isNaN(o.px)) o.px = o.x;
+      if (isNaN(o.py)) o.py = o.y;
+    }
+
+    charges = [];
+    if (typeof charge === "function") {
+      for (i = 0; i < n; ++i) {
+        charges[i] = +charge.call(this, nodes[i], i);
+      }
+    } else {
+      for (i = 0; i < n; ++i) {
+        charges[i] = charge;
+      }
+    }
+
+    // initialize node position based on first neighbor
+    function position(dimension, size) {
+      var neighbors = neighbor(i),
+          j = -1,
+          m = neighbors.length,
+          x;
+      while (++j < m) if (!isNaN(x = neighbors[j][dimension])) return x;
+      return Math.random() * size;
+    }
+
+    // initialize neighbors lazily
+    function neighbor() {
+      if (!neighbors) {
+        neighbors = [];
+        for (j = 0; j < n; ++j) {
+          neighbors[j] = [];
+        }
+        for (j = 0; j < m; ++j) {
+          var o = links[j];
+          neighbors[o.source.index].push(o.target);
+          neighbors[o.target.index].push(o.source);
+        }
+      }
+      return neighbors[i];
+    }
+
+    return force.resume();
+  };
+
+  force.resume = function() {
+    alpha = .1;
+    d3.timer(tick);
+    return force;
+  };
+
+  force.stop = function() {
+    alpha = 0;
+    return force;
+  };
+
+  // use `node.call(force.drag)` to make nodes draggable
+  force.drag = function() {
+    if (!drag) drag = d3.behavior.drag()
+        .on("dragstart", dragstart)
+        .on("drag", d3_layout_forceDrag)
+        .on("dragend", d3_layout_forceDragEnd);
+
+    this.on("mouseover.force", d3_layout_forceDragOver)
+        .on("mouseout.force", d3_layout_forceDragOut)
+        .call(drag);
+  };
+
+  function dragstart(d) {
+    d3_layout_forceDragOver(d3_layout_forceDragNode = d);
+    d3_layout_forceDragForce = force;
+  }
+
+  return force;
+};
+
+var d3_layout_forceDragForce,
+    d3_layout_forceDragNode;
+
+function d3_layout_forceDragOver(d) {
+  d.fixed |= 2;
+}
+
+function d3_layout_forceDragOut(d) {
+  if (d !== d3_layout_forceDragNode) d.fixed &= 1;
+}
+
+function d3_layout_forceDragEnd() {
+  d3_layout_forceDrag();
+  d3_layout_forceDragNode.fixed &= 1;
+  d3_layout_forceDragForce = d3_layout_forceDragNode = null;
+}
+
+function d3_layout_forceDrag() {
+  d3_layout_forceDragNode.px += d3.event.dx;
+  d3_layout_forceDragNode.py += d3.event.dy;
+  d3_layout_forceDragForce.resume(); // restart annealing
+}
+
+function d3_layout_forceAccumulate(quad, alpha, charges) {
+  var cx = 0,
+      cy = 0;
+  quad.charge = 0;
+  if (!quad.leaf) {
+    var nodes = quad.nodes,
+        n = nodes.length,
+        i = -1,
+        c;
+    while (++i < n) {
+      c = nodes[i];
+      if (c == null) continue;
+      d3_layout_forceAccumulate(c, alpha, charges);
+      quad.charge += c.charge;
+      cx += c.charge * c.cx;
+      cy += c.charge * c.cy;
+    }
+  }
+  if (quad.point) {
+    // jitter internal nodes that are coincident
+    if (!quad.leaf) {
+      quad.point.x += Math.random() - .5;
+      quad.point.y += Math.random() - .5;
+    }
+    var k = alpha * charges[quad.point.index];
+    quad.charge += quad.pointCharge = k;
+    cx += k * quad.point.x;
+    cy += k * quad.point.y;
+  }
+  quad.cx = cx / quad.charge;
+  quad.cy = cy / quad.charge;
+}
+
+function d3_layout_forceLinkDistance(link) {
+  return 20;
+}
+
+function d3_layout_forceLinkStrength(link) {
+  return 1;
+}
+d3.layout.partition = function() {
+  var hierarchy = d3.layout.hierarchy(),
+      size = [1, 1]; // width, height
+
+  function position(node, x, dx, dy) {
+    var children = node.children;
+    node.x = x;
+    node.y = node.depth * dy;
+    node.dx = dx;
+    node.dy = dy;
+    if (children && (n = children.length)) {
+      var i = -1,
+          n,
+          c,
+          d;
+      dx = node.value ? dx / node.value : 0;
+      while (++i < n) {
+        position(c = children[i], x, d = c.value * dx, dy);
+        x += d;
+      }
+    }
+  }
+
+  function depth(node) {
+    var children = node.children,
+        d = 0;
+    if (children && (n = children.length)) {
+      var i = -1,
+          n;
+      while (++i < n) d = Math.max(d, depth(children[i]));
+    }
+    return 1 + d;
+  }
+
+  function partition(d, i) {
+    var nodes = hierarchy.call(this, d, i);
+    position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));
+    return nodes;
+  }
+
+  partition.size = function(x) {
+    if (!arguments.length) return size;
+    size = x;
+    return partition;
+  };
+
+  return d3_layout_hierarchyRebind(partition, hierarchy);
+};
+d3.layout.pie = function() {
+  var value = Number,
+      sort = d3_layout_pieSortByValue,
+      startAngle = 0,
+      endAngle = 2 * Math.PI;
+
+  function pie(data, i) {
+
+    // Compute the numeric values for each data element.
+    var values = data.map(function(d, i) { return +value.call(pie, d, i); });
+
+    // Compute the start angle.
+    var a = +(typeof startAngle === "function"
+        ? startAngle.apply(this, arguments)
+        : startAngle);
+
+    // Compute the angular scale factor: from value to radians.
+    var k = ((typeof endAngle === "function"
+        ? endAngle.apply(this, arguments)
+        : endAngle) - startAngle)
+        / d3.sum(values);
+
+    // Optionally sort the data.
+    var index = d3.range(data.length);
+    if (sort != null) index.sort(sort === d3_layout_pieSortByValue
+        ? function(i, j) { return values[j] - values[i]; }
+        : function(i, j) { return sort(data[i], data[j]); });
+
+    // Compute the arcs!
+    var arcs = index.map(function(i) {
+      return {
+        data: data[i],
+        value: d = values[i],
+        startAngle: a,
+        endAngle: a += d * k
+      };
+    });
+
+    // Return the arcs in the original data's order.
+    return data.map(function(d, i) {
+      return arcs[index[i]];
+    });
+  }
+
+  /**
+   * Specifies the value function *x*, which returns a nonnegative numeric value
+   * for each datum. The default value function is `Number`. The value function
+   * is passed two arguments: the current datum and the current index.
+   */
+  pie.value = function(x) {
+    if (!arguments.length) return value;
+    value = x;
+    return pie;
+  };
+
+  /**
+   * Specifies a sort comparison operator *x*. The comparator is passed two data
+   * elements from the data array, a and b; it returns a negative value if a is
+   * less than b, a positive value if a is greater than b, and zero if a equals
+   * b.
+   */
+  pie.sort = function(x) {
+    if (!arguments.length) return sort;
+    sort = x;
+    return pie;
+  };
+
+  /**
+   * Specifies the overall start angle of the pie chart. Defaults to 0. The
+   * start angle can be specified either as a constant or as a function; in the
+   * case of a function, it is evaluated once per array (as opposed to per
+   * element).
+   */
+  pie.startAngle = function(x) {
+    if (!arguments.length) return startAngle;
+    startAngle = x;
+    return pie;
+  };
+
+  /**
+   * Specifies the overall end angle of the pie chart. Defaults to 2π. The
+   * end angle can be specified either as a constant or as a function; in the
+   * case of a function, it is evaluated once per array (as opposed to per
+   * element).
+   */
+  pie.endAngle = function(x) {
+    if (!arguments.length) return endAngle;
+    endAngle = x;
+    return pie;
+  };
+
+  return pie;
+};
+
+var d3_layout_pieSortByValue = {};
+// data is two-dimensional array of x,y; we populate y0
+d3.layout.stack = function() {
+  var values = Object,
+      order = d3_layout_stackOrders["default"],
+      offset = d3_layout_stackOffsets["zero"],
+      out = d3_layout_stackOut,
+      x = d3_layout_stackX,
+      y = d3_layout_stackY;
+
+  function stack(data, index) {
+
+    // Convert series to canonical two-dimensional representation.
+    var series = data.map(function(d, i) {
+      return values.call(stack, d, i);
+    });
+
+    // Convert each series to canonical [[x,y]] representation.
+    var points = series.map(function(d, i) {
+      return d.map(function(v, i) {
+        return [x.call(stack, v, i), y.call(stack, v, i)];
+      });
+    });
+
+    // Compute the order of series, and permute them.
+    var orders = order.call(stack, points, index);
+    series = d3.permute(series, orders);
+    points = d3.permute(points, orders);
+
+    // Compute the baseline…
+    var offsets = offset.call(stack, points, index);
+
+    // And propagate it to other series.
+    var n = series.length,
+        m = series[0].length,
+        i,
+        j,
+        o;
+    for (j = 0; j < m; ++j) {
+      out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);
+      for (i = 1; i < n; ++i) {
+        out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);
+      }
+    }
+
+    return data;
+  }
+
+  stack.values = function(x) {
+    if (!arguments.length) return values;
+    values = x;
+    return stack;
+  };
+
+  stack.order = function(x) {
+    if (!arguments.length) return order;
+    order = typeof x === "function" ? x : d3_layout_stackOrders[x];
+    return stack;
+  };
+
+  stack.offset = function(x) {
+    if (!arguments.length) return offset;
+    offset = typeof x === "function" ? x : d3_layout_stackOffsets[x];
+    return stack;
+  };
+
+  stack.x = function(z) {
+    if (!arguments.length) return x;
+    x = z;
+    return stack;
+  };
+
+  stack.y = function(z) {
+    if (!arguments.length) return y;
+    y = z;
+    return stack;
+  };
+
+  stack.out = function(z) {
+    if (!arguments.length) return out;
+    out = z;
+    return stack;
+  };
+
+  return stack;
+}
+
+function d3_layout_stackX(d) {
+  return d.x;
+}
+
+function d3_layout_stackY(d) {
+  return d.y;
+}
+
+function d3_layout_stackOut(d, y0, y) {
+  d.y0 = y0;
+  d.y = y;
+}
+
+var d3_layout_stackOrders = {
+
+  "inside-out": function(data) {
+    var n = data.length,
+        i,
+        j,
+        max = data.map(d3_layout_stackMaxIndex),
+        sums = data.map(d3_layout_stackReduceSum),
+        index = d3.range(n).sort(function(a, b) { return max[a] - max[b]; }),
+        top = 0,
+        bottom = 0,
+        tops = [],
+        bottoms = [];
+    for (i = 0; i < n; ++i) {
+      j = index[i];
+      if (top < bottom) {
+        top += sums[j];
+        tops.push(j);
+      } else {
+        bottom += sums[j];
+        bottoms.push(j);
+      }
+    }
+    return bottoms.reverse().concat(tops);
+  },
+
+  "reverse": function(data) {
+    return d3.range(data.length).reverse();
+  },
+
+  "default": function(data) {
+    return d3.range(data.length);
+  }
+
+};
+
+var d3_layout_stackOffsets = {
+
+  "silhouette": function(data) {
+    var n = data.length,
+        m = data[0].length,
+        sums = [],
+        max = 0,
+        i,
+        j,
+        o,
+        y0 = [];
+    for (j = 0; j < m; ++j) {
+      for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
+      if (o > max) max = o;
+      sums.push(o);
+    }
+    for (j = 0; j < m; ++j) {
+      y0[j] = (max - sums[j]) / 2;
+    }
+    return y0;
+  },
+
+  "wiggle": function(data) {
+    var n = data.length,
+        x = data[0],
+        m = x.length,
+        max = 0,
+        i,
+        j,
+        k,
+        s1,
+        s2,
+        s3,
+        dx,
+        o,
+        o0,
+        y0 = [];
+    y0[0] = o = o0 = 0;
+    for (j = 1; j < m; ++j) {
+      for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];
+      for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {
+        for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {
+          s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;
+        }
+        s2 += s3 * data[i][j][1];
+      }
+      y0[j] = o -= s1 ? s2 / s1 * dx : 0;
+      if (o < o0) o0 = o;
+    }
+    for (j = 0; j < m; ++j) y0[j] -= o0;
+    return y0;
+  },
+
+  "expand": function(data) {
+    var n = data.length,
+        m = data[0].length,
+        k = 1 / n,
+        i,
+        j,
+        o,
+        y0 = [];
+    for (j = 0; j < m; ++j) {
+      for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
+      if (o) for (i = 0; i < n; i++) data[i][j][1] /= o;
+      else for (i = 0; i < n; i++) data[i][j][1] = k;
+    }
+    for (j = 0; j < m; ++j) y0[j] = 0;
+    return y0;
+  },
+
+  "zero": function(data) {
+    var j = -1,
+        m = data[0].length,
+        y0 = [];
+    while (++j < m) y0[j] = 0;
+    return y0;
+  }
+
+};
+
+function d3_layout_stackMaxIndex(array) {
+  var i = 1,
+      j = 0,
+      v = array[0][1],
+      k,
+      n = array.length;
+  for (; i < n; ++i) {
+    if ((k = array[i][1]) > v) {
+      j = i;
+      v = k;
+    }
+  }
+  return j;
+}
+
+function d3_layout_stackReduceSum(d) {
+  return d.reduce(d3_layout_stackSum, 0);
+}
+
+function d3_layout_stackSum(p, d) {
+  return p + d[1];
+}
+d3.layout.histogram = function() {
+  var frequency = true,
+      valuer = Number,
+      ranger = d3_layout_histogramRange,
+      binner = d3_layout_histogramBinSturges;
+
+  function histogram(data, i) {
+    var bins = [],
+        values = data.map(valuer, this),
+        range = ranger.call(this, values, i),
+        thresholds = binner.call(this, range, values, i),
+        bin,
+        i = -1,
+        n = values.length,
+        m = thresholds.length - 1,
+        k = frequency ? 1 : 1 / n,
+        x;
+
+    // Initialize the bins.
+    while (++i < m) {
+      bin = bins[i] = [];
+      bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);
+      bin.y = 0;
+    }
+
+    // Fill the bins, ignoring values outside the range.
+    i = -1; while(++i < n) {
+      x = values[i];
+      if ((x >= range[0]) && (x <= range[1])) {
+        bin = bins[d3.bisect(thresholds, x, 1, m) - 1];
+        bin.y += k;
+        bin.push(data[i]);
+      }
+    }
+
+    return bins;
+  }
+
+  // Specifies how to extract a value from the associated data. The default
+  // value function is `Number`, which is equivalent to the identity function.
+  histogram.value = function(x) {
+    if (!arguments.length) return valuer;
+    valuer = x;
+    return histogram;
+  };
+
+  // Specifies the range of the histogram. Values outside the specified range
+  // will be ignored. The argument `x` may be specified either as a two-element
+  // array representing the minimum and maximum value of the range, or as a
+  // function that returns the range given the array of values and the current
+  // index `i`. The default range is the extent (minimum and maximum) of the
+  // values.
+  histogram.range = function(x) {
+    if (!arguments.length) return ranger;
+    ranger = d3.functor(x);
+    return histogram;
+  };
+
+  // Specifies how to bin values in the histogram. The argument `x` may be
+  // specified as a number, in which case the range of values will be split
+  // uniformly into the given number of bins. Or, `x` may be an array of
+  // threshold values, defining the bins; the specified array must contain the
+  // rightmost (upper) value, thus specifying n + 1 values for n bins. Or, `x`
+  // may be a function which is evaluated, being passed the range, the array of
+  // values, and the current index `i`, returning an array of thresholds. The
+  // default bin function will divide the values into uniform bins using
+  // Sturges' formula.
+  histogram.bins = function(x) {
+    if (!arguments.length) return binner;
+    binner = typeof x === "number"
+        ? function(range) { return d3_layout_histogramBinFixed(range, x); }
+        : d3.functor(x);
+    return histogram;
+  };
+
+  // Specifies whether the histogram's `y` value is a count (frequency) or a
+  // probability (density). The default value is true.
+  histogram.frequency = function(x) {
+    if (!arguments.length) return frequency;
+    frequency = !!x;
+    return histogram;
+  };
+
+  return histogram;
+};
+
+function d3_layout_histogramBinSturges(range, values) {
+  return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));
+}
+
+function d3_layout_histogramBinFixed(range, n) {
+  var x = -1,
+      b = +range[0],
+      m = (range[1] - b) / n,
+      f = [];
+  while (++x <= n) f[x] = m * x + b;
+  return f;
+}
+
+function d3_layout_histogramRange(values) {
+  return [d3.min(values), d3.max(values)];
+}
+d3.layout.hierarchy = function() {
+  var sort = d3_layout_hierarchySort,
+      children = d3_layout_hierarchyChildren,
+      value = d3_layout_hierarchyValue;
+
+  // Recursively compute the node depth and value.
+  // Also converts the data representation into a standard hierarchy structure.
+  function recurse(data, depth, nodes) {
+    var childs = children.call(hierarchy, data, depth),
+        node = d3_layout_hierarchyInline ? data : {data: data};
+    node.depth = depth;
+    nodes.push(node);
+    if (childs && (n = childs.length)) {
+      var i = -1,
+          n,
+          c = node.children = [],
+          v = 0,
+          j = depth + 1;
+      while (++i < n) {
+        d = recurse(childs[i], j, nodes);
+        d.parent = node;
+        c.push(d);
+        v += d.value;
+      }
+      if (sort) c.sort(sort);
+      if (value) node.value = v;
+    } else if (value) {
+      node.value = +value.call(hierarchy, data, depth) || 0;
+    }
+    return node;
+  }
+
+  // Recursively re-evaluates the node value.
+  function revalue(node, depth) {
+    var children = node.children,
+        v = 0;
+    if (children && (n = children.length)) {
+      var i = -1,
+          n,
+          j = depth + 1;
+      while (++i < n) v += revalue(children[i], j);
+    } else if (value) {
+      v = +value.call(hierarchy, d3_layout_hierarchyInline ? node : node.data, depth) || 0;
+    }
+    if (value) node.value = v;
+    return v;
+  }
+
+  function hierarchy(d) {
+    var nodes = [];
+    recurse(d, 0, nodes);
+    return nodes;
+  }
+
+  hierarchy.sort = function(x) {
+    if (!arguments.length) return sort;
+    sort = x;
+    return hierarchy;
+  };
+
+  hierarchy.children = function(x) {
+    if (!arguments.length) return children;
+    children = x;
+    return hierarchy;
+  };
+
+  hierarchy.value = function(x) {
+    if (!arguments.length) return value;
+    value = x;
+    return hierarchy;
+  };
+
+  // Re-evaluates the `value` property for the specified hierarchy.
+  hierarchy.revalue = function(root) {
+    revalue(root, 0);
+    return root;
+  };
+
+  return hierarchy;
+};
+
+// A method assignment helper for hierarchy subclasses.
+function d3_layout_hierarchyRebind(object, hierarchy) {
+  object.sort = d3.rebind(object, hierarchy.sort);
+  object.children = d3.rebind(object, hierarchy.children);
+  object.links = d3_layout_hierarchyLinks;
+  object.value = d3.rebind(object, hierarchy.value);
+
+  // If the new API is used, enabling inlining.
+  object.nodes = function(d) {
+    d3_layout_hierarchyInline = true;
+    return (object.nodes = object)(d);
+  };
+
+  return object;
+}
+
+function d3_layout_hierarchyChildren(d) {
+  return d.children;
+}
+
+function d3_layout_hierarchyValue(d) {
+  return d.value;
+}
+
+function d3_layout_hierarchySort(a, b) {
+  return b.value - a.value;
+}
+
+// Returns an array source+target objects for the specified nodes.
+function d3_layout_hierarchyLinks(nodes) {
+  return d3.merge(nodes.map(function(parent) {
+    return (parent.children || []).map(function(child) {
+      return {source: parent, target: child};
+    });
+  }));
+}
+
+// For backwards-compatibility, don't enable inlining by default.
+var d3_layout_hierarchyInline = false;
+d3.layout.pack = function() {
+  var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort),
+      size = [1, 1];
+
+  function pack(d, i) {
+    var nodes = hierarchy.call(this, d, i),
+        root = nodes[0];
+
+    // Recursively compute the layout.
+    root.x = 0;
+    root.y = 0;
+    d3_layout_packTree(root);
+
+    // Scale the layout to fit the requested size.
+    var w = size[0],
+        h = size[1],
+        k = 1 / Math.max(2 * root.r / w, 2 * root.r / h);
+    d3_layout_packTransform(root, w / 2, h / 2, k);
+
+    return nodes;
+  }
+
+  pack.size = function(x) {
+    if (!arguments.length) return size;
+    size = x;
+    return pack;
+  };
+
+  return d3_layout_hierarchyRebind(pack, hierarchy);
+};
+
+function d3_layout_packSort(a, b) {
+  return a.value - b.value;
+}
+
+function d3_layout_packInsert(a, b) {
+  var c = a._pack_next;
+  a._pack_next = b;
+  b._pack_prev = a;
+  b._pack_next = c;
+  c._pack_prev = b;
+}
+
+function d3_layout_packSplice(a, b) {
+  a._pack_next = b;
+  b._pack_prev = a;
+}
+
+function d3_layout_packIntersects(a, b) {
+  var dx = b.x - a.x,
+      dy = b.y - a.y,
+      dr = a.r + b.r;
+  return (dr * dr - dx * dx - dy * dy) > .001; // within epsilon
+}
+
+function d3_layout_packCircle(nodes) {
+  var xMin = Infinity,
+      xMax = -Infinity,
+      yMin = Infinity,
+      yMax = -Infinity,
+      n = nodes.length,
+      a, b, c, j, k;
+
+  function bound(node) {
+    xMin = Math.min(node.x - node.r, xMin);
+    xMax = Math.max(node.x + node.r, xMax);
+    yMin = Math.min(node.y - node.r, yMin);
+    yMax = Math.max(node.y + node.r, yMax);
+  }
+
+  // Create node links.
+  nodes.forEach(d3_layout_packLink);
+
+  // Create first node.
+  a = nodes[0];
+  a.x = -a.r;
+  a.y = 0;
+  bound(a);
+
+  // Create second node.
+  if (n > 1) {
+    b = nodes[1];
+    b.x = b.r;
+    b.y = 0;
+    bound(b);
+
+    // Create third node and build chain.
+    if (n > 2) {
+      c = nodes[2];
+      d3_layout_packPlace(a, b, c);
+      bound(c);
+      d3_layout_packInsert(a, c);
+      a._pack_prev = c;
+      d3_layout_packInsert(c, b);
+      b = a._pack_next;
+
+      // Now iterate through the rest.
+      for (var i = 3; i < n; i++) {
+        d3_layout_packPlace(a, b, c = nodes[i]);
+
+        // Search for the closest intersection.
+        var isect = 0, s1 = 1, s2 = 1;
+        for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {
+          if (d3_layout_packIntersects(j, c)) {
+            isect = 1;
+            break;
+          }
+        }
+        if (isect == 1) {
+          for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {
+            if (d3_layout_packIntersects(k, c)) {
+              if (s2 < s1) {
+                isect = -1;
+                j = k;
+              }
+              break;
+            }
+          }
+        }
+
+        // Update node chain.
+        if (isect == 0) {
+          d3_layout_packInsert(a, c);
+          b = c;
+          bound(c);
+        } else if (isect > 0) {
+          d3_layout_packSplice(a, j);
+          b = j;
+          i--;
+        } else { // isect < 0
+          d3_layout_packSplice(j, b);
+          a = j;
+          i--;
+        }
+      }
+    }
+  }
+
+  // Re-center the circles and return the encompassing radius.
+  var cx = (xMin + xMax) / 2,
+      cy = (yMin + yMax) / 2,
+      cr = 0;
+  for (var i = 0; i < n; i++) {
+    var node = nodes[i];
+    node.x -= cx;
+    node.y -= cy;
+    cr = Math.max(cr, node.r + Math.sqrt(node.x * node.x + node.y * node.y));
+  }
+
+  // Remove node links.
+  nodes.forEach(d3_layout_packUnlink);
+
+  return cr;
+}
+
+function d3_layout_packLink(node) {
+  node._pack_next = node._pack_prev = node;
+}
+
+function d3_layout_packUnlink(node) {
+  delete node._pack_next;
+  delete node._pack_prev;
+}
+
+function d3_layout_packTree(node) {
+  var children = node.children;
+  if (children && children.length) {
+    children.forEach(d3_layout_packTree);
+    node.r = d3_layout_packCircle(children);
+  } else {
+    node.r = Math.sqrt(node.value);
+  }
+}
+
+function d3_layout_packTransform(node, x, y, k) {
+  var children = node.children;
+  node.x = (x += k * node.x);
+  node.y = (y += k * node.y);
+  node.r *= k;
+  if (children) {
+    var i = -1, n = children.length;
+    while (++i < n) d3_layout_packTransform(children[i], x, y, k);
+  }
+}
+
+function d3_layout_packPlace(a, b, c) {
+  var db = a.r + c.r,
+      dx = b.x - a.x,
+      dy = b.y - a.y;
+  if (db && (dx || dy)) {
+    var da = b.r + c.r,
+        dc = Math.sqrt(dx * dx + dy * dy),
+        cos = Math.max(-1, Math.min(1, (db * db + dc * dc - da * da) / (2 * db * dc))),
+        theta = Math.acos(cos),
+        x = cos * (db /= dc),
+        y = Math.sin(theta) * db;
+    c.x = a.x + x * dx + y * dy;
+    c.y = a.y + x * dy - y * dx;
+  } else {
+    c.x = a.x + db;
+    c.y = a.y;
+  }
+}
+// Implements a hierarchical layout using the cluster (or dendogram) algorithm.
+d3.layout.cluster = function() {
+  var hierarchy = d3.layout.hierarchy().sort(null).value(null),
+      separation = d3_layout_treeSeparation,
+      size = [1, 1]; // width, height
+
+  function cluster(d, i) {
+    var nodes = hierarchy.call(this, d, i),
+        root = nodes[0],
+        previousNode,
+        x = 0,
+        kx,
+        ky;
+
+    // First walk, computing the initial x & y values.
+    d3_layout_treeVisitAfter(root, function(node) {
+      var children = node.children;
+      if (children && children.length) {
+        node.x = d3_layout_clusterX(children);
+        node.y = d3_layout_clusterY(children);
+      } else {
+        node.x = previousNode ? x += separation(node, previousNode) : 0;
+        node.y = 0;
+        previousNode = node;
+      }
+    });
+
+    // Compute the left-most, right-most, and depth-most nodes for extents.
+    var left = d3_layout_clusterLeft(root),
+        right = d3_layout_clusterRight(root),
+        x0 = left.x - separation(left, right) / 2,
+        x1 = right.x + separation(right, left) / 2;
+
+    // Second walk, normalizing x & y to the desired size.
+    d3_layout_treeVisitAfter(root, function(node) {
+      node.x = (node.x - x0) / (x1 - x0) * size[0];
+      node.y = (1 - node.y / root.y) * size[1];
+    });
+
+    return nodes;
+  }
+
+  cluster.separation = function(x) {
+    if (!arguments.length) return separation;
+    separation = x;
+    return cluster;
+  };
+
+  cluster.size = function(x) {
+    if (!arguments.length) return size;
+    size = x;
+    return cluster;
+  };
+
+  return d3_layout_hierarchyRebind(cluster, hierarchy);
+};
+
+function d3_layout_clusterY(children) {
+  return 1 + d3.max(children, function(child) {
+    return child.y;
+  });
+}
+
+function d3_layout_clusterX(children) {
+  return children.reduce(function(x, child) {
+    return x + child.x;
+  }, 0) / children.length;
+}
+
+function d3_layout_clusterLeft(node) {
+  var children = node.children;
+  return children && children.length ? d3_layout_clusterLeft(children[0]) : node;
+}
+
+function d3_layout_clusterRight(node) {
+  var children = node.children, n;
+  return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;
+}
+// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm
+d3.layout.tree = function() {
+  var hierarchy = d3.layout.hierarchy().sort(null).value(null),
+      separation = d3_layout_treeSeparation,
+      size = [1, 1]; // width, height
+
+  function tree(d, i) {
+    var nodes = hierarchy.call(this, d, i),
+        root = nodes[0];
+
+    function firstWalk(node, previousSibling) {
+      var children = node.children,
+          layout = node._tree;
+      if (children && (n = children.length)) {
+        var n,
+            firstChild = children[0],
+            previousChild,
+            ancestor = firstChild,
+            child,
+            i = -1;
+        while (++i < n) {
+          child = children[i];
+          firstWalk(child, previousChild);
+          ancestor = apportion(child, previousChild, ancestor);
+          previousChild = child;
+        }
+        d3_layout_treeShift(node);
+        var midpoint = .5 * (firstChild._tree.prelim + child._tree.prelim);
+        if (previousSibling) {
+          layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
+          layout.mod = layout.prelim - midpoint;
+        } else {
+          layout.prelim = midpoint;
+        }
+      } else {
+        if (previousSibling) {
+          layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
+        }
+      }
+    }
+
+    function secondWalk(node, x) {
+      node.x = node._tree.prelim + x;
+      var children = node.children;
+      if (children && (n = children.length)) {
+        var i = -1,
+            n;
+        x += node._tree.mod;
+        while (++i < n) {
+          secondWalk(children[i], x);
+        }
+      }
+    }
+
+    function apportion(node, previousSibling, ancestor) {
+      if (previousSibling) {
+        var vip = node,
+            vop = node,
+            vim = previousSibling,
+            vom = node.parent.children[0],
+            sip = vip._tree.mod,
+            sop = vop._tree.mod,
+            sim = vim._tree.mod,
+            som = vom._tree.mod,
+            shift;
+        while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {
+          vom = d3_layout_treeLeft(vom);
+          vop = d3_layout_treeRight(vop);
+          vop._tree.ancestor = node;
+          shift = vim._tree.prelim + sim - vip._tree.prelim - sip + separation(vim, vip);
+          if (shift > 0) {
+            d3_layout_treeMove(d3_layout_treeAncestor(vim, node, ancestor), node, shift);
+            sip += shift;
+            sop += shift;
+          }
+          sim += vim._tree.mod;
+          sip += vip._tree.mod;
+          som += vom._tree.mod;
+          sop += vop._tree.mod;
+        }
+        if (vim && !d3_layout_treeRight(vop)) {
+          vop._tree.thread = vim;
+          vop._tree.mod += sim - sop;
+        }
+        if (vip && !d3_layout_treeLeft(vom)) {
+          vom._tree.thread = vip;
+          vom._tree.mod += sip - som;
+          ancestor = node;
+        }
+      }
+      return ancestor;
+    }
+
+    // Initialize temporary layout variables.
+    d3_layout_treeVisitAfter(root, function(node, previousSibling) {
+      node._tree = {
+        ancestor: node,
+        prelim: 0,
+        mod: 0,
+        change: 0,
+        shift: 0,
+        number: previousSibling ? previousSibling._tree.number + 1 : 0
+      };
+    });
+
+    // Compute the layout using Buchheim et al.'s algorithm.
+    firstWalk(root);
+    secondWalk(root, -root._tree.prelim);
+
+    // Compute the left-most, right-most, and depth-most nodes for extents.
+    var left = d3_layout_treeSearch(root, d3_layout_treeLeftmost),
+        right = d3_layout_treeSearch(root, d3_layout_treeRightmost),
+        deep = d3_layout_treeSearch(root, d3_layout_treeDeepest),
+        x0 = left.x - separation(left, right) / 2,
+        x1 = right.x + separation(right, left) / 2,
+        y1 = deep.depth || 1;
+
+    // Clear temporary layout variables; transform x and y.
+    d3_layout_treeVisitAfter(root, function(node) {
+      node.x = (node.x - x0) / (x1 - x0) * size[0];
+      node.y = node.depth / y1 * size[1];
+      delete node._tree;
+    });
+
+    return nodes;
+  }
+
+  tree.separation = function(x) {
+    if (!arguments.length) return separation;
+    separation = x;
+    return tree;
+  };
+
+  tree.size = function(x) {
+    if (!arguments.length) return size;
+    size = x;
+    return tree;
+  };
+
+  return d3_layout_hierarchyRebind(tree, hierarchy);
+};
+
+function d3_layout_treeSeparation(a, b) {
+  return a.parent == b.parent ? 1 : 2;
+}
+
+// function d3_layout_treeSeparationRadial(a, b) {
+//   return (a.parent == b.parent ? 1 : 2) / a.depth;
+// }
+
+function d3_layout_treeLeft(node) {
+  var children = node.children;
+  return children && children.length ? children[0] : node._tree.thread;
+}
+
+function d3_layout_treeRight(node) {
+  var children = node.children,
+      n;
+  return children && (n = children.length) ? children[n - 1] : node._tree.thread;
+}
+
+function d3_layout_treeSearch(node, compare) {
+  var children = node.children;
+  if (children && (n = children.length)) {
+    var child,
+        n,
+        i = -1;
+    while (++i < n) {
+      if (compare(child = d3_layout_treeSearch(children[i], compare), node) > 0) {
+        node = child;
+      }
+    }
+  }
+  return node;
+}
+
+function d3_layout_treeRightmost(a, b) {
+  return a.x - b.x;
+}
+
+function d3_layout_treeLeftmost(a, b) {
+  return b.x - a.x;
+}
+
+function d3_layout_treeDeepest(a, b) {
+  return a.depth - b.depth;
+}
+
+function d3_layout_treeVisitAfter(node, callback) {
+  function visit(node, previousSibling) {
+    var children = node.children;
+    if (children && (n = children.length)) {
+      var child,
+          previousChild = null,
+          i = -1,
+          n;
+      while (++i < n) {
+        child = children[i];
+        visit(child, previousChild);
+        previousChild = child;
+      }
+    }
+    callback(node, previousSibling);
+  }
+  visit(node, null);
+}
+
+function d3_layout_treeShift(node) {
+  var shift = 0,
+      change = 0,
+      children = node.children,
+      i = children.length,
+      child;
+  while (--i >= 0) {
+    child = children[i]._tree;
+    child.prelim += shift;
+    child.mod += shift;
+    shift += child.shift + (change += child.change);
+  }
+}
+
+function d3_layout_treeMove(ancestor, node, shift) {
+  ancestor = ancestor._tree;
+  node = node._tree;
+  var change = shift / (node.number - ancestor.number);
+  ancestor.change += change;
+  node.change -= change;
+  node.shift += shift;
+  node.prelim += shift;
+  node.mod += shift;
+}
+
+function d3_layout_treeAncestor(vim, node, ancestor) {
+  return vim._tree.ancestor.parent == node.parent
+      ? vim._tree.ancestor
+      : ancestor;
+}
+// Squarified Treemaps by Mark Bruls, Kees Huizing, and Jarke J. van Wijk
+// Modified to support a target aspect ratio by Jeff Heer
+d3.layout.treemap = function() {
+  var hierarchy = d3.layout.hierarchy(),
+      round = Math.round,
+      size = [1, 1], // width, height
+      padding = null,
+      pad = d3_layout_treemapPadNull,
+      sticky = false,
+      stickies,
+      ratio = 0.5 * (1 + Math.sqrt(5)); // golden ratio
+
+  // Compute the area for each child based on value & scale.
+  function scale(children, k) {
+    var i = -1,
+        n = children.length,
+        child,
+        area;
+    while (++i < n) {
+      area = (child = children[i]).value * (k < 0 ? 0 : k);
+      child.area = isNaN(area) || area <= 0 ? 0 : area;
+    }
+  }
+
+  // Recursively arranges the specified node's children into squarified rows.
+  function squarify(node) {
+    var children = node.children;
+    if (children && children.length) {
+      var rect = pad(node),
+          row = [],
+          remaining = children.slice(), // copy-on-write
+          child,
+          best = Infinity, // the best row score so far
+          score, // the current row score
+          u = Math.min(rect.dx, rect.dy), // initial orientation
+          n;
+      scale(remaining, rect.dx * rect.dy / node.value);
+      row.area = 0;
+      while ((n = remaining.length) > 0) {
+        row.push(child = remaining[n - 1]);
+        row.area += child.area;
+        if ((score = worst(row, u)) <= best) { // continue with this orientation
+          remaining.pop();
+          best = score;
+        } else { // abort, and try a different orientation
+          row.area -= row.pop().area;
+          position(row, u, rect, false);
+          u = Math.min(rect.dx, rect.dy);
+          row.length = row.area = 0;
+          best = Infinity;
+        }
+      }
+      if (row.length) {
+        position(row, u, rect, true);
+        row.length = row.area = 0;
+      }
+      children.forEach(squarify);
+    }
+  }
+
+  // Recursively resizes the specified node's children into existing rows.
+  // Preserves the existing layout!
+  function stickify(node) {
+    var children = node.children;
+    if (children && children.length) {
+      var rect = pad(node),
+          remaining = children.slice(), // copy-on-write
+          child,
+          row = [];
+      scale(remaining, rect.dx * rect.dy / node.value);
+      row.area = 0;
+      while (child = remaining.pop()) {
+        row.push(child);
+        row.area += child.area;
+        if (child.z != null) {
+          position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);
+          row.length = row.area = 0;
+        }
+      }
+      children.forEach(stickify);
+    }
+  }
+
+  // Computes the score for the specified row, as the worst aspect ratio.
+  function worst(row, u) {
+    var s = row.area,
+        r,
+        rmax = 0,
+        rmin = Infinity,
+        i = -1,
+        n = row.length;
+    while (++i < n) {
+      if (!(r = row[i].area)) continue;
+      if (r < rmin) rmin = r;
+      if (r > rmax) rmax = r;
+    }
+    s *= s;
+    u *= u;
+    return s
+        ? Math.max((u * rmax * ratio) / s, s / (u * rmin * ratio))
+        : Infinity;
+  }
+
+  // Positions the specified row of nodes. Modifies `rect`.
+  function position(row, u, rect, flush) {
+    var i = -1,
+        n = row.length,
+        x = rect.x,
+        y = rect.y,
+        v = u ? round(row.area / u) : 0,
+        o;
+    if (u == rect.dx) { // horizontal subdivision
+      if (flush || v > rect.dy) v = v ? rect.dy : 0; // over+underflow
+      while (++i < n) {
+        o = row[i];
+        o.x = x;
+        o.y = y;
+        o.dy = v;
+        x += o.dx = v ? round(o.area / v) : 0;
+      }
+      o.z = true;
+      o.dx += rect.x + rect.dx - x; // rounding error
+      rect.y += v;
+      rect.dy -= v;
+    } else { // vertical subdivision
+      if (flush || v > rect.dx) v = v ? rect.dx : 0; // over+underflow
+      while (++i < n) {
+        o = row[i];
+        o.x = x;
+        o.y = y;
+        o.dx = v;
+        y += o.dy = v ? round(o.area / v) : 0;
+      }
+      o.z = false;
+      o.dy += rect.y + rect.dy - y; // rounding error
+      rect.x += v;
+      rect.dx -= v;
+    }
+  }
+
+  function treemap(d) {
+    var nodes = stickies || hierarchy(d),
+        root = nodes[0];
+    root.x = 0;
+    root.y = 0;
+    root.dx = size[0];
+    root.dy = size[1];
+    if (stickies) hierarchy.revalue(root);
+    scale([root], root.dx * root.dy / root.value);
+    (stickies ? stickify : squarify)(root);
+    if (sticky) stickies = nodes;
+    return nodes;
+  }
+
+  treemap.size = function(x) {
+    if (!arguments.length) return size;
+    size = x;
+    return treemap;
+  };
+
+  treemap.padding = function(x) {
+    if (!arguments.length) return padding;
+
+    function padFunction(node) {
+      var p = x.call(treemap, node, node.depth);
+      return p == null
+          ? d3_layout_treemapPadNull(node)
+          : d3_layout_treemapPad(node, typeof p === "number" ? [p, p, p, p] : p);
+    }
+
+    function padConstant(node) {
+      return d3_layout_treemapPad(node, x);
+    }
+
+    var type;
+    pad = (padding = x) == null ? d3_layout_treemapPadNull
+        : (type = typeof x) === "function" ? padFunction
+        : type === "number" ? (x = [x, x, x, x], padConstant)
+        : padConstant;
+    return treemap;
+  };
+
+  treemap.round = function(x) {
+    if (!arguments.length) return round != Number;
+    round = x ? Math.round : Number;
+    return treemap;
+  };
+
+  treemap.sticky = function(x) {
+    if (!arguments.length) return sticky;
+    sticky = x;
+    stickies = null;
+    return treemap;
+  };
+
+  treemap.ratio = function(x) {
+    if (!arguments.length) return ratio;
+    ratio = x;
+    return treemap;
+  };
+
+  return d3_layout_hierarchyRebind(treemap, hierarchy);
+};
+
+function d3_layout_treemapPadNull(node) {
+  return {x: node.x, y: node.y, dx: node.dx, dy: node.dy};
+}
+
+function d3_layout_treemapPad(node, padding) {
+  var x = node.x + padding[3],
+      y = node.y + padding[0],
+      dx = node.dx - padding[1] - padding[3],
+      dy = node.dy - padding[0] - padding[2];
+  if (dx < 0) { x += dx / 2; dx = 0; }
+  if (dy < 0) { y += dy / 2; dy = 0; }
+  return {x: x, y: y, dx: dx, dy: dy};
+}
+})();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/d3/d3.layout.min.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,1 @@
+(function(){function a(a){var b=a.source,d=a.target,e=c(b,d),f=[b];while(b!==e)b=b.parent,f.push(b);var g=f.length;while(d!==e)f.splice(g,0,d),d=d.parent;return f}function b(a){var b=[],c=a.parent;while(c!=null)b.push(a),a=c,c=c.parent;return b.push(a),b}function c(a,c){if(a===c)return a;var d=b(a),e=b(c),f=d.pop(),g=e.pop(),h=null;while(f===g)h=f,f=d.pop(),g=e.pop();return h}function g(a){a.fixed|=2}function h(a){a!==f&&(a.fixed&=1)}function i(){j(),f.fixed&=1,e=f=null}function j(){f.px+=d3.event.dx,f.py+=d3.event.dy,e.resume()}function k(a,b,c){var d=0,e=0;a.charge=0;if(!a.leaf){var f=a.nodes,g=f.length,h=-1,i;while(++h<g){i=f[h];if(i==null)continue;k(i,b,c),a.charge+=i.charge,d+=i.charge*i.cx,e+=i.charge*i.cy}}if(a.point){a.leaf||(a.point.x+=Math.random()-.5,a.point.y+=Math.random()-.5);var j=b*c[a.point.index];a.charge+=a.pointCharge=j,d+=j*a.point.x,e+=j*a.point.y}a.cx=d/a.charge,a.cy=e/a.charge}function l(a){return 20}function m(a){return 1}function o(a){return a.x}function p(a){return a.y}function q(a,b,c){a.y0=b,a.y=c}function t(a){var b=1,c=0,d=a[0][1],e,f=a.length;for(;b<f;++b)(e=a[b][1])>d&&(c=b,d=e);return c}function u(a){return a.reduce(v,0)}function v(a,b){return a+b[1]}function w(a,b){return x(a,Math.ceil(Math.log(b.length)/Math.LN2+1))}function x(a,b){var c=-1,d=+a[0],e=(a[1]-d)/b,f=[];while(++c<=b)f[c]=e*c+d;return f}function y(a){return[d3.min(a),d3.max(a)]}function z(a,b){return a.sort=d3.rebind(a,b.sort),a.children=d3.rebind(a,b.children),a.links=D,a.value=d3.rebind(a,b.value),a.nodes=function(b){return E=!0,(a.nodes=a)(b)},a}function A(a){return a.children}function B(a){return a.value}function C(a,b){return b.value-a.value}function D(a){return d3.merge(a.map(function(a){return(a.children||[]).map(function(b){return{source:a,target:b}})}))}function F(a,b){return a.value-b.value}function G(a,b){var c=a._pack_next;a._pack_next=b,b._pack_prev=a,b._pack_next=c,c._pack_prev=b}function H(a,b){a._pack_next=b,b._pack_prev=a}function I(a,b){var c=b.x-a.x,d=b.y-a.y,e=a.r+b.r;return e*e-c*c-d*d>.001}function J(a){function l(a){b=Math.min(a.x-a.r,b),c=Math.max(a.x+a.r,c),d=Math.min(a.y-a.r,d),e=Math.max(a.y+a.r,e)}var b=Infinity,c=-Infinity,d=Infinity,e=-Infinity,f=a.length,g,h,i,j,k;a.forEach(K),g=a[0],g.x=-g.r,g.y=0,l(g);if(f>1){h=a[1],h.x=h.r,h.y=0,l(h);if(f>2){i=a[2],O(g,h,i),l(i),G(g,i),g._pack_prev=i,G(i,h),h=g._pack_next;for(var m=3;m<f;m++){O(g,h,i=a[m]);var n=0,o=1,p=1;for(j=h._pack_next;j!==h;j=j._pack_next,o++)if(I(j,i)){n=1;break}if(n==1)for(k=g._pack_prev;k!==j._pack_prev;k=k._pack_prev,p++)if(I(k,i)){p<o&&(n=-1,j=k);break}n==0?(G(g,i),h=i,l(i)):n>0?(H(g,j),h=j,m--):(H(j,h),g=j,m--)}}}var q=(b+c)/2,r=(d+e)/2,s=0;for(var m=0;m<f;m++){var t=a[m];t.x-=q,t.y-=r,s=Math.max(s,t.r+Math.sqrt(t.x*t.x+t.y*t.y))}return a.forEach(L),s}function K(a){a._pack_next=a._pack_prev=a}function L(a){delete a._pack_next,delete a._pack_prev}function M(a){var b=a.children;b&&b.length?(b.forEach(M),a.r=J(b)):a.r=Math.sqrt(a.value)}function N(a,b,c,d){var e=a.children;a.x=b+=d*a.x,a.y=c+=d*a.y,a.r*=d;if(e){var f=-1,g=e.length;while(++f<g)N(e[f],b,c,d)}}function O(a,b,c){var d=a.r+c.r,e=b.x-a.x,f=b.y-a.y;if(d&&(e||f)){var g=b.r+c.r,h=Math.sqrt(e*e+f*f),i=Math.max(-1,Math.min(1,(d*d+h*h-g*g)/(2*d*h))),j=Math.acos(i),k=i*(d/=h),l=Math.sin(j)*d;c.x=a.x+k*e+l*f,c.y=a.y+k*f-l*e}else c.x=a.x+d,c.y=a.y}function P(a){return 1+d3.max(a,function(a){return a.y})}function Q(a){return a.reduce(function(a,b){return a+b.x},0)/a.length}function R(a){var b=a.children;return b&&b.length?R(b[0]):a}function S(a){var b=a.children,c;return b&&(c=b.length)?S(b[c-1]):a}function T(a,b){return a.parent==b.parent?1:2}function U(a){var b=a.children;return b&&b.length?b[0]:a._tree.thread}function V(a){var b=a.children,c;return b&&(c=b.length)?b[c-1]:a._tree.thread}function W(a,b){var c=a.children;if(c&&(e=c.length)){var d,e,f=-1;while(++f<e)b(d=W(c[f],b),a)>0&&(a=d)}return a}function X(a,b){return a.x-b.x}function Y(a,b){return b.x-a.x}function Z(a,b){return a.depth-b.depth}function $(a,b){function c(a,d){var e=a.children;if(e&&(i=e.length)){var f,g=null,h=-1,i;while(++h<i)f=e[h],c(f,g),g=f}b(a,d)}c(a,null)}function _(a){var b=0,c=0,d=a.children,e=d.length,f;while(--e>=0)f=d[e]._tree,f.prelim+=b,f.mod+=b,b+=f.shift+(c+=f.change)}function ba(a,b,c){a=a._tree,b=b._tree;var d=c/(b.number-a.number);a.change+=d,b.change-=d,b.shift+=c,b.prelim+=c,b.mod+=c}function bb(a,b,c){return a._tree.ancestor.parent==b.parent?a._tree.ancestor:c}function bc(a){return{x:a.x,y:a.y,dx:a.dx,dy:a.dy}}function bd(a,b){var c=a.x+b[3],d=a.y+b[0],e=a.dx-b[1]-b[3],f=a.dy-b[0]-b[2];return e<0&&(c+=e/2,e=0),f<0&&(d+=f/2,f=0),{x:c,y:d,dx:e,dy:f}}d3.layout={},d3.layout.bundle=function(){return function(b){var c=[],d=-1,e=b.length;while(++d<e)c.push(a(b[d]));return c}},d3.layout.chord=function(){function j(){var a={},j=[],l=d3.range(e),m=[],n,o,p,q,r;b=[],c=[],n=0,q=-1;while(++q<e){o=0,r=-1;while(++r<e)o+=d[q][r];j.push(o),m.push(d3.range(e)),n+=o}g&&l.sort(function(a,b){return g(j[a],j[b])}),h&&m.forEach(function(a,b){a.sort(function(a,c){return h(d[b][a],d[b][c])})}),n=(2*Math.PI-f*e)/n,o=0,q=-1;while(++q<e){p=o,r=-1;while(++r<e){var s=l[q],t=m[s][r],u=d[s][t],v=o,w=o+=u*n;a[s+"-"+t]={index:s,subindex:t,startAngle:v,endAngle:w,value:u}}c.push({index:s,startAngle:p,endAngle:o,value:(o-p)/n}),o+=f}q=-1;while(++q<e){r=q-1;while(++r<e){var x=a[q+"-"+r],y=a[r+"-"+q];(x.value||y.value)&&b.push(x.value<y.value?{source:y,target:x}:{source:x,target:y})}}i&&k()}function k(){b.sort(function(a,b){return i((a.source.value+a.target.value)/2,(b.source.value+b.target.value)/2)})}var a={},b,c,d,e,f=0,g,h,i;return a.matrix=function(f){return arguments.length?(e=(d=f)&&d.length,b=c=null,a):d},a.padding=function(d){return arguments.length?(f=d,b=c=null,a):f},a.sortGroups=function(d){return arguments.length?(g=d,b=c=null,a):g},a.sortSubgroups=function(c){return arguments.length?(h=c,b=null,a):h},a.sortChords=function(c){return arguments.length?(i=c,b&&k(),a):i},a.chords=function(){return b||j(),b},a.groups=function(){return c||j(),c},a},d3.layout.force=function(){function A(a){return function(b,c,d,e,f){if(b.point!==a){var g=b.cx-a.x,h=b.cy-a.y,i=1/Math.sqrt(g*g+h*h);if((e-c)*i<t){var j=b.charge*i*i;return a.px-=g*j,a.py-=h*j,!0}if(b.point&&isFinite(i)){var j=b.pointCharge*i*i;a.px-=g*j,a.py-=h*j}}return!b.charge}}function B(){var a=v.length,d=w.length,e,f,g,h,i,j,l,m,p;for(f=0;f<d;++f){g=w[f],h=g.source,i=g.target,m=i.x-h.x,p=i.y-h.y;if(j=m*m+p*p)j=n*y[f]*((j=Math.sqrt(j))-x[f])/j,m*=j,p*=j,i.x-=m*(l=h.weight/(i.weight+h.weight)),i.y-=p*l,h.x+=m*(l=1-l),h.y+=p*l}if(l=n*s){m=c[0]/2,p=c[1]/2,f=-1;if(l)while(++f<a)g=v[f],g.x+=(m-g.x)*l,g.y+=(p-g.y)*l}if(r){k(e=d3.geom.quadtree(v),n,z),f=-1;while(++f<a)(g=v[f]).fixed||e.visit(A(g))}f=-1;while(++f<a)g=v[f],g.fixed?(g.x=g.px,g.y=g.py):(g.x-=(g.px-(g.px=g.x))*o,g.y-=(g.py-(g.py=g.y))*o);return b.tick({type:"tick",alpha:n}),(n*=.99)<.005}function C(b){g(f=b),e=a}var a={},b=d3.dispatch("tick"),c=[1,1],d,n,o=.9,p=l,q=m,r=-30,s=.1,t=.8,u,v=[],w=[],x,y,z;return a.on=function(c,d){return b.on(c,d),a},a.nodes=function(b){return arguments.length?(v=b,a):v},a.links=function(b){return arguments.length?(w=b,a):w},a.size=function(b){return arguments.length?(c=b,a):c},a.linkDistance=function(b){return arguments.length?(p=d3.functor(b),a):p},a.distance=a.linkDistance,a.linkStrength=function(b){return arguments.length?(q=d3.functor(b),a):q},a.friction=function(b){return arguments.length?(o=b,a):o},a.charge=function(b){return arguments.length?(r=typeof b=="function"?b:+b,a):r},a.gravity=function(b){return arguments.length?(s=b,a):s},a.theta=function(b){return arguments.length?(t=b,a):t},a.start=function(){function k(a,c){var d=l(b),e=-1,f=d.length,g;while(++e<f)if(!isNaN(g=d[e][a]))return g;return Math.random()*c}function l(){if(!i){i=[];for(d=0;d<e;++d)i[d]=[];for(d=0;d<f;++d){var a=w[d];i[a.source.index].push(a.target),i[a.target.index].push(a.source)}}return i[b]}var b,d,e=v.length,f=w.length,g=c[0],h=c[1],i,j;for(b=0;b<e;++b)(j=v[b]).index=b,j.weight=0;x=[],y=[];for(b=0;b<f;++b)j=w[b],typeof j.source=="number"&&(j.source=v[j.source]),typeof j.target=="number"&&(j.target=v[j.target]),x[b]=p.call(this,j,b),y[b]=q.call(this,j,b),++j.source.weight,++j.target.weight;for(b=0;b<e;++b)j=v[b],isNaN(j.x)&&(j.x=k("x",g)),isNaN(j.y)&&(j.y=k("y",h)),isNaN(j.px)&&(j.px=j.x),isNaN(j.py)&&(j.py=j.y);z=[];if(typeof r=="function")for(b=0;b<e;++b)z[b]=+r.call(this,v[b],b);else for(b=0;b<e;++b)z[b]=r;return a.resume()},a.resume=function(){return n=.1,d3.timer(B),a},a.stop=function(){return n=0,a},a.drag=function(){d||(d=d3.behavior.drag().on("dragstart",C).on("drag",j).on("dragend",i)),this.on("mouseover.force",g).on("mouseout.force",h).call(d)},a};var e,f;d3.layout.partition=function(){function c(a,b,d,e){var f=a.children;a.x=b,a.y=a.depth*e,a.dx=d,a.dy=e;if(f&&(h=f.length)){var g=-1,h,i,j;d=a.value?d/a.value:0;while(++g<h)c(i=f[g],b,j=i.value*d,e),b+=j}}function d(a){var b=a.children,c=0;if(b&&(f=b.length)){var e=-1,f;while(++e<f)c=Math.max(c,d(b[e]))}return 1+c}function e(e,f){var g=a.call(this,e,f);return c(g[0],0,b[0],b[1]/d(g[0])),g}var a=d3.layout.hierarchy(),b=[1,1];return e.size=function(a){return arguments.length?(b=a,e):b},z(e,a)},d3.layout.pie=function(){function f(g,h){var i=g.map(function(b,c){return+a.call(f,b,c)}),j=+(typeof c=="function"?c.apply(this,arguments):c),k=((typeof e=="function"?e.apply(this,arguments):e)-c)/d3.sum(i),l=d3.range(g.length);b!=null&&l.sort(b===n?function(a,b){return i[b]-i[a]}:function(a,c){return b(g[a],g[c])});var m=l.map(function(a){return{data:g[a],value:d=i[a],startAngle:j,endAngle:j+=d*k}});return g.map(function(a,b){return m[l[b]]})}var a=Number,b=n,c=0,e=2*Math.PI;return f.value=function(b){return arguments.length?(a=b,f):a},f.sort=function(a){return arguments.length?(b=a,f):b},f.startAngle=function(a){return arguments.length?(c=a,f):c},f.endAngle=function(a){return arguments.length?(e=a,f):e},f};var n={};d3.layout.stack=function(){function g(h,i){var j=h.map(function(b,c){return a.call(g,b,c)}),k=j.map(function(a,b){return a.map(function(a,b){return[e.call(g,a,b),f.call(g,a,b)]})}),l=b.call(g,k,i);j=d3.permute(j,l),k=d3.permute(k,l);var m=c.call(g,k,i),n=j.length,o=j[0].length,p,q,r;for(q=0;q<o;++q){d.call(g,j[0][q],r=m[q],k[0][q][1]);for(p=1;p<n;++p)d.call(g,j[p][q],r+=k[p-1][q][1],k[p][q][1])}return h}var a=Object,b=r["default"],c=s.zero,d=q,e=o,f=p;return g.values=function(b){return arguments.length?(a=b,g):a},g.order=function(a){return arguments.length?(b=typeof a=="function"?a:r[a],g):b},g.offset=function(a){return arguments.length?(c=typeof a=="function"?a:s[a],g):c},g.x=function(a){return arguments.length?(e=a,g):e},g.y=function(a){return arguments.length?(f=a,g):f},g.out=function(a){return arguments.length?(d=a,g):d},g};var r={"inside-out":function(a){var b=a.length,c,d,e=a.map(t),f=a.map(u),g=d3.range(b).sort(function(a,b){return e[a]-e[b]}),h=0,i=0,j=[],k=[];for(c=0;c<b;++c)d=g[c],h<i?(h+=f[d],j.push(d)):(i+=f[d],k.push(d));return k.reverse().concat(j)},reverse:function(a){return d3.range(a.length).reverse()},"default":function(a){return d3.range(a.length)}},s={silhouette:function(a){var b=a.length,c=a[0].length,d=[],e=0,f,g,h,i=[];for(g=0;g<c;++g){for(f=0,h=0;f<b;f++)h+=a[f][g][1];h>e&&(e=h),d.push(h)}for(g=0;g<c;++g)i[g]=(e-d[g])/2;return i},wiggle:function(a){var b=a.length,c=a[0],d=c.length,e=0,f,g,h,i,j,k,l,m,n,o=[];o[0]=m=n=0;for(g=1;g<d;++g){for(f=0,i=0;f<b;++f)i+=a[f][g][1];for(f=0,j=0,l=c[g][0]-c[g-1][0];f<b;++f){for(h=0,k=(a[f][g][1]-a[f][g-1][1])/(2*l);h<f;++h)k+=(a[h][g][1]-a[h][g-1][1])/l;j+=k*a[f][g][1]}o[g]=m-=i?j/i*l:0,m<n&&(n=m)}for(g=0;g<d;++g)o[g]-=n;return o},expand:function(a){var b=a.length,c=a[0].length,d=1/b,e,f,g,h=[];for(f=0;f<c;++f){for(e=0,g=0;e<b;e++)g+=a[e][f][1];if(g)for(e=0;e<b;e++)a[e][f][1]/=g;else for(e=0;e<b;e++)a[e][f][1]=d}for(f=0;f<c;++f)h[f]=0;return h},zero:function(a){var b=-1,c=a[0].length,d=[];while(++b<c)d[b]=0;return d}};d3.layout.histogram=function(){function e(e,f){var g=[],h=e.map(b,this),i=c.call(this,h,f),j=d.call(this,i,h,f),k,f=-1,l=h.length,m=j.length-1,n=a?1:1/l,o;while(++f<m)k=g[f]=[],k.dx=j[f+1]-(k.x=j[f]),k.y=0;f=-1;while(++f<l)o=h[f],o>=i[0]&&o<=i[1]&&(k=g[d3.bisect(j,o,1,m)-1],k.y+=n,k.push(e[f]));return g}var a=!0,b=Number,c=y,d=w;return e.value=function(a){return arguments.length?(b=a,e):b},e.range=function(a){return arguments.length?(c=d3.functor(a),e):c},e.bins=function(a){return arguments.length?(d=typeof a=="number"?function(b){return x(b,a)}:d3.functor(a),e):d},e.frequency=function(b){return arguments.length?(a=!!b,e):a},e},d3.layout.hierarchy=function(){function e(f,h,i){var j=b.call(g,f,h),k=E?f:{data:f};k.depth=h,i.push(k);if(j&&(m=j.length)){var l=-1,m,n=k.children=[],o=0,p=h+1;while(++l<m)d=e(j[l],p,i),d.parent=k,n.push(d),o+=d.value;a&&n.sort(a),c&&(k.value=o)}else c&&(k.value=+c.call(g,f,h)||0);return k}function f(a,b){var d=a.children,e=0;if(d&&(i=d.length)){var h=-1,i,j=b+1;while(++h<i)e+=f(d[h],j)}else c&&(e=+c.call(g,E?a:a.data,b)||0);return c&&(a.value=e),e}function g(a){var b=[];return e(a,0,b),b}var a=C,b=A,c=B;return g.sort=function(b){return arguments.length?(a=b,g):a},g.children=function(a){return arguments.length?(b=a,g):b},g.value=function(a){return arguments.length?(c=a,g):c},g.revalue=function(a){return f(a,0),a},g};var E=!1;d3.layout.pack=function(){function c(c,d){var e=a.call(this,c,d),f=e[0];f.x=0,f.y=0,M(f);var g=b[0],h=b[1],i=1/Math.max(2*f.r/g,2*f.r/h);return N(f,g/2,h/2,i),e}var a=d3.layout.hierarchy().sort(F),b=[1,1];return c.size=function(a){return arguments.length?(b=a,c):b},z(c,a)},d3.layout.cluster=function(){function d(d,e){var f=a.call(this,d,e),g=f[0],h,i=0,j,k;$(g,function(a){var c=a.children;c&&c.length?(a.x=Q(c),a.y=P(c)):(a.x=h?i+=b(a,h):0,a.y=0,h=a)});var l=R(g),m=S(g),n=l.x-b(l,m)/2,o=m.x+b(m,l)/2;return $(g,function(a){a.x=(a.x-n)/(o-n)*c[0],a.y=(1-a.y/g.y)*c[1]}),f}var a=d3.layout.hierarchy().sort(null).value(null),b=T,c=[1,1];return d.separation=function(a){return arguments.length?(b=a,d):b},d.size=function(a){return arguments.length?(c=a,d):c},z(d,a)},d3.layout.tree=function(){function d(d,e){function h(a,c){var d=a.children,e=a._tree;if(d&&(f=d.length)){var f,g=d[0],i,k=g,l,m=-1;while(++m<f)l=d[m],h(l,i),k=j(l,i,k),i=l;_(a);var n=.5*(g._tree.prelim+l._tree.prelim);c?(e.prelim=c._tree.prelim+b(a,c),e.mod=e.prelim-n):e.prelim=n}else c&&(e.prelim=c._tree.prelim+b(a,c))}function i(a,b){a.x=a._tree.prelim+b;var c=a.children;if(c&&(e=c.length)){var d=-1,e;b+=a._tree.mod;while(++d<e)i(c[d],b)}}function j(a,c,d){if(c){var e=a,f=a,g=c,h=a.parent.children[0],i=e._tree.mod,j=f._tree.mod,k=g._tree.mod,l=h._tree.mod,m;while(g=V(g),e=U(e),g&&e)h=U(h),f=V(f),f._tree.ancestor=a,m=g._tree.prelim+k-e._tree.prelim-i+b(g,e),m>0&&(ba(bb(g,a,d),a,m),i+=m,j+=m),k+=g._tree.mod,i+=e._tree.mod,l+=h._tree.mod,j+=f._tree.mod;g&&!V(f)&&(f._tree.thread=g,f._tree.mod+=k-j),e&&!U(h)&&(h._tree.thread=e,h._tree.mod+=i-l,d=a)}return d}var f=a.call(this,d,e),g=f[0];$(g,function(a,b){a._tree={ancestor:a,prelim:0,mod:0,change:0,shift:0,number:b?b._tree.number+1:0}}),h(g),i(g,-g._tree.prelim);var k=W(g,Y),l=W(g,X),m=W(g,Z),n=k.x-b(k,l)/2,o=l.x+b(l,k)/2,p=m.depth||1;return $(g,function(a){a.x=(a.x-n)/(o-n)*c[0],a.y=a.depth/p*c[1],delete a._tree}),f}var a=d3.layout.hierarchy().sort(null).value(null),b=T,c=[1,1];return d.separation=function(a){return arguments.length?(b=a,d):b},d.size=function(a){return arguments.length?(c=a,d):c},z(d,a)},d3.layout.treemap=function(){function i(a,b){var c=-1,d=a.length,e,f;while(++c<d)f=(e=a[c]).value*(b<0?0:b),e.area=isNaN(f)||f<=0?0:f}function j(a){var b=a.children;if(b&&b.length){var c=e(a),d=[],f=b.slice(),g,h=Infinity,k,n=Math.min(c.dx,c.dy),o;i(f,c.dx*c.dy/a.value),d.area=0;while((o=f.length)>0)d.push(g=f[o-1]),d.area+=g.area,(k=l(d,n))<=h?(f.pop(),h=k):(d.area-=d.pop().area,m(d,n,c,!1),n=Math.min(c.dx,c.dy),d.length=d.area=0,h=Infinity);d.length&&(m(d,n,c,!0),d.length=d.area=0),b.forEach(j)}}function k(a){var b=a.children;if(b&&b.length){var c=e(a),d=b.slice(),f,g=[];i(d,c.dx*c.dy/a.value),g.area=0;while(f=d.pop())g.push(f),g.area+=f.area,f.z!=null&&(m(g,f.z?c.dx:c.dy,c,!d.length),g.length=g.area=0);b.forEach(k)}}function l(a,b){var c=a.area,d,e=0,f=Infinity,g=-1,i=a.length;while(++g<i){if(!(d=a[g].area))continue;d<f&&(f=d),d>e&&(e=d)}return c*=c,b*=b,c?Math.max(b*e*h/c,c/(b*f*h)):Infinity}function m(a,c,d,e){var f=-1,g=a.length,h=d.x,i=d.y,j=c?b(a.area/c):0,k;if(c==d.dx){if(e||j>d.dy)j=j?d.dy:0;while(++f<g)k=a[f],k.x=h,k.y=i,k.dy=j,h+=k.dx=j?b(k.area/j):0;k.z=!0,k.dx+=d.x+d.dx-h,d.y+=j,d.dy-=j}else{if(e||j>d.dx)j=j?d.dx:0;while(++f<g)k=a[f],k.x=h,k.y=i,k.dx=j,i+=k.dy=j?b(k.area/j):0;k.z=!1,k.dy+=d.y+d.dy-i,d.x+=j,d.dx-=j}}function n(b){var d=g||a(b),e=d[0];return e.x=0,e.y=0,e.dx=c[0],e.dy=c[1],g&&a.revalue(e),i([e],e.dx*e.dy/e.value),(g?k:j)(e),f&&(g=d),d}var a=d3.layout.hierarchy(),b=Math.round,c=[1,1],d=null,e=bc,f=!1,g,h=.5*(1+Math.sqrt(5));return n.size=function(a){return arguments.length?(c=a,n):c},n.padding=function(a){function b(b){var c=a.call(n,b,b.depth);return c==null?bc(b):bd(b,typeof c=="number"?[c,c,c,c]:c)}function c(b){return bd(b,a)}if(!arguments.length)return d;var f;return e=(d=a)==null?bc:(f=typeof a)==="function"?b:f==="number"?(a=[a,a,a,a],c):c,n},n.round=function(a){return arguments.length?(b=a?Math.round:Number,n):b!=Number},n.sticky=function(a){return arguments.length?(f=a,g=null,n):f},n.ratio=function(a){return arguments.length?(h=a,n):h},z(n,a)}})();
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/d3/d3.min.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,2 @@
+(function(){function e(a){var b=-1,c=a.length,d=[];while(++b<c)d.push(a[b]);return d}function f(a){return Array.prototype.slice.call(a)}function i(){return this}function j(a){return a!=null&&!isNaN(a)}function k(a){return a.length}function l(a){return a==null}function m(a){return a.replace(/(^\s+)|(\s+$)/g,"").replace(/\s+/g," ")}function o(){}function p(){function c(){var b=a,c=-1,d=b.length,e;while(++c<d)(e=b[c])._on&&e.apply(this,arguments)}var a=[],b={};return c.on=function(d,e){var f,g;if(f=b[d])f._on=!1,a=a.slice(0,g=a.indexOf(f)).concat(a.slice(g+1)),delete b[d];return e&&(e._on=!0,a.push(e),b[d]=e),c},c}function s(a,b){return b-(a?1+Math.floor(Math.log(a+Math.pow(10,1+Math.floor(Math.log(a)/Math.LN10)-b))/Math.LN10):1)}function t(a){return a+""}function u(a){var b=a.lastIndexOf("."),c=b>=0?a.substring(b):(b=a.length,""),d=[];while(b>0)d.push(a.substring(b-=3,b+3));return d.reverse().join(",")+c}function w(a,b){return{scale:Math.pow(10,(8-b)*3),symbol:a}}function B(a){return function(b){return b<=0?0:b>=1?1:a(b)}}function C(a){return function(b){return 1-a(1-b)}}function D(a){return function(b){return.5*(b<.5?a(2*b):2-a(2-2*b))}}function E(a){return a}function F(a){return function(b){return Math.pow(b,a)}}function G(a){return 1-Math.cos(a*Math.PI/2)}function H(a){return Math.pow(2,10*(a-1))}function I(a){return 1-Math.sqrt(1-a*a)}function J(a,b){var c;return arguments.length<2&&(b=.45),arguments.length<1?(a=1,c=b/4):c=b/(2*Math.PI)*Math.asin(1/a),function(d){return 1+a*Math.pow(2,10*-d)*Math.sin((d-c)*2*Math.PI/b)}}function K(a){return a||(a=1.70158),function(b){return b*b*((a+1)*b-a)}}function L(a){return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375}function M(){d3.event.stopPropagation(),d3.event.preventDefault()}function O(a){return a=="transform"?d3.interpolateTransform:d3.interpolate}function P(a,b){return b=b-(a=+a)?1/(b-a):0,function(c){return(c-a)*b}}function Q(a,b){return b=b-(a=+a)?1/(b-a):0,function(c){return Math.max(0,Math.min(1,(c-a)*b))}}function R(a,b,c){return new S(a,b,c)}function S(a,b,c){this.r=a,this.g=b,this.b=c}function T(a){return a<16?"0"+Math.max(0,a).toString(16):Math.min(255,a).toString(16)}function U(a,b,c){var d=0,e=0,f=0,g,h,i;g=/([a-z]+)\((.*)\)/i.exec(a);if(g){h=g[2].split(",");switch(g[1]){case"hsl":return c(parseFloat(h[0]),parseFloat(h[1])/100,parseFloat(h[2])/100);case"rgb":return b(W(h[0]),W(h[1]),W(h[2]))}}return(i=X[a])?b(i.r,i.g,i.b):(a!=null&&a.charAt(0)==="#"&&(a.length===4?(d=a.charAt(1),d+=d,e=a.charAt(2),e+=e,f=a.charAt(3),f+=f):a.length===7&&(d=a.substring(1,3),e=a.substring(3,5),f=a.substring(5,7)),d=parseInt(d,16),e=parseInt(e,16),f=parseInt(f,16)),b(d,e,f))}function V(a,b,c){var d=Math.min(a/=255,b/=255,c/=255),e=Math.max(a,b,c),f=e-d,g,h,i=(e+d)/2;return f?(h=i<.5?f/(e+d):f/(2-e-d),a==e?g=(b-c)/f+(b<c?6:0):b==e?g=(c-a)/f+2:g=(a-b)/f+4,g*=60):h=g=0,Z(g,h,i)}function W(a){var b=parseFloat(a);return a.charAt(a.length-1)==="%"?Math.round(b*2.55):b}function Z(a,b,c){return new $(a,b,c)}function $(a,b,c){this.h=a,this.s=b,this.l=c}function _(a,b,c){function f(a){return a>360?a-=360:a<0&&(a+=360),a<60?d+(e-d)*a/60:a<180?e:a<240?d+(e-d)*(240-a)/60:d}function g(a){return Math.round(f(a)*255)}var d,e;return a%=360,a<0&&(a+=360),b=b<0?0:b>1?1:b,c=c<0?0:c>1?1:c,e=c<=.5?c*(1+b):c+b-c*b,d=2*c-e,R(g(a+120),g(a),g(a-120))}function ba(a){return h(a,bd),a}function be(a){return function(){return bb(a,this)}}function bf(a){return function(){return bc(a,this)}}function bh(a,b){function f(){if(b=this.classList)return b.add(a);var b=this.className,d=b.baseVal!=null,e=d?b.baseVal:b;c.lastIndex=0,c.test(e)||(e=m(e+" "+a),d?b.baseVal=e:this.className=e)}function g(){if(b=this.classList)return b.remove(a);var b=this.className,d=b.baseVal!=null,e=d?b.baseVal:b;e=m(e.replace(c," ")),d?b.baseVal=e:this.className=e}function h(){(b.apply(this,arguments)?f:g).call(this)}var c=new RegExp("(^|\\s+)"+d3.requote(a)+"(\\s+|$)","g");if(arguments.length<2){var d=this.node();if(e=d.classList)return e.contains(a);var e=d.className;return c.lastIndex=0,c.test(e.baseVal!=null?e.baseVal:e)}return this.each(typeof b=="function"?h:b?f:g)}function bi(a){return{__data__:a}}function bj(a){return arguments.length||(a=d3.ascending),function(b,c){return a(b&&b.__data__,c&&c.__data__)}}function bl(a){return h(a,bm),a}function bn(a,b,c){h(a,br);var d={},e=d3.dispatch("start","end"),f=bu;return a.id=b,a.time=c,a.tween=function(b,c){return arguments.length<2?d[b]:(c==null?delete d[b]:d[b]=c,a)},a.ease=function(b){return arguments.length?(f=typeof b=="function"?b:d3.ease.apply(d3,arguments),a):f},a.each=function(b,c){return arguments.length<2?bv.call(a,b):(e.on(b,c),a)},d3.timer(function(g){return a.each(function(h,i,j){function p(a){if(o.active>b)return r();o.active=b;for(var f in d)(f=d[f].call(l,h,i))&&k.push(f);return e.start.call(l,h,i),q(a)||d3.timer(q,0,c),1}function q(a){if(o.active!==b)return r();var c=(a-m)/n,d=f(c),g=k.length;while(g>0)k[--g].call(l,d);if(c>=1)return r(),bt=b,e.end.call(l,h,i),bt=0,1}function r(){return--o.count||delete l.__transition__,1}var k=[],l=this,m=a[j][i].delay,n=a[j][i].duration,o=l.__transition__||(l.__transition__={active:0,count:0});++o.count,m<=g?p(g):d3.timer(p,m,c)}),1},0,c),a}function bp(a,b,c){return c!=""&&bo}function bq(a,b){function d(a,d,e){var f=b.call(this,a,d);return f==null?e!=""&&bo:e!=f&&c(e,f)}function e(a,d,e){return e!=b&&c(e,b)}var c=O(a);return typeof b=="function"?d:b==null?bp:(b+="",e)}function bv(a){for(var b=0,c=this.length;b<c;b++)for(var d=this[b],e=0,f=d.length;e<f;e++){var g=d[e];g&&a.call(g=g.node,g.__data__,e,b)}return this}function bz(){var a,b=Date.now(),c=bw;while(c)a=b-c.then,a>=c.delay&&(c.flush=c.callback(a)),c=c.next;var d=bA()-b;d>24?(isFinite(d)&&(clearTimeout(by),by=setTimeout(bz,d)),bx=0):(bx=1,bB(bz))}function bA(){var a=null,b=bw,c=Infinity;while(b)b.flush?b=a?a.next=b.next:bw=b.next:(c=Math.min(c,b.then+b.delay),b=(a=b).next);return c}function bC(a){var b=[a.a,a.b],c=[a.c,a.d],d=bE(b),e=bD(b,c),f=bE(bF(c,b,-e));this.translate=[a.e,a.f],this.rotate=Math.atan2(a.b,a.a)*bH,this.scale=[d,f||0],this.skew=f?e/f*bH:0}function bD(a,b){return a[0]*b[0]+a[1]*b[1]}function bE(a){var b=Math.sqrt(bD(a,a));return a[0]/=b,a[1]/=b,b}function bF(a,b,c){return a[0]+=c*b[0],a[1]+=c*b[1],a}function bI(){}function bJ(a){var b=a[0],c=a[a.length-1];return b<c?[b,c]:[c,b]}function bK(a,b){var c=0,d=a.length-1,e=a[c],f=a[d],g;f<e&&(g=c,c=d,d=g,g=e,e=f,f=g);if(g=f-e)b=b(g),a[c]=b.floor(e),a[d]=b.ceil(f);return a}function bL(){return Math}function bM(a,b,c,d){function g(){var g=a.length==2?bS:bT,i=d?Q:P;return e=g(a,b,i,c),f=g(b,a,i,d3.interpolate),h}function h(a){return e(a)}var e,f;return h.invert=function(a){return f(a)},h.domain=function(b){return arguments.length?(a=b.map(Number),g()):a},h.range=function(a){return arguments.length?(b=a,g()):b},h.rangeRound=function(a){return h.range(a).interpolate(d3.interpolateRound)},h.clamp=function(a){return arguments.length?(d=a,g()):d},h.interpolate=function(a){return arguments.length?(c=a,g()):c},h.ticks=function(b){return bQ(a,b)},h.tickFormat=function(b){return bR(a,b)},h.nice=function(){return bK(a,bO),g()},h.copy=function(){return bM(a,b,c,d)},g()}function bN(a,b){return a.range=d3.rebind(a,b.range),a.rangeRound=d3.rebind(a,b.rangeRound),a.interpolate=d3.rebind(a,b.interpolate),a.clamp=d3.rebind(a,b.clamp),a}function bO(a){return a=Math.pow(10,Math.round(Math.log(a)/Math.LN10)-1),{floor:function(b){return Math.floor(b/a)*a},ceil:function(b){return Math.ceil(b/a)*a}}}function bP(a,b){var c=bJ(a),d=c[1]-c[0],e=Math.pow(10,Math.floor(Math.log(d/b)/Math.LN10)),f=b/d*e;return f<=.15?e*=10:f<=.35?e*=5:f<=.75&&(e*=2),c[0]=Math.ceil(c[0]/e)*e,c[1]=Math.floor(c[1]/e)*e+e*.5,c[2]=e,c}function bQ(a,b){return d3.range.apply(d3,bP(a,b))}function bR(a,b){return d3.format(",."+Math.max(0,-Math.floor(Math.log(bP(a,b)[2])/Math.LN10+.01))+"f")}function bS(a,b,c,d){var e=c(a[0],a[1]),f=d(b[0],b[1]);return function(a){return f(e(a))}}function bT(a,b,c,d){var e=[],f=[],g=0,h=a.length;while(++g<h)e.push(c(a[g-1],a[g])),f.push(d(b[g-1],b[g]));return function(b){var c=d3.bisect(a,b,1,a.length-1)-1;return f[c](e[c](b))}}function bU(a,b){function d(c){return a(b(c))}var c=b.pow;return d.invert=function(b){return c(a.invert(b))},d.domain=function(e){return arguments.length?(b=e[0]<0?bX:bW,c=b.pow,a.domain(e.map(b)),d):a.domain().map(c)},d.nice=function(){return a.domain(bK(a.domain(),bL)),d},d.ticks=function(){var d=bJ(a.domain()),e=[];if(d.every(isFinite)){var f=Math.floor(d[0]),g=Math.ceil(d[1]),h=Math.round(c(d[0])),i=Math.round(c(d[1]));if(b===bX){e.push(c(f));for(;f++<g;)for(var j=9;j>0;j--)e.push(c(f)*j)}else{for(;f<g;f++)for(var j=1;j<10;j++)e.push(c(f)*j);e.push(c(f))}for(f=0;e[f]<h;f++);for(g=e.length;e[g-1]>i;g--);e=e.slice(f,g)}return e},d.tickFormat=function(a,e){arguments.length<2&&(e=bV);if(arguments.length<1)return e;var f=a/d.ticks().length,g=b===bX?(h=-1e-15,Math.floor):(h=1e-15,Math.ceil),h;return function(a){return a/c(g(b(a)+h))<f?e(a):""}},d.copy=function(){return bU(a.copy(),b)},bN(d,a)}function bW(a){return Math.log(a)/Math.LN10}function bX(a){return-Math.log(-a)/Math.LN10}function bY(a,b){function e(b){return a(c(b))}var c=bZ(b),d=bZ(1/b);return e.invert=function(b){return d(a.invert(b))},e.domain=function(b){return arguments.length?(a.domain(b.map(c)),e):a.domain().map(d)},e.ticks=function(a){return bQ(e.domain(),a)},e.tickFormat=function(a){return bR(e.domain(),a)},e.nice=function(){return e.domain(bK(e.domain(),bO))},e.exponent=function(a){if(!arguments.length)return b;var f=e.domain();return c=bZ(b=a),d=bZ(1/b),e.domain(f)},e.copy=function(){return bY(a.copy(),b)},bN(e,a)}function bZ(a){return function(b){return b<0?-Math.pow(-b,a):Math.pow(b,a)}}function b$(a,b){function f(b){return d[((c[b]||(c[b]=a.push(b)))-1)%d.length]}function g(b,c){return d3.range(a.length).map(function(a){return b+c*a})}var c,d,e;return f.domain=function(d){if(!arguments.length)return a;a=[],c={};var e=-1,g=d.length,h;while(++e<g)c[h=d[e]]||(c[h]=a.push(h));return f[b.t](b.x,b.p)},f.range=function(a){return arguments.length?(d=a,e=0,b={t:"range",x:a},f):d},f.rangePoints=function(c,h){arguments.length<2&&(h=0);var i=c[0],j=c[1],k=(j-i)/(a.length-1+h);return d=g(a.length<2?(i+j)/2:i+k*h/2,k),e=0,b={t:"rangePoints",x:c,p:h},f},f.rangeBands=function(c,h){arguments.length<2&&(h=0);var i=c[0],j=c[1],k=(j-i)/(a.length+h);return d=g(i+k*h,k),e=k*(1-h),b={t:"rangeBands",x:c,p:h},f},f.rangeRoundBands=function(c,h){arguments.length<2&&(h=0);var i=c[0],j=c[1],k=Math.floor((j-i)/(a.length+h));return d=g(i+Math.round((j-i-(a.length-h)*k)/2),k),e=Math.round(k*(1-h)),b={t:"rangeRoundBands",x:c,p:h},f},f.rangeBand=function(){return e},f.copy=function(){return b$(a,b)},f.domain(a)}function cd(a,b){function d(){var d=0,f=a.length,g=b.length;c=[];while(++d<g)c[d-1]=d3.quantile(a,d/g);return e}function e(a){return isNaN(a=+a)?NaN:b[d3.bisect(c,a)]}var c;return e.domain=function(b){return arguments.length?(a=b.filter(function(a){return!isNaN(a)}).sort(d3.ascending),d()):a},e.range=function(a){return arguments.length?(b=a,d()):b},e.quantiles=function(){return c},e.copy=function(){return cd(a,b)},d()}function ce(a,b,c){function f(b){return c[Math.max(0,Math.min(e,Math.floor(d*(b-a))))]}function g(){return d=c.length/(b-a),e=c.length-1,f}var d,e;return f.domain=function(c){return arguments.length?(a=+c[0],b=+c[c.length-1],g()):[a,b]},f.range=function(a){return arguments.length?(c=a,g()):c},f.copy=function(){return ce(a,b,c)},g()}function ch(a){return a.innerRadius}function ci(a){return a.outerRadius}function cj(a){return a.startAngle}function ck(a){return a.endAngle}function cl(a){function g(d){return d.length<1?null:"M"+e(a(cm(this,d,b,c)),f)}var b=cn,c=co,d="linear",e=cp[d],f=.7;return g.x=function(a){return arguments.length?(b=a,g):b},g.y=function(a){return arguments.length?(c=a,g):c},g.interpolate=function(a){return arguments.length?(e=cp[d=a],g):d},g.tension=function(a){return arguments.length?(f=a,g):f},g}function cm(a,b,c,d){var e=[],f=-1,g=b.length,h=typeof c=="function",i=typeof d=="function",j;if(h&&i)while(++f<g)e.push([c.call(a,j=b[f],f),d.call(a,j,f)]);else if(h)while(++f<g)e.push([c.call(a,b[f],f),d]);else if(i)while(++f<g)e.push([c,d.call(a,b[f],f)]);else while(++f<g)e.push([c,d]);return e}function cn(a){return a[0]}function co(a){return a[1]}function cq(a){var b=0,c=a.length,d=a[0],e=[d[0],",",d[1]];while(++b<c)e.push("L",(d=a[b])[0],",",d[1]);return e.join("")}function cr(a){var b=0,c=a.length,d=a[0],e=[d[0],",",d[1]];while(++b<c)e.push("V",(d=a[b])[1],"H",d[0]);return e.join("")}function cs(a){var b=0,c=a.length,d=a[0],e=[d[0],",",d[1]];while(++b<c)e.push("H",(d=a[b])[0],"V",d[1]);return e.join("")}function ct(a,b){return a.length<4?cq(a):a[1]+cw(a.slice(1,a.length-1),cx(a,b))}function cu(a,b){return a.length<3?cq(a):a[0]+cw((a.push(a[0]),a),cx([a[a.length-2]].concat(a,[a[1]]),b))}function cv(a,b,c){return a.length<3?cq(a):a[0]+cw(a,cx(a,b))}function cw(a,b){if(b.length<1||a.length!=b.length&&a.length!=b.length+2)return cq(a);var c=a.length!=b.length,d="",e=a[0],f=a[1],g=b[0],h=g,i=1;c&&(d+="Q"+(f[0]-g[0]*2/3)+","+(f[1]-g[1]*2/3)+","+f[0]+","+f[1],e=a[1],i=2);if(b.length>1){h=b[1],f=a[i],i++,d+="C"+(e[0]+g[0])+","+(e[1]+g[1])+","+(f[0]-h[0])+","+(f[1]-h[1])+","+f[0]+","+f[1];for(var j=2;j<b.length;j++,i++)f=a[i],h=b[j],d+="S"+(f[0]-h[0])+","+(f[1]-h[1])+","+f[0]+","+f[1]}if(c){var k=a[i];d+="Q"+(f[0]+h[0]*2/3)+","+(f[1]+h[1]*2/3)+","+k[0]+","+k[1]}return d}function cx(a,b){var c=[],d=(1-b)/2,e,f=a[0],g=a[1],h=1,i=a.length;while(++h<i)e=f,f=g,g=a[h],c.push([d*(g[0]-e[0]),d*(g[1]-e[1])]);return c}function cy(a){if(a.length<3)return cq(a);var b=1,c=a.length,d=a[0],e=d[0],f=d[1],g=[e,e,e,(d=a[1])[0]],h=[f,f,f,d[1]],i=[e,",",f];cG(i,g,h);while(++b<c)d=a[b],g.shift(),g.push(d[0]),h.shift(),h.push(d[1]),cG(i,g,h);b=-1;while(++b<2)g.shift(),g.push(d[0]),h.shift(),h.push(d[1]),cG(i,g,h);return i.join("")}function cz(a){if(a.length<4)return cq(a);var b=[],c=-1,d=a.length,e,f=[0],g=[0];while(++c<3)e=a[c],f.push(e[0]),g.push(e[1]);b.push(cC(cF,f)+","+cC(cF,g)),--c;while(++c<d)e=a[c],f.shift(),f.push(e[0]),g.shift(),g.push(e[1]),cG(b,f,g);return b.join("")}function cA(a){var b,c=-1,d=a.length,e=d+4,f,g=[],h=[];while(++c<4)f=a[c%d],g.push(f[0]),h.push(f[1]);b=[cC(cF,g),",",cC(cF,h)],--c;while(++c<e)f=a[c%d],g.shift(),g.push(f[0]),h.shift(),h.push(f[1]),cG(b,g,h);return b.join("")}function cB(a,b){var c=a.length-1,d=a[0][0],e=a[0][1],f=a[c][0]-d,g=a[c][1]-e,h=-1,i,j;while(++h<=c)i=a[h],j=h/c,i[0]=b*i[0]+(1-b)*(d+j*f),i[1]=b*i[1]+(1-b)*(e+j*g);return cy(a)}function cC(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]}function cG(a,b,c){a.push("C",cC(cD,b),",",cC(cD,c),",",cC(cE,b),",",cC(cE,c),",",cC(cF,b),",",cC(cF,c))}function cH(a,b){return(b[1]-a[1])/(b[0]-a[0])}function cI(a){var b=0,c=a.length-1,d=[],e=a[0],f=a[1],g=d[0]=cH(e,f);while(++b<c)d[b]=g+(g=cH(e=f,f=a[b+1]));return d[b]=g,d}function cJ(a){var b=[],c,d,e,f,g=cI(a),h=-1,i=a.length-1;while(++h<i)c=cH(a[h],a[h+1]),Math.abs(c)<1e-6?g[h]=g[h+1]=0:(d=g[h]/c,e=g[h+1]/c,f=d*d+e*e,f>9&&(f=c*3/Math.sqrt(f),g[h]=f*d,g[h+1]=f*e));h=-1;while(++h<=i)f=(a[Math.min(i,h+1)][0]-a[Math.max(0,h-1)][0])/(6*(1+g[h]*g[h])),b.push([f||0,g[h]*f||0]);return b}function cK(a){return a.length<3?cq(a):a[0]+cw(a,cJ(a))}function cL(a){var b,c=-1,d=a.length,e,f;while(++c<d)b=a[c],e=b[0],f=b[1]+cf,b[0]=e*Math.cos(f),b[1]=e*Math.sin(f);return a}function cM(a){function j(f){if(f.length<1)return null;var j=cm(this,f,b,d),k=cm(this,f,b===c?cN(j):c,d===e?cO(j):e);return"M"+g(a(k),i)+"L"+h(a(j.reverse()),i)+"Z"}var b=cn,c=cn,d=0,e=co,f,g,h,i=.7;return j.x=function(a){return arguments.length?(b=c=a,j):c},j.x0=function(a){return arguments.length?(b=a,j):b},j.x1=function(a){return arguments.length?(c=a,j):c},j.y=function(a){return arguments.length?(d=e=a,j):e},j.y0=function(a){return arguments.length?(d=a,j):d},j.y1=function(a){return arguments.length?(e=a,j):e},j.interpolate=function(a){return arguments.length?(g=cp[f=a],h=g.reverse||g,j):f},j.tension=function(a){return arguments.length?(i=a,j):i},j.interpolate("linear")}function cN(a){return function(b,c){return a[c][0]}}function cO(a){return function(b,c){return a[c][1]}}function cP(a){return a.source}function cQ(a){return a.target}function cR(a){return a.radius}function cS(a){return a.startAngle}function cT(a){return a.endAngle}function cU(a){return[a.x,a.y]}function cV(a){return function(){var b=a.apply(this,arguments),c=b[0],d=b[1]+cf;return[c*Math.cos(d),c*Math.sin(d)]}}function cX(a,b){var c=(a.ownerSVGElement||a).createSVGPoint();if(cW<0&&(window.scrollX||window.scrollY)){var d=d3.select(document.body).append("svg:svg").style("position","absolute").style("top",0).style("left",0),e=d[0][0].getScreenCTM();cW=!e.f&&!e.e,d.remove()}return cW?(c.x=b.pageX,c.y=b.pageY):(c.x=b.clientX,c.y=b.clientY),c=c.matrixTransform(a.getScreenCTM().inverse()),[c.x,c.y]}function cY(){return 64}function cZ(){return"circle"}function db(a,b){a.attr("transform",function(a){return"translate("+b(a)+",0)"})}function dc(a,b){a.attr("transform",function(a){return"translate(0,"+b(a)+")"})}function dd(a,b,c){e=[];if(c&&b.length>1){var d=bJ(a.domain()),e,f=-1,g=b.length,h=(b[1]-b[0])/++c,i,j;while(++f<g)for(i=c;--i>0;)(j=+b[f]-i*h)>=d[0]&&e.push(j);for(--f,i=0;++i<c&&(j=+b[f]+i*h)<d[1];)e.push(j)}return e}function dp(a,b){a.select(".extent").attr("x",b[0][0]),a.selectAll(".n,.s,.w,.nw,.sw").attr("x",b[0][0]-2),a.selectAll(".e,.ne,.se").attr("x",b[1][0]-3),a.selectAll(".extent,.n,.s").attr("width",b[1][0]-b[0][0])}function dq(a,b){a.select(".extent").attr("y",b[0][1]),a.selectAll(".n,.e,.w,.nw,.ne").attr("y",b[0][1]-3),a.selectAll(".s,.se,.sw").attr("y",b[1][1]-4),a.selectAll(".extent,.e,.w").attr("height",b[1][1]-b[0][1])}function dr(){d3.event.keyCode==32&&dg&&!dk&&(dm=null,dn[0]-=dj[1][0],dn[1]-=dj[1][1],dk=2,M())}function ds(){d3.event.keyCode==32&&dk==2&&(dn[0]+=dj[1][0],dn[1]+=dj[1][1],dk=0,M())}function dt(){if(dn){var a=d3.svg.mouse(dg),b=d3.select(dg);dk||(d3.event.altKey?(dm||(dm=[(dj[0][0]+dj[1][0])/2,(dj[0][1]+dj[1][1])/2]),dn[0]=dj[+(a[0]<dm[0])][0],dn[1]=dj[+(a[1]<dm[1])][1]):dm=null),dh&&(du(a,dh,0),dp(b,dj)),di&&(du(a,di,1),dq(b,dj)),df("brush")}}function du(a,b,c){var d=bJ(b.range()),e=dn[c],f=dj[1][c]-dj[0][c],g,h;dk&&(d[0]-=e,d[1]-=f+e),g=Math.max(d[0],Math.min(d[1],a[c])),dk?h=(g+=e)+f:(dm&&(e=Math.max(d[0],Math.min(d[1],2*dm[c]-g))),e<g?(h=g,g=e):h=e),dj[0][c]=g,dj[1][c]=h}function dv(){dn&&(dt(),d3.select(dg).selectAll(".resize").style("pointer-events",de.empty()?"none":"all"),df("brushend"),de=df=dg=dh=di=dj=dk=dl=dm=dn=null,M())}function dE(a){var b=d3.event,c=dz.parentNode,d=0,e=0;c&&(c=dF(c),d=c[0]-dB[0],e=c[1]-dB[1],dB=c,dC|=d|e);try{d3.event={dx:d,dy:e},dx[a].apply(dz,dA)}finally{d3.event=b}b.preventDefault()}function dF(a,b){var c=d3.event.changedTouches;return c?d3.svg.touches(a,c)[0]:d3.svg.mouse(a)}function dG(){if(!dz)return;var a=dz.parentNode;if(!a)return dH();dE("drag"),M()}function dH(){if(!dz)return;dE("dragend"),dz=null,dC&&dy===d3.event.target&&(dD=!0,M())}function dI(){dD&&dy===d3.event.target&&(M(),dD=!1,dy=null)}function dW(a){return[a[0]-dO[0],a[1]-dO[1],dO[2]]}function dX(){dJ||(dJ=d3.select("body").append("div").style("visibility","hidden").style("top",0).style("height",0).style("width",0).style("overflow-y","scroll").append("div").style("height","2000px").node().parentNode);var a=d3.event,b;try{dJ.scrollTop=1e3,dJ.dispatchEvent(a),b=1e3-dJ.scrollTop}catch(c){b=a.wheelDelta||-a.detail*5}return b*.005}function dY(){var a=d3.svg.touches(dS),b=-1,c=a.length,d;while(++b<c)dM[(d=a[b]).identifier]=dW(d);return a}function dZ(){var a=d3.svg.touches(dS);switch(a.length){case 1:var b=a[0];eb(dO[2],b,dM[b.identifier]);break;case 2:var c=a[0],d=a[1],e=[(c[0]+d[0])/2,(c[1]+d[1])/2],f=dM[c.identifier],g=dM[d.identifier],h=[(f[0]+g[0])/2,(f[1]+g[1])/2,f[2]];eb(Math.log(d3.event.scale)/Math.LN2+f[2],e,h)}}function d$(){dL=null,dK&&(dU=!0,eb(dO[2],d3.svg.mouse(dS),dK))}function d_(){dK&&(dU&&dR===d3.event.target&&(dV=!0),d$(),dK=null)}function ea(){dV&&dR===d3.event.target&&(d3.event.stopPropagation(),d3.event.preventDefault(),dV=!1,dR=null)}function eb(a,b,c){function l(a,b,c){a.domain(a.range().map(function(f){return a.invert((f-c)*d/e+b)}))}a=ed(a,2);var d=Math.pow(2,dO[2]),e=Math.pow(2,a),f=Math.pow(2,(dO[2]=a)-c[2]),g=dO[0],h=dO[1],i=dO[0]=ed(b[0]-c[0]*f,0,e),j=dO[1]=ed(b[1]-c[1]*f,1,e),k=d3.event;d3.event={scale:e,translate:[i,j],transform:function(a,b){a&&l(a,g,i),b&&l(b,h,j)}};try{dQ.apply(dS,dT)}finally{d3.event=k}k.preventDefault()}function ed(a,b,c){var d=dP[b],e=d[0],f=d[1];return arguments.length===3?Math.max(f*(f===Infinity?-Infinity:1/c-1),Math.min(e===-Infinity?Infinity:e,a/c))*c:Math.max(e,Math.min(f,a))}Date.now||(Date.now=function(){return+(new Date)});try{document.createElement("div").style.setProperty("opacity",0,"")}catch(a){var b=CSSStyleDeclaration.prototype,c=b.setProperty;b.setProperty=function(a,b,d){c.call(this,a,b+"",d)}}d3={version:"2.5.0"};var d=f;try{d(document.documentElement.childNodes)[0].nodeType}catch(g){d=e}var h=[].__proto__?function(a,b){a.__proto__=b}:function(a,b){for(var c in b)a[c]=b[c]};d3.functor=function(a){return typeof a=="function"?a:function(){return a}},d3.rebind=function(a,b){return function(){var c=b.apply(a,arguments);return arguments.length?a:c}},d3.ascending=function(a,b){return a<b?-1:a>b?1:a>=b?0:NaN},d3.descending=function(a,b){return b<a?-1:b>a?1:b>=a?0:NaN},d3.mean=function(a,b){var c=a.length,d,e=0,f=-1,g=0;if(arguments.length===1)while(++f<c)j(d=a[f])&&(e+=(d-e)/++g);else while(++f<c)j(d=b.call(a,a[f],f))&&(e+=(d-e)/++g);return g?e:undefined},d3.median=function(a,b){return arguments.length>1&&(a=a.map(b)),a=a.filter(j),a.length?d3.quantile(a.sort(d3.ascending),.5):undefined},d3.min=function(a,b){var c=-1,d=a.length,e,f;if(arguments.length===1){while(++c<d&&((e=a[c])==null||e!=e))e=undefined;while(++c<d)(f=a[c])!=null&&e>f&&(e=f)}else{while(++c<d&&((e=b.call(a,a[c],c))==null||e!=e))e=undefined;while(++c<d)(f=b.call(a,a[c],c))!=null&&e>f&&(e=f)}return e},d3.max=function(a,b){var c=-1,d=a.length,e,f;if(arguments.length===1){while(++c<d&&((e=a[c])==null||e!=e))e=undefined;while(++c<d)(f=a[c])!=null&&f>e&&(e=f)}else{while(++c<d&&((e=b.call(a,a[c],c))==null||e!=e))e=undefined;while(++c<d)(f=b.call(a,a[c],c))!=null&&f>e&&(e=f)}return e},d3.extent=function(a,b){var c=-1,d=a.length,e,f,g;if(arguments.length===1){while(++c<d&&((e=g=a[c])==null||e!=e))e=g=undefined;while(++c<d)(f=a[c])!=null&&(e>f&&(e=f),g<f&&(g=f))}else{while(++c<d&&((e=g=b.call(a,a[c],c))==null||e!=e))e=undefined;while(++c<d)(f=b.call(a,a[c],c))!=null&&(e>f&&(e=f),g<f&&(g=f))}return[e,g]},d3.random={normal:function(a,b){return arguments.length<2&&(b=1),arguments.length<1&&(a=0),function(){var c,d,e;do c=Math.random()*2-1,d=Math.random()*2-1,e=c*c+d*d;while(!e||e>1);return a+b*c*Math.sqrt(-2*Math.log(e)/e)}}},d3.sum=function(a,b){var c=0,d=a.length,e,f=-1;if(arguments.length===1)while(++f<d)isNaN(e=+a[f])||(c+=e);else while(++f<d)isNaN(e=+b.call(a,a[f],f))||(c+=e);return c},d3.quantile=function(a,b){var c=(a.length-1)*b+1,d=Math.floor(c),e=a[d-1],f=c-d;return f?e+f*(a[d]-e):e},d3.zip=function(){if(!(e=arguments.length))return[];for(var a=-1,b=d3.min(arguments,k),c=new Array(b);++a<b;)for(var d=-1,e,f=c[a]=new Array(e);++d<e;)f[d]=arguments[d][a];return c},d3.bisectLeft=function(a,b,c,d){arguments.length<3&&(c=0),arguments.length<4&&(d=a.length);while(c<d){var e=c+d>>1;a[e]<b?c=e+1:d=e}return c},d3.bisect=d3.bisectRight=function(a,b,c,d){arguments.length<3&&(c=0),arguments.length<4&&(d=a.length);while(c<d){var e=c+d>>1;b<a[e]?d=e:c=e+1}return c},d3.first=function(a,b){var c=0,d=a.length,e=a[0],f;arguments.length===1&&(b=d3.ascending);while(++c<d)b.call(a,e,f=a[c])>0&&(e=f);return e},d3.last=function(a,b){var c=0,d=a.length,e=a[0],f;arguments.length===1&&(b=d3.ascending);while(++c<d)b.call(a,e,f=a[c])<=0&&(e=f);return e},d3.nest=function(){function f(c,g){if(g>=b.length)return e?e.call(a,c):d?c.sort(d):c;var h=-1,i=c.length,j=b[g++],k,l,m={};while(++h<i)(k=j(l=c[h]))in m?m[k].push(l):m[k]=[l];for(k in m)m[k]=f(m[k],g);return m}function g(a,d){if(d>=b.length)return a;var e=[],f=c[d++],h;for(h in a)e.push({key:h,values:g(a[h],d)});return f&&e.sort(function(a,b){return f(a.key,b.key)}),e}var a={},b=[],c=[],d,e;return a.map=function(a){return f(a,0)},a.entries=function(a){return g(f(a,0),0)},a.key=function(c){return b.push(c),a},a.sortKeys=function(d){return c[b.length-1]=d,a},a.sortValues=function(b){return d=b,a},a.rollup=function(b){return e=b,a},a},d3.keys=function(a){var b=[];for(var c in a)b.push(c);return b},d3.values=function(a){var b=[];for(var c in a)b.push(a[c]);return b},d3.entries=function(a){var b=[];for(var c in a)b.push({key:c,value:a[c]});return b},d3.permute=function(a,b){var c=[],d=-1,e=b.length;while(++d<e)c[d]=a[b[d]];return c},d3.merge=function(a){return Array.prototype.concat.apply([],a)},d3.split=function(a,b){var c=[],d=[],e,f=-1,g=a.length;arguments.length<2&&(b=l);while(++f<g)b.call(d,e=a[f],f)?d=[]:(d.length||c.push(d),d.push(e));return c},d3.range=function(a,b,c){arguments.length<3&&(c=1,arguments.length<2&&(b=a,a=0));if((b-a)/c==Infinity)throw new Error("infinite range");var d=[],e=-1,f;if(c<0)while((f=a+c*++e)>b)d.push(f);else while((f=a+c*++e)<b)d.push(f);return d},d3.requote=function(a){return a.replace(n,"\\$&")};var n=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;d3.round=function(a,b){return b?Math.round(a*Math.pow(10,b))*Math.pow(10,-b):Math.round(a)},d3.xhr=function(a,b,c){var d=new XMLHttpRequest;arguments.length<3?c=b:b&&d.overrideMimeType&&d.overrideMimeType(b),d.open("GET",a,!0),d.onreadystatechange=function(){d.readyState===4&&c(d.status<300?d:null)},d.send(null)},d3.text=function(a,b,c){function d(a){c(a&&a.responseText)}arguments.length<3&&(c=b,b=null),d3.xhr(a,b,d)},d3.json=function(a,b){d3.text(a,"application/json",function(a){b(a?JSON.parse(a):null)})},d3.html=function(a,b){d3.text(a,"text/html",function(a){if(a!=null){var c=document.createRange();c.selectNode(document.body),a=c.createContextualFragment(a)}b(a)})},d3.xml=function(a,b,c){function d(a){c(a&&a.responseXML)}arguments.length<3&&(c=b,b=null),d3.xhr(a,b,d)},d3.ns={prefix:{svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},qualify:function(a){var b=a.indexOf(":");return b<0?a:{space:d3.ns.prefix[a.substring(0,b)],local:a.substring(b+1)}}},d3.dispatch=function(){var a=new o,b=-1,c=arguments.length;while(++b<c)a[arguments[b]]=p();return a},o.prototype.on=function(a,b){var c=a.indexOf("."),d="";c>0&&(d=a.substring(c+1),a=a.substring(0,c)),this[a].on(d,b)},d3.format=function(a){var b=q.exec(a),c=b[1]||" ",d=b[3]||"",e=b[5],f=+b[6],g=b[7],h=b[8],i=b[9],j=1,k="",l=!1;h&&(h=+h.substring(1)),e&&(c="0",g&&(f-=Math.floor((f-1)/4)));switch(i){case"n":g=!0,i="g";break;case"%":j=100,k="%",i="f";break;case"p":j=100,k="%",i="r";break;case"d":l=!0,h=0;break;case"s":j=-1,i="r"}return i=="r"&&!h&&(i="g"),i=r[i]||t,function(a){if(l&&a%1)return"";var b=a<0&&(a=-a)?"−":d;if(j<0){var m=d3.formatPrefix(a,h);a*=m.scale,k=m.symbol}else a*=j;a=i(a,h);if(e){var n=a.length+b.length;n<f&&(a=(new Array(f-n+1)).join(c)+a),g&&(a=u(a)),a=b+a}else{g&&(a=u(a)),a=b+a;var n=a.length;n<f&&(a=(new Array(f-n+1)).join(c)+a)}return a+k}};var q=/(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/,r={g:function(a,b){return a.toPrecision(b)},e:function(a,b){return a.toExponential(b)},f:function(a,b){return a.toFixed(b)},r:function(a,b){return d3.round(a,b=s(a,b)).toFixed(Math.max(0,Math.min(20,b)))}},v=["y","z","a","f","p","n","μ","m","","k","M","G","T","P","E","Z","Y"].map(w);d3.formatPrefix=function(a,b){var c=0;return a&&(a<0&&(a*=-1),b&&(a=d3.round(a,s(a,b))),c=1+Math.floor(1e-12+Math.log(a)/Math.LN10),c=Math.max(-24,Math.min(24,Math.floor((c<=0?c+1:c-1)/3)*3))),v[8+c/3]};var x=F(2),y=F(3),z={linear:function(){return E},poly:F,quad:function(){return x},cubic:function(){return y},sin:function(){return G},exp:function(){return H},circle:function(){return I},elastic:J,back:K,bounce:function(){return L}},A={"in":function(a){return a},out:C,"in-out":D,"out-in":function(a){return D(C(a))}};d3.ease=function(a){var b=a.indexOf("-"),c=b>=0?a.substring(0,b):a,d=b>=0?a.substring(b+1):"in";return B(A[d](z[c].apply(null,Array.prototype.slice.call(arguments,1))))},d3.event=null,d3.interpolate=function(a,b){var c=d3.interpolators.length,d;while(--c>=0&&!(d=d3.interpolators[c](a,b)));return d},d3.interpolateNumber=function(a,b){return b-=a,function(c){return a+b*c}},d3.interpolateRound=function(a,b){return b-=a,function(c){return Math.round(a+b*c)}},d3.interpolateString=function(a,b){var c,d,e,f=0,g=0,h=[],i=[],j,k;N.lastIndex=0;for(d=0;c=N.exec(b);++d)c.index&&h.push(b.substring(f,g=c.index)),i.push({i:h.length,x:c[0]}),h.push(null),f=N.lastIndex;f<b.length&&h.push(b.substring(f));for(d=0,j=i.length;(c=N.exec(a))&&d<j;++d){k=i[d];if(k.x==c[0]){if(k.i)if(h[k.i+1]==null){h[k.i-1]+=k.x,h.splice(k.i,1);for(e=d+1;e<j;++e)i[e].i--}else{h[k.i-1]+=k.x+h[k.i+1],h.splice(k.i,2);for(e=d+1;e<j;++e)i[e].i-=2}else if(h[k.i+1]==null)h[k.i]=k.x;else{h[k.i]=k.x+h[k.i+1],h.splice(k.i+1,1);for(e=d+1;e<j;++e)i[e].i--}i.splice(d,1),j--,d--}else k.x=d3.interpolateNumber(parseFloat(c[0]),parseFloat(k.x))}while(d<j)k=i.pop(),h[k.i+1]==null?h[k.i]=k.x:(h[k.i]=k.x+h[k.i+1],h.splice(k.i+1,1)),j--;return h.length===1?h[0]==null?i[0].x:function(){return b}:function(a){for(d=0;d<j;++d)h[(k=i[d]).i]=k.x(a);return h.join("")}},d3.interpolateTransform=function(a,b){return d3.interpolateString(d3.transform(a)+"",d3.transform(b)+"")},d3.interpolateRgb=function(a,b){a=d3.rgb(a),b=d3.rgb(b);var c=a.r,d=a.g,e=a.b,f=b.r-c,g=b.g-d,h=b.b-e;return function(a){return"#"+T(Math.round(c+f*a))+T(Math.round(d+g*a))+T(Math.round(e+h*a))}},d3.interpolateHsl=function(a,b){a=d3.hsl(a),b=d3.hsl(b);var c=a.h,d=a.s,e=a.l,f=b.h-c,g=b.s-d,h=b.l-e;return function(a){return _(c+f*a,d+g*a,e+h*a).toString()}},d3.interpolateArray=function(a,b){var c=[],d=[],e=a.length,f=b.length,g=Math.min(a.length,b.length),h;for(h=0;h<g;++h)c.push(d3.interpolate(a[h],b[h]));for(;h<e;++h)d[h]=a[h];for(;h<f;++h)d[h]=b[h];return function(a){for(h=0;h<g;++h)d[h]=c[h](a);return d}},d3.interpolateObject=function(a,b){var c={},d={},e;for(e in a)e in b?c[e]=O(e)(a[e],b[e]):d[e]=a[e];for(e in b)e in a||(d[e]=b[e]);return function(a){for(e in c)d[e]=c[e](a);return d}};var N=/[-+]?(?:\d*\.?\d+)(?:[eE][-+]?\d+)?/g;d3.interpolators=[d3.interpolateObject,function(a,b){return b instanceof Array&&d3.interpolateArray(a,b)},function(a,b){return typeof b=="string"&&d3.interpolateString(a+"",b)},function(a,b){return(typeof b=="string"?b in X||/^(#|rgb\(|hsl\()/.test(b):b instanceof S||b instanceof $)&&d3.interpolateRgb(a+"",b)},function(a,b){return typeof b=="number"&&d3.interpolateNumber(+a,b)}],d3.rgb=function(a,b,c){return arguments.length===1?a instanceof S?R(a.r,a.g,a.b):U(""+a,R,_):R(~~a,~~b,~~c)},S.prototype.brighter=function(a){a=Math.pow(.7,arguments.length?a:1);var b=this.r,c=this.g,d=this.b,e=30;return!b&&!c&&!d?R(e,e,e):(b&&b<e&&(b=e),c&&c<e&&(c=e),d&&d<e&&(d=e),R(Math.min(255,Math.floor(b/a)),Math.min(255,Math.floor(c/a)),Math.min(255,Math.floor(d/a))))},S.prototype.darker=function(a){return a=Math.pow(.7,arguments.length?a:1),R(Math.floor(a*this.r),Math.floor(a*this.g),Math.floor(a*this.b))},S.prototype.hsl=function(){return V(this.r,this.g,this.b)},S.prototype.toString=function(){return"#"+T(this.r)+T(this.g)+T(this.b)};var X={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080"
+,green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};for(var Y in X)X[Y]=U(X[Y],R,_);d3.hsl=function(a,b,c){return arguments.length===1?a instanceof $?Z(a.h,a.s,a.l):U(""+a,V,Z):Z(+a,+b,+c)},$.prototype.brighter=function(a){return a=Math.pow(.7,arguments.length?a:1),Z(this.h,this.s,this.l/a)},$.prototype.darker=function(a){return a=Math.pow(.7,arguments.length?a:1),Z(this.h,this.s,a*this.l)},$.prototype.rgb=function(){return _(this.h,this.s,this.l)},$.prototype.toString=function(){return this.rgb().toString()};var bb=function(a,b){return b.querySelector(a)},bc=function(a,b){return b.querySelectorAll(a)};typeof Sizzle=="function"&&(bb=function(a,b){return Sizzle(a,b)[0]},bc=function(a,b){return Sizzle.uniqueSort(Sizzle(a,b))});var bd=[];d3.selection=function(){return bk},d3.selection.prototype=bd,bd.select=function(a){var b=[],c,d,e,f;typeof a!="function"&&(a=be(a));for(var g=-1,h=this.length;++g<h;){b.push(c=[]),c.parentNode=(e=this[g]).parentNode;for(var i=-1,j=e.length;++i<j;)(f=e[i])?(c.push(d=a.call(f,f.__data__,i)),d&&"__data__"in f&&(d.__data__=f.__data__)):c.push(null)}return ba(b)},bd.selectAll=function(a){var b=[],c,e;typeof a!="function"&&(a=bf(a));for(var f=-1,g=this.length;++f<g;)for(var h=this[f],i=-1,j=h.length;++i<j;)if(e=h[i])b.push(c=d(a.call(e,e.__data__,i))),c.parentNode=e;return ba(b)},bd.attr=function(a,b){function d(){this.removeAttribute(a)}function e(){this.removeAttributeNS(a.space,a.local)}function f(){this.setAttribute(a,b)}function g(){this.setAttributeNS(a.space,a.local,b)}function h(){var c=b.apply(this,arguments);c==null?this.removeAttribute(a):this.setAttribute(a,c)}function i(){var c=b.apply(this,arguments);c==null?this.removeAttributeNS(a.space,a.local):this.setAttributeNS(a.space,a.local,c)}a=d3.ns.qualify(a);if(arguments.length<2){var c=this.node();return a.local?c.getAttributeNS(a.space,a.local):c.getAttribute(a)}return this.each(b==null?a.local?e:d:typeof b=="function"?a.local?i:h:a.local?g:f)},bd.classed=function(a,b){var c=a.split(bg),d=c.length,e=-1;if(arguments.length>1){while(++e<d)bh.call(this,c[e],b);return this}while(++e<d)if(!bh.call(this,c[e]))return!1;return!0};var bg=/\s+/g;bd.style=function(a,b,c){function d(){this.style.removeProperty(a)}function e(){this.style.setProperty(a,b,c)}function f(){var d=b.apply(this,arguments);d==null?this.style.removeProperty(a):this.style.setProperty(a,d,c)}return arguments.length<3&&(c=""),arguments.length<2?window.getComputedStyle(this.node(),null).getPropertyValue(a):this.each(b==null?d:typeof b=="function"?f:e)},bd.property=function(a,b){function c(){delete this[a]}function d(){this[a]=b}function e(){var c=b.apply(this,arguments);c==null?delete this[a]:this[a]=c}return arguments.length<2?this.node()[a]:this.each(b==null?c:typeof b=="function"?e:d)},bd.datum=function(a,b){return arguments.length<2?this.property("__data__")[a]:this.property("__data__")[a]=b;},bd.text=function(a){return arguments.length<1?this.node().textContent:this.each(typeof a=="function"?function(){this.textContent=a.apply(this,arguments)}:function(){this.textContent=a})},bd.html=function(a){return arguments.length<1?this.node().innerHTML:this.each(typeof a=="function"?function(){this.innerHTML=a.apply(this,arguments)}:function(){this.innerHTML=a})},bd.append=function(a){function b(){return this.appendChild(document.createElement(a))}function c(){return this.appendChild(document.createElementNS(a.space,a.local))}return a=d3.ns.qualify(a),this.select(a.local?c:b)},bd.insert=function(a,b){function c(){return this.insertBefore(document.createElement(a),bb(b,this))}function d(){return this.insertBefore(document.createElementNS(a.space,a.local),bb(b,this))}return a=d3.ns.qualify(a),this.select(a.local?d:c)},bd.remove=function(){return this.each(function(){var a=this.parentNode;a&&a.removeChild(this)})},bd.data=function(a,b){function f(a,f){var g,h=a.length,i=f.length,j=Math.min(h,i),k=Math.max(h,i),l=[],m=[],n=[],o,p;if(b){var q={},r=[],s,t=f.length;for(g=-1;++g<h;)s=b.call(o=a[g],o.__data__,g),s in q?n[t++]=o:q[s]=o,r.push(s);for(g=-1;++g<i;)o=q[s=b.call(f,p=f[g],g)],o?(o.__data__=p,l[g]=o,m[g]=n[g]=null):(m[g]=bi(p),l[g]=n[g]=null),delete q[s];for(g=-1;++g<h;)r[g]in q&&(n[g]=a[g])}else{for(g=-1;++g<j;)o=a[g],p=f[g],o?(o.__data__=p,l[g]=o,m[g]=n[g]=null):(m[g]=bi(p),l[g]=n[g]=null);for(;g<i;++g)m[g]=bi(f[g]),l[g]=n[g]=null;for(;g<k;++g)n[g]=a[g],m[g]=l[g]=null}m.update=l,m.parentNode=l.parentNode=n.parentNode=a.parentNode,c.push(m),d.push(l),e.push(n)}var c=[],d=[],e=[],g=-1,h=this.length,i;if(typeof a=="function")while(++g<h)f(i=this[g],a.call(i,i.parentNode.__data__,g));else while(++g<h)f(i=this[g],a);var j=ba(d);return j.enter=function(){return bl(c)},j.exit=function(){return ba(e)},j},bd.filter=function(a){var b=[],c,d,e;for(var f=0,g=this.length;f<g;f++){b.push(c=[]),c.parentNode=(d=this[f]).parentNode;for(var h=0,i=d.length;h<i;h++)(e=d[h])&&a.call(e,e.__data__,h)&&c.push(e)}return ba(b)},bd.map=function(a){return this.each(function(){this.__data__=a.apply(this,arguments)})},bd.sort=function(a){a=bj.apply(this,arguments);for(var b=0,c=this.length;b<c;b++)for(var d=this[b].sort(a),e=1,f=d.length,g=d[0];e<f;e++){var h=d[e];h&&(g&&g.parentNode.insertBefore(h,g.nextSibling),g=h)}return this},bd.on=function(a,b,c){arguments.length<3&&(c=!1);var d="__on"+a,e=a.indexOf(".");return e>0&&(a=a.substring(0,e)),arguments.length<2?(e=this.node()[d])&&e._:this.each(function(e,f){function h(a){var c=d3.event;d3.event=a;try{b.call(g,g.__data__,f)}finally{d3.event=c}}var g=this;g[d]&&g.removeEventListener(a,g[d],c),b&&g.addEventListener(a,g[d]=h,c),h._=b})},bd.each=function(a){for(var b=-1,c=this.length;++b<c;)for(var d=this[b],e=-1,f=d.length;++e<f;){var g=d[e];g&&a.call(g,g.__data__,e,b)}return this},bd.call=function(a){return a.apply(this,(arguments[0]=this,arguments)),this},bd.empty=function(){return!this.node()},bd.node=function(a){for(var b=0,c=this.length;b<c;b++)for(var d=this[b],e=0,f=d.length;e<f;e++){var g=d[e];if(g)return g}return null},bd.transition=function(){var a=[],b,c;for(var d=-1,e=this.length;++d<e;){a.push(b=[]);for(var f=this[d],g=-1,h=f.length;++g<h;)b.push((c=f[g])?{node:c,delay:0,duration:250}:null)}return bn(a,bt||++bs,Date.now())};var bk=ba([[document]]);bk[0].parentNode=document.documentElement,d3.select=function(a){return typeof a=="string"?bk.select(a):ba([[a]])},d3.selectAll=function(a){return typeof a=="string"?bk.selectAll(a):ba([d(a)])};var bm=[];bm.append=bd.append,bm.insert=bd.insert,bm.empty=bd.empty,bm.node=bd.node,bm.select=function(a){var b=[],c,d,e,f,g;for(var h=-1,i=this.length;++h<i;){e=(f=this[h]).update,b.push(c=[]),c.parentNode=f.parentNode;for(var j=-1,k=f.length;++j<k;)(g=f[j])?(c.push(e[j]=d=a.call(f.parentNode,g.__data__,j)),d.__data__=g.__data__):c.push(null)}return ba(b)};var bo={},br=[],bs=0,bt=0,bu=d3.ease("cubic-in-out");br.call=bd.call,d3.transition=function(){return bk.transition()},d3.transition.prototype=br,br.select=function(a){var b=[],c,d,e;typeof a!="function"&&(a=be(a));for(var f=-1,g=this.length;++f<g;){b.push(c=[]);for(var h=this[f],i=-1,j=h.length;++i<j;)(e=h[i])&&(d=a.call(e.node,e.node.__data__,i))?("__data__"in e.node&&(d.__data__=e.node.__data__),c.push({node:d,delay:e.delay,duration:e.duration})):c.push(null)}return bn(b,this.id,this.time).ease(this.ease())},br.selectAll=function(a){var b=[],c,d,e;typeof a!="function"&&(a=bf(a));for(var f=-1,g=this.length;++f<g;)for(var h=this[f],i=-1,j=h.length;++i<j;)if(e=h[i]){d=a.call(e.node,e.node.__data__,i),b.push(c=[]);for(var k=-1,l=d.length;++k<l;)c.push({node:d[k],delay:e.delay,duration:e.duration})}return bn(b,this.id,this.time).ease(this.ease())},br.attr=function(a,b){return this.attrTween(a,bq(a,b))},br.attrTween=function(a,b){function d(a,d){var e=b.call(this,a,d,this.getAttribute(c));return e===bo?(this.removeAttribute(c),null):e&&function(a){this.setAttribute(c,e(a))}}function e(a,d){var e=b.call(this,a,d,this.getAttributeNS(c.space,c.local));return e===bo?(this.removeAttributeNS(c.space,c.local),null):e&&function(a){this.setAttributeNS(c.space,c.local,e(a))}}var c=d3.ns.qualify(a);return this.tween("attr."+a,c.local?e:d)},br.style=function(a,b,c){return arguments.length<3&&(c=""),this.styleTween(a,bq(a,b),c)},br.styleTween=function(a,b,c){return arguments.length<3&&(c=""),this.tween("style."+a,function(d,e){var f=b.call(this,d,e,window.getComputedStyle(this,null).getPropertyValue(a));return f===bo?(this.style.removeProperty(a),null):f&&function(b){this.style.setProperty(a,f(b),c)}})},br.text=function(a){return this.tween("text",function(b,c){this.textContent=typeof a=="function"?a.call(this,b,c):a})},br.remove=function(){return this.each("end",function(){var a;!this.__transition__&&(a=this.parentNode)&&a.removeChild(this)})},br.delay=function(a){var b=this;return b.each(typeof a=="function"?function(c,d,e){b[e][d].delay=+a.apply(this,arguments)}:(a=+a,function(c,d,e){b[e][d].delay=a}))},br.duration=function(a){var b=this;return b.each(typeof a=="function"?function(c,d,e){b[e][d].duration=+a.apply(this,arguments)}:(a=+a,function(c,d,e){b[e][d].duration=a}))},br.transition=function(){return this.select(i)};var bw=null,bx,by;d3.timer=function(a,b,c){var d=!1,e,f=bw;if(arguments.length<3){if(arguments.length<2)b=0;else if(!isFinite(b))return;c=Date.now()}while(f){if(f.callback===a){f.then=c,f.delay=b,d=!0;break}e=f,f=f.next}d||(bw={callback:a,then:c,delay:b,next:bw}),bx||(by=clearTimeout(by),bx=1,bB(bz))},d3.timer.flush=function(){var a,b=Date.now(),c=bw;while(c)a=b-c.then,c.delay||(c.flush=c.callback(a)),c=c.next;bA()};var bB=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){setTimeout(a,17)};d3.transform=function(a){return bG.setAttribute("transform",a),new bC(bG.transform.baseVal.consolidate().matrix)},bC.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var bG=document.createElementNS(d3.ns.prefix.svg,"g"),bH=180/Math.PI;d3.scale={},d3.scale.linear=function(){return bM([0,1],[0,1],d3.interpolate,!1)},d3.scale.log=function(){return bU(d3.scale.linear(),bW)};var bV=d3.format("e");bW.pow=function(a){return Math.pow(10,a)},bX.pow=function(a){return-Math.pow(10,-a)},d3.scale.pow=function(){return bY(d3.scale.linear(),1)},d3.scale.sqrt=function(){return d3.scale.pow().exponent(.5)},d3.scale.ordinal=function(){return b$([],{t:"range",x:[]})},d3.scale.category10=function(){return d3.scale.ordinal().range(b_)},d3.scale.category20=function(){return d3.scale.ordinal().range(ca)},d3.scale.category20b=function(){return d3.scale.ordinal().range(cb)},d3.scale.category20c=function(){return d3.scale.ordinal().range(cc)};var b_=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],ca=["#1f77b4","#aec7e8","#ff7f0e","#ffbb78","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5","#8c564b","#c49c94","#e377c2","#f7b6d2","#7f7f7f","#c7c7c7","#bcbd22","#dbdb8d","#17becf","#9edae5"],cb=["#393b79","#5254a3","#6b6ecf","#9c9ede","#637939","#8ca252","#b5cf6b","#cedb9c","#8c6d31","#bd9e39","#e7ba52","#e7cb94","#843c39","#ad494a","#d6616b","#e7969c","#7b4173","#a55194","#ce6dbd","#de9ed6"],cc=["#3182bd","#6baed6","#9ecae1","#c6dbef","#e6550d","#fd8d3c","#fdae6b","#fdd0a2","#31a354","#74c476","#a1d99b","#c7e9c0","#756bb1","#9e9ac8","#bcbddc","#dadaeb","#636363","#969696","#bdbdbd","#d9d9d9"];d3.scale.quantile=function(){return cd([],[])},d3.scale.quantize=function(){return ce(0,1,[0,1])},d3.svg={},d3.svg.arc=function(){function e(){var e=a.apply(this,arguments),f=b.apply(this,arguments),g=c.apply(this,arguments)+cf,h=d.apply(this,arguments)+cf,i=(h<g&&(i=g,g=h,h=i),h-g),j=i<Math.PI?"0":"1",k=Math.cos(g),l=Math.sin(g),m=Math.cos(h),n=Math.sin(h);return i>=cg?e?"M0,"+f+"A"+f+","+f+" 0 1,1 0,"+ -f+"A"+f+","+f+" 0 1,1 0,"+f+"M0,"+e+"A"+e+","+e+" 0 1,0 0,"+ -e+"A"+e+","+e+" 0 1,0 0,"+e+"Z":"M0,"+f+"A"+f+","+f+" 0 1,1 0,"+ -f+"A"+f+","+f+" 0 1,1 0,"+f+"Z":e?"M"+f*k+","+f*l+"A"+f+","+f+" 0 "+j+",1 "+f*m+","+f*n+"L"+e*m+","+e*n+"A"+e+","+e+" 0 "+j+",0 "+e*k+","+e*l+"Z":"M"+f*k+","+f*l+"A"+f+","+f+" 0 "+j+",1 "+f*m+","+f*n+"L0,0"+"Z"}var a=ch,b=ci,c=cj,d=ck;return e.innerRadius=function(b){return arguments.length?(a=d3.functor(b),e):a},e.outerRadius=function(a){return arguments.length?(b=d3.functor(a),e):b},e.startAngle=function(a){return arguments.length?(c=d3.functor(a),e):c},e.endAngle=function(a){return arguments.length?(d=d3.functor(a),e):d},e.centroid=function(){var e=(a.apply(this,arguments)+b.apply(this,arguments))/2,f=(c.apply(this,arguments)+d.apply(this,arguments))/2+cf;return[Math.cos(f)*e,Math.sin(f)*e]},e};var cf=-Math.PI/2,cg=2*Math.PI-1e-6;d3.svg.line=function(){return cl(Object)};var cp={linear:cq,"step-before":cr,"step-after":cs,basis:cy,"basis-open":cz,"basis-closed":cA,bundle:cB,cardinal:cv,"cardinal-open":ct,"cardinal-closed":cu,monotone:cK},cD=[0,2/3,1/3,0],cE=[0,1/3,2/3,0],cF=[0,1/6,2/3,1/6];d3.svg.line.radial=function(){var a=cl(cL);return a.radius=a.x,delete a.x,a.angle=a.y,delete a.y,a},cr.reverse=cs,cs.reverse=cr,d3.svg.area=function(){return cM(Object)},d3.svg.area.radial=function(){var a=cM(cL);return a.radius=a.x,delete a.x,a.innerRadius=a.x0,delete a.x0,a.outerRadius=a.x1,delete a.x1,a.angle=a.y,delete a.y,a.startAngle=a.y0,delete a.y0,a.endAngle=a.y1,delete a.y1,a},d3.svg.chord=function(){function f(c,d){var e=g(this,a,c,d),f=g(this,b,c,d);return"M"+e.p0+i(e.r,e.p1)+(h(e,f)?j(e.r,e.p1,e.r,e.p0):j(e.r,e.p1,f.r,f.p0)+i(f.r,f.p1)+j(f.r,f.p1,e.r,e.p0))+"Z"}function g(a,b,f,g){var h=b.call(a,f,g),i=c.call(a,h,g),j=d.call(a,h,g)+cf,k=e.call(a,h,g)+cf;return{r:i,a0:j,a1:k,p0:[i*Math.cos(j),i*Math.sin(j)],p1:[i*Math.cos(k),i*Math.sin(k)]}}function h(a,b){return a.a0==b.a0&&a.a1==b.a1}function i(a,b){return"A"+a+","+a+" 0 0,1 "+b}function j(a,b,c,d){return"Q 0,0 "+d}var a=cP,b=cQ,c=cR,d=cj,e=ck;return f.radius=function(a){return arguments.length?(c=d3.functor(a),f):c},f.source=function(b){return arguments.length?(a=d3.functor(b),f):a},f.target=function(a){return arguments.length?(b=d3.functor(a),f):b},f.startAngle=function(a){return arguments.length?(d=d3.functor(a),f):d},f.endAngle=function(a){return arguments.length?(e=d3.functor(a),f):e},f},d3.svg.diagonal=function(){function d(d,e){var f=a.call(this,d,e),g=b.call(this,d,e),h=(f.y+g.y)/2,i=[f,{x:f.x,y:h},{x:g.x,y:h},g];return i=i.map(c),"M"+i[0]+"C"+i[1]+" "+i[2]+" "+i[3]}var a=cP,b=cQ,c=cU;return d.source=function(b){return arguments.length?(a=d3.functor(b),d):a},d.target=function(a){return arguments.length?(b=d3.functor(a),d):b},d.projection=function(a){return arguments.length?(c=a,d):c},d},d3.svg.diagonal.radial=function(){var a=d3.svg.diagonal(),b=cU,c=a.projection;return a.projection=function(a){return arguments.length?c(cV(b=a)):b},a},d3.svg.mouse=function(a){return cX(a,d3.event)};var cW=/WebKit/.test(navigator.userAgent)?-1:0;d3.svg.touches=function(a,b){return arguments.length<2&&(b=d3.event.touches),b?d(b).map(function(b){var c=cX(a,b);return c.identifier=b.identifier,c}):[]},d3.svg.symbol=function(){function c(c,d){return(c$[a.call(this,c,d)]||c$.circle)(b.call(this,c,d))}var a=cZ,b=cY;return c.type=function(b){return arguments.length?(a=d3.functor(b),c):a},c.size=function(a){return arguments.length?(b=d3.functor(a),c):b},c};var c$={circle:function(a){var b=Math.sqrt(a/Math.PI);return"M0,"+b+"A"+b+","+b+" 0 1,1 0,"+ -b+"A"+b+","+b+" 0 1,1 0,"+b+"Z"},cross:function(a){var b=Math.sqrt(a/5)/2;return"M"+ -3*b+","+ -b+"H"+ -b+"V"+ -3*b+"H"+b+"V"+ -b+"H"+3*b+"V"+b+"H"+b+"V"+3*b+"H"+ -b+"V"+b+"H"+ -3*b+"Z"},diamond:function(a){var b=Math.sqrt(a/(2*da)),c=b*da;return"M0,"+ -b+"L"+c+",0"+" 0,"+b+" "+ -c+",0"+"Z"},square:function(a){var b=Math.sqrt(a)/2;return"M"+ -b+","+ -b+"L"+b+","+ -b+" "+b+","+b+" "+ -b+","+b+"Z"},"triangle-down":function(a){var b=Math.sqrt(a/c_),c=b*c_/2;return"M0,"+c+"L"+b+","+ -c+" "+ -b+","+ -c+"Z"},"triangle-up":function(a){var b=Math.sqrt(a/c_),c=b*c_/2;return"M0,"+ -c+"L"+b+","+c+" "+ -b+","+c+"Z"}};d3.svg.symbolTypes=d3.keys(c$);var c_=Math.sqrt(3),da=Math.tan(30*Math.PI/180);d3.svg.axis=function(){function j(j){j.each(function(k,l,m){var n=d3.select(this),o=j.delay?function(a){var b=bt;try{return bt=j.id,a.transition().delay(j[m][l].delay).duration(j[m][l].duration).ease(j.ease())}finally{bt=b}}:Object,p=a.ticks.apply(a,g),q=h==null?a.tickFormat.apply(a,g):h,r=dd(a,p,i),s=n.selectAll(".minor").data(r,String),t=s.enter().insert("svg:line","g").attr("class","tick minor").style("opacity",1e-6),u=o(s.exit()).style("opacity",1e-6).remove(),v=o(s).style("opacity",1),w=n.selectAll("g").data(p,String),x=w.enter().insert("svg:g","path").style("opacity",1e-6),y=o(w.exit()).style("opacity",1e-6).remove(),z=o(w).style("opacity",1),A,B=bJ(a.range()),C=n.selectAll(".domain").data([0]),D=C.enter().append("svg:path").attr("class","domain"),E=o(C),F=this.__chart__||a;this.__chart__=a.copy(),x.append("svg:line").attr("class","tick"),x.append("svg:text"),z.select("text").text(q);switch(b){case"bottom":A=db,v.attr("x2",0).attr("y2",d),z.select("line").attr("x2",0).attr("y2",c),z.select("text").attr("x",0).attr("y",Math.max(c,0)+f).attr("dy",".71em").attr("text-anchor","middle"),E.attr("d","M"+B[0]+","+e+"V0H"+B[1]+"V"+e);break;case"top":A=db,v.attr("x2",0).attr("y2",-d),z.select("line").attr("x2",0).attr("y2",-c),z.select("text").attr("x",0).attr("y",-(Math.max(c,0)+f)).attr("dy","0em").attr("text-anchor","middle"),E.attr("d","M"+B[0]+","+ -e+"V0H"+B[1]+"V"+ -e);break;case"left":A=dc,v.attr("x2",-d).attr("y2",0),z.select("line").attr("x2",-c).attr("y2",0),z.select("text").attr("x",-(Math.max(c,0)+f)).attr("y",0).attr("dy",".32em").attr("text-anchor","end"),E.attr("d","M"+ -e+","+B[0]+"H0V"+B[1]+"H"+ -e);break;case"right":A=dc,v.attr("x2",d).attr("y2",0),z.select("line").attr("x2",c).attr("y2",0),z.select("text").attr("x",Math.max(c,0)+f).attr("y",0).attr("dy",".32em").attr("text-anchor","start"),E.attr("d","M"+e+","+B[0]+"H0V"+B[1]+"H"+e)}x.call(A,F),z.call(A,a),y.call(A,a),t.call(A,F),v.call(A,a),u.call(A,a)})}var a=d3.scale.linear(),b="bottom",c=6,d=6,e=6,f=3,g=[10],h,i=0;return j.scale=function(b){return arguments.length?(a=b,j):a},j.orient=function(a){return arguments.length?(b=a,j):b},j.ticks=function(){return arguments.length?(g=arguments,j):g},j.tickFormat=function(a){return arguments.length?(h=a,j):h},j.tickSize=function(a,b,f){if(!arguments.length)return c;var g=arguments.length-1;return c=+a,d=g>1?+b:c,e=g>0?+arguments[g]:c,j},j.tickPadding=function(a){return arguments.length?(f=+a,j):f},j.tickSubdivide=function(a){return arguments.length?(i=+a,j):i},j},d3.svg.brush=function(){function e(a){var g=b&&c?["n","e","s","w","nw","ne","se","sw"]:b?["e","w"]:c?["n","s"]:[];a.each(function(){var a=d3.select(this).on("mousedown.brush",f),h=a.selectAll(".background").data([,]),i=a.selectAll(".extent").data([,]),j=a.selectAll(".resize").data(g,String),k;h.enter().append("svg:rect").attr("class","background").style("visibility","hidden").style("pointer-events","all").style("cursor","crosshair"),i.enter().append("svg:rect").attr("class","extent").style("cursor","move"),j.enter().append("svg:rect").attr("class",function(a){return"resize "+a}).attr("width",6).attr("height",6).style("visibility","hidden").style("pointer-events",e.empty()?"none":"all").style("cursor",function(a){return dw[a]}),j.exit().remove(),b&&(k=bJ(b.range()),h.attr("x",k[0]).attr("width",k[1]-k[0]),dp(a,d)),c&&(k=bJ(c.range()),h.attr("y",k[0]).attr("height",k[1]-k[0]),dq(a,d))})}function f(){var a=d3.select(d3.event.target);de=e,dg=this,dj=d,dn=d3.svg.mouse(dg),(dk=a.classed("extent"))?(dn[0]=d[0][0]-dn[0],dn[1]=d[0][1]-dn[1]):a.classed("resize")?(dl=d3.event.target.__data__,dn[0]=d[+/w$/.test(dl)][0],dn[1]=d[+/^n/.test(dl)][1]):d3.event.altKey&&(dm=dn.slice()),dh=!/^(n|s)$/.test(dl)&&b,di=!/^(e|w)$/.test(dl)&&c,df=g(this,arguments),df("brushstart"),dt(),M()}function g(b,c){return function(d){var f=d3.event;try{d3.event={type:d,target:e},a[d].apply(b,c)}finally{d3.event=f}}}var a=d3.dispatch("brushstart","brush","brushend"),b,c,d=[[0,0],[0,0]];return e.x=function(a){return arguments.length?(b=a,e):b},e.y=function(a){return arguments.length?(c=a,e):c},e.extent=function(a){var f,g,h,i,j;return arguments.length?(b&&(f=a[0],g=a[1],c&&(f=f[0],g=g[0]),f=b(f),g=b(g),g<f&&(j=f,f=g,g=j),d[0][0]=f,d[1][0]=g),c&&(h=a[0],i=a[1],b&&(h=h[1],i=i[1]),h=c(h),i=c(i),i<h&&(j=h,h=i,i=j),d[0][1]=h,d[1][1]=i),e):(b&&(f=b.invert(d[0][0]),g=b.invert(d[1][0]),g<f&&(j=f,f=g,g=j)),c&&(h=c.invert(d[0][1]),i=c.invert(d[1][1]),i<h&&(j=h,h=i,i=j)),b&&c?[[f,h],[g,i]]:b?[f,g]:c&&[h,i])},e.clear=function(){return d[0][0]=d[0][1]=d[1][0]=d[1][1]=0,e},e.empty=function(){return b&&d[0][0]===d[1][0]||c&&d[0][1]===d[1][1]},e.on=function(b,c){return a.on(b,c),e},d3.select(window).on("mousemove.brush",dt).on("mouseup.brush",dv).on("keydown.brush",dr).on("keyup.brush",ds),e};var de,df,dg,dh,di,dj,dk,dl,dm,dn,dw={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"};d3.behavior={},d3.behavior.drag=function(){function b(){this.on("mousedown.drag",d).on("touchstart.drag",d),d3.select(window).on("mousemove.drag",dG).on("touchmove.drag",dG).on("mouseup.drag",dH,!0).on("touchend.drag",dH,!0).on("click.drag",dI,!0)}function c(){dx=a,dy=d3.event.target,dB=dF((dz=this).parentNode),dC=0,dA=arguments}function d(){c.apply(this,arguments),dE("dragstart")}var a=d3.dispatch("drag","dragstart","dragend");return b.on=function(c,d){return a.on(c,d),b},b};var dx,dy,dz,dA,dB,dC,dD;d3.behavior.zoom=function(){function d(){this.on("mousedown.zoom",f).on("mousewheel.zoom",g).on("DOMMouseScroll.zoom",g).on("dblclick.zoom",h).on("touchstart.zoom",i),d3.select(window).on("mousemove.zoom",d$).on("mouseup.zoom",d_).on("touchmove.zoom",dZ).on("touchend.zoom",dY).on("click.zoom",ea,!0)}function e(){dO=a,dP=c,dQ=b.zoom,dR=d3.event.target,dS=this,dT=arguments}function f(){e.apply(this,arguments),dK=dW(d3.svg.mouse(dS)),dU=!1,d3.event.preventDefault(),window.focus()}function g(){e.apply(this,arguments),dL||(dL=dW(d3.svg.mouse(dS))),eb(dX()+a[2],d3.svg.mouse(dS),dL)}function h(){e.apply(this,arguments);var b=d3.svg.mouse(dS);eb(d3.event.shiftKey?Math.ceil(a[2]-1):Math.floor(a[2]+1),b,dW(b))}function i(){e.apply(this,arguments);var b=dY(),c,d=Date.now();b.length===1&&d-dN<300&&eb(1+Math.floor(a[2]),c=b[0],dM[c.identifier]),dN=d}var a=[0,0,0],b=d3.dispatch("zoom"),c=ec;return d.extent=function(a){return arguments.length?(c=a==null?ec:a,d):c},d.on=function(a,c){return b.on(a,c),d},d};var dJ,dK,dL,dM={},dN=0,dO,dP,dQ,dR,dS,dT,dU,dV,ec=[[-Infinity,Infinity],[-Infinity,Infinity],[-Infinity,Infinity]]})();
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/d3/d3.nathan.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,4695 @@
+(function(){if (!Date.now) Date.now = function() {
+  return +new Date;
+};
+try {
+  document.createElement("div").style.setProperty("opacity", 0, "");
+} catch (error) {
+  var d3_style_prototype = CSSStyleDeclaration.prototype,
+      d3_style_setProperty = d3_style_prototype.setProperty;
+  d3_style_prototype.setProperty = function(name, value, priority) {
+    d3_style_setProperty.call(this, name, value + "", priority);
+  };
+}
+d3 = {version: "2.7.1"}; // semver
+var d3_array = d3_arraySlice; // conversion for NodeLists
+
+function d3_arrayCopy(pseudoarray) {
+  var i = -1, n = pseudoarray.length, array = [];
+  while (++i < n) array.push(pseudoarray[i]);
+  return array;
+}
+
+function d3_arraySlice(pseudoarray) {
+  return Array.prototype.slice.call(pseudoarray);
+}
+
+try {
+  d3_array(document.documentElement.childNodes)[0].nodeType;
+} catch(e) {
+  d3_array = d3_arrayCopy;
+}
+
+var d3_arraySubclass = [].__proto__?
+
+// Until ECMAScript supports array subclassing, prototype injection works well.
+function(array, prototype) {
+  array.__proto__ = prototype;
+}:
+
+// And if your browser doesn't support __proto__, we'll use direct extension.
+function(array, prototype) {
+  for (var property in prototype) array[property] = prototype[property];
+};
+function d3_this() {
+  return this;
+}
+d3.functor = function(v) {
+  return typeof v === "function" ? v : function() { return v; };
+};
+// Copies a variable number of methods from source to target.
+d3.rebind = function(target, source) {
+  var i = 1, n = arguments.length, method;
+  while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);
+  return target;
+};
+
+// Method is assumed to be a standard D3 getter-setter:
+// If passed with no arguments, gets the value.
+// If passed with arguments, sets the value and returns the target.
+function d3_rebind(target, source, method) {
+  return function() {
+    var value = method.apply(source, arguments);
+    return arguments.length ? target : value;
+  };
+}
+d3.ascending = function(a, b) {
+  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
+};
+d3.descending = function(a, b) {
+  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
+};
+d3.mean = function(array, f) {
+  var n = array.length,
+      a,
+      m = 0,
+      i = -1,
+      j = 0;
+  if (arguments.length === 1) {
+    while (++i < n) if (d3_number(a = array[i])) m += (a - m) / ++j;
+  } else {
+    while (++i < n) if (d3_number(a = f.call(array, array[i], i))) m += (a - m) / ++j;
+  }
+  return j ? m : undefined;
+};
+d3.median = function(array, f) {
+  if (arguments.length > 1) array = array.map(f);
+  array = array.filter(d3_number);
+  return array.length ? d3.quantile(array.sort(d3.ascending), .5) : undefined;
+};
+d3.min = function(array, f) {
+  var i = -1,
+      n = array.length,
+      a,
+      b;
+  if (arguments.length === 1) {
+    while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
+    while (++i < n) if ((b = array[i]) != null && a > b) a = b;
+  } else {
+    while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
+    while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;
+  }
+  return a;
+};
+d3.max = function(array, f) {
+  var i = -1,
+      n = array.length,
+      a,
+      b;
+  if (arguments.length === 1) {
+    while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
+    while (++i < n) if ((b = array[i]) != null && b > a) a = b;
+  } else {
+    while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
+    while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;
+  }
+  return a;
+};
+d3.extent = function(array, f) {
+  var i = -1,
+      n = array.length,
+      a,
+      b,
+      c;
+  if (arguments.length === 1) {
+    while (++i < n && ((a = c = array[i]) == null || a != a)) a = c = undefined;
+    while (++i < n) if ((b = array[i]) != null) {
+      if (a > b) a = b;
+      if (c < b) c = b;
+    }
+  } else {
+    while (++i < n && ((a = c = f.call(array, array[i], i)) == null || a != a)) a = undefined;
+    while (++i < n) if ((b = f.call(array, array[i], i)) != null) {
+      if (a > b) a = b;
+      if (c < b) c = b;
+    }
+  }
+  return [a, c];
+};
+d3.random = {
+  normal: function(mean, deviation) {
+    if (arguments.length < 2) deviation = 1;
+    if (arguments.length < 1) mean = 0;
+    return function() {
+      var x, y, r;
+      do {
+        x = Math.random() * 2 - 1;
+        y = Math.random() * 2 - 1;
+        r = x * x + y * y;
+      } while (!r || r > 1);
+      return mean + deviation * x * Math.sqrt(-2 * Math.log(r) / r);
+    };
+  }
+};
+function d3_number(x) {
+  return x != null && !isNaN(x);
+}
+d3.sum = function(array, f) {
+  var s = 0,
+      n = array.length,
+      a,
+      i = -1;
+
+  if (arguments.length === 1) {
+    while (++i < n) if (!isNaN(a = +array[i])) s += a;
+  } else {
+    while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a;
+  }
+
+  return s;
+};
+// R-7 per <http://en.wikipedia.org/wiki/Quantile>
+d3.quantile = function(values, p) {
+  var H = (values.length - 1) * p + 1,
+      h = Math.floor(H),
+      v = values[h - 1],
+      e = H - h;
+  return e ? v + e * (values[h] - v) : v;
+};
+d3.transpose = function(matrix) {
+  return d3.zip.apply(d3, matrix);
+};
+d3.zip = function() {
+  if (!(n = arguments.length)) return [];
+  for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m;) {
+    for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n;) {
+      zip[j] = arguments[j][i];
+    }
+  }
+  return zips;
+};
+
+function d3_zipLength(d) {
+  return d.length;
+}
+// Locate the insertion point for x in a to maintain sorted order. The
+// arguments lo and hi may be used to specify a subset of the array which should
+// be considered; by default the entire array is used. If x is already present
+// in a, the insertion point will be before (to the left of) any existing
+// entries. The return value is suitable for use as the first argument to
+// `array.splice` assuming that a is already sorted.
+//
+// The returned insertion point i partitions the array a into two halves so that
+// all v < x for v in a[lo:i] for the left side and all v >= x for v in a[i:hi]
+// for the right side.
+d3.bisectLeft = function(a, x, lo, hi) {
+  if (arguments.length < 3) lo = 0;
+  if (arguments.length < 4) hi = a.length;
+  while (lo < hi) {
+    var mid = (lo + hi) >> 1;
+    if (a[mid] < x) lo = mid + 1;
+    else hi = mid;
+  }
+  return lo;
+};
+
+// Similar to bisectLeft, but returns an insertion point which comes after (to
+// the right of) any existing entries of x in a.
+//
+// The returned insertion point i partitions the array into two halves so that
+// all v <= x for v in a[lo:i] for the left side and all v > x for v in a[i:hi]
+// for the right side.
+d3.bisect =
+d3.bisectRight = function(a, x, lo, hi) {
+  if (arguments.length < 3) lo = 0;
+  if (arguments.length < 4) hi = a.length;
+  while (lo < hi) {
+    var mid = (lo + hi) >> 1;
+    if (x < a[mid]) hi = mid;
+    else lo = mid + 1;
+  }
+  return lo;
+};
+d3.first = function(array, f) {
+  var i = 0,
+      n = array.length,
+      a = array[0],
+      b;
+  if (arguments.length === 1) f = d3.ascending;
+  while (++i < n) {
+    if (f.call(array, a, b = array[i]) > 0) {
+      a = b;
+    }
+  }
+  return a;
+};
+d3.last = function(array, f) {
+  var i = 0,
+      n = array.length,
+      a = array[0],
+      b;
+  if (arguments.length === 1) f = d3.ascending;
+  while (++i < n) {
+    if (f.call(array, a, b = array[i]) <= 0) {
+      a = b;
+    }
+  }
+  return a;
+};
+d3.nest = function() {
+  var nest = {},
+      keys = [],
+      sortKeys = [],
+      sortValues,
+      rollup;
+
+  function map(array, depth) {
+    if (depth >= keys.length) return rollup
+        ? rollup.call(nest, array) : (sortValues
+        ? array.sort(sortValues)
+        : array);
+
+    var i = -1,
+        n = array.length,
+        key = keys[depth++],
+        keyValue,
+        object,
+        o = {};
+
+    while (++i < n) {
+      if ((keyValue = key(object = array[i])) in o) {
+        o[keyValue].push(object);
+      } else {
+        o[keyValue] = [object];
+      }
+    }
+
+    for (keyValue in o) {
+      o[keyValue] = map(o[keyValue], depth);
+    }
+
+    return o;
+  }
+
+  function entries(map, depth) {
+    if (depth >= keys.length) return map;
+
+    var a = [],
+        sortKey = sortKeys[depth++],
+        key;
+
+    for (key in map) {
+      a.push({key: key, values: entries(map[key], depth)});
+    }
+
+    if (sortKey) a.sort(function(a, b) {
+      return sortKey(a.key, b.key);
+    });
+
+    return a;
+  }
+
+  nest.map = function(array) {
+    return map(array, 0);
+  };
+
+  nest.entries = function(array) {
+    return entries(map(array, 0), 0);
+  };
+
+  nest.key = function(d) {
+    keys.push(d);
+    return nest;
+  };
+
+  // Specifies the order for the most-recently specified key.
+  // Note: only applies to entries. Map keys are unordered!
+  nest.sortKeys = function(order) {
+    sortKeys[keys.length - 1] = order;
+    return nest;
+  };
+
+  // Specifies the order for leaf values.
+  // Applies to both maps and entries array.
+  nest.sortValues = function(order) {
+    sortValues = order;
+    return nest;
+  };
+
+  nest.rollup = function(f) {
+    rollup = f;
+    return nest;
+  };
+
+  return nest;
+};
+d3.keys = function(map) {
+  var keys = [];
+  for (var key in map) keys.push(key);
+  return keys;
+};
+d3.values = function(map) {
+  var values = [];
+  for (var key in map) values.push(map[key]);
+  return values;
+};
+d3.entries = function(map) {
+  var entries = [];
+  for (var key in map) entries.push({key: key, value: map[key]});
+  return entries;
+};
+d3.permute = function(array, indexes) {
+  var permutes = [],
+      i = -1,
+      n = indexes.length;
+  while (++i < n) permutes[i] = array[indexes[i]];
+  return permutes;
+};
+d3.merge = function(arrays) {
+  return Array.prototype.concat.apply([], arrays);
+};
+d3.split = function(array, f) {
+  var arrays = [],
+      values = [],
+      value,
+      i = -1,
+      n = array.length;
+  if (arguments.length < 2) f = d3_splitter;
+  while (++i < n) {
+    if (f.call(values, value = array[i], i)) {
+      values = [];
+    } else {
+      if (!values.length) arrays.push(values);
+      values.push(value);
+    }
+  }
+  return arrays;
+};
+
+function d3_splitter(d) {
+  return d == null;
+}
+function d3_collapse(s) {
+  return s.replace(/(^\s+)|(\s+$)/g, "").replace(/\s+/g, " ");
+}
+/**
+ * @param {number} start
+ * @param {number=} stop
+ * @param {number=} step
+ */
+d3.range = function(start, stop, step) {
+  if (arguments.length < 3) {
+    step = 1;
+    if (arguments.length < 2) {
+      stop = start;
+      start = 0;
+    }
+  }
+  if ((stop - start) / step == Infinity) throw new Error("infinite range");
+  var range = [],
+       i = -1,
+       j;
+  if (step < 0) while ((j = start + step * ++i) > stop) range.push(j);
+  else while ((j = start + step * ++i) < stop) range.push(j);
+  return range;
+};
+d3.requote = function(s) {
+  return s.replace(d3_requote_re, "\\$&");
+};
+
+var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;
+d3.round = function(x, n) {
+  return n
+      ? Math.round(x * Math.pow(10, n)) * Math.pow(10, -n)
+      : Math.round(x);
+};
+d3.xhr = function(url, mime, callback) {
+  var req = new XMLHttpRequest;
+  if (arguments.length < 3) callback = mime, mime = null;
+  else if (mime && req.overrideMimeType) req.overrideMimeType(mime);
+  req.open("GET", url, true);
+  if (mime) req.setRequestHeader("Accept", mime);
+  req.onreadystatechange = function() {
+    if (req.readyState === 4) callback(req.status < 300 ? req : null);
+  };
+  req.send(null);
+};
+d3.text = function(url, mime, callback) {
+  function ready(req) {
+    callback(req && req.responseText);
+  }
+  if (arguments.length < 3) {
+    callback = mime;
+    mime = null;
+  }
+  d3.xhr(url, mime, ready);
+};
+d3.json = function(url, callback) {
+  d3.text(url, "application/json", function(text) {
+    callback(text ? JSON.parse(text) : null);
+  });
+};
+d3.html = function(url, callback) {
+  d3.text(url, "text/html", function(text) {
+    if (text != null) { // Treat empty string as valid HTML.
+      var range = document.createRange();
+      range.selectNode(document.body);
+      text = range.createContextualFragment(text);
+    }
+    callback(text);
+  });
+};
+d3.xml = function(url, mime, callback) {
+  function ready(req) {
+    callback(req && req.responseXML);
+  }
+  if (arguments.length < 3) {
+    callback = mime;
+    mime = null;
+  }
+  d3.xhr(url, mime, ready);
+};
+var d3_nsPrefix = {
+  svg: "http://www.w3.org/2000/svg",
+  xhtml: "http://www.w3.org/1999/xhtml",
+  xlink: "http://www.w3.org/1999/xlink",
+  xml: "http://www.w3.org/XML/1998/namespace",
+  xmlns: "http://www.w3.org/2000/xmlns/"
+};
+
+d3.ns = {
+  prefix: d3_nsPrefix,
+  qualify: function(name) {
+    var i = name.indexOf(":");
+    return i < 0 ? (name in d3_nsPrefix
+      ? {space: d3_nsPrefix[name], local: name} : name)
+      : {space: d3_nsPrefix[name.substring(0, i)], local: name.substring(i + 1)};
+  }
+};
+d3.dispatch = function() {
+  var dispatch = new d3_dispatch(),
+      i = -1,
+      n = arguments.length;
+  while (++i < n) dispatch[arguments[i]] = d3_dispatch_event();
+  return dispatch;
+};
+
+function d3_dispatch() {}
+
+d3_dispatch.prototype.on = function(type, listener) {
+  var i = type.indexOf("."),
+      name = "";
+
+  // Extract optional namespace, e.g., "click.foo"
+  if (i > 0) {
+    name = type.substring(i + 1);
+    type = type.substring(0, i);
+  }
+
+  return arguments.length < 2
+      ? this[type].on(name)
+      : (this[type].on(name, listener), this);
+};
+
+function d3_dispatch_event() {
+  var listeners = [],
+      listenerByName = {};
+
+  function dispatch() {
+    var z = listeners, // defensive reference
+        i = -1,
+        n = z.length,
+        l;
+    while (++i < n) if (l = z[i].on) l.apply(this, arguments);
+  }
+
+  dispatch.on = function(name, listener) {
+    var l, i;
+
+    // return the current listener, if any
+    if (arguments.length < 2) return (l = listenerByName[name]) && l.on;
+
+    // remove the old listener, if any (with copy-on-write)
+    if (l = listenerByName[name]) {
+      l.on = null;
+      listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));
+      delete listenerByName[name];
+    }
+
+    // add the new listener, if any
+    if (listener) {
+      listeners.push(listenerByName[name] = {on: listener});
+    }
+
+    return dispatch;
+  };
+
+  return dispatch;
+};
+// TODO align
+d3.format = function(specifier) {
+  var match = d3_format_re.exec(specifier),
+      fill = match[1] || " ",
+      sign = match[3] || "",
+      zfill = match[5],
+      width = +match[6],
+      comma = match[7],
+      precision = match[8],
+      type = match[9],
+      scale = 1,
+      suffix = "",
+      integer = false;
+
+  if (precision) precision = +precision.substring(1);
+
+  if (zfill) {
+    fill = "0"; // TODO align = "=";
+    if (comma) width -= Math.floor((width - 1) / 4);
+  }
+
+  switch (type) {
+    case "n": comma = true; type = "g"; break;
+    case "%": scale = 100; suffix = "%"; type = "f"; break;
+    case "p": scale = 100; suffix = "%"; type = "r"; break;
+    case "d": integer = true; precision = 0; break;
+    case "s": scale = -1; type = "r"; break;
+  }
+
+  // If no precision is specified for r, fallback to general notation.
+  if (type == "r" && !precision) type = "g";
+
+  type = d3_format_types[type] || d3_format_typeDefault;
+
+  return function(value) {
+
+    // Return the empty string for floats formatted as ints.
+    if (integer && (value % 1)) return "";
+
+    // Convert negative to positive, and record the sign prefix.
+    var negative = (value < 0) && (value = -value) ? "\u2212" : sign;
+
+    // Apply the scale, computing it from the value's exponent for si format.
+    if (scale < 0) {
+      var prefix = d3.formatPrefix(value, precision);
+      value *= prefix.scale;
+      suffix = prefix.symbol;
+    } else {
+      value *= scale;
+    }
+
+    // Convert to the desired precision.
+    value = type(value, precision);
+
+    // If the fill character is 0, the sign and group is applied after the fill.
+    if (zfill) {
+      var length = value.length + negative.length;
+      if (length < width) value = new Array(width - length + 1).join(fill) + value;
+      if (comma) value = d3_format_group(value);
+      value = negative + value;
+    }
+
+    // Otherwise (e.g., space-filling), the sign and group is applied before.
+    else {
+      if (comma) value = d3_format_group(value);
+      value = negative + value;
+      var length = value.length;
+      if (length < width) value = new Array(width - length + 1).join(fill) + value;
+    }
+
+    return value + suffix;
+  };
+};
+
+// [[fill]align][sign][#][0][width][,][.precision][type]
+var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/;
+
+var d3_format_types = {
+  g: function(x, p) { return x.toPrecision(p); },
+  e: function(x, p) { return x.toExponential(p); },
+  f: function(x, p) { return x.toFixed(p); },
+  r: function(x, p) { return d3.round(x, p = d3_format_precision(x, p)).toFixed(Math.max(0, Math.min(20, p))); }
+};
+
+function d3_format_precision(x, p) {
+  return p - (x ? 1 + Math.floor(Math.log(x + Math.pow(10, 1 + Math.floor(Math.log(x) / Math.LN10) - p)) / Math.LN10) : 1);
+}
+
+function d3_format_typeDefault(x) {
+  return x + "";
+}
+
+// Apply comma grouping for thousands.
+function d3_format_group(value) {
+  var i = value.lastIndexOf("."),
+      f = i >= 0 ? value.substring(i) : (i = value.length, ""),
+      t = [];
+  while (i > 0) t.push(value.substring(i -= 3, i + 3));
+  return t.reverse().join(",") + f;
+}
+var d3_formatPrefixes = ["y","z","a","f","p","n","","m","","k","M","G","T","P","E","Z","Y"].map(d3_formatPrefix);
+
+d3.formatPrefix = function(value, precision) {
+  var i = 0;
+  if (value) {
+    if (value < 0) value *= -1;
+    if (precision) value = d3.round(value, d3_format_precision(value, precision));
+    i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);
+    i = Math.max(-24, Math.min(24, Math.floor((i <= 0 ? i + 1 : i - 1) / 3) * 3));
+  }
+  return d3_formatPrefixes[8 + i / 3];
+};
+
+function d3_formatPrefix(d, i) {
+  return {
+    scale: Math.pow(10, (8 - i) * 3),
+    symbol: d
+  };
+}
+
+/*
+ * TERMS OF USE - EASING EQUATIONS
+ *
+ * Open source under the BSD License.
+ *
+ * Copyright 2001 Robert Penner
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ *   this list of conditions and the following disclaimer in the documentation
+ *   and/or other materials provided with the distribution.
+ *
+ * - Neither the name of the author nor the names of contributors may be used to
+ *   endorse or promote products derived from this software without specific
+ *   prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+var d3_ease_quad = d3_ease_poly(2),
+    d3_ease_cubic = d3_ease_poly(3);
+
+var d3_ease = {
+  linear: function() { return d3_ease_linear; },
+  poly: d3_ease_poly,
+  quad: function() { return d3_ease_quad; },
+  cubic: function() { return d3_ease_cubic; },
+  sin: function() { return d3_ease_sin; },
+  exp: function() { return d3_ease_exp; },
+  circle: function() { return d3_ease_circle; },
+  elastic: d3_ease_elastic,
+  back: d3_ease_back,
+  bounce: function() { return d3_ease_bounce; }
+};
+
+var d3_ease_mode = {
+  "in": function(f) { return f; },
+  "out": d3_ease_reverse,
+  "in-out": d3_ease_reflect,
+  "out-in": function(f) { return d3_ease_reflect(d3_ease_reverse(f)); }
+};
+
+d3.ease = function(name) {
+  var i = name.indexOf("-"),
+      t = i >= 0 ? name.substring(0, i) : name,
+      m = i >= 0 ? name.substring(i + 1) : "in";
+  return d3_ease_clamp(d3_ease_mode[m](d3_ease[t].apply(null, Array.prototype.slice.call(arguments, 1))));
+};
+
+function d3_ease_clamp(f) {
+  return function(t) {
+    return t <= 0 ? 0 : t >= 1 ? 1 : f(t);
+  };
+}
+
+function d3_ease_reverse(f) {
+  return function(t) {
+    return 1 - f(1 - t);
+  };
+}
+
+function d3_ease_reflect(f) {
+  return function(t) {
+    return .5 * (t < .5 ? f(2 * t) : (2 - f(2 - 2 * t)));
+  };
+}
+
+function d3_ease_linear(t) {
+  return t;
+}
+
+function d3_ease_poly(e) {
+  return function(t) {
+    return Math.pow(t, e);
+  }
+}
+
+function d3_ease_sin(t) {
+  return 1 - Math.cos(t * Math.PI / 2);
+}
+
+function d3_ease_exp(t) {
+  return Math.pow(2, 10 * (t - 1));
+}
+
+function d3_ease_circle(t) {
+  return 1 - Math.sqrt(1 - t * t);
+}
+
+function d3_ease_elastic(a, p) {
+  var s;
+  if (arguments.length < 2) p = 0.45;
+  if (arguments.length < 1) { a = 1; s = p / 4; }
+  else s = p / (2 * Math.PI) * Math.asin(1 / a);
+  return function(t) {
+    return 1 + a * Math.pow(2, 10 * -t) * Math.sin((t - s) * 2 * Math.PI / p);
+  };
+}
+
+function d3_ease_back(s) {
+  if (!s) s = 1.70158;
+  return function(t) {
+    return t * t * ((s + 1) * t - s);
+  };
+}
+
+function d3_ease_bounce(t) {
+  return t < 1 / 2.75 ? 7.5625 * t * t
+      : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75
+      : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375
+      : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;
+}
+d3.event = null;
+
+function d3_eventCancel() {
+  d3.event.stopPropagation();
+  d3.event.preventDefault();
+}
+d3.interpolate = function(a, b) {
+  var i = d3.interpolators.length, f;
+  while (--i >= 0 && !(f = d3.interpolators[i](a, b)));
+  return f;
+};
+
+d3.interpolateNumber = function(a, b) {
+  b -= a;
+  return function(t) { return a + b * t; };
+};
+
+d3.interpolateRound = function(a, b) {
+  b -= a;
+  return function(t) { return Math.round(a + b * t); };
+};
+
+d3.interpolateString = function(a, b) {
+  var m, // current match
+      i, // current index
+      j, // current index (for coallescing)
+      s0 = 0, // start index of current string prefix
+      s1 = 0, // end index of current string prefix
+      s = [], // string constants and placeholders
+      q = [], // number interpolators
+      n, // q.length
+      o;
+
+  // Reset our regular expression!
+  d3_interpolate_number.lastIndex = 0;
+
+  // Find all numbers in b.
+  for (i = 0; m = d3_interpolate_number.exec(b); ++i) {
+    if (m.index) s.push(b.substring(s0, s1 = m.index));
+    q.push({i: s.length, x: m[0]});
+    s.push(null);
+    s0 = d3_interpolate_number.lastIndex;
+  }
+  if (s0 < b.length) s.push(b.substring(s0));
+
+  // Find all numbers in a.
+  for (i = 0, n = q.length; (m = d3_interpolate_number.exec(a)) && i < n; ++i) {
+    o = q[i];
+    if (o.x == m[0]) { // The numbers match, so coallesce.
+      if (o.i) {
+        if (s[o.i + 1] == null) { // This match is followed by another number.
+          s[o.i - 1] += o.x;
+          s.splice(o.i, 1);
+          for (j = i + 1; j < n; ++j) q[j].i--;
+        } else { // This match is followed by a string, so coallesce twice.
+          s[o.i - 1] += o.x + s[o.i + 1];
+          s.splice(o.i, 2);
+          for (j = i + 1; j < n; ++j) q[j].i -= 2;
+        }
+      } else {
+          if (s[o.i + 1] == null) { // This match is followed by another number.
+          s[o.i] = o.x;
+        } else { // This match is followed by a string, so coallesce twice.
+          s[o.i] = o.x + s[o.i + 1];
+          s.splice(o.i + 1, 1);
+          for (j = i + 1; j < n; ++j) q[j].i--;
+        }
+      }
+      q.splice(i, 1);
+      n--;
+      i--;
+    } else {
+      o.x = d3.interpolateNumber(parseFloat(m[0]), parseFloat(o.x));
+    }
+  }
+
+  // Remove any numbers in b not found in a.
+  while (i < n) {
+    o = q.pop();
+    if (s[o.i + 1] == null) { // This match is followed by another number.
+      s[o.i] = o.x;
+    } else { // This match is followed by a string, so coallesce twice.
+      s[o.i] = o.x + s[o.i + 1];
+      s.splice(o.i + 1, 1);
+    }
+    n--;
+  }
+
+  // Special optimization for only a single match.
+  if (s.length === 1) {
+    return s[0] == null ? q[0].x : function() { return b; };
+  }
+
+  // Otherwise, interpolate each of the numbers and rejoin the string.
+  return function(t) {
+    for (i = 0; i < n; ++i) s[(o = q[i]).i] = o.x(t);
+    return s.join("");
+  };
+};
+
+d3.interpolateTransform = function(a, b) {
+  return d3.interpolateString(d3.transform(a) + "", d3.transform(b) + "");
+};
+
+d3.interpolateRgb = function(a, b) {
+  a = d3.rgb(a);
+  b = d3.rgb(b);
+  var ar = a.r,
+      ag = a.g,
+      ab = a.b,
+      br = b.r - ar,
+      bg = b.g - ag,
+      bb = b.b - ab;
+  return function(t) {
+    return "#"
+        + d3_rgb_hex(Math.round(ar + br * t))
+        + d3_rgb_hex(Math.round(ag + bg * t))
+        + d3_rgb_hex(Math.round(ab + bb * t));
+  };
+};
+
+// interpolates HSL space, but outputs RGB string (for compatibility)
+d3.interpolateHsl = function(a, b) {
+  a = d3.hsl(a);
+  b = d3.hsl(b);
+  var h0 = a.h,
+      s0 = a.s,
+      l0 = a.l,
+      h1 = b.h - h0,
+      s1 = b.s - s0,
+      l1 = b.l - l0;
+  return function(t) {
+    return d3_hsl_rgb(h0 + h1 * t, s0 + s1 * t, l0 + l1 * t).toString();
+  };
+};
+
+d3.interpolateArray = function(a, b) {
+  var x = [],
+      c = [],
+      na = a.length,
+      nb = b.length,
+      n0 = Math.min(a.length, b.length),
+      i;
+  for (i = 0; i < n0; ++i) x.push(d3.interpolate(a[i], b[i]));
+  for (; i < na; ++i) c[i] = a[i];
+  for (; i < nb; ++i) c[i] = b[i];
+  return function(t) {
+    for (i = 0; i < n0; ++i) c[i] = x[i](t);
+    return c;
+  };
+};
+
+d3.interpolateObject = function(a, b) {
+  var i = {},
+      c = {},
+      k;
+  for (k in a) {
+    if (k in b) {
+      i[k] = d3_interpolateByName(k)(a[k], b[k]);
+    } else {
+      c[k] = a[k];
+    }
+  }
+  for (k in b) {
+    if (!(k in a)) {
+      c[k] = b[k];
+    }
+  }
+  return function(t) {
+    for (k in i) c[k] = i[k](t);
+    return c;
+  };
+}
+
+var d3_interpolate_number = /[-+]?(?:\d*\.?\d+)(?:[eE][-+]?\d+)?/g;
+
+function d3_interpolateByName(n) {
+  return n == "transform"
+      ? d3.interpolateTransform
+      : d3.interpolate;
+}
+
+d3.interpolators = [
+  d3.interpolateObject,
+  function(a, b) { return (b instanceof Array) && d3.interpolateArray(a, b); },
+  function(a, b) { return (typeof a === "string" || typeof b === "string") && d3.interpolateString(a + "", b + ""); },
+  function(a, b) { return (typeof b === "string" ? b in d3_rgb_names || /^(#|rgb\(|hsl\()/.test(b) : b instanceof d3_Rgb || b instanceof d3_Hsl) && d3.interpolateRgb(a, b); },
+  function(a, b) { return !isNaN(a = +a) && !isNaN(b = +b) && d3.interpolateNumber(a, b); }
+];
+function d3_uninterpolateNumber(a, b) {
+  b = b - (a = +a) ? 1 / (b - a) : 0;
+  return function(x) { return (x - a) * b; };
+}
+
+function d3_uninterpolateClamp(a, b) {
+  b = b - (a = +a) ? 1 / (b - a) : 0;
+  return function(x) { return Math.max(0, Math.min(1, (x - a) * b)); };
+}
+d3.rgb = function(r, g, b) {
+  return arguments.length === 1
+      ? (r instanceof d3_Rgb ? d3_rgb(r.r, r.g, r.b)
+      : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb))
+      : d3_rgb(~~r, ~~g, ~~b);
+};
+
+function d3_rgb(r, g, b) {
+  return new d3_Rgb(r, g, b);
+}
+
+function d3_Rgb(r, g, b) {
+  this.r = r;
+  this.g = g;
+  this.b = b;
+}
+
+d3_Rgb.prototype.brighter = function(k) {
+  k = Math.pow(0.7, arguments.length ? k : 1);
+  var r = this.r,
+      g = this.g,
+      b = this.b,
+      i = 30;
+  if (!r && !g && !b) return d3_rgb(i, i, i);
+  if (r && r < i) r = i;
+  if (g && g < i) g = i;
+  if (b && b < i) b = i;
+  return d3_rgb(
+      Math.min(255, Math.floor(r / k)),
+      Math.min(255, Math.floor(g / k)),
+      Math.min(255, Math.floor(b / k)));
+};
+
+d3_Rgb.prototype.darker = function(k) {
+  k = Math.pow(0.7, arguments.length ? k : 1);
+  return d3_rgb(
+      Math.floor(k * this.r),
+      Math.floor(k * this.g),
+      Math.floor(k * this.b));
+};
+
+d3_Rgb.prototype.hsl = function() {
+  return d3_rgb_hsl(this.r, this.g, this.b);
+};
+
+d3_Rgb.prototype.toString = function() {
+  return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);
+};
+
+function d3_rgb_hex(v) {
+  return v < 0x10
+      ? "0" + Math.max(0, v).toString(16)
+      : Math.min(255, v).toString(16);
+}
+
+function d3_rgb_parse(format, rgb, hsl) {
+  var r = 0, // red channel; int in [0, 255]
+      g = 0, // green channel; int in [0, 255]
+      b = 0, // blue channel; int in [0, 255]
+      m1, // CSS color specification match
+      m2, // CSS color specification type (e.g., rgb)
+      name;
+
+  /* Handle hsl, rgb. */
+  m1 = /([a-z]+)\((.*)\)/i.exec(format);
+  if (m1) {
+    m2 = m1[2].split(",");
+    switch (m1[1]) {
+      case "hsl": {
+        return hsl(
+          parseFloat(m2[0]), // degrees
+          parseFloat(m2[1]) / 100, // percentage
+          parseFloat(m2[2]) / 100 // percentage
+        );
+      }
+      case "rgb": {
+        return rgb(
+          d3_rgb_parseNumber(m2[0]),
+          d3_rgb_parseNumber(m2[1]),
+          d3_rgb_parseNumber(m2[2])
+        );
+      }
+    }
+  }
+
+  /* Named colors. */
+  if (name = d3_rgb_names[format]) return rgb(name.r, name.g, name.b);
+
+  /* Hexadecimal colors: #rgb and #rrggbb. */
+  if (format != null && format.charAt(0) === "#") {
+    if (format.length === 4) {
+      r = format.charAt(1); r += r;
+      g = format.charAt(2); g += g;
+      b = format.charAt(3); b += b;
+    } else if (format.length === 7) {
+      r = format.substring(1, 3);
+      g = format.substring(3, 5);
+      b = format.substring(5, 7);
+    }
+    r = parseInt(r, 16);
+    g = parseInt(g, 16);
+    b = parseInt(b, 16);
+  }
+
+  return rgb(r, g, b);
+}
+
+function d3_rgb_hsl(r, g, b) {
+  var min = Math.min(r /= 255, g /= 255, b /= 255),
+      max = Math.max(r, g, b),
+      d = max - min,
+      h,
+      s,
+      l = (max + min) / 2;
+  if (d) {
+    s = l < .5 ? d / (max + min) : d / (2 - max - min);
+    if (r == max) h = (g - b) / d + (g < b ? 6 : 0);
+    else if (g == max) h = (b - r) / d + 2;
+    else h = (r - g) / d + 4;
+    h *= 60;
+  } else {
+    s = h = 0;
+  }
+  return d3_hsl(h, s, l);
+}
+
+function d3_rgb_parseNumber(c) { // either integer or percentage
+  var f = parseFloat(c);
+  return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f;
+}
+
+var d3_rgb_names = {
+  aliceblue: "#f0f8ff",
+  antiquewhite: "#faebd7",
+  aqua: "#00ffff",
+  aquamarine: "#7fffd4",
+  azure: "#f0ffff",
+  beige: "#f5f5dc",
+  bisque: "#ffe4c4",
+  black: "#000000",
+  blanchedalmond: "#ffebcd",
+  blue: "#0000ff",
+  blueviolet: "#8a2be2",
+  brown: "#a52a2a",
+  burlywood: "#deb887",
+  cadetblue: "#5f9ea0",
+  chartreuse: "#7fff00",
+  chocolate: "#d2691e",
+  coral: "#ff7f50",
+  cornflowerblue: "#6495ed",
+  cornsilk: "#fff8dc",
+  crimson: "#dc143c",
+  cyan: "#00ffff",
+  darkblue: "#00008b",
+  darkcyan: "#008b8b",
+  darkgoldenrod: "#b8860b",
+  darkgray: "#a9a9a9",
+  darkgreen: "#006400",
+  darkgrey: "#a9a9a9",
+  darkkhaki: "#bdb76b",
+  darkmagenta: "#8b008b",
+  darkolivegreen: "#556b2f",
+  darkorange: "#ff8c00",
+  darkorchid: "#9932cc",
+  darkred: "#8b0000",
+  darksalmon: "#e9967a",
+  darkseagreen: "#8fbc8f",
+  darkslateblue: "#483d8b",
+  darkslategray: "#2f4f4f",
+  darkslategrey: "#2f4f4f",
+  darkturquoise: "#00ced1",
+  darkviolet: "#9400d3",
+  deeppink: "#ff1493",
+  deepskyblue: "#00bfff",
+  dimgray: "#696969",
+  dimgrey: "#696969",
+  dodgerblue: "#1e90ff",
+  firebrick: "#b22222",
+  floralwhite: "#fffaf0",
+  forestgreen: "#228b22",
+  fuchsia: "#ff00ff",
+  gainsboro: "#dcdcdc",
+  ghostwhite: "#f8f8ff",
+  gold: "#ffd700",
+  goldenrod: "#daa520",
+  gray: "#808080",
+  green: "#008000",
+  greenyellow: "#adff2f",
+  grey: "#808080",
+  honeydew: "#f0fff0",
+  hotpink: "#ff69b4",
+  indianred: "#cd5c5c",
+  indigo: "#4b0082",
+  ivory: "#fffff0",
+  khaki: "#f0e68c",
+  lavender: "#e6e6fa",
+  lavenderblush: "#fff0f5",
+  lawngreen: "#7cfc00",
+  lemonchiffon: "#fffacd",
+  lightblue: "#add8e6",
+  lightcoral: "#f08080",
+  lightcyan: "#e0ffff",
+  lightgoldenrodyellow: "#fafad2",
+  lightgray: "#d3d3d3",
+  lightgreen: "#90ee90",
+  lightgrey: "#d3d3d3",
+  lightpink: "#ffb6c1",
+  lightsalmon: "#ffa07a",
+  lightseagreen: "#20b2aa",
+  lightskyblue: "#87cefa",
+  lightslategray: "#778899",
+  lightslategrey: "#778899",
+  lightsteelblue: "#b0c4de",
+  lightyellow: "#ffffe0",
+  lime: "#00ff00",
+  limegreen: "#32cd32",
+  linen: "#faf0e6",
+  magenta: "#ff00ff",
+  maroon: "#800000",
+  mediumaquamarine: "#66cdaa",
+  mediumblue: "#0000cd",
+  mediumorchid: "#ba55d3",
+  mediumpurple: "#9370db",
+  mediumseagreen: "#3cb371",
+  mediumslateblue: "#7b68ee",
+  mediumspringgreen: "#00fa9a",
+  mediumturquoise: "#48d1cc",
+  mediumvioletred: "#c71585",
+  midnightblue: "#191970",
+  mintcream: "#f5fffa",
+  mistyrose: "#ffe4e1",
+  moccasin: "#ffe4b5",
+  navajowhite: "#ffdead",
+  navy: "#000080",
+  oldlace: "#fdf5e6",
+  olive: "#808000",
+  olivedrab: "#6b8e23",
+  orange: "#ffa500",
+  orangered: "#ff4500",
+  orchid: "#da70d6",
+  palegoldenrod: "#eee8aa",
+  palegreen: "#98fb98",
+  paleturquoise: "#afeeee",
+  palevioletred: "#db7093",
+  papayawhip: "#ffefd5",
+  peachpuff: "#ffdab9",
+  peru: "#cd853f",
+  pink: "#ffc0cb",
+  plum: "#dda0dd",
+  powderblue: "#b0e0e6",
+  purple: "#800080",
+  red: "#ff0000",
+  rosybrown: "#bc8f8f",
+  royalblue: "#4169e1",
+  saddlebrown: "#8b4513",
+  salmon: "#fa8072",
+  sandybrown: "#f4a460",
+  seagreen: "#2e8b57",
+  seashell: "#fff5ee",
+  sienna: "#a0522d",
+  silver: "#c0c0c0",
+  skyblue: "#87ceeb",
+  slateblue: "#6a5acd",
+  slategray: "#708090",
+  slategrey: "#708090",
+  snow: "#fffafa",
+  springgreen: "#00ff7f",
+  steelblue: "#4682b4",
+  tan: "#d2b48c",
+  teal: "#008080",
+  thistle: "#d8bfd8",
+  tomato: "#ff6347",
+  turquoise: "#40e0d0",
+  violet: "#ee82ee",
+  wheat: "#f5deb3",
+  white: "#ffffff",
+  whitesmoke: "#f5f5f5",
+  yellow: "#ffff00",
+  yellowgreen: "#9acd32"
+};
+
+for (var d3_rgb_name in d3_rgb_names) {
+  d3_rgb_names[d3_rgb_name] = d3_rgb_parse(
+      d3_rgb_names[d3_rgb_name],
+      d3_rgb,
+      d3_hsl_rgb);
+}
+d3.hsl = function(h, s, l) {
+  return arguments.length === 1
+      ? (h instanceof d3_Hsl ? d3_hsl(h.h, h.s, h.l)
+      : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl))
+      : d3_hsl(+h, +s, +l);
+};
+
+function d3_hsl(h, s, l) {
+  return new d3_Hsl(h, s, l);
+}
+
+function d3_Hsl(h, s, l) {
+  this.h = h;
+  this.s = s;
+  this.l = l;
+}
+
+d3_Hsl.prototype.brighter = function(k) {
+  k = Math.pow(0.7, arguments.length ? k : 1);
+  return d3_hsl(this.h, this.s, this.l / k);
+};
+
+d3_Hsl.prototype.darker = function(k) {
+  k = Math.pow(0.7, arguments.length ? k : 1);
+  return d3_hsl(this.h, this.s, k * this.l);
+};
+
+d3_Hsl.prototype.rgb = function() {
+  return d3_hsl_rgb(this.h, this.s, this.l);
+};
+
+d3_Hsl.prototype.toString = function() {
+  return this.rgb().toString();
+};
+
+function d3_hsl_rgb(h, s, l) {
+  var m1,
+      m2;
+
+  /* Some simple corrections for h, s and l. */
+  h = h % 360; if (h < 0) h += 360;
+  s = s < 0 ? 0 : s > 1 ? 1 : s;
+  l = l < 0 ? 0 : l > 1 ? 1 : l;
+
+  /* From FvD 13.37, CSS Color Module Level 3 */
+  m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
+  m1 = 2 * l - m2;
+
+  function v(h) {
+    if (h > 360) h -= 360;
+    else if (h < 0) h += 360;
+    if (h < 60) return m1 + (m2 - m1) * h / 60;
+    if (h < 180) return m2;
+    if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
+    return m1;
+  }
+
+  function vv(h) {
+    return Math.round(v(h) * 255);
+  }
+
+  return d3_rgb(vv(h + 120), vv(h), vv(h - 120));
+}
+function d3_selection(groups) {
+  d3_arraySubclass(groups, d3_selectionPrototype);
+  return groups;
+}
+
+var d3_select = function(s, n) { return n.querySelector(s); },
+    d3_selectAll = function(s, n) { return n.querySelectorAll(s); },
+    d3_selectRoot = document.documentElement,
+    d3_selectMatcher = d3_selectRoot.matchesSelector || d3_selectRoot.webkitMatchesSelector || d3_selectRoot.mozMatchesSelector || d3_selectRoot.msMatchesSelector || d3_selectRoot.oMatchesSelector,
+    d3_selectMatches = function(n, s) { return d3_selectMatcher.call(n, s); };
+
+// Prefer Sizzle, if available.
+if (typeof Sizzle === "function") {
+  d3_select = function(s, n) { return Sizzle(s, n)[0]; };
+  d3_selectAll = function(s, n) { return Sizzle.uniqueSort(Sizzle(s, n)); };
+  d3_selectMatches = Sizzle.matchesSelector;
+}
+
+var d3_selectionPrototype = [];
+
+d3.selection = function() {
+  return d3_selectionRoot;
+};
+
+d3.selection.prototype = d3_selectionPrototype;
+d3_selectionPrototype.select = function(selector) {
+  var subgroups = [],
+      subgroup,
+      subnode,
+      group,
+      node;
+
+  if (typeof selector !== "function") selector = d3_selection_selector(selector);
+
+  for (var j = -1, m = this.length; ++j < m;) {
+    subgroups.push(subgroup = []);
+    subgroup.parentNode = (group = this[j]).parentNode;
+    for (var i = -1, n = group.length; ++i < n;) {
+      if (node = group[i]) {
+        subgroup.push(subnode = selector.call(node, node.__data__, i));
+        if (subnode && "__data__" in node) subnode.__data__ = node.__data__;
+      } else {
+        subgroup.push(null);
+      }
+    }
+  }
+
+  return d3_selection(subgroups);
+};
+
+function d3_selection_selector(selector) {
+  return function() {
+    return d3_select(selector, this);
+  };
+}
+d3_selectionPrototype.selectAll = function(selector) {
+  var subgroups = [],
+      subgroup,
+      node;
+
+  if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
+
+  for (var j = -1, m = this.length; ++j < m;) {
+    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
+      if (node = group[i]) {
+        subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i)));
+        subgroup.parentNode = node;
+      }
+    }
+  }
+
+  return d3_selection(subgroups);
+};
+
+function d3_selection_selectorAll(selector) {
+  return function() {
+    return d3_selectAll(selector, this);
+  };
+}
+d3_selectionPrototype.attr = function(name, value) {
+  name = d3.ns.qualify(name);
+
+  // If no value is specified, return the first value.
+  if (arguments.length < 2) {
+    var node = this.node();
+    return name.local
+        ? node.getAttributeNS(name.space, name.local)
+        : node.getAttribute(name);
+  }
+
+  function attrNull() {
+    this.removeAttribute(name);
+  }
+
+  function attrNullNS() {
+    this.removeAttributeNS(name.space, name.local);
+  }
+
+  function attrConstant() {
+    this.setAttribute(name, value);
+  }
+
+  function attrConstantNS() {
+    this.setAttributeNS(name.space, name.local, value);
+  }
+
+  function attrFunction() {
+    var x = value.apply(this, arguments);
+    if (x == null) this.removeAttribute(name);
+    else this.setAttribute(name, x);
+  }
+
+  function attrFunctionNS() {
+    var x = value.apply(this, arguments);
+    if (x == null) this.removeAttributeNS(name.space, name.local);
+    else this.setAttributeNS(name.space, name.local, x);
+  }
+
+  return this.each(value == null
+      ? (name.local ? attrNullNS : attrNull) : (typeof value === "function"
+      ? (name.local ? attrFunctionNS : attrFunction)
+      : (name.local ? attrConstantNS : attrConstant)));
+};
+d3_selectionPrototype.classed = function(name, value) {
+  var names = name.split(d3_selection_classedWhitespace),
+      n = names.length,
+      i = -1;
+  if (arguments.length > 1) {
+    while (++i < n) d3_selection_classed.call(this, names[i], value);
+    return this;
+  } else {
+    while (++i < n) if (!d3_selection_classed.call(this, names[i])) return false;
+    return true;
+  }
+};
+
+var d3_selection_classedWhitespace = /\s+/g;
+
+function d3_selection_classed(name, value) {
+  var re = new RegExp("(^|\\s+)" + d3.requote(name) + "(\\s+|$)", "g");
+
+  // If no value is specified, return the first value.
+  if (arguments.length < 2) {
+    var node = this.node();
+    if (c = node.classList) return c.contains(name);
+    var c = node.className;
+    re.lastIndex = 0;
+    return re.test(c.baseVal != null ? c.baseVal : c);
+  }
+
+  function classedAdd() {
+    if (c = this.classList) return c.add(name);
+    var c = this.className,
+        cb = c.baseVal != null,
+        cv = cb ? c.baseVal : c;
+    re.lastIndex = 0;
+    if (!re.test(cv)) {
+      cv = d3_collapse(cv + " " + name);
+      if (cb) c.baseVal = cv;
+      else this.className = cv;
+    }
+  }
+
+  function classedRemove() {
+    if (c = this.classList) return c.remove(name);
+    var c = this.className,
+        cb = c.baseVal != null,
+        cv = cb ? c.baseVal : c;
+    cv = d3_collapse(cv.replace(re, " "));
+    if (cb) c.baseVal = cv;
+    else this.className = cv;
+  }
+
+  function classedFunction() {
+    (value.apply(this, arguments)
+        ? classedAdd
+        : classedRemove).call(this);
+  }
+
+  return this.each(typeof value === "function"
+      ? classedFunction : value
+      ? classedAdd
+      : classedRemove);
+}
+d3_selectionPrototype.style = function(name, value, priority) {
+  if (arguments.length < 3) priority = "";
+
+  // If no value is specified, return the first value.
+  if (arguments.length < 2) return window
+      .getComputedStyle(this.node(), null)
+      .getPropertyValue(name);
+
+  function styleNull() {
+    this.style.removeProperty(name);
+  }
+
+  function styleConstant() {
+    this.style.setProperty(name, value, priority);
+  }
+
+  function styleFunction() {
+    var x = value.apply(this, arguments);
+    if (x == null) this.style.removeProperty(name);
+    else this.style.setProperty(name, x, priority);
+  }
+
+  return this.each(value == null
+      ? styleNull : (typeof value === "function"
+      ? styleFunction : styleConstant));
+};
+d3_selectionPrototype.property = function(name, value) {
+
+  // If no value is specified, return the first value.
+  if (arguments.length < 2) return this.node()[name];
+
+  function propertyNull() {
+    delete this[name];
+  }
+
+  function propertyConstant() {
+    this[name] = value;
+  }
+
+  function propertyFunction() {
+    var x = value.apply(this, arguments);
+    if (x == null) delete this[name];
+    else this[name] = x;
+  }
+
+  return this.each(value == null
+      ? propertyNull : (typeof value === "function"
+      ? propertyFunction : propertyConstant));
+};
+d3_selectionPrototype.text = function(value) {
+  return arguments.length < 1
+      ? this.node().textContent : this.each(typeof value === "function"
+      ? function() { var v = value.apply(this, arguments); this.textContent = v == null ? "" : v; } : value == null
+      ? function() { this.textContent = ""; }
+      : function() { this.textContent = value; });
+};
+d3_selectionPrototype.html = function(value) {
+  return arguments.length < 1
+      ? this.node().innerHTML : this.each(typeof value === "function"
+      ? function() { var v = value.apply(this, arguments); this.innerHTML = v == null ? "" : v; } : value == null
+      ? function() { this.innerHTML = ""; }
+      : function() { this.innerHTML = value; });
+};
+// TODO append(node)?
+// TODO append(function)?
+d3_selectionPrototype.append = function(name) {
+  name = d3.ns.qualify(name);
+
+  function append() {
+    return this.appendChild(document.createElementNS(this.namespaceURI, name));
+  }
+
+  function appendNS() {
+    return this.appendChild(document.createElementNS(name.space, name.local));
+  }
+
+  return this.select(name.local ? appendNS : append);
+};
+// TODO insert(node, function)?
+// TODO insert(function, string)?
+// TODO insert(function, function)?
+d3_selectionPrototype.insert = function(name, before) {
+  name = d3.ns.qualify(name);
+
+  function insert() {
+    return this.insertBefore(
+        document.createElementNS(this.namespaceURI, name),
+        d3_select(before, this));
+  }
+
+  function insertNS() {
+    return this.insertBefore(
+        document.createElementNS(name.space, name.local),
+        d3_select(before, this));
+  }
+
+  return this.select(name.local ? insertNS : insert);
+};
+// TODO remove(selector)?
+// TODO remove(node)?
+// TODO remove(function)?
+d3_selectionPrototype.remove = function() {
+  return this.each(function() {
+    var parent = this.parentNode;
+    if (parent) parent.removeChild(this);
+  });
+};
+// TODO data(null) for clearing data?
+d3_selectionPrototype.data = function(data, join) {
+  var enter = [],
+      update = [],
+      exit = [];
+
+  function bind(group, groupData) {
+    var i,
+        n = group.length,
+        m = groupData.length,
+        n0 = Math.min(n, m),
+        n1 = Math.max(n, m),
+        updateNodes = [],
+        enterNodes = [],
+        exitNodes = [],
+        node,
+        nodeData;
+
+    if (join) {
+      var nodeByKey = {},
+          keys = [],
+          key,
+          j = groupData.length;
+
+      for (i = -1; ++i < n;) {
+        key = join.call(node = group[i], node.__data__, i);
+        if (key in nodeByKey) {
+          exitNodes[j++] = node; // duplicate key
+        } else {
+          nodeByKey[key] = node;
+        }
+        keys.push(key);
+      }
+
+      for (i = -1; ++i < m;) {
+        node = nodeByKey[key = join.call(groupData, nodeData = groupData[i], i)];
+        if (node) {
+          node.__data__ = nodeData;
+          updateNodes[i] = node;
+          enterNodes[i] = exitNodes[i] = null;
+        } else {
+          enterNodes[i] = d3_selection_dataNode(nodeData);
+          updateNodes[i] = exitNodes[i] = null;
+        }
+        delete nodeByKey[key];
+      }
+
+      for (i = -1; ++i < n;) {
+        if (keys[i] in nodeByKey) {
+          exitNodes[i] = group[i];
+        }
+      }
+    } else {
+      for (i = -1; ++i < n0;) {
+        node = group[i];
+        nodeData = groupData[i];
+        if (node) {
+          node.__data__ = nodeData;
+          updateNodes[i] = node;
+          enterNodes[i] = exitNodes[i] = null;
+        } else {
+          enterNodes[i] = d3_selection_dataNode(nodeData);
+          updateNodes[i] = exitNodes[i] = null;
+        }
+      }
+      for (; i < m; ++i) {
+        enterNodes[i] = d3_selection_dataNode(groupData[i]);
+        updateNodes[i] = exitNodes[i] = null;
+      }
+      for (; i < n1; ++i) {
+        exitNodes[i] = group[i];
+        enterNodes[i] = updateNodes[i] = null;
+      }
+    }
+
+    enterNodes.update
+        = updateNodes;
+
+    enterNodes.parentNode
+        = updateNodes.parentNode
+        = exitNodes.parentNode
+        = group.parentNode;
+
+    enter.push(enterNodes);
+    update.push(updateNodes);
+    exit.push(exitNodes);
+  }
+
+  var i = -1,
+      n = this.length,
+      group;
+  if (typeof data === "function") {
+    while (++i < n) {
+      bind(group = this[i], data.call(group, group.parentNode.__data__, i));
+    }
+  } else {
+    while (++i < n) {
+      bind(group = this[i], data);
+    }
+  }
+
+  var selection = d3_selection(update);
+  selection.enter = function() { return d3_selection_enter(enter); };
+  selection.exit = function() { return d3_selection(exit); };
+  return selection;
+};
+
+function d3_selection_dataNode(data) {
+  return {__data__: data};
+}
+d3_selectionPrototype.filter = function(filter) {
+  var subgroups = [],
+      subgroup,
+      group,
+      node;
+
+  if (typeof filter !== "function") filter = d3_selection_filter(filter);
+
+  for (var j = 0, m = this.length; j < m; j++) {
+    subgroups.push(subgroup = []);
+    subgroup.parentNode = (group = this[j]).parentNode;
+    for (var i = 0, n = group.length; i < n; i++) {
+      if ((node = group[i]) && filter.call(node, node.__data__, i)) {
+        subgroup.push(node);
+      }
+    }
+  }
+
+  return d3_selection(subgroups);
+};
+
+function d3_selection_filter(selector) {
+  return function() {
+    return d3_selectMatches(this, selector);
+  };
+}
+d3_selectionPrototype.map = function(map) {
+  return this.each(function() {
+    this.__data__ = map.apply(this, arguments);
+  });
+};
+d3_selectionPrototype.order = function() {
+  for (var j = -1, m = this.length; ++j < m;) {
+    for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0;) {
+      if (node = group[i]) {
+        if (next) next.parentNode.insertBefore(node, next);
+        next = node;
+      }
+    }
+  }
+  return this;
+};
+d3_selectionPrototype.sort = function(comparator) {
+  comparator = d3_selection_sortComparator.apply(this, arguments);
+  for (var j = -1, m = this.length; ++j < m;) this[j].sort(comparator);
+  return this.order();
+};
+
+function d3_selection_sortComparator(comparator) {
+  if (!arguments.length) comparator = d3.ascending;
+  return function(a, b) {
+    return comparator(a && a.__data__, b && b.__data__);
+  };
+}
+// type can be namespaced, e.g., "click.foo"
+// listener can be null for removal
+d3_selectionPrototype.on = function(type, listener, capture) {
+  if (arguments.length < 3) capture = false;
+
+  // parse the type specifier
+  var name = "__on" + type, i = type.indexOf(".");
+  if (i > 0) type = type.substring(0, i);
+
+  // if called with only one argument, return the current listener
+  if (arguments.length < 2) return (i = this.node()[name]) && i._;
+
+  // remove the old event listener, and add the new event listener
+  return this.each(function(d, i) {
+    var node = this;
+
+    if (node[name]) node.removeEventListener(type, node[name], capture);
+    if (listener) node.addEventListener(type, node[name] = l, capture);
+
+    // wrapped event listener that preserves i
+    function l(e) {
+      var o = d3.event; // Events can be reentrant (e.g., focus).
+      d3.event = e;
+      try {
+        listener.call(node, node.__data__, i);
+      } finally {
+        d3.event = o;
+      }
+    }
+
+    // stash the unwrapped listener for retrieval
+    l._ = listener;
+  });
+};
+d3_selectionPrototype.each = function(callback) {
+  for (var j = -1, m = this.length; ++j < m;) {
+    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
+      var node = group[i];
+      if (node) callback.call(node, node.__data__, i, j);
+    }
+  }
+  return this;
+};
+//
+// Note: assigning to the arguments array simultaneously changes the value of
+// the corresponding argument!
+//
+// TODO The `this` argument probably shouldn't be the first argument to the
+// callback, anyway, since it's redundant. However, that will require a major
+// version bump due to backwards compatibility, so I'm not changing it right
+// away.
+//
+d3_selectionPrototype.call = function(callback) {
+  callback.apply(this, (arguments[0] = this, arguments));
+  return this;
+};
+d3_selectionPrototype.empty = function() {
+  return !this.node();
+};
+d3_selectionPrototype.node = function(callback) {
+  for (var j = 0, m = this.length; j < m; j++) {
+    for (var group = this[j], i = 0, n = group.length; i < n; i++) {
+      var node = group[i];
+      if (node) return node;
+    }
+  }
+  return null;
+};
+d3_selectionPrototype.transition = function() {
+  var subgroups = [],
+      subgroup,
+      node;
+
+  for (var j = -1, m = this.length; ++j < m;) {
+    subgroups.push(subgroup = []);
+    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
+      subgroup.push((node = group[i]) ? {node: node, delay: 0, duration: 250} : null);
+    }
+  }
+
+  return d3_transition(subgroups, d3_transitionInheritId || ++d3_transitionId, Date.now());
+};
+var d3_selectionRoot = d3_selection([[document]]);
+
+d3_selectionRoot[0].parentNode = d3_selectRoot;
+
+// TODO fast singleton implementation!
+// TODO select(function)
+d3.select = function(selector) {
+  return typeof selector === "string"
+      ? d3_selectionRoot.select(selector)
+      : d3_selection([[selector]]); // assume node
+};
+
+// TODO selectAll(function)
+d3.selectAll = function(selector) {
+  return typeof selector === "string"
+      ? d3_selectionRoot.selectAll(selector)
+      : d3_selection([d3_array(selector)]); // assume node[]
+};
+function d3_selection_enter(selection) {
+  d3_arraySubclass(selection, d3_selection_enterPrototype);
+  return selection;
+}
+
+var d3_selection_enterPrototype = [];
+
+d3_selection_enterPrototype.append = d3_selectionPrototype.append;
+d3_selection_enterPrototype.insert = d3_selectionPrototype.insert;
+d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;
+d3_selection_enterPrototype.node = d3_selectionPrototype.node;
+d3_selection_enterPrototype.select = function(selector) {
+  var subgroups = [],
+      subgroup,
+      subnode,
+      upgroup,
+      group,
+      node;
+
+  for (var j = -1, m = this.length; ++j < m;) {
+    upgroup = (group = this[j]).update;
+    subgroups.push(subgroup = []);
+    subgroup.parentNode = group.parentNode;
+    for (var i = -1, n = group.length; ++i < n;) {
+      if (node = group[i]) {
+        subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i));
+        subnode.__data__ = node.__data__;
+      } else {
+        subgroup.push(null);
+      }
+    }
+  }
+
+  return d3_selection(subgroups);
+};
+function d3_transition(groups, id, time) {
+  d3_arraySubclass(groups, d3_transitionPrototype);
+
+  var tweens = {},
+      event = d3.dispatch("start", "end"),
+      ease = d3_transitionEase;
+
+  groups.id = id;
+
+  groups.time = time;
+
+  groups.tween = function(name, tween) {
+    if (arguments.length < 2) return tweens[name];
+    if (tween == null) delete tweens[name];
+    else tweens[name] = tween;
+    return groups;
+  };
+
+  groups.ease = function(value) {
+    if (!arguments.length) return ease;
+    ease = typeof value === "function" ? value : d3.ease.apply(d3, arguments);
+    return groups;
+  };
+
+  groups.each = function(type, listener) {
+    if (arguments.length < 2) return d3_transition_each.call(groups, type);
+    event.on(type, listener);
+    return groups;
+  };
+
+  d3.timer(function(elapsed) {
+    groups.each(function(d, i, j) {
+      var tweened = [],
+          node = this,
+          delay = groups[j][i].delay,
+          duration = groups[j][i].duration,
+          lock = node.__transition__ || (node.__transition__ = {active: 0, count: 0});
+
+      ++lock.count;
+
+      delay <= elapsed ? start(elapsed) : d3.timer(start, delay, time);
+
+      function start(elapsed) {
+        if (lock.active > id) return stop();
+        lock.active = id;
+
+        for (var tween in tweens) {
+          if (tween = tweens[tween].call(node, d, i)) {
+            tweened.push(tween);
+          }
+        }
+
+        event.start.call(node, d, i);
+        if (!tick(elapsed)) d3.timer(tick, 0, time);
+        return 1;
+      }
+
+      function tick(elapsed) {
+        if (lock.active !== id) return stop();
+
+        var t = (elapsed - delay) / duration,
+            e = ease(t),
+            n = tweened.length;
+
+        while (n > 0) {
+          tweened[--n].call(node, e);
+        }
+
+        if (t >= 1) {
+          stop();
+          d3_transitionInheritId = id;
+          event.end.call(node, d, i);
+          d3_transitionInheritId = 0;
+          return 1;
+        }
+      }
+
+      function stop() {
+        if (!--lock.count) delete node.__transition__;
+        return 1;
+      }
+    });
+    return 1;
+  }, 0, time);
+
+  return groups;
+}
+
+var d3_transitionRemove = {};
+
+function d3_transitionNull(d, i, a) {
+  return a != "" && d3_transitionRemove;
+}
+
+function d3_transitionTween(name, b) {
+  var interpolate = d3_interpolateByName(name);
+
+  function transitionFunction(d, i, a) {
+    var v = b.call(this, d, i);
+    return v == null
+        ? a != "" && d3_transitionRemove
+        : a != v && interpolate(a, v);
+  }
+
+  function transitionString(d, i, a) {
+    return a != b && interpolate(a, b);
+  }
+
+  return typeof b === "function" ? transitionFunction
+      : b == null ? d3_transitionNull
+      : (b += "", transitionString);
+}
+
+var d3_transitionPrototype = [],
+    d3_transitionId = 0,
+    d3_transitionInheritId = 0,
+    d3_transitionEase = d3.ease("cubic-in-out");
+
+d3_transitionPrototype.call = d3_selectionPrototype.call;
+
+d3.transition = function() {
+  return d3_selectionRoot.transition();
+};
+
+d3.transition.prototype = d3_transitionPrototype;
+d3_transitionPrototype.select = function(selector) {
+  var subgroups = [],
+      subgroup,
+      subnode,
+      node;
+
+  if (typeof selector !== "function") selector = d3_selection_selector(selector);
+
+  for (var j = -1, m = this.length; ++j < m;) {
+    subgroups.push(subgroup = []);
+    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
+      if ((node = group[i]) && (subnode = selector.call(node.node, node.node.__data__, i))) {
+        if ("__data__" in node.node) subnode.__data__ = node.node.__data__;
+        subgroup.push({node: subnode, delay: node.delay, duration: node.duration});
+      } else {
+        subgroup.push(null);
+      }
+    }
+  }
+
+  return d3_transition(subgroups, this.id, this.time).ease(this.ease());
+};
+d3_transitionPrototype.selectAll = function(selector) {
+  var subgroups = [],
+      subgroup,
+      subnodes,
+      node;
+
+  if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
+
+  for (var j = -1, m = this.length; ++j < m;) {
+    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
+      if (node = group[i]) {
+        subnodes = selector.call(node.node, node.node.__data__, i);
+        subgroups.push(subgroup = []);
+        for (var k = -1, o = subnodes.length; ++k < o;) {
+          subgroup.push({node: subnodes[k], delay: node.delay, duration: node.duration});
+        }
+      }
+    }
+  }
+
+  return d3_transition(subgroups, this.id, this.time).ease(this.ease());
+};
+d3_transitionPrototype.attr = function(name, value) {
+  return this.attrTween(name, d3_transitionTween(name, value));
+};
+
+d3_transitionPrototype.attrTween = function(nameNS, tween) {
+  var name = d3.ns.qualify(nameNS);
+
+  function attrTween(d, i) {
+    var f = tween.call(this, d, i, this.getAttribute(name));
+    return f === d3_transitionRemove
+        ? (this.removeAttribute(name), null)
+        : f && function(t) { this.setAttribute(name, f(t)); };
+  }
+
+  function attrTweenNS(d, i) {
+    var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));
+    return f === d3_transitionRemove
+        ? (this.removeAttributeNS(name.space, name.local), null)
+        : f && function(t) { this.setAttributeNS(name.space, name.local, f(t)); };
+  }
+
+  return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween);
+};
+d3_transitionPrototype.style = function(name, value, priority) {
+  if (arguments.length < 3) priority = "";
+  return this.styleTween(name, d3_transitionTween(name, value), priority);
+};
+
+d3_transitionPrototype.styleTween = function(name, tween, priority) {
+  if (arguments.length < 3) priority = "";
+  return this.tween("style." + name, function(d, i) {
+    var f = tween.call(this, d, i, window.getComputedStyle(this, null).getPropertyValue(name));
+    return f === d3_transitionRemove
+        ? (this.style.removeProperty(name), null)
+        : f && function(t) { this.style.setProperty(name, f(t), priority); };
+  });
+};
+d3_transitionPrototype.text = function(value) {
+  return this.tween("text", function(d, i) {
+    this.textContent = typeof value === "function"
+        ? value.call(this, d, i)
+        : value;
+  });
+};
+d3_transitionPrototype.remove = function() {
+  return this.each("end", function() {
+    var p;
+    if (!this.__transition__ && (p = this.parentNode)) p.removeChild(this);
+  });
+};
+d3_transitionPrototype.delay = function(value) {
+  var groups = this;
+  return groups.each(typeof value === "function"
+      ? function(d, i, j) { groups[j][i].delay = +value.apply(this, arguments); }
+      : (value = +value, function(d, i, j) { groups[j][i].delay = value; }));
+};
+d3_transitionPrototype.duration = function(value) {
+  var groups = this;
+  return groups.each(typeof value === "function"
+      ? function(d, i, j) { groups[j][i].duration = +value.apply(this, arguments); }
+      : (value = +value, function(d, i, j) { groups[j][i].duration = value; }));
+};
+function d3_transition_each(callback) {
+  for (var j = 0, m = this.length; j < m; j++) {
+    for (var group = this[j], i = 0, n = group.length; i < n; i++) {
+      var node = group[i];
+      if (node) callback.call(node = node.node, node.__data__, i, j);
+    }
+  }
+  return this;
+}
+d3_transitionPrototype.transition = function() {
+  return this.select(d3_this);
+};
+var d3_timer_queue = null,
+    d3_timer_interval, // is an interval (or frame) active?
+    d3_timer_timeout; // is a timeout active?
+
+// The timer will continue to fire until callback returns true.
+d3.timer = function(callback, delay, then) {
+  var found = false,
+      t0,
+      t1 = d3_timer_queue;
+
+  if (arguments.length < 3) {
+    if (arguments.length < 2) delay = 0;
+    else if (!isFinite(delay)) return;
+    then = Date.now();
+  }
+
+  // See if the callback's already in the queue.
+  while (t1) {
+    if (t1.callback === callback) {
+      t1.then = then;
+      t1.delay = delay;
+      found = true;
+      break;
+    }
+    t0 = t1;
+    t1 = t1.next;
+  }
+
+  // Otherwise, add the callback to the queue.
+  if (!found) d3_timer_queue = {
+    callback: callback,
+    then: then,
+    delay: delay,
+    next: d3_timer_queue
+  };
+
+  // Start animatin'!
+  if (!d3_timer_interval) {
+    d3_timer_timeout = clearTimeout(d3_timer_timeout);
+    d3_timer_interval = 1;
+    d3_timer_frame(d3_timer_step);
+  }
+}
+
+function d3_timer_step() {
+  var elapsed,
+      now = Date.now(),
+      t1 = d3_timer_queue;
+
+  while (t1) {
+    elapsed = now - t1.then;
+    if (elapsed >= t1.delay) t1.flush = t1.callback(elapsed);
+    t1 = t1.next;
+  }
+
+  var delay = d3_timer_flush() - now;
+  if (delay > 24) {
+    if (isFinite(delay)) {
+      clearTimeout(d3_timer_timeout);
+      d3_timer_timeout = setTimeout(d3_timer_step, delay);
+    }
+    d3_timer_interval = 0;
+  } else {
+    d3_timer_interval = 1;
+    d3_timer_frame(d3_timer_step);
+  }
+}
+
+d3.timer.flush = function() {
+  var elapsed,
+      now = Date.now(),
+      t1 = d3_timer_queue;
+
+  while (t1) {
+    elapsed = now - t1.then;
+    if (!t1.delay) t1.flush = t1.callback(elapsed);
+    t1 = t1.next;
+  }
+
+  d3_timer_flush();
+};
+
+// Flush after callbacks, to avoid concurrent queue modification.
+function d3_timer_flush() {
+  var t0 = null,
+      t1 = d3_timer_queue,
+      then = Infinity;
+  while (t1) {
+    if (t1.flush) {
+      t1 = t0 ? t0.next = t1.next : d3_timer_queue = t1.next;
+    } else {
+      then = Math.min(then, t1.then + t1.delay);
+      t1 = (t0 = t1).next;
+    }
+  }
+  return then;
+}
+
+var d3_timer_frame = window.requestAnimationFrame
+    || window.webkitRequestAnimationFrame
+    || window.mozRequestAnimationFrame
+    || window.oRequestAnimationFrame
+    || window.msRequestAnimationFrame
+    || function(callback) { setTimeout(callback, 17); };
+d3.transform = function(string) {
+  var g = document.createElementNS(d3.ns.prefix.svg, "g"),
+      identity = {a: 1, b: 0, c: 0, d: 1, e: 0, f: 0};
+  return (d3.transform = function(string) {
+    g.setAttribute("transform", string);
+    var t = g.transform.baseVal.consolidate();
+    return new d3_transform(t ? t.matrix : identity);
+  })(string);
+};
+
+// Compute x-scale and normalize the first row.
+// Compute shear and make second row orthogonal to first.
+// Compute y-scale and normalize the second row.
+// Finally, compute the rotation.
+function d3_transform(m) {
+  var r0 = [m.a, m.b],
+      r1 = [m.c, m.d],
+      kx = d3_transformNormalize(r0),
+      kz = d3_transformDot(r0, r1),
+      ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;
+  if (r0[0] * r1[1] < r1[0] * r0[1]) {
+    r0[0] *= -1;
+    r0[1] *= -1;
+    kx *= -1;
+    kz *= -1;
+  }
+  this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_transformDegrees;
+  this.translate = [m.e, m.f];
+  this.scale = [kx, ky];
+  this.skew = ky ? Math.atan2(kz, ky) * d3_transformDegrees : 0;
+};
+
+d3_transform.prototype.toString = function() {
+  return "translate(" + this.translate
+      + ")rotate(" + this.rotate
+      + ")skewX(" + this.skew
+      + ")scale(" + this.scale
+      + ")";
+};
+
+function d3_transformDot(a, b) {
+  return a[0] * b[0] + a[1] * b[1];
+}
+
+function d3_transformNormalize(a) {
+  var k = Math.sqrt(d3_transformDot(a, a));
+  if (k) {
+    a[0] /= k;
+    a[1] /= k;
+  }
+  return k;
+}
+
+function d3_transformCombine(a, b, k) {
+  a[0] += k * b[0];
+  a[1] += k * b[1];
+  return a;
+}
+
+var d3_transformDegrees = 180 / Math.PI;
+function d3_noop() {}
+d3.scale = {};
+
+function d3_scaleExtent(domain) {
+  var start = domain[0], stop = domain[domain.length - 1];
+  return start < stop ? [start, stop] : [stop, start];
+}
+
+function d3_scaleRange(scale) {
+  return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());
+}
+function d3_scale_nice(domain, nice) {
+  var i0 = 0,
+      i1 = domain.length - 1,
+      x0 = domain[i0],
+      x1 = domain[i1],
+      dx;
+
+  if (x1 < x0) {
+    dx = i0; i0 = i1; i1 = dx;
+    dx = x0; x0 = x1; x1 = dx;
+  }
+
+  if (dx = x1 - x0) {
+    nice = nice(dx);
+    domain[i0] = nice.floor(x0);
+    domain[i1] = nice.ceil(x1);
+  }
+
+  return domain;
+}
+
+function d3_scale_niceDefault() {
+  return Math;
+}
+d3.scale.linear = function() {
+  return d3_scale_linear([0, 1], [0, 1], d3.interpolate, false);
+};
+
+function d3_scale_linear(domain, range, interpolate, clamp) {
+  var output,
+      input;
+
+  function rescale() {
+    var linear = domain.length == 2 ? d3_scale_bilinear : d3_scale_polylinear,
+        uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;
+    output = linear(domain, range, uninterpolate, interpolate);
+    input = linear(range, domain, uninterpolate, d3.interpolate);
+    return scale;
+  }
+
+  function scale(x) {
+    return output(x);
+  }
+
+  // Note: requires range is coercible to number!
+  scale.invert = function(y) {
+    return input(y);
+  };
+
+  scale.domain = function(x) {
+    if (!arguments.length) return domain;
+    domain = x.map(Number);
+    return rescale();
+  };
+
+  scale.range = function(x) {
+    if (!arguments.length) return range;
+    range = x;
+    return rescale();
+  };
+
+  scale.rangeRound = function(x) {
+    return scale.range(x).interpolate(d3.interpolateRound);
+  };
+
+  scale.clamp = function(x) {
+    if (!arguments.length) return clamp;
+    clamp = x;
+    return rescale();
+  };
+
+  scale.interpolate = function(x) {
+    if (!arguments.length) return interpolate;
+    interpolate = x;
+    return rescale();
+  };
+
+  scale.ticks = function(m) {
+    return d3_scale_linearTicks(domain, m);
+  };
+
+  scale.tickFormat = function(m) {
+    return d3_scale_linearTickFormat(domain, m);
+  };
+
+  scale.nice = function() {
+    d3_scale_nice(domain, d3_scale_linearNice);
+    return rescale();
+  };
+
+  scale.copy = function() {
+    return d3_scale_linear(domain, range, interpolate, clamp);
+  };
+
+  return rescale();
+};
+
+function d3_scale_linearRebind(scale, linear) {
+  return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
+}
+
+function d3_scale_linearNice(dx) {
+  dx = Math.pow(10, Math.round(Math.log(dx) / Math.LN10) - 1);
+  return {
+    floor: function(x) { return Math.floor(x / dx) * dx; },
+    ceil: function(x) { return Math.ceil(x / dx) * dx; }
+  };
+}
+
+// TODO Dates? Ugh.
+function d3_scale_linearTickRange(domain, m) {
+  var extent = d3_scaleExtent(domain),
+      span = extent[1] - extent[0],
+      step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)),
+      err = m / span * step;
+
+  // Filter ticks to get closer to the desired count.
+  if (err <= .15) step *= 10;
+  else if (err <= .35) step *= 5;
+  else if (err <= .75) step *= 2;
+
+  // Round start and stop values to step interval.
+  extent[0] = Math.ceil(extent[0] / step) * step;
+  extent[1] = Math.floor(extent[1] / step) * step + step * .5; // inclusive
+  extent[2] = step;
+  return extent;
+}
+
+function d3_scale_linearTicks(domain, m) {
+  return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));
+}
+
+function d3_scale_linearTickFormat(domain, m) {
+  return d3.format(",." + Math.max(0, -Math.floor(Math.log(d3_scale_linearTickRange(domain, m)[2]) / Math.LN10 + .01)) + "f");
+}
+function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {
+  var u = uninterpolate(domain[0], domain[1]),
+      i = interpolate(range[0], range[1]);
+  return function(x) {
+    return i(u(x));
+  };
+}
+function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {
+  var u = [],
+      i = [],
+      j = 0,
+      n = domain.length;
+
+  while (++j < n) {
+    u.push(uninterpolate(domain[j - 1], domain[j]));
+    i.push(interpolate(range[j - 1], range[j]));
+  }
+
+  return function(x) {
+    var j = d3.bisect(domain, x, 1, domain.length - 1) - 1;
+    return i[j](u[j](x));
+  };
+}
+d3.scale.log = function() {
+  return d3_scale_log(d3.scale.linear(), d3_scale_logp);
+};
+
+function d3_scale_log(linear, log) {
+  var pow = log.pow;
+
+  function scale(x) {
+    return linear(log(x));
+  }
+
+  scale.invert = function(x) {
+    return pow(linear.invert(x));
+  };
+
+  scale.domain = function(x) {
+    if (!arguments.length) return linear.domain().map(pow);
+    log = x[0] < 0 ? d3_scale_logn : d3_scale_logp;
+    pow = log.pow;
+    linear.domain(x.map(log));
+    return scale;
+  };
+
+  scale.nice = function() {
+    linear.domain(d3_scale_nice(linear.domain(), d3_scale_niceDefault));
+    return scale;
+  };
+
+  scale.ticks = function() {
+    var extent = d3_scaleExtent(linear.domain()),
+        ticks = [];
+    if (extent.every(isFinite)) {
+      var i = Math.floor(extent[0]),
+          j = Math.ceil(extent[1]),
+          u = pow(extent[0]),
+          v = pow(extent[1]);
+      if (log === d3_scale_logn) {
+        ticks.push(pow(i));
+        for (; i++ < j;) for (var k = 9; k > 0; k--) ticks.push(pow(i) * k);
+      } else {
+        for (; i < j; i++) for (var k = 1; k < 10; k++) ticks.push(pow(i) * k);
+        ticks.push(pow(i));
+      }
+      for (i = 0; ticks[i] < u; i++) {} // strip small values
+      for (j = ticks.length; ticks[j - 1] > v; j--) {} // strip big values
+      ticks = ticks.slice(i, j);
+    }
+    return ticks;
+  };
+
+  scale.tickFormat = function(n, format) {
+    if (arguments.length < 2) format = d3_scale_logFormat;
+    if (arguments.length < 1) return format;
+    var k = n / scale.ticks().length,
+        f = log === d3_scale_logn ? (e = -1e-12, Math.floor) : (e = 1e-12, Math.ceil),
+        e;
+    return function(d) {
+      return d / pow(f(log(d) + e)) < k ? format(d) : "";
+    };
+  };
+
+  scale.copy = function() {
+    return d3_scale_log(linear.copy(), log);
+  };
+
+  return d3_scale_linearRebind(scale, linear);
+};
+
+var d3_scale_logFormat = d3.format(".0e");
+
+function d3_scale_logp(x) {
+  return Math.log(x) / Math.LN10;
+}
+
+function d3_scale_logn(x) {
+  return -Math.log(-x) / Math.LN10;
+}
+
+d3_scale_logp.pow = function(x) {
+  return Math.pow(10, x);
+};
+
+d3_scale_logn.pow = function(x) {
+  return -Math.pow(10, -x);
+};
+d3.scale.pow = function() {
+  return d3_scale_pow(d3.scale.linear(), 1);
+};
+
+function d3_scale_pow(linear, exponent) {
+  var powp = d3_scale_powPow(exponent),
+      powb = d3_scale_powPow(1 / exponent);
+
+  function scale(x) {
+    return linear(powp(x));
+  }
+
+  scale.invert = function(x) {
+    return powb(linear.invert(x));
+  };
+
+  scale.domain = function(x) {
+    if (!arguments.length) return linear.domain().map(powb);
+    linear.domain(x.map(powp));
+    return scale;
+  };
+
+  scale.ticks = function(m) {
+    return d3_scale_linearTicks(scale.domain(), m);
+  };
+
+  scale.tickFormat = function(m) {
+    return d3_scale_linearTickFormat(scale.domain(), m);
+  };
+
+  scale.nice = function() {
+    return scale.domain(d3_scale_nice(scale.domain(), d3_scale_linearNice));
+  };
+
+  scale.exponent = function(x) {
+    if (!arguments.length) return exponent;
+    var domain = scale.domain();
+    powp = d3_scale_powPow(exponent = x);
+    powb = d3_scale_powPow(1 / exponent);
+    return scale.domain(domain);
+  };
+
+  scale.copy = function() {
+    return d3_scale_pow(linear.copy(), exponent);
+  };
+
+  return d3_scale_linearRebind(scale, linear);
+};
+
+function d3_scale_powPow(e) {
+  return function(x) {
+    return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);
+  };
+}
+d3.scale.sqrt = function() {
+  return d3.scale.pow().exponent(.5);
+};
+d3.scale.ordinal = function() {
+  return d3_scale_ordinal([], {t: "range", x: []});
+};
+
+function d3_scale_ordinal(domain, ranger) {
+  var index,
+      range,
+      rangeBand;
+
+  function scale(x) {
+    return range[((index[x] || (index[x] = domain.push(x))) - 1) % range.length];
+  }
+
+  function steps(start, step) {
+    return d3.range(domain.length).map(function(i) { return start + step * i; });
+  }
+
+  scale.domain = function(x) {
+    if (!arguments.length) return domain;
+    domain = [];
+    index = {};
+    var i = -1, n = x.length, xi;
+    while (++i < n) if (!index[xi = x[i]]) index[xi] = domain.push(xi);
+    return scale[ranger.t](ranger.x, ranger.p);
+  };
+
+  scale.range = function(x) {
+    if (!arguments.length) return range;
+    range = x;
+    rangeBand = 0;
+    ranger = {t: "range", x: x};
+    return scale;
+  };
+
+  scale.rangePoints = function(x, padding) {
+    if (arguments.length < 2) padding = 0;
+    var start = x[0],
+        stop = x[1],
+        step = (stop - start) / (domain.length - 1 + padding);
+    range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step);
+    rangeBand = 0;
+    ranger = {t: "rangePoints", x: x, p: padding};
+    return scale;
+  };
+
+  scale.rangeBands = function(x, padding) {
+    if (arguments.length < 2) padding = 0;
+    var start = x[0],
+        stop = x[1],
+        step = (stop - start) / (domain.length + padding);
+    range = steps(start + step * padding, step);
+    rangeBand = step * (1 - padding);
+    ranger = {t: "rangeBands", x: x, p: padding};
+    return scale;
+  };
+
+  scale.rangeRoundBands = function(x, padding) {
+    if (arguments.length < 2) padding = 0;
+    var start = x[0],
+        stop = x[1],
+        step = Math.floor((stop - start) / (domain.length + padding));
+    range = steps(start + Math.round((stop - start - (domain.length - padding) * step) / 2), step);
+    rangeBand = Math.round(step * (1 - padding));
+    ranger = {t: "rangeRoundBands", x: x, p: padding};
+    return scale;
+  };
+
+  scale.rangeBand = function() {
+    return rangeBand;
+  };
+
+  scale.rangeExtent = function() {
+    return ranger.t === "range" ? d3_scaleExtent(ranger.x) : ranger.x;
+  };
+
+  scale.copy = function() {
+    return d3_scale_ordinal(domain, ranger);
+  };
+
+  return scale.domain(domain);
+};
+/*
+ * This product includes color specifications and designs developed by Cynthia
+ * Brewer (http://colorbrewer.org/). See lib/colorbrewer for more information.
+ */
+
+d3.scale.category10 = function() {
+  return d3.scale.ordinal().range(d3_category10);
+};
+
+d3.scale.category20 = function() {
+  return d3.scale.ordinal().range(d3_category20);
+};
+
+d3.scale.category20b = function() {
+  return d3.scale.ordinal().range(d3_category20b);
+};
+
+d3.scale.category20c = function() {
+  return d3.scale.ordinal().range(d3_category20c);
+};
+
+var d3_category10 = [
+  "#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd",
+  "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf"
+];
+
+var d3_category20 = [
+  "#1f77b4", "#aec7e8",
+  "#ff7f0e", "#ffbb78",
+  "#2ca02c", "#98df8a",
+  "#d62728", "#ff9896",
+  "#9467bd", "#c5b0d5",
+  "#8c564b", "#c49c94",
+  "#e377c2", "#f7b6d2",
+  "#7f7f7f", "#c7c7c7",
+  "#bcbd22", "#dbdb8d",
+  "#17becf", "#9edae5"
+];
+
+var d3_category20b = [
+  "#393b79", "#5254a3", "#6b6ecf", "#9c9ede",
+  "#637939", "#8ca252", "#b5cf6b", "#cedb9c",
+  "#8c6d31", "#bd9e39", "#e7ba52", "#e7cb94",
+  "#843c39", "#ad494a", "#d6616b", "#e7969c",
+  "#7b4173", "#a55194", "#ce6dbd", "#de9ed6"
+];
+
+var d3_category20c = [
+  "#3182bd", "#6baed6", "#9ecae1", "#c6dbef",
+  "#e6550d", "#fd8d3c", "#fdae6b", "#fdd0a2",
+  "#31a354", "#74c476", "#a1d99b", "#c7e9c0",
+  "#756bb1", "#9e9ac8", "#bcbddc", "#dadaeb",
+  "#636363", "#969696", "#bdbdbd", "#d9d9d9"
+];
+d3.scale.quantile = function() {
+  return d3_scale_quantile([], []);
+};
+
+function d3_scale_quantile(domain, range) {
+  var thresholds;
+
+  function rescale() {
+    var k = 0,
+        n = domain.length,
+        q = range.length;
+    thresholds = [];
+    while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);
+    return scale;
+  }
+
+  function scale(x) {
+    if (isNaN(x = +x)) return NaN;
+    return range[d3.bisect(thresholds, x)];
+  }
+
+  scale.domain = function(x) {
+    if (!arguments.length) return domain;
+    domain = x.filter(function(d) { return !isNaN(d); }).sort(d3.ascending);
+    return rescale();
+  };
+
+  scale.range = function(x) {
+    if (!arguments.length) return range;
+    range = x;
+    return rescale();
+  };
+
+  scale.quantiles = function() {
+    return thresholds;
+  };
+
+  scale.copy = function() {
+    return d3_scale_quantile(domain, range); // copy on write!
+  };
+
+  return rescale();
+};
+d3.scale.quantize = function() {
+  return d3_scale_quantize(0, 1, [0, 1]);
+};
+
+function d3_scale_quantize(x0, x1, range) {
+  var kx, i;
+
+  function scale(x) {
+    return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];
+  }
+
+  function rescale() {
+    kx = range.length / (x1 - x0);
+    i = range.length - 1;
+    return scale;
+  }
+
+  scale.domain = function(x) {
+    if (!arguments.length) return [x0, x1];
+    x0 = +x[0];
+    x1 = +x[x.length - 1];
+    return rescale();
+  };
+
+  scale.range = function(x) {
+    if (!arguments.length) return range;
+    range = x;
+    return rescale();
+  };
+
+  scale.copy = function() {
+    return d3_scale_quantize(x0, x1, range); // copy on write
+  };
+
+  return rescale();
+};
+d3.svg = {};
+d3.svg.arc = function() {
+  var innerRadius = d3_svg_arcInnerRadius,
+      outerRadius = d3_svg_arcOuterRadius,
+      startAngle = d3_svg_arcStartAngle,
+      endAngle = d3_svg_arcEndAngle;
+
+  function arc() {
+    var r0 = innerRadius.apply(this, arguments),
+        r1 = outerRadius.apply(this, arguments),
+        a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset,
+        a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset,
+        da = (a1 < a0 && (da = a0, a0 = a1, a1 = da), a1 - a0),
+        df = da < Math.PI ? "0" : "1",
+        c0 = Math.cos(a0),
+        s0 = Math.sin(a0),
+        c1 = Math.cos(a1),
+        s1 = Math.sin(a1);
+    return da >= d3_svg_arcMax
+      ? (r0
+      ? "M0," + r1
+      + "A" + r1 + "," + r1 + " 0 1,1 0," + (-r1)
+      + "A" + r1 + "," + r1 + " 0 1,1 0," + r1
+      + "M0," + r0
+      + "A" + r0 + "," + r0 + " 0 1,0 0," + (-r0)
+      + "A" + r0 + "," + r0 + " 0 1,0 0," + r0
+      + "Z"
+      : "M0," + r1
+      + "A" + r1 + "," + r1 + " 0 1,1 0," + (-r1)
+      + "A" + r1 + "," + r1 + " 0 1,1 0," + r1
+      + "Z")
+      : (r0
+      ? "M" + r1 * c0 + "," + r1 * s0
+      + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1
+      + "L" + r0 * c1 + "," + r0 * s1
+      + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0
+      + "Z"
+      : "M" + r1 * c0 + "," + r1 * s0
+      + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1
+      + "L0,0"
+      + "Z");
+  }
+
+  arc.innerRadius = function(v) {
+    if (!arguments.length) return innerRadius;
+    innerRadius = d3.functor(v);
+    return arc;
+  };
+
+  arc.outerRadius = function(v) {
+    if (!arguments.length) return outerRadius;
+    outerRadius = d3.functor(v);
+    return arc;
+  };
+
+  arc.startAngle = function(v) {
+    if (!arguments.length) return startAngle;
+    startAngle = d3.functor(v);
+    return arc;
+  };
+
+  arc.endAngle = function(v) {
+    if (!arguments.length) return endAngle;
+    endAngle = d3.functor(v);
+    return arc;
+  };
+
+  arc.centroid = function() {
+    var r = (innerRadius.apply(this, arguments)
+        + outerRadius.apply(this, arguments)) / 2,
+        a = (startAngle.apply(this, arguments)
+        + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset;
+    return [Math.cos(a) * r, Math.sin(a) * r];
+  };
+
+  return arc;
+};
+
+var d3_svg_arcOffset = -Math.PI / 2,
+    d3_svg_arcMax = 2 * Math.PI - 1e-6;
+
+function d3_svg_arcInnerRadius(d) {
+  return d.innerRadius;
+}
+
+function d3_svg_arcOuterRadius(d) {
+  return d.outerRadius;
+}
+
+function d3_svg_arcStartAngle(d) {
+  return d.startAngle;
+}
+
+function d3_svg_arcEndAngle(d) {
+  return d.endAngle;
+}
+function d3_svg_line(projection) {
+  var x = d3_svg_lineX,
+      y = d3_svg_lineY,
+      interpolate = "linear",
+      interpolator = d3_svg_lineInterpolators[interpolate],
+      tension = .7;
+
+  function line(d) {
+    return d.length < 1 ? null : "M" + interpolator(projection(d3_svg_linePoints(this, d, x, y)), tension);
+  }
+
+  line.x = function(v) {
+    if (!arguments.length) return x;
+    x = v;
+    return line;
+  };
+
+  line.y = function(v) {
+    if (!arguments.length) return y;
+    y = v;
+    return line;
+  };
+
+  line.interpolate = function(v) {
+    if (!arguments.length) return interpolate;
+    interpolator = d3_svg_lineInterpolators[interpolate = v];
+    return line;
+  };
+
+  line.tension = function(v) {
+    if (!arguments.length) return tension;
+    tension = v;
+    return line;
+  };
+
+  return line;
+}
+
+d3.svg.line = function() {
+  return d3_svg_line(Object);
+};
+
+// Converts the specified array of data into an array of points
+// (x-y tuples), by evaluating the specified `x` and `y` functions on each
+// data point. The `this` context of the evaluated functions is the specified
+// "self" object; each function is passed the current datum and index.
+function d3_svg_linePoints(self, d, x, y) {
+  var points = [],
+      i = -1,
+      n = d.length,
+      fx = typeof x === "function",
+      fy = typeof y === "function",
+      value;
+  if (fx && fy) {
+    while (++i < n) points.push([
+      x.call(self, value = d[i], i),
+      y.call(self, value, i)
+    ]);
+  } else if (fx) {
+    while (++i < n) points.push([x.call(self, d[i], i), y]);
+  } else if (fy) {
+    while (++i < n) points.push([x, y.call(self, d[i], i)]);
+  } else {
+    while (++i < n) points.push([x, y]);
+  }
+  return points;
+}
+
+// The default `x` property, which references d[0].
+function d3_svg_lineX(d) {
+  return d[0];
+}
+
+// The default `y` property, which references d[1].
+function d3_svg_lineY(d) {
+  return d[1];
+}
+
+// The various interpolators supported by the `line` class.
+var d3_svg_lineInterpolators = {
+  "linear": d3_svg_lineLinear,
+  "step-before": d3_svg_lineStepBefore,
+  "step-after": d3_svg_lineStepAfter,
+  "basis": d3_svg_lineBasis,
+  "basis-open": d3_svg_lineBasisOpen,
+  "basis-closed": d3_svg_lineBasisClosed,
+  "bundle": d3_svg_lineBundle,
+  "cardinal": d3_svg_lineCardinal,
+  "cardinal-open": d3_svg_lineCardinalOpen,
+  "cardinal-closed": d3_svg_lineCardinalClosed,
+  "monotone": d3_svg_lineMonotone
+};
+
+// Linear interpolation; generates "L" commands.
+function d3_svg_lineLinear(points) {
+  var i = 0,
+      n = points.length,
+      p = points[0],
+      path = [p[0], ",", p[1]];
+  while (++i < n) path.push("L", (p = points[i])[0], ",", p[1]);
+  return path.join("");
+}
+
+// Step interpolation; generates "H" and "V" commands.
+function d3_svg_lineStepBefore(points) {
+  var i = 0,
+      n = points.length,
+      p = points[0],
+      path = [p[0], ",", p[1]];
+  while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]);
+  return path.join("");
+}
+
+// Step interpolation; generates "H" and "V" commands.
+function d3_svg_lineStepAfter(points) {
+  var i = 0,
+      n = points.length,
+      p = points[0],
+      path = [p[0], ",", p[1]];
+  while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]);
+  return path.join("");
+}
+
+// Open cardinal spline interpolation; generates "C" commands.
+function d3_svg_lineCardinalOpen(points, tension) {
+  return points.length < 4
+      ? d3_svg_lineLinear(points)
+      : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1),
+        d3_svg_lineCardinalTangents(points, tension));
+}
+
+// Closed cardinal spline interpolation; generates "C" commands.
+function d3_svg_lineCardinalClosed(points, tension) {
+  return points.length < 3
+      ? d3_svg_lineLinear(points)
+      : points[0] + d3_svg_lineHermite((points.push(points[0]), points),
+        d3_svg_lineCardinalTangents([points[points.length - 2]]
+        .concat(points, [points[1]]), tension));
+}
+
+// Cardinal spline interpolation; generates "C" commands.
+function d3_svg_lineCardinal(points, tension, closed) {
+  return points.length < 3
+      ? d3_svg_lineLinear(points)
+      : points[0] + d3_svg_lineHermite(points,
+        d3_svg_lineCardinalTangents(points, tension));
+}
+
+// Hermite spline construction; generates "C" commands.
+function d3_svg_lineHermite(points, tangents) {
+  if (tangents.length < 1
+      || (points.length != tangents.length
+      && points.length != tangents.length + 2)) {
+    return d3_svg_lineLinear(points);
+  }
+
+  var quad = points.length != tangents.length,
+      path = "",
+      p0 = points[0],
+      p = points[1],
+      t0 = tangents[0],
+      t = t0,
+      pi = 1;
+
+  if (quad) {
+    path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3)
+        + "," + p[0] + "," + p[1];
+    p0 = points[1];
+    pi = 2;
+  }
+
+  if (tangents.length > 1) {
+    t = tangents[1];
+    p = points[pi];
+    pi++;
+    path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1])
+        + "," + (p[0] - t[0]) + "," + (p[1] - t[1])
+        + "," + p[0] + "," + p[1];
+    for (var i = 2; i < tangents.length; i++, pi++) {
+      p = points[pi];
+      t = tangents[i];
+      path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1])
+          + "," + p[0] + "," + p[1];
+    }
+  }
+
+  if (quad) {
+    var lp = points[pi];
+    path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3)
+        + "," + lp[0] + "," + lp[1];
+  }
+
+  return path;
+}
+
+// Generates tangents for a cardinal spline.
+function d3_svg_lineCardinalTangents(points, tension) {
+  var tangents = [],
+      a = (1 - tension) / 2,
+      p0,
+      p1 = points[0],
+      p2 = points[1],
+      i = 1,
+      n = points.length;
+  while (++i < n) {
+    p0 = p1;
+    p1 = p2;
+    p2 = points[i];
+    tangents.push([a * (p2[0] - p0[0]), a * (p2[1] - p0[1])]);
+  }
+  return tangents;
+}
+
+// B-spline interpolation; generates "C" commands.
+function d3_svg_lineBasis(points) {
+  if (points.length < 3) return d3_svg_lineLinear(points);
+  var i = 1,
+      n = points.length,
+      pi = points[0],
+      x0 = pi[0],
+      y0 = pi[1],
+      px = [x0, x0, x0, (pi = points[1])[0]],
+      py = [y0, y0, y0, pi[1]],
+      path = [x0, ",", y0];
+  d3_svg_lineBasisBezier(path, px, py);
+  while (++i < n) {
+    pi = points[i];
+    px.shift(); px.push(pi[0]);
+    py.shift(); py.push(pi[1]);
+    d3_svg_lineBasisBezier(path, px, py);
+  }
+  i = -1;
+  while (++i < 2) {
+    px.shift(); px.push(pi[0]);
+    py.shift(); py.push(pi[1]);
+    d3_svg_lineBasisBezier(path, px, py);
+  }
+  return path.join("");
+}
+
+// Open B-spline interpolation; generates "C" commands.
+function d3_svg_lineBasisOpen(points) {
+  if (points.length < 4) return d3_svg_lineLinear(points);
+  var path = [],
+      i = -1,
+      n = points.length,
+      pi,
+      px = [0],
+      py = [0];
+  while (++i < 3) {
+    pi = points[i];
+    px.push(pi[0]);
+    py.push(pi[1]);
+  }
+  path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px)
+    + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));
+  --i; while (++i < n) {
+    pi = points[i];
+    px.shift(); px.push(pi[0]);
+    py.shift(); py.push(pi[1]);
+    d3_svg_lineBasisBezier(path, px, py);
+  }
+  return path.join("");
+}
+
+// Closed B-spline interpolation; generates "C" commands.
+function d3_svg_lineBasisClosed(points) {
+  var path,
+      i = -1,
+      n = points.length,
+      m = n + 4,
+      pi,
+      px = [],
+      py = [];
+  while (++i < 4) {
+    pi = points[i % n];
+    px.push(pi[0]);
+    py.push(pi[1]);
+  }
+  path = [
+    d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",",
+    d3_svg_lineDot4(d3_svg_lineBasisBezier3, py)
+  ];
+  --i; while (++i < m) {
+    pi = points[i % n];
+    px.shift(); px.push(pi[0]);
+    py.shift(); py.push(pi[1]);
+    d3_svg_lineBasisBezier(path, px, py);
+  }
+  return path.join("");
+}
+
+function d3_svg_lineBundle(points, tension) {
+  var n = points.length - 1,
+      x0 = points[0][0],
+      y0 = points[0][1],
+      dx = points[n][0] - x0,
+      dy = points[n][1] - y0,
+      i = -1,
+      p,
+      t;
+  while (++i <= n) {
+    p = points[i];
+    t = i / n;
+    p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);
+    p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);
+  }
+  return d3_svg_lineBasis(points);
+}
+
+// Returns the dot product of the given four-element vectors.
+function d3_svg_lineDot4(a, b) {
+  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
+}
+
+// Matrix to transform basis (b-spline) control points to bezier
+// control points. Derived from FvD 11.2.8.
+var d3_svg_lineBasisBezier1 = [0, 2/3, 1/3, 0],
+    d3_svg_lineBasisBezier2 = [0, 1/3, 2/3, 0],
+    d3_svg_lineBasisBezier3 = [0, 1/6, 2/3, 1/6];
+
+// Pushes a "C" Bzier curve onto the specified path array, given the
+// two specified four-element arrays which define the control points.
+function d3_svg_lineBasisBezier(path, x, y) {
+  path.push(
+      "C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x),
+      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y),
+      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x),
+      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y),
+      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x),
+      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));
+}
+
+// Computes the slope from points p0 to p1.
+function d3_svg_lineSlope(p0, p1) {
+  return (p1[1] - p0[1]) / (p1[0] - p0[0]);
+}
+
+// Compute three-point differences for the given points.
+// http://en.wikipedia.org/wiki/Cubic_Hermite_spline#Finite_difference
+function d3_svg_lineFiniteDifferences(points) {
+  var i = 0,
+      j = points.length - 1,
+      m = [],
+      p0 = points[0],
+      p1 = points[1],
+      d = m[0] = d3_svg_lineSlope(p0, p1);
+  while (++i < j) {
+    m[i] = d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]));
+  }
+  m[i] = d;
+  return m;
+}
+
+// Interpolates the given points using Fritsch-Carlson Monotone cubic Hermite
+// interpolation. Returns an array of tangent vectors. For details, see
+// http://en.wikipedia.org/wiki/Monotone_cubic_interpolation
+function d3_svg_lineMonotoneTangents(points) {
+  var tangents = [],
+      d,
+      a,
+      b,
+      s,
+      m = d3_svg_lineFiniteDifferences(points),
+      i = -1,
+      j = points.length - 1;
+
+  // The first two steps are done by computing finite-differences:
+  // 1. Compute the slopes of the secant lines between successive points.
+  // 2. Initialize the tangents at every point as the average of the secants.
+
+  // Then, for each segment
+  while (++i < j) {
+    d = d3_svg_lineSlope(points[i], points[i + 1]);
+
+    // 3. If two successive yk = y{k + 1} are equal (i.e., d is zero), then set
+    // mk = m{k + 1} = 0 as the spline connecting these points must be flat to
+    // preserve monotonicity. Ignore step 4 and 5 for those k.
+
+    if (Math.abs(d) < 1e-6) {
+      m[i] = m[i + 1] = 0;
+    } else {
+      // 4. Let ak = mk / dk and bk = m{k + 1} / dk.
+      a = m[i] / d;
+      b = m[i + 1] / d;
+
+      // 5. Prevent overshoot and ensure monotonicity by restricting the
+      // magnitude of vector <ak, bk> to a circle of radius 3.
+      s = a * a + b * b;
+      if (s > 9) {
+        s = d * 3 / Math.sqrt(s);
+        m[i] = s * a;
+        m[i + 1] = s * b;
+      }
+    }
+  }
+
+  // Compute the normalized tangent vector from the slopes. Note that if x is
+  // not monotonic, it's possible that the slope will be infinite, so we protect
+  // against NaN by setting the coordinate to zero.
+  i = -1; while (++i <= j) {
+    s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0])
+      / (6 * (1 + m[i] * m[i]));
+    tangents.push([s || 0, m[i] * s || 0]);
+  }
+
+  return tangents;
+}
+
+function d3_svg_lineMonotone(points) {
+  return points.length < 3
+      ? d3_svg_lineLinear(points)
+      : points[0] +
+        d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));
+}
+d3.svg.line.radial = function() {
+  var line = d3_svg_line(d3_svg_lineRadial);
+  line.radius = line.x, delete line.x;
+  line.angle = line.y, delete line.y;
+  return line;
+};
+
+function d3_svg_lineRadial(points) {
+  var point,
+      i = -1,
+      n = points.length,
+      r,
+      a;
+  while (++i < n) {
+    point = points[i];
+    r = point[0];
+    a = point[1] + d3_svg_arcOffset;
+    point[0] = r * Math.cos(a);
+    point[1] = r * Math.sin(a);
+  }
+  return points;
+}
+function d3_svg_area(projection) {
+  var x0 = d3_svg_lineX,
+      x1 = d3_svg_lineX,
+      y0 = 0,
+      y1 = d3_svg_lineY,
+      interpolate,
+      i0,
+      i1,
+      tension = .7;
+
+  function area(d) {
+    if (d.length < 1) return null;
+    var points0 = d3_svg_linePoints(this, d, x0, y0),
+        points1 = d3_svg_linePoints(this, d, x0 === x1 ? d3_svg_areaX(points0) : x1, y0 === y1 ? d3_svg_areaY(points0) : y1);
+    return "M" + i0(projection(points1), tension)
+         + "L" + i1(projection(points0.reverse()), tension)
+         + "Z";
+  }
+
+  area.x = function(x) {
+    if (!arguments.length) return x1;
+    x0 = x1 = x;
+    return area;
+  };
+
+  area.x0 = function(x) {
+    if (!arguments.length) return x0;
+    x0 = x;
+    return area;
+  };
+
+  area.x1 = function(x) {
+    if (!arguments.length) return x1;
+    x1 = x;
+    return area;
+  };
+
+  area.y = function(y) {
+    if (!arguments.length) return y1;
+    y0 = y1 = y;
+    return area;
+  };
+
+  area.y0 = function(y) {
+    if (!arguments.length) return y0;
+    y0 = y;
+    return area;
+  };
+
+  area.y1 = function(y) {
+    if (!arguments.length) return y1;
+    y1 = y;
+    return area;
+  };
+
+  area.interpolate = function(x) {
+    if (!arguments.length) return interpolate;
+    i0 = d3_svg_lineInterpolators[interpolate = x];
+    i1 = i0.reverse || i0;
+    return area;
+  };
+
+  area.tension = function(x) {
+    if (!arguments.length) return tension;
+    tension = x;
+    return area;
+  };
+
+  return area.interpolate("linear");
+}
+
+d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;
+d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;
+
+d3.svg.area = function() {
+  return d3_svg_area(Object);
+};
+
+function d3_svg_areaX(points) {
+  return function(d, i) {
+    return points[i][0];
+  };
+}
+
+function d3_svg_areaY(points) {
+  return function(d, i) {
+    return points[i][1];
+  };
+}
+d3.svg.area.radial = function() {
+  var area = d3_svg_area(d3_svg_lineRadial);
+  area.radius = area.x, delete area.x;
+  area.innerRadius = area.x0, delete area.x0;
+  area.outerRadius = area.x1, delete area.x1;
+  area.angle = area.y, delete area.y;
+  area.startAngle = area.y0, delete area.y0;
+  area.endAngle = area.y1, delete area.y1;
+  return area;
+};
+d3.svg.chord = function() {
+  var source = d3_svg_chordSource,
+      target = d3_svg_chordTarget,
+      radius = d3_svg_chordRadius,
+      startAngle = d3_svg_arcStartAngle,
+      endAngle = d3_svg_arcEndAngle;
+
+  // TODO Allow control point to be customized.
+
+  function chord(d, i) {
+    var s = subgroup(this, source, d, i),
+        t = subgroup(this, target, d, i);
+    return "M" + s.p0
+      + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t)
+      ? curve(s.r, s.p1, s.r, s.p0)
+      : curve(s.r, s.p1, t.r, t.p0)
+      + arc(t.r, t.p1, t.a1 - t.a0)
+      + curve(t.r, t.p1, s.r, s.p0))
+      + "Z";
+  }
+
+  function subgroup(self, f, d, i) {
+    var subgroup = f.call(self, d, i),
+        r = radius.call(self, subgroup, i),
+        a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset,
+        a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset;
+    return {
+      r: r,
+      a0: a0,
+      a1: a1,
+      p0: [r * Math.cos(a0), r * Math.sin(a0)],
+      p1: [r * Math.cos(a1), r * Math.sin(a1)]
+    };
+  }
+
+  function equals(a, b) {
+    return a.a0 == b.a0 && a.a1 == b.a1;
+  }
+
+  function arc(r, p, a) {
+    return "A" + r + "," + r + " 0 " + +(a > Math.PI) + ",1 " + p;
+  }
+
+  function curve(r0, p0, r1, p1) {
+    return "Q 0,0 " + p1;
+  }
+
+  chord.radius = function(v) {
+    if (!arguments.length) return radius;
+    radius = d3.functor(v);
+    return chord;
+  };
+
+  chord.source = function(v) {
+    if (!arguments.length) return source;
+    source = d3.functor(v);
+    return chord;
+  };
+
+  chord.target = function(v) {
+    if (!arguments.length) return target;
+    target = d3.functor(v);
+    return chord;
+  };
+
+  chord.startAngle = function(v) {
+    if (!arguments.length) return startAngle;
+    startAngle = d3.functor(v);
+    return chord;
+  };
+
+  chord.endAngle = function(v) {
+    if (!arguments.length) return endAngle;
+    endAngle = d3.functor(v);
+    return chord;
+  };
+
+  return chord;
+};
+
+function d3_svg_chordSource(d) {
+  return d.source;
+}
+
+function d3_svg_chordTarget(d) {
+  return d.target;
+}
+
+function d3_svg_chordRadius(d) {
+  return d.radius;
+}
+
+function d3_svg_chordStartAngle(d) {
+  return d.startAngle;
+}
+
+function d3_svg_chordEndAngle(d) {
+  return d.endAngle;
+}
+d3.svg.diagonal = function() {
+  var source = d3_svg_chordSource,
+      target = d3_svg_chordTarget,
+      projection = d3_svg_diagonalProjection;
+
+  function diagonal(d, i) {
+    var p0 = source.call(this, d, i),
+        p3 = target.call(this, d, i),
+        m = (p0.y + p3.y) / 2,
+        p = [p0, {x: p0.x, y: m}, {x: p3.x, y: m}, p3];
+    p = p.map(projection);
+    return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3];
+  }
+
+  diagonal.source = function(x) {
+    if (!arguments.length) return source;
+    source = d3.functor(x);
+    return diagonal;
+  };
+
+  diagonal.target = function(x) {
+    if (!arguments.length) return target;
+    target = d3.functor(x);
+    return diagonal;
+  };
+
+  diagonal.projection = function(x) {
+    if (!arguments.length) return projection;
+    projection = x;
+    return diagonal;
+  };
+
+  return diagonal;
+};
+
+function d3_svg_diagonalProjection(d) {
+  return [d.x, d.y];
+}
+d3.svg.diagonal.radial = function() {
+  var diagonal = d3.svg.diagonal(),
+      projection = d3_svg_diagonalProjection,
+      projection_ = diagonal.projection;
+
+  diagonal.projection = function(x) {
+    return arguments.length
+        ? projection_(d3_svg_diagonalRadialProjection(projection = x))
+        : projection;
+  };
+
+  return diagonal;
+};
+
+function d3_svg_diagonalRadialProjection(projection) {
+  return function() {
+    var d = projection.apply(this, arguments),
+        r = d[0],
+        a = d[1] + d3_svg_arcOffset;
+    return [r * Math.cos(a), r * Math.sin(a)];
+  };
+}
+d3.svg.mouse = function(container) {
+  return d3_svg_mousePoint(container, d3.event);
+};
+
+// https://bugs.webkit.org/show_bug.cgi?id=44083
+var d3_mouse_bug44083 = /WebKit/.test(navigator.userAgent) ? -1 : 0;
+
+function d3_svg_mousePoint(container, e) {
+  var point = (container.ownerSVGElement || container).createSVGPoint();
+  if ((d3_mouse_bug44083 < 0) && (window.scrollX || window.scrollY)) {
+    var svg = d3.select(document.body)
+      .append("svg")
+        .style("position", "absolute")
+        .style("top", 0)
+        .style("left", 0);
+    var ctm = svg[0][0].getScreenCTM();
+    d3_mouse_bug44083 = !(ctm.f || ctm.e);
+    svg.remove();
+  }
+  if (d3_mouse_bug44083) {
+    point.x = e.pageX;
+    point.y = e.pageY;
+  } else {
+    point.x = e.clientX;
+    point.y = e.clientY;
+  }
+  point = point.matrixTransform(container.getScreenCTM().inverse());
+  return [point.x, point.y];
+};
+d3.svg.touches = function(container, touches) {
+  if (arguments.length < 2) touches = d3.event.touches;
+
+  return touches ? d3_array(touches).map(function(touch) {
+    var point = d3_svg_mousePoint(container, touch);
+    point.identifier = touch.identifier;
+    return point;
+  }) : [];
+};
+d3.svg.symbol = function() {
+  var type = d3_svg_symbolType,
+      size = d3_svg_symbolSize;
+
+  function symbol(d, i) {
+    return (d3_svg_symbols[type.call(this, d, i)]
+        || d3_svg_symbols.circle)
+        (size.call(this, d, i));
+  }
+
+  symbol.type = function(x) {
+    if (!arguments.length) return type;
+    type = d3.functor(x);
+    return symbol;
+  };
+
+  // size of symbol in square pixels
+  symbol.size = function(x) {
+    if (!arguments.length) return size;
+    size = d3.functor(x);
+    return symbol;
+  };
+
+  return symbol;
+};
+
+function d3_svg_symbolSize() {
+  return 64;
+}
+
+function d3_svg_symbolType() {
+  return "circle";
+}
+
+// TODO cross-diagonal?
+var d3_svg_symbols = {
+  "circle": function(size) {
+    var r = Math.sqrt(size / Math.PI);
+    return "M0," + r
+        + "A" + r + "," + r + " 0 1,1 0," + (-r)
+        + "A" + r + "," + r + " 0 1,1 0," + r
+        + "Z";
+  },
+  "cross": function(size) {
+    var r = Math.sqrt(size / 5) / 2;
+    return "M" + -3 * r + "," + -r
+        + "H" + -r
+        + "V" + -3 * r
+        + "H" + r
+        + "V" + -r
+        + "H" + 3 * r
+        + "V" + r
+        + "H" + r
+        + "V" + 3 * r
+        + "H" + -r
+        + "V" + r
+        + "H" + -3 * r
+        + "Z";
+  },
+  "diamond": function(size) {
+    var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)),
+        rx = ry * d3_svg_symbolTan30;
+    return "M0," + -ry
+        + "L" + rx + ",0"
+        + " 0," + ry
+        + " " + -rx + ",0"
+        + "Z";
+  },
+  "square": function(size) {
+    var r = Math.sqrt(size) / 2;
+    return "M" + -r + "," + -r
+        + "L" + r + "," + -r
+        + " " + r + "," + r
+        + " " + -r + "," + r
+        + "Z";
+  },
+  "triangle-down": function(size) {
+    var rx = Math.sqrt(size / d3_svg_symbolSqrt3),
+        ry = rx * d3_svg_symbolSqrt3 / 2;
+    return "M0," + ry
+        + "L" + rx +"," + -ry
+        + " " + -rx + "," + -ry
+        + "Z";
+  },
+  "triangle-up": function(size) {
+    var rx = Math.sqrt(size / d3_svg_symbolSqrt3),
+        ry = rx * d3_svg_symbolSqrt3 / 2;
+    return "M0," + -ry
+        + "L" + rx +"," + ry
+        + " " + -rx + "," + ry
+        + "Z";
+  }
+};
+
+d3.svg.symbolTypes = d3.keys(d3_svg_symbols);
+
+var d3_svg_symbolSqrt3 = Math.sqrt(3),
+    d3_svg_symbolTan30 = Math.tan(30 * Math.PI / 180);
+d3.svg.axis = function() {
+  var scale = d3.scale.linear(),
+      orient = "bottom",
+      tickMajorSize = 6,
+      tickMinorSize = 6,
+      tickEndSize = 6,
+      tickPadding = 3,
+      tickArguments_ = [10],
+      tickFormat_,
+      tickSubdivide = 0;
+
+  function axis(selection) {
+    selection.each(function(d, i, j) {
+      var g = d3.select(this);
+
+      // If selection is a transition, create subtransitions.
+      var transition = selection.delay ? function(o) {
+        var id = d3_transitionInheritId;
+        try {
+          d3_transitionInheritId = selection.id;
+          return o.transition()
+              .delay(selection[j][i].delay)
+              .duration(selection[j][i].duration)
+              .ease(selection.ease());
+        } finally {
+          d3_transitionInheritId = id;
+        }
+      } : Object;
+
+      // Ticks, or domain values for ordinal scales.
+      var ticks = scale.ticks ? scale.ticks.apply(scale, tickArguments_) : scale.domain(),
+          tickFormat = tickFormat_ == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments_) : String) : tickFormat_;
+
+      // Minor ticks.
+      var subticks = d3_svg_axisSubdivide(scale, ticks, tickSubdivide),
+          subtick = g.selectAll(".minor").data(subticks, String),
+          subtickEnter = subtick.enter().insert("line", "g").attr("class", "tick minor").style("opacity", 1e-6),
+          subtickExit = transition(subtick.exit()).style("opacity", 1e-6).remove(),
+          subtickUpdate = transition(subtick).style("opacity", 1);
+
+      // Major ticks.
+      var tick = g.selectAll("g").data(ticks, String),
+          tickEnter = tick.enter().insert("g", "path").style("opacity", 1e-6),
+          tickExit = transition(tick.exit()).style("opacity", 1e-6).remove(),
+          tickUpdate = transition(tick).style("opacity", 1),
+          tickTransform;
+
+      // Domain.
+      var range = d3_scaleRange(scale),
+          path = g.selectAll(".domain").data([0]),
+          pathEnter = path.enter().append("path").attr("class", "domain"),
+          pathUpdate = transition(path);
+
+      // Stash a snapshot of the new scale, and retrieve the old snapshot.
+      var scale1 = scale.copy(),
+          scale0 = this.__chart__ || scale1;
+      this.__chart__ = scale1;
+
+      tickEnter.append("line").attr("class", "tick");
+      tickEnter.append("text");
+      tickUpdate.select("text").text(tickFormat);
+
+      switch (orient) {
+        case "bottom": {
+          tickTransform = d3_svg_axisX;
+          subtickUpdate.attr("x2", 0).attr("y2", tickMinorSize);
+          tickUpdate.select("line").attr("x2", 0).attr("y2", tickMajorSize);
+          tickUpdate.select("text").attr("x", 0).attr("y", Math.max(tickMajorSize, 0) + tickPadding).attr("dy", ".71em").attr("text-anchor", "middle");
+          pathUpdate.attr("d", "M" + range[0] + "," + tickEndSize + "V0H" + range[1] + "V" + tickEndSize);
+          break;
+        }
+        case "top": {
+          tickTransform = d3_svg_axisX;
+          subtickUpdate.attr("x2", 0).attr("y2", -tickMinorSize);
+          tickUpdate.select("line").attr("x2", 0).attr("y2", -tickMajorSize);
+          tickUpdate.select("text").attr("x", 0).attr("y", -(Math.max(tickMajorSize, 0) + tickPadding)).attr("dy", "0em").attr("text-anchor", "middle");
+          pathUpdate.attr("d", "M" + range[0] + "," + -tickEndSize + "V0H" + range[1] + "V" + -tickEndSize);
+          break;
+        }
+        case "left": {
+          tickTransform = d3_svg_axisY;
+          subtickUpdate.attr("x2", -tickMinorSize).attr("y2", 0);
+          tickUpdate.select("line").attr("x2", -tickMajorSize).attr("y2", 0);
+          tickUpdate.select("text").attr("x", -(Math.max(tickMajorSize, 0) + tickPadding)).attr("y", 0).attr("dy", ".32em").attr("text-anchor", "end");
+          pathUpdate.attr("d", "M" + -tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + -tickEndSize);
+          break;
+        }
+        case "right": {
+          tickTransform = d3_svg_axisY;
+          subtickUpdate.attr("x2", tickMinorSize).attr("y2", 0);
+          tickUpdate.select("line").attr("x2", tickMajorSize).attr("y2", 0);
+          tickUpdate.select("text").attr("x", Math.max(tickMajorSize, 0) + tickPadding).attr("y", 0).attr("dy", ".32em").attr("text-anchor", "start");
+          pathUpdate.attr("d", "M" + tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + tickEndSize);
+          break;
+        }
+      }
+
+      // For quantitative scales:
+      // - enter new ticks from the old scale
+      // - exit old ticks to the new scale
+      if (scale.ticks) {
+        tickEnter.call(tickTransform, scale0);
+        tickUpdate.call(tickTransform, scale1);
+        tickExit.call(tickTransform, scale1);
+        subtickEnter.call(tickTransform, scale0);
+        subtickUpdate.call(tickTransform, scale1);
+        subtickExit.call(tickTransform, scale1);
+      }
+
+      // For ordinal scales:
+      // - any entering ticks are undefined in the old scale
+      // - any exiting ticks are undefined in the new scale
+      // Therefore, we only need to transition updating ticks.
+      else {
+        var dx = scale1.rangeBand() / 2, x = function(d) { return scale1(d) + dx; };
+        tickEnter.call(tickTransform, x);
+        tickUpdate.call(tickTransform, x);
+      }
+    });
+  }
+
+  axis.scale = function(x) {
+    if (!arguments.length) return scale;
+    scale = x;
+    return axis;
+  };
+
+  axis.orient = function(x) {
+    if (!arguments.length) return orient;
+    orient = x;
+    return axis;
+  };
+
+  axis.ticks = function() {
+    if (!arguments.length) return tickArguments_;
+    tickArguments_ = arguments;
+    return axis;
+  };
+
+  axis.tickFormat = function(x) {
+    if (!arguments.length) return tickFormat_;
+    tickFormat_ = x;
+    return axis;
+  };
+
+  axis.tickSize = function(x, y, z) {
+    if (!arguments.length) return tickMajorSize;
+    var n = arguments.length - 1;
+    tickMajorSize = +x;
+    tickMinorSize = n > 1 ? +y : tickMajorSize;
+    tickEndSize = n > 0 ? +arguments[n] : tickMajorSize;
+    return axis;
+  };
+
+  axis.tickPadding = function(x) {
+    if (!arguments.length) return tickPadding;
+    tickPadding = +x;
+    return axis;
+  };
+
+  axis.tickSubdivide = function(x) {
+    if (!arguments.length) return tickSubdivide;
+    tickSubdivide = +x;
+    return axis;
+  };
+
+  return axis;
+};
+
+function d3_svg_axisX(selection, x) {
+  selection.attr("transform", function(d) { return "translate(" + x(d) + ",0)"; });
+}
+
+function d3_svg_axisY(selection, y) {
+  selection.attr("transform", function(d) { return "translate(0," + y(d) + ")"; });
+}
+
+function d3_svg_axisSubdivide(scale, ticks, m) {
+  subticks = [];
+  if (m && ticks.length > 1) {
+    var extent = d3_scaleExtent(scale.domain()),
+        subticks,
+        i = -1,
+        n = ticks.length,
+        d = (ticks[1] - ticks[0]) / ++m,
+        j,
+        v;
+    while (++i < n) {
+      for (j = m; --j > 0;) {
+        if ((v = +ticks[i] - j * d) >= extent[0]) {
+          subticks.push(v);
+        }
+      }
+    }
+    for (--i, j = 0; ++j < m && (v = +ticks[i] + j * d) < extent[1];) {
+      subticks.push(v);
+    }
+  }
+  return subticks;
+}
+d3.svg.brush = function() {
+  var event = d3.dispatch("brushstart", "brush", "brushend"),
+      x, // x-scale, optional
+      y, // y-scale, optional
+      extent = [[0, 0], [0, 0]]; // [x0, y0], [x1, y1]
+
+  function brush(g) {
+    var resizes = x && y ? ["n", "e", "s", "w", "nw", "ne", "se", "sw"]
+        : x ? ["e", "w"]
+        : y ? ["n", "s"]
+        : [];
+
+    g.each(function() {
+      var g = d3.select(this).on("mousedown.brush", down),
+          bg = g.selectAll(".background").data([,]),
+          fg = g.selectAll(".extent").data([,]),
+          tz = g.selectAll(".resize").data(resizes, String),
+          e;
+
+      // An invisible, mouseable area for starting a new brush.
+      bg.enter().append("rect")
+          .attr("class", "background")
+          .style("visibility", "hidden")
+          .style("pointer-events", "all")
+          .style("cursor", "crosshair");
+
+      // The visible brush extent; style this as you like!
+      fg.enter().append("rect")
+          .attr("class", "extent")
+          .style("cursor", "move");
+
+      // More invisible rects for resizing the extent.
+      tz.enter().append("rect")
+          .attr("class", function(d) { return "resize " + d; })
+          .attr("width", 6)
+          .attr("height", 6)
+          .style("visibility", "hidden")
+          .style("pointer-events", brush.empty() ? "none" : "all")
+          .style("cursor", function(d) { return d3_svg_brushCursor[d]; });
+
+      // Remove any superfluous resizers.
+      tz.exit().remove();
+
+      // Initialize the background to fill the defined range.
+      // If the range isn't defined, you can post-process.
+      if (x) {
+        e = d3_scaleRange(x);
+        bg.attr("x", e[0]).attr("width", e[1] - e[0]);
+        d3_svg_brushRedrawX(g, extent);
+      }
+      if (y) {
+        e = d3_scaleRange(y);
+        bg.attr("y", e[0]).attr("height", e[1] - e[0]);
+        d3_svg_brushRedrawY(g, extent);
+      }
+    });
+  }
+
+  function down() {
+    var target = d3.select(d3.event.target);
+
+    // Store some global state for the duration of the brush gesture.
+    d3_svg_brush = brush;
+    d3_svg_brushTarget = this;
+    d3_svg_brushExtent = extent;
+    d3_svg_brushOffset = d3.svg.mouse(d3_svg_brushTarget);
+
+    // If the extent was clicked on, drag rather than brush;
+    // store the offset between the mouse and extent origin instead.
+    if (d3_svg_brushDrag = target.classed("extent")) {
+      d3_svg_brushOffset[0] = extent[0][0] - d3_svg_brushOffset[0];
+      d3_svg_brushOffset[1] = extent[0][1] - d3_svg_brushOffset[1];
+    }
+
+    // If a resizer was clicked on, record which side is to be resized.
+    // Also, set the offset to the opposite side.
+    else if (target.classed("resize")) {
+      d3_svg_brushResize = d3.event.target.__data__;
+      d3_svg_brushOffset[0] = extent[+/w$/.test(d3_svg_brushResize)][0];
+      d3_svg_brushOffset[1] = extent[+/^n/.test(d3_svg_brushResize)][1];
+    }
+
+    // If the ALT key is down when starting a brush, the center is at the mouse.
+    else if (d3.event.altKey) {
+      d3_svg_brushCenter = d3_svg_brushOffset.slice();
+    }
+
+    // Restrict which dimensions are resized.
+    d3_svg_brushX = !/^(n|s)$/.test(d3_svg_brushResize) && x;
+    d3_svg_brushY = !/^(e|w)$/.test(d3_svg_brushResize) && y;
+
+    // Notify listeners.
+    d3_svg_brushDispatch = dispatcher(this, arguments);
+    d3_svg_brushDispatch("brushstart");
+    d3_svg_brushMove();
+    d3_eventCancel();
+  }
+
+  function dispatcher(that, argumentz) {
+    return function(type) {
+      var e = d3.event;
+      try {
+        d3.event = {type: type, target: brush};
+        event[type].apply(that, argumentz);
+      } finally {
+        d3.event = e;
+      }
+    };
+  }
+
+  brush.x = function(z) {
+    if (!arguments.length) return x;
+    x = z;
+    return brush;
+  };
+
+  brush.y = function(z) {
+    if (!arguments.length) return y;
+    y = z;
+    return brush;
+  };
+
+  brush.extent = function(z) {
+    var x0, x1, y0, y1, t;
+
+    // Invert the pixel extent to data-space.
+    if (!arguments.length) {
+      if (x) {
+        x0 = extent[0][0], x1 = extent[1][0];
+        if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);
+        if (x1 < x0) t = x0, x0 = x1, x1 = t;
+      }
+      if (y) {
+        y0 = extent[0][1], y1 = extent[1][1];
+        if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);
+        if (y1 < y0) t = y0, y0 = y1, y1 = t;
+      }
+      return x && y ? [[x0, y0], [x1, y1]] : x ? [x0, x1] : y && [y0, y1];
+    }
+
+    // Scale the data-space extent to pixels.
+    if (x) {
+      x0 = z[0], x1 = z[1];
+      if (y) x0 = x0[0], x1 = x1[0];
+      if (x.invert) x0 = x(x0), x1 = x(x1);
+      if (x1 < x0) t = x0, x0 = x1, x1 = t;
+      extent[0][0] = x0, extent[1][0] = x1;
+    }
+    if (y) {
+      y0 = z[0], y1 = z[1];
+      if (x) y0 = y0[1], y1 = y1[1];
+      if (y.invert) y0 = y(y0), y1 = y(y1);
+      if (y1 < y0) t = y0, y0 = y1, y1 = t;
+      extent[0][1] = y0, extent[1][1] = y1;
+    }
+
+    return brush;
+  };
+
+  brush.clear = function() {
+    extent[0][0] =
+    extent[0][1] =
+    extent[1][0] =
+    extent[1][1] = 0;
+    return brush;
+  };
+
+  brush.empty = function() {
+    return (x && extent[0][0] === extent[1][0])
+        || (y && extent[0][1] === extent[1][1]);
+  };
+
+  d3.select(window)
+      .on("mousemove.brush", d3_svg_brushMove)
+      .on("mouseup.brush", d3_svg_brushUp)
+      .on("keydown.brush", d3_svg_brushKeydown)
+      .on("keyup.brush", d3_svg_brushKeyup);
+
+  return d3.rebind(brush, event, "on");
+};
+
+var d3_svg_brush,
+    d3_svg_brushDispatch,
+    d3_svg_brushTarget,
+    d3_svg_brushX,
+    d3_svg_brushY,
+    d3_svg_brushExtent,
+    d3_svg_brushDrag,
+    d3_svg_brushResize,
+    d3_svg_brushCenter,
+    d3_svg_brushOffset;
+
+function d3_svg_brushRedrawX(g, extent) {
+  g.select(".extent").attr("x", extent[0][0]);
+  g.selectAll(".n,.s,.w,.nw,.sw").attr("x", extent[0][0] - 2);
+  g.selectAll(".e,.ne,.se").attr("x", extent[1][0] - 3);
+  g.selectAll(".extent,.n,.s").attr("width", extent[1][0] - extent[0][0]);
+}
+
+function d3_svg_brushRedrawY(g, extent) {
+  g.select(".extent").attr("y", extent[0][1]);
+  g.selectAll(".n,.e,.w,.nw,.ne").attr("y", extent[0][1] - 3);
+  g.selectAll(".s,.se,.sw").attr("y", extent[1][1] - 4);
+  g.selectAll(".extent,.e,.w").attr("height", extent[1][1] - extent[0][1]);
+}
+
+function d3_svg_brushKeydown() {
+  if (d3.event.keyCode == 32 && d3_svg_brushTarget && !d3_svg_brushDrag) {
+    d3_svg_brushCenter = null;
+    d3_svg_brushOffset[0] -= d3_svg_brushExtent[1][0];
+    d3_svg_brushOffset[1] -= d3_svg_brushExtent[1][1];
+    d3_svg_brushDrag = 2;
+    d3_eventCancel();
+  }
+}
+
+function d3_svg_brushKeyup() {
+  if (d3.event.keyCode == 32 && d3_svg_brushDrag == 2) {
+    d3_svg_brushOffset[0] += d3_svg_brushExtent[1][0];
+    d3_svg_brushOffset[1] += d3_svg_brushExtent[1][1];
+    d3_svg_brushDrag = 0;
+    d3_eventCancel();
+  }
+}
+
+function d3_svg_brushMove() {
+  if (d3_svg_brushOffset) {
+    var mouse = d3.svg.mouse(d3_svg_brushTarget),
+        g = d3.select(d3_svg_brushTarget);
+
+    if (!d3_svg_brushDrag) {
+
+      // If needed, determine the center from the current extent.
+      if (d3.event.altKey) {
+        if (!d3_svg_brushCenter) {
+          d3_svg_brushCenter = [
+            (d3_svg_brushExtent[0][0] + d3_svg_brushExtent[1][0]) / 2,
+            (d3_svg_brushExtent[0][1] + d3_svg_brushExtent[1][1]) / 2
+          ];
+        }
+
+        // Update the offset, for when the ALT key is released.
+        d3_svg_brushOffset[0] = d3_svg_brushExtent[+(mouse[0] < d3_svg_brushCenter[0])][0];
+        d3_svg_brushOffset[1] = d3_svg_brushExtent[+(mouse[1] < d3_svg_brushCenter[1])][1];
+      }
+
+      // When the ALT key is released, we clear the center.
+      else d3_svg_brushCenter = null;
+    }
+
+    // Update the brush extent for each dimension.
+    if (d3_svg_brushX) {
+      d3_svg_brushMove1(mouse, d3_svg_brushX, 0);
+      d3_svg_brushRedrawX(g, d3_svg_brushExtent);
+    }
+    if (d3_svg_brushY) {
+      d3_svg_brushMove1(mouse, d3_svg_brushY, 1);
+      d3_svg_brushRedrawY(g, d3_svg_brushExtent);
+    }
+
+    // Notify listeners.
+    d3_svg_brushDispatch("brush");
+  }
+}
+
+function d3_svg_brushMove1(mouse, scale, i) {
+  var range = d3_scaleRange(scale),
+      r0 = range[0],
+      r1 = range[1],
+      offset = d3_svg_brushOffset[i],
+      size = d3_svg_brushExtent[1][i] - d3_svg_brushExtent[0][i],
+      min,
+      max;
+
+  // When dragging, reduce the range by the extent size and offset.
+  if (d3_svg_brushDrag) {
+    r0 -= offset;
+    r1 -= size + offset;
+  }
+
+  // Clamp the mouse so that the extent fits within the range extent.
+  min = Math.max(r0, Math.min(r1, mouse[i]));
+
+  // Compute the new extent bounds.
+  if (d3_svg_brushDrag) {
+    max = (min += offset) + size;
+  } else {
+
+    // If the ALT key is pressed, then preserve the center of the extent.
+    if (d3_svg_brushCenter) offset = Math.max(r0, Math.min(r1, 2 * d3_svg_brushCenter[i] - min));
+
+    // Compute the min and max of the offset and mouse.
+    if (offset < min) {
+      max = min;
+      min = offset;
+    } else {
+      max = offset;
+    }
+  }
+
+  // Update the stored bounds.
+  d3_svg_brushExtent[0][i] = min;
+  d3_svg_brushExtent[1][i] = max;
+}
+
+function d3_svg_brushUp() {
+  if (d3_svg_brushOffset) {
+    d3_svg_brushMove();
+    d3.select(d3_svg_brushTarget).selectAll(".resize").style("pointer-events", d3_svg_brush.empty() ? "none" : "all");
+    d3_svg_brushDispatch("brushend");
+    d3_svg_brush =
+    d3_svg_brushDispatch =
+    d3_svg_brushTarget =
+    d3_svg_brushX =
+    d3_svg_brushY =
+    d3_svg_brushExtent =
+    d3_svg_brushDrag =
+    d3_svg_brushResize =
+    d3_svg_brushCenter =
+    d3_svg_brushOffset = null;
+    d3_eventCancel();
+  }
+}
+
+var d3_svg_brushCursor = {
+  n: "ns-resize",
+  e: "ew-resize",
+  s: "ns-resize",
+  w: "ew-resize",
+  nw: "nwse-resize",
+  ne: "nesw-resize",
+  se: "nwse-resize",
+  sw: "nesw-resize"
+};
+d3.behavior = {};
+// TODO Track touch points by identifier.
+
+d3.behavior.drag = function() {
+  var event = d3.dispatch("drag", "dragstart", "dragend"),
+      origin = null;
+
+  function drag() {
+    this
+        .on("mousedown.drag", mousedown)
+        .on("touchstart.drag", mousedown);
+
+    d3.select(window)
+        .on("mousemove.drag", d3_behavior_dragMove)
+        .on("touchmove.drag", d3_behavior_dragMove)
+        .on("mouseup.drag", d3_behavior_dragUp, false)
+        .on("touchend.drag", d3_behavior_dragUp, false)
+        .on("click.drag", d3_behavior_dragClick, false);
+  }
+
+  // snapshot the local context for subsequent dispatch
+  function start() {
+    d3_behavior_dragEvent = event;
+    d3_behavior_dragEventTarget = d3.event.target;
+    d3_behavior_dragTarget = this;
+    d3_behavior_dragArguments = arguments;
+    d3_behavior_dragOrigin = d3_behavior_dragPoint();
+    if (origin) {
+      d3_behavior_dragOffset = origin.apply(d3_behavior_dragTarget, d3_behavior_dragArguments);
+      d3_behavior_dragOffset = [d3_behavior_dragOffset.x - d3_behavior_dragOrigin[0], d3_behavior_dragOffset.y - d3_behavior_dragOrigin[1]];
+    } else {
+      d3_behavior_dragOffset = [0, 0];
+    }
+    d3_behavior_dragMoved = 0;
+  }
+
+  function mousedown() {
+    start.apply(this, arguments);
+    d3_behavior_dragDispatch("dragstart");
+  }
+
+  drag.origin = function(x) {
+    if (!arguments.length) return origin;
+    origin = x;
+    return drag;
+  };
+
+  return d3.rebind(drag, event, "on");
+};
+
+var d3_behavior_dragEvent,
+    d3_behavior_dragEventTarget,
+    d3_behavior_dragTarget,
+    d3_behavior_dragArguments,
+    d3_behavior_dragOffset,
+    d3_behavior_dragOrigin,
+    d3_behavior_dragMoved;
+
+function d3_behavior_dragDispatch(type) {
+  var p = d3_behavior_dragPoint(),
+      o = d3.event,
+      e = d3.event = {type: type};
+
+  if (p) {
+    e.x = p[0] + d3_behavior_dragOffset[0];
+    e.y = p[1] + d3_behavior_dragOffset[1];
+    e.dx = p[0] - d3_behavior_dragOrigin[0];
+    e.dy = p[1] - d3_behavior_dragOrigin[1];
+    d3_behavior_dragMoved |= e.dx | e.dy;
+    d3_behavior_dragOrigin = p;
+  }
+
+  try {
+    d3_behavior_dragEvent[type].apply(d3_behavior_dragTarget, d3_behavior_dragArguments);
+  } finally {
+    d3.event = o;
+  }
+
+  o.stopPropagation();
+  o.preventDefault();
+}
+
+function d3_behavior_dragPoint() {
+  var p = d3_behavior_dragTarget.parentNode,
+      t = d3.event.changedTouches;
+  return p && (t
+      ? d3.svg.touches(p, t)[0]
+      : d3.svg.mouse(p));
+}
+
+function d3_behavior_dragMove() {
+  if (!d3_behavior_dragTarget) return;
+  var parent = d3_behavior_dragTarget.parentNode;
+
+  // O NOES! The drag element was removed from the DOM.
+  if (!parent) return d3_behavior_dragUp();
+
+  d3_behavior_dragDispatch("drag");
+  d3_eventCancel();
+}
+
+function d3_behavior_dragUp() {
+  if (!d3_behavior_dragTarget) return;
+  d3_behavior_dragDispatch("dragend");
+
+  // If the node was moved, prevent the mouseup from propagating.
+  // Also prevent the subsequent click from propagating (e.g., for anchors).
+  if (d3_behavior_dragMoved) {
+    d3_eventCancel();
+    d3_behavior_dragMoved = d3.event.target === d3_behavior_dragEventTarget;
+  }
+
+  d3_behavior_dragEvent =
+  d3_behavior_dragEventTarget =
+  d3_behavior_dragTarget =
+  d3_behavior_dragArguments =
+  d3_behavior_dragOffset =
+  d3_behavior_dragOrigin = null;
+}
+
+function d3_behavior_dragClick() {
+  if (d3_behavior_dragMoved) {
+    d3_eventCancel();
+    d3_behavior_dragMoved = 0;
+  }
+}
+// TODO unbind zoom behavior?
+d3.behavior.zoom = function() {
+  var xyz = [0, 0, 0],
+      event = d3.dispatch("zoom"),
+      extent = d3_behavior_zoomInfiniteExtent;
+
+  function zoom() {
+    this
+        .on("mousedown.zoom", mousedown)
+        .on("mousewheel.zoom", mousewheel)
+        .on("DOMMouseScroll.zoom", mousewheel)
+        .on("dblclick.zoom", dblclick)
+        .on("touchstart.zoom", touchstart);
+
+    d3.select(window)
+        .on("mousemove.zoom", d3_behavior_zoomMousemove)
+        .on("mouseup.zoom", d3_behavior_zoomMouseup)
+        .on("touchmove.zoom", d3_behavior_zoomTouchmove)
+        .on("touchend.zoom", d3_behavior_zoomTouchup)
+        .on("click.zoom", d3_behavior_zoomClick, true);
+  }
+
+  // snapshot the local context for subsequent dispatch
+  function start() {
+    d3_behavior_zoomXyz = xyz;
+    d3_behavior_zoomExtent = extent;
+    d3_behavior_zoomDispatch = event.zoom;
+    d3_behavior_zoomEventTarget = d3.event.target;
+    d3_behavior_zoomTarget = this;
+    d3_behavior_zoomArguments = arguments;
+  }
+
+  function mousedown() {
+    start.apply(this, arguments);
+    d3_behavior_zoomPanning = d3_behavior_zoomLocation(d3.svg.mouse(d3_behavior_zoomTarget));
+    d3_behavior_zoomMoved = 0;
+    d3.event.preventDefault();
+    window.focus();
+  }
+
+  // store starting mouse location
+  function mousewheel() {
+    start.apply(this, arguments);
+    if (!d3_behavior_zoomZooming) d3_behavior_zoomZooming = d3_behavior_zoomLocation(d3.svg.mouse(d3_behavior_zoomTarget));
+    d3_behavior_zoomTo(d3_behavior_zoomDelta() + xyz[2], d3.svg.mouse(d3_behavior_zoomTarget), d3_behavior_zoomZooming);
+  }
+
+  function dblclick() {
+    start.apply(this, arguments);
+    var mouse = d3.svg.mouse(d3_behavior_zoomTarget);
+    d3_behavior_zoomTo(d3.event.shiftKey ? Math.ceil(xyz[2] - 1) : Math.floor(xyz[2] + 1), mouse, d3_behavior_zoomLocation(mouse));
+  }
+
+  // doubletap detection
+  function touchstart() {
+    start.apply(this, arguments);
+    var touches = d3_behavior_zoomTouchup(),
+        touch,
+        now = Date.now();
+    if ((touches.length === 1) && (now - d3_behavior_zoomLast < 300)) {
+      d3_behavior_zoomTo(1 + Math.floor(xyz[2]), touch = touches[0], d3_behavior_zoomLocations[touch.identifier]);
+    }
+    d3_behavior_zoomLast = now;
+  }
+
+  zoom.extent = function(x) {
+    if (!arguments.length) return extent;
+    extent = x == null ? d3_behavior_zoomInfiniteExtent : x;
+    return zoom;
+  };
+
+  return d3.rebind(zoom, event, "on");
+};
+
+var d3_behavior_zoomDiv,
+    d3_behavior_zoomPanning,
+    d3_behavior_zoomZooming,
+    d3_behavior_zoomLocations = {}, // identifier -> location
+    d3_behavior_zoomLast = 0,
+    d3_behavior_zoomXyz,
+    d3_behavior_zoomExtent,
+    d3_behavior_zoomDispatch,
+    d3_behavior_zoomEventTarget,
+    d3_behavior_zoomTarget,
+    d3_behavior_zoomArguments,
+    d3_behavior_zoomMoved;
+
+function d3_behavior_zoomLocation(point) {
+  return [
+    point[0] - d3_behavior_zoomXyz[0],
+    point[1] - d3_behavior_zoomXyz[1],
+    d3_behavior_zoomXyz[2]
+  ];
+}
+
+// detect the pixels that would be scrolled by this wheel event
+function d3_behavior_zoomDelta() {
+
+  // mousewheel events are totally broken!
+  // https://bugs.webkit.org/show_bug.cgi?id=40441
+  // not only that, but Chrome and Safari differ in re. to acceleration!
+  if (!d3_behavior_zoomDiv) {
+    d3_behavior_zoomDiv = d3.select("body").append("div")
+        .style("visibility", "hidden")
+        .style("top", 0)
+        .style("height", 0)
+        .style("width", 0)
+        .style("overflow-y", "scroll")
+      .append("div")
+        .style("height", "2000px")
+      .node().parentNode;
+  }
+
+  var e = d3.event, delta;
+  try {
+    d3_behavior_zoomDiv.scrollTop = 1000;
+    d3_behavior_zoomDiv.dispatchEvent(e);
+    delta = 1000 - d3_behavior_zoomDiv.scrollTop;
+  } catch (error) {
+    delta = e.wheelDelta || (-e.detail * 5);
+  }
+
+  return delta * .005;
+}
+
+// Note: Since we don't rotate, it's possible for the touches to become
+// slightly detached from their original positions. Thus, we recompute the
+// touch points on touchend as well as touchstart!
+function d3_behavior_zoomTouchup() {
+  var touches = d3.svg.touches(d3_behavior_zoomTarget),
+      i = -1,
+      n = touches.length,
+      touch;
+  while (++i < n) d3_behavior_zoomLocations[(touch = touches[i]).identifier] = d3_behavior_zoomLocation(touch);
+  return touches;
+}
+
+function d3_behavior_zoomTouchmove() {
+  var touches = d3.svg.touches(d3_behavior_zoomTarget);
+  switch (touches.length) {
+
+    // single-touch pan
+    case 1: {
+      var touch = touches[0];
+      d3_behavior_zoomTo(d3_behavior_zoomXyz[2], touch, d3_behavior_zoomLocations[touch.identifier]);
+      break;
+    }
+
+    // double-touch pan + zoom
+    case 2: {
+      var p0 = touches[0],
+          p1 = touches[1],
+          p2 = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2],
+          l0 = d3_behavior_zoomLocations[p0.identifier],
+          l1 = d3_behavior_zoomLocations[p1.identifier],
+          l2 = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2, l0[2]];
+      d3_behavior_zoomTo(Math.log(d3.event.scale) / Math.LN2 + l0[2], p2, l2);
+      break;
+    }
+  }
+}
+
+function d3_behavior_zoomMousemove() {
+  d3_behavior_zoomZooming = null;
+  if (d3_behavior_zoomPanning) {
+    d3_behavior_zoomMoved = 1;
+    d3_behavior_zoomTo(d3_behavior_zoomXyz[2], d3.svg.mouse(d3_behavior_zoomTarget), d3_behavior_zoomPanning);
+  }
+}
+
+function d3_behavior_zoomMouseup() {
+  if (d3_behavior_zoomPanning) {
+    if (d3_behavior_zoomMoved) {
+      d3_eventCancel();
+      d3_behavior_zoomMoved = d3_behavior_zoomEventTarget === d3.event.target;
+    }
+
+    d3_behavior_zoomXyz =
+    d3_behavior_zoomExtent =
+    d3_behavior_zoomDispatch =
+    d3_behavior_zoomEventTarget =
+    d3_behavior_zoomTarget =
+    d3_behavior_zoomArguments =
+    d3_behavior_zoomPanning = null;
+  }
+}
+
+function d3_behavior_zoomClick() {
+  if (d3_behavior_zoomMoved) {
+    d3_eventCancel();
+    d3_behavior_zoomMoved = 0;
+  }
+}
+
+function d3_behavior_zoomTo(z, x0, x1) {
+  z = d3_behavior_zoomExtentClamp(z, 2);
+  var j = Math.pow(2, d3_behavior_zoomXyz[2]),
+      k = Math.pow(2, z),
+      K = Math.pow(2, (d3_behavior_zoomXyz[2] = z) - x1[2]),
+      x_ = d3_behavior_zoomXyz[0],
+      y_ = d3_behavior_zoomXyz[1],
+      x = d3_behavior_zoomXyz[0] = d3_behavior_zoomExtentClamp((x0[0] - x1[0] * K), 0, k),
+      y = d3_behavior_zoomXyz[1] = d3_behavior_zoomExtentClamp((x0[1] - x1[1] * K), 1, k),
+      o = d3.event; // Events can be reentrant (e.g., focus).
+
+  d3.event = {
+    scale: k,
+    translate: [x, y],
+    transform: function(sx, sy) {
+      if (sx) transform(sx, x_, x);
+      if (sy) transform(sy, y_, y);
+    }
+  };
+
+  function transform(scale, a, b) {
+    scale.domain(scale.range().map(function(v) { return scale.invert(((v - b) * j) / k + a); }));
+  }
+
+  try {
+    d3_behavior_zoomDispatch.apply(d3_behavior_zoomTarget, d3_behavior_zoomArguments);
+  } finally {
+    d3.event = o;
+  }
+
+  o.preventDefault();
+}
+
+var d3_behavior_zoomInfiniteExtent = [
+  [-Infinity, Infinity],
+  [-Infinity, Infinity],
+  [-Infinity, Infinity]
+];
+
+function d3_behavior_zoomExtentClamp(x, i, k) {
+  var range = d3_behavior_zoomExtent[i],
+      r0 = range[0],
+      r1 = range[1];
+  return arguments.length === 3
+      ? Math.max(r1 * (r1 === Infinity ? -Infinity : 1 / k - 1),
+        Math.min(r0 === -Infinity ? Infinity : r0, x / k)) * k
+      : Math.max(r0, Math.min(r1, x));
+}
+})();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/d3/d3.time.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,692 @@
+(function(){d3.time = {};
+
+var d3_time = Date;
+d3.time.format = function(template) {
+  var n = template.length;
+
+  function format(date) {
+    var string = [],
+        i = -1,
+        j = 0,
+        c,
+        f;
+    while (++i < n) {
+      if (template.charCodeAt(i) == 37) {
+        string.push(
+            template.substring(j, i),
+            (f = d3_time_formats[c = template.charAt(++i)])
+            ? f(date) : c);
+        j = i + 1;
+      }
+    }
+    string.push(template.substring(j, i));
+    return string.join("");
+  }
+
+  format.parse = function(string) {
+    var date = new d3_time(1900, 0, 1),
+        i = d3_time_parse(date, template, string, 0);
+    if (i != string.length) return null;
+    if (date.hour12) {
+      var hours = date.getHours() % 12;
+      date.setHours(date.hour12pm ? hours + 12 : hours);
+    }
+    delete date.hour12;
+    delete date.hour12pm;
+    return date;
+  };
+
+  format.toString = function() {
+    return template;
+  };
+
+  return format;
+};
+
+function d3_time_parse(date, template, string, j) {
+  var c,
+      p,
+      i = 0,
+      n = template.length,
+      m = string.length;
+  while (i < n) {
+    if (j >= m) return -1;
+    c = template.charCodeAt(i++);
+    if (c == 37) {
+      p = d3_time_parsers[template.charAt(i++)];
+      if (!p || ((j = p(date, string, j)) < 0)) return -1;
+    } else if (c != string.charCodeAt(j++)) {
+      return -1;
+    }
+  }
+  return j;
+}
+
+var d3_time_zfill2 = d3.format("02d"),
+    d3_time_zfill3 = d3.format("03d"),
+    d3_time_zfill4 = d3.format("04d"),
+    d3_time_sfill2 = d3.format("2d");
+
+var d3_time_formats = {
+  a: function(d) { return d3_time_weekdays[d.getDay()].substring(0, 3); },
+  A: function(d) { return d3_time_weekdays[d.getDay()]; },
+  b: function(d) { return d3_time_months[d.getMonth()].substring(0, 3); },
+  B: function(d) { return d3_time_months[d.getMonth()]; },
+  c: d3.time.format("%a %b %e %H:%M:%S %Y"),
+  d: function(d) { return d3_time_zfill2(d.getDate()); },
+  e: function(d) { return d3_time_sfill2(d.getDate()); },
+  H: function(d) { return d3_time_zfill2(d.getHours()); },
+  I: function(d) { return d3_time_zfill2(d.getHours() % 12 || 12); },
+  j: d3_time_dayOfYear,
+  L: function(d) { return d3_time_zfill3(d.getMilliseconds()); },
+  m: function(d) { return d3_time_zfill2(d.getMonth() + 1); },
+  M: function(d) { return d3_time_zfill2(d.getMinutes()); },
+  p: function(d) { return d.getHours() >= 12 ? "PM" : "AM"; },
+  S: function(d) { return d3_time_zfill2(d.getSeconds()); },
+  U: d3_time_weekNumberSunday,
+  w: function(d) { return d.getDay(); },
+  W: d3_time_weekNumberMonday,
+  x: d3.time.format("%m/%d/%y"),
+  X: d3.time.format("%H:%M:%S"),
+  y: function(d) { return d3_time_zfill2(d.getFullYear() % 100); },
+  Y: function(d) { return d3_time_zfill4(d.getFullYear() % 10000); },
+  Z: d3_time_zone,
+  "%": function(d) { return "%"; }
+};
+
+var d3_time_parsers = {
+  a: d3_time_parseWeekdayAbbrev,
+  A: d3_time_parseWeekday,
+  b: d3_time_parseMonthAbbrev,
+  B: d3_time_parseMonth,
+  c: d3_time_parseLocaleFull,
+  d: d3_time_parseDay,
+  e: d3_time_parseDay,
+  H: d3_time_parseHour24,
+  I: d3_time_parseHour12,
+  // j: function(d, s, i) { /*TODO day of year [001,366] */ return i; },
+  L: d3_time_parseMilliseconds,
+  m: d3_time_parseMonthNumber,
+  M: d3_time_parseMinutes,
+  p: d3_time_parseAmPm,
+  S: d3_time_parseSeconds,
+  // U: function(d, s, i) { /*TODO week number (sunday) [00,53] */ return i; },
+  // w: function(d, s, i) { /*TODO weekday [0,6] */ return i; },
+  // W: function(d, s, i) { /*TODO week number (monday) [00,53] */ return i; },
+  x: d3_time_parseLocaleDate,
+  X: d3_time_parseLocaleTime,
+  y: d3_time_parseYear,
+  Y: d3_time_parseFullYear
+  // ,
+  // Z: function(d, s, i) { /*TODO time zone */ return i; },
+  // "%": function(d, s, i) { /*TODO literal % */ return i; }
+};
+
+// Note: weekday is validated, but does not set the date.
+function d3_time_parseWeekdayAbbrev(date, string, i) {
+  return string.substring(i, i += 3).toLowerCase() in d3_time_weekdayAbbrevLookup ? i : -1;
+}
+
+var d3_time_weekdayAbbrevLookup = {
+  sun: 3,
+  mon: 3,
+  tue: 3,
+  wed: 3,
+  thu: 3,
+  fri: 3,
+  sat: 3
+};
+
+// Note: weekday is validated, but does not set the date.
+function d3_time_parseWeekday(date, string, i) {
+  d3_time_weekdayRe.lastIndex = 0;
+  var n = d3_time_weekdayRe.exec(string.substring(i, i + 10));
+  return n ? i += n[0].length : -1;
+}
+
+var d3_time_weekdayRe = /^(?:Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday)/ig;
+
+var d3_time_weekdays = [
+  "Sunday",
+  "Monday",
+  "Tuesday",
+  "Wednesday",
+  "Thursday",
+  "Friday",
+  "Saturday"
+];
+
+function d3_time_parseMonthAbbrev(date, string, i) {
+  var n = d3_time_monthAbbrevLookup[string.substring(i, i += 3).toLowerCase()];
+  return n == null ? -1 : (date.setMonth(n), i);
+}
+
+var d3_time_monthAbbrevLookup = {
+  jan: 0,
+  feb: 1,
+  mar: 2,
+  apr: 3,
+  may: 4,
+  jun: 5,
+  jul: 6,
+  aug: 7,
+  sep: 8,
+  oct: 9,
+  nov: 10,
+  dec: 11
+};
+
+function d3_time_parseMonth(date, string, i) {
+  d3_time_monthRe.lastIndex = 0;
+  var n = d3_time_monthRe.exec(string.substring(i, i + 12));
+  return n ? (date.setMonth(d3_time_monthLookup[n[0].toLowerCase()]), i += n[0].length) : -1;
+}
+
+var d3_time_monthRe = /^(?:January|February|March|April|May|June|July|August|September|October|November|December)/ig;
+
+var d3_time_monthLookup = {
+  january: 0,
+  february: 1,
+  march: 2,
+  april: 3,
+  may: 4,
+  june: 5,
+  july: 6,
+  august: 7,
+  september: 8,
+  october: 9,
+  november: 10,
+  december: 11
+};
+
+var d3_time_months = [
+  "January",
+  "February",
+  "March",
+  "April",
+  "May",
+  "June",
+  "July",
+  "August",
+  "September",
+  "October",
+  "November",
+  "December"
+];
+
+function d3_time_parseLocaleFull(date, string, i) {
+  return d3_time_parse(date, d3_time_formats.c.toString(), string, i);
+}
+
+function d3_time_parseLocaleDate(date, string, i) {
+  return d3_time_parse(date, d3_time_formats.x.toString(), string, i);
+}
+
+function d3_time_parseLocaleTime(date, string, i) {
+  return d3_time_parse(date, d3_time_formats.X.toString(), string, i);
+}
+
+function d3_time_parseFullYear(date, string, i) {
+  d3_time_numberRe.lastIndex = 0;
+  var n = d3_time_numberRe.exec(string.substring(i, i + 4));
+  return n ? (date.setFullYear(n[0]), i += n[0].length) : -1;
+}
+
+function d3_time_parseYear(date, string, i) {
+  d3_time_numberRe.lastIndex = 0;
+  var n = d3_time_numberRe.exec(string.substring(i, i + 2));
+  return n ? (date.setFullYear(d3_time_century() + +n[0]), i += n[0].length) : -1;
+}
+
+function d3_time_century() {
+  return ~~(new Date().getFullYear() / 1000) * 1000;
+}
+
+function d3_time_parseMonthNumber(date, string, i) {
+  d3_time_numberRe.lastIndex = 0;
+  var n = d3_time_numberRe.exec(string.substring(i, i + 2));
+  return n ? (date.setMonth(n[0] - 1), i += n[0].length) : -1;
+}
+
+function d3_time_parseDay(date, string, i) {
+  d3_time_numberRe.lastIndex = 0;
+  var n = d3_time_numberRe.exec(string.substring(i, i + 2));
+  return n ? (date.setDate(+n[0]), i += n[0].length) : -1;
+}
+
+// Note: we don't validate that the hour is in the range [0,23].
+function d3_time_parseHour24(date, string, i) {
+  d3_time_numberRe.lastIndex = 0;
+  var n = d3_time_numberRe.exec(string.substring(i, i + 2));
+  return n ? (date.setHours(+n[0]), i += n[0].length) : -1;
+}
+
+// Note: we don't validate that the hour is in the range [1,12].
+function d3_time_parseHour12(date, string, i) {
+  date.hour12 = true;
+  return d3_time_parseHour24(date, string, i);
+}
+
+function d3_time_parseMinutes(date, string, i) {
+  d3_time_numberRe.lastIndex = 0;
+  var n = d3_time_numberRe.exec(string.substring(i, i + 2));
+  return n ? (date.setMinutes(+n[0]), i += n[0].length) : -1;
+}
+
+function d3_time_parseSeconds(date, string, i) {
+  d3_time_numberRe.lastIndex = 0;
+  var n = d3_time_numberRe.exec(string.substring(i, i + 2));
+  return n ? (date.setSeconds(+n[0]), i += n[0].length) : -1;
+}
+
+function d3_time_parseMilliseconds(date, string, i) {
+  d3_time_numberRe.lastIndex = 0;
+  var n = d3_time_numberRe.exec(string.substring(i, i + 3));
+  return n ? (date.setMilliseconds(+n[0]), i += n[0].length) : -1;
+}
+
+// Note: we don't look at the next directive.
+var d3_time_numberRe = /\s*\d+/;
+
+function d3_time_parseAmPm(date, string, i) {
+  var n = d3_time_amPmLookup[string.substring(i, i += 2).toLowerCase()];
+  return n == null ? -1 : (date.hour12pm = n, i);
+}
+
+var d3_time_amPmLookup = {
+  am: 0,
+  pm: 1
+};
+
+function d3_time_year(d) {
+  return new d3_time(d.getFullYear(), 0, 1);
+}
+
+function d3_time_daysElapsed(d0, d1) {
+  return ~~((d1 - d0) / 864e5 - (d1.getTimezoneOffset() - d0.getTimezoneOffset()) / 1440);
+}
+
+function d3_time_dayOfYear(d) {
+  return d3_time_zfill3(1 + d3_time_daysElapsed(d3_time_year(d), d));
+}
+
+function d3_time_weekNumberSunday(d) {
+  var d0 = d3_time_year(d);
+  return d3_time_zfill2(~~((d3_time_daysElapsed(d0, d) + d0.getDay()) / 7));
+}
+
+function d3_time_weekNumberMonday(d) {
+  var d0 = d3_time_year(d);
+  return d3_time_zfill2(~~((d3_time_daysElapsed(d0, d) + (d0.getDay() + 6) % 7) / 7));
+}
+
+// TODO table of time zone offset names?
+function d3_time_zone(d) {
+  var z = d.getTimezoneOffset(),
+      zs = z > 0 ? "-" : "+",
+      zh = ~~(Math.abs(z) / 60),
+      zm = Math.abs(z) % 60;
+  return zs + d3_time_zfill2(zh) + d3_time_zfill2(zm);
+}
+d3.time.format.utc = function(template) {
+  var local = d3.time.format(template);
+
+  function format(date) {
+    try {
+      d3_time = d3_time_format_utc;
+      var utc = new d3_time();
+      utc._ = date;
+      return local(utc);
+    } finally {
+      d3_time = Date;
+    }
+  }
+
+  format.parse = function(string) {
+    try {
+      d3_time = d3_time_format_utc;
+      var date = local.parse(string);
+      return date && date._;
+    } finally {
+      d3_time = Date;
+    }
+  };
+
+  format.toString = local.toString;
+
+  return format;
+};
+
+function d3_time_format_utc() {
+  this._ = new Date(Date.UTC.apply(this, arguments));
+}
+
+d3_time_format_utc.prototype = {
+  getDate: function() { return this._.getUTCDate(); },
+  getDay: function() { return this._.getUTCDay(); },
+  getFullYear: function() { return this._.getUTCFullYear(); },
+  getHours: function() { return this._.getUTCHours(); },
+  getMilliseconds: function() { return this._.getUTCMilliseconds(); },
+  getMinutes: function() { return this._.getUTCMinutes(); },
+  getMonth: function() { return this._.getUTCMonth(); },
+  getSeconds: function() { return this._.getUTCSeconds(); },
+  getTimezoneOffset: function() { return 0; },
+  valueOf: function() { return this._.getTime(); },
+  setDate: function(x) { this._.setUTCDate(x); },
+  setDay: function(x) { this._.setUTCDay(x); },
+  setFullYear: function(x) { this._.setUTCFullYear(x); },
+  setHours: function(x) { this._.setUTCHours(x); },
+  setMilliseconds: function(x) { this._.setUTCMilliseconds(x); },
+  setMinutes: function(x) { this._.setUTCMinutes(x); },
+  setMonth: function(x) { this._.setUTCMonth(x); },
+  setSeconds: function(x) { this._.setUTCSeconds(x); }
+};
+var d3_time_formatIso = d3.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ");
+
+d3.time.format.iso = Date.prototype.toISOString ? d3_time_formatIsoNative : d3_time_formatIso;
+
+function d3_time_formatIsoNative(date) {
+  return date.toISOString();
+}
+
+d3_time_formatIsoNative.parse = function(string) {
+  return new Date(string);
+};
+
+d3_time_formatIsoNative.toString = d3_time_formatIso.toString;
+function d3_time_range(floor, step, number) {
+  return function(t0, t1, dt) {
+    var time = floor(t0), times = [];
+    if (time < t0) step(time);
+    if (dt > 1) {
+      while (time < t1) {
+        var date = new Date(+time);
+        if (!(number(date) % dt)) times.push(date);
+        step(time);
+      }
+    } else {
+      while (time < t1) times.push(new Date(+time)), step(time);
+    }
+    return times;
+  };
+}
+d3.time.second = function(date) {
+  return new Date(~~(date / 1e3) * 1e3);
+};
+
+d3.time.second.utc = d3.time.second;
+d3.time.seconds = d3_time_range(d3.time.second, function(date) {
+  date.setTime(date.getTime() + 1e3);
+}, function(date) {
+  return date.getSeconds();
+});
+
+d3.time.seconds.utc = d3.time.seconds;
+d3.time.minute = function(date) {
+  return new Date(~~(date / 6e4) * 6e4);
+};
+
+d3.time.minute.utc = d3.time.minute;d3.time.minutes = d3_time_range(d3.time.minute, d3_time_minutesStep, function(date) {
+  return date.getMinutes();
+});
+
+d3.time.minutes.utc = d3_time_range(d3.time.minute, d3_time_minutesStep, function(date) {
+  return date.getUTCMinutes();
+});
+
+function d3_time_minutesStep(date) {
+  date.setTime(date.getTime() + 6e4); // assumes no leap seconds
+}
+d3.time.hour = function(date) {
+  var offset = date.getTimezoneOffset() / 60;
+  return new Date((~~(date / 36e5 - offset) + offset) * 36e5);
+};
+
+d3.time.hour.utc = function(date) {
+  return new Date(~~(date / 36e5) * 36e5);
+};
+d3.time.hours = d3_time_range(d3.time.hour, d3_time_hoursStep, function(date) {
+  return date.getHours();
+});
+
+d3.time.hours.utc = d3_time_range(d3.time.hour.utc, d3_time_hoursStep, function(date) {
+  return date.getUTCHours();
+});
+
+function d3_time_hoursStep(date) {
+  date.setTime(date.getTime() + 36e5);
+}
+d3.time.day = function(date) {
+  return new Date(date.getFullYear(), date.getMonth(), date.getDate());
+};
+
+d3.time.day.utc = function(date) {
+  return new Date(~~(date / 864e5) * 864e5);
+};
+d3.time.days = d3_time_range(d3.time.day, function(date) {
+  date.setDate(date.getDate() + 1);
+}, function(date) {
+  return date.getDate() - 1;
+});
+
+d3.time.days.utc = d3_time_range(d3.time.day.utc, function(date) {
+  date.setUTCDate(date.getUTCDate() + 1);
+}, function(date) {
+  return date.getUTCDate() - 1;
+});
+d3.time.week = function(date) {
+  (date = d3.time.day(date)).setDate(date.getDate() - date.getDay());
+  return date;
+};
+
+d3.time.week.utc = function(date) {
+  (date = d3.time.day.utc(date)).setUTCDate(date.getUTCDate() - date.getUTCDay());
+  return date;
+};
+d3.time.weeks = d3_time_range(d3.time.week, function(date) {
+  date.setDate(date.getDate() + 7);
+}, function(date) {
+  return ~~((date - new Date(date.getFullYear(), 0, 1)) / 6048e5);
+});
+
+d3.time.weeks.utc = d3_time_range(d3.time.week.utc, function(date) {
+  date.setUTCDate(date.getUTCDate() + 7);
+}, function(date) {
+  return ~~((date - Date.UTC(date.getUTCFullYear(), 0, 1)) / 6048e5);
+});
+d3.time.month = function(date) {
+  return new Date(date.getFullYear(), date.getMonth(), 1);
+};
+
+d3.time.month.utc = function(date) {
+  return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), 1));
+};
+d3.time.months = d3_time_range(d3.time.month, function(date) {
+  date.setMonth(date.getMonth() + 1);
+}, function(date) {
+  return date.getMonth();
+});
+
+d3.time.months.utc = d3_time_range(d3.time.month.utc, function(date) {
+  date.setUTCMonth(date.getUTCMonth() + 1);
+}, function(date) {
+  return date.getUTCMonth();
+});
+d3.time.year = function(date) {
+  return new Date(date.getFullYear(), 0, 1);
+};
+
+d3.time.year.utc = function(date) {
+  return new Date(Date.UTC(date.getUTCFullYear(), 0, 1));
+};
+d3.time.years = d3_time_range(d3.time.year, function(date) {
+  date.setFullYear(date.getFullYear() + 1);
+}, function(date) {
+  return date.getFullYear();
+});
+
+d3.time.years.utc = d3_time_range(d3.time.year.utc, function(date) {
+  date.setUTCFullYear(date.getUTCFullYear() + 1);
+}, function(date) {
+  return date.getUTCFullYear();
+});
+// TODO nice
+function d3_time_scale(linear, methods, format) {
+
+  function scale(x) {
+    return linear(x);
+  }
+
+  scale.invert = function(x) {
+    return d3_time_scaleDate(linear.invert(x));
+  };
+
+  scale.domain = function(x) {
+    if (!arguments.length) return linear.domain().map(d3_time_scaleDate);
+    linear.domain(x);
+    return scale;
+  };
+
+  scale.ticks = function(m, k) {
+    var extent = d3_time_scaleExtent(scale.domain());
+    if (typeof m !== "function") {
+      var span = extent[1] - extent[0],
+          target = span / m,
+          i = d3.bisect(d3_time_scaleSteps, target, 1, d3_time_scaleSteps.length - 1);
+      if (Math.log(target / d3_time_scaleSteps[i - 1]) < Math.log(d3_time_scaleSteps[i] / target)) --i;
+      m = methods[i];
+      k = m[1];
+      m = m[0];
+    }
+    return m(extent[0], extent[1], k);
+  };
+
+  scale.tickFormat = function() {
+    return format;
+  };
+
+  scale.copy = function() {
+    return d3_time_scale(linear.copy(), methods, format);
+  };
+
+  // TOOD expose d3_scale_linear_rebind?
+  scale.range = d3.rebind(scale, linear.range);
+  scale.rangeRound = d3.rebind(scale, linear.rangeRound);
+  scale.interpolate = d3.rebind(scale, linear.interpolate);
+  scale.clamp = d3.rebind(scale, linear.clamp);
+
+  return scale;
+}
+
+// TODO expose d3_scaleExtent?
+function d3_time_scaleExtent(domain) {
+  var start = domain[0], stop = domain[domain.length - 1];
+  return start < stop ? [start, stop] : [stop, start];
+}
+
+function d3_time_scaleDate(t) {
+  return new Date(t);
+}
+
+function d3_time_scaleFormat(formats) {
+  return function(date) {
+    var i = formats.length - 1, f = formats[i];
+    while (!f[1](date)) f = formats[--i];
+    return f[0](date);
+  };
+}
+
+var d3_time_scaleSteps = [
+  1e3,    // 1-second
+  5e3,    // 5-second
+  15e3,   // 15-second
+  3e4,    // 30-second
+  6e4,    // 1-minute
+  3e5,    // 5-minute
+  9e5,    // 15-minute
+  18e5,   // 30-minute
+  36e5,   // 1-hour
+  108e5,  // 3-hour
+  216e5,  // 6-hour
+  432e5,  // 12-hour
+  864e5,  // 1-day
+  1728e5, // 2-day
+  6048e5, // 1-week
+  1728e6, // 1-month
+  7776e6, // 3-month
+  31536e6 // 1-year
+];
+
+var d3_time_scaleLocalMethods = [
+  [d3.time.seconds, 1],
+  [d3.time.seconds, 5],
+  [d3.time.seconds, 15],
+  [d3.time.seconds, 30],
+  [d3.time.minutes, 1],
+  [d3.time.minutes, 5],
+  [d3.time.minutes, 15],
+  [d3.time.minutes, 30],
+  [d3.time.hours, 1],
+  [d3.time.hours, 3],
+  [d3.time.hours, 6],
+  [d3.time.hours, 12],
+  [d3.time.days, 1],
+  [d3.time.days, 2],
+  [d3.time.weeks, 1],
+  [d3.time.months, 1],
+  [d3.time.months, 3],
+  [d3.time.years, 1]
+];
+
+var d3_time_scaleLocalFormats = [
+  [d3.time.format("%Y"), function(d) { return true; }],
+  [d3.time.format("%B"), function(d) { return d.getMonth(); }],
+  [d3.time.format("%b %d"), function(d) { return d.getDate() != 1; }],
+  [d3.time.format("%a %d"), function(d) { return d.getDay() && d.getDate() != 1; }],
+  [d3.time.format("%I %p"), function(d) { return d.getHours(); }],
+  [d3.time.format("%I:%M"), function(d) { return d.getMinutes(); }],
+  [d3.time.format(":%S"), function(d) { return d.getSeconds() || d.getMilliseconds(); }]
+];
+
+var d3_time_scaleLocalFormat = d3_time_scaleFormat(d3_time_scaleLocalFormats);
+
+d3.time.scale = function() {
+  return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat);
+};
+var d3_time_scaleUTCMethods = [
+  [d3.time.seconds.utc, 1],
+  [d3.time.seconds.utc, 5],
+  [d3.time.seconds.utc, 15],
+  [d3.time.seconds.utc, 30],
+  [d3.time.minutes.utc, 1],
+  [d3.time.minutes.utc, 5],
+  [d3.time.minutes.utc, 15],
+  [d3.time.minutes.utc, 30],
+  [d3.time.hours.utc, 1],
+  [d3.time.hours.utc, 3],
+  [d3.time.hours.utc, 6],
+  [d3.time.hours.utc, 12],
+  [d3.time.days.utc, 1],
+  [d3.time.days.utc, 2],
+  [d3.time.weeks.utc, 1],
+  [d3.time.months.utc, 1],
+  [d3.time.months.utc, 3],
+  [d3.time.years.utc, 1]
+];
+
+var d3_time_scaleUTCFormats = [
+  [d3.time.format.utc("%Y"), function(d) { return true; }],
+  [d3.time.format.utc("%B"), function(d) { return d.getUTCMonth(); }],
+  [d3.time.format.utc("%b %d"), function(d) { return d.getUTCDate() != 1; }],
+  [d3.time.format.utc("%a %d"), function(d) { return d.getUTCDay() && d.getUTCDate() != 1; }],
+  [d3.time.format.utc("%I %p"), function(d) { return d.getUTCHours(); }],
+  [d3.time.format.utc("%I:%M"), function(d) { return d.getUTCMinutes(); }],
+  [d3.time.format.utc(":%S"), function(d) { return d.getUTCSeconds() || d.getUTCMilliseconds(); }]
+];
+
+var d3_time_scaleUTCFormat = d3_time_scaleFormat(d3_time_scaleUTCFormats);
+
+d3.time.scale.utc = function() {
+  return d3_time_scale(d3.scale.linear(), d3_time_scaleUTCMethods, d3_time_scaleUTCFormat);
+};
+})();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/d3/d3.time.min.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,1 @@
+(function(){function b(a,b,c,d){var e,f,g=0,i=b.length,j=c.length;while(g<i){if(d>=j)return-1;e=b.charCodeAt(g++);if(e==37){f=h[b.charAt(g++)];if(!f||(d=f(a,c,d))<0)return-1}else if(e!=c.charCodeAt(d++))return-1}return d}function i(a,b,c){return b.substring(c,c+=3).toLowerCase()in j?c:-1}function k(a,b,c){l.lastIndex=0;var d=l.exec(b.substring(c,c+10));return d?c+=d[0].length:-1}function n(a,b,c){var d=o[b.substring(c,c+=3).toLowerCase()];return d==null?-1:(a.setMonth(d),c)}function p(a,b,c){q.lastIndex=0;var d=q.exec(b.substring(c,c+12));return d?(a.setMonth(r[d[0].toLowerCase()]),c+=d[0].length):-1}function t(a,c,d){return b(a,g.c.toString(),c,d)}function u(a,c,d){return b(a,g.x.toString(),c,d)}function v(a,c,d){return b(a,g.X.toString(),c,d)}function w(a,b,c){G.lastIndex=0;var d=G.exec(b.substring(c,c+4));return d?(a.setFullYear(d[0]),c+=d[0].length):-1}function x(a,b,c){G.lastIndex=0;var d=G.exec(b.substring(c,c+2));return d?(a.setFullYear(y()+ +d[0]),c+=d[0].length):-1}function y(){return~~((new Date).getFullYear()/1e3)*1e3}function z(a,b,c){G.lastIndex=0;var d=G.exec(b.substring(c,c+2));return d?(a.setMonth(d[0]-1),c+=d[0].length):-1}function A(a,b,c){G.lastIndex=0;var d=G.exec(b.substring(c,c+2));return d?(a.setDate(+d[0]),c+=d[0].length):-1}function B(a,b,c){G.lastIndex=0;var d=G.exec(b.substring(c,c+2));return d?(a.setHours(+d[0]),c+=d[0].length):-1}function C(a,b,c){return a.hour12=!0,B(a,b,c)}function D(a,b,c){G.lastIndex=0;var d=G.exec(b.substring(c,c+2));return d?(a.setMinutes(+d[0]),c+=d[0].length):-1}function E(a,b,c){G.lastIndex=0;var d=G.exec(b.substring(c,c+2));return d?(a.setSeconds(+d[0]),c+=d[0].length):-1}function F(a,b,c){G.lastIndex=0;var d=G.exec(b.substring(c,c+3));return d?(a.setMilliseconds(+d[0]),c+=d[0].length):-1}function H(a,b,c){var d=I[b.substring(c,c+=2).toLowerCase()];return d==null?-1:(a.hour12pm=d,c)}function J(b){return new a(b.getFullYear(),0,1)}function K(a,b){return~~((b-a)/864e5-(b.getTimezoneOffset()-a.getTimezoneOffset())/1440)}function L(a){return d(1+K(J(a),a))}function M(a){var b=J(a);return c(~~((K(b,a)+b.getDay())/7))}function N(a){var b=J(a);return c(~~((K(b,a)+(b.getDay()+6)%7)/7))}function O(a){var b=a.getTimezoneOffset(),d=b>0?"-":"+",e=~~(Math.abs(b)/60),f=Math.abs(b)%60;return d+c(e)+c(f)}function P(){this._=new Date(Date.UTC.apply(this,arguments))}function R(a){return a.toISOString()}function S(a,b,c){return function(d,e,f){var g=a(d),h=[];g<d&&b(g);if(f>1)while(g<e){var i=new Date(+g);c(i)%f||h.push(i),b(g)}else while(g<e)h.push(new Date(+g)),b(g);return h}}function T(a){a.setTime(a.getTime()+6e4)}function U(a){a.setTime(a.getTime()+36e5)}function V(a,b,c){function d(b){return a(b)}return d.invert=function(b){return X(a.invert(b))},d.domain=function(b){return arguments.length?(a.domain(b),d):a.domain().map(X)},d.ticks=function(a,c){var e=W(d.domain());if(typeof a!="function"){var f=e[1]-e[0],g=f/a,h=d3.bisect(Z,g,1,Z.length-1);Math.log(g/Z[h-1])<Math.log(Z[h]/g)&&--h,a=b[h],c=a[1],a=a[0]}return a(e[0],e[1],c)},d.tickFormat=function(){return c},d.copy=function(){return V(a.copy(),b,c)},d.range=d3.rebind(d,a.range),d.rangeRound=d3.rebind(d,a.rangeRound),d.interpolate=d3.rebind(d,a.interpolate),d.clamp=d3.rebind(d,a.clamp),d}function W(a){var b=a[0],c=a[a.length-1];return b<c?[b,c]:[c,b]}function X(a){return new Date(a)}function Y(a){return function(b){var c=a.length-1,d=a[c];while(!d[1](b))d=a[--c];return d[0](b)}}d3.time={};var a=Date;d3.time.format=function(c){function e(a){var b=[],e=-1,f=0,h,i;while(++e<d)c.charCodeAt(e)==37&&(b.push(c.substring(f,e),(i=g[h=c.charAt(++e)])?i(a):h),f=e+1);return b.push(c.substring(f,e)),b.join("")}var d=c.length;return e.parse=function(d){var e=new a(1900,0,1),f=b(e,c,d,0);if(f!=d.length)return null;if(e.hour12){var g=e.getHours()%12;e.setHours(e.hour12pm?g+12:g)}return delete e.hour12,delete e.hour12pm,e},e.toString=function(){return c},e};var c=d3.format("02d"),d=d3.format("03d"),e=d3.format("04d"),f=d3.format("2d"),g={a:function(a){return m[a.getDay()].substring(0,3)},A:function(a){return m[a.getDay()]},b:function(a){return s[a.getMonth()].substring(0,3)},B:function(a){return s[a.getMonth()]},c:d3.time.format("%a %b %e %H:%M:%S %Y"),d:function(a){return c(a.getDate())},e:function(a){return f(a.getDate())},H:function(a){return c(a.getHours())},I:function(a){return c(a.getHours()%12||12)},j:L,L:function(a){return d(a.getMilliseconds())},m:function(a){return c(a.getMonth()+1)},M:function(a){return c(a.getMinutes())},p:function(a){return a.getHours()>=12?"PM":"AM"},S:function(a){return c(a.getSeconds())},U:M,w:function(a){return a.getDay()},W:N,x:d3.time.format("%m/%d/%y"),X:d3.time.format("%H:%M:%S"),y:function(a){return c(a.getFullYear()%100)},Y:function(a){return e(a.getFullYear()%1e4)},Z:O,"%":function(a){return"%"}},h={a:i,A:k,b:n,B:p,c:t,d:A,e:A,H:B,I:C,L:F,m:z,M:D,p:H,S:E,x:u,X:v,y:x,Y:w},j={sun:3,mon:3,tue:3,wed:3,thu:3,fri:3,sat:3},l=/^(?:Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday)/ig,m=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],o={jan:0,feb:1,mar:2,apr:3,may:4,jun:5,jul:6,aug:7,sep:8,oct:9,nov:10,dec:11},q=/^(?:January|February|March|April|May|June|July|August|September|October|November|December)/ig,r={january:0,february:1,march:2,april:3,may:4,june:5,july:6,august:7,september:8,october:9,november:10,december:11},s=["January","February","March","April","May","June","July","August","September","October","November","December"],G=/\s*\d+/,I={am:0,pm:1};d3.time.format.utc=function(b){function d(b){try{a=P;var d=new a;return d._=b,c(d)}finally{a=Date}}var c=d3.time.format(b);return d.parse=function(b){try{a=P;var d=c.parse(b);return d&&d._}finally{a=Date}},d.toString=c.toString,d},P.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.getTime()},setDate:function(a){this._.setUTCDate(a)},setDay:function(a){this._.setUTCDay(a)},setFullYear:function(a){this._.setUTCFullYear(a)},setHours:function(a){this._.setUTCHours(a)},setMilliseconds:function(a){this._.setUTCMilliseconds(a)},setMinutes:function(a){this._.setUTCMinutes(a)},setMonth:function(a){this._.setUTCMonth(a)},setSeconds:function(a){this._.setUTCSeconds(a)}};var Q=d3.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ");d3.time.format.iso=Date.prototype.toISOString?R:Q,R.parse=function(a){return new Date(a)},R.toString=Q.toString,d3.time.second=function(a){return new Date(~~(a/1e3)*1e3)},d3.time.second.utc=d3.time.second,d3.time.seconds=S(d3.time.second,function(a){a.setTime(a.getTime()+1e3)},function(a){return a.getSeconds()}),d3.time.seconds.utc=d3.time.seconds,d3.time.minute=function(a){return new Date(~~(a/6e4)*6e4)},d3.time.minute.utc=d3.time.minute,d3.time.minutes=S(d3.time.minute,T,function(a){return a.getMinutes()}),d3.time.minutes.utc=S(d3.time.minute,T,function(a){return a.getUTCMinutes()}),d3.time.hour=function(a){var b=a.getTimezoneOffset()/60;return new Date((~~(a/36e5-b)+b)*36e5)},d3.time.hour.utc=function(a){return new Date(~~(a/36e5)*36e5)},d3.time.hours=S(d3.time.hour,U,function(a){return a.getHours()}),d3.time.hours.utc=S(d3.time.hour.utc,U,function(a){return a.getUTCHours()}),d3.time.day=function(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate())},d3.time.day.utc=function(a){return new Date(~~(a/864e5)*864e5)},d3.time.days=S(d3.time.day,function(a){a.setDate(a.getDate()+1)},function(a){return a.getDate()-1}),d3.time.days.utc=S(d3.time.day.utc,function(a){a.setUTCDate(a.getUTCDate()+1)},function(a){return a.getUTCDate()-1}),d3.time.week=function(a){return(a=d3.time.day(a)).setDate(a.getDate()-a.getDay()),a},d3.time.week.utc=function(a){return(a=d3.time.day.utc(a)).setUTCDate(a.getUTCDate()-a.getUTCDay()),a},d3.time.weeks=S(d3.time.week,function(a){a.setDate(a.getDate()+7)},function(a){return~~((a-new Date(a.getFullYear(),0,1))/6048e5)}),d3.time.weeks.utc=S(d3.time.week.utc,function(a){a.setUTCDate(a.getUTCDate()+7)},function(a){return~~((a-Date.UTC(a.getUTCFullYear(),0,1))/6048e5)}),d3.time.month=function(a){return new Date(a.getFullYear(),a.getMonth(),1)},d3.time.month.utc=function(a){return new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),1))},d3.time.months=S(d3.time.month,function(a){a.setMonth(a.getMonth()+1)},function(a){return a.getMonth()}),d3.time.months.utc=S(d3.time.month.utc,function(a){a.setUTCMonth(a.getUTCMonth()+1)},function(a){return a.getUTCMonth()}),d3.time.year=function(a){return new Date(a.getFullYear(),0,1)},d3.time.year.utc=function(a){return new Date(Date.UTC(a.getUTCFullYear(),0,1))},d3.time.years=S(d3.time.year,function(a){a.setFullYear(a.getFullYear()+1)},function(a){return a.getFullYear()}),d3.time.years.utc=S(d3.time.year.utc,function(a){a.setUTCFullYear(a.getUTCFullYear()+1)},function(a){return a.getUTCFullYear()});var Z=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,1728e6,7776e6,31536e6],$=[[d3.time.seconds,1],[d3.time.seconds,5],[d3.time.seconds,15],[d3.time.seconds,30],[d3.time.minutes,1],[d3.time.minutes,5],[d3.time.minutes,15],[d3.time.minutes,30],[d3.time.hours,1],[d3.time.hours,3],[d3.time.hours,6],[d3.time.hours,12],[d3.time.days,1],[d3.time.days,2],[d3.time.weeks,1],[d3.time.months,1],[d3.time.months,3],[d3.time.years,1]],_=[[d3.time.format("%Y"),function(a){return!0}],[d3.time.format("%B"),function(a){return a.getMonth()}],[d3.time.format("%b %d"),function(a){return a.getDate()!=1}],[d3.time.format("%a %d"),function(a){return a.getDay()&&a.getDate()!=1}],[d3.time.format("%I %p"),function(a){return a.getHours()}],[d3.time.format("%I:%M"),function(a){return a.getMinutes()}],[d3.time.format(":%S"),function(a){return a.getSeconds()||a.getMilliseconds()}]],ba=Y(_);d3.time.scale=function(){return V(d3.scale.linear(),$,ba)};var bb=[[d3.time.seconds.utc,1],[d3.time.seconds.utc,5],[d3.time.seconds.utc,15],[d3.time.seconds.utc,30],[d3.time.minutes.utc,1],[d3.time.minutes.utc,5],[d3.time.minutes.utc,15],[d3.time.minutes.utc,30],[d3.time.hours.utc,1],[d3.time.hours.utc,3],[d3.time.hours.utc,6],[d3.time.hours.utc,12],[d3.time.days.utc,1],[d3.time.days.utc,2],[d3.time.weeks.utc,1],[d3.time.months.utc,1],[d3.time.months.utc,3],[d3.time.years.utc,1]],bc=[[d3.time.format.utc("%Y"),function(a){return!0}],[d3.time.format.utc("%B"),function(a){return a.getUTCMonth()}],[d3.time.format.utc("%b %d"),function(a){return a.getUTCDate()!=1}],[d3.time.format.utc("%a %d"),function(a){return a.getUTCDay()&&a.getUTCDate()!=1}],[d3.time.format.utc("%I %p"),function(a){return a.getUTCHours()}],[d3.time.format.utc("%I:%M"),function(a){return a.getUTCMinutes()}],[d3.time.format.utc(":%S"),function(a){return a.getUTCSeconds()||a.getUTCMilliseconds()}]],bd=Y(bc);d3.time.scale.utc=function(){return V(d3.scale.linear(),bb,bd)}})();
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/d3/package.json	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,28 @@
+{
+  "name": "d3",
+  "version": "2.5.0",
+  "description": "A small, free JavaScript library for manipulating documents based on data.",
+  "keywords": [
+    "dom",
+    "w3c",
+    "visualization",
+    "svg",
+    "animation",
+    "canvas"
+  ],
+  "homepage": "http://mbostock.github.com/d3/",
+  "author": {
+    "name": "Mike Bostock",
+    "url": "http://bost.ocks.org/mike"
+  },
+  "repository": {
+    "type": "git",
+    "url": "http://github.com/mbostock/d3.git"
+  },
+  "main": "d3.js",
+  "dependencies": {
+    "uglify-js": "1.1.1",
+    "jsdom": "0.2.8",
+    "vows": "0.5.11"
+  }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/d3_modifie/d3.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,4695 @@
+(function(){if (!Date.now) Date.now = function() {
+  return +new Date;
+};
+try {
+  document.createElement("div").style.setProperty("opacity", 0, "");
+} catch (error) {
+  var d3_style_prototype = CSSStyleDeclaration.prototype,
+      d3_style_setProperty = d3_style_prototype.setProperty;
+  d3_style_prototype.setProperty = function(name, value, priority) {
+    d3_style_setProperty.call(this, name, value + "", priority);
+  };
+}
+d3 = {version: "2.7.1"}; // semver
+var d3_array = d3_arraySlice; // conversion for NodeLists
+
+function d3_arrayCopy(pseudoarray) {
+  var i = -1, n = pseudoarray.length, array = [];
+  while (++i < n) array.push(pseudoarray[i]);
+  return array;
+}
+
+function d3_arraySlice(pseudoarray) {
+  return Array.prototype.slice.call(pseudoarray);
+}
+
+try {
+  d3_array(document.documentElement.childNodes)[0].nodeType;
+} catch(e) {
+  d3_array = d3_arrayCopy;
+}
+
+var d3_arraySubclass = [].__proto__?
+
+// Until ECMAScript supports array subclassing, prototype injection works well.
+function(array, prototype) {
+  array.__proto__ = prototype;
+}:
+
+// And if your browser doesn't support __proto__, we'll use direct extension.
+function(array, prototype) {
+  for (var property in prototype) array[property] = prototype[property];
+};
+function d3_this() {
+  return this;
+}
+d3.functor = function(v) {
+  return typeof v === "function" ? v : function() { return v; };
+};
+// Copies a variable number of methods from source to target.
+d3.rebind = function(target, source) {
+  var i = 1, n = arguments.length, method;
+  while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);
+  return target;
+};
+
+// Method is assumed to be a standard D3 getter-setter:
+// If passed with no arguments, gets the value.
+// If passed with arguments, sets the value and returns the target.
+function d3_rebind(target, source, method) {
+  return function() {
+    var value = method.apply(source, arguments);
+    return arguments.length ? target : value;
+  };
+}
+d3.ascending = function(a, b) {
+  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
+};
+d3.descending = function(a, b) {
+  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
+};
+d3.mean = function(array, f) {
+  var n = array.length,
+      a,
+      m = 0,
+      i = -1,
+      j = 0;
+  if (arguments.length === 1) {
+    while (++i < n) if (d3_number(a = array[i])) m += (a - m) / ++j;
+  } else {
+    while (++i < n) if (d3_number(a = f.call(array, array[i], i))) m += (a - m) / ++j;
+  }
+  return j ? m : undefined;
+};
+d3.median = function(array, f) {
+  if (arguments.length > 1) array = array.map(f);
+  array = array.filter(d3_number);
+  return array.length ? d3.quantile(array.sort(d3.ascending), .5) : undefined;
+};
+d3.min = function(array, f) {
+  var i = -1,
+      n = array.length,
+      a,
+      b;
+  if (arguments.length === 1) {
+    while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
+    while (++i < n) if ((b = array[i]) != null && a > b) a = b;
+  } else {
+    while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
+    while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;
+  }
+  return a;
+};
+d3.max = function(array, f) {
+  var i = -1,
+      n = array.length,
+      a,
+      b;
+  if (arguments.length === 1) {
+    while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
+    while (++i < n) if ((b = array[i]) != null && b > a) a = b;
+  } else {
+    while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
+    while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;
+  }
+  return a;
+};
+d3.extent = function(array, f) {
+  var i = -1,
+      n = array.length,
+      a,
+      b,
+      c;
+  if (arguments.length === 1) {
+    while (++i < n && ((a = c = array[i]) == null || a != a)) a = c = undefined;
+    while (++i < n) if ((b = array[i]) != null) {
+      if (a > b) a = b;
+      if (c < b) c = b;
+    }
+  } else {
+    while (++i < n && ((a = c = f.call(array, array[i], i)) == null || a != a)) a = undefined;
+    while (++i < n) if ((b = f.call(array, array[i], i)) != null) {
+      if (a > b) a = b;
+      if (c < b) c = b;
+    }
+  }
+  return [a, c];
+};
+d3.random = {
+  normal: function(mean, deviation) {
+    if (arguments.length < 2) deviation = 1;
+    if (arguments.length < 1) mean = 0;
+    return function() {
+      var x, y, r;
+      do {
+        x = Math.random() * 2 - 1;
+        y = Math.random() * 2 - 1;
+        r = x * x + y * y;
+      } while (!r || r > 1);
+      return mean + deviation * x * Math.sqrt(-2 * Math.log(r) / r);
+    };
+  }
+};
+function d3_number(x) {
+  return x != null && !isNaN(x);
+}
+d3.sum = function(array, f) {
+  var s = 0,
+      n = array.length,
+      a,
+      i = -1;
+
+  if (arguments.length === 1) {
+    while (++i < n) if (!isNaN(a = +array[i])) s += a;
+  } else {
+    while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a;
+  }
+
+  return s;
+};
+// R-7 per <http://en.wikipedia.org/wiki/Quantile>
+d3.quantile = function(values, p) {
+  var H = (values.length - 1) * p + 1,
+      h = Math.floor(H),
+      v = values[h - 1],
+      e = H - h;
+  return e ? v + e * (values[h] - v) : v;
+};
+d3.transpose = function(matrix) {
+  return d3.zip.apply(d3, matrix);
+};
+d3.zip = function() {
+  if (!(n = arguments.length)) return [];
+  for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m;) {
+    for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n;) {
+      zip[j] = arguments[j][i];
+    }
+  }
+  return zips;
+};
+
+function d3_zipLength(d) {
+  return d.length;
+}
+// Locate the insertion point for x in a to maintain sorted order. The
+// arguments lo and hi may be used to specify a subset of the array which should
+// be considered; by default the entire array is used. If x is already present
+// in a, the insertion point will be before (to the left of) any existing
+// entries. The return value is suitable for use as the first argument to
+// `array.splice` assuming that a is already sorted.
+//
+// The returned insertion point i partitions the array a into two halves so that
+// all v < x for v in a[lo:i] for the left side and all v >= x for v in a[i:hi]
+// for the right side.
+d3.bisectLeft = function(a, x, lo, hi) {
+  if (arguments.length < 3) lo = 0;
+  if (arguments.length < 4) hi = a.length;
+  while (lo < hi) {
+    var mid = (lo + hi) >> 1;
+    if (a[mid] < x) lo = mid + 1;
+    else hi = mid;
+  }
+  return lo;
+};
+
+// Similar to bisectLeft, but returns an insertion point which comes after (to
+// the right of) any existing entries of x in a.
+//
+// The returned insertion point i partitions the array into two halves so that
+// all v <= x for v in a[lo:i] for the left side and all v > x for v in a[i:hi]
+// for the right side.
+d3.bisect =
+d3.bisectRight = function(a, x, lo, hi) {
+  if (arguments.length < 3) lo = 0;
+  if (arguments.length < 4) hi = a.length;
+  while (lo < hi) {
+    var mid = (lo + hi) >> 1;
+    if (x < a[mid]) hi = mid;
+    else lo = mid + 1;
+  }
+  return lo;
+};
+d3.first = function(array, f) {
+  var i = 0,
+      n = array.length,
+      a = array[0],
+      b;
+  if (arguments.length === 1) f = d3.ascending;
+  while (++i < n) {
+    if (f.call(array, a, b = array[i]) > 0) {
+      a = b;
+    }
+  }
+  return a;
+};
+d3.last = function(array, f) {
+  var i = 0,
+      n = array.length,
+      a = array[0],
+      b;
+  if (arguments.length === 1) f = d3.ascending;
+  while (++i < n) {
+    if (f.call(array, a, b = array[i]) <= 0) {
+      a = b;
+    }
+  }
+  return a;
+};
+d3.nest = function() {
+  var nest = {},
+      keys = [],
+      sortKeys = [],
+      sortValues,
+      rollup;
+
+  function map(array, depth) {
+    if (depth >= keys.length) return rollup
+        ? rollup.call(nest, array) : (sortValues
+        ? array.sort(sortValues)
+        : array);
+
+    var i = -1,
+        n = array.length,
+        key = keys[depth++],
+        keyValue,
+        object,
+        o = {};
+
+    while (++i < n) {
+      if ((keyValue = key(object = array[i])) in o) {
+        o[keyValue].push(object);
+      } else {
+        o[keyValue] = [object];
+      }
+    }
+
+    for (keyValue in o) {
+      o[keyValue] = map(o[keyValue], depth);
+    }
+
+    return o;
+  }
+
+  function entries(map, depth) {
+    if (depth >= keys.length) return map;
+
+    var a = [],
+        sortKey = sortKeys[depth++],
+        key;
+
+    for (key in map) {
+      a.push({key: key, values: entries(map[key], depth)});
+    }
+
+    if (sortKey) a.sort(function(a, b) {
+      return sortKey(a.key, b.key);
+    });
+
+    return a;
+  }
+
+  nest.map = function(array) {
+    return map(array, 0);
+  };
+
+  nest.entries = function(array) {
+    return entries(map(array, 0), 0);
+  };
+
+  nest.key = function(d) {
+    keys.push(d);
+    return nest;
+  };
+
+  // Specifies the order for the most-recently specified key.
+  // Note: only applies to entries. Map keys are unordered!
+  nest.sortKeys = function(order) {
+    sortKeys[keys.length - 1] = order;
+    return nest;
+  };
+
+  // Specifies the order for leaf values.
+  // Applies to both maps and entries array.
+  nest.sortValues = function(order) {
+    sortValues = order;
+    return nest;
+  };
+
+  nest.rollup = function(f) {
+    rollup = f;
+    return nest;
+  };
+
+  return nest;
+};
+d3.keys = function(map) {
+  var keys = [];
+  for (var key in map) keys.push(key);
+  return keys;
+};
+d3.values = function(map) {
+  var values = [];
+  for (var key in map) values.push(map[key]);
+  return values;
+};
+d3.entries = function(map) {
+  var entries = [];
+  for (var key in map) entries.push({key: key, value: map[key]});
+  return entries;
+};
+d3.permute = function(array, indexes) {
+  var permutes = [],
+      i = -1,
+      n = indexes.length;
+  while (++i < n) permutes[i] = array[indexes[i]];
+  return permutes;
+};
+d3.merge = function(arrays) {
+  return Array.prototype.concat.apply([], arrays);
+};
+d3.split = function(array, f) {
+  var arrays = [],
+      values = [],
+      value,
+      i = -1,
+      n = array.length;
+  if (arguments.length < 2) f = d3_splitter;
+  while (++i < n) {
+    if (f.call(values, value = array[i], i)) {
+      values = [];
+    } else {
+      if (!values.length) arrays.push(values);
+      values.push(value);
+    }
+  }
+  return arrays;
+};
+
+function d3_splitter(d) {
+  return d == null;
+}
+function d3_collapse(s) {
+  return s.replace(/(^\s+)|(\s+$)/g, "").replace(/\s+/g, " ");
+}
+/**
+ * @param {number} start
+ * @param {number=} stop
+ * @param {number=} step
+ */
+d3.range = function(start, stop, step) {
+  if (arguments.length < 3) {
+    step = 1;
+    if (arguments.length < 2) {
+      stop = start;
+      start = 0;
+    }
+  }
+  if ((stop - start) / step == Infinity) throw new Error("infinite range");
+  var range = [],
+       i = -1,
+       j;
+  if (step < 0) while ((j = start + step * ++i) > stop) range.push(j);
+  else while ((j = start + step * ++i) < stop) range.push(j);
+  return range;
+};
+d3.requote = function(s) {
+  return s.replace(d3_requote_re, "\\$&");
+};
+
+var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;
+d3.round = function(x, n) {
+  return n
+      ? Math.round(x * Math.pow(10, n)) * Math.pow(10, -n)
+      : Math.round(x);
+};
+d3.xhr = function(url, mime, callback) {
+  var req = new XMLHttpRequest;
+  if (arguments.length < 3) callback = mime, mime = null;
+  else if (mime && req.overrideMimeType) req.overrideMimeType(mime);
+  req.open("GET", url, true);
+  if (mime) req.setRequestHeader("Accept", mime);
+  req.onreadystatechange = function() {
+    if (req.readyState === 4) callback(req.status < 300 ? req : null);
+  };
+  req.send(null);
+};
+d3.text = function(url, mime, callback) {
+  function ready(req) {
+    callback(req && req.responseText);
+  }
+  if (arguments.length < 3) {
+    callback = mime;
+    mime = null;
+  }
+  d3.xhr(url, mime, ready);
+};
+d3.json = function(url, callback) {
+  d3.text(url, "application/json", function(text) {
+    callback(text ? JSON.parse(text) : null);
+  });
+};
+d3.html = function(url, callback) {
+  d3.text(url, "text/html", function(text) {
+    if (text != null) { // Treat empty string as valid HTML.
+      var range = document.createRange();
+      range.selectNode(document.body);
+      text = range.createContextualFragment(text);
+    }
+    callback(text);
+  });
+};
+d3.xml = function(url, mime, callback) {
+  function ready(req) {
+    callback(req && req.responseXML);
+  }
+  if (arguments.length < 3) {
+    callback = mime;
+    mime = null;
+  }
+  d3.xhr(url, mime, ready);
+};
+var d3_nsPrefix = {
+  svg: "http://www.w3.org/2000/svg",
+  xhtml: "http://www.w3.org/1999/xhtml",
+  xlink: "http://www.w3.org/1999/xlink",
+  xml: "http://www.w3.org/XML/1998/namespace",
+  xmlns: "http://www.w3.org/2000/xmlns/"
+};
+
+d3.ns = {
+  prefix: d3_nsPrefix,
+  qualify: function(name) {
+    var i = name.indexOf(":");
+    return i < 0 ? (name in d3_nsPrefix
+      ? {space: d3_nsPrefix[name], local: name} : name)
+      : {space: d3_nsPrefix[name.substring(0, i)], local: name.substring(i + 1)};
+  }
+};
+d3.dispatch = function() {
+  var dispatch = new d3_dispatch(),
+      i = -1,
+      n = arguments.length;
+  while (++i < n) dispatch[arguments[i]] = d3_dispatch_event();
+  return dispatch;
+};
+
+function d3_dispatch() {}
+
+d3_dispatch.prototype.on = function(type, listener) {
+  var i = type.indexOf("."),
+      name = "";
+
+  // Extract optional namespace, e.g., "click.foo"
+  if (i > 0) {
+    name = type.substring(i + 1);
+    type = type.substring(0, i);
+  }
+
+  return arguments.length < 2
+      ? this[type].on(name)
+      : (this[type].on(name, listener), this);
+};
+
+function d3_dispatch_event() {
+  var listeners = [],
+      listenerByName = {};
+
+  function dispatch() {
+    var z = listeners, // defensive reference
+        i = -1,
+        n = z.length,
+        l;
+    while (++i < n) if (l = z[i].on) l.apply(this, arguments);
+  }
+
+  dispatch.on = function(name, listener) {
+    var l, i;
+
+    // return the current listener, if any
+    if (arguments.length < 2) return (l = listenerByName[name]) && l.on;
+
+    // remove the old listener, if any (with copy-on-write)
+    if (l = listenerByName[name]) {
+      l.on = null;
+      listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));
+      delete listenerByName[name];
+    }
+
+    // add the new listener, if any
+    if (listener) {
+      listeners.push(listenerByName[name] = {on: listener});
+    }
+
+    return dispatch;
+  };
+
+  return dispatch;
+};
+// TODO align
+d3.format = function(specifier) {
+  var match = d3_format_re.exec(specifier),
+      fill = match[1] || " ",
+      sign = match[3] || "",
+      zfill = match[5],
+      width = +match[6],
+      comma = match[7],
+      precision = match[8],
+      type = match[9],
+      scale = 1,
+      suffix = "",
+      integer = false;
+
+  if (precision) precision = +precision.substring(1);
+
+  if (zfill) {
+    fill = "0"; // TODO align = "=";
+    if (comma) width -= Math.floor((width - 1) / 4);
+  }
+
+  switch (type) {
+    case "n": comma = true; type = "g"; break;
+    case "%": scale = 100; suffix = "%"; type = "f"; break;
+    case "p": scale = 100; suffix = "%"; type = "r"; break;
+    case "d": integer = true; precision = 0; break;
+    case "s": scale = -1; type = "r"; break;
+  }
+
+  // If no precision is specified for r, fallback to general notation.
+  if (type == "r" && !precision) type = "g";
+
+  type = d3_format_types[type] || d3_format_typeDefault;
+
+  return function(value) {
+
+    // Return the empty string for floats formatted as ints.
+    if (integer && (value % 1)) return "";
+
+    // Convert negative to positive, and record the sign prefix.
+    var negative = (value < 0) && (value = -value) ? "\u2212" : sign;
+
+    // Apply the scale, computing it from the value's exponent for si format.
+    if (scale < 0) {
+      var prefix = d3.formatPrefix(value, precision);
+      value *= prefix.scale;
+      suffix = prefix.symbol;
+    } else {
+      value *= scale;
+    }
+
+    // Convert to the desired precision.
+    value = type(value, precision);
+
+    // If the fill character is 0, the sign and group is applied after the fill.
+    if (zfill) {
+      var length = value.length + negative.length;
+      if (length < width) value = new Array(width - length + 1).join(fill) + value;
+      if (comma) value = d3_format_group(value);
+      value = negative + value;
+    }
+
+    // Otherwise (e.g., space-filling), the sign and group is applied before.
+    else {
+      if (comma) value = d3_format_group(value);
+      value = negative + value;
+      var length = value.length;
+      if (length < width) value = new Array(width - length + 1).join(fill) + value;
+    }
+
+    return value + suffix;
+  };
+};
+
+// [[fill]align][sign][#][0][width][,][.precision][type]
+var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/;
+
+var d3_format_types = {
+  g: function(x, p) { return x.toPrecision(p); },
+  e: function(x, p) { return x.toExponential(p); },
+  f: function(x, p) { return x.toFixed(p); },
+  r: function(x, p) { return d3.round(x, p = d3_format_precision(x, p)).toFixed(Math.max(0, Math.min(20, p))); }
+};
+
+function d3_format_precision(x, p) {
+  return p - (x ? 1 + Math.floor(Math.log(x + Math.pow(10, 1 + Math.floor(Math.log(x) / Math.LN10) - p)) / Math.LN10) : 1);
+}
+
+function d3_format_typeDefault(x) {
+  return x + "";
+}
+
+// Apply comma grouping for thousands.
+function d3_format_group(value) {
+  var i = value.lastIndexOf("."),
+      f = i >= 0 ? value.substring(i) : (i = value.length, ""),
+      t = [];
+  while (i > 0) t.push(value.substring(i -= 3, i + 3));
+  return t.reverse().join(",") + f;
+}
+var d3_formatPrefixes = ["y","z","a","f","p","n","","m","","k","M","G","T","P","E","Z","Y"].map(d3_formatPrefix);
+
+d3.formatPrefix = function(value, precision) {
+  var i = 0;
+  if (value) {
+    if (value < 0) value *= -1;
+    if (precision) value = d3.round(value, d3_format_precision(value, precision));
+    i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);
+    i = Math.max(-24, Math.min(24, Math.floor((i <= 0 ? i + 1 : i - 1) / 3) * 3));
+  }
+  return d3_formatPrefixes[8 + i / 3];
+};
+
+function d3_formatPrefix(d, i) {
+  return {
+    scale: Math.pow(10, (8 - i) * 3),
+    symbol: d
+  };
+}
+
+/*
+ * TERMS OF USE - EASING EQUATIONS
+ *
+ * Open source under the BSD License.
+ *
+ * Copyright 2001 Robert Penner
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ *   this list of conditions and the following disclaimer in the documentation
+ *   and/or other materials provided with the distribution.
+ *
+ * - Neither the name of the author nor the names of contributors may be used to
+ *   endorse or promote products derived from this software without specific
+ *   prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+var d3_ease_quad = d3_ease_poly(2),
+    d3_ease_cubic = d3_ease_poly(3);
+
+var d3_ease = {
+  linear: function() { return d3_ease_linear; },
+  poly: d3_ease_poly,
+  quad: function() { return d3_ease_quad; },
+  cubic: function() { return d3_ease_cubic; },
+  sin: function() { return d3_ease_sin; },
+  exp: function() { return d3_ease_exp; },
+  circle: function() { return d3_ease_circle; },
+  elastic: d3_ease_elastic,
+  back: d3_ease_back,
+  bounce: function() { return d3_ease_bounce; }
+};
+
+var d3_ease_mode = {
+  "in": function(f) { return f; },
+  "out": d3_ease_reverse,
+  "in-out": d3_ease_reflect,
+  "out-in": function(f) { return d3_ease_reflect(d3_ease_reverse(f)); }
+};
+
+d3.ease = function(name) {
+  var i = name.indexOf("-"),
+      t = i >= 0 ? name.substring(0, i) : name,
+      m = i >= 0 ? name.substring(i + 1) : "in";
+  return d3_ease_clamp(d3_ease_mode[m](d3_ease[t].apply(null, Array.prototype.slice.call(arguments, 1))));
+};
+
+function d3_ease_clamp(f) {
+  return function(t) {
+    return t <= 0 ? 0 : t >= 1 ? 1 : f(t);
+  };
+}
+
+function d3_ease_reverse(f) {
+  return function(t) {
+    return 1 - f(1 - t);
+  };
+}
+
+function d3_ease_reflect(f) {
+  return function(t) {
+    return .5 * (t < .5 ? f(2 * t) : (2 - f(2 - 2 * t)));
+  };
+}
+
+function d3_ease_linear(t) {
+  return t;
+}
+
+function d3_ease_poly(e) {
+  return function(t) {
+    return Math.pow(t, e);
+  }
+}
+
+function d3_ease_sin(t) {
+  return 1 - Math.cos(t * Math.PI / 2);
+}
+
+function d3_ease_exp(t) {
+  return Math.pow(2, 10 * (t - 1));
+}
+
+function d3_ease_circle(t) {
+  return 1 - Math.sqrt(1 - t * t);
+}
+
+function d3_ease_elastic(a, p) {
+  var s;
+  if (arguments.length < 2) p = 0.45;
+  if (arguments.length < 1) { a = 1; s = p / 4; }
+  else s = p / (2 * Math.PI) * Math.asin(1 / a);
+  return function(t) {
+    return 1 + a * Math.pow(2, 10 * -t) * Math.sin((t - s) * 2 * Math.PI / p);
+  };
+}
+
+function d3_ease_back(s) {
+  if (!s) s = 1.70158;
+  return function(t) {
+    return t * t * ((s + 1) * t - s);
+  };
+}
+
+function d3_ease_bounce(t) {
+  return t < 1 / 2.75 ? 7.5625 * t * t
+      : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75
+      : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375
+      : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;
+}
+d3.event = null;
+
+function d3_eventCancel() {
+  d3.event.stopPropagation();
+  d3.event.preventDefault();
+}
+d3.interpolate = function(a, b) {
+  var i = d3.interpolators.length, f;
+  while (--i >= 0 && !(f = d3.interpolators[i](a, b)));
+  return f;
+};
+
+d3.interpolateNumber = function(a, b) {
+  b -= a;
+  return function(t) { return a + b * t; };
+};
+
+d3.interpolateRound = function(a, b) {
+  b -= a;
+  return function(t) { return Math.round(a + b * t); };
+};
+
+d3.interpolateString = function(a, b) {
+  var m, // current match
+      i, // current index
+      j, // current index (for coallescing)
+      s0 = 0, // start index of current string prefix
+      s1 = 0, // end index of current string prefix
+      s = [], // string constants and placeholders
+      q = [], // number interpolators
+      n, // q.length
+      o;
+
+  // Reset our regular expression!
+  d3_interpolate_number.lastIndex = 0;
+
+  // Find all numbers in b.
+  for (i = 0; m = d3_interpolate_number.exec(b); ++i) {
+    if (m.index) s.push(b.substring(s0, s1 = m.index));
+    q.push({i: s.length, x: m[0]});
+    s.push(null);
+    s0 = d3_interpolate_number.lastIndex;
+  }
+  if (s0 < b.length) s.push(b.substring(s0));
+
+  // Find all numbers in a.
+  for (i = 0, n = q.length; (m = d3_interpolate_number.exec(a)) && i < n; ++i) {
+    o = q[i];
+    if (o.x == m[0]) { // The numbers match, so coallesce.
+      if (o.i) {
+        if (s[o.i + 1] == null) { // This match is followed by another number.
+          s[o.i - 1] += o.x;
+          s.splice(o.i, 1);
+          for (j = i + 1; j < n; ++j) q[j].i--;
+        } else { // This match is followed by a string, so coallesce twice.
+          s[o.i - 1] += o.x + s[o.i + 1];
+          s.splice(o.i, 2);
+          for (j = i + 1; j < n; ++j) q[j].i -= 2;
+        }
+      } else {
+          if (s[o.i + 1] == null) { // This match is followed by another number.
+          s[o.i] = o.x;
+        } else { // This match is followed by a string, so coallesce twice.
+          s[o.i] = o.x + s[o.i + 1];
+          s.splice(o.i + 1, 1);
+          for (j = i + 1; j < n; ++j) q[j].i--;
+        }
+      }
+      q.splice(i, 1);
+      n--;
+      i--;
+    } else {
+      o.x = d3.interpolateNumber(parseFloat(m[0]), parseFloat(o.x));
+    }
+  }
+
+  // Remove any numbers in b not found in a.
+  while (i < n) {
+    o = q.pop();
+    if (s[o.i + 1] == null) { // This match is followed by another number.
+      s[o.i] = o.x;
+    } else { // This match is followed by a string, so coallesce twice.
+      s[o.i] = o.x + s[o.i + 1];
+      s.splice(o.i + 1, 1);
+    }
+    n--;
+  }
+
+  // Special optimization for only a single match.
+  if (s.length === 1) {
+    return s[0] == null ? q[0].x : function() { return b; };
+  }
+
+  // Otherwise, interpolate each of the numbers and rejoin the string.
+  return function(t) {
+    for (i = 0; i < n; ++i) s[(o = q[i]).i] = o.x(t);
+    return s.join("");
+  };
+};
+
+d3.interpolateTransform = function(a, b) {
+  return d3.interpolateString(d3.transform(a) + "", d3.transform(b) + "");
+};
+
+d3.interpolateRgb = function(a, b) {
+  a = d3.rgb(a);
+  b = d3.rgb(b);
+  var ar = a.r,
+      ag = a.g,
+      ab = a.b,
+      br = b.r - ar,
+      bg = b.g - ag,
+      bb = b.b - ab;
+  return function(t) {
+    return "#"
+        + d3_rgb_hex(Math.round(ar + br * t))
+        + d3_rgb_hex(Math.round(ag + bg * t))
+        + d3_rgb_hex(Math.round(ab + bb * t));
+  };
+};
+
+// interpolates HSL space, but outputs RGB string (for compatibility)
+d3.interpolateHsl = function(a, b) {
+  a = d3.hsl(a);
+  b = d3.hsl(b);
+  var h0 = a.h,
+      s0 = a.s,
+      l0 = a.l,
+      h1 = b.h - h0,
+      s1 = b.s - s0,
+      l1 = b.l - l0;
+  return function(t) {
+    return d3_hsl_rgb(h0 + h1 * t, s0 + s1 * t, l0 + l1 * t).toString();
+  };
+};
+
+d3.interpolateArray = function(a, b) {
+  var x = [],
+      c = [],
+      na = a.length,
+      nb = b.length,
+      n0 = Math.min(a.length, b.length),
+      i;
+  for (i = 0; i < n0; ++i) x.push(d3.interpolate(a[i], b[i]));
+  for (; i < na; ++i) c[i] = a[i];
+  for (; i < nb; ++i) c[i] = b[i];
+  return function(t) {
+    for (i = 0; i < n0; ++i) c[i] = x[i](t);
+    return c;
+  };
+};
+
+d3.interpolateObject = function(a, b) {
+  var i = {},
+      c = {},
+      k;
+  for (k in a) {
+    if (k in b) {
+      i[k] = d3_interpolateByName(k)(a[k], b[k]);
+    } else {
+      c[k] = a[k];
+    }
+  }
+  for (k in b) {
+    if (!(k in a)) {
+      c[k] = b[k];
+    }
+  }
+  return function(t) {
+    for (k in i) c[k] = i[k](t);
+    return c;
+  };
+}
+
+var d3_interpolate_number = /[-+]?(?:\d*\.?\d+)(?:[eE][-+]?\d+)?/g;
+
+function d3_interpolateByName(n) {
+  return n == "transform"
+      ? d3.interpolateTransform
+      : d3.interpolate;
+}
+
+d3.interpolators = [
+  d3.interpolateObject,
+  function(a, b) { return (b instanceof Array) && d3.interpolateArray(a, b); },
+  function(a, b) { return (typeof a === "string" || typeof b === "string") && d3.interpolateString(a + "", b + ""); },
+  function(a, b) { return (typeof b === "string" ? b in d3_rgb_names || /^(#|rgb\(|hsl\()/.test(b) : b instanceof d3_Rgb || b instanceof d3_Hsl) && d3.interpolateRgb(a, b); },
+  function(a, b) { return !isNaN(a = +a) && !isNaN(b = +b) && d3.interpolateNumber(a, b); }
+];
+function d3_uninterpolateNumber(a, b) {
+  b = b - (a = +a) ? 1 / (b - a) : 0;
+  return function(x) { return (x - a) * b; };
+}
+
+function d3_uninterpolateClamp(a, b) {
+  b = b - (a = +a) ? 1 / (b - a) : 0;
+  return function(x) { return Math.max(0, Math.min(1, (x - a) * b)); };
+}
+d3.rgb = function(r, g, b) {
+  return arguments.length === 1
+      ? (r instanceof d3_Rgb ? d3_rgb(r.r, r.g, r.b)
+      : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb))
+      : d3_rgb(~~r, ~~g, ~~b);
+};
+
+function d3_rgb(r, g, b) {
+  return new d3_Rgb(r, g, b);
+}
+
+function d3_Rgb(r, g, b) {
+  this.r = r;
+  this.g = g;
+  this.b = b;
+}
+
+d3_Rgb.prototype.brighter = function(k) {
+  k = Math.pow(0.7, arguments.length ? k : 1);
+  var r = this.r,
+      g = this.g,
+      b = this.b,
+      i = 30;
+  if (!r && !g && !b) return d3_rgb(i, i, i);
+  if (r && r < i) r = i;
+  if (g && g < i) g = i;
+  if (b && b < i) b = i;
+  return d3_rgb(
+      Math.min(255, Math.floor(r / k)),
+      Math.min(255, Math.floor(g / k)),
+      Math.min(255, Math.floor(b / k)));
+};
+
+d3_Rgb.prototype.darker = function(k) {
+  k = Math.pow(0.7, arguments.length ? k : 1);
+  return d3_rgb(
+      Math.floor(k * this.r),
+      Math.floor(k * this.g),
+      Math.floor(k * this.b));
+};
+
+d3_Rgb.prototype.hsl = function() {
+  return d3_rgb_hsl(this.r, this.g, this.b);
+};
+
+d3_Rgb.prototype.toString = function() {
+  return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);
+};
+
+function d3_rgb_hex(v) {
+  return v < 0x10
+      ? "0" + Math.max(0, v).toString(16)
+      : Math.min(255, v).toString(16);
+}
+
+function d3_rgb_parse(format, rgb, hsl) {
+  var r = 0, // red channel; int in [0, 255]
+      g = 0, // green channel; int in [0, 255]
+      b = 0, // blue channel; int in [0, 255]
+      m1, // CSS color specification match
+      m2, // CSS color specification type (e.g., rgb)
+      name;
+
+  /* Handle hsl, rgb. */
+  m1 = /([a-z]+)\((.*)\)/i.exec(format);
+  if (m1) {
+    m2 = m1[2].split(",");
+    switch (m1[1]) {
+      case "hsl": {
+        return hsl(
+          parseFloat(m2[0]), // degrees
+          parseFloat(m2[1]) / 100, // percentage
+          parseFloat(m2[2]) / 100 // percentage
+        );
+      }
+      case "rgb": {
+        return rgb(
+          d3_rgb_parseNumber(m2[0]),
+          d3_rgb_parseNumber(m2[1]),
+          d3_rgb_parseNumber(m2[2])
+        );
+      }
+    }
+  }
+
+  /* Named colors. */
+  if (name = d3_rgb_names[format]) return rgb(name.r, name.g, name.b);
+
+  /* Hexadecimal colors: #rgb and #rrggbb. */
+  if (format != null && format.charAt(0) === "#") {
+    if (format.length === 4) {
+      r = format.charAt(1); r += r;
+      g = format.charAt(2); g += g;
+      b = format.charAt(3); b += b;
+    } else if (format.length === 7) {
+      r = format.substring(1, 3);
+      g = format.substring(3, 5);
+      b = format.substring(5, 7);
+    }
+    r = parseInt(r, 16);
+    g = parseInt(g, 16);
+    b = parseInt(b, 16);
+  }
+
+  return rgb(r, g, b);
+}
+
+function d3_rgb_hsl(r, g, b) {
+  var min = Math.min(r /= 255, g /= 255, b /= 255),
+      max = Math.max(r, g, b),
+      d = max - min,
+      h,
+      s,
+      l = (max + min) / 2;
+  if (d) {
+    s = l < .5 ? d / (max + min) : d / (2 - max - min);
+    if (r == max) h = (g - b) / d + (g < b ? 6 : 0);
+    else if (g == max) h = (b - r) / d + 2;
+    else h = (r - g) / d + 4;
+    h *= 60;
+  } else {
+    s = h = 0;
+  }
+  return d3_hsl(h, s, l);
+}
+
+function d3_rgb_parseNumber(c) { // either integer or percentage
+  var f = parseFloat(c);
+  return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f;
+}
+
+var d3_rgb_names = {
+  aliceblue: "#f0f8ff",
+  antiquewhite: "#faebd7",
+  aqua: "#00ffff",
+  aquamarine: "#7fffd4",
+  azure: "#f0ffff",
+  beige: "#f5f5dc",
+  bisque: "#ffe4c4",
+  black: "#000000",
+  blanchedalmond: "#ffebcd",
+  blue: "#0000ff",
+  blueviolet: "#8a2be2",
+  brown: "#a52a2a",
+  burlywood: "#deb887",
+  cadetblue: "#5f9ea0",
+  chartreuse: "#7fff00",
+  chocolate: "#d2691e",
+  coral: "#ff7f50",
+  cornflowerblue: "#6495ed",
+  cornsilk: "#fff8dc",
+  crimson: "#dc143c",
+  cyan: "#00ffff",
+  darkblue: "#00008b",
+  darkcyan: "#008b8b",
+  darkgoldenrod: "#b8860b",
+  darkgray: "#a9a9a9",
+  darkgreen: "#006400",
+  darkgrey: "#a9a9a9",
+  darkkhaki: "#bdb76b",
+  darkmagenta: "#8b008b",
+  darkolivegreen: "#556b2f",
+  darkorange: "#ff8c00",
+  darkorchid: "#9932cc",
+  darkred: "#8b0000",
+  darksalmon: "#e9967a",
+  darkseagreen: "#8fbc8f",
+  darkslateblue: "#483d8b",
+  darkslategray: "#2f4f4f",
+  darkslategrey: "#2f4f4f",
+  darkturquoise: "#00ced1",
+  darkviolet: "#9400d3",
+  deeppink: "#ff1493",
+  deepskyblue: "#00bfff",
+  dimgray: "#696969",
+  dimgrey: "#696969",
+  dodgerblue: "#1e90ff",
+  firebrick: "#b22222",
+  floralwhite: "#fffaf0",
+  forestgreen: "#228b22",
+  fuchsia: "#ff00ff",
+  gainsboro: "#dcdcdc",
+  ghostwhite: "#f8f8ff",
+  gold: "#ffd700",
+  goldenrod: "#daa520",
+  gray: "#808080",
+  green: "#008000",
+  greenyellow: "#adff2f",
+  grey: "#808080",
+  honeydew: "#f0fff0",
+  hotpink: "#ff69b4",
+  indianred: "#cd5c5c",
+  indigo: "#4b0082",
+  ivory: "#fffff0",
+  khaki: "#f0e68c",
+  lavender: "#e6e6fa",
+  lavenderblush: "#fff0f5",
+  lawngreen: "#7cfc00",
+  lemonchiffon: "#fffacd",
+  lightblue: "#add8e6",
+  lightcoral: "#f08080",
+  lightcyan: "#e0ffff",
+  lightgoldenrodyellow: "#fafad2",
+  lightgray: "#d3d3d3",
+  lightgreen: "#90ee90",
+  lightgrey: "#d3d3d3",
+  lightpink: "#ffb6c1",
+  lightsalmon: "#ffa07a",
+  lightseagreen: "#20b2aa",
+  lightskyblue: "#87cefa",
+  lightslategray: "#778899",
+  lightslategrey: "#778899",
+  lightsteelblue: "#b0c4de",
+  lightyellow: "#ffffe0",
+  lime: "#00ff00",
+  limegreen: "#32cd32",
+  linen: "#faf0e6",
+  magenta: "#ff00ff",
+  maroon: "#800000",
+  mediumaquamarine: "#66cdaa",
+  mediumblue: "#0000cd",
+  mediumorchid: "#ba55d3",
+  mediumpurple: "#9370db",
+  mediumseagreen: "#3cb371",
+  mediumslateblue: "#7b68ee",
+  mediumspringgreen: "#00fa9a",
+  mediumturquoise: "#48d1cc",
+  mediumvioletred: "#c71585",
+  midnightblue: "#191970",
+  mintcream: "#f5fffa",
+  mistyrose: "#ffe4e1",
+  moccasin: "#ffe4b5",
+  navajowhite: "#ffdead",
+  navy: "#000080",
+  oldlace: "#fdf5e6",
+  olive: "#808000",
+  olivedrab: "#6b8e23",
+  orange: "#ffa500",
+  orangered: "#ff4500",
+  orchid: "#da70d6",
+  palegoldenrod: "#eee8aa",
+  palegreen: "#98fb98",
+  paleturquoise: "#afeeee",
+  palevioletred: "#db7093",
+  papayawhip: "#ffefd5",
+  peachpuff: "#ffdab9",
+  peru: "#cd853f",
+  pink: "#ffc0cb",
+  plum: "#dda0dd",
+  powderblue: "#b0e0e6",
+  purple: "#800080",
+  red: "#ff0000",
+  rosybrown: "#bc8f8f",
+  royalblue: "#4169e1",
+  saddlebrown: "#8b4513",
+  salmon: "#fa8072",
+  sandybrown: "#f4a460",
+  seagreen: "#2e8b57",
+  seashell: "#fff5ee",
+  sienna: "#a0522d",
+  silver: "#c0c0c0",
+  skyblue: "#87ceeb",
+  slateblue: "#6a5acd",
+  slategray: "#708090",
+  slategrey: "#708090",
+  snow: "#fffafa",
+  springgreen: "#00ff7f",
+  steelblue: "#4682b4",
+  tan: "#d2b48c",
+  teal: "#008080",
+  thistle: "#d8bfd8",
+  tomato: "#ff6347",
+  turquoise: "#40e0d0",
+  violet: "#ee82ee",
+  wheat: "#f5deb3",
+  white: "#ffffff",
+  whitesmoke: "#f5f5f5",
+  yellow: "#ffff00",
+  yellowgreen: "#9acd32"
+};
+
+for (var d3_rgb_name in d3_rgb_names) {
+  d3_rgb_names[d3_rgb_name] = d3_rgb_parse(
+      d3_rgb_names[d3_rgb_name],
+      d3_rgb,
+      d3_hsl_rgb);
+}
+d3.hsl = function(h, s, l) {
+  return arguments.length === 1
+      ? (h instanceof d3_Hsl ? d3_hsl(h.h, h.s, h.l)
+      : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl))
+      : d3_hsl(+h, +s, +l);
+};
+
+function d3_hsl(h, s, l) {
+  return new d3_Hsl(h, s, l);
+}
+
+function d3_Hsl(h, s, l) {
+  this.h = h;
+  this.s = s;
+  this.l = l;
+}
+
+d3_Hsl.prototype.brighter = function(k) {
+  k = Math.pow(0.7, arguments.length ? k : 1);
+  return d3_hsl(this.h, this.s, this.l / k);
+};
+
+d3_Hsl.prototype.darker = function(k) {
+  k = Math.pow(0.7, arguments.length ? k : 1);
+  return d3_hsl(this.h, this.s, k * this.l);
+};
+
+d3_Hsl.prototype.rgb = function() {
+  return d3_hsl_rgb(this.h, this.s, this.l);
+};
+
+d3_Hsl.prototype.toString = function() {
+  return this.rgb().toString();
+};
+
+function d3_hsl_rgb(h, s, l) {
+  var m1,
+      m2;
+
+  /* Some simple corrections for h, s and l. */
+  h = h % 360; if (h < 0) h += 360;
+  s = s < 0 ? 0 : s > 1 ? 1 : s;
+  l = l < 0 ? 0 : l > 1 ? 1 : l;
+
+  /* From FvD 13.37, CSS Color Module Level 3 */
+  m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
+  m1 = 2 * l - m2;
+
+  function v(h) {
+    if (h > 360) h -= 360;
+    else if (h < 0) h += 360;
+    if (h < 60) return m1 + (m2 - m1) * h / 60;
+    if (h < 180) return m2;
+    if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
+    return m1;
+  }
+
+  function vv(h) {
+    return Math.round(v(h) * 255);
+  }
+
+  return d3_rgb(vv(h + 120), vv(h), vv(h - 120));
+}
+function d3_selection(groups) {
+  d3_arraySubclass(groups, d3_selectionPrototype);
+  return groups;
+}
+
+var d3_select = function(s, n) { return n.querySelector(s); },
+    d3_selectAll = function(s, n) { return n.querySelectorAll(s); },
+    d3_selectRoot = document.documentElement,
+    d3_selectMatcher = d3_selectRoot.matchesSelector || d3_selectRoot.webkitMatchesSelector || d3_selectRoot.mozMatchesSelector || d3_selectRoot.msMatchesSelector || d3_selectRoot.oMatchesSelector,
+    d3_selectMatches = function(n, s) { return d3_selectMatcher.call(n, s); };
+
+// Prefer Sizzle, if available.
+if (typeof Sizzle === "function") {
+  d3_select = function(s, n) { return Sizzle(s, n)[0]; };
+  d3_selectAll = function(s, n) { return Sizzle.uniqueSort(Sizzle(s, n)); };
+  d3_selectMatches = Sizzle.matchesSelector;
+}
+
+var d3_selectionPrototype = [];
+
+d3.selection = function() {
+  return d3_selectionRoot;
+};
+
+d3.selection.prototype = d3_selectionPrototype;
+d3_selectionPrototype.select = function(selector) {
+  var subgroups = [],
+      subgroup,
+      subnode,
+      group,
+      node;
+
+  if (typeof selector !== "function") selector = d3_selection_selector(selector);
+
+  for (var j = -1, m = this.length; ++j < m;) {
+    subgroups.push(subgroup = []);
+    subgroup.parentNode = (group = this[j]).parentNode;
+    for (var i = -1, n = group.length; ++i < n;) {
+      if (node = group[i]) {
+        subgroup.push(subnode = selector.call(node, node.__data__, i));
+        if (subnode && "__data__" in node) subnode.__data__ = node.__data__;
+      } else {
+        subgroup.push(null);
+      }
+    }
+  }
+
+  return d3_selection(subgroups);
+};
+
+function d3_selection_selector(selector) {
+  return function() {
+    return d3_select(selector, this);
+  };
+}
+d3_selectionPrototype.selectAll = function(selector) {
+  var subgroups = [],
+      subgroup,
+      node;
+
+  if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
+
+  for (var j = -1, m = this.length; ++j < m;) {
+    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
+      if (node = group[i]) {
+        subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i)));
+        subgroup.parentNode = node;
+      }
+    }
+  }
+
+  return d3_selection(subgroups);
+};
+
+function d3_selection_selectorAll(selector) {
+  return function() {
+    return d3_selectAll(selector, this);
+  };
+}
+d3_selectionPrototype.attr = function(name, value) {
+  name = d3.ns.qualify(name);
+
+  // If no value is specified, return the first value.
+  if (arguments.length < 2) {
+    var node = this.node();
+    return name.local
+        ? node.getAttributeNS(name.space, name.local)
+        : node.getAttribute(name);
+  }
+
+  function attrNull() {
+    this.removeAttribute(name);
+  }
+
+  function attrNullNS() {
+    this.removeAttributeNS(name.space, name.local);
+  }
+
+  function attrConstant() {
+    this.setAttribute(name, value);
+  }
+
+  function attrConstantNS() {
+    this.setAttributeNS(name.space, name.local, value);
+  }
+
+  function attrFunction() {
+    var x = value.apply(this, arguments);
+    if (x == null) this.removeAttribute(name);
+    else this.setAttribute(name, x);
+  }
+
+  function attrFunctionNS() {
+    var x = value.apply(this, arguments);
+    if (x == null) this.removeAttributeNS(name.space, name.local);
+    else this.setAttributeNS(name.space, name.local, x);
+  }
+
+  return this.each(value == null
+      ? (name.local ? attrNullNS : attrNull) : (typeof value === "function"
+      ? (name.local ? attrFunctionNS : attrFunction)
+      : (name.local ? attrConstantNS : attrConstant)));
+};
+d3_selectionPrototype.classed = function(name, value) {
+  var names = name.split(d3_selection_classedWhitespace),
+      n = names.length,
+      i = -1;
+  if (arguments.length > 1) {
+    while (++i < n) d3_selection_classed.call(this, names[i], value);
+    return this;
+  } else {
+    while (++i < n) if (!d3_selection_classed.call(this, names[i])) return false;
+    return true;
+  }
+};
+
+var d3_selection_classedWhitespace = /\s+/g;
+
+function d3_selection_classed(name, value) {
+  var re = new RegExp("(^|\\s+)" + d3.requote(name) + "(\\s+|$)", "g");
+
+  // If no value is specified, return the first value.
+  if (arguments.length < 2) {
+    var node = this.node();
+    if (c = node.classList) return c.contains(name);
+    var c = node.className;
+    re.lastIndex = 0;
+    return re.test(c.baseVal != null ? c.baseVal : c);
+  }
+
+  function classedAdd() {
+    if (c = this.classList) return c.add(name);
+    var c = this.className,
+        cb = c.baseVal != null,
+        cv = cb ? c.baseVal : c;
+    re.lastIndex = 0;
+    if (!re.test(cv)) {
+      cv = d3_collapse(cv + " " + name);
+      if (cb) c.baseVal = cv;
+      else this.className = cv;
+    }
+  }
+
+  function classedRemove() {
+    if (c = this.classList) return c.remove(name);
+    var c = this.className,
+        cb = c.baseVal != null,
+        cv = cb ? c.baseVal : c;
+    cv = d3_collapse(cv.replace(re, " "));
+    if (cb) c.baseVal = cv;
+    else this.className = cv;
+  }
+
+  function classedFunction() {
+    (value.apply(this, arguments)
+        ? classedAdd
+        : classedRemove).call(this);
+  }
+
+  return this.each(typeof value === "function"
+      ? classedFunction : value
+      ? classedAdd
+      : classedRemove);
+}
+d3_selectionPrototype.style = function(name, value, priority) {
+  if (arguments.length < 3) priority = "";
+
+  // If no value is specified, return the first value.
+  if (arguments.length < 2) return window
+      .getComputedStyle(this.node(), null)
+      .getPropertyValue(name);
+
+  function styleNull() {
+    this.style.removeProperty(name);
+  }
+
+  function styleConstant() {
+    this.style.setProperty(name, value, priority);
+  }
+
+  function styleFunction() {
+    var x = value.apply(this, arguments);
+    if (x == null) this.style.removeProperty(name);
+    else this.style.setProperty(name, x, priority);
+  }
+
+  return this.each(value == null
+      ? styleNull : (typeof value === "function"
+      ? styleFunction : styleConstant));
+};
+d3_selectionPrototype.property = function(name, value) {
+
+  // If no value is specified, return the first value.
+  if (arguments.length < 2) return this.node()[name];
+
+  function propertyNull() {
+    delete this[name];
+  }
+
+  function propertyConstant() {
+    this[name] = value;
+  }
+
+  function propertyFunction() {
+    var x = value.apply(this, arguments);
+    if (x == null) delete this[name];
+    else this[name] = x;
+  }
+
+  return this.each(value == null
+      ? propertyNull : (typeof value === "function"
+      ? propertyFunction : propertyConstant));
+};
+d3_selectionPrototype.text = function(value) {
+  return arguments.length < 1
+      ? this.node().textContent : this.each(typeof value === "function"
+      ? function() { var v = value.apply(this, arguments); this.textContent = v == null ? "" : v; } : value == null
+      ? function() { this.textContent = ""; }
+      : function() { this.textContent = value; });
+};
+d3_selectionPrototype.html = function(value) {
+  return arguments.length < 1
+      ? this.node().innerHTML : this.each(typeof value === "function"
+      ? function() { var v = value.apply(this, arguments); this.innerHTML = v == null ? "" : v; } : value == null
+      ? function() { this.innerHTML = ""; }
+      : function() { this.innerHTML = value; });
+};
+// TODO append(node)?
+// TODO append(function)?
+d3_selectionPrototype.append = function(name) {
+  name = d3.ns.qualify(name);
+
+  function append() {
+    return this.appendChild(document.createElementNS(this.namespaceURI, name));
+  }
+
+  function appendNS() {
+    return this.appendChild(document.createElementNS(name.space, name.local));
+  }
+
+  return this.select(name.local ? appendNS : append);
+};
+// TODO insert(node, function)?
+// TODO insert(function, string)?
+// TODO insert(function, function)?
+d3_selectionPrototype.insert = function(name, before) {
+  name = d3.ns.qualify(name);
+
+  function insert() {
+    return this.insertBefore(
+        document.createElementNS(this.namespaceURI, name),
+        d3_select(before, this));
+  }
+
+  function insertNS() {
+    return this.insertBefore(
+        document.createElementNS(name.space, name.local),
+        d3_select(before, this));
+  }
+
+  return this.select(name.local ? insertNS : insert);
+};
+// TODO remove(selector)?
+// TODO remove(node)?
+// TODO remove(function)?
+d3_selectionPrototype.remove = function() {
+  return this.each(function() {
+    var parent = this.parentNode;
+    if (parent) parent.removeChild(this);
+  });
+};
+// TODO data(null) for clearing data?
+d3_selectionPrototype.data = function(data, join) {
+  var enter = [],
+      update = [],
+      exit = [];
+
+  function bind(group, groupData) {
+    var i,
+        n = group.length,
+        m = groupData.length,
+        n0 = Math.min(n, m),
+        n1 = Math.max(n, m),
+        updateNodes = [],
+        enterNodes = [],
+        exitNodes = [],
+        node,
+        nodeData;
+
+    if (join) {
+      var nodeByKey = {},
+          keys = [],
+          key,
+          j = groupData.length;
+
+      for (i = -1; ++i < n;) {
+        key = join.call(node = group[i], node.__data__, i);
+        if (key in nodeByKey) {
+          exitNodes[j++] = node; // duplicate key
+        } else {
+          nodeByKey[key] = node;
+        }
+        keys.push(key);
+      }
+
+      for (i = -1; ++i < m;) {
+        node = nodeByKey[key = join.call(groupData, nodeData = groupData[i], i)];
+        if (node) {
+          node.__data__ = nodeData;
+          updateNodes[i] = node;
+          enterNodes[i] = exitNodes[i] = null;
+        } else {
+          enterNodes[i] = d3_selection_dataNode(nodeData);
+          updateNodes[i] = exitNodes[i] = null;
+        }
+        delete nodeByKey[key];
+      }
+
+      for (i = -1; ++i < n;) {
+        if (keys[i] in nodeByKey) {
+          exitNodes[i] = group[i];
+        }
+      }
+    } else {
+      for (i = -1; ++i < n0;) {
+        node = group[i];
+        nodeData = groupData[i];
+        if (node) {
+          node.__data__ = nodeData;
+          updateNodes[i] = node;
+          enterNodes[i] = exitNodes[i] = null;
+        } else {
+          enterNodes[i] = d3_selection_dataNode(nodeData);
+          updateNodes[i] = exitNodes[i] = null;
+        }
+      }
+      for (; i < m; ++i) {
+        enterNodes[i] = d3_selection_dataNode(groupData[i]);
+        updateNodes[i] = exitNodes[i] = null;
+      }
+      for (; i < n1; ++i) {
+        exitNodes[i] = group[i];
+        enterNodes[i] = updateNodes[i] = null;
+      }
+    }
+
+    enterNodes.update
+        = updateNodes;
+
+    enterNodes.parentNode
+        = updateNodes.parentNode
+        = exitNodes.parentNode
+        = group.parentNode;
+
+    enter.push(enterNodes);
+    update.push(updateNodes);
+    exit.push(exitNodes);
+  }
+
+  var i = -1,
+      n = this.length,
+      group;
+  if (typeof data === "function") {
+    while (++i < n) {
+      bind(group = this[i], data.call(group, group.parentNode.__data__, i));
+    }
+  } else {
+    while (++i < n) {
+      bind(group = this[i], data);
+    }
+  }
+
+  var selection = d3_selection(update);
+  selection.enter = function() { return d3_selection_enter(enter); };
+  selection.exit = function() { return d3_selection(exit); };
+  return selection;
+};
+
+function d3_selection_dataNode(data) {
+  return {__data__: data};
+}
+d3_selectionPrototype.filter = function(filter) {
+  var subgroups = [],
+      subgroup,
+      group,
+      node;
+
+  if (typeof filter !== "function") filter = d3_selection_filter(filter);
+
+  for (var j = 0, m = this.length; j < m; j++) {
+    subgroups.push(subgroup = []);
+    subgroup.parentNode = (group = this[j]).parentNode;
+    for (var i = 0, n = group.length; i < n; i++) {
+      if ((node = group[i]) && filter.call(node, node.__data__, i)) {
+        subgroup.push(node);
+      }
+    }
+  }
+
+  return d3_selection(subgroups);
+};
+
+function d3_selection_filter(selector) {
+  return function() {
+    return d3_selectMatches(this, selector);
+  };
+}
+d3_selectionPrototype.map = function(map) {
+  return this.each(function() {
+    this.__data__ = map.apply(this, arguments);
+  });
+};
+d3_selectionPrototype.order = function() {
+  for (var j = -1, m = this.length; ++j < m;) {
+    for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0;) {
+      if (node = group[i]) {
+        if (next) next.parentNode.insertBefore(node, next);
+        next = node;
+      }
+    }
+  }
+  return this;
+};
+d3_selectionPrototype.sort = function(comparator) {
+  comparator = d3_selection_sortComparator.apply(this, arguments);
+  for (var j = -1, m = this.length; ++j < m;) this[j].sort(comparator);
+  return this.order();
+};
+
+function d3_selection_sortComparator(comparator) {
+  if (!arguments.length) comparator = d3.ascending;
+  return function(a, b) {
+    return comparator(a && a.__data__, b && b.__data__);
+  };
+}
+// type can be namespaced, e.g., "click.foo"
+// listener can be null for removal
+d3_selectionPrototype.on = function(type, listener, capture) {
+  if (arguments.length < 3) capture = false;
+
+  // parse the type specifier
+  var name = "__on" + type, i = type.indexOf(".");
+  if (i > 0) type = type.substring(0, i);
+
+  // if called with only one argument, return the current listener
+  if (arguments.length < 2) return (i = this.node()[name]) && i._;
+
+  // remove the old event listener, and add the new event listener
+  return this.each(function(d, i) {
+    var node = this;
+
+    if (node[name]) node.removeEventListener(type, node[name], capture);
+    if (listener) node.addEventListener(type, node[name] = l, capture);
+
+    // wrapped event listener that preserves i
+    function l(e) {
+      var o = d3.event; // Events can be reentrant (e.g., focus).
+      d3.event = e;
+      try {
+        listener.call(node, node.__data__, i);
+      } finally {
+        d3.event = o;
+      }
+    }
+
+    // stash the unwrapped listener for retrieval
+    l._ = listener;
+  });
+};
+d3_selectionPrototype.each = function(callback) {
+  for (var j = -1, m = this.length; ++j < m;) {
+    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
+      var node = group[i];
+      if (node) callback.call(node, node.__data__, i, j);
+    }
+  }
+  return this;
+};
+//
+// Note: assigning to the arguments array simultaneously changes the value of
+// the corresponding argument!
+//
+// TODO The `this` argument probably shouldn't be the first argument to the
+// callback, anyway, since it's redundant. However, that will require a major
+// version bump due to backwards compatibility, so I'm not changing it right
+// away.
+//
+d3_selectionPrototype.call = function(callback) {
+  callback.apply(this, (arguments[0] = this, arguments));
+  return this;
+};
+d3_selectionPrototype.empty = function() {
+  return !this.node();
+};
+d3_selectionPrototype.node = function(callback) {
+  for (var j = 0, m = this.length; j < m; j++) {
+    for (var group = this[j], i = 0, n = group.length; i < n; i++) {
+      var node = group[i];
+      if (node) return node;
+    }
+  }
+  return null;
+};
+d3_selectionPrototype.transition = function() {
+  var subgroups = [],
+      subgroup,
+      node;
+
+  for (var j = -1, m = this.length; ++j < m;) {
+    subgroups.push(subgroup = []);
+    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
+      subgroup.push((node = group[i]) ? {node: node, delay: 0, duration: 250} : null);
+    }
+  }
+
+  return d3_transition(subgroups, d3_transitionInheritId || ++d3_transitionId, Date.now());
+};
+var d3_selectionRoot = d3_selection([[document]]);
+
+d3_selectionRoot[0].parentNode = d3_selectRoot;
+
+// TODO fast singleton implementation!
+// TODO select(function)
+d3.select = function(selector) {
+  return typeof selector === "string"
+      ? d3_selectionRoot.select(selector)
+      : d3_selection([[selector]]); // assume node
+};
+
+// TODO selectAll(function)
+d3.selectAll = function(selector) {
+  return typeof selector === "string"
+      ? d3_selectionRoot.selectAll(selector)
+      : d3_selection([d3_array(selector)]); // assume node[]
+};
+function d3_selection_enter(selection) {
+  d3_arraySubclass(selection, d3_selection_enterPrototype);
+  return selection;
+}
+
+var d3_selection_enterPrototype = [];
+
+d3_selection_enterPrototype.append = d3_selectionPrototype.append;
+d3_selection_enterPrototype.insert = d3_selectionPrototype.insert;
+d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;
+d3_selection_enterPrototype.node = d3_selectionPrototype.node;
+d3_selection_enterPrototype.select = function(selector) {
+  var subgroups = [],
+      subgroup,
+      subnode,
+      upgroup,
+      group,
+      node;
+
+  for (var j = -1, m = this.length; ++j < m;) {
+    upgroup = (group = this[j]).update;
+    subgroups.push(subgroup = []);
+    subgroup.parentNode = group.parentNode;
+    for (var i = -1, n = group.length; ++i < n;) {
+      if (node = group[i]) {
+        subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i));
+        subnode.__data__ = node.__data__;
+      } else {
+        subgroup.push(null);
+      }
+    }
+  }
+
+  return d3_selection(subgroups);
+};
+function d3_transition(groups, id, time) {
+  d3_arraySubclass(groups, d3_transitionPrototype);
+
+  var tweens = {},
+      event = d3.dispatch("start", "end"),
+      ease = d3_transitionEase;
+
+  groups.id = id;
+
+  groups.time = time;
+
+  groups.tween = function(name, tween) {
+    if (arguments.length < 2) return tweens[name];
+    if (tween == null) delete tweens[name];
+    else tweens[name] = tween;
+    return groups;
+  };
+
+  groups.ease = function(value) {
+    if (!arguments.length) return ease;
+    ease = typeof value === "function" ? value : d3.ease.apply(d3, arguments);
+    return groups;
+  };
+
+  groups.each = function(type, listener) {
+    if (arguments.length < 2) return d3_transition_each.call(groups, type);
+    event.on(type, listener);
+    return groups;
+  };
+
+  d3.timer(function(elapsed) {
+    groups.each(function(d, i, j) {
+      var tweened = [],
+          node = this,
+          delay = groups[j][i].delay,
+          duration = groups[j][i].duration,
+          lock = node.__transition__ || (node.__transition__ = {active: 0, count: 0});
+
+      ++lock.count;
+
+      delay <= elapsed ? start(elapsed) : d3.timer(start, delay, time);
+
+      function start(elapsed) {
+        if (lock.active > id) return stop();
+        lock.active = id;
+
+        for (var tween in tweens) {
+          if (tween = tweens[tween].call(node, d, i)) {
+            tweened.push(tween);
+          }
+        }
+
+        event.start.call(node, d, i);
+        if (!tick(elapsed)) d3.timer(tick, 0, time);
+        return 1;
+      }
+
+      function tick(elapsed) {
+        if (lock.active !== id) return stop();
+
+        var t = (elapsed - delay) / duration,
+            e = ease(t),
+            n = tweened.length;
+
+        while (n > 0) {
+          tweened[--n].call(node, e);
+        }
+
+        if (t >= 1) {
+          stop();
+          d3_transitionInheritId = id;
+          event.end.call(node, d, i);
+          d3_transitionInheritId = 0;
+          return 1;
+        }
+      }
+
+      function stop() {
+        if (!--lock.count) delete node.__transition__;
+        return 1;
+      }
+    });
+    return 1;
+  }, 0, time);
+
+  return groups;
+}
+
+var d3_transitionRemove = {};
+
+function d3_transitionNull(d, i, a) {
+  return a != "" && d3_transitionRemove;
+}
+
+function d3_transitionTween(name, b) {
+  var interpolate = d3_interpolateByName(name);
+
+  function transitionFunction(d, i, a) {
+    var v = b.call(this, d, i);
+    return v == null
+        ? a != "" && d3_transitionRemove
+        : a != v && interpolate(a, v);
+  }
+
+  function transitionString(d, i, a) {
+    return a != b && interpolate(a, b);
+  }
+
+  return typeof b === "function" ? transitionFunction
+      : b == null ? d3_transitionNull
+      : (b += "", transitionString);
+}
+
+var d3_transitionPrototype = [],
+    d3_transitionId = 0,
+    d3_transitionInheritId = 0,
+    d3_transitionEase = d3.ease("cubic-in-out");
+
+d3_transitionPrototype.call = d3_selectionPrototype.call;
+
+d3.transition = function() {
+  return d3_selectionRoot.transition();
+};
+
+d3.transition.prototype = d3_transitionPrototype;
+d3_transitionPrototype.select = function(selector) {
+  var subgroups = [],
+      subgroup,
+      subnode,
+      node;
+
+  if (typeof selector !== "function") selector = d3_selection_selector(selector);
+
+  for (var j = -1, m = this.length; ++j < m;) {
+    subgroups.push(subgroup = []);
+    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
+      if ((node = group[i]) && (subnode = selector.call(node.node, node.node.__data__, i))) {
+        if ("__data__" in node.node) subnode.__data__ = node.node.__data__;
+        subgroup.push({node: subnode, delay: node.delay, duration: node.duration});
+      } else {
+        subgroup.push(null);
+      }
+    }
+  }
+
+  return d3_transition(subgroups, this.id, this.time).ease(this.ease());
+};
+d3_transitionPrototype.selectAll = function(selector) {
+  var subgroups = [],
+      subgroup,
+      subnodes,
+      node;
+
+  if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
+
+  for (var j = -1, m = this.length; ++j < m;) {
+    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
+      if (node = group[i]) {
+        subnodes = selector.call(node.node, node.node.__data__, i);
+        subgroups.push(subgroup = []);
+        for (var k = -1, o = subnodes.length; ++k < o;) {
+          subgroup.push({node: subnodes[k], delay: node.delay, duration: node.duration});
+        }
+      }
+    }
+  }
+
+  return d3_transition(subgroups, this.id, this.time).ease(this.ease());
+};
+d3_transitionPrototype.attr = function(name, value) {
+  return this.attrTween(name, d3_transitionTween(name, value));
+};
+
+d3_transitionPrototype.attrTween = function(nameNS, tween) {
+  var name = d3.ns.qualify(nameNS);
+
+  function attrTween(d, i) {
+    var f = tween.call(this, d, i, this.getAttribute(name));
+    return f === d3_transitionRemove
+        ? (this.removeAttribute(name), null)
+        : f && function(t) { this.setAttribute(name, f(t)); };
+  }
+
+  function attrTweenNS(d, i) {
+    var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));
+    return f === d3_transitionRemove
+        ? (this.removeAttributeNS(name.space, name.local), null)
+        : f && function(t) { this.setAttributeNS(name.space, name.local, f(t)); };
+  }
+
+  return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween);
+};
+d3_transitionPrototype.style = function(name, value, priority) {
+  if (arguments.length < 3) priority = "";
+  return this.styleTween(name, d3_transitionTween(name, value), priority);
+};
+
+d3_transitionPrototype.styleTween = function(name, tween, priority) {
+  if (arguments.length < 3) priority = "";
+  return this.tween("style." + name, function(d, i) {
+    var f = tween.call(this, d, i, window.getComputedStyle(this, null).getPropertyValue(name));
+    return f === d3_transitionRemove
+        ? (this.style.removeProperty(name), null)
+        : f && function(t) { this.style.setProperty(name, f(t), priority); };
+  });
+};
+d3_transitionPrototype.text = function(value) {
+  return this.tween("text", function(d, i) {
+    this.textContent = typeof value === "function"
+        ? value.call(this, d, i)
+        : value;
+  });
+};
+d3_transitionPrototype.remove = function() {
+  return this.each("end", function() {
+    var p;
+    if (!this.__transition__ && (p = this.parentNode)) p.removeChild(this);
+  });
+};
+d3_transitionPrototype.delay = function(value) {
+  var groups = this;
+  return groups.each(typeof value === "function"
+      ? function(d, i, j) { groups[j][i].delay = +value.apply(this, arguments); }
+      : (value = +value, function(d, i, j) { groups[j][i].delay = value; }));
+};
+d3_transitionPrototype.duration = function(value) {
+  var groups = this;
+  return groups.each(typeof value === "function"
+      ? function(d, i, j) { groups[j][i].duration = +value.apply(this, arguments); }
+      : (value = +value, function(d, i, j) { groups[j][i].duration = value; }));
+};
+function d3_transition_each(callback) {
+  for (var j = 0, m = this.length; j < m; j++) {
+    for (var group = this[j], i = 0, n = group.length; i < n; i++) {
+      var node = group[i];
+      if (node) callback.call(node = node.node, node.__data__, i, j);
+    }
+  }
+  return this;
+}
+d3_transitionPrototype.transition = function() {
+  return this.select(d3_this);
+};
+var d3_timer_queue = null,
+    d3_timer_interval, // is an interval (or frame) active?
+    d3_timer_timeout; // is a timeout active?
+
+// The timer will continue to fire until callback returns true.
+d3.timer = function(callback, delay, then) {
+  var found = false,
+      t0,
+      t1 = d3_timer_queue;
+
+  if (arguments.length < 3) {
+    if (arguments.length < 2) delay = 0;
+    else if (!isFinite(delay)) return;
+    then = Date.now();
+  }
+
+  // See if the callback's already in the queue.
+  while (t1) {
+    if (t1.callback === callback) {
+      t1.then = then;
+      t1.delay = delay;
+      found = true;
+      break;
+    }
+    t0 = t1;
+    t1 = t1.next;
+  }
+
+  // Otherwise, add the callback to the queue.
+  if (!found) d3_timer_queue = {
+    callback: callback,
+    then: then,
+    delay: delay,
+    next: d3_timer_queue
+  };
+
+  // Start animatin'!
+  if (!d3_timer_interval) {
+    d3_timer_timeout = clearTimeout(d3_timer_timeout);
+    d3_timer_interval = 1;
+    d3_timer_frame(d3_timer_step);
+  }
+}
+
+function d3_timer_step() {
+  var elapsed,
+      now = Date.now(),
+      t1 = d3_timer_queue;
+
+  while (t1) {
+    elapsed = now - t1.then;
+    if (elapsed >= t1.delay) t1.flush = t1.callback(elapsed);
+    t1 = t1.next;
+  }
+
+  var delay = d3_timer_flush() - now;
+  if (delay > 24) {
+    if (isFinite(delay)) {
+      clearTimeout(d3_timer_timeout);
+      d3_timer_timeout = setTimeout(d3_timer_step, delay);
+    }
+    d3_timer_interval = 0;
+  } else {
+    d3_timer_interval = 1;
+    d3_timer_frame(d3_timer_step);
+  }
+}
+
+d3.timer.flush = function() {
+  var elapsed,
+      now = Date.now(),
+      t1 = d3_timer_queue;
+
+  while (t1) {
+    elapsed = now - t1.then;
+    if (!t1.delay) t1.flush = t1.callback(elapsed);
+    t1 = t1.next;
+  }
+
+  d3_timer_flush();
+};
+
+// Flush after callbacks, to avoid concurrent queue modification.
+function d3_timer_flush() {
+  var t0 = null,
+      t1 = d3_timer_queue,
+      then = Infinity;
+  while (t1) {
+    if (t1.flush) {
+      t1 = t0 ? t0.next = t1.next : d3_timer_queue = t1.next;
+    } else {
+      then = Math.min(then, t1.then + t1.delay);
+      t1 = (t0 = t1).next;
+    }
+  }
+  return then;
+}
+
+var d3_timer_frame = window.requestAnimationFrame
+    || window.webkitRequestAnimationFrame
+    || window.mozRequestAnimationFrame
+    || window.oRequestAnimationFrame
+    || window.msRequestAnimationFrame
+    || function(callback) { setTimeout(callback, 17); };
+d3.transform = function(string) {
+  var g = document.createElementNS(d3.ns.prefix.svg, "g"),
+      identity = {a: 1, b: 0, c: 0, d: 1, e: 0, f: 0};
+  return (d3.transform = function(string) {
+    g.setAttribute("transform", string);
+    var t = g.transform.baseVal.consolidate();
+    return new d3_transform(t ? t.matrix : identity);
+  })(string);
+};
+
+// Compute x-scale and normalize the first row.
+// Compute shear and make second row orthogonal to first.
+// Compute y-scale and normalize the second row.
+// Finally, compute the rotation.
+function d3_transform(m) {
+  var r0 = [m.a, m.b],
+      r1 = [m.c, m.d],
+      kx = d3_transformNormalize(r0),
+      kz = d3_transformDot(r0, r1),
+      ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;
+  if (r0[0] * r1[1] < r1[0] * r0[1]) {
+    r0[0] *= -1;
+    r0[1] *= -1;
+    kx *= -1;
+    kz *= -1;
+  }
+  this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_transformDegrees;
+  this.translate = [m.e, m.f];
+  this.scale = [kx, ky];
+  this.skew = ky ? Math.atan2(kz, ky) * d3_transformDegrees : 0;
+};
+
+d3_transform.prototype.toString = function() {
+  return "translate(" + this.translate
+      + ")rotate(" + this.rotate
+      + ")skewX(" + this.skew
+      + ")scale(" + this.scale
+      + ")";
+};
+
+function d3_transformDot(a, b) {
+  return a[0] * b[0] + a[1] * b[1];
+}
+
+function d3_transformNormalize(a) {
+  var k = Math.sqrt(d3_transformDot(a, a));
+  if (k) {
+    a[0] /= k;
+    a[1] /= k;
+  }
+  return k;
+}
+
+function d3_transformCombine(a, b, k) {
+  a[0] += k * b[0];
+  a[1] += k * b[1];
+  return a;
+}
+
+var d3_transformDegrees = 180 / Math.PI;
+function d3_noop() {}
+d3.scale = {};
+
+function d3_scaleExtent(domain) {
+  var start = domain[0], stop = domain[domain.length - 1];
+  return start < stop ? [start, stop] : [stop, start];
+}
+
+function d3_scaleRange(scale) {
+  return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());
+}
+function d3_scale_nice(domain, nice) {
+  var i0 = 0,
+      i1 = domain.length - 1,
+      x0 = domain[i0],
+      x1 = domain[i1],
+      dx;
+
+  if (x1 < x0) {
+    dx = i0; i0 = i1; i1 = dx;
+    dx = x0; x0 = x1; x1 = dx;
+  }
+
+  if (dx = x1 - x0) {
+    nice = nice(dx);
+    domain[i0] = nice.floor(x0);
+    domain[i1] = nice.ceil(x1);
+  }
+
+  return domain;
+}
+
+function d3_scale_niceDefault() {
+  return Math;
+}
+d3.scale.linear = function() {
+  return d3_scale_linear([0, 1], [0, 1], d3.interpolate, false);
+};
+
+function d3_scale_linear(domain, range, interpolate, clamp) {
+  var output,
+      input;
+
+  function rescale() {
+    var linear = domain.length == 2 ? d3_scale_bilinear : d3_scale_polylinear,
+        uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;
+    output = linear(domain, range, uninterpolate, interpolate);
+    input = linear(range, domain, uninterpolate, d3.interpolate);
+    return scale;
+  }
+
+  function scale(x) {
+    return output(x);
+  }
+
+  // Note: requires range is coercible to number!
+  scale.invert = function(y) {
+    return input(y);
+  };
+
+  scale.domain = function(x) {
+    if (!arguments.length) return domain;
+    domain = x.map(Number);
+    return rescale();
+  };
+
+  scale.range = function(x) {
+    if (!arguments.length) return range;
+    range = x;
+    return rescale();
+  };
+
+  scale.rangeRound = function(x) {
+    return scale.range(x).interpolate(d3.interpolateRound);
+  };
+
+  scale.clamp = function(x) {
+    if (!arguments.length) return clamp;
+    clamp = x;
+    return rescale();
+  };
+
+  scale.interpolate = function(x) {
+    if (!arguments.length) return interpolate;
+    interpolate = x;
+    return rescale();
+  };
+
+  scale.ticks = function(m) {
+    return d3_scale_linearTicks(domain, m);
+  };
+
+  scale.tickFormat = function(m) {
+    return d3_scale_linearTickFormat(domain, m);
+  };
+
+  scale.nice = function() {
+    d3_scale_nice(domain, d3_scale_linearNice);
+    return rescale();
+  };
+
+  scale.copy = function() {
+    return d3_scale_linear(domain, range, interpolate, clamp);
+  };
+
+  return rescale();
+};
+
+function d3_scale_linearRebind(scale, linear) {
+  return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
+}
+
+function d3_scale_linearNice(dx) {
+  dx = Math.pow(10, Math.round(Math.log(dx) / Math.LN10) - 1);
+  return {
+    floor: function(x) { return Math.floor(x / dx) * dx; },
+    ceil: function(x) { return Math.ceil(x / dx) * dx; }
+  };
+}
+
+// TODO Dates? Ugh.
+function d3_scale_linearTickRange(domain, m) {
+  var extent = d3_scaleExtent(domain),
+      span = extent[1] - extent[0],
+      step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)),
+      err = m / span * step;
+
+  // Filter ticks to get closer to the desired count.
+  if (err <= .15) step *= 10;
+  else if (err <= .35) step *= 5;
+  else if (err <= .75) step *= 2;
+
+  // Round start and stop values to step interval.
+  extent[0] = Math.ceil(extent[0] / step) * step;
+  extent[1] = Math.floor(extent[1] / step) * step + step * .5; // inclusive
+  extent[2] = step;
+  return extent;
+}
+
+function d3_scale_linearTicks(domain, m) {
+  return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));
+}
+
+function d3_scale_linearTickFormat(domain, m) {
+  return d3.format(",." + Math.max(0, -Math.floor(Math.log(d3_scale_linearTickRange(domain, m)[2]) / Math.LN10 + .01)) + "f");
+}
+function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {
+  var u = uninterpolate(domain[0], domain[1]),
+      i = interpolate(range[0], range[1]);
+  return function(x) {
+    return i(u(x));
+  };
+}
+function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {
+  var u = [],
+      i = [],
+      j = 0,
+      n = domain.length;
+
+  while (++j < n) {
+    u.push(uninterpolate(domain[j - 1], domain[j]));
+    i.push(interpolate(range[j - 1], range[j]));
+  }
+
+  return function(x) {
+    var j = d3.bisect(domain, x, 1, domain.length - 1) - 1;
+    return i[j](u[j](x));
+  };
+}
+d3.scale.log = function() {
+  return d3_scale_log(d3.scale.linear(), d3_scale_logp);
+};
+
+function d3_scale_log(linear, log) {
+  var pow = log.pow;
+
+  function scale(x) {
+    return linear(log(x));
+  }
+
+  scale.invert = function(x) {
+    return pow(linear.invert(x));
+  };
+
+  scale.domain = function(x) {
+    if (!arguments.length) return linear.domain().map(pow);
+    log = x[0] < 0 ? d3_scale_logn : d3_scale_logp;
+    pow = log.pow;
+    linear.domain(x.map(log));
+    return scale;
+  };
+
+  scale.nice = function() {
+    linear.domain(d3_scale_nice(linear.domain(), d3_scale_niceDefault));
+    return scale;
+  };
+
+  scale.ticks = function() {
+    var extent = d3_scaleExtent(linear.domain()),
+        ticks = [];
+    if (extent.every(isFinite)) {
+      var i = Math.floor(extent[0]),
+          j = Math.ceil(extent[1]),
+          u = pow(extent[0]),
+          v = pow(extent[1]);
+      if (log === d3_scale_logn) {
+        ticks.push(pow(i));
+        for (; i++ < j;) for (var k = 9; k > 0; k--) ticks.push(pow(i) * k);
+      } else {
+        for (; i < j; i++) for (var k = 1; k < 10; k++) ticks.push(pow(i) * k);
+        ticks.push(pow(i));
+      }
+      for (i = 0; ticks[i] < u; i++) {} // strip small values
+      for (j = ticks.length; ticks[j - 1] > v; j--) {} // strip big values
+      ticks = ticks.slice(i, j);
+    }
+    return ticks;
+  };
+
+  scale.tickFormat = function(n, format) {
+    if (arguments.length < 2) format = d3_scale_logFormat;
+    if (arguments.length < 1) return format;
+    var k = n / scale.ticks().length,
+        f = log === d3_scale_logn ? (e = -1e-12, Math.floor) : (e = 1e-12, Math.ceil),
+        e;
+    return function(d) {
+      return d / pow(f(log(d) + e)) < k ? format(d) : "";
+    };
+  };
+
+  scale.copy = function() {
+    return d3_scale_log(linear.copy(), log);
+  };
+
+  return d3_scale_linearRebind(scale, linear);
+};
+
+var d3_scale_logFormat = d3.format(".0e");
+
+function d3_scale_logp(x) {
+  return Math.log(x) / Math.LN10;
+}
+
+function d3_scale_logn(x) {
+  return -Math.log(-x) / Math.LN10;
+}
+
+d3_scale_logp.pow = function(x) {
+  return Math.pow(10, x);
+};
+
+d3_scale_logn.pow = function(x) {
+  return -Math.pow(10, -x);
+};
+d3.scale.pow = function() {
+  return d3_scale_pow(d3.scale.linear(), 1);
+};
+
+function d3_scale_pow(linear, exponent) {
+  var powp = d3_scale_powPow(exponent),
+      powb = d3_scale_powPow(1 / exponent);
+
+  function scale(x) {
+    return linear(powp(x));
+  }
+
+  scale.invert = function(x) {
+    return powb(linear.invert(x));
+  };
+
+  scale.domain = function(x) {
+    if (!arguments.length) return linear.domain().map(powb);
+    linear.domain(x.map(powp));
+    return scale;
+  };
+
+  scale.ticks = function(m) {
+    return d3_scale_linearTicks(scale.domain(), m);
+  };
+
+  scale.tickFormat = function(m) {
+    return d3_scale_linearTickFormat(scale.domain(), m);
+  };
+
+  scale.nice = function() {
+    return scale.domain(d3_scale_nice(scale.domain(), d3_scale_linearNice));
+  };
+
+  scale.exponent = function(x) {
+    if (!arguments.length) return exponent;
+    var domain = scale.domain();
+    powp = d3_scale_powPow(exponent = x);
+    powb = d3_scale_powPow(1 / exponent);
+    return scale.domain(domain);
+  };
+
+  scale.copy = function() {
+    return d3_scale_pow(linear.copy(), exponent);
+  };
+
+  return d3_scale_linearRebind(scale, linear);
+};
+
+function d3_scale_powPow(e) {
+  return function(x) {
+    return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);
+  };
+}
+d3.scale.sqrt = function() {
+  return d3.scale.pow().exponent(.5);
+};
+d3.scale.ordinal = function() {
+  return d3_scale_ordinal([], {t: "range", x: []});
+};
+
+function d3_scale_ordinal(domain, ranger) {
+  var index,
+      range,
+      rangeBand;
+
+  function scale(x) {
+    return range[((index[x] || (index[x] = domain.push(x))) - 1) % range.length];
+  }
+
+  function steps(start, step) {
+    return d3.range(domain.length).map(function(i) { return start + step * i; });
+  }
+
+  scale.domain = function(x) {
+    if (!arguments.length) return domain;
+    domain = [];
+    index = {};
+    var i = -1, n = x.length, xi;
+    while (++i < n) if (!index[xi = x[i]]) index[xi] = domain.push(xi);
+    return scale[ranger.t](ranger.x, ranger.p);
+  };
+
+  scale.range = function(x) {
+    if (!arguments.length) return range;
+    range = x;
+    rangeBand = 0;
+    ranger = {t: "range", x: x};
+    return scale;
+  };
+
+  scale.rangePoints = function(x, padding) {
+    if (arguments.length < 2) padding = 0;
+    var start = x[0],
+        stop = x[1],
+        step = (stop - start) / (domain.length - 1 + padding);
+    range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step);
+    rangeBand = 0;
+    ranger = {t: "rangePoints", x: x, p: padding};
+    return scale;
+  };
+
+  scale.rangeBands = function(x, padding) {
+    if (arguments.length < 2) padding = 0;
+    var start = x[0],
+        stop = x[1],
+        step = (stop - start) / (domain.length + padding);
+    range = steps(start + step * padding, step);
+    rangeBand = step * (1 - padding);
+    ranger = {t: "rangeBands", x: x, p: padding};
+    return scale;
+  };
+
+  scale.rangeRoundBands = function(x, padding) {
+    if (arguments.length < 2) padding = 0;
+    var start = x[0],
+        stop = x[1],
+        step = Math.floor((stop - start) / (domain.length + padding));
+    range = steps(start + Math.round((stop - start - (domain.length - padding) * step) / 2), step);
+    rangeBand = Math.round(step * (1 - padding));
+    ranger = {t: "rangeRoundBands", x: x, p: padding};
+    return scale;
+  };
+
+  scale.rangeBand = function() {
+    return rangeBand;
+  };
+
+  scale.rangeExtent = function() {
+    return ranger.t === "range" ? d3_scaleExtent(ranger.x) : ranger.x;
+  };
+
+  scale.copy = function() {
+    return d3_scale_ordinal(domain, ranger);
+  };
+
+  return scale.domain(domain);
+};
+/*
+ * This product includes color specifications and designs developed by Cynthia
+ * Brewer (http://colorbrewer.org/). See lib/colorbrewer for more information.
+ */
+
+d3.scale.category10 = function() {
+  return d3.scale.ordinal().range(d3_category10);
+};
+
+d3.scale.category20 = function() {
+  return d3.scale.ordinal().range(d3_category20);
+};
+
+d3.scale.category20b = function() {
+  return d3.scale.ordinal().range(d3_category20b);
+};
+
+d3.scale.category20c = function() {
+  return d3.scale.ordinal().range(d3_category20c);
+};
+
+var d3_category10 = [
+  "#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd",
+  "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf"
+];
+
+var d3_category20 = [
+  "#1f77b4", "#aec7e8",
+  "#ff7f0e", "#ffbb78",
+  "#2ca02c", "#98df8a",
+  "#d62728", "#ff9896",
+  "#9467bd", "#c5b0d5",
+  "#8c564b", "#c49c94",
+  "#e377c2", "#f7b6d2",
+  "#7f7f7f", "#c7c7c7",
+  "#bcbd22", "#dbdb8d",
+  "#17becf", "#9edae5"
+];
+
+var d3_category20b = [
+  "#393b79", "#5254a3", "#6b6ecf", "#9c9ede",
+  "#637939", "#8ca252", "#b5cf6b", "#cedb9c",
+  "#8c6d31", "#bd9e39", "#e7ba52", "#e7cb94",
+  "#843c39", "#ad494a", "#d6616b", "#e7969c",
+  "#7b4173", "#a55194", "#ce6dbd", "#de9ed6"
+];
+
+var d3_category20c = [
+  "#3182bd", "#6baed6", "#9ecae1", "#c6dbef",
+  "#e6550d", "#fd8d3c", "#fdae6b", "#fdd0a2",
+  "#31a354", "#74c476", "#a1d99b", "#c7e9c0",
+  "#756bb1", "#9e9ac8", "#bcbddc", "#dadaeb",
+  "#636363", "#969696", "#bdbdbd", "#d9d9d9"
+];
+d3.scale.quantile = function() {
+  return d3_scale_quantile([], []);
+};
+
+function d3_scale_quantile(domain, range) {
+  var thresholds;
+
+  function rescale() {
+    var k = 0,
+        n = domain.length,
+        q = range.length;
+    thresholds = [];
+    while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);
+    return scale;
+  }
+
+  function scale(x) {
+    if (isNaN(x = +x)) return NaN;
+    return range[d3.bisect(thresholds, x)];
+  }
+
+  scale.domain = function(x) {
+    if (!arguments.length) return domain;
+    domain = x.filter(function(d) { return !isNaN(d); }).sort(d3.ascending);
+    return rescale();
+  };
+
+  scale.range = function(x) {
+    if (!arguments.length) return range;
+    range = x;
+    return rescale();
+  };
+
+  scale.quantiles = function() {
+    return thresholds;
+  };
+
+  scale.copy = function() {
+    return d3_scale_quantile(domain, range); // copy on write!
+  };
+
+  return rescale();
+};
+d3.scale.quantize = function() {
+  return d3_scale_quantize(0, 1, [0, 1]);
+};
+
+function d3_scale_quantize(x0, x1, range) {
+  var kx, i;
+
+  function scale(x) {
+    return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];
+  }
+
+  function rescale() {
+    kx = range.length / (x1 - x0);
+    i = range.length - 1;
+    return scale;
+  }
+
+  scale.domain = function(x) {
+    if (!arguments.length) return [x0, x1];
+    x0 = +x[0];
+    x1 = +x[x.length - 1];
+    return rescale();
+  };
+
+  scale.range = function(x) {
+    if (!arguments.length) return range;
+    range = x;
+    return rescale();
+  };
+
+  scale.copy = function() {
+    return d3_scale_quantize(x0, x1, range); // copy on write
+  };
+
+  return rescale();
+};
+d3.svg = {};
+d3.svg.arc = function() {
+  var innerRadius = d3_svg_arcInnerRadius,
+      outerRadius = d3_svg_arcOuterRadius,
+      startAngle = d3_svg_arcStartAngle,
+      endAngle = d3_svg_arcEndAngle;
+
+  function arc() {
+    var r0 = innerRadius.apply(this, arguments),
+        r1 = outerRadius.apply(this, arguments),
+        a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset,
+        a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset,
+        da = (a1 < a0 && (da = a0, a0 = a1, a1 = da), a1 - a0),
+        df = da < Math.PI ? "0" : "1",
+        c0 = Math.cos(a0),
+        s0 = Math.sin(a0),
+        c1 = Math.cos(a1),
+        s1 = Math.sin(a1);
+    return da >= d3_svg_arcMax
+      ? (r0
+      ? "M0," + r1
+      + "A" + r1 + "," + r1 + " 0 1,1 0," + (-r1)
+      + "A" + r1 + "," + r1 + " 0 1,1 0," + r1
+      + "M0," + r0
+      + "A" + r0 + "," + r0 + " 0 1,0 0," + (-r0)
+      + "A" + r0 + "," + r0 + " 0 1,0 0," + r0
+      + "Z"
+      : "M0," + r1
+      + "A" + r1 + "," + r1 + " 0 1,1 0," + (-r1)
+      + "A" + r1 + "," + r1 + " 0 1,1 0," + r1
+      + "Z")
+      : (r0
+      ? "M" + r1 * c0 + "," + r1 * s0
+      + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1
+      + "L" + r0 * c1 + "," + r0 * s1
+      + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0
+      + "Z"
+      : "M" + r1 * c0 + "," + r1 * s0
+      + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1
+      + "L0,0"
+      + "Z");
+  }
+
+  arc.innerRadius = function(v) {
+    if (!arguments.length) return innerRadius;
+    innerRadius = d3.functor(v);
+    return arc;
+  };
+
+  arc.outerRadius = function(v) {
+    if (!arguments.length) return outerRadius;
+    outerRadius = d3.functor(v);
+    return arc;
+  };
+
+  arc.startAngle = function(v) {
+    if (!arguments.length) return startAngle;
+    startAngle = d3.functor(v);
+    return arc;
+  };
+
+  arc.endAngle = function(v) {
+    if (!arguments.length) return endAngle;
+    endAngle = d3.functor(v);
+    return arc;
+  };
+
+  arc.centroid = function() {
+    var r = (innerRadius.apply(this, arguments)
+        + outerRadius.apply(this, arguments)) / 2,
+        a = (startAngle.apply(this, arguments)
+        + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset;
+    return [Math.cos(a) * r, Math.sin(a) * r];
+  };
+
+  return arc;
+};
+
+var d3_svg_arcOffset = -Math.PI / 2,
+    d3_svg_arcMax = 2 * Math.PI - 1e-6;
+
+function d3_svg_arcInnerRadius(d) {
+  return d.innerRadius;
+}
+
+function d3_svg_arcOuterRadius(d) {
+  return d.outerRadius;
+}
+
+function d3_svg_arcStartAngle(d) {
+  return d.startAngle;
+}
+
+function d3_svg_arcEndAngle(d) {
+  return d.endAngle;
+}
+function d3_svg_line(projection) {
+  var x = d3_svg_lineX,
+      y = d3_svg_lineY,
+      interpolate = "linear",
+      interpolator = d3_svg_lineInterpolators[interpolate],
+      tension = .7;
+
+  function line(d) {
+    return d.length < 1 ? null : "M" + interpolator(projection(d3_svg_linePoints(this, d, x, y)), tension);
+  }
+
+  line.x = function(v) {
+    if (!arguments.length) return x;
+    x = v;
+    return line;
+  };
+
+  line.y = function(v) {
+    if (!arguments.length) return y;
+    y = v;
+    return line;
+  };
+
+  line.interpolate = function(v) {
+    if (!arguments.length) return interpolate;
+    interpolator = d3_svg_lineInterpolators[interpolate = v];
+    return line;
+  };
+
+  line.tension = function(v) {
+    if (!arguments.length) return tension;
+    tension = v;
+    return line;
+  };
+
+  return line;
+}
+
+d3.svg.line = function() {
+  return d3_svg_line(Object);
+};
+
+// Converts the specified array of data into an array of points
+// (x-y tuples), by evaluating the specified `x` and `y` functions on each
+// data point. The `this` context of the evaluated functions is the specified
+// "self" object; each function is passed the current datum and index.
+function d3_svg_linePoints(self, d, x, y) {
+  var points = [],
+      i = -1,
+      n = d.length,
+      fx = typeof x === "function",
+      fy = typeof y === "function",
+      value;
+  if (fx && fy) {
+    while (++i < n) points.push([
+      x.call(self, value = d[i], i),
+      y.call(self, value, i)
+    ]);
+  } else if (fx) {
+    while (++i < n) points.push([x.call(self, d[i], i), y]);
+  } else if (fy) {
+    while (++i < n) points.push([x, y.call(self, d[i], i)]);
+  } else {
+    while (++i < n) points.push([x, y]);
+  }
+  return points;
+}
+
+// The default `x` property, which references d[0].
+function d3_svg_lineX(d) {
+  return d[0];
+}
+
+// The default `y` property, which references d[1].
+function d3_svg_lineY(d) {
+  return d[1];
+}
+
+// The various interpolators supported by the `line` class.
+var d3_svg_lineInterpolators = {
+  "linear": d3_svg_lineLinear,
+  "step-before": d3_svg_lineStepBefore,
+  "step-after": d3_svg_lineStepAfter,
+  "basis": d3_svg_lineBasis,
+  "basis-open": d3_svg_lineBasisOpen,
+  "basis-closed": d3_svg_lineBasisClosed,
+  "bundle": d3_svg_lineBundle,
+  "cardinal": d3_svg_lineCardinal,
+  "cardinal-open": d3_svg_lineCardinalOpen,
+  "cardinal-closed": d3_svg_lineCardinalClosed,
+  "monotone": d3_svg_lineMonotone
+};
+
+// Linear interpolation; generates "L" commands.
+function d3_svg_lineLinear(points) {
+  var i = 0,
+      n = points.length,
+      p = points[0],
+      path = [p[0], ",", p[1]];
+  while (++i < n) path.push("L", (p = points[i])[0], ",", p[1]);
+  return path.join("");
+}
+
+// Step interpolation; generates "H" and "V" commands.
+function d3_svg_lineStepBefore(points) {
+  var i = 0,
+      n = points.length,
+      p = points[0],
+      path = [p[0], ",", p[1]];
+  while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]);
+  return path.join("");
+}
+
+// Step interpolation; generates "H" and "V" commands.
+function d3_svg_lineStepAfter(points) {
+  var i = 0,
+      n = points.length,
+      p = points[0],
+      path = [p[0], ",", p[1]];
+  while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]);
+  return path.join("");
+}
+
+// Open cardinal spline interpolation; generates "C" commands.
+function d3_svg_lineCardinalOpen(points, tension) {
+  return points.length < 4
+      ? d3_svg_lineLinear(points)
+      : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1),
+        d3_svg_lineCardinalTangents(points, tension));
+}
+
+// Closed cardinal spline interpolation; generates "C" commands.
+function d3_svg_lineCardinalClosed(points, tension) {
+  return points.length < 3
+      ? d3_svg_lineLinear(points)
+      : points[0] + d3_svg_lineHermite((points.push(points[0]), points),
+        d3_svg_lineCardinalTangents([points[points.length - 2]]
+        .concat(points, [points[1]]), tension));
+}
+
+// Cardinal spline interpolation; generates "C" commands.
+function d3_svg_lineCardinal(points, tension, closed) {
+  return points.length < 3
+      ? d3_svg_lineLinear(points)
+      : points[0] + d3_svg_lineHermite(points,
+        d3_svg_lineCardinalTangents(points, tension));
+}
+
+// Hermite spline construction; generates "C" commands.
+function d3_svg_lineHermite(points, tangents) {
+  if (tangents.length < 1
+      || (points.length != tangents.length
+      && points.length != tangents.length + 2)) {
+    return d3_svg_lineLinear(points);
+  }
+
+  var quad = points.length != tangents.length,
+      path = "",
+      p0 = points[0],
+      p = points[1],
+      t0 = tangents[0],
+      t = t0,
+      pi = 1;
+
+  if (quad) {
+    path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3)
+        + "," + p[0] + "," + p[1];
+    p0 = points[1];
+    pi = 2;
+  }
+
+  if (tangents.length > 1) {
+    t = tangents[1];
+    p = points[pi];
+    pi++;
+    path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1])
+        + "," + (p[0] - t[0]) + "," + (p[1] - t[1])
+        + "," + p[0] + "," + p[1];
+    for (var i = 2; i < tangents.length; i++, pi++) {
+      p = points[pi];
+      t = tangents[i];
+      path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1])
+          + "," + p[0] + "," + p[1];
+    }
+  }
+
+  if (quad) {
+    var lp = points[pi];
+    path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3)
+        + "," + lp[0] + "," + lp[1];
+  }
+
+  return path;
+}
+
+// Generates tangents for a cardinal spline.
+function d3_svg_lineCardinalTangents(points, tension) {
+  var tangents = [],
+      a = (1 - tension) / 2,
+      p0,
+      p1 = points[0],
+      p2 = points[1],
+      i = 1,
+      n = points.length;
+  while (++i < n) {
+    p0 = p1;
+    p1 = p2;
+    p2 = points[i];
+    tangents.push([a * (p2[0] - p0[0]), a * (p2[1] - p0[1])]);
+  }
+  return tangents;
+}
+
+// B-spline interpolation; generates "C" commands.
+function d3_svg_lineBasis(points) {
+  if (points.length < 3) return d3_svg_lineLinear(points);
+  var i = 1,
+      n = points.length,
+      pi = points[0],
+      x0 = pi[0],
+      y0 = pi[1],
+      px = [x0, x0, x0, (pi = points[1])[0]],
+      py = [y0, y0, y0, pi[1]],
+      path = [x0, ",", y0];
+  d3_svg_lineBasisBezier(path, px, py);
+  while (++i < n) {
+    pi = points[i];
+    px.shift(); px.push(pi[0]);
+    py.shift(); py.push(pi[1]);
+    d3_svg_lineBasisBezier(path, px, py);
+  }
+  i = -1;
+  while (++i < 2) {
+    px.shift(); px.push(pi[0]);
+    py.shift(); py.push(pi[1]);
+    d3_svg_lineBasisBezier(path, px, py);
+  }
+  return path.join("");
+}
+
+// Open B-spline interpolation; generates "C" commands.
+function d3_svg_lineBasisOpen(points) {
+  if (points.length < 4) return d3_svg_lineLinear(points);
+  var path = [],
+      i = -1,
+      n = points.length,
+      pi,
+      px = [0],
+      py = [0];
+  while (++i < 3) {
+    pi = points[i];
+    px.push(pi[0]);
+    py.push(pi[1]);
+  }
+  path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px)
+    + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));
+  --i; while (++i < n) {
+    pi = points[i];
+    px.shift(); px.push(pi[0]);
+    py.shift(); py.push(pi[1]);
+    d3_svg_lineBasisBezier(path, px, py);
+  }
+  return path.join("");
+}
+
+// Closed B-spline interpolation; generates "C" commands.
+function d3_svg_lineBasisClosed(points) {
+  var path,
+      i = -1,
+      n = points.length,
+      m = n + 4,
+      pi,
+      px = [],
+      py = [];
+  while (++i < 4) {
+    pi = points[i % n];
+    px.push(pi[0]);
+    py.push(pi[1]);
+  }
+  path = [
+    d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",",
+    d3_svg_lineDot4(d3_svg_lineBasisBezier3, py)
+  ];
+  --i; while (++i < m) {
+    pi = points[i % n];
+    px.shift(); px.push(pi[0]);
+    py.shift(); py.push(pi[1]);
+    d3_svg_lineBasisBezier(path, px, py);
+  }
+  return path.join("");
+}
+
+function d3_svg_lineBundle(points, tension) {
+  var n = points.length - 1,
+      x0 = points[0][0],
+      y0 = points[0][1],
+      dx = points[n][0] - x0,
+      dy = points[n][1] - y0,
+      i = -1,
+      p,
+      t;
+  while (++i <= n) {
+    p = points[i];
+    t = i / n;
+    p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);
+    p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);
+  }
+  return d3_svg_lineBasis(points);
+}
+
+// Returns the dot product of the given four-element vectors.
+function d3_svg_lineDot4(a, b) {
+  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
+}
+
+// Matrix to transform basis (b-spline) control points to bezier
+// control points. Derived from FvD 11.2.8.
+var d3_svg_lineBasisBezier1 = [0, 2/3, 1/3, 0],
+    d3_svg_lineBasisBezier2 = [0, 1/3, 2/3, 0],
+    d3_svg_lineBasisBezier3 = [0, 1/6, 2/3, 1/6];
+
+// Pushes a "C" Bzier curve onto the specified path array, given the
+// two specified four-element arrays which define the control points.
+function d3_svg_lineBasisBezier(path, x, y) {
+  path.push(
+      "C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x),
+      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y),
+      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x),
+      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y),
+      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x),
+      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));
+}
+
+// Computes the slope from points p0 to p1.
+function d3_svg_lineSlope(p0, p1) {
+  return (p1[1] - p0[1]) / (p1[0] - p0[0]);
+}
+
+// Compute three-point differences for the given points.
+// http://en.wikipedia.org/wiki/Cubic_Hermite_spline#Finite_difference
+function d3_svg_lineFiniteDifferences(points) {
+  var i = 0,
+      j = points.length - 1,
+      m = [],
+      p0 = points[0],
+      p1 = points[1],
+      d = m[0] = d3_svg_lineSlope(p0, p1);
+  while (++i < j) {
+    m[i] = d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]));
+  }
+  m[i] = d;
+  return m;
+}
+
+// Interpolates the given points using Fritsch-Carlson Monotone cubic Hermite
+// interpolation. Returns an array of tangent vectors. For details, see
+// http://en.wikipedia.org/wiki/Monotone_cubic_interpolation
+function d3_svg_lineMonotoneTangents(points) {
+  var tangents = [],
+      d,
+      a,
+      b,
+      s,
+      m = d3_svg_lineFiniteDifferences(points),
+      i = -1,
+      j = points.length - 1;
+
+  // The first two steps are done by computing finite-differences:
+  // 1. Compute the slopes of the secant lines between successive points.
+  // 2. Initialize the tangents at every point as the average of the secants.
+
+  // Then, for each segment
+  while (++i < j) {
+    d = d3_svg_lineSlope(points[i], points[i + 1]);
+
+    // 3. If two successive yk = y{k + 1} are equal (i.e., d is zero), then set
+    // mk = m{k + 1} = 0 as the spline connecting these points must be flat to
+    // preserve monotonicity. Ignore step 4 and 5 for those k.
+
+    if (Math.abs(d) < 1e-6) {
+      m[i] = m[i + 1] = 0;
+    } else {
+      // 4. Let ak = mk / dk and bk = m{k + 1} / dk.
+      a = m[i] / d;
+      b = m[i + 1] / d;
+
+      // 5. Prevent overshoot and ensure monotonicity by restricting the
+      // magnitude of vector <ak, bk> to a circle of radius 3.
+      s = a * a + b * b;
+      if (s > 9) {
+        s = d * 3 / Math.sqrt(s);
+        m[i] = s * a;
+        m[i + 1] = s * b;
+      }
+    }
+  }
+
+  // Compute the normalized tangent vector from the slopes. Note that if x is
+  // not monotonic, it's possible that the slope will be infinite, so we protect
+  // against NaN by setting the coordinate to zero.
+  i = -1; while (++i <= j) {
+    s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0])
+      / (6 * (1 + m[i] * m[i]));
+    tangents.push([s || 0, m[i] * s || 0]);
+  }
+
+  return tangents;
+}
+
+function d3_svg_lineMonotone(points) {
+  return points.length < 3
+      ? d3_svg_lineLinear(points)
+      : points[0] +
+        d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));
+}
+d3.svg.line.radial = function() {
+  var line = d3_svg_line(d3_svg_lineRadial);
+  line.radius = line.x, delete line.x;
+  line.angle = line.y, delete line.y;
+  return line;
+};
+
+function d3_svg_lineRadial(points) {
+  var point,
+      i = -1,
+      n = points.length,
+      r,
+      a;
+  while (++i < n) {
+    point = points[i];
+    r = point[0];
+    a = point[1] + d3_svg_arcOffset;
+    point[0] = r * Math.cos(a);
+    point[1] = r * Math.sin(a);
+  }
+  return points;
+}
+function d3_svg_area(projection) {
+  var x0 = d3_svg_lineX,
+      x1 = d3_svg_lineX,
+      y0 = 0,
+      y1 = d3_svg_lineY,
+      interpolate,
+      i0,
+      i1,
+      tension = .7;
+
+  function area(d) {
+    if (d.length < 1) return null;
+    var points0 = d3_svg_linePoints(this, d, x0, y0),
+        points1 = d3_svg_linePoints(this, d, x0 === x1 ? d3_svg_areaX(points0) : x1, y0 === y1 ? d3_svg_areaY(points0) : y1);
+    return "M" + i0(projection(points1), tension)
+         + "L" + i1(projection(points0.reverse()), tension)
+         + "Z";
+  }
+
+  area.x = function(x) {
+    if (!arguments.length) return x1;
+    x0 = x1 = x;
+    return area;
+  };
+
+  area.x0 = function(x) {
+    if (!arguments.length) return x0;
+    x0 = x;
+    return area;
+  };
+
+  area.x1 = function(x) {
+    if (!arguments.length) return x1;
+    x1 = x;
+    return area;
+  };
+
+  area.y = function(y) {
+    if (!arguments.length) return y1;
+    y0 = y1 = y;
+    return area;
+  };
+
+  area.y0 = function(y) {
+    if (!arguments.length) return y0;
+    y0 = y;
+    return area;
+  };
+
+  area.y1 = function(y) {
+    if (!arguments.length) return y1;
+    y1 = y;
+    return area;
+  };
+
+  area.interpolate = function(x) {
+    if (!arguments.length) return interpolate;
+    i0 = d3_svg_lineInterpolators[interpolate = x];
+    i1 = i0.reverse || i0;
+    return area;
+  };
+
+  area.tension = function(x) {
+    if (!arguments.length) return tension;
+    tension = x;
+    return area;
+  };
+
+  return area.interpolate("linear");
+}
+
+d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;
+d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;
+
+d3.svg.area = function() {
+  return d3_svg_area(Object);
+};
+
+function d3_svg_areaX(points) {
+  return function(d, i) {
+    return points[i][0];
+  };
+}
+
+function d3_svg_areaY(points) {
+  return function(d, i) {
+    return points[i][1];
+  };
+}
+d3.svg.area.radial = function() {
+  var area = d3_svg_area(d3_svg_lineRadial);
+  area.radius = area.x, delete area.x;
+  area.innerRadius = area.x0, delete area.x0;
+  area.outerRadius = area.x1, delete area.x1;
+  area.angle = area.y, delete area.y;
+  area.startAngle = area.y0, delete area.y0;
+  area.endAngle = area.y1, delete area.y1;
+  return area;
+};
+d3.svg.chord = function() {
+  var source = d3_svg_chordSource,
+      target = d3_svg_chordTarget,
+      radius = d3_svg_chordRadius,
+      startAngle = d3_svg_arcStartAngle,
+      endAngle = d3_svg_arcEndAngle;
+
+  // TODO Allow control point to be customized.
+
+  function chord(d, i) {
+    var s = subgroup(this, source, d, i),
+        t = subgroup(this, target, d, i);
+    return "M" + s.p0
+      + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t)
+      ? curve(s.r, s.p1, s.r, s.p0)
+      : curve(s.r, s.p1, t.r, t.p0)
+      + arc(t.r, t.p1, t.a1 - t.a0)
+      + curve(t.r, t.p1, s.r, s.p0))
+      + "Z";
+  }
+
+  function subgroup(self, f, d, i) {
+    var subgroup = f.call(self, d, i),
+        r = radius.call(self, subgroup, i),
+        a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset,
+        a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset;
+    return {
+      r: r,
+      a0: a0,
+      a1: a1,
+      p0: [r * Math.cos(a0), r * Math.sin(a0)],
+      p1: [r * Math.cos(a1), r * Math.sin(a1)]
+    };
+  }
+
+  function equals(a, b) {
+    return a.a0 == b.a0 && a.a1 == b.a1;
+  }
+
+  function arc(r, p, a) {
+    return "A" + r + "," + r + " 0 " + +(a > Math.PI) + ",1 " + p;
+  }
+
+  function curve(r0, p0, r1, p1) {
+    return "Q 0,0 " + p1;
+  }
+
+  chord.radius = function(v) {
+    if (!arguments.length) return radius;
+    radius = d3.functor(v);
+    return chord;
+  };
+
+  chord.source = function(v) {
+    if (!arguments.length) return source;
+    source = d3.functor(v);
+    return chord;
+  };
+
+  chord.target = function(v) {
+    if (!arguments.length) return target;
+    target = d3.functor(v);
+    return chord;
+  };
+
+  chord.startAngle = function(v) {
+    if (!arguments.length) return startAngle;
+    startAngle = d3.functor(v);
+    return chord;
+  };
+
+  chord.endAngle = function(v) {
+    if (!arguments.length) return endAngle;
+    endAngle = d3.functor(v);
+    return chord;
+  };
+
+  return chord;
+};
+
+function d3_svg_chordSource(d) {
+  return d.source;
+}
+
+function d3_svg_chordTarget(d) {
+  return d.target;
+}
+
+function d3_svg_chordRadius(d) {
+  return d.radius;
+}
+
+function d3_svg_chordStartAngle(d) {
+  return d.startAngle;
+}
+
+function d3_svg_chordEndAngle(d) {
+  return d.endAngle;
+}
+d3.svg.diagonal = function() {
+  var source = d3_svg_chordSource,
+      target = d3_svg_chordTarget,
+      projection = d3_svg_diagonalProjection;
+
+  function diagonal(d, i) {
+    var p0 = source.call(this, d, i),
+        p3 = target.call(this, d, i),
+        m = (p0.y + p3.y) / 2,
+        p = [p0, {x: p0.x, y: m}, {x: p3.x, y: m}, p3];
+    p = p.map(projection);
+    return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3];
+  }
+
+  diagonal.source = function(x) {
+    if (!arguments.length) return source;
+    source = d3.functor(x);
+    return diagonal;
+  };
+
+  diagonal.target = function(x) {
+    if (!arguments.length) return target;
+    target = d3.functor(x);
+    return diagonal;
+  };
+
+  diagonal.projection = function(x) {
+    if (!arguments.length) return projection;
+    projection = x;
+    return diagonal;
+  };
+
+  return diagonal;
+};
+
+function d3_svg_diagonalProjection(d) {
+  return [d.x, d.y];
+}
+d3.svg.diagonal.radial = function() {
+  var diagonal = d3.svg.diagonal(),
+      projection = d3_svg_diagonalProjection,
+      projection_ = diagonal.projection;
+
+  diagonal.projection = function(x) {
+    return arguments.length
+        ? projection_(d3_svg_diagonalRadialProjection(projection = x))
+        : projection;
+  };
+
+  return diagonal;
+};
+
+function d3_svg_diagonalRadialProjection(projection) {
+  return function() {
+    var d = projection.apply(this, arguments),
+        r = d[0],
+        a = d[1] + d3_svg_arcOffset;
+    return [r * Math.cos(a), r * Math.sin(a)];
+  };
+}
+d3.svg.mouse = function(container) {
+  return d3_svg_mousePoint(container, d3.event);
+};
+
+// https://bugs.webkit.org/show_bug.cgi?id=44083
+var d3_mouse_bug44083 = /WebKit/.test(navigator.userAgent) ? -1 : 0;
+
+function d3_svg_mousePoint(container, e) {
+  var point = (container.ownerSVGElement || container).createSVGPoint();
+  if ((d3_mouse_bug44083 < 0) && (window.scrollX || window.scrollY)) {
+    var svg = d3.select(document.body)
+      .append("svg")
+        .style("position", "absolute")
+        .style("top", 0)
+        .style("left", 0);
+    var ctm = svg[0][0].getScreenCTM();
+    d3_mouse_bug44083 = !(ctm.f || ctm.e);
+    svg.remove();
+  }
+  if (d3_mouse_bug44083) {
+    point.x = e.pageX;
+    point.y = e.pageY;
+  } else {
+    point.x = e.clientX;
+    point.y = e.clientY;
+  }
+  point = point.matrixTransform(container.getScreenCTM().inverse());
+  return [point.x, point.y];
+};
+d3.svg.touches = function(container, touches) {
+  if (arguments.length < 2) touches = d3.event.touches;
+
+  return touches ? d3_array(touches).map(function(touch) {
+    var point = d3_svg_mousePoint(container, touch);
+    point.identifier = touch.identifier;
+    return point;
+  }) : [];
+};
+d3.svg.symbol = function() {
+  var type = d3_svg_symbolType,
+      size = d3_svg_symbolSize;
+
+  function symbol(d, i) {
+    return (d3_svg_symbols[type.call(this, d, i)]
+        || d3_svg_symbols.circle)
+        (size.call(this, d, i));
+  }
+
+  symbol.type = function(x) {
+    if (!arguments.length) return type;
+    type = d3.functor(x);
+    return symbol;
+  };
+
+  // size of symbol in square pixels
+  symbol.size = function(x) {
+    if (!arguments.length) return size;
+    size = d3.functor(x);
+    return symbol;
+  };
+
+  return symbol;
+};
+
+function d3_svg_symbolSize() {
+  return 64;
+}
+
+function d3_svg_symbolType() {
+  return "circle";
+}
+
+// TODO cross-diagonal?
+var d3_svg_symbols = {
+  "circle": function(size) {
+    var r = Math.sqrt(size / Math.PI);
+    return "M0," + r
+        + "A" + r + "," + r + " 0 1,1 0," + (-r)
+        + "A" + r + "," + r + " 0 1,1 0," + r
+        + "Z";
+  },
+  "cross": function(size) {
+    var r = Math.sqrt(size / 5) / 2;
+    return "M" + -3 * r + "," + -r
+        + "H" + -r
+        + "V" + -3 * r
+        + "H" + r
+        + "V" + -r
+        + "H" + 3 * r
+        + "V" + r
+        + "H" + r
+        + "V" + 3 * r
+        + "H" + -r
+        + "V" + r
+        + "H" + -3 * r
+        + "Z";
+  },
+  "diamond": function(size) {
+    var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)),
+        rx = ry * d3_svg_symbolTan30;
+    return "M0," + -ry
+        + "L" + rx + ",0"
+        + " 0," + ry
+        + " " + -rx + ",0"
+        + "Z";
+  },
+  "square": function(size) {
+    var r = Math.sqrt(size) / 2;
+    return "M" + -r + "," + -r
+        + "L" + r + "," + -r
+        + " " + r + "," + r
+        + " " + -r + "," + r
+        + "Z";
+  },
+  "triangle-down": function(size) {
+    var rx = Math.sqrt(size / d3_svg_symbolSqrt3),
+        ry = rx * d3_svg_symbolSqrt3 / 2;
+    return "M0," + ry
+        + "L" + rx +"," + -ry
+        + " " + -rx + "," + -ry
+        + "Z";
+  },
+  "triangle-up": function(size) {
+    var rx = Math.sqrt(size / d3_svg_symbolSqrt3),
+        ry = rx * d3_svg_symbolSqrt3 / 2;
+    return "M0," + -ry
+        + "L" + rx +"," + ry
+        + " " + -rx + "," + ry
+        + "Z";
+  }
+};
+
+d3.svg.symbolTypes = d3.keys(d3_svg_symbols);
+
+var d3_svg_symbolSqrt3 = Math.sqrt(3),
+    d3_svg_symbolTan30 = Math.tan(30 * Math.PI / 180);
+d3.svg.axis = function() {
+  var scale = d3.scale.linear(),
+      orient = "bottom",
+      tickMajorSize = 6,
+      tickMinorSize = 6,
+      tickEndSize = 6,
+      tickPadding = 3,
+      tickArguments_ = [10],
+      tickFormat_,
+      tickSubdivide = 0;
+
+  function axis(selection) {
+    selection.each(function(d, i, j) {
+      var g = d3.select(this);
+
+      // If selection is a transition, create subtransitions.
+      var transition = selection.delay ? function(o) {
+        var id = d3_transitionInheritId;
+        try {
+          d3_transitionInheritId = selection.id;
+          return o.transition()
+              .delay(selection[j][i].delay)
+              .duration(selection[j][i].duration)
+              .ease(selection.ease());
+        } finally {
+          d3_transitionInheritId = id;
+        }
+      } : Object;
+
+      // Ticks, or domain values for ordinal scales.
+      var ticks = scale.ticks ? scale.ticks.apply(scale, tickArguments_) : scale.domain(),
+          tickFormat = tickFormat_ == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments_) : String) : tickFormat_;
+
+      // Minor ticks.
+      var subticks = d3_svg_axisSubdivide(scale, ticks, tickSubdivide),
+          subtick = g.selectAll(".minor").data(subticks, String),
+          subtickEnter = subtick.enter().insert("line", "g").attr("class", "tick minor").style("opacity", 1e-6),
+          subtickExit = transition(subtick.exit()).style("opacity", 1e-6).remove(),
+          subtickUpdate = transition(subtick).style("opacity", 1);
+
+      // Major ticks.
+      var tick = g.selectAll("g").data(ticks, String),
+          tickEnter = tick.enter().insert("g", "path").style("opacity", 1e-6),
+          tickExit = transition(tick.exit()).style("opacity", 1e-6).remove(),
+          tickUpdate = transition(tick).style("opacity", 1),
+          tickTransform;
+
+      // Domain.
+      var range = d3_scaleRange(scale),
+          path = g.selectAll(".domain").data([0]),
+          pathEnter = path.enter().append("path").attr("class", "domain"),
+          pathUpdate = transition(path);
+
+      // Stash a snapshot of the new scale, and retrieve the old snapshot.
+      var scale1 = scale.copy(),
+          scale0 = this.__chart__ || scale1;
+      this.__chart__ = scale1;
+
+      tickEnter.append("line").attr("class", "tick");
+      tickEnter.append("text");
+      tickUpdate.select("text").text(tickFormat);
+
+      switch (orient) {
+        case "bottom": {
+          tickTransform = d3_svg_axisX;
+          subtickUpdate.attr("x2", 0).attr("y2", tickMinorSize);
+          tickUpdate.select("line").attr("x2", 0).attr("y2", tickMajorSize);
+          tickUpdate.select("text").attr("x", 0).attr("y", Math.max(tickMajorSize, 0) + tickPadding).attr("dy", ".71em").attr("text-anchor", "middle");
+          pathUpdate.attr("d", "M" + range[0] + "," + tickEndSize + "V0H" + range[1] + "V" + tickEndSize);
+          break;
+        }
+        case "top": {
+          tickTransform = d3_svg_axisX;
+          subtickUpdate.attr("x2", 0).attr("y2", -tickMinorSize);
+          tickUpdate.select("line").attr("x2", 0).attr("y2", -tickMajorSize);
+          tickUpdate.select("text").attr("x", 0).attr("y", -(Math.max(tickMajorSize, 0) + tickPadding)).attr("dy", "0em").attr("text-anchor", "middle");
+          pathUpdate.attr("d", "M" + range[0] + "," + -tickEndSize + "V0H" + range[1] + "V" + -tickEndSize);
+          break;
+        }
+        case "left": {
+          tickTransform = d3_svg_axisY;
+          subtickUpdate.attr("x2", -tickMinorSize).attr("y2", 0);
+          tickUpdate.select("line").attr("x2", -tickMajorSize).attr("y2", 0);
+          tickUpdate.select("text").attr("x", -(Math.max(tickMajorSize, 0) + tickPadding)).attr("y", 0).attr("dy", ".32em").attr("text-anchor", "end");
+          pathUpdate.attr("d", "M" + -tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + -tickEndSize);
+          break;
+        }
+        case "right": {
+          tickTransform = d3_svg_axisY;
+          subtickUpdate.attr("x2", tickMinorSize).attr("y2", 0);
+          tickUpdate.select("line").attr("x2", tickMajorSize).attr("y2", 0);
+          tickUpdate.select("text").attr("x", Math.max(tickMajorSize, 0) + tickPadding).attr("y", 0).attr("dy", ".32em").attr("text-anchor", "start");
+          pathUpdate.attr("d", "M" + tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + tickEndSize);
+          break;
+        }
+      }
+
+      // For quantitative scales:
+      // - enter new ticks from the old scale
+      // - exit old ticks to the new scale
+      if (scale.ticks) {
+        tickEnter.call(tickTransform, scale0);
+        tickUpdate.call(tickTransform, scale1);
+        tickExit.call(tickTransform, scale1);
+        subtickEnter.call(tickTransform, scale0);
+        subtickUpdate.call(tickTransform, scale1);
+        subtickExit.call(tickTransform, scale1);
+      }
+
+      // For ordinal scales:
+      // - any entering ticks are undefined in the old scale
+      // - any exiting ticks are undefined in the new scale
+      // Therefore, we only need to transition updating ticks.
+      else {
+        var dx = scale1.rangeBand() / 2, x = function(d) { return scale1(d) + dx; };
+        tickEnter.call(tickTransform, x);
+        tickUpdate.call(tickTransform, x);
+      }
+    });
+  }
+
+  axis.scale = function(x) {
+    if (!arguments.length) return scale;
+    scale = x;
+    return axis;
+  };
+
+  axis.orient = function(x) {
+    if (!arguments.length) return orient;
+    orient = x;
+    return axis;
+  };
+
+  axis.ticks = function() {
+    if (!arguments.length) return tickArguments_;
+    tickArguments_ = arguments;
+    return axis;
+  };
+
+  axis.tickFormat = function(x) {
+    if (!arguments.length) return tickFormat_;
+    tickFormat_ = x;
+    return axis;
+  };
+
+  axis.tickSize = function(x, y, z) {
+    if (!arguments.length) return tickMajorSize;
+    var n = arguments.length - 1;
+    tickMajorSize = +x;
+    tickMinorSize = n > 1 ? +y : tickMajorSize;
+    tickEndSize = n > 0 ? +arguments[n] : tickMajorSize;
+    return axis;
+  };
+
+  axis.tickPadding = function(x) {
+    if (!arguments.length) return tickPadding;
+    tickPadding = +x;
+    return axis;
+  };
+
+  axis.tickSubdivide = function(x) {
+    if (!arguments.length) return tickSubdivide;
+    tickSubdivide = +x;
+    return axis;
+  };
+
+  return axis;
+};
+
+function d3_svg_axisX(selection, x) {
+  selection.attr("transform", function(d) { return "translate(" + x(d) + ",0)"; });
+}
+
+function d3_svg_axisY(selection, y) {
+  selection.attr("transform", function(d) { return "translate(0," + y(d) + ")"; });
+}
+
+function d3_svg_axisSubdivide(scale, ticks, m) {
+  subticks = [];
+  if (m && ticks.length > 1) {
+    var extent = d3_scaleExtent(scale.domain()),
+        subticks,
+        i = -1,
+        n = ticks.length,
+        d = (ticks[1] - ticks[0]) / ++m,
+        j,
+        v;
+    while (++i < n) {
+      for (j = m; --j > 0;) {
+        if ((v = +ticks[i] - j * d) >= extent[0]) {
+          subticks.push(v);
+        }
+      }
+    }
+    for (--i, j = 0; ++j < m && (v = +ticks[i] + j * d) < extent[1];) {
+      subticks.push(v);
+    }
+  }
+  return subticks;
+}
+d3.svg.brush = function() {
+  var event = d3.dispatch("brushstart", "brush", "brushend"),
+      x, // x-scale, optional
+      y, // y-scale, optional
+      extent = [[0, 0], [0, 0]]; // [x0, y0], [x1, y1]
+
+  function brush(g) {
+    var resizes = x && y ? ["n", "e", "s", "w", "nw", "ne", "se", "sw"]
+        : x ? ["e", "w"]
+        : y ? ["n", "s"]
+        : [];
+
+    g.each(function() {
+      var g = d3.select(this).on("mousedown.brush", down),
+          bg = g.selectAll(".background").data([,]),
+          fg = g.selectAll(".extent").data([,]),
+          tz = g.selectAll(".resize").data(resizes, String),
+          e;
+
+      // An invisible, mouseable area for starting a new brush.
+      bg.enter().append("rect")
+          .attr("class", "background")
+          .style("visibility", "hidden")
+          .style("pointer-events", "all")
+          .style("cursor", "crosshair");
+
+      // The visible brush extent; style this as you like!
+      fg.enter().append("rect")
+          .attr("class", "extent")
+          .style("cursor", "move");
+
+      // More invisible rects for resizing the extent.
+      tz.enter().append("rect")
+          .attr("class", function(d) { return "resize " + d; })
+          .attr("width", 6)
+          .attr("height", 6)
+          .style("visibility", "hidden")
+          .style("pointer-events", brush.empty() ? "none" : "all")
+          .style("cursor", function(d) { return d3_svg_brushCursor[d]; });
+
+      // Remove any superfluous resizers.
+      tz.exit().remove();
+
+      // Initialize the background to fill the defined range.
+      // If the range isn't defined, you can post-process.
+      if (x) {
+        e = d3_scaleRange(x);
+        bg.attr("x", e[0]).attr("width", e[1] - e[0]);
+        d3_svg_brushRedrawX(g, extent);
+      }
+      if (y) {
+        e = d3_scaleRange(y);
+        bg.attr("y", e[0]).attr("height", e[1] - e[0]);
+        d3_svg_brushRedrawY(g, extent);
+      }
+    });
+  }
+
+  function down() {
+    var target = d3.select(d3.event.target);
+
+    // Store some global state for the duration of the brush gesture.
+    d3_svg_brush = brush;
+    d3_svg_brushTarget = this;
+    d3_svg_brushExtent = extent;
+    d3_svg_brushOffset = d3.svg.mouse(d3_svg_brushTarget);
+
+    // If the extent was clicked on, drag rather than brush;
+    // store the offset between the mouse and extent origin instead.
+    if (d3_svg_brushDrag = target.classed("extent")) {
+      d3_svg_brushOffset[0] = extent[0][0] - d3_svg_brushOffset[0];
+      d3_svg_brushOffset[1] = extent[0][1] - d3_svg_brushOffset[1];
+    }
+
+    // If a resizer was clicked on, record which side is to be resized.
+    // Also, set the offset to the opposite side.
+    else if (target.classed("resize")) {
+      d3_svg_brushResize = d3.event.target.__data__;
+      d3_svg_brushOffset[0] = extent[+/w$/.test(d3_svg_brushResize)][0];
+      d3_svg_brushOffset[1] = extent[+/^n/.test(d3_svg_brushResize)][1];
+    }
+
+    // If the ALT key is down when starting a brush, the center is at the mouse.
+    else if (d3.event.altKey) {
+      d3_svg_brushCenter = d3_svg_brushOffset.slice();
+    }
+
+    // Restrict which dimensions are resized.
+    d3_svg_brushX = !/^(n|s)$/.test(d3_svg_brushResize) && x;
+    d3_svg_brushY = !/^(e|w)$/.test(d3_svg_brushResize) && y;
+
+    // Notify listeners.
+    d3_svg_brushDispatch = dispatcher(this, arguments);
+    d3_svg_brushDispatch("brushstart");
+    d3_svg_brushMove();
+    d3_eventCancel();
+  }
+
+  function dispatcher(that, argumentz) {
+    return function(type) {
+      var e = d3.event;
+      try {
+        d3.event = {type: type, target: brush};
+        event[type].apply(that, argumentz);
+      } finally {
+        d3.event = e;
+      }
+    };
+  }
+
+  brush.x = function(z) {
+    if (!arguments.length) return x;
+    x = z;
+    return brush;
+  };
+
+  brush.y = function(z) {
+    if (!arguments.length) return y;
+    y = z;
+    return brush;
+  };
+
+  brush.extent = function(z) {
+    var x0, x1, y0, y1, t;
+
+    // Invert the pixel extent to data-space.
+    if (!arguments.length) {
+      if (x) {
+        x0 = extent[0][0], x1 = extent[1][0];
+        if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);
+        if (x1 < x0) t = x0, x0 = x1, x1 = t;
+      }
+      if (y) {
+        y0 = extent[0][1], y1 = extent[1][1];
+        if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);
+        if (y1 < y0) t = y0, y0 = y1, y1 = t;
+      }
+      return x && y ? [[x0, y0], [x1, y1]] : x ? [x0, x1] : y && [y0, y1];
+    }
+
+    // Scale the data-space extent to pixels.
+    if (x) {
+      x0 = z[0], x1 = z[1];
+      if (y) x0 = x0[0], x1 = x1[0];
+      if (x.invert) x0 = x(x0), x1 = x(x1);
+      if (x1 < x0) t = x0, x0 = x1, x1 = t;
+      extent[0][0] = x0, extent[1][0] = x1;
+    }
+    if (y) {
+      y0 = z[0], y1 = z[1];
+      if (x) y0 = y0[1], y1 = y1[1];
+      if (y.invert) y0 = y(y0), y1 = y(y1);
+      if (y1 < y0) t = y0, y0 = y1, y1 = t;
+      extent[0][1] = y0, extent[1][1] = y1;
+    }
+
+    return brush;
+  };
+
+  brush.clear = function() {
+    extent[0][0] =
+    extent[0][1] =
+    extent[1][0] =
+    extent[1][1] = 0;
+    return brush;
+  };
+
+  brush.empty = function() {
+    return (x && extent[0][0] === extent[1][0])
+        || (y && extent[0][1] === extent[1][1]);
+  };
+
+  d3.select(window)
+      .on("mousemove.brush", d3_svg_brushMove)
+      .on("mouseup.brush", d3_svg_brushUp)
+      .on("keydown.brush", d3_svg_brushKeydown)
+      .on("keyup.brush", d3_svg_brushKeyup);
+
+  return d3.rebind(brush, event, "on");
+};
+
+var d3_svg_brush,
+    d3_svg_brushDispatch,
+    d3_svg_brushTarget,
+    d3_svg_brushX,
+    d3_svg_brushY,
+    d3_svg_brushExtent,
+    d3_svg_brushDrag,
+    d3_svg_brushResize,
+    d3_svg_brushCenter,
+    d3_svg_brushOffset;
+
+function d3_svg_brushRedrawX(g, extent) {
+  g.select(".extent").attr("x", extent[0][0]);
+  g.selectAll(".n,.s,.w,.nw,.sw").attr("x", extent[0][0] - 2);
+  g.selectAll(".e,.ne,.se").attr("x", extent[1][0] - 3);
+  g.selectAll(".extent,.n,.s").attr("width", extent[1][0] - extent[0][0]);
+}
+
+function d3_svg_brushRedrawY(g, extent) {
+  g.select(".extent").attr("y", extent[0][1]);
+  g.selectAll(".n,.e,.w,.nw,.ne").attr("y", extent[0][1] - 3);
+  g.selectAll(".s,.se,.sw").attr("y", extent[1][1] - 4);
+  g.selectAll(".extent,.e,.w").attr("height", extent[1][1] - extent[0][1]);
+}
+
+function d3_svg_brushKeydown() {
+  if (d3.event.keyCode == 32 && d3_svg_brushTarget && !d3_svg_brushDrag) {
+    d3_svg_brushCenter = null;
+    d3_svg_brushOffset[0] -= d3_svg_brushExtent[1][0];
+    d3_svg_brushOffset[1] -= d3_svg_brushExtent[1][1];
+    d3_svg_brushDrag = 2;
+    d3_eventCancel();
+  }
+}
+
+function d3_svg_brushKeyup() {
+  if (d3.event.keyCode == 32 && d3_svg_brushDrag == 2) {
+    d3_svg_brushOffset[0] += d3_svg_brushExtent[1][0];
+    d3_svg_brushOffset[1] += d3_svg_brushExtent[1][1];
+    d3_svg_brushDrag = 0;
+    d3_eventCancel();
+  }
+}
+
+function d3_svg_brushMove() {
+  if (d3_svg_brushOffset) {
+    var mouse = d3.svg.mouse(d3_svg_brushTarget),
+        g = d3.select(d3_svg_brushTarget);
+
+    if (!d3_svg_brushDrag) {
+
+      // If needed, determine the center from the current extent.
+      if (d3.event.altKey) {
+        if (!d3_svg_brushCenter) {
+          d3_svg_brushCenter = [
+            (d3_svg_brushExtent[0][0] + d3_svg_brushExtent[1][0]) / 2,
+            (d3_svg_brushExtent[0][1] + d3_svg_brushExtent[1][1]) / 2
+          ];
+        }
+
+        // Update the offset, for when the ALT key is released.
+        d3_svg_brushOffset[0] = d3_svg_brushExtent[+(mouse[0] < d3_svg_brushCenter[0])][0];
+        d3_svg_brushOffset[1] = d3_svg_brushExtent[+(mouse[1] < d3_svg_brushCenter[1])][1];
+      }
+
+      // When the ALT key is released, we clear the center.
+      else d3_svg_brushCenter = null;
+    }
+
+    // Update the brush extent for each dimension.
+    if (d3_svg_brushX) {
+      d3_svg_brushMove1(mouse, d3_svg_brushX, 0);
+      d3_svg_brushRedrawX(g, d3_svg_brushExtent);
+    }
+    if (d3_svg_brushY) {
+      d3_svg_brushMove1(mouse, d3_svg_brushY, 1);
+      d3_svg_brushRedrawY(g, d3_svg_brushExtent);
+    }
+
+    // Notify listeners.
+    d3_svg_brushDispatch("brush");
+  }
+}
+
+function d3_svg_brushMove1(mouse, scale, i) {
+  var range = d3_scaleRange(scale),
+      r0 = range[0],
+      r1 = range[1],
+      offset = d3_svg_brushOffset[i],
+      size = d3_svg_brushExtent[1][i] - d3_svg_brushExtent[0][i],
+      min,
+      max;
+
+  // When dragging, reduce the range by the extent size and offset.
+  if (d3_svg_brushDrag) {
+    r0 -= offset;
+    r1 -= size + offset;
+  }
+
+  // Clamp the mouse so that the extent fits within the range extent.
+  min = Math.max(r0, Math.min(r1, mouse[i]));
+
+  // Compute the new extent bounds.
+  if (d3_svg_brushDrag) {
+    max = (min += offset) + size;
+  } else {
+
+    // If the ALT key is pressed, then preserve the center of the extent.
+    if (d3_svg_brushCenter) offset = Math.max(r0, Math.min(r1, 2 * d3_svg_brushCenter[i] - min));
+
+    // Compute the min and max of the offset and mouse.
+    if (offset < min) {
+      max = min;
+      min = offset;
+    } else {
+      max = offset;
+    }
+  }
+
+  // Update the stored bounds.
+  d3_svg_brushExtent[0][i] = min;
+  d3_svg_brushExtent[1][i] = max;
+}
+
+function d3_svg_brushUp() {
+  if (d3_svg_brushOffset) {
+    d3_svg_brushMove();
+    d3.select(d3_svg_brushTarget).selectAll(".resize").style("pointer-events", d3_svg_brush.empty() ? "none" : "all");
+    d3_svg_brushDispatch("brushend");
+    d3_svg_brush =
+    d3_svg_brushDispatch =
+    d3_svg_brushTarget =
+    d3_svg_brushX =
+    d3_svg_brushY =
+    d3_svg_brushExtent =
+    d3_svg_brushDrag =
+    d3_svg_brushResize =
+    d3_svg_brushCenter =
+    d3_svg_brushOffset = null;
+    d3_eventCancel();
+  }
+}
+
+var d3_svg_brushCursor = {
+  n: "ns-resize",
+  e: "ew-resize",
+  s: "ns-resize",
+  w: "ew-resize",
+  nw: "nwse-resize",
+  ne: "nesw-resize",
+  se: "nwse-resize",
+  sw: "nesw-resize"
+};
+d3.behavior = {};
+// TODO Track touch points by identifier.
+
+d3.behavior.drag = function() {
+  var event = d3.dispatch("drag", "dragstart", "dragend"),
+      origin = null;
+
+  function drag() {
+    this
+        .on("mousedown.drag", mousedown)
+        .on("touchstart.drag", mousedown);
+
+    d3.select(window)
+        .on("mousemove.drag", d3_behavior_dragMove)
+        .on("touchmove.drag", d3_behavior_dragMove)
+        .on("mouseup.drag", d3_behavior_dragUp, false)
+        .on("touchend.drag", d3_behavior_dragUp, false)
+        .on("click.drag", d3_behavior_dragClick, false);
+  }
+
+  // snapshot the local context for subsequent dispatch
+  function start() {
+    d3_behavior_dragEvent = event;
+    d3_behavior_dragEventTarget = d3.event.target;
+    d3_behavior_dragTarget = this;
+    d3_behavior_dragArguments = arguments;
+    d3_behavior_dragOrigin = d3_behavior_dragPoint();
+    if (origin) {
+      d3_behavior_dragOffset = origin.apply(d3_behavior_dragTarget, d3_behavior_dragArguments);
+      d3_behavior_dragOffset = [d3_behavior_dragOffset.x - d3_behavior_dragOrigin[0], d3_behavior_dragOffset.y - d3_behavior_dragOrigin[1]];
+    } else {
+      d3_behavior_dragOffset = [0, 0];
+    }
+    d3_behavior_dragMoved = 0;
+  }
+
+  function mousedown() {
+    start.apply(this, arguments);
+    d3_behavior_dragDispatch("dragstart");
+  }
+
+  drag.origin = function(x) {
+    if (!arguments.length) return origin;
+    origin = x;
+    return drag;
+  };
+
+  return d3.rebind(drag, event, "on");
+};
+
+var d3_behavior_dragEvent,
+    d3_behavior_dragEventTarget,
+    d3_behavior_dragTarget,
+    d3_behavior_dragArguments,
+    d3_behavior_dragOffset,
+    d3_behavior_dragOrigin,
+    d3_behavior_dragMoved;
+
+function d3_behavior_dragDispatch(type) {
+  var p = d3_behavior_dragPoint(),
+      o = d3.event,
+      e = d3.event = {type: type};
+
+  if (p) {
+    e.x = p[0] + d3_behavior_dragOffset[0];
+    e.y = p[1] + d3_behavior_dragOffset[1];
+    e.dx = p[0] - d3_behavior_dragOrigin[0];
+    e.dy = p[1] - d3_behavior_dragOrigin[1];
+    d3_behavior_dragMoved |= e.dx | e.dy;
+    d3_behavior_dragOrigin = p;
+  }
+
+  try {
+    d3_behavior_dragEvent[type].apply(d3_behavior_dragTarget, d3_behavior_dragArguments);
+  } finally {
+    d3.event = o;
+  }
+
+  o.stopPropagation();
+  o.preventDefault();
+}
+
+function d3_behavior_dragPoint() {
+  var p = d3_behavior_dragTarget.parentNode,
+      t = d3.event.changedTouches;
+  return p && (t
+      ? d3.svg.touches(p, t)[0]
+      : d3.svg.mouse(p));
+}
+
+function d3_behavior_dragMove() {
+  if (!d3_behavior_dragTarget) return;
+  var parent = d3_behavior_dragTarget.parentNode;
+
+  // O NOES! The drag element was removed from the DOM.
+  if (!parent) return d3_behavior_dragUp();
+
+  d3_behavior_dragDispatch("drag");
+  d3_eventCancel();
+}
+
+function d3_behavior_dragUp() {
+  if (!d3_behavior_dragTarget) return;
+  d3_behavior_dragDispatch("dragend");
+
+  // If the node was moved, prevent the mouseup from propagating.
+  // Also prevent the subsequent click from propagating (e.g., for anchors).
+  if (d3_behavior_dragMoved) {
+    d3_eventCancel();
+    d3_behavior_dragMoved = d3.event.target === d3_behavior_dragEventTarget;
+  }
+
+  d3_behavior_dragEvent =
+  d3_behavior_dragEventTarget =
+  d3_behavior_dragTarget =
+  d3_behavior_dragArguments =
+  d3_behavior_dragOffset =
+  d3_behavior_dragOrigin = null;
+}
+
+function d3_behavior_dragClick() {
+  if (d3_behavior_dragMoved) {
+    d3_eventCancel();
+    d3_behavior_dragMoved = 0;
+  }
+}
+// TODO unbind zoom behavior?
+d3.behavior.zoom = function() {
+  var xyz = [0, 0, 0],
+      event = d3.dispatch("zoom"),
+      extent = d3_behavior_zoomInfiniteExtent;
+
+  function zoom() {
+    this
+        .on("mousedown.zoom", mousedown)
+        .on("mousewheel.zoom", mousewheel)
+        .on("DOMMouseScroll.zoom", mousewheel)
+        .on("dblclick.zoom", dblclick)
+        .on("touchstart.zoom", touchstart);
+
+    d3.select(window)
+        .on("mousemove.zoom", d3_behavior_zoomMousemove)
+        .on("mouseup.zoom", d3_behavior_zoomMouseup)
+        .on("touchmove.zoom", d3_behavior_zoomTouchmove)
+        .on("touchend.zoom", d3_behavior_zoomTouchup)
+        .on("click.zoom", d3_behavior_zoomClick, true);
+  }
+
+  // snapshot the local context for subsequent dispatch
+  function start() {
+    d3_behavior_zoomXyz = xyz;
+    d3_behavior_zoomExtent = extent;
+    d3_behavior_zoomDispatch = event.zoom;
+    d3_behavior_zoomEventTarget = d3.event.target;
+    d3_behavior_zoomTarget = this;
+    d3_behavior_zoomArguments = arguments;
+  }
+
+  function mousedown() {
+    start.apply(this, arguments);
+    d3_behavior_zoomPanning = d3_behavior_zoomLocation(d3.svg.mouse(d3_behavior_zoomTarget));
+    d3_behavior_zoomMoved = 0;
+    d3.event.preventDefault();
+    window.focus();
+  }
+
+  // store starting mouse location
+  function mousewheel() {
+    start.apply(this, arguments);
+    if (!d3_behavior_zoomZooming) d3_behavior_zoomZooming = d3_behavior_zoomLocation(d3.svg.mouse(d3_behavior_zoomTarget));
+    d3_behavior_zoomTo(d3_behavior_zoomDelta() + xyz[2], d3.svg.mouse(d3_behavior_zoomTarget), d3_behavior_zoomZooming);
+  }
+
+  function dblclick() {
+    start.apply(this, arguments);
+    var mouse = d3.svg.mouse(d3_behavior_zoomTarget);
+    d3_behavior_zoomTo(d3.event.shiftKey ? Math.ceil(xyz[2] - 1) : Math.floor(xyz[2] + 1), mouse, d3_behavior_zoomLocation(mouse));
+  }
+
+  // doubletap detection
+  function touchstart() {
+    start.apply(this, arguments);
+    var touches = d3_behavior_zoomTouchup(),
+        touch,
+        now = Date.now();
+    if ((touches.length === 1) && (now - d3_behavior_zoomLast < 300)) {
+      d3_behavior_zoomTo(1 + Math.floor(xyz[2]), touch = touches[0], d3_behavior_zoomLocations[touch.identifier]);
+    }
+    d3_behavior_zoomLast = now;
+  }
+
+  zoom.extent = function(x) {
+    if (!arguments.length) return extent;
+    extent = x == null ? d3_behavior_zoomInfiniteExtent : x;
+    return zoom;
+  };
+
+  return d3.rebind(zoom, event, "on");
+};
+
+var d3_behavior_zoomDiv,
+    d3_behavior_zoomPanning,
+    d3_behavior_zoomZooming,
+    d3_behavior_zoomLocations = {}, // identifier -> location
+    d3_behavior_zoomLast = 0,
+    d3_behavior_zoomXyz,
+    d3_behavior_zoomExtent,
+    d3_behavior_zoomDispatch,
+    d3_behavior_zoomEventTarget,
+    d3_behavior_zoomTarget,
+    d3_behavior_zoomArguments,
+    d3_behavior_zoomMoved;
+
+function d3_behavior_zoomLocation(point) {
+  return [
+    point[0] - d3_behavior_zoomXyz[0],
+    point[1] - d3_behavior_zoomXyz[1],
+    d3_behavior_zoomXyz[2]
+  ];
+}
+
+// detect the pixels that would be scrolled by this wheel event
+function d3_behavior_zoomDelta() {
+
+  // mousewheel events are totally broken!
+  // https://bugs.webkit.org/show_bug.cgi?id=40441
+  // not only that, but Chrome and Safari differ in re. to acceleration!
+  if (!d3_behavior_zoomDiv) {
+    d3_behavior_zoomDiv = d3.select("body").append("div")
+        .style("visibility", "hidden")
+        .style("top", 0)
+        .style("height", 0)
+        .style("width", 0)
+        .style("overflow-y", "scroll")
+      .append("div")
+        .style("height", "2000px")
+      .node().parentNode;
+  }
+
+  var e = d3.event, delta;
+  try {
+    d3_behavior_zoomDiv.scrollTop = 1000;
+    d3_behavior_zoomDiv.dispatchEvent(e);
+    delta = 1000 - d3_behavior_zoomDiv.scrollTop;
+  } catch (error) {
+    delta = e.wheelDelta || (-e.detail * 5);
+  }
+
+  return delta * .005;
+}
+
+// Note: Since we don't rotate, it's possible for the touches to become
+// slightly detached from their original positions. Thus, we recompute the
+// touch points on touchend as well as touchstart!
+function d3_behavior_zoomTouchup() {
+  var touches = d3.svg.touches(d3_behavior_zoomTarget),
+      i = -1,
+      n = touches.length,
+      touch;
+  while (++i < n) d3_behavior_zoomLocations[(touch = touches[i]).identifier] = d3_behavior_zoomLocation(touch);
+  return touches;
+}
+
+function d3_behavior_zoomTouchmove() {
+  var touches = d3.svg.touches(d3_behavior_zoomTarget);
+  switch (touches.length) {
+
+    // single-touch pan
+    case 1: {
+      var touch = touches[0];
+      d3_behavior_zoomTo(d3_behavior_zoomXyz[2], touch, d3_behavior_zoomLocations[touch.identifier]);
+      break;
+    }
+
+    // double-touch pan + zoom
+    case 2: {
+      var p0 = touches[0],
+          p1 = touches[1],
+          p2 = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2],
+          l0 = d3_behavior_zoomLocations[p0.identifier],
+          l1 = d3_behavior_zoomLocations[p1.identifier],
+          l2 = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2, l0[2]];
+      d3_behavior_zoomTo(Math.log(d3.event.scale) / Math.LN2 + l0[2], p2, l2);
+      break;
+    }
+  }
+}
+
+function d3_behavior_zoomMousemove() {
+  d3_behavior_zoomZooming = null;
+  if (d3_behavior_zoomPanning) {
+    d3_behavior_zoomMoved = 1;
+    d3_behavior_zoomTo(d3_behavior_zoomXyz[2], d3.svg.mouse(d3_behavior_zoomTarget), d3_behavior_zoomPanning);
+  }
+}
+
+function d3_behavior_zoomMouseup() {
+  if (d3_behavior_zoomPanning) {
+    if (d3_behavior_zoomMoved) {
+      d3_eventCancel();
+      d3_behavior_zoomMoved = d3_behavior_zoomEventTarget === d3.event.target;
+    }
+
+    d3_behavior_zoomXyz =
+    d3_behavior_zoomExtent =
+    d3_behavior_zoomDispatch =
+    d3_behavior_zoomEventTarget =
+    d3_behavior_zoomTarget =
+    d3_behavior_zoomArguments =
+    d3_behavior_zoomPanning = null;
+  }
+}
+
+function d3_behavior_zoomClick() {
+  if (d3_behavior_zoomMoved) {
+    d3_eventCancel();
+    d3_behavior_zoomMoved = 0;
+  }
+}
+
+function d3_behavior_zoomTo(z, x0, x1) {
+  z = d3_behavior_zoomExtentClamp(z, 2);
+  var j = Math.pow(2, d3_behavior_zoomXyz[2]),
+      k = Math.pow(2, z),
+      K = Math.pow(2, (d3_behavior_zoomXyz[2] = z) - x1[2]),
+      x_ = d3_behavior_zoomXyz[0],
+      y_ = d3_behavior_zoomXyz[1],
+      x = d3_behavior_zoomXyz[0] = d3_behavior_zoomExtentClamp((x0[0] - x1[0] * K), 0, k),
+      y = d3_behavior_zoomXyz[1] = d3_behavior_zoomExtentClamp((x0[1] - x1[1] * K), 1, k),
+      o = d3.event; // Events can be reentrant (e.g., focus).
+
+  d3.event = {
+    scale: k,
+    translate: [x, y],
+    transform: function(sx, sy) {
+      if (sx) transform(sx, x_, x);
+      if (sy) transform(sy, y_, y);
+    }
+  };
+
+  function transform(scale, a, b) {
+    scale.domain(scale.range().map(function(v) { return scale.invert(((v - b) * j) / k + a); }));
+  }
+
+  try {
+    d3_behavior_zoomDispatch.apply(d3_behavior_zoomTarget, d3_behavior_zoomArguments);
+  } finally {
+    d3.event = o;
+  }
+
+  o.preventDefault();
+}
+
+var d3_behavior_zoomInfiniteExtent = [
+  [-Infinity, Infinity],
+  [-Infinity, Infinity],
+  [-Infinity, Infinity]
+];
+
+function d3_behavior_zoomExtentClamp(x, i, k) {
+  var range = d3_behavior_zoomExtent[i],
+      r0 = range[0],
+      r1 = range[1];
+  return arguments.length === 3
+      ? Math.max(r1 * (r1 === Infinity ? -Infinity : 1 / k - 1),
+        Math.min(r0 === -Infinity ? Infinity : r0, x / k)) * k
+      : Math.max(r0, Math.min(r1, x));
+}
+})();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/d3_modifie/d3.layout.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,1903 @@
+(function(){d3.layout = {};
+// Implements hierarchical edge bundling using Holten's algorithm. For each
+// input link, a path is computed that travels through the tree, up the parent
+// hierarchy to the least common ancestor, and then back down to the destination
+// node. Each path is simply an array of nodes.
+d3.layout.bundle = function() {
+  return function(links) {
+    var paths = [],
+        i = -1,
+        n = links.length;
+    while (++i < n) paths.push(d3_layout_bundlePath(links[i]));
+    return paths;
+  };
+};
+
+function d3_layout_bundlePath(link) {
+  var start = link.source,
+      end = link.target,
+      lca = d3_layout_bundleLeastCommonAncestor(start, end),
+      points = [start];
+  while (start !== lca) {
+    start = start.parent;
+    points.push(start);
+  }
+  var k = points.length;
+  while (end !== lca) {
+    points.splice(k, 0, end);
+    end = end.parent;
+  }
+  return points;
+}
+
+function d3_layout_bundleAncestors(node) {
+  var ancestors = [],
+      parent = node.parent;
+  while (parent != null) {
+    ancestors.push(node);
+    node = parent;
+    parent = parent.parent;
+  }
+  ancestors.push(node);
+  return ancestors;
+}
+
+function d3_layout_bundleLeastCommonAncestor(a, b) {
+  if (a === b) return a;
+  var aNodes = d3_layout_bundleAncestors(a),
+      bNodes = d3_layout_bundleAncestors(b),
+      aNode = aNodes.pop(),
+      bNode = bNodes.pop(),
+      sharedNode = null;
+  while (aNode === bNode) {
+    sharedNode = aNode;
+    aNode = aNodes.pop();
+    bNode = bNodes.pop();
+  }
+  return sharedNode;
+}
+d3.layout.chord = function() {
+  var chord = {},
+      chords,
+      groups,
+      matrix,
+      n,
+      padding = 0,
+      sortGroups,
+      sortSubgroups,
+      sortChords;
+
+  function relayout() {
+    var subgroups = {},
+        groupSums = [],
+        groupIndex = d3.range(n),
+        subgroupIndex = [],
+        k,
+        x,
+        x0,
+        i,
+        j;
+
+    chords = [];
+    groups = [];
+
+    // Compute the sum.
+    k = 0, i = -1; while (++i < n) {
+      x = 0, j = -1; while (++j < n) {
+        x += matrix[i][j];
+      }
+      groupSums.push(x);
+      subgroupIndex.push(d3.range(n));
+      k += x;
+    }
+
+    // Sort groups…
+    if (sortGroups) {
+      groupIndex.sort(function(a, b) {
+        return sortGroups(groupSums[a], groupSums[b]);
+      });
+    }
+
+    // Sort subgroups…
+    if (sortSubgroups) {
+      subgroupIndex.forEach(function(d, i) {
+        d.sort(function(a, b) {
+          return sortSubgroups(matrix[i][a], matrix[i][b]);
+        });
+      });
+    }
+
+    // Convert the sum to scaling factor for [0, 2pi].
+    // TODO Allow start and end angle to be specified.
+    // TODO Allow padding to be specified as percentage?
+    k = (2 * Math.PI - padding * n) / k;
+
+    // Compute the start and end angle for each group and subgroup.
+    // Note: Opera has a bug reordering object literal properties!
+    x = 0, i = -1; while (++i < n) {
+      x0 = x, j = -1; while (++j < n) {
+        var di = groupIndex[i],
+            dj = subgroupIndex[di][j],
+            v = matrix[di][dj],
+            a0 = x,
+            a1 = x += v * k;
+        subgroups[di + "-" + dj] = {
+          index: di,
+          subindex: dj,
+          startAngle: a0,
+          endAngle: a1,
+          value: v
+        };
+      }
+      groups.push({
+        index: di,
+        startAngle: x0,
+        endAngle: x,
+        value: (x - x0) / k
+      });
+      x += padding;
+    }
+
+    // Generate chords for each (non-empty) subgroup-subgroup link.
+    i = -1; while (++i < n) {
+      j = i - 1; while (++j < n) {
+        var source = subgroups[i + "-" + j],
+            target = subgroups[j + "-" + i];
+        if (source.value || target.value) {
+          chords.push(source.value < target.value
+              ? {source: target, target: source}
+              : {source: source, target: target});
+        }
+      }
+    }
+
+    if (sortChords) resort();
+  }
+
+  function resort() {
+    chords.sort(function(a, b) {
+      return sortChords(
+          (a.source.value + a.target.value) / 2,
+          (b.source.value + b.target.value) / 2);
+    });
+  }
+
+  chord.matrix = function(x) {
+    if (!arguments.length) return matrix;
+    n = (matrix = x) && matrix.length;
+    chords = groups = null;
+    return chord;
+  };
+
+  chord.padding = function(x) {
+    if (!arguments.length) return padding;
+    padding = x;
+    chords = groups = null;
+    return chord;
+  };
+
+  chord.sortGroups = function(x) {
+    if (!arguments.length) return sortGroups;
+    sortGroups = x;
+    chords = groups = null;
+    return chord;
+  };
+
+  chord.sortSubgroups = function(x) {
+    if (!arguments.length) return sortSubgroups;
+    sortSubgroups = x;
+    chords = null;
+    return chord;
+  };
+
+  chord.sortChords = function(x) {
+    if (!arguments.length) return sortChords;
+    sortChords = x;
+    if (chords) resort();
+    return chord;
+  };
+
+  chord.chords = function() {
+    if (!chords) relayout();
+    return chords;
+  };
+
+  chord.groups = function() {
+    if (!groups) relayout();
+    return groups;
+  };
+
+  return chord;
+};
+// A rudimentary force layout using Gauss-Seidel.
+d3.layout.force = function() {
+  var force = {},
+      event = d3.dispatch("tick"),
+      size = [1, 1],
+      drag,
+      alpha,
+      friction = .9,
+      linkDistance = d3_layout_forceLinkDistance,
+      linkStrength = d3_layout_forceLinkStrength,
+      charge = -30,
+      gravity = .1,
+      theta = .8,
+      interval,
+      nodes = [],
+      links = [],
+      distances,
+      strengths,
+      charges;
+
+  function repulse(node) {
+    return function(quad, x1, y1, x2, y2) {
+      if (quad.point !== node) {
+        var dx = quad.cx - node.x,
+            dy = quad.cy - node.y,
+            dn = 1 / Math.sqrt(dx * dx + dy * dy);
+
+        /* Barnes-Hut criterion. */
+        if ((x2 - x1) * dn < theta) {
+          var k = quad.charge * dn * dn;
+          node.px -= dx * k;
+          node.py -= dy * k;
+          return true;
+        }
+
+        if (quad.point && isFinite(dn)) {
+          var k = quad.pointCharge * dn * dn;
+          node.px -= dx * k;
+          node.py -= dy * k;
+        }
+      }
+      return !quad.charge;
+    };
+  }
+
+  function tick() {
+    var n = nodes.length,
+        m = links.length,
+        q,
+        i, // current index
+        o, // current object
+        s, // current source
+        t, // current target
+        l, // current distance
+        k, // current force
+        x, // x-distance
+        y; // y-distance
+
+    // gauss-seidel relaxation for links
+    for (i = 0; i < m; ++i) {
+      o = links[i];
+      s = o.source;
+      t = o.target;
+      x = t.x - s.x;
+      y = t.y - s.y;
+      if (l = (x * x + y * y)) {
+        l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;
+        x *= l;
+        y *= l;
+        t.x -= x * (k = s.weight / (t.weight + s.weight));
+        t.y -= y * k;
+        s.x += x * (k = 1 - k);
+        s.y += y * k;
+      }
+    }
+
+    // apply gravity forces
+    if (k = alpha * gravity) {
+      x = size[0] / 2;
+      y = size[1] / 2;
+      i = -1; if (k) while (++i < n) {
+        o = nodes[i];
+        o.x += (x - o.x) * k;
+        o.y += (y - o.y) * k;
+      }
+    }
+
+    // compute quadtree center of mass and apply charge forces
+    if (charge) {
+      d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);
+      i = -1; while (++i < n) {
+        if (!(o = nodes[i]).fixed) {
+          q.visit(repulse(o));
+        }
+      }
+    }
+
+    // position verlet integration
+    i = -1; while (++i < n) {
+      o = nodes[i];
+      if (o.fixed) {
+        o.x = o.px;
+        o.y = o.py;
+      } else {
+        o.x -= (o.px - (o.px = o.x)) * friction;
+        o.y -= (o.py - (o.py = o.y)) * friction;
+      }
+    }
+
+	if ((alpha *= .99) < .005) {
+		event.tick({type: "tick", alpha: alpha});
+		return true;
+	}
+	else {
+	    return false;
+	} 
+
+    /*event.tick({type: "tick", alpha: alpha});
+
+    // simulated annealing, basically
+    return (alpha *= .99) < .005;*/
+  }
+
+  force.on = function(type, listener) {
+    event.on(type, listener);
+    return force;
+  };
+
+  force.nodes = function(x) {
+    if (!arguments.length) return nodes;
+    nodes = x;
+    return force;
+  };
+
+  force.links = function(x) {
+    if (!arguments.length) return links;
+    links = x;
+    return force;
+  };
+
+  force.size = function(x) {
+    if (!arguments.length) return size;
+    size = x;
+    return force;
+  };
+
+  force.linkDistance = function(x) {
+    if (!arguments.length) return linkDistance;
+    linkDistance = d3.functor(x);
+    return force;
+  };
+
+  // For backwards-compatibility.
+  force.distance = force.linkDistance;
+
+  force.linkStrength = function(x) {
+    if (!arguments.length) return linkStrength;
+    linkStrength = d3.functor(x);
+    return force;
+  };
+
+  force.friction = function(x) {
+    if (!arguments.length) return friction;
+    friction = x;
+    return force;
+  };
+
+  force.charge = function(x) {
+    if (!arguments.length) return charge;
+    charge = typeof x === "function" ? x : +x;
+    return force;
+  };
+
+  force.gravity = function(x) {
+    if (!arguments.length) return gravity;
+    gravity = x;
+    return force;
+  };
+
+  force.theta = function(x) {
+    if (!arguments.length) return theta;
+    theta = x;
+    return force;
+  };
+
+  force.start = function() {
+    var i,
+        j,
+        n = nodes.length,
+        m = links.length,
+        w = size[0],
+        h = size[1],
+        neighbors,
+        o;
+
+    for (i = 0; i < n; ++i) {
+      (o = nodes[i]).index = i;
+      o.weight = 0;
+    }
+
+    distances = [];
+    strengths = [];
+    for (i = 0; i < m; ++i) {
+      o = links[i];
+      if (typeof o.source == "number") o.source = nodes[o.source];
+      if (typeof o.target == "number") o.target = nodes[o.target];
+      distances[i] = linkDistance.call(this, o, i);
+      strengths[i] = linkStrength.call(this, o, i);
+      ++o.source.weight;
+      ++o.target.weight;
+    }
+
+    for (i = 0; i < n; ++i) {
+      o = nodes[i];
+      if (isNaN(o.x)) o.x = position("x", w);
+      if (isNaN(o.y)) o.y = position("y", h);
+      if (isNaN(o.px)) o.px = o.x;
+      if (isNaN(o.py)) o.py = o.y;
+    }
+
+    charges = [];
+    if (typeof charge === "function") {
+      for (i = 0; i < n; ++i) {
+        charges[i] = +charge.call(this, nodes[i], i);
+      }
+    } else {
+      for (i = 0; i < n; ++i) {
+        charges[i] = charge;
+      }
+    }
+
+    // initialize node position based on first neighbor
+    function position(dimension, size) {
+      var neighbors = neighbor(i),
+          j = -1,
+          m = neighbors.length,
+          x;
+      while (++j < m) if (!isNaN(x = neighbors[j][dimension])) return x;
+      return Math.random() * size;
+    }
+
+    // initialize neighbors lazily
+    function neighbor() {
+      if (!neighbors) {
+        neighbors = [];
+        for (j = 0; j < n; ++j) {
+          neighbors[j] = [];
+        }
+        for (j = 0; j < m; ++j) {
+          var o = links[j];
+          neighbors[o.source.index].push(o.target);
+          neighbors[o.target.index].push(o.source);
+        }
+      }
+      return neighbors[i];
+    }
+
+    return force.resume();
+  };
+
+  force.resume = function() {
+    alpha = .1;
+    d3.timer(tick);
+    return force;
+  };
+
+  force.stop = function() {
+    alpha = 0;
+    return force;
+  };
+
+  // use `node.call(force.drag)` to make nodes draggable
+  force.drag = function() {
+    if (!drag) drag = d3.behavior.drag()
+        .on("dragstart", dragstart)
+        .on("drag", d3_layout_forceDrag)
+        .on("dragend", d3_layout_forceDragEnd);
+
+    this.on("mouseover.force", d3_layout_forceDragOver)
+        .on("mouseout.force", d3_layout_forceDragOut)
+        .call(drag);
+  };
+
+  function dragstart(d) {
+    d3_layout_forceDragOver(d3_layout_forceDragNode = d);
+    d3_layout_forceDragForce = force;
+  }
+
+  return force;
+};
+
+var d3_layout_forceDragForce,
+    d3_layout_forceDragNode;
+
+function d3_layout_forceDragOver(d) {
+  d.fixed |= 2;
+}
+
+function d3_layout_forceDragOut(d) {
+  if (d !== d3_layout_forceDragNode) d.fixed &= 1;
+}
+
+function d3_layout_forceDragEnd() {
+  d3_layout_forceDrag();
+  d3_layout_forceDragNode.fixed &= 1;
+  d3_layout_forceDragForce = d3_layout_forceDragNode = null;
+}
+
+function d3_layout_forceDrag() {
+  d3_layout_forceDragNode.px += d3.event.dx;
+  d3_layout_forceDragNode.py += d3.event.dy;
+  d3_layout_forceDragForce.resume(); // restart annealing
+}
+
+function d3_layout_forceAccumulate(quad, alpha, charges) {
+  var cx = 0,
+      cy = 0;
+  quad.charge = 0;
+  if (!quad.leaf) {
+    var nodes = quad.nodes,
+        n = nodes.length,
+        i = -1,
+        c;
+    while (++i < n) {
+      c = nodes[i];
+      if (c == null) continue;
+      d3_layout_forceAccumulate(c, alpha, charges);
+      quad.charge += c.charge;
+      cx += c.charge * c.cx;
+      cy += c.charge * c.cy;
+    }
+  }
+  if (quad.point) {
+    // jitter internal nodes that are coincident
+    if (!quad.leaf) {
+      quad.point.x += Math.random() - .5;
+      quad.point.y += Math.random() - .5;
+    }
+    var k = alpha * charges[quad.point.index];
+    quad.charge += quad.pointCharge = k;
+    cx += k * quad.point.x;
+    cy += k * quad.point.y;
+  }
+  quad.cx = cx / quad.charge;
+  quad.cy = cy / quad.charge;
+}
+
+function d3_layout_forceLinkDistance(link) {
+  return 20;
+}
+
+function d3_layout_forceLinkStrength(link) {
+  return 1;
+}
+d3.layout.partition = function() {
+  var hierarchy = d3.layout.hierarchy(),
+      size = [1, 1]; // width, height
+
+  function position(node, x, dx, dy) {
+    var children = node.children;
+    node.x = x;
+    node.y = node.depth * dy;
+    node.dx = dx;
+    node.dy = dy;
+    if (children && (n = children.length)) {
+      var i = -1,
+          n,
+          c,
+          d;
+      dx = node.value ? dx / node.value : 0;
+      while (++i < n) {
+        position(c = children[i], x, d = c.value * dx, dy);
+        x += d;
+      }
+    }
+  }
+
+  function depth(node) {
+    var children = node.children,
+        d = 0;
+    if (children && (n = children.length)) {
+      var i = -1,
+          n;
+      while (++i < n) d = Math.max(d, depth(children[i]));
+    }
+    return 1 + d;
+  }
+
+  function partition(d, i) {
+    var nodes = hierarchy.call(this, d, i);
+    position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));
+    return nodes;
+  }
+
+  partition.size = function(x) {
+    if (!arguments.length) return size;
+    size = x;
+    return partition;
+  };
+
+  return d3_layout_hierarchyRebind(partition, hierarchy);
+};
+d3.layout.pie = function() {
+  var value = Number,
+      sort = d3_layout_pieSortByValue,
+      startAngle = 0,
+      endAngle = 2 * Math.PI;
+
+  function pie(data, i) {
+
+    // Compute the numeric values for each data element.
+    var values = data.map(function(d, i) { return +value.call(pie, d, i); });
+
+    // Compute the start angle.
+    var a = +(typeof startAngle === "function"
+        ? startAngle.apply(this, arguments)
+        : startAngle);
+
+    // Compute the angular scale factor: from value to radians.
+    var k = ((typeof endAngle === "function"
+        ? endAngle.apply(this, arguments)
+        : endAngle) - startAngle)
+        / d3.sum(values);
+
+    // Optionally sort the data.
+    var index = d3.range(data.length);
+    if (sort != null) index.sort(sort === d3_layout_pieSortByValue
+        ? function(i, j) { return values[j] - values[i]; }
+        : function(i, j) { return sort(data[i], data[j]); });
+
+    // Compute the arcs!
+    var arcs = index.map(function(i) {
+      return {
+        data: data[i],
+        value: d = values[i],
+        startAngle: a,
+        endAngle: a += d * k
+      };
+    });
+
+    // Return the arcs in the original data's order.
+    return data.map(function(d, i) {
+      return arcs[index[i]];
+    });
+  }
+
+  /**
+   * Specifies the value function *x*, which returns a nonnegative numeric value
+   * for each datum. The default value function is `Number`. The value function
+   * is passed two arguments: the current datum and the current index.
+   */
+  pie.value = function(x) {
+    if (!arguments.length) return value;
+    value = x;
+    return pie;
+  };
+
+  /**
+   * Specifies a sort comparison operator *x*. The comparator is passed two data
+   * elements from the data array, a and b; it returns a negative value if a is
+   * less than b, a positive value if a is greater than b, and zero if a equals
+   * b.
+   */
+  pie.sort = function(x) {
+    if (!arguments.length) return sort;
+    sort = x;
+    return pie;
+  };
+
+  /**
+   * Specifies the overall start angle of the pie chart. Defaults to 0. The
+   * start angle can be specified either as a constant or as a function; in the
+   * case of a function, it is evaluated once per array (as opposed to per
+   * element).
+   */
+  pie.startAngle = function(x) {
+    if (!arguments.length) return startAngle;
+    startAngle = x;
+    return pie;
+  };
+
+  /**
+   * Specifies the overall end angle of the pie chart. Defaults to 2π. The
+   * end angle can be specified either as a constant or as a function; in the
+   * case of a function, it is evaluated once per array (as opposed to per
+   * element).
+   */
+  pie.endAngle = function(x) {
+    if (!arguments.length) return endAngle;
+    endAngle = x;
+    return pie;
+  };
+
+  return pie;
+};
+
+var d3_layout_pieSortByValue = {};
+// data is two-dimensional array of x,y; we populate y0
+d3.layout.stack = function() {
+  var values = Object,
+      order = d3_layout_stackOrders["default"],
+      offset = d3_layout_stackOffsets["zero"],
+      out = d3_layout_stackOut,
+      x = d3_layout_stackX,
+      y = d3_layout_stackY;
+
+  function stack(data, index) {
+
+    // Convert series to canonical two-dimensional representation.
+    var series = data.map(function(d, i) {
+      return values.call(stack, d, i);
+    });
+
+    // Convert each series to canonical [[x,y]] representation.
+    var points = series.map(function(d, i) {
+      return d.map(function(v, i) {
+        return [x.call(stack, v, i), y.call(stack, v, i)];
+      });
+    });
+
+    // Compute the order of series, and permute them.
+    var orders = order.call(stack, points, index);
+    series = d3.permute(series, orders);
+    points = d3.permute(points, orders);
+
+    // Compute the baseline…
+    var offsets = offset.call(stack, points, index);
+
+    // And propagate it to other series.
+    var n = series.length,
+        m = series[0].length,
+        i,
+        j,
+        o;
+    for (j = 0; j < m; ++j) {
+      out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);
+      for (i = 1; i < n; ++i) {
+        out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);
+      }
+    }
+
+    return data;
+  }
+
+  stack.values = function(x) {
+    if (!arguments.length) return values;
+    values = x;
+    return stack;
+  };
+
+  stack.order = function(x) {
+    if (!arguments.length) return order;
+    order = typeof x === "function" ? x : d3_layout_stackOrders[x];
+    return stack;
+  };
+
+  stack.offset = function(x) {
+    if (!arguments.length) return offset;
+    offset = typeof x === "function" ? x : d3_layout_stackOffsets[x];
+    return stack;
+  };
+
+  stack.x = function(z) {
+    if (!arguments.length) return x;
+    x = z;
+    return stack;
+  };
+
+  stack.y = function(z) {
+    if (!arguments.length) return y;
+    y = z;
+    return stack;
+  };
+
+  stack.out = function(z) {
+    if (!arguments.length) return out;
+    out = z;
+    return stack;
+  };
+
+  return stack;
+}
+
+function d3_layout_stackX(d) {
+  return d.x;
+}
+
+function d3_layout_stackY(d) {
+  return d.y;
+}
+
+function d3_layout_stackOut(d, y0, y) {
+  d.y0 = y0;
+  d.y = y;
+}
+
+var d3_layout_stackOrders = {
+
+  "inside-out": function(data) {
+    var n = data.length,
+        i,
+        j,
+        max = data.map(d3_layout_stackMaxIndex),
+        sums = data.map(d3_layout_stackReduceSum),
+        index = d3.range(n).sort(function(a, b) { return max[a] - max[b]; }),
+        top = 0,
+        bottom = 0,
+        tops = [],
+        bottoms = [];
+    for (i = 0; i < n; ++i) {
+      j = index[i];
+      if (top < bottom) {
+        top += sums[j];
+        tops.push(j);
+      } else {
+        bottom += sums[j];
+        bottoms.push(j);
+      }
+    }
+    return bottoms.reverse().concat(tops);
+  },
+
+  "reverse": function(data) {
+    return d3.range(data.length).reverse();
+  },
+
+  "default": function(data) {
+    return d3.range(data.length);
+  }
+
+};
+
+var d3_layout_stackOffsets = {
+
+  "silhouette": function(data) {
+    var n = data.length,
+        m = data[0].length,
+        sums = [],
+        max = 0,
+        i,
+        j,
+        o,
+        y0 = [];
+    for (j = 0; j < m; ++j) {
+      for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
+      if (o > max) max = o;
+      sums.push(o);
+    }
+    for (j = 0; j < m; ++j) {
+      y0[j] = (max - sums[j]) / 2;
+    }
+    return y0;
+  },
+
+  "wiggle": function(data) {
+    var n = data.length,
+        x = data[0],
+        m = x.length,
+        max = 0,
+        i,
+        j,
+        k,
+        s1,
+        s2,
+        s3,
+        dx,
+        o,
+        o0,
+        y0 = [];
+    y0[0] = o = o0 = 0;
+    for (j = 1; j < m; ++j) {
+      for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];
+      for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {
+        for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {
+          s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;
+        }
+        s2 += s3 * data[i][j][1];
+      }
+      y0[j] = o -= s1 ? s2 / s1 * dx : 0;
+      if (o < o0) o0 = o;
+    }
+    for (j = 0; j < m; ++j) y0[j] -= o0;
+    return y0;
+  },
+
+  "expand": function(data) {
+    var n = data.length,
+        m = data[0].length,
+        k = 1 / n,
+        i,
+        j,
+        o,
+        y0 = [];
+    for (j = 0; j < m; ++j) {
+      for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
+      if (o) for (i = 0; i < n; i++) data[i][j][1] /= o;
+      else for (i = 0; i < n; i++) data[i][j][1] = k;
+    }
+    for (j = 0; j < m; ++j) y0[j] = 0;
+    return y0;
+  },
+
+  "zero": function(data) {
+    var j = -1,
+        m = data[0].length,
+        y0 = [];
+    while (++j < m) y0[j] = 0;
+    return y0;
+  }
+
+};
+
+function d3_layout_stackMaxIndex(array) {
+  var i = 1,
+      j = 0,
+      v = array[0][1],
+      k,
+      n = array.length;
+  for (; i < n; ++i) {
+    if ((k = array[i][1]) > v) {
+      j = i;
+      v = k;
+    }
+  }
+  return j;
+}
+
+function d3_layout_stackReduceSum(d) {
+  return d.reduce(d3_layout_stackSum, 0);
+}
+
+function d3_layout_stackSum(p, d) {
+  return p + d[1];
+}
+d3.layout.histogram = function() {
+  var frequency = true,
+      valuer = Number,
+      ranger = d3_layout_histogramRange,
+      binner = d3_layout_histogramBinSturges;
+
+  function histogram(data, i) {
+    var bins = [],
+        values = data.map(valuer, this),
+        range = ranger.call(this, values, i),
+        thresholds = binner.call(this, range, values, i),
+        bin,
+        i = -1,
+        n = values.length,
+        m = thresholds.length - 1,
+        k = frequency ? 1 : 1 / n,
+        x;
+
+    // Initialize the bins.
+    while (++i < m) {
+      bin = bins[i] = [];
+      bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);
+      bin.y = 0;
+    }
+
+    // Fill the bins, ignoring values outside the range.
+    i = -1; while(++i < n) {
+      x = values[i];
+      if ((x >= range[0]) && (x <= range[1])) {
+        bin = bins[d3.bisect(thresholds, x, 1, m) - 1];
+        bin.y += k;
+        bin.push(data[i]);
+      }
+    }
+
+    return bins;
+  }
+
+  // Specifies how to extract a value from the associated data. The default
+  // value function is `Number`, which is equivalent to the identity function.
+  histogram.value = function(x) {
+    if (!arguments.length) return valuer;
+    valuer = x;
+    return histogram;
+  };
+
+  // Specifies the range of the histogram. Values outside the specified range
+  // will be ignored. The argument `x` may be specified either as a two-element
+  // array representing the minimum and maximum value of the range, or as a
+  // function that returns the range given the array of values and the current
+  // index `i`. The default range is the extent (minimum and maximum) of the
+  // values.
+  histogram.range = function(x) {
+    if (!arguments.length) return ranger;
+    ranger = d3.functor(x);
+    return histogram;
+  };
+
+  // Specifies how to bin values in the histogram. The argument `x` may be
+  // specified as a number, in which case the range of values will be split
+  // uniformly into the given number of bins. Or, `x` may be an array of
+  // threshold values, defining the bins; the specified array must contain the
+  // rightmost (upper) value, thus specifying n + 1 values for n bins. Or, `x`
+  // may be a function which is evaluated, being passed the range, the array of
+  // values, and the current index `i`, returning an array of thresholds. The
+  // default bin function will divide the values into uniform bins using
+  // Sturges' formula.
+  histogram.bins = function(x) {
+    if (!arguments.length) return binner;
+    binner = typeof x === "number"
+        ? function(range) { return d3_layout_histogramBinFixed(range, x); }
+        : d3.functor(x);
+    return histogram;
+  };
+
+  // Specifies whether the histogram's `y` value is a count (frequency) or a
+  // probability (density). The default value is true.
+  histogram.frequency = function(x) {
+    if (!arguments.length) return frequency;
+    frequency = !!x;
+    return histogram;
+  };
+
+  return histogram;
+};
+
+function d3_layout_histogramBinSturges(range, values) {
+  return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));
+}
+
+function d3_layout_histogramBinFixed(range, n) {
+  var x = -1,
+      b = +range[0],
+      m = (range[1] - b) / n,
+      f = [];
+  while (++x <= n) f[x] = m * x + b;
+  return f;
+}
+
+function d3_layout_histogramRange(values) {
+  return [d3.min(values), d3.max(values)];
+}
+d3.layout.hierarchy = function() {
+  var sort = d3_layout_hierarchySort,
+      children = d3_layout_hierarchyChildren,
+      value = d3_layout_hierarchyValue;
+
+  // Recursively compute the node depth and value.
+  // Also converts the data representation into a standard hierarchy structure.
+  function recurse(data, depth, nodes) {
+    var childs = children.call(hierarchy, data, depth),
+        node = d3_layout_hierarchyInline ? data : {data: data};
+    node.depth = depth;
+    nodes.push(node);
+    if (childs && (n = childs.length)) {
+      var i = -1,
+          n,
+          c = node.children = [],
+          v = 0,
+          j = depth + 1;
+      while (++i < n) {
+        d = recurse(childs[i], j, nodes);
+        d.parent = node;
+        c.push(d);
+        v += d.value;
+      }
+      if (sort) c.sort(sort);
+      if (value) node.value = v;
+    } else if (value) {
+      node.value = +value.call(hierarchy, data, depth) || 0;
+    }
+    return node;
+  }
+
+  // Recursively re-evaluates the node value.
+  function revalue(node, depth) {
+    var children = node.children,
+        v = 0;
+    if (children && (n = children.length)) {
+      var i = -1,
+          n,
+          j = depth + 1;
+      while (++i < n) v += revalue(children[i], j);
+    } else if (value) {
+      v = +value.call(hierarchy, d3_layout_hierarchyInline ? node : node.data, depth) || 0;
+    }
+    if (value) node.value = v;
+    return v;
+  }
+
+  function hierarchy(d) {
+    var nodes = [];
+    recurse(d, 0, nodes);
+    return nodes;
+  }
+
+  hierarchy.sort = function(x) {
+    if (!arguments.length) return sort;
+    sort = x;
+    return hierarchy;
+  };
+
+  hierarchy.children = function(x) {
+    if (!arguments.length) return children;
+    children = x;
+    return hierarchy;
+  };
+
+  hierarchy.value = function(x) {
+    if (!arguments.length) return value;
+    value = x;
+    return hierarchy;
+  };
+
+  // Re-evaluates the `value` property for the specified hierarchy.
+  hierarchy.revalue = function(root) {
+    revalue(root, 0);
+    return root;
+  };
+
+  return hierarchy;
+};
+
+// A method assignment helper for hierarchy subclasses.
+function d3_layout_hierarchyRebind(object, hierarchy) {
+  object.sort = d3.rebind(object, hierarchy.sort);
+  object.children = d3.rebind(object, hierarchy.children);
+  object.links = d3_layout_hierarchyLinks;
+  object.value = d3.rebind(object, hierarchy.value);
+
+  // If the new API is used, enabling inlining.
+  object.nodes = function(d) {
+    d3_layout_hierarchyInline = true;
+    return (object.nodes = object)(d);
+  };
+
+  return object;
+}
+
+function d3_layout_hierarchyChildren(d) {
+  return d.children;
+}
+
+function d3_layout_hierarchyValue(d) {
+  return d.value;
+}
+
+function d3_layout_hierarchySort(a, b) {
+  return b.value - a.value;
+}
+
+// Returns an array source+target objects for the specified nodes.
+function d3_layout_hierarchyLinks(nodes) {
+  return d3.merge(nodes.map(function(parent) {
+    return (parent.children || []).map(function(child) {
+      return {source: parent, target: child};
+    });
+  }));
+}
+
+// For backwards-compatibility, don't enable inlining by default.
+var d3_layout_hierarchyInline = false;
+d3.layout.pack = function() {
+  var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort),
+      size = [1, 1];
+
+  function pack(d, i) {
+    var nodes = hierarchy.call(this, d, i),
+        root = nodes[0];
+
+    // Recursively compute the layout.
+    root.x = 0;
+    root.y = 0;
+    d3_layout_packTree(root);
+
+    // Scale the layout to fit the requested size.
+    var w = size[0],
+        h = size[1],
+        k = 1 / Math.max(2 * root.r / w, 2 * root.r / h);
+    d3_layout_packTransform(root, w / 2, h / 2, k);
+
+    return nodes;
+  }
+
+  pack.size = function(x) {
+    if (!arguments.length) return size;
+    size = x;
+    return pack;
+  };
+
+  return d3_layout_hierarchyRebind(pack, hierarchy);
+};
+
+function d3_layout_packSort(a, b) {
+  return a.value - b.value;
+}
+
+function d3_layout_packInsert(a, b) {
+  var c = a._pack_next;
+  a._pack_next = b;
+  b._pack_prev = a;
+  b._pack_next = c;
+  c._pack_prev = b;
+}
+
+function d3_layout_packSplice(a, b) {
+  a._pack_next = b;
+  b._pack_prev = a;
+}
+
+function d3_layout_packIntersects(a, b) {
+  var dx = b.x - a.x,
+      dy = b.y - a.y,
+      dr = a.r + b.r;
+  return (dr * dr - dx * dx - dy * dy) > .001; // within epsilon
+}
+
+function d3_layout_packCircle(nodes) {
+  var xMin = Infinity,
+      xMax = -Infinity,
+      yMin = Infinity,
+      yMax = -Infinity,
+      n = nodes.length,
+      a, b, c, j, k;
+
+  function bound(node) {
+    xMin = Math.min(node.x - node.r, xMin);
+    xMax = Math.max(node.x + node.r, xMax);
+    yMin = Math.min(node.y - node.r, yMin);
+    yMax = Math.max(node.y + node.r, yMax);
+  }
+
+  // Create node links.
+  nodes.forEach(d3_layout_packLink);
+
+  // Create first node.
+  a = nodes[0];
+  a.x = -a.r;
+  a.y = 0;
+  bound(a);
+
+  // Create second node.
+  if (n > 1) {
+    b = nodes[1];
+    b.x = b.r;
+    b.y = 0;
+    bound(b);
+
+    // Create third node and build chain.
+    if (n > 2) {
+      c = nodes[2];
+      d3_layout_packPlace(a, b, c);
+      bound(c);
+      d3_layout_packInsert(a, c);
+      a._pack_prev = c;
+      d3_layout_packInsert(c, b);
+      b = a._pack_next;
+
+      // Now iterate through the rest.
+      for (var i = 3; i < n; i++) {
+        d3_layout_packPlace(a, b, c = nodes[i]);
+
+        // Search for the closest intersection.
+        var isect = 0, s1 = 1, s2 = 1;
+        for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {
+          if (d3_layout_packIntersects(j, c)) {
+            isect = 1;
+            break;
+          }
+        }
+        if (isect == 1) {
+          for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {
+            if (d3_layout_packIntersects(k, c)) {
+              if (s2 < s1) {
+                isect = -1;
+                j = k;
+              }
+              break;
+            }
+          }
+        }
+
+        // Update node chain.
+        if (isect == 0) {
+          d3_layout_packInsert(a, c);
+          b = c;
+          bound(c);
+        } else if (isect > 0) {
+          d3_layout_packSplice(a, j);
+          b = j;
+          i--;
+        } else { // isect < 0
+          d3_layout_packSplice(j, b);
+          a = j;
+          i--;
+        }
+      }
+    }
+  }
+
+  // Re-center the circles and return the encompassing radius.
+  var cx = (xMin + xMax) / 2,
+      cy = (yMin + yMax) / 2,
+      cr = 0;
+  for (var i = 0; i < n; i++) {
+    var node = nodes[i];
+    node.x -= cx;
+    node.y -= cy;
+    cr = Math.max(cr, node.r + Math.sqrt(node.x * node.x + node.y * node.y));
+  }
+
+  // Remove node links.
+  nodes.forEach(d3_layout_packUnlink);
+
+  return cr;
+}
+
+function d3_layout_packLink(node) {
+  node._pack_next = node._pack_prev = node;
+}
+
+function d3_layout_packUnlink(node) {
+  delete node._pack_next;
+  delete node._pack_prev;
+}
+
+function d3_layout_packTree(node) {
+  var children = node.children;
+  if (children && children.length) {
+    children.forEach(d3_layout_packTree);
+    node.r = d3_layout_packCircle(children);
+  } else {
+    node.r = Math.sqrt(node.value);
+  }
+}
+
+function d3_layout_packTransform(node, x, y, k) {
+  var children = node.children;
+  node.x = (x += k * node.x);
+  node.y = (y += k * node.y);
+  node.r *= k;
+  if (children) {
+    var i = -1, n = children.length;
+    while (++i < n) d3_layout_packTransform(children[i], x, y, k);
+  }
+}
+
+function d3_layout_packPlace(a, b, c) {
+  var db = a.r + c.r,
+      dx = b.x - a.x,
+      dy = b.y - a.y;
+  if (db && (dx || dy)) {
+    var da = b.r + c.r,
+        dc = Math.sqrt(dx * dx + dy * dy),
+        cos = Math.max(-1, Math.min(1, (db * db + dc * dc - da * da) / (2 * db * dc))),
+        theta = Math.acos(cos),
+        x = cos * (db /= dc),
+        y = Math.sin(theta) * db;
+    c.x = a.x + x * dx + y * dy;
+    c.y = a.y + x * dy - y * dx;
+  } else {
+    c.x = a.x + db;
+    c.y = a.y;
+  }
+}
+// Implements a hierarchical layout using the cluster (or dendogram) algorithm.
+d3.layout.cluster = function() {
+  var hierarchy = d3.layout.hierarchy().sort(null).value(null),
+      separation = d3_layout_treeSeparation,
+      size = [1, 1]; // width, height
+
+  function cluster(d, i) {
+    var nodes = hierarchy.call(this, d, i),
+        root = nodes[0],
+        previousNode,
+        x = 0,
+        kx,
+        ky;
+
+    // First walk, computing the initial x & y values.
+    d3_layout_treeVisitAfter(root, function(node) {
+      var children = node.children;
+      if (children && children.length) {
+        node.x = d3_layout_clusterX(children);
+        node.y = d3_layout_clusterY(children);
+      } else {
+        node.x = previousNode ? x += separation(node, previousNode) : 0;
+        node.y = 0;
+        previousNode = node;
+      }
+    });
+
+    // Compute the left-most, right-most, and depth-most nodes for extents.
+    var left = d3_layout_clusterLeft(root),
+        right = d3_layout_clusterRight(root),
+        x0 = left.x - separation(left, right) / 2,
+        x1 = right.x + separation(right, left) / 2;
+
+    // Second walk, normalizing x & y to the desired size.
+    d3_layout_treeVisitAfter(root, function(node) {
+      node.x = (node.x - x0) / (x1 - x0) * size[0];
+      node.y = (1 - node.y / root.y) * size[1];
+    });
+
+    return nodes;
+  }
+
+  cluster.separation = function(x) {
+    if (!arguments.length) return separation;
+    separation = x;
+    return cluster;
+  };
+
+  cluster.size = function(x) {
+    if (!arguments.length) return size;
+    size = x;
+    return cluster;
+  };
+
+  return d3_layout_hierarchyRebind(cluster, hierarchy);
+};
+
+function d3_layout_clusterY(children) {
+  return 1 + d3.max(children, function(child) {
+    return child.y;
+  });
+}
+
+function d3_layout_clusterX(children) {
+  return children.reduce(function(x, child) {
+    return x + child.x;
+  }, 0) / children.length;
+}
+
+function d3_layout_clusterLeft(node) {
+  var children = node.children;
+  return children && children.length ? d3_layout_clusterLeft(children[0]) : node;
+}
+
+function d3_layout_clusterRight(node) {
+  var children = node.children, n;
+  return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;
+}
+// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm
+d3.layout.tree = function() {
+  var hierarchy = d3.layout.hierarchy().sort(null).value(null),
+      separation = d3_layout_treeSeparation,
+      size = [1, 1]; // width, height
+
+  function tree(d, i) {
+    var nodes = hierarchy.call(this, d, i),
+        root = nodes[0];
+
+    function firstWalk(node, previousSibling) {
+      var children = node.children,
+          layout = node._tree;
+      if (children && (n = children.length)) {
+        var n,
+            firstChild = children[0],
+            previousChild,
+            ancestor = firstChild,
+            child,
+            i = -1;
+        while (++i < n) {
+          child = children[i];
+          firstWalk(child, previousChild);
+          ancestor = apportion(child, previousChild, ancestor);
+          previousChild = child;
+        }
+        d3_layout_treeShift(node);
+        var midpoint = .5 * (firstChild._tree.prelim + child._tree.prelim);
+        if (previousSibling) {
+          layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
+          layout.mod = layout.prelim - midpoint;
+        } else {
+          layout.prelim = midpoint;
+        }
+      } else {
+        if (previousSibling) {
+          layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
+        }
+      }
+    }
+
+    function secondWalk(node, x) {
+      node.x = node._tree.prelim + x;
+      var children = node.children;
+      if (children && (n = children.length)) {
+        var i = -1,
+            n;
+        x += node._tree.mod;
+        while (++i < n) {
+          secondWalk(children[i], x);
+        }
+      }
+    }
+
+    function apportion(node, previousSibling, ancestor) {
+      if (previousSibling) {
+        var vip = node,
+            vop = node,
+            vim = previousSibling,
+            vom = node.parent.children[0],
+            sip = vip._tree.mod,
+            sop = vop._tree.mod,
+            sim = vim._tree.mod,
+            som = vom._tree.mod,
+            shift;
+        while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {
+          vom = d3_layout_treeLeft(vom);
+          vop = d3_layout_treeRight(vop);
+          vop._tree.ancestor = node;
+          shift = vim._tree.prelim + sim - vip._tree.prelim - sip + separation(vim, vip);
+          if (shift > 0) {
+            d3_layout_treeMove(d3_layout_treeAncestor(vim, node, ancestor), node, shift);
+            sip += shift;
+            sop += shift;
+          }
+          sim += vim._tree.mod;
+          sip += vip._tree.mod;
+          som += vom._tree.mod;
+          sop += vop._tree.mod;
+        }
+        if (vim && !d3_layout_treeRight(vop)) {
+          vop._tree.thread = vim;
+          vop._tree.mod += sim - sop;
+        }
+        if (vip && !d3_layout_treeLeft(vom)) {
+          vom._tree.thread = vip;
+          vom._tree.mod += sip - som;
+          ancestor = node;
+        }
+      }
+      return ancestor;
+    }
+
+    // Initialize temporary layout variables.
+    d3_layout_treeVisitAfter(root, function(node, previousSibling) {
+      node._tree = {
+        ancestor: node,
+        prelim: 0,
+        mod: 0,
+        change: 0,
+        shift: 0,
+        number: previousSibling ? previousSibling._tree.number + 1 : 0
+      };
+    });
+
+    // Compute the layout using Buchheim et al.'s algorithm.
+    firstWalk(root);
+    secondWalk(root, -root._tree.prelim);
+
+    // Compute the left-most, right-most, and depth-most nodes for extents.
+    var left = d3_layout_treeSearch(root, d3_layout_treeLeftmost),
+        right = d3_layout_treeSearch(root, d3_layout_treeRightmost),
+        deep = d3_layout_treeSearch(root, d3_layout_treeDeepest),
+        x0 = left.x - separation(left, right) / 2,
+        x1 = right.x + separation(right, left) / 2,
+        y1 = deep.depth || 1;
+
+    // Clear temporary layout variables; transform x and y.
+    d3_layout_treeVisitAfter(root, function(node) {
+      node.x = (node.x - x0) / (x1 - x0) * size[0];
+      node.y = node.depth / y1 * size[1];
+      delete node._tree;
+    });
+
+    return nodes;
+  }
+
+  tree.separation = function(x) {
+    if (!arguments.length) return separation;
+    separation = x;
+    return tree;
+  };
+
+  tree.size = function(x) {
+    if (!arguments.length) return size;
+    size = x;
+    return tree;
+  };
+
+  return d3_layout_hierarchyRebind(tree, hierarchy);
+};
+
+function d3_layout_treeSeparation(a, b) {
+  return a.parent == b.parent ? 1 : 2;
+}
+
+// function d3_layout_treeSeparationRadial(a, b) {
+//   return (a.parent == b.parent ? 1 : 2) / a.depth;
+// }
+
+function d3_layout_treeLeft(node) {
+  var children = node.children;
+  return children && children.length ? children[0] : node._tree.thread;
+}
+
+function d3_layout_treeRight(node) {
+  var children = node.children,
+      n;
+  return children && (n = children.length) ? children[n - 1] : node._tree.thread;
+}
+
+function d3_layout_treeSearch(node, compare) {
+  var children = node.children;
+  if (children && (n = children.length)) {
+    var child,
+        n,
+        i = -1;
+    while (++i < n) {
+      if (compare(child = d3_layout_treeSearch(children[i], compare), node) > 0) {
+        node = child;
+      }
+    }
+  }
+  return node;
+}
+
+function d3_layout_treeRightmost(a, b) {
+  return a.x - b.x;
+}
+
+function d3_layout_treeLeftmost(a, b) {
+  return b.x - a.x;
+}
+
+function d3_layout_treeDeepest(a, b) {
+  return a.depth - b.depth;
+}
+
+function d3_layout_treeVisitAfter(node, callback) {
+  function visit(node, previousSibling) {
+    var children = node.children;
+    if (children && (n = children.length)) {
+      var child,
+          previousChild = null,
+          i = -1,
+          n;
+      while (++i < n) {
+        child = children[i];
+        visit(child, previousChild);
+        previousChild = child;
+      }
+    }
+    callback(node, previousSibling);
+  }
+  visit(node, null);
+}
+
+function d3_layout_treeShift(node) {
+  var shift = 0,
+      change = 0,
+      children = node.children,
+      i = children.length,
+      child;
+  while (--i >= 0) {
+    child = children[i]._tree;
+    child.prelim += shift;
+    child.mod += shift;
+    shift += child.shift + (change += child.change);
+  }
+}
+
+function d3_layout_treeMove(ancestor, node, shift) {
+  ancestor = ancestor._tree;
+  node = node._tree;
+  var change = shift / (node.number - ancestor.number);
+  ancestor.change += change;
+  node.change -= change;
+  node.shift += shift;
+  node.prelim += shift;
+  node.mod += shift;
+}
+
+function d3_layout_treeAncestor(vim, node, ancestor) {
+  return vim._tree.ancestor.parent == node.parent
+      ? vim._tree.ancestor
+      : ancestor;
+}
+// Squarified Treemaps by Mark Bruls, Kees Huizing, and Jarke J. van Wijk
+// Modified to support a target aspect ratio by Jeff Heer
+d3.layout.treemap = function() {
+  var hierarchy = d3.layout.hierarchy(),
+      round = Math.round,
+      size = [1, 1], // width, height
+      padding = null,
+      pad = d3_layout_treemapPadNull,
+      sticky = false,
+      stickies,
+      ratio = 0.5 * (1 + Math.sqrt(5)); // golden ratio
+
+  // Compute the area for each child based on value & scale.
+  function scale(children, k) {
+    var i = -1,
+        n = children.length,
+        child,
+        area;
+    while (++i < n) {
+      area = (child = children[i]).value * (k < 0 ? 0 : k);
+      child.area = isNaN(area) || area <= 0 ? 0 : area;
+    }
+  }
+
+  // Recursively arranges the specified node's children into squarified rows.
+  function squarify(node) {
+    var children = node.children;
+    if (children && children.length) {
+      var rect = pad(node),
+          row = [],
+          remaining = children.slice(), // copy-on-write
+          child,
+          best = Infinity, // the best row score so far
+          score, // the current row score
+          u = Math.min(rect.dx, rect.dy), // initial orientation
+          n;
+      scale(remaining, rect.dx * rect.dy / node.value);
+      row.area = 0;
+      while ((n = remaining.length) > 0) {
+        row.push(child = remaining[n - 1]);
+        row.area += child.area;
+        if ((score = worst(row, u)) <= best) { // continue with this orientation
+          remaining.pop();
+          best = score;
+        } else { // abort, and try a different orientation
+          row.area -= row.pop().area;
+          position(row, u, rect, false);
+          u = Math.min(rect.dx, rect.dy);
+          row.length = row.area = 0;
+          best = Infinity;
+        }
+      }
+      if (row.length) {
+        position(row, u, rect, true);
+        row.length = row.area = 0;
+      }
+      children.forEach(squarify);
+    }
+  }
+
+  // Recursively resizes the specified node's children into existing rows.
+  // Preserves the existing layout!
+  function stickify(node) {
+    var children = node.children;
+    if (children && children.length) {
+      var rect = pad(node),
+          remaining = children.slice(), // copy-on-write
+          child,
+          row = [];
+      scale(remaining, rect.dx * rect.dy / node.value);
+      row.area = 0;
+      while (child = remaining.pop()) {
+        row.push(child);
+        row.area += child.area;
+        if (child.z != null) {
+          position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);
+          row.length = row.area = 0;
+        }
+      }
+      children.forEach(stickify);
+    }
+  }
+
+  // Computes the score for the specified row, as the worst aspect ratio.
+  function worst(row, u) {
+    var s = row.area,
+        r,
+        rmax = 0,
+        rmin = Infinity,
+        i = -1,
+        n = row.length;
+    while (++i < n) {
+      if (!(r = row[i].area)) continue;
+      if (r < rmin) rmin = r;
+      if (r > rmax) rmax = r;
+    }
+    s *= s;
+    u *= u;
+    return s
+        ? Math.max((u * rmax * ratio) / s, s / (u * rmin * ratio))
+        : Infinity;
+  }
+
+  // Positions the specified row of nodes. Modifies `rect`.
+  function position(row, u, rect, flush) {
+    var i = -1,
+        n = row.length,
+        x = rect.x,
+        y = rect.y,
+        v = u ? round(row.area / u) : 0,
+        o;
+    if (u == rect.dx) { // horizontal subdivision
+      if (flush || v > rect.dy) v = v ? rect.dy : 0; // over+underflow
+      while (++i < n) {
+        o = row[i];
+        o.x = x;
+        o.y = y;
+        o.dy = v;
+        x += o.dx = v ? round(o.area / v) : 0;
+      }
+      o.z = true;
+      o.dx += rect.x + rect.dx - x; // rounding error
+      rect.y += v;
+      rect.dy -= v;
+    } else { // vertical subdivision
+      if (flush || v > rect.dx) v = v ? rect.dx : 0; // over+underflow
+      while (++i < n) {
+        o = row[i];
+        o.x = x;
+        o.y = y;
+        o.dx = v;
+        y += o.dy = v ? round(o.area / v) : 0;
+      }
+      o.z = false;
+      o.dy += rect.y + rect.dy - y; // rounding error
+      rect.x += v;
+      rect.dx -= v;
+    }
+  }
+
+  function treemap(d) {
+    var nodes = stickies || hierarchy(d),
+        root = nodes[0];
+    root.x = 0;
+    root.y = 0;
+    root.dx = size[0];
+    root.dy = size[1];
+    if (stickies) hierarchy.revalue(root);
+    scale([root], root.dx * root.dy / root.value);
+    (stickies ? stickify : squarify)(root);
+    if (sticky) stickies = nodes;
+    return nodes;
+  }
+
+  treemap.size = function(x) {
+    if (!arguments.length) return size;
+    size = x;
+    return treemap;
+  };
+
+  treemap.padding = function(x) {
+    if (!arguments.length) return padding;
+
+    function padFunction(node) {
+      var p = x.call(treemap, node, node.depth);
+      return p == null
+          ? d3_layout_treemapPadNull(node)
+          : d3_layout_treemapPad(node, typeof p === "number" ? [p, p, p, p] : p);
+    }
+
+    function padConstant(node) {
+      return d3_layout_treemapPad(node, x);
+    }
+
+    var type;
+    pad = (padding = x) == null ? d3_layout_treemapPadNull
+        : (type = typeof x) === "function" ? padFunction
+        : type === "number" ? (x = [x, x, x, x], padConstant)
+        : padConstant;
+    return treemap;
+  };
+
+  treemap.round = function(x) {
+    if (!arguments.length) return round != Number;
+    round = x ? Math.round : Number;
+    return treemap;
+  };
+
+  treemap.sticky = function(x) {
+    if (!arguments.length) return sticky;
+    sticky = x;
+    stickies = null;
+    return treemap;
+  };
+
+  treemap.ratio = function(x) {
+    if (!arguments.length) return ratio;
+    ratio = x;
+    return treemap;
+  };
+
+  return d3_layout_hierarchyRebind(treemap, hierarchy);
+};
+
+function d3_layout_treemapPadNull(node) {
+  return {x: node.x, y: node.y, dx: node.dx, dy: node.dy};
+}
+
+function d3_layout_treemapPad(node, padding) {
+  var x = node.x + padding[3],
+      y = node.y + padding[0],
+      dx = node.dx - padding[1] - padding[3],
+      dy = node.dy - padding[0] - padding[2];
+  if (dx < 0) { x += dx / 2; dx = 0; }
+  if (dy < 0) { y += dy / 2; dy = 0; }
+  return {x: x, y: y, dx: dx, dy: dy};
+}
+})();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/d3_modifie/d3.min.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,2 @@
+(function(){function e(a){var b=-1,c=a.length,d=[];while(++b<c)d.push(a[b]);return d}function f(a){return Array.prototype.slice.call(a)}function i(){return this}function j(a){return a!=null&&!isNaN(a)}function k(a){return a.length}function l(a){return a==null}function m(a){return a.replace(/(^\s+)|(\s+$)/g,"").replace(/\s+/g," ")}function o(){}function p(){function c(){var b=a,c=-1,d=b.length,e;while(++c<d)(e=b[c])._on&&e.apply(this,arguments)}var a=[],b={};return c.on=function(d,e){var f,g;if(f=b[d])f._on=!1,a=a.slice(0,g=a.indexOf(f)).concat(a.slice(g+1)),delete b[d];return e&&(e._on=!0,a.push(e),b[d]=e),c},c}function s(a,b){return b-(a?1+Math.floor(Math.log(a+Math.pow(10,1+Math.floor(Math.log(a)/Math.LN10)-b))/Math.LN10):1)}function t(a){return a+""}function u(a){var b=a.lastIndexOf("."),c=b>=0?a.substring(b):(b=a.length,""),d=[];while(b>0)d.push(a.substring(b-=3,b+3));return d.reverse().join(",")+c}function w(a,b){return{scale:Math.pow(10,(8-b)*3),symbol:a}}function B(a){return function(b){return b<=0?0:b>=1?1:a(b)}}function C(a){return function(b){return 1-a(1-b)}}function D(a){return function(b){return.5*(b<.5?a(2*b):2-a(2-2*b))}}function E(a){return a}function F(a){return function(b){return Math.pow(b,a)}}function G(a){return 1-Math.cos(a*Math.PI/2)}function H(a){return Math.pow(2,10*(a-1))}function I(a){return 1-Math.sqrt(1-a*a)}function J(a,b){var c;return arguments.length<2&&(b=.45),arguments.length<1?(a=1,c=b/4):c=b/(2*Math.PI)*Math.asin(1/a),function(d){return 1+a*Math.pow(2,10*-d)*Math.sin((d-c)*2*Math.PI/b)}}function K(a){return a||(a=1.70158),function(b){return b*b*((a+1)*b-a)}}function L(a){return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375}function M(){d3.event.stopPropagation(),d3.event.preventDefault()}function O(a){return a=="transform"?d3.interpolateTransform:d3.interpolate}function P(a,b){return b=b-(a=+a)?1/(b-a):0,function(c){return(c-a)*b}}function Q(a,b){return b=b-(a=+a)?1/(b-a):0,function(c){return Math.max(0,Math.min(1,(c-a)*b))}}function R(a,b,c){return new S(a,b,c)}function S(a,b,c){this.r=a,this.g=b,this.b=c}function T(a){return a<16?"0"+Math.max(0,a).toString(16):Math.min(255,a).toString(16)}function U(a,b,c){var d=0,e=0,f=0,g,h,i;g=/([a-z]+)\((.*)\)/i.exec(a);if(g){h=g[2].split(",");switch(g[1]){case"hsl":return c(parseFloat(h[0]),parseFloat(h[1])/100,parseFloat(h[2])/100);case"rgb":return b(W(h[0]),W(h[1]),W(h[2]))}}return(i=X[a])?b(i.r,i.g,i.b):(a!=null&&a.charAt(0)==="#"&&(a.length===4?(d=a.charAt(1),d+=d,e=a.charAt(2),e+=e,f=a.charAt(3),f+=f):a.length===7&&(d=a.substring(1,3),e=a.substring(3,5),f=a.substring(5,7)),d=parseInt(d,16),e=parseInt(e,16),f=parseInt(f,16)),b(d,e,f))}function V(a,b,c){var d=Math.min(a/=255,b/=255,c/=255),e=Math.max(a,b,c),f=e-d,g,h,i=(e+d)/2;return f?(h=i<.5?f/(e+d):f/(2-e-d),a==e?g=(b-c)/f+(b<c?6:0):b==e?g=(c-a)/f+2:g=(a-b)/f+4,g*=60):h=g=0,Z(g,h,i)}function W(a){var b=parseFloat(a);return a.charAt(a.length-1)==="%"?Math.round(b*2.55):b}function Z(a,b,c){return new $(a,b,c)}function $(a,b,c){this.h=a,this.s=b,this.l=c}function _(a,b,c){function f(a){return a>360?a-=360:a<0&&(a+=360),a<60?d+(e-d)*a/60:a<180?e:a<240?d+(e-d)*(240-a)/60:d}function g(a){return Math.round(f(a)*255)}var d,e;return a%=360,a<0&&(a+=360),b=b<0?0:b>1?1:b,c=c<0?0:c>1?1:c,e=c<=.5?c*(1+b):c+b-c*b,d=2*c-e,R(g(a+120),g(a),g(a-120))}function ba(a){return h(a,bd),a}function be(a){return function(){return bb(a,this)}}function bf(a){return function(){return bc(a,this)}}function bh(a,b){function f(){if(b=this.classList)return b.add(a);var b=this.className,d=b.baseVal!=null,e=d?b.baseVal:b;c.lastIndex=0,c.test(e)||(e=m(e+" "+a),d?b.baseVal=e:this.className=e)}function g(){if(b=this.classList)return b.remove(a);var b=this.className,d=b.baseVal!=null,e=d?b.baseVal:b;e=m(e.replace(c," ")),d?b.baseVal=e:this.className=e}function h(){(b.apply(this,arguments)?f:g).call(this)}var c=new RegExp("(^|\\s+)"+d3.requote(a)+"(\\s+|$)","g");if(arguments.length<2){var d=this.node();if(e=d.classList)return e.contains(a);var e=d.className;return c.lastIndex=0,c.test(e.baseVal!=null?e.baseVal:e)}return this.each(typeof b=="function"?h:b?f:g)}function bi(a){return{__data__:a}}function bj(a){return arguments.length||(a=d3.ascending),function(b,c){return a(b&&b.__data__,c&&c.__data__)}}function bl(a){return h(a,bm),a}function bn(a,b,c){h(a,br);var d={},e=d3.dispatch("start","end"),f=bu;return a.id=b,a.time=c,a.tween=function(b,c){return arguments.length<2?d[b]:(c==null?delete d[b]:d[b]=c,a)},a.ease=function(b){return arguments.length?(f=typeof b=="function"?b:d3.ease.apply(d3,arguments),a):f},a.each=function(b,c){return arguments.length<2?bv.call(a,b):(e.on(b,c),a)},d3.timer(function(g){return a.each(function(h,i,j){function p(a){if(o.active>b)return r();o.active=b;for(var f in d)(f=d[f].call(l,h,i))&&k.push(f);return e.start.call(l,h,i),q(a)||d3.timer(q,0,c),1}function q(a){if(o.active!==b)return r();var c=(a-m)/n,d=f(c),g=k.length;while(g>0)k[--g].call(l,d);if(c>=1)return r(),bt=b,e.end.call(l,h,i),bt=0,1}function r(){return--o.count||delete l.__transition__,1}var k=[],l=this,m=a[j][i].delay,n=a[j][i].duration,o=l.__transition__||(l.__transition__={active:0,count:0});++o.count,m<=g?p(g):d3.timer(p,m,c)}),1},0,c),a}function bp(a,b,c){return c!=""&&bo}function bq(a,b){function d(a,d,e){var f=b.call(this,a,d);return f==null?e!=""&&bo:e!=f&&c(e,f)}function e(a,d,e){return e!=b&&c(e,b)}var c=O(a);return typeof b=="function"?d:b==null?bp:(b+="",e)}function bv(a){for(var b=0,c=this.length;b<c;b++)for(var d=this[b],e=0,f=d.length;e<f;e++){var g=d[e];g&&a.call(g=g.node,g.__data__,e,b)}return this}function bz(){var a,b=Date.now(),c=bw;while(c)a=b-c.then,a>=c.delay&&(c.flush=c.callback(a)),c=c.next;var d=bA()-b;d>24?(isFinite(d)&&(clearTimeout(by),by=setTimeout(bz,d)),bx=0):(bx=1,bB(bz))}function bA(){var a=null,b=bw,c=Infinity;while(b)b.flush?b=a?a.next=b.next:bw=b.next:(c=Math.min(c,b.then+b.delay),b=(a=b).next);return c}function bC(a){var b=[a.a,a.b],c=[a.c,a.d],d=bE(b),e=bD(b,c),f=bE(bF(c,b,-e));this.translate=[a.e,a.f],this.rotate=Math.atan2(a.b,a.a)*bH,this.scale=[d,f||0],this.skew=f?e/f*bH:0}function bD(a,b){return a[0]*b[0]+a[1]*b[1]}function bE(a){var b=Math.sqrt(bD(a,a));return a[0]/=b,a[1]/=b,b}function bF(a,b,c){return a[0]+=c*b[0],a[1]+=c*b[1],a}function bI(){}function bJ(a){var b=a[0],c=a[a.length-1];return b<c?[b,c]:[c,b]}function bK(a,b){var c=0,d=a.length-1,e=a[c],f=a[d],g;f<e&&(g=c,c=d,d=g,g=e,e=f,f=g);if(g=f-e)b=b(g),a[c]=b.floor(e),a[d]=b.ceil(f);return a}function bL(){return Math}function bM(a,b,c,d){function g(){var g=a.length==2?bS:bT,i=d?Q:P;return e=g(a,b,i,c),f=g(b,a,i,d3.interpolate),h}function h(a){return e(a)}var e,f;return h.invert=function(a){return f(a)},h.domain=function(b){return arguments.length?(a=b.map(Number),g()):a},h.range=function(a){return arguments.length?(b=a,g()):b},h.rangeRound=function(a){return h.range(a).interpolate(d3.interpolateRound)},h.clamp=function(a){return arguments.length?(d=a,g()):d},h.interpolate=function(a){return arguments.length?(c=a,g()):c},h.ticks=function(b){return bQ(a,b)},h.tickFormat=function(b){return bR(a,b)},h.nice=function(){return bK(a,bO),g()},h.copy=function(){return bM(a,b,c,d)},g()}function bN(a,b){return a.range=d3.rebind(a,b.range),a.rangeRound=d3.rebind(a,b.rangeRound),a.interpolate=d3.rebind(a,b.interpolate),a.clamp=d3.rebind(a,b.clamp),a}function bO(a){return a=Math.pow(10,Math.round(Math.log(a)/Math.LN10)-1),{floor:function(b){return Math.floor(b/a)*a},ceil:function(b){return Math.ceil(b/a)*a}}}function bP(a,b){var c=bJ(a),d=c[1]-c[0],e=Math.pow(10,Math.floor(Math.log(d/b)/Math.LN10)),f=b/d*e;return f<=.15?e*=10:f<=.35?e*=5:f<=.75&&(e*=2),c[0]=Math.ceil(c[0]/e)*e,c[1]=Math.floor(c[1]/e)*e+e*.5,c[2]=e,c}function bQ(a,b){return d3.range.apply(d3,bP(a,b))}function bR(a,b){return d3.format(",."+Math.max(0,-Math.floor(Math.log(bP(a,b)[2])/Math.LN10+.01))+"f")}function bS(a,b,c,d){var e=c(a[0],a[1]),f=d(b[0],b[1]);return function(a){return f(e(a))}}function bT(a,b,c,d){var e=[],f=[],g=0,h=a.length;while(++g<h)e.push(c(a[g-1],a[g])),f.push(d(b[g-1],b[g]));return function(b){var c=d3.bisect(a,b,1,a.length-1)-1;return f[c](e[c](b))}}function bU(a,b){function d(c){return a(b(c))}var c=b.pow;return d.invert=function(b){return c(a.invert(b))},d.domain=function(e){return arguments.length?(b=e[0]<0?bX:bW,c=b.pow,a.domain(e.map(b)),d):a.domain().map(c)},d.nice=function(){return a.domain(bK(a.domain(),bL)),d},d.ticks=function(){var d=bJ(a.domain()),e=[];if(d.every(isFinite)){var f=Math.floor(d[0]),g=Math.ceil(d[1]),h=Math.round(c(d[0])),i=Math.round(c(d[1]));if(b===bX){e.push(c(f));for(;f++<g;)for(var j=9;j>0;j--)e.push(c(f)*j)}else{for(;f<g;f++)for(var j=1;j<10;j++)e.push(c(f)*j);e.push(c(f))}for(f=0;e[f]<h;f++);for(g=e.length;e[g-1]>i;g--);e=e.slice(f,g)}return e},d.tickFormat=function(a,e){arguments.length<2&&(e=bV);if(arguments.length<1)return e;var f=a/d.ticks().length,g=b===bX?(h=-1e-15,Math.floor):(h=1e-15,Math.ceil),h;return function(a){return a/c(g(b(a)+h))<f?e(a):""}},d.copy=function(){return bU(a.copy(),b)},bN(d,a)}function bW(a){return Math.log(a)/Math.LN10}function bX(a){return-Math.log(-a)/Math.LN10}function bY(a,b){function e(b){return a(c(b))}var c=bZ(b),d=bZ(1/b);return e.invert=function(b){return d(a.invert(b))},e.domain=function(b){return arguments.length?(a.domain(b.map(c)),e):a.domain().map(d)},e.ticks=function(a){return bQ(e.domain(),a)},e.tickFormat=function(a){return bR(e.domain(),a)},e.nice=function(){return e.domain(bK(e.domain(),bO))},e.exponent=function(a){if(!arguments.length)return b;var f=e.domain();return c=bZ(b=a),d=bZ(1/b),e.domain(f)},e.copy=function(){return bY(a.copy(),b)},bN(e,a)}function bZ(a){return function(b){return b<0?-Math.pow(-b,a):Math.pow(b,a)}}function b$(a,b){function f(b){return d[((c[b]||(c[b]=a.push(b)))-1)%d.length]}function g(b,c){return d3.range(a.length).map(function(a){return b+c*a})}var c,d,e;return f.domain=function(d){if(!arguments.length)return a;a=[],c={};var e=-1,g=d.length,h;while(++e<g)c[h=d[e]]||(c[h]=a.push(h));return f[b.t](b.x,b.p)},f.range=function(a){return arguments.length?(d=a,e=0,b={t:"range",x:a},f):d},f.rangePoints=function(c,h){arguments.length<2&&(h=0);var i=c[0],j=c[1],k=(j-i)/(a.length-1+h);return d=g(a.length<2?(i+j)/2:i+k*h/2,k),e=0,b={t:"rangePoints",x:c,p:h},f},f.rangeBands=function(c,h){arguments.length<2&&(h=0);var i=c[0],j=c[1],k=(j-i)/(a.length+h);return d=g(i+k*h,k),e=k*(1-h),b={t:"rangeBands",x:c,p:h},f},f.rangeRoundBands=function(c,h){arguments.length<2&&(h=0);var i=c[0],j=c[1],k=Math.floor((j-i)/(a.length+h));return d=g(i+Math.round((j-i-(a.length-h)*k)/2),k),e=Math.round(k*(1-h)),b={t:"rangeRoundBands",x:c,p:h},f},f.rangeBand=function(){return e},f.copy=function(){return b$(a,b)},f.domain(a)}function cd(a,b){function d(){var d=0,f=a.length,g=b.length;c=[];while(++d<g)c[d-1]=d3.quantile(a,d/g);return e}function e(a){return isNaN(a=+a)?NaN:b[d3.bisect(c,a)]}var c;return e.domain=function(b){return arguments.length?(a=b.filter(function(a){return!isNaN(a)}).sort(d3.ascending),d()):a},e.range=function(a){return arguments.length?(b=a,d()):b},e.quantiles=function(){return c},e.copy=function(){return cd(a,b)},d()}function ce(a,b,c){function f(b){return c[Math.max(0,Math.min(e,Math.floor(d*(b-a))))]}function g(){return d=c.length/(b-a),e=c.length-1,f}var d,e;return f.domain=function(c){return arguments.length?(a=+c[0],b=+c[c.length-1],g()):[a,b]},f.range=function(a){return arguments.length?(c=a,g()):c},f.copy=function(){return ce(a,b,c)},g()}function ch(a){return a.innerRadius}function ci(a){return a.outerRadius}function cj(a){return a.startAngle}function ck(a){return a.endAngle}function cl(a){function g(d){return d.length<1?null:"M"+e(a(cm(this,d,b,c)),f)}var b=cn,c=co,d="linear",e=cp[d],f=.7;return g.x=function(a){return arguments.length?(b=a,g):b},g.y=function(a){return arguments.length?(c=a,g):c},g.interpolate=function(a){return arguments.length?(e=cp[d=a],g):d},g.tension=function(a){return arguments.length?(f=a,g):f},g}function cm(a,b,c,d){var e=[],f=-1,g=b.length,h=typeof c=="function",i=typeof d=="function",j;if(h&&i)while(++f<g)e.push([c.call(a,j=b[f],f),d.call(a,j,f)]);else if(h)while(++f<g)e.push([c.call(a,b[f],f),d]);else if(i)while(++f<g)e.push([c,d.call(a,b[f],f)]);else while(++f<g)e.push([c,d]);return e}function cn(a){return a[0]}function co(a){return a[1]}function cq(a){var b=0,c=a.length,d=a[0],e=[d[0],",",d[1]];while(++b<c)e.push("L",(d=a[b])[0],",",d[1]);return e.join("")}function cr(a){var b=0,c=a.length,d=a[0],e=[d[0],",",d[1]];while(++b<c)e.push("V",(d=a[b])[1],"H",d[0]);return e.join("")}function cs(a){var b=0,c=a.length,d=a[0],e=[d[0],",",d[1]];while(++b<c)e.push("H",(d=a[b])[0],"V",d[1]);return e.join("")}function ct(a,b){return a.length<4?cq(a):a[1]+cw(a.slice(1,a.length-1),cx(a,b))}function cu(a,b){return a.length<3?cq(a):a[0]+cw((a.push(a[0]),a),cx([a[a.length-2]].concat(a,[a[1]]),b))}function cv(a,b,c){return a.length<3?cq(a):a[0]+cw(a,cx(a,b))}function cw(a,b){if(b.length<1||a.length!=b.length&&a.length!=b.length+2)return cq(a);var c=a.length!=b.length,d="",e=a[0],f=a[1],g=b[0],h=g,i=1;c&&(d+="Q"+(f[0]-g[0]*2/3)+","+(f[1]-g[1]*2/3)+","+f[0]+","+f[1],e=a[1],i=2);if(b.length>1){h=b[1],f=a[i],i++,d+="C"+(e[0]+g[0])+","+(e[1]+g[1])+","+(f[0]-h[0])+","+(f[1]-h[1])+","+f[0]+","+f[1];for(var j=2;j<b.length;j++,i++)f=a[i],h=b[j],d+="S"+(f[0]-h[0])+","+(f[1]-h[1])+","+f[0]+","+f[1]}if(c){var k=a[i];d+="Q"+(f[0]+h[0]*2/3)+","+(f[1]+h[1]*2/3)+","+k[0]+","+k[1]}return d}function cx(a,b){var c=[],d=(1-b)/2,e,f=a[0],g=a[1],h=1,i=a.length;while(++h<i)e=f,f=g,g=a[h],c.push([d*(g[0]-e[0]),d*(g[1]-e[1])]);return c}function cy(a){if(a.length<3)return cq(a);var b=1,c=a.length,d=a[0],e=d[0],f=d[1],g=[e,e,e,(d=a[1])[0]],h=[f,f,f,d[1]],i=[e,",",f];cG(i,g,h);while(++b<c)d=a[b],g.shift(),g.push(d[0]),h.shift(),h.push(d[1]),cG(i,g,h);b=-1;while(++b<2)g.shift(),g.push(d[0]),h.shift(),h.push(d[1]),cG(i,g,h);return i.join("")}function cz(a){if(a.length<4)return cq(a);var b=[],c=-1,d=a.length,e,f=[0],g=[0];while(++c<3)e=a[c],f.push(e[0]),g.push(e[1]);b.push(cC(cF,f)+","+cC(cF,g)),--c;while(++c<d)e=a[c],f.shift(),f.push(e[0]),g.shift(),g.push(e[1]),cG(b,f,g);return b.join("")}function cA(a){var b,c=-1,d=a.length,e=d+4,f,g=[],h=[];while(++c<4)f=a[c%d],g.push(f[0]),h.push(f[1]);b=[cC(cF,g),",",cC(cF,h)],--c;while(++c<e)f=a[c%d],g.shift(),g.push(f[0]),h.shift(),h.push(f[1]),cG(b,g,h);return b.join("")}function cB(a,b){var c=a.length-1,d=a[0][0],e=a[0][1],f=a[c][0]-d,g=a[c][1]-e,h=-1,i,j;while(++h<=c)i=a[h],j=h/c,i[0]=b*i[0]+(1-b)*(d+j*f),i[1]=b*i[1]+(1-b)*(e+j*g);return cy(a)}function cC(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]}function cG(a,b,c){a.push("C",cC(cD,b),",",cC(cD,c),",",cC(cE,b),",",cC(cE,c),",",cC(cF,b),",",cC(cF,c))}function cH(a,b){return(b[1]-a[1])/(b[0]-a[0])}function cI(a){var b=0,c=a.length-1,d=[],e=a[0],f=a[1],g=d[0]=cH(e,f);while(++b<c)d[b]=g+(g=cH(e=f,f=a[b+1]));return d[b]=g,d}function cJ(a){var b=[],c,d,e,f,g=cI(a),h=-1,i=a.length-1;while(++h<i)c=cH(a[h],a[h+1]),Math.abs(c)<1e-6?g[h]=g[h+1]=0:(d=g[h]/c,e=g[h+1]/c,f=d*d+e*e,f>9&&(f=c*3/Math.sqrt(f),g[h]=f*d,g[h+1]=f*e));h=-1;while(++h<=i)f=(a[Math.min(i,h+1)][0]-a[Math.max(0,h-1)][0])/(6*(1+g[h]*g[h])),b.push([f||0,g[h]*f||0]);return b}function cK(a){return a.length<3?cq(a):a[0]+cw(a,cJ(a))}function cL(a){var b,c=-1,d=a.length,e,f;while(++c<d)b=a[c],e=b[0],f=b[1]+cf,b[0]=e*Math.cos(f),b[1]=e*Math.sin(f);return a}function cM(a){function j(f){if(f.length<1)return null;var j=cm(this,f,b,d),k=cm(this,f,b===c?cN(j):c,d===e?cO(j):e);return"M"+g(a(k),i)+"L"+h(a(j.reverse()),i)+"Z"}var b=cn,c=cn,d=0,e=co,f,g,h,i=.7;return j.x=function(a){return arguments.length?(b=c=a,j):c},j.x0=function(a){return arguments.length?(b=a,j):b},j.x1=function(a){return arguments.length?(c=a,j):c},j.y=function(a){return arguments.length?(d=e=a,j):e},j.y0=function(a){return arguments.length?(d=a,j):d},j.y1=function(a){return arguments.length?(e=a,j):e},j.interpolate=function(a){return arguments.length?(g=cp[f=a],h=g.reverse||g,j):f},j.tension=function(a){return arguments.length?(i=a,j):i},j.interpolate("linear")}function cN(a){return function(b,c){return a[c][0]}}function cO(a){return function(b,c){return a[c][1]}}function cP(a){return a.source}function cQ(a){return a.target}function cR(a){return a.radius}function cS(a){return a.startAngle}function cT(a){return a.endAngle}function cU(a){return[a.x,a.y]}function cV(a){return function(){var b=a.apply(this,arguments),c=b[0],d=b[1]+cf;return[c*Math.cos(d),c*Math.sin(d)]}}function cX(a,b){var c=(a.ownerSVGElement||a).createSVGPoint();if(cW<0&&(window.scrollX||window.scrollY)){var d=d3.select(document.body).append("svg:svg").style("position","absolute").style("top",0).style("left",0),e=d[0][0].getScreenCTM();cW=!e.f&&!e.e,d.remove()}return cW?(c.x=b.pageX,c.y=b.pageY):(c.x=b.clientX,c.y=b.clientY),c=c.matrixTransform(a.getScreenCTM().inverse()),[c.x,c.y]}function cY(){return 64}function cZ(){return"circle"}function db(a,b){a.attr("transform",function(a){return"translate("+b(a)+",0)"})}function dc(a,b){a.attr("transform",function(a){return"translate(0,"+b(a)+")"})}function dd(a,b,c){e=[];if(c&&b.length>1){var d=bJ(a.domain()),e,f=-1,g=b.length,h=(b[1]-b[0])/++c,i,j;while(++f<g)for(i=c;--i>0;)(j=+b[f]-i*h)>=d[0]&&e.push(j);for(--f,i=0;++i<c&&(j=+b[f]+i*h)<d[1];)e.push(j)}return e}function dp(a,b){a.select(".extent").attr("x",b[0][0]),a.selectAll(".n,.s,.w,.nw,.sw").attr("x",b[0][0]-2),a.selectAll(".e,.ne,.se").attr("x",b[1][0]-3),a.selectAll(".extent,.n,.s").attr("width",b[1][0]-b[0][0])}function dq(a,b){a.select(".extent").attr("y",b[0][1]),a.selectAll(".n,.e,.w,.nw,.ne").attr("y",b[0][1]-3),a.selectAll(".s,.se,.sw").attr("y",b[1][1]-4),a.selectAll(".extent,.e,.w").attr("height",b[1][1]-b[0][1])}function dr(){d3.event.keyCode==32&&dg&&!dk&&(dm=null,dn[0]-=dj[1][0],dn[1]-=dj[1][1],dk=2,M())}function ds(){d3.event.keyCode==32&&dk==2&&(dn[0]+=dj[1][0],dn[1]+=dj[1][1],dk=0,M())}function dt(){if(dn){var a=d3.svg.mouse(dg),b=d3.select(dg);dk||(d3.event.altKey?(dm||(dm=[(dj[0][0]+dj[1][0])/2,(dj[0][1]+dj[1][1])/2]),dn[0]=dj[+(a[0]<dm[0])][0],dn[1]=dj[+(a[1]<dm[1])][1]):dm=null),dh&&(du(a,dh,0),dp(b,dj)),di&&(du(a,di,1),dq(b,dj)),df("brush")}}function du(a,b,c){var d=bJ(b.range()),e=dn[c],f=dj[1][c]-dj[0][c],g,h;dk&&(d[0]-=e,d[1]-=f+e),g=Math.max(d[0],Math.min(d[1],a[c])),dk?h=(g+=e)+f:(dm&&(e=Math.max(d[0],Math.min(d[1],2*dm[c]-g))),e<g?(h=g,g=e):h=e),dj[0][c]=g,dj[1][c]=h}function dv(){dn&&(dt(),d3.select(dg).selectAll(".resize").style("pointer-events",de.empty()?"none":"all"),df("brushend"),de=df=dg=dh=di=dj=dk=dl=dm=dn=null,M())}function dE(a){var b=d3.event,c=dz.parentNode,d=0,e=0;c&&(c=dF(c),d=c[0]-dB[0],e=c[1]-dB[1],dB=c,dC|=d|e);try{d3.event={dx:d,dy:e},dx[a].apply(dz,dA)}finally{d3.event=b}b.preventDefault()}function dF(a,b){var c=d3.event.changedTouches;return c?d3.svg.touches(a,c)[0]:d3.svg.mouse(a)}function dG(){if(!dz)return;var a=dz.parentNode;if(!a)return dH();dE("drag"),M()}function dH(){if(!dz)return;dE("dragend"),dz=null,dC&&dy===d3.event.target&&(dD=!0,M())}function dI(){dD&&dy===d3.event.target&&(M(),dD=!1,dy=null)}function dW(a){return[a[0]-dO[0],a[1]-dO[1],dO[2]]}function dX(){dJ||(dJ=d3.select("body").append("div").style("visibility","hidden").style("top",0).style("height",0).style("width",0).style("overflow-y","scroll").append("div").style("height","2000px").node().parentNode);var a=d3.event,b;try{dJ.scrollTop=1e3,dJ.dispatchEvent(a),b=1e3-dJ.scrollTop}catch(c){b=a.wheelDelta||-a.detail*5}return b*.005}function dY(){var a=d3.svg.touches(dS),b=-1,c=a.length,d;while(++b<c)dM[(d=a[b]).identifier]=dW(d);return a}function dZ(){var a=d3.svg.touches(dS);switch(a.length){case 1:var b=a[0];eb(dO[2],b,dM[b.identifier]);break;case 2:var c=a[0],d=a[1],e=[(c[0]+d[0])/2,(c[1]+d[1])/2],f=dM[c.identifier],g=dM[d.identifier],h=[(f[0]+g[0])/2,(f[1]+g[1])/2,f[2]];eb(Math.log(d3.event.scale)/Math.LN2+f[2],e,h)}}function d$(){dL=null,dK&&(dU=!0,eb(dO[2],d3.svg.mouse(dS),dK))}function d_(){dK&&(dU&&dR===d3.event.target&&(dV=!0),d$(),dK=null)}function ea(){dV&&dR===d3.event.target&&(d3.event.stopPropagation(),d3.event.preventDefault(),dV=!1,dR=null)}function eb(a,b,c){function l(a,b,c){a.domain(a.range().map(function(f){return a.invert((f-c)*d/e+b)}))}a=ed(a,2);var d=Math.pow(2,dO[2]),e=Math.pow(2,a),f=Math.pow(2,(dO[2]=a)-c[2]),g=dO[0],h=dO[1],i=dO[0]=ed(b[0]-c[0]*f,0,e),j=dO[1]=ed(b[1]-c[1]*f,1,e),k=d3.event;d3.event={scale:e,translate:[i,j],transform:function(a,b){a&&l(a,g,i),b&&l(b,h,j)}};try{dQ.apply(dS,dT)}finally{d3.event=k}k.preventDefault()}function ed(a,b,c){var d=dP[b],e=d[0],f=d[1];return arguments.length===3?Math.max(f*(f===Infinity?-Infinity:1/c-1),Math.min(e===-Infinity?Infinity:e,a/c))*c:Math.max(e,Math.min(f,a))}Date.now||(Date.now=function(){return+(new Date)});try{document.createElement("div").style.setProperty("opacity",0,"")}catch(a){var b=CSSStyleDeclaration.prototype,c=b.setProperty;b.setProperty=function(a,b,d){c.call(this,a,b+"",d)}}d3={version:"2.5.0"};var d=f;try{d(document.documentElement.childNodes)[0].nodeType}catch(g){d=e}var h=[].__proto__?function(a,b){a.__proto__=b}:function(a,b){for(var c in b)a[c]=b[c]};d3.functor=function(a){return typeof a=="function"?a:function(){return a}},d3.rebind=function(a,b){return function(){var c=b.apply(a,arguments);return arguments.length?a:c}},d3.ascending=function(a,b){return a<b?-1:a>b?1:a>=b?0:NaN},d3.descending=function(a,b){return b<a?-1:b>a?1:b>=a?0:NaN},d3.mean=function(a,b){var c=a.length,d,e=0,f=-1,g=0;if(arguments.length===1)while(++f<c)j(d=a[f])&&(e+=(d-e)/++g);else while(++f<c)j(d=b.call(a,a[f],f))&&(e+=(d-e)/++g);return g?e:undefined},d3.median=function(a,b){return arguments.length>1&&(a=a.map(b)),a=a.filter(j),a.length?d3.quantile(a.sort(d3.ascending),.5):undefined},d3.min=function(a,b){var c=-1,d=a.length,e,f;if(arguments.length===1){while(++c<d&&((e=a[c])==null||e!=e))e=undefined;while(++c<d)(f=a[c])!=null&&e>f&&(e=f)}else{while(++c<d&&((e=b.call(a,a[c],c))==null||e!=e))e=undefined;while(++c<d)(f=b.call(a,a[c],c))!=null&&e>f&&(e=f)}return e},d3.max=function(a,b){var c=-1,d=a.length,e,f;if(arguments.length===1){while(++c<d&&((e=a[c])==null||e!=e))e=undefined;while(++c<d)(f=a[c])!=null&&f>e&&(e=f)}else{while(++c<d&&((e=b.call(a,a[c],c))==null||e!=e))e=undefined;while(++c<d)(f=b.call(a,a[c],c))!=null&&f>e&&(e=f)}return e},d3.extent=function(a,b){var c=-1,d=a.length,e,f,g;if(arguments.length===1){while(++c<d&&((e=g=a[c])==null||e!=e))e=g=undefined;while(++c<d)(f=a[c])!=null&&(e>f&&(e=f),g<f&&(g=f))}else{while(++c<d&&((e=g=b.call(a,a[c],c))==null||e!=e))e=undefined;while(++c<d)(f=b.call(a,a[c],c))!=null&&(e>f&&(e=f),g<f&&(g=f))}return[e,g]},d3.random={normal:function(a,b){return arguments.length<2&&(b=1),arguments.length<1&&(a=0),function(){var c,d,e;do c=Math.random()*2-1,d=Math.random()*2-1,e=c*c+d*d;while(!e||e>1);return a+b*c*Math.sqrt(-2*Math.log(e)/e)}}},d3.sum=function(a,b){var c=0,d=a.length,e,f=-1;if(arguments.length===1)while(++f<d)isNaN(e=+a[f])||(c+=e);else while(++f<d)isNaN(e=+b.call(a,a[f],f))||(c+=e);return c},d3.quantile=function(a,b){var c=(a.length-1)*b+1,d=Math.floor(c),e=a[d-1],f=c-d;return f?e+f*(a[d]-e):e},d3.zip=function(){if(!(e=arguments.length))return[];for(var a=-1,b=d3.min(arguments,k),c=new Array(b);++a<b;)for(var d=-1,e,f=c[a]=new Array(e);++d<e;)f[d]=arguments[d][a];return c},d3.bisectLeft=function(a,b,c,d){arguments.length<3&&(c=0),arguments.length<4&&(d=a.length);while(c<d){var e=c+d>>1;a[e]<b?c=e+1:d=e}return c},d3.bisect=d3.bisectRight=function(a,b,c,d){arguments.length<3&&(c=0),arguments.length<4&&(d=a.length);while(c<d){var e=c+d>>1;b<a[e]?d=e:c=e+1}return c},d3.first=function(a,b){var c=0,d=a.length,e=a[0],f;arguments.length===1&&(b=d3.ascending);while(++c<d)b.call(a,e,f=a[c])>0&&(e=f);return e},d3.last=function(a,b){var c=0,d=a.length,e=a[0],f;arguments.length===1&&(b=d3.ascending);while(++c<d)b.call(a,e,f=a[c])<=0&&(e=f);return e},d3.nest=function(){function f(c,g){if(g>=b.length)return e?e.call(a,c):d?c.sort(d):c;var h=-1,i=c.length,j=b[g++],k,l,m={};while(++h<i)(k=j(l=c[h]))in m?m[k].push(l):m[k]=[l];for(k in m)m[k]=f(m[k],g);return m}function g(a,d){if(d>=b.length)return a;var e=[],f=c[d++],h;for(h in a)e.push({key:h,values:g(a[h],d)});return f&&e.sort(function(a,b){return f(a.key,b.key)}),e}var a={},b=[],c=[],d,e;return a.map=function(a){return f(a,0)},a.entries=function(a){return g(f(a,0),0)},a.key=function(c){return b.push(c),a},a.sortKeys=function(d){return c[b.length-1]=d,a},a.sortValues=function(b){return d=b,a},a.rollup=function(b){return e=b,a},a},d3.keys=function(a){var b=[];for(var c in a)b.push(c);return b},d3.values=function(a){var b=[];for(var c in a)b.push(a[c]);return b},d3.entries=function(a){var b=[];for(var c in a)b.push({key:c,value:a[c]});return b},d3.permute=function(a,b){var c=[],d=-1,e=b.length;while(++d<e)c[d]=a[b[d]];return c},d3.merge=function(a){return Array.prototype.concat.apply([],a)},d3.split=function(a,b){var c=[],d=[],e,f=-1,g=a.length;arguments.length<2&&(b=l);while(++f<g)b.call(d,e=a[f],f)?d=[]:(d.length||c.push(d),d.push(e));return c},d3.range=function(a,b,c){arguments.length<3&&(c=1,arguments.length<2&&(b=a,a=0));if((b-a)/c==Infinity)throw new Error("infinite range");var d=[],e=-1,f;if(c<0)while((f=a+c*++e)>b)d.push(f);else while((f=a+c*++e)<b)d.push(f);return d},d3.requote=function(a){return a.replace(n,"\\$&")};var n=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;d3.round=function(a,b){return b?Math.round(a*Math.pow(10,b))*Math.pow(10,-b):Math.round(a)},d3.xhr=function(a,b,c){var d=new XMLHttpRequest;arguments.length<3?c=b:b&&d.overrideMimeType&&d.overrideMimeType(b),d.open("GET",a,!0),d.onreadystatechange=function(){d.readyState===4&&c(d.status<300?d:null)},d.send(null)},d3.text=function(a,b,c){function d(a){c(a&&a.responseText)}arguments.length<3&&(c=b,b=null),d3.xhr(a,b,d)},d3.json=function(a,b){d3.text(a,"application/json",function(a){b(a?JSON.parse(a):null)})},d3.html=function(a,b){d3.text(a,"text/html",function(a){if(a!=null){var c=document.createRange();c.selectNode(document.body),a=c.createContextualFragment(a)}b(a)})},d3.xml=function(a,b,c){function d(a){c(a&&a.responseXML)}arguments.length<3&&(c=b,b=null),d3.xhr(a,b,d)},d3.ns={prefix:{svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},qualify:function(a){var b=a.indexOf(":");return b<0?a:{space:d3.ns.prefix[a.substring(0,b)],local:a.substring(b+1)}}},d3.dispatch=function(){var a=new o,b=-1,c=arguments.length;while(++b<c)a[arguments[b]]=p();return a},o.prototype.on=function(a,b){var c=a.indexOf("."),d="";c>0&&(d=a.substring(c+1),a=a.substring(0,c)),this[a].on(d,b)},d3.format=function(a){var b=q.exec(a),c=b[1]||" ",d=b[3]||"",e=b[5],f=+b[6],g=b[7],h=b[8],i=b[9],j=1,k="",l=!1;h&&(h=+h.substring(1)),e&&(c="0",g&&(f-=Math.floor((f-1)/4)));switch(i){case"n":g=!0,i="g";break;case"%":j=100,k="%",i="f";break;case"p":j=100,k="%",i="r";break;case"d":l=!0,h=0;break;case"s":j=-1,i="r"}return i=="r"&&!h&&(i="g"),i=r[i]||t,function(a){if(l&&a%1)return"";var b=a<0&&(a=-a)?"−":d;if(j<0){var m=d3.formatPrefix(a,h);a*=m.scale,k=m.symbol}else a*=j;a=i(a,h);if(e){var n=a.length+b.length;n<f&&(a=(new Array(f-n+1)).join(c)+a),g&&(a=u(a)),a=b+a}else{g&&(a=u(a)),a=b+a;var n=a.length;n<f&&(a=(new Array(f-n+1)).join(c)+a)}return a+k}};var q=/(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/,r={g:function(a,b){return a.toPrecision(b)},e:function(a,b){return a.toExponential(b)},f:function(a,b){return a.toFixed(b)},r:function(a,b){return d3.round(a,b=s(a,b)).toFixed(Math.max(0,Math.min(20,b)))}},v=["y","z","a","f","p","n","μ","m","","k","M","G","T","P","E","Z","Y"].map(w);d3.formatPrefix=function(a,b){var c=0;return a&&(a<0&&(a*=-1),b&&(a=d3.round(a,s(a,b))),c=1+Math.floor(1e-12+Math.log(a)/Math.LN10),c=Math.max(-24,Math.min(24,Math.floor((c<=0?c+1:c-1)/3)*3))),v[8+c/3]};var x=F(2),y=F(3),z={linear:function(){return E},poly:F,quad:function(){return x},cubic:function(){return y},sin:function(){return G},exp:function(){return H},circle:function(){return I},elastic:J,back:K,bounce:function(){return L}},A={"in":function(a){return a},out:C,"in-out":D,"out-in":function(a){return D(C(a))}};d3.ease=function(a){var b=a.indexOf("-"),c=b>=0?a.substring(0,b):a,d=b>=0?a.substring(b+1):"in";return B(A[d](z[c].apply(null,Array.prototype.slice.call(arguments,1))))},d3.event=null,d3.interpolate=function(a,b){var c=d3.interpolators.length,d;while(--c>=0&&!(d=d3.interpolators[c](a,b)));return d},d3.interpolateNumber=function(a,b){return b-=a,function(c){return a+b*c}},d3.interpolateRound=function(a,b){return b-=a,function(c){return Math.round(a+b*c)}},d3.interpolateString=function(a,b){var c,d,e,f=0,g=0,h=[],i=[],j,k;N.lastIndex=0;for(d=0;c=N.exec(b);++d)c.index&&h.push(b.substring(f,g=c.index)),i.push({i:h.length,x:c[0]}),h.push(null),f=N.lastIndex;f<b.length&&h.push(b.substring(f));for(d=0,j=i.length;(c=N.exec(a))&&d<j;++d){k=i[d];if(k.x==c[0]){if(k.i)if(h[k.i+1]==null){h[k.i-1]+=k.x,h.splice(k.i,1);for(e=d+1;e<j;++e)i[e].i--}else{h[k.i-1]+=k.x+h[k.i+1],h.splice(k.i,2);for(e=d+1;e<j;++e)i[e].i-=2}else if(h[k.i+1]==null)h[k.i]=k.x;else{h[k.i]=k.x+h[k.i+1],h.splice(k.i+1,1);for(e=d+1;e<j;++e)i[e].i--}i.splice(d,1),j--,d--}else k.x=d3.interpolateNumber(parseFloat(c[0]),parseFloat(k.x))}while(d<j)k=i.pop(),h[k.i+1]==null?h[k.i]=k.x:(h[k.i]=k.x+h[k.i+1],h.splice(k.i+1,1)),j--;return h.length===1?h[0]==null?i[0].x:function(){return b}:function(a){for(d=0;d<j;++d)h[(k=i[d]).i]=k.x(a);return h.join("")}},d3.interpolateTransform=function(a,b){return d3.interpolateString(d3.transform(a)+"",d3.transform(b)+"")},d3.interpolateRgb=function(a,b){a=d3.rgb(a),b=d3.rgb(b);var c=a.r,d=a.g,e=a.b,f=b.r-c,g=b.g-d,h=b.b-e;return function(a){return"#"+T(Math.round(c+f*a))+T(Math.round(d+g*a))+T(Math.round(e+h*a))}},d3.interpolateHsl=function(a,b){a=d3.hsl(a),b=d3.hsl(b);var c=a.h,d=a.s,e=a.l,f=b.h-c,g=b.s-d,h=b.l-e;return function(a){return _(c+f*a,d+g*a,e+h*a).toString()}},d3.interpolateArray=function(a,b){var c=[],d=[],e=a.length,f=b.length,g=Math.min(a.length,b.length),h;for(h=0;h<g;++h)c.push(d3.interpolate(a[h],b[h]));for(;h<e;++h)d[h]=a[h];for(;h<f;++h)d[h]=b[h];return function(a){for(h=0;h<g;++h)d[h]=c[h](a);return d}},d3.interpolateObject=function(a,b){var c={},d={},e;for(e in a)e in b?c[e]=O(e)(a[e],b[e]):d[e]=a[e];for(e in b)e in a||(d[e]=b[e]);return function(a){for(e in c)d[e]=c[e](a);return d}};var N=/[-+]?(?:\d*\.?\d+)(?:[eE][-+]?\d+)?/g;d3.interpolators=[d3.interpolateObject,function(a,b){return b instanceof Array&&d3.interpolateArray(a,b)},function(a,b){return typeof b=="string"&&d3.interpolateString(a+"",b)},function(a,b){return(typeof b=="string"?b in X||/^(#|rgb\(|hsl\()/.test(b):b instanceof S||b instanceof $)&&d3.interpolateRgb(a+"",b)},function(a,b){return typeof b=="number"&&d3.interpolateNumber(+a,b)}],d3.rgb=function(a,b,c){return arguments.length===1?a instanceof S?R(a.r,a.g,a.b):U(""+a,R,_):R(~~a,~~b,~~c)},S.prototype.brighter=function(a){a=Math.pow(.7,arguments.length?a:1);var b=this.r,c=this.g,d=this.b,e=30;return!b&&!c&&!d?R(e,e,e):(b&&b<e&&(b=e),c&&c<e&&(c=e),d&&d<e&&(d=e),R(Math.min(255,Math.floor(b/a)),Math.min(255,Math.floor(c/a)),Math.min(255,Math.floor(d/a))))},S.prototype.darker=function(a){return a=Math.pow(.7,arguments.length?a:1),R(Math.floor(a*this.r),Math.floor(a*this.g),Math.floor(a*this.b))},S.prototype.hsl=function(){return V(this.r,this.g,this.b)},S.prototype.toString=function(){return"#"+T(this.r)+T(this.g)+T(this.b)};var X={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080"
+,green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};for(var Y in X)X[Y]=U(X[Y],R,_);d3.hsl=function(a,b,c){return arguments.length===1?a instanceof $?Z(a.h,a.s,a.l):U(""+a,V,Z):Z(+a,+b,+c)},$.prototype.brighter=function(a){return a=Math.pow(.7,arguments.length?a:1),Z(this.h,this.s,this.l/a)},$.prototype.darker=function(a){return a=Math.pow(.7,arguments.length?a:1),Z(this.h,this.s,a*this.l)},$.prototype.rgb=function(){return _(this.h,this.s,this.l)},$.prototype.toString=function(){return this.rgb().toString()};var bb=function(a,b){return b.querySelector(a)},bc=function(a,b){return b.querySelectorAll(a)};typeof Sizzle=="function"&&(bb=function(a,b){return Sizzle(a,b)[0]},bc=function(a,b){return Sizzle.uniqueSort(Sizzle(a,b))});var bd=[];d3.selection=function(){return bk},d3.selection.prototype=bd,bd.select=function(a){var b=[],c,d,e,f;typeof a!="function"&&(a=be(a));for(var g=-1,h=this.length;++g<h;){b.push(c=[]),c.parentNode=(e=this[g]).parentNode;for(var i=-1,j=e.length;++i<j;)(f=e[i])?(c.push(d=a.call(f,f.__data__,i)),d&&"__data__"in f&&(d.__data__=f.__data__)):c.push(null)}return ba(b)},bd.selectAll=function(a){var b=[],c,e;typeof a!="function"&&(a=bf(a));for(var f=-1,g=this.length;++f<g;)for(var h=this[f],i=-1,j=h.length;++i<j;)if(e=h[i])b.push(c=d(a.call(e,e.__data__,i))),c.parentNode=e;return ba(b)},bd.attr=function(a,b){function d(){this.removeAttribute(a)}function e(){this.removeAttributeNS(a.space,a.local)}function f(){this.setAttribute(a,b)}function g(){this.setAttributeNS(a.space,a.local,b)}function h(){var c=b.apply(this,arguments);c==null?this.removeAttribute(a):this.setAttribute(a,c)}function i(){var c=b.apply(this,arguments);c==null?this.removeAttributeNS(a.space,a.local):this.setAttributeNS(a.space,a.local,c)}a=d3.ns.qualify(a);if(arguments.length<2){var c=this.node();return a.local?c.getAttributeNS(a.space,a.local):c.getAttribute(a)}return this.each(b==null?a.local?e:d:typeof b=="function"?a.local?i:h:a.local?g:f)},bd.classed=function(a,b){var c=a.split(bg),d=c.length,e=-1;if(arguments.length>1){while(++e<d)bh.call(this,c[e],b);return this}while(++e<d)if(!bh.call(this,c[e]))return!1;return!0};var bg=/\s+/g;bd.style=function(a,b,c){function d(){this.style.removeProperty(a)}function e(){this.style.setProperty(a,b,c)}function f(){var d=b.apply(this,arguments);d==null?this.style.removeProperty(a):this.style.setProperty(a,d,c)}return arguments.length<3&&(c=""),arguments.length<2?window.getComputedStyle(this.node(),null).getPropertyValue(a):this.each(b==null?d:typeof b=="function"?f:e)},bd.property=function(a,b){function c(){delete this[a]}function d(){this[a]=b}function e(){var c=b.apply(this,arguments);c==null?delete this[a]:this[a]=c}return arguments.length<2?this.node()[a]:this.each(b==null?c:typeof b=="function"?e:d)},bd.datum=function(a,b){return arguments.length<2?this.property("__data__")[a]:this.property("__data__")[a]=b;},bd.text=function(a){return arguments.length<1?this.node().textContent:this.each(typeof a=="function"?function(){this.textContent=a.apply(this,arguments)}:function(){this.textContent=a})},bd.html=function(a){return arguments.length<1?this.node().innerHTML:this.each(typeof a=="function"?function(){this.innerHTML=a.apply(this,arguments)}:function(){this.innerHTML=a})},bd.append=function(a){function b(){return this.appendChild(document.createElement(a))}function c(){return this.appendChild(document.createElementNS(a.space,a.local))}return a=d3.ns.qualify(a),this.select(a.local?c:b)},bd.insert=function(a,b){function c(){return this.insertBefore(document.createElement(a),bb(b,this))}function d(){return this.insertBefore(document.createElementNS(a.space,a.local),bb(b,this))}return a=d3.ns.qualify(a),this.select(a.local?d:c)},bd.remove=function(){return this.each(function(){var a=this.parentNode;a&&a.removeChild(this)})},bd.data=function(a,b){function f(a,f){var g,h=a.length,i=f.length,j=Math.min(h,i),k=Math.max(h,i),l=[],m=[],n=[],o,p;if(b){var q={},r=[],s,t=f.length;for(g=-1;++g<h;)s=b.call(o=a[g],o.__data__,g),s in q?n[t++]=o:q[s]=o,r.push(s);for(g=-1;++g<i;)o=q[s=b.call(f,p=f[g],g)],o?(o.__data__=p,l[g]=o,m[g]=n[g]=null):(m[g]=bi(p),l[g]=n[g]=null),delete q[s];for(g=-1;++g<h;)r[g]in q&&(n[g]=a[g])}else{for(g=-1;++g<j;)o=a[g],p=f[g],o?(o.__data__=p,l[g]=o,m[g]=n[g]=null):(m[g]=bi(p),l[g]=n[g]=null);for(;g<i;++g)m[g]=bi(f[g]),l[g]=n[g]=null;for(;g<k;++g)n[g]=a[g],m[g]=l[g]=null}m.update=l,m.parentNode=l.parentNode=n.parentNode=a.parentNode,c.push(m),d.push(l),e.push(n)}var c=[],d=[],e=[],g=-1,h=this.length,i;if(typeof a=="function")while(++g<h)f(i=this[g],a.call(i,i.parentNode.__data__,g));else while(++g<h)f(i=this[g],a);var j=ba(d);return j.enter=function(){return bl(c)},j.exit=function(){return ba(e)},j},bd.filter=function(a){var b=[],c,d,e;for(var f=0,g=this.length;f<g;f++){b.push(c=[]),c.parentNode=(d=this[f]).parentNode;for(var h=0,i=d.length;h<i;h++)(e=d[h])&&a.call(e,e.__data__,h)&&c.push(e)}return ba(b)},bd.map=function(a){return this.each(function(){this.__data__=a.apply(this,arguments)})},bd.sort=function(a){a=bj.apply(this,arguments);for(var b=0,c=this.length;b<c;b++)for(var d=this[b].sort(a),e=1,f=d.length,g=d[0];e<f;e++){var h=d[e];h&&(g&&g.parentNode.insertBefore(h,g.nextSibling),g=h)}return this},bd.on=function(a,b,c){arguments.length<3&&(c=!1);var d="__on"+a,e=a.indexOf(".");return e>0&&(a=a.substring(0,e)),arguments.length<2?(e=this.node()[d])&&e._:this.each(function(e,f){function h(a){var c=d3.event;d3.event=a;try{b.call(g,g.__data__,f)}finally{d3.event=c}}var g=this;g[d]&&g.removeEventListener(a,g[d],c),b&&g.addEventListener(a,g[d]=h,c),h._=b})},bd.each=function(a){for(var b=-1,c=this.length;++b<c;)for(var d=this[b],e=-1,f=d.length;++e<f;){var g=d[e];g&&a.call(g,g.__data__,e,b)}return this},bd.call=function(a){return a.apply(this,(arguments[0]=this,arguments)),this},bd.empty=function(){return!this.node()},bd.node=function(a){for(var b=0,c=this.length;b<c;b++)for(var d=this[b],e=0,f=d.length;e<f;e++){var g=d[e];if(g)return g}return null},bd.transition=function(){var a=[],b,c;for(var d=-1,e=this.length;++d<e;){a.push(b=[]);for(var f=this[d],g=-1,h=f.length;++g<h;)b.push((c=f[g])?{node:c,delay:0,duration:250}:null)}return bn(a,bt||++bs,Date.now())};var bk=ba([[document]]);bk[0].parentNode=document.documentElement,d3.select=function(a){return typeof a=="string"?bk.select(a):ba([[a]])},d3.selectAll=function(a){return typeof a=="string"?bk.selectAll(a):ba([d(a)])};var bm=[];bm.append=bd.append,bm.insert=bd.insert,bm.empty=bd.empty,bm.node=bd.node,bm.select=function(a){var b=[],c,d,e,f,g;for(var h=-1,i=this.length;++h<i;){e=(f=this[h]).update,b.push(c=[]),c.parentNode=f.parentNode;for(var j=-1,k=f.length;++j<k;)(g=f[j])?(c.push(e[j]=d=a.call(f.parentNode,g.__data__,j)),d.__data__=g.__data__):c.push(null)}return ba(b)};var bo={},br=[],bs=0,bt=0,bu=d3.ease("cubic-in-out");br.call=bd.call,d3.transition=function(){return bk.transition()},d3.transition.prototype=br,br.select=function(a){var b=[],c,d,e;typeof a!="function"&&(a=be(a));for(var f=-1,g=this.length;++f<g;){b.push(c=[]);for(var h=this[f],i=-1,j=h.length;++i<j;)(e=h[i])&&(d=a.call(e.node,e.node.__data__,i))?("__data__"in e.node&&(d.__data__=e.node.__data__),c.push({node:d,delay:e.delay,duration:e.duration})):c.push(null)}return bn(b,this.id,this.time).ease(this.ease())},br.selectAll=function(a){var b=[],c,d,e;typeof a!="function"&&(a=bf(a));for(var f=-1,g=this.length;++f<g;)for(var h=this[f],i=-1,j=h.length;++i<j;)if(e=h[i]){d=a.call(e.node,e.node.__data__,i),b.push(c=[]);for(var k=-1,l=d.length;++k<l;)c.push({node:d[k],delay:e.delay,duration:e.duration})}return bn(b,this.id,this.time).ease(this.ease())},br.attr=function(a,b){return this.attrTween(a,bq(a,b))},br.attrTween=function(a,b){function d(a,d){var e=b.call(this,a,d,this.getAttribute(c));return e===bo?(this.removeAttribute(c),null):e&&function(a){this.setAttribute(c,e(a))}}function e(a,d){var e=b.call(this,a,d,this.getAttributeNS(c.space,c.local));return e===bo?(this.removeAttributeNS(c.space,c.local),null):e&&function(a){this.setAttributeNS(c.space,c.local,e(a))}}var c=d3.ns.qualify(a);return this.tween("attr."+a,c.local?e:d)},br.style=function(a,b,c){return arguments.length<3&&(c=""),this.styleTween(a,bq(a,b),c)},br.styleTween=function(a,b,c){return arguments.length<3&&(c=""),this.tween("style."+a,function(d,e){var f=b.call(this,d,e,window.getComputedStyle(this,null).getPropertyValue(a));return f===bo?(this.style.removeProperty(a),null):f&&function(b){this.style.setProperty(a,f(b),c)}})},br.text=function(a){return this.tween("text",function(b,c){this.textContent=typeof a=="function"?a.call(this,b,c):a})},br.remove=function(){return this.each("end",function(){var a;!this.__transition__&&(a=this.parentNode)&&a.removeChild(this)})},br.delay=function(a){var b=this;return b.each(typeof a=="function"?function(c,d,e){b[e][d].delay=+a.apply(this,arguments)}:(a=+a,function(c,d,e){b[e][d].delay=a}))},br.duration=function(a){var b=this;return b.each(typeof a=="function"?function(c,d,e){b[e][d].duration=+a.apply(this,arguments)}:(a=+a,function(c,d,e){b[e][d].duration=a}))},br.transition=function(){return this.select(i)};var bw=null,bx,by;d3.timer=function(a,b,c){var d=!1,e,f=bw;if(arguments.length<3){if(arguments.length<2)b=0;else if(!isFinite(b))return;c=Date.now()}while(f){if(f.callback===a){f.then=c,f.delay=b,d=!0;break}e=f,f=f.next}d||(bw={callback:a,then:c,delay:b,next:bw}),bx||(by=clearTimeout(by),bx=1,bB(bz))},d3.timer.flush=function(){var a,b=Date.now(),c=bw;while(c)a=b-c.then,c.delay||(c.flush=c.callback(a)),c=c.next;bA()};var bB=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){setTimeout(a,17)};d3.transform=function(a){return bG.setAttribute("transform",a),new bC(bG.transform.baseVal.consolidate().matrix)},bC.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var bG=document.createElementNS(d3.ns.prefix.svg,"g"),bH=180/Math.PI;d3.scale={},d3.scale.linear=function(){return bM([0,1],[0,1],d3.interpolate,!1)},d3.scale.log=function(){return bU(d3.scale.linear(),bW)};var bV=d3.format("e");bW.pow=function(a){return Math.pow(10,a)},bX.pow=function(a){return-Math.pow(10,-a)},d3.scale.pow=function(){return bY(d3.scale.linear(),1)},d3.scale.sqrt=function(){return d3.scale.pow().exponent(.5)},d3.scale.ordinal=function(){return b$([],{t:"range",x:[]})},d3.scale.category10=function(){return d3.scale.ordinal().range(b_)},d3.scale.category20=function(){return d3.scale.ordinal().range(ca)},d3.scale.category20b=function(){return d3.scale.ordinal().range(cb)},d3.scale.category20c=function(){return d3.scale.ordinal().range(cc)};var b_=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],ca=["#1f77b4","#aec7e8","#ff7f0e","#ffbb78","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5","#8c564b","#c49c94","#e377c2","#f7b6d2","#7f7f7f","#c7c7c7","#bcbd22","#dbdb8d","#17becf","#9edae5"],cb=["#393b79","#5254a3","#6b6ecf","#9c9ede","#637939","#8ca252","#b5cf6b","#cedb9c","#8c6d31","#bd9e39","#e7ba52","#e7cb94","#843c39","#ad494a","#d6616b","#e7969c","#7b4173","#a55194","#ce6dbd","#de9ed6"],cc=["#3182bd","#6baed6","#9ecae1","#c6dbef","#e6550d","#fd8d3c","#fdae6b","#fdd0a2","#31a354","#74c476","#a1d99b","#c7e9c0","#756bb1","#9e9ac8","#bcbddc","#dadaeb","#636363","#969696","#bdbdbd","#d9d9d9"];d3.scale.quantile=function(){return cd([],[])},d3.scale.quantize=function(){return ce(0,1,[0,1])},d3.svg={},d3.svg.arc=function(){function e(){var e=a.apply(this,arguments),f=b.apply(this,arguments),g=c.apply(this,arguments)+cf,h=d.apply(this,arguments)+cf,i=(h<g&&(i=g,g=h,h=i),h-g),j=i<Math.PI?"0":"1",k=Math.cos(g),l=Math.sin(g),m=Math.cos(h),n=Math.sin(h);return i>=cg?e?"M0,"+f+"A"+f+","+f+" 0 1,1 0,"+ -f+"A"+f+","+f+" 0 1,1 0,"+f+"M0,"+e+"A"+e+","+e+" 0 1,0 0,"+ -e+"A"+e+","+e+" 0 1,0 0,"+e+"Z":"M0,"+f+"A"+f+","+f+" 0 1,1 0,"+ -f+"A"+f+","+f+" 0 1,1 0,"+f+"Z":e?"M"+f*k+","+f*l+"A"+f+","+f+" 0 "+j+",1 "+f*m+","+f*n+"L"+e*m+","+e*n+"A"+e+","+e+" 0 "+j+",0 "+e*k+","+e*l+"Z":"M"+f*k+","+f*l+"A"+f+","+f+" 0 "+j+",1 "+f*m+","+f*n+"L0,0"+"Z"}var a=ch,b=ci,c=cj,d=ck;return e.innerRadius=function(b){return arguments.length?(a=d3.functor(b),e):a},e.outerRadius=function(a){return arguments.length?(b=d3.functor(a),e):b},e.startAngle=function(a){return arguments.length?(c=d3.functor(a),e):c},e.endAngle=function(a){return arguments.length?(d=d3.functor(a),e):d},e.centroid=function(){var e=(a.apply(this,arguments)+b.apply(this,arguments))/2,f=(c.apply(this,arguments)+d.apply(this,arguments))/2+cf;return[Math.cos(f)*e,Math.sin(f)*e]},e};var cf=-Math.PI/2,cg=2*Math.PI-1e-6;d3.svg.line=function(){return cl(Object)};var cp={linear:cq,"step-before":cr,"step-after":cs,basis:cy,"basis-open":cz,"basis-closed":cA,bundle:cB,cardinal:cv,"cardinal-open":ct,"cardinal-closed":cu,monotone:cK},cD=[0,2/3,1/3,0],cE=[0,1/3,2/3,0],cF=[0,1/6,2/3,1/6];d3.svg.line.radial=function(){var a=cl(cL);return a.radius=a.x,delete a.x,a.angle=a.y,delete a.y,a},cr.reverse=cs,cs.reverse=cr,d3.svg.area=function(){return cM(Object)},d3.svg.area.radial=function(){var a=cM(cL);return a.radius=a.x,delete a.x,a.innerRadius=a.x0,delete a.x0,a.outerRadius=a.x1,delete a.x1,a.angle=a.y,delete a.y,a.startAngle=a.y0,delete a.y0,a.endAngle=a.y1,delete a.y1,a},d3.svg.chord=function(){function f(c,d){var e=g(this,a,c,d),f=g(this,b,c,d);return"M"+e.p0+i(e.r,e.p1)+(h(e,f)?j(e.r,e.p1,e.r,e.p0):j(e.r,e.p1,f.r,f.p0)+i(f.r,f.p1)+j(f.r,f.p1,e.r,e.p0))+"Z"}function g(a,b,f,g){var h=b.call(a,f,g),i=c.call(a,h,g),j=d.call(a,h,g)+cf,k=e.call(a,h,g)+cf;return{r:i,a0:j,a1:k,p0:[i*Math.cos(j),i*Math.sin(j)],p1:[i*Math.cos(k),i*Math.sin(k)]}}function h(a,b){return a.a0==b.a0&&a.a1==b.a1}function i(a,b){return"A"+a+","+a+" 0 0,1 "+b}function j(a,b,c,d){return"Q 0,0 "+d}var a=cP,b=cQ,c=cR,d=cj,e=ck;return f.radius=function(a){return arguments.length?(c=d3.functor(a),f):c},f.source=function(b){return arguments.length?(a=d3.functor(b),f):a},f.target=function(a){return arguments.length?(b=d3.functor(a),f):b},f.startAngle=function(a){return arguments.length?(d=d3.functor(a),f):d},f.endAngle=function(a){return arguments.length?(e=d3.functor(a),f):e},f},d3.svg.diagonal=function(){function d(d,e){var f=a.call(this,d,e),g=b.call(this,d,e),h=(f.y+g.y)/2,i=[f,{x:f.x,y:h},{x:g.x,y:h},g];return i=i.map(c),"M"+i[0]+"C"+i[1]+" "+i[2]+" "+i[3]}var a=cP,b=cQ,c=cU;return d.source=function(b){return arguments.length?(a=d3.functor(b),d):a},d.target=function(a){return arguments.length?(b=d3.functor(a),d):b},d.projection=function(a){return arguments.length?(c=a,d):c},d},d3.svg.diagonal.radial=function(){var a=d3.svg.diagonal(),b=cU,c=a.projection;return a.projection=function(a){return arguments.length?c(cV(b=a)):b},a},d3.svg.mouse=function(a){return cX(a,d3.event)};var cW=/WebKit/.test(navigator.userAgent)?-1:0;d3.svg.touches=function(a,b){return arguments.length<2&&(b=d3.event.touches),b?d(b).map(function(b){var c=cX(a,b);return c.identifier=b.identifier,c}):[]},d3.svg.symbol=function(){function c(c,d){return(c$[a.call(this,c,d)]||c$.circle)(b.call(this,c,d))}var a=cZ,b=cY;return c.type=function(b){return arguments.length?(a=d3.functor(b),c):a},c.size=function(a){return arguments.length?(b=d3.functor(a),c):b},c};var c$={circle:function(a){var b=Math.sqrt(a/Math.PI);return"M0,"+b+"A"+b+","+b+" 0 1,1 0,"+ -b+"A"+b+","+b+" 0 1,1 0,"+b+"Z"},cross:function(a){var b=Math.sqrt(a/5)/2;return"M"+ -3*b+","+ -b+"H"+ -b+"V"+ -3*b+"H"+b+"V"+ -b+"H"+3*b+"V"+b+"H"+b+"V"+3*b+"H"+ -b+"V"+b+"H"+ -3*b+"Z"},diamond:function(a){var b=Math.sqrt(a/(2*da)),c=b*da;return"M0,"+ -b+"L"+c+",0"+" 0,"+b+" "+ -c+",0"+"Z"},square:function(a){var b=Math.sqrt(a)/2;return"M"+ -b+","+ -b+"L"+b+","+ -b+" "+b+","+b+" "+ -b+","+b+"Z"},"triangle-down":function(a){var b=Math.sqrt(a/c_),c=b*c_/2;return"M0,"+c+"L"+b+","+ -c+" "+ -b+","+ -c+"Z"},"triangle-up":function(a){var b=Math.sqrt(a/c_),c=b*c_/2;return"M0,"+ -c+"L"+b+","+c+" "+ -b+","+c+"Z"}};d3.svg.symbolTypes=d3.keys(c$);var c_=Math.sqrt(3),da=Math.tan(30*Math.PI/180);d3.svg.axis=function(){function j(j){j.each(function(k,l,m){var n=d3.select(this),o=j.delay?function(a){var b=bt;try{return bt=j.id,a.transition().delay(j[m][l].delay).duration(j[m][l].duration).ease(j.ease())}finally{bt=b}}:Object,p=a.ticks.apply(a,g),q=h==null?a.tickFormat.apply(a,g):h,r=dd(a,p,i),s=n.selectAll(".minor").data(r,String),t=s.enter().insert("svg:line","g").attr("class","tick minor").style("opacity",1e-6),u=o(s.exit()).style("opacity",1e-6).remove(),v=o(s).style("opacity",1),w=n.selectAll("g").data(p,String),x=w.enter().insert("svg:g","path").style("opacity",1e-6),y=o(w.exit()).style("opacity",1e-6).remove(),z=o(w).style("opacity",1),A,B=bJ(a.range()),C=n.selectAll(".domain").data([0]),D=C.enter().append("svg:path").attr("class","domain"),E=o(C),F=this.__chart__||a;this.__chart__=a.copy(),x.append("svg:line").attr("class","tick"),x.append("svg:text"),z.select("text").text(q);switch(b){case"bottom":A=db,v.attr("x2",0).attr("y2",d),z.select("line").attr("x2",0).attr("y2",c),z.select("text").attr("x",0).attr("y",Math.max(c,0)+f).attr("dy",".71em").attr("text-anchor","middle"),E.attr("d","M"+B[0]+","+e+"V0H"+B[1]+"V"+e);break;case"top":A=db,v.attr("x2",0).attr("y2",-d),z.select("line").attr("x2",0).attr("y2",-c),z.select("text").attr("x",0).attr("y",-(Math.max(c,0)+f)).attr("dy","0em").attr("text-anchor","middle"),E.attr("d","M"+B[0]+","+ -e+"V0H"+B[1]+"V"+ -e);break;case"left":A=dc,v.attr("x2",-d).attr("y2",0),z.select("line").attr("x2",-c).attr("y2",0),z.select("text").attr("x",-(Math.max(c,0)+f)).attr("y",0).attr("dy",".32em").attr("text-anchor","end"),E.attr("d","M"+ -e+","+B[0]+"H0V"+B[1]+"H"+ -e);break;case"right":A=dc,v.attr("x2",d).attr("y2",0),z.select("line").attr("x2",c).attr("y2",0),z.select("text").attr("x",Math.max(c,0)+f).attr("y",0).attr("dy",".32em").attr("text-anchor","start"),E.attr("d","M"+e+","+B[0]+"H0V"+B[1]+"H"+e)}x.call(A,F),z.call(A,a),y.call(A,a),t.call(A,F),v.call(A,a),u.call(A,a)})}var a=d3.scale.linear(),b="bottom",c=6,d=6,e=6,f=3,g=[10],h,i=0;return j.scale=function(b){return arguments.length?(a=b,j):a},j.orient=function(a){return arguments.length?(b=a,j):b},j.ticks=function(){return arguments.length?(g=arguments,j):g},j.tickFormat=function(a){return arguments.length?(h=a,j):h},j.tickSize=function(a,b,f){if(!arguments.length)return c;var g=arguments.length-1;return c=+a,d=g>1?+b:c,e=g>0?+arguments[g]:c,j},j.tickPadding=function(a){return arguments.length?(f=+a,j):f},j.tickSubdivide=function(a){return arguments.length?(i=+a,j):i},j},d3.svg.brush=function(){function e(a){var g=b&&c?["n","e","s","w","nw","ne","se","sw"]:b?["e","w"]:c?["n","s"]:[];a.each(function(){var a=d3.select(this).on("mousedown.brush",f),h=a.selectAll(".background").data([,]),i=a.selectAll(".extent").data([,]),j=a.selectAll(".resize").data(g,String),k;h.enter().append("svg:rect").attr("class","background").style("visibility","hidden").style("pointer-events","all").style("cursor","crosshair"),i.enter().append("svg:rect").attr("class","extent").style("cursor","move"),j.enter().append("svg:rect").attr("class",function(a){return"resize "+a}).attr("width",6).attr("height",6).style("visibility","hidden").style("pointer-events",e.empty()?"none":"all").style("cursor",function(a){return dw[a]}),j.exit().remove(),b&&(k=bJ(b.range()),h.attr("x",k[0]).attr("width",k[1]-k[0]),dp(a,d)),c&&(k=bJ(c.range()),h.attr("y",k[0]).attr("height",k[1]-k[0]),dq(a,d))})}function f(){var a=d3.select(d3.event.target);de=e,dg=this,dj=d,dn=d3.svg.mouse(dg),(dk=a.classed("extent"))?(dn[0]=d[0][0]-dn[0],dn[1]=d[0][1]-dn[1]):a.classed("resize")?(dl=d3.event.target.__data__,dn[0]=d[+/w$/.test(dl)][0],dn[1]=d[+/^n/.test(dl)][1]):d3.event.altKey&&(dm=dn.slice()),dh=!/^(n|s)$/.test(dl)&&b,di=!/^(e|w)$/.test(dl)&&c,df=g(this,arguments),df("brushstart"),dt(),M()}function g(b,c){return function(d){var f=d3.event;try{d3.event={type:d,target:e},a[d].apply(b,c)}finally{d3.event=f}}}var a=d3.dispatch("brushstart","brush","brushend"),b,c,d=[[0,0],[0,0]];return e.x=function(a){return arguments.length?(b=a,e):b},e.y=function(a){return arguments.length?(c=a,e):c},e.extent=function(a){var f,g,h,i,j;return arguments.length?(b&&(f=a[0],g=a[1],c&&(f=f[0],g=g[0]),f=b(f),g=b(g),g<f&&(j=f,f=g,g=j),d[0][0]=f,d[1][0]=g),c&&(h=a[0],i=a[1],b&&(h=h[1],i=i[1]),h=c(h),i=c(i),i<h&&(j=h,h=i,i=j),d[0][1]=h,d[1][1]=i),e):(b&&(f=b.invert(d[0][0]),g=b.invert(d[1][0]),g<f&&(j=f,f=g,g=j)),c&&(h=c.invert(d[0][1]),i=c.invert(d[1][1]),i<h&&(j=h,h=i,i=j)),b&&c?[[f,h],[g,i]]:b?[f,g]:c&&[h,i])},e.clear=function(){return d[0][0]=d[0][1]=d[1][0]=d[1][1]=0,e},e.empty=function(){return b&&d[0][0]===d[1][0]||c&&d[0][1]===d[1][1]},e.on=function(b,c){return a.on(b,c),e},d3.select(window).on("mousemove.brush",dt).on("mouseup.brush",dv).on("keydown.brush",dr).on("keyup.brush",ds),e};var de,df,dg,dh,di,dj,dk,dl,dm,dn,dw={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"};d3.behavior={},d3.behavior.drag=function(){function b(){this.on("mousedown.drag",d).on("touchstart.drag",d),d3.select(window).on("mousemove.drag",dG).on("touchmove.drag",dG).on("mouseup.drag",dH,!0).on("touchend.drag",dH,!0).on("click.drag",dI,!0)}function c(){dx=a,dy=d3.event.target,dB=dF((dz=this).parentNode),dC=0,dA=arguments}function d(){c.apply(this,arguments),dE("dragstart")}var a=d3.dispatch("drag","dragstart","dragend");return b.on=function(c,d){return a.on(c,d),b},b};var dx,dy,dz,dA,dB,dC,dD;d3.behavior.zoom=function(){function d(){this.on("mousedown.zoom",f).on("mousewheel.zoom",g).on("DOMMouseScroll.zoom",g).on("dblclick.zoom",h).on("touchstart.zoom",i),d3.select(window).on("mousemove.zoom",d$).on("mouseup.zoom",d_).on("touchmove.zoom",dZ).on("touchend.zoom",dY).on("click.zoom",ea,!0)}function e(){dO=a,dP=c,dQ=b.zoom,dR=d3.event.target,dS=this,dT=arguments}function f(){e.apply(this,arguments),dK=dW(d3.svg.mouse(dS)),dU=!1,d3.event.preventDefault(),window.focus()}function g(){e.apply(this,arguments),dL||(dL=dW(d3.svg.mouse(dS))),eb(dX()+a[2],d3.svg.mouse(dS),dL)}function h(){e.apply(this,arguments);var b=d3.svg.mouse(dS);eb(d3.event.shiftKey?Math.ceil(a[2]-1):Math.floor(a[2]+1),b,dW(b))}function i(){e.apply(this,arguments);var b=dY(),c,d=Date.now();b.length===1&&d-dN<300&&eb(1+Math.floor(a[2]),c=b[0],dM[c.identifier]),dN=d}var a=[0,0,0],b=d3.dispatch("zoom"),c=ec;return d.extent=function(a){return arguments.length?(c=a==null?ec:a,d):c},d.on=function(a,c){return b.on(a,c),d},d};var dJ,dK,dL,dM={},dN=0,dO,dP,dQ,dR,dS,dT,dU,dV,ec=[[-Infinity,Infinity],[-Infinity,Infinity],[-Infinity,Infinity]]})();
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/jquery-1.6.4.min.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,4 @@
+/*! jQuery v1.6.4 http://jquery.com/ | http://jquery.org/license */
+(function(a,b){function cu(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cr(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cq(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cp(){cn=b}function co(){setTimeout(cp,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bZ(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bY(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bA.test(a)?d(a,e):bY(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)bY(a+"["+e+"]",b[e],c,d);else d(a,b)}function bX(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bW(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bP,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bW(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bW(a,c,d,e,"*",g));return l}function bV(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bL),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function by(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bt:bu;if(d>0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bv(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bl(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bd,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bk(a){f.nodeName(a,"input")?bj(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bj)}function bj(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bi(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bh(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bg(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bf(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function V(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(Q.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function U(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function M(a,b){return(a&&a!=="*"?a+".":"")+b.replace(y,"`").replace(z,"&")}function L(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(w,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function J(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function D(){return!0}function C(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function K(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(K,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.4",length:0,size:function(){return this.length},toArray:function(){return G.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?F.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),B.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(G.apply(this,arguments),"slice",G.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:F,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;B.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:H?function(a){return a==null?"":H.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?F.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(!b)return-1;if(I)return I.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=G.call(arguments,2),g=function(){return a.apply(c,f.concat(G.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){J["[object "+b+"]"]=b.toLowerCase()}),A=e.uaMatch(z),A.browser&&(e.browser[A.browser]=!0,e.browser.version=A.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?C=function(){c.removeEventListener("DOMContentLoaded",C,!1),e.ready()}:c.attachEvent&&(C=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",C),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g+"With"](this===b?d:this,[h])}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;a.setAttribute("className","t"),a.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-1000px",top:"-1000px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i=f.expando,j=typeof c=="string",k=a.nodeType,l=k?f.cache:a,m=k?a[f.expando]:a[f.expando]&&f.expando;if((!m||e&&m&&l[m]&&!l[m][i])&&j&&d===b)return;m||(k?a[f.expando]=m=++f.uuid:m=f.expando),l[m]||(l[m]={},k||(l[m].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?l[m][i]=f.extend(l[m][i],c):l[m]=f.extend(l[m],c);g=l[m],e&&(g[i]||(g[i]={}),g=g[i]),d!==b&&(g[f.camelCase(c)]=d);if(c==="events"&&!g[c])return g[i]&&g[i].events;j?(h=g[c],h==null&&(h=g[f.camelCase(c)])):h=g;return h}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e=f.expando,g=a.nodeType,h=g?f.cache:a,i=g?a[f.expando]:f.expando;if(!h[i])return;if(b){d=c?h[i][e]:h[i];if(d){d[b]||(b=f.camelCase(b)),delete d[b];if(!l(d))return}}if(c){delete h[i][e];if(!l(h[i]))return}var j=h[i][e];f.support.deleteExpando||!h.setInterval?delete h[i]:h[i]=null,j?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=j):g&&(f.support.deleteExpando?delete a[f.expando]:a.removeAttribute?a.removeAttribute(f.expando):a[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u,v;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(o);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(o);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(n," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=v:u&&(i=u)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.attr(a,b,""),a.removeAttribute(b),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(u&&f.nodeName(a,"button"))return u.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(u&&f.nodeName(a,"button"))return u.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==null?g:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabIndex=f.propHooks.tabIndex,v={get:function(a,c){var d;return f.prop(a,c)===!0||(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(u=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var w=/\.(.*)$/,x=/^(?:textarea|input|select)$/i,y=/\./g,z=/ /g,A=/[^\w\s.|`]/g,B=function(a){return a.replace(A,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=C;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=C);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),B).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete 
+t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,M(a.origType,a.selector),f.extend({},a,{handler:L,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,M(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?D:C):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=D;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=D;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=D,this.stopPropagation()},isDefaultPrevented:C,isPropagationStopped:C,isImmediatePropagationStopped:C};var E=function(a){var b=a.relatedTarget,c=!1,d=a.type;a.type=a.data,b!==this&&(b&&(c=f.contains(this,b)),c||(f.event.handle.apply(this,arguments),a.type=d))},F=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?F:E,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?F:E)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="submit"||c==="image")&&f(b).closest("form").length&&J("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&J("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var G,H=function(a){var b=f.nodeName(a,"input")?a.type:"",c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},I=function(c){var d=c.target,e,g;if(!!x.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=H(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:I,beforedeactivate:I,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&I.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&I.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",H(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in G)f.event.add(this,c+".specialChange",G[c]);return x.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return x.test(this.nodeName)}},G=f.event.special.change.filters,G.focus=G.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var K={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||C,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=w.exec(h),k="",j&&(k=j[0],h=h.replace(w,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,K[h]?(a.push(K[h]+k),h=h+k):h=(K[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+M(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+M(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var N=/Until$/,O=/^(?:parents|prevUntil|prevAll)/,P=/,/,Q=/^.[^:#\[\.,]*$/,R=Array.prototype.slice,S=f.expr.match.POS,T={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(V(this,a,!1),"not",a)},filter:function(a){return this.pushStack(V(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=S.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=S.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(U(c[0])||U(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=R.call(arguments);N.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!T[a]?f.unique(e):e,(this.length>1||P.test(d))&&O.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|object|embed|option|style)/i,bb=/checked\s*(?:[^=]|=\s*.checked.)/i,bc=/\/(java|ecma)script/i,bd=/^\s*<!(?:\[CDATA\[|\-\-)/,be={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};be.optgroup=be.option,be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,f.support.htmlSerialize||(be._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!be[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bb.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bf(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bl)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i;b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!ba.test(a[0])&&(f.support.checkClone||!bb.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean
+(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bh(a,d),e=bi(a),g=bi(d);for(h=0;e[h];++h)g[h]&&bh(e[h],g[h])}if(b){bg(a,d);if(c){e=bi(a),g=bi(d);for(h=0;e[h];++h)bg(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=be[l]||be._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bk(k[i]);else bk(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||bc.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bm=/alpha\([^)]*\)/i,bn=/opacity=([^)]*)/,bo=/([A-Z]|^ms)/g,bp=/^-?\d+(?:px)?$/i,bq=/^-?\d/,br=/^([\-+])=([\-+.\de]+)/,bs={position:"absolute",visibility:"hidden",display:"block"},bt=["Left","Right"],bu=["Top","Bottom"],bv,bw,bx;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bv(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=br.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bv)return bv(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return by(a,b,d);f.swap(a,bs,function(){e=by(a,b,d)});return e}},set:function(a,b){if(!bp.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bn.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bm,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bm.test(g)?g.replace(bm,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bv(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bw=function(a,c){var d,e,g;c=c.replace(bo,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bx=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bp.test(d)&&bq.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bv=bw||bx,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bz=/%20/g,bA=/\[\]$/,bB=/\r?\n/g,bC=/#.*$/,bD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bE=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bF=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bG=/^(?:GET|HEAD)$/,bH=/^\/\//,bI=/\?/,bJ=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bK=/^(?:select|textarea)/i,bL=/\s+/,bM=/([?&])_=[^&]*/,bN=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bO=f.fn.load,bP={},bQ={},bR,bS,bT=["*/"]+["*"];try{bR=e.href}catch(bU){bR=c.createElement("a"),bR.href="",bR=bR.href}bS=bN.exec(bR.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bO)return bO.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bJ,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bK.test(this.nodeName)||bE.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bB,"\r\n")}}):{name:b.name,value:c.replace(bB,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?bX(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),bX(a,b);return a},ajaxSettings:{url:bR,isLocal:bF.test(bS[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bT},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bV(bP),ajaxTransport:bV(bQ),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?bZ(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=b$(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bD.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bC,"").replace(bH,bS[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bL),d.crossDomain==null&&(r=bN.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bS[1]&&r[2]==bS[2]&&(r[3]||(r[1]==="http:"?80:443))==(bS[3]||(bS[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bW(bP,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bG.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bI.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bM,"$1_="+x);d.url=y+(y===d.url?(bI.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bT+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bW(bQ,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){s<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bz,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cq("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cr(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cq("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cq("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cr(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cj.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=ck.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cq("show",1),slideUp:cq("hide",1),slideToggle:cq("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return d.step(a)}var d=this,e=f.fx;this.startTime=cn||co(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&f.timers.push(g)&&!cl&&(cl=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cn||co(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cl),cl=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cs=/^t(?:able|d|h)$/i,ct=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cu(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cs.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=ct.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!ct.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cu(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cu(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNaN(j)?i:j}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/jquery-ui-1.8.16.custom.min.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,117 @@
+/*!
+ * jQuery UI 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI
+ */
+(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.16",
+keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({propAttr:c.fn.prop||c.fn.attr,_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=
+this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,
+"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":
+"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,
+outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a,
+"tabindex"),d=isNaN(b);return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&
+a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&
+c.ui.isOverAxis(b,e,i)}})}})(jQuery);
+;/*!
+ * jQuery UI Widget 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Widget
+ */
+(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)try{b(d).triggerHandler("remove")}catch(e){}k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(d){}});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=
+function(h){return!!b.data(h,a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):
+d;if(e&&d.charAt(0)==="_")return h;e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=
+b.extend(true,{},this.options,this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+
+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",
+c);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
+;/*!
+ * jQuery UI Mouse 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Mouse
+ *
+ * Depends:
+ *	jquery.ui.widget.js
+ */
+(function(b){var d=false;b(document).mouseup(function(){d=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(c){return a._mouseDown(c)}).bind("click."+this.widgetName,function(c){if(true===b.data(c.target,a.widgetName+".preventClickEvent")){b.removeData(c.target,a.widgetName+".preventClickEvent");c.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+
+this.widgetName)},_mouseDown:function(a){if(!d){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var c=this,f=a.which==1,g=typeof this.options.cancel=="string"&&a.target.nodeName?b(a.target).closest(this.options.cancel).length:false;if(!f||g||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=
+this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();return true}}true===b.data(a.target,this.widgetName+".preventClickEvent")&&b.removeData(a.target,this.widgetName+".preventClickEvent");this._mouseMoveDelegate=function(e){return c._mouseMove(e)};this._mouseUpDelegate=function(e){return c._mouseUp(e)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return d=true}},_mouseMove:function(a){if(b.browser.msie&&
+!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=
+false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
+;/*
+ * jQuery UI Position 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Position
+ */
+(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY,
+left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+=
+k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-=
+m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left=
+d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+=
+a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b),
+g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery);
+;/*
+ * jQuery UI Draggable 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Draggables
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.widget.js
+ */
+(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper==
+"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b=
+this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;if(b.iframeFix)d(b.iframeFix===true?"iframe":b.iframeFix).each(function(){d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")});return true},_mouseStart:function(a){var b=this.options;
+this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});
+this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);d.ui.ddmanager&&d.ui.ddmanager.dragStart(this,a);return true},
+_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=
+false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,
+10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},_mouseUp:function(a){this.options.iframeFix===true&&d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)});d.ui.ddmanager&&d.ui.ddmanager.dragStop(this,a);return d.ui.mouse.prototype._mouseUp.call(this,a)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||
+!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone().removeAttr("id"):this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&
+a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=
+this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),
+10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),
+10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[a.containment=="document"?0:d(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,a.containment=="document"?0:d(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,
+(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){a=d(a.containment);var b=a[0];if(b){a.offset();var c=d(b).css("overflow")!=
+"hidden";this.containment=[(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0),(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0),(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),
+10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom];this.relative_container=a}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+
+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&
+!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,h=a.pageY;if(this.originalPosition){var g;if(this.containment){if(this.relative_container){g=this.relative_container.offset();g=[this.containment[0]+g.left,this.containment[1]+g.top,this.containment[2]+g.left,this.containment[3]+g.top]}else g=this.containment;if(a.pageX-this.offset.click.left<g[0])e=g[0]+this.offset.click.left;
+if(a.pageY-this.offset.click.top<g[1])h=g[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>g[2])e=g[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>g[3])h=g[3]+this.offset.click.top}if(b.grid){h=b.grid[1]?this.originalPageY+Math.round((h-this.originalPageY)/b.grid[1])*b.grid[1]:this.originalPageY;h=g?!(h-this.offset.click.top<g[1]||h-this.offset.click.top>g[3])?h:!(h-this.offset.click.top<g[1])?h-b.grid[1]:h+b.grid[1]:h;e=b.grid[0]?this.originalPageX+Math.round((e-this.originalPageX)/
+b.grid[0])*b.grid[0]:this.originalPageX;e=g?!(e-this.offset.click.left<g[0]||e-this.offset.click.left>g[2])?e:!(e-this.offset.click.left<g[0])?e-b.grid[0]:e+b.grid[0]:e}}return{top:h-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop()),left:e-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&d.browser.version<
+526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(a,b,c){c=c||this._uiHash();d.ui.plugin.call(this,a,[b,c]);if(a=="drag")this.positionAbs=this._convertPositionTo("absolute");return d.Widget.prototype._trigger.call(this,a,b,
+c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});d.extend(d.ui.draggable,{version:"1.8.16"});d.ui.plugin.add("draggable","connectToSortable",{start:function(a,b){var c=d(this).data("draggable"),f=c.options,e=d.extend({},b,{item:c.element});c.sortables=[];d(f.connectToSortable).each(function(){var h=d.data(this,"sortable");if(h&&!h.options.disabled){c.sortables.push({instance:h,shouldRevert:h.options.revert});
+h.refreshPositions();h._trigger("activate",a,e)}})},stop:function(a,b){var c=d(this).data("draggable"),f=d.extend({},b,{item:c.element});d.each(c.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;c.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(a);this.instance.options.helper=this.instance.options._helper;c.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval=
+false;this.instance._trigger("deactivate",a,f)}})},drag:function(a,b){var c=d(this).data("draggable"),f=this;d.each(c.sortables,function(){this.instance.positionAbs=c.positionAbs;this.instance.helperProportions=c.helperProportions;this.instance.offset.click=c.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=d(f).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item",true);
+this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return b.helper[0]};a.target=this.instance.currentItem[0];this.instance._mouseCapture(a,true);this.instance._mouseStart(a,true,true);this.instance.offset.click.top=c.offset.click.top;this.instance.offset.click.left=c.offset.click.left;this.instance.offset.parent.left-=c.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=c.offset.parent.top-this.instance.offset.parent.top;
+c._trigger("toSortable",a);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&this.instance._mouseDrag(a)}else if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",a,this.instance._uiHash(this.instance));this.instance._mouseStop(a,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&&
+this.instance.placeholder.remove();c._trigger("fromSortable",a);c.dropped=false}})}});d.ui.plugin.add("draggable","cursor",{start:function(){var a=d("body"),b=d(this).data("draggable").options;if(a.css("cursor"))b._cursor=a.css("cursor");a.css("cursor",b.cursor)},stop:function(){var a=d(this).data("draggable").options;a._cursor&&d("body").css("cursor",a._cursor)}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("opacity"))b._opacity=
+a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!=
+"x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop+c.scrollSpeed;else if(a.pageY-b.overflowOffset.top<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop-c.scrollSpeed;if(!c.axis||c.axis!="y")if(b.overflowOffset.left+b.scrollParent[0].offsetWidth-a.pageX<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft+c.scrollSpeed;else if(a.pageX-b.overflowOffset.left<
+c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(a.pageY-d(document).scrollTop()<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()-c.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(a.pageX-d(document).scrollLeft()<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()-
+c.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()+c.scrollSpeed)}f!==false&&d.ui.ddmanager&&!c.dropBehaviour&&d.ui.ddmanager.prepareOffsets(b,a)}});d.ui.plugin.add("draggable","snap",{start:function(){var a=d(this).data("draggable"),b=a.options;a.snapElements=[];d(b.snap.constructor!=String?b.snap.items||":data(draggable)":b.snap).each(function(){var c=d(this),f=c.offset();this!=a.element[0]&&a.snapElements.push({item:this,
+width:c.outerWidth(),height:c.outerHeight(),top:f.top,left:f.left})})},drag:function(a,b){for(var c=d(this).data("draggable"),f=c.options,e=f.snapTolerance,h=b.offset.left,g=h+c.helperProportions.width,n=b.offset.top,o=n+c.helperProportions.height,i=c.snapElements.length-1;i>=0;i--){var j=c.snapElements[i].left,l=j+c.snapElements[i].width,k=c.snapElements[i].top,m=k+c.snapElements[i].height;if(j-e<h&&h<l+e&&k-e<n&&n<m+e||j-e<h&&h<l+e&&k-e<o&&o<m+e||j-e<g&&g<l+e&&k-e<n&&n<m+e||j-e<g&&g<l+e&&k-e<o&&
+o<m+e){if(f.snapMode!="inner"){var p=Math.abs(k-o)<=e,q=Math.abs(m-n)<=e,r=Math.abs(j-g)<=e,s=Math.abs(l-h)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:k-c.helperProportions.height,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:m,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:j-c.helperProportions.width}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:l}).left-c.margins.left}var t=
+p||q||r||s;if(f.snapMode!="outer"){p=Math.abs(k-n)<=e;q=Math.abs(m-o)<=e;r=Math.abs(j-h)<=e;s=Math.abs(l-g)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:k,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:m-c.helperProportions.height,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:j}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:l-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[i].snapping&&
+(p||q||r||s||t))c.options.snap.snap&&c.options.snap.snap.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[i].item}));c.snapElements[i].snapping=p||q||r||s||t}else{c.snapElements[i].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[i].item}));c.snapElements[i].snapping=false}}}});d.ui.plugin.add("draggable","stack",{start:function(){var a=d(this).data("draggable").options;a=d.makeArray(d(a.stack)).sort(function(c,f){return(parseInt(d(c).css("zIndex"),
+10)||0)-(parseInt(d(f).css("zIndex"),10)||0)});if(a.length){var b=parseInt(a[0].style.zIndex)||0;d(a).each(function(c){this.style.zIndex=b+c});this[0].style.zIndex=b+a.length}}});d.ui.plugin.add("draggable","zIndex",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("zIndex"))b._zIndex=a.css("zIndex");a.css("zIndex",b.zIndex)},stop:function(a,b){a=d(this).data("draggable").options;a._zIndex&&d(b.helper).css("zIndex",a._zIndex)}})})(jQuery);
+;
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/nco/cartographie.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,801 @@
+function Carte(parametres, articles, links) {
+
+	var object = this;
+	
+	this.parametres = {
+		// Module dimensions and caracteristics
+		width: 1440,
+		height: 800,
+		top: 50,
+		left: -240,
+		name: null,
+		boxID: "box",
+		selectorID: "carto",
+		canvasID: "canvas",
+		info: "infos",
+		
+		couleurs: null,
+		relations: null,
+		
+		// How to deal with the data
+		isPositions: false,
+		
+		charge: -30,
+		gravity: .13,
+		theta: 3,
+		
+		// Node rendering
+		nodeSizeInterval: [3, 15],
+		log: false,
+		exp: false,
+		layerStyle: {
+			opacity: 0.6
+		},
+		handle_len_rate: 2.2,
+		maxDistance: 35,
+		
+		scaleInterval: [0.5, 10],
+		
+		infobulleHtml: function(node) {
+			return node.titre + "<p>cluster: " + node.group +"</p>";
+		},
+		
+		activerZoom: true,
+		activerNodeZoom: true,
+		activerInfobulle: true,
+		zoomNode: false,
+		logZoomNode: false,
+		logZoomNodeParameter: 2
+	};
+	
+	this.beginDate = new Date(); 
+	this.etendre(parametres);
+	
+	if (null==this.parametres.name) {
+		this.parametres.name = this.parametres.selectorID;
+	}
+	
+	//création du contenant sur la page, si inexistant
+	if (null == (document.getElementById(this.parametres.boxID))) {
+		d3.select('.content').append('div')
+			.attr("id", this.parametres.boxID)
+			.classed("gallery", true)
+			.style("position", "absolute")
+			.style("border", "1 px dashed");
+	}
+	
+	d3.select('#' + this.parametres.boxID)
+		.style("width", this.parametres.width)
+		.style("height", this.parametres.height)
+		.style("position", "absolute")
+		.style("top", this.parametres.top)
+		.style("left", this.parametres.left)
+		.style("overflow", "hidden")
+		.style('z-index', 0);
+	
+	
+	if (null == (document.getElementById(this.parametres.selectorID))) {
+		d3.select('.gallery').append('div')
+			.attr("id", this.parametres.selectorID);
+	}
+	
+	d3.select('#' + this.parametres.selectorID)
+		.attr("width", this.parametres.width)
+		.attr("height", this.parametres.height)
+		.style("position", "absolute")
+		.style('z-index', 2);
+	
+	// Create drag interaction with the module
+	this.drag = d3.behavior.drag()
+	    .on("dragstart", function(d, i) {object.dragstart(d, i, object);})
+	    .on("drag", object.dragmove)
+	    .on("dragend", function(d, i) {object.dragend(d, i, object);});
+		   
+	this.static = false;
+    
+    if (this.parametres.activerNodeZoom) {
+    		this.nodeMouseover = function(node) { 
+    			var scale = object.getScale(object.rect);
+				object.grow(node, scale); 
+			};
+			
+			this.nodeMouseout = function(node) {
+				var radius = object.radius(node.datum("scaledPoids"));
+				object.shrink(radius, node); 
+			};
+    }
+    
+    if (this.parametres.activerInfobulle) {
+    	
+		this.nodeClick = function(d) { 
+			object.highlight(d); 
+		};
+		
+		this.infoClick = function(d) { 
+			object.blur(); 
+		};
+    }	
+	
+	//création de l'infobulle, si inexistante
+	if (null == (this.infoBulle = d3.select('#' + this.parametres.info)[0][0])) {
+		this.infoBulle = d3.select('#' + this.parametres.selectorID).append('div')
+			.attr("id", this.parametres.info)
+			.style("top", this.parametres.height)
+			.style("opacity", 0)
+			.style("z-index", 1);
+	}
+	
+	if (null!=this.parametres.relations) {
+		this.parametres.relations.add(
+				this.parametres.name + ".infobulle", this.infoBulle)
+			.click(this.infoClick);
+	}
+	else {
+		this.infoBulle.on("click", this.infoClick);
+	}
+	
+	
+	//création du canvas sur la page, si inexistant
+	if (null == (this.canvas = document.getElementById(this.parametres.canvasID))) {
+		d3.select('.gallery').insert('canvas', '#' + this.parametres.selectorID)
+			.attr("id", this.parametres.canvasID)
+			.attr("resize", false);
+		this.canvas = document.getElementById(this.parametres.canvasID);
+	}
+	d3.select('#' + this.parametres.canvasID)
+		.attr("width", d3.select('#' + this.parametres.selectorID).attr("width"))
+		.attr("height", d3.select('#' + this.parametres.selectorID).attr("height"))
+		.style("position", "absolute")
+		.style("z-index", 1);
+	
+	this.mouse = {};
+	this.isDown = false;
+	this.drag2 = false;
+	
+	this.svg = d3.select('#' + this.parametres.selectorID).append('svg')
+		.attr("width", this.parametres.width)
+		.attr("height", this.parametres.height)
+		.on("mousedown", function() {object.mouseDown(event);})
+		.on("mousemove", function() {object.mouseMove(event);})
+		.on("mouseup", function() {object.mouseUp(event);});
+		
+	paper.setup(this.canvas);
+	paper.view.viewSize = new paper.Size(object.parametres.width, object.parametres.height);
+	
+	this.clusters = articles.clusters;
+		
+	//génération d'une palette de couleurs
+	if (null == this.parametres.couleurs) {
+		//this.parametres.couleurs = this.selectColors(this.clusters.length);
+		this.parametres.couleurs = new Couleurs(this.clusters.length);
+	}
+	
+	console.log("Environnement OK.");
+		
+	this.data = {};
+	this.zones = [];	
+	
+	if (this.parametres.isPositions) {
+		// Use directly data
+		this.data.nodes = this.generateNodes(articles, this.parametres.isPositions);
+		this.length = articles.nbItems;
+		this.display();
+		
+	}
+	else {
+		//initialisation du Force Directed Graph
+		this.data.nodes = this.generateNodes(articles, this.parametres.isPositions);
+		this.data.links = this.generateLinks(links, this.data.nodes);
+	
+		this.force = d3.layout.force()
+			.charge(this.parametres.charge)    //-20  
+			.nodes(this.data.nodes)
+			.links(this.data.links)
+			.linkDistance(function(link) {return link.linkDistance;}) //20
+			.linkStrength(function(link) {return link.linkStrength;})
+			.size([this.parametres.width, this.parametres.height])
+			.gravity(this.parametres.gravity) //.1
+			.theta(this.parametres.theta)
+			.start();
+			
+		console.log("Graphe en cours de stabilisation . . .");
+		
+		this.force.on("tick", function() {
+			console.log("Stabilisation OK.");
+			object.display();
+		});
+	
+	}	
+};	
+
+
+		
+Carte.prototype = {
+	constructor: Carte,
+		
+	//gestion des paramètres
+	etendre: function(parametres) {
+		if (null==parametres || "object"!=typeof(parametres)) {
+			return;
+		}
+		
+		for (var cle in parametres) {
+			this.parametres[cle] = parametres[cle];
+		}
+	},
+	
+	display: function () {
+		
+		this.showNodes();
+		if (this.parametres.activerZoom) {
+			this.activateZoom();
+		}
+		
+		paper.setup(this.canvas);
+		paper.view.viewSize = new paper.Size(
+				this.parametres.width, this.parametres.height);
+		this.createBackground();
+	},
+	
+	activateZoom: function() {
+		this.rect = this.svg.selectAll("rect")
+		    .data([{
+		    	x: this.parametres.width*(1 - this.parametres.scaleInterval[0])/(this.parametres.scaleInterval[1] - this.parametres.scaleInterval[0]),
+		    	y: 0
+		    }])
+			.enter().append("rect")
+			.attr("x", function(d) { return d.x; })
+			.attr("y", function(d) { return d.y; })
+		    .attr("width", 15)
+		    .attr("height", 15)
+		    .style("stroke", "black")
+		    .style("fill", "#00f")
+		    .style("z-index", 2)
+			.call(this.drag);
+		
+		if (null!=this.parametres.relations) {
+			this.parametres.relations.add(
+					this.parametres.name + ".zoomButton", this.rect);
+		}
+	},
+	
+	//génération d'une palette de couleurs
+	selectColors: function(nbClusters) {
+		var colors = colorbrewer;
+		var sets = ["BrBG", "PiYG", "PRGn", "PuOr", "RdBu", "RdYlBu", "RdYlGn"];
+		var selectorID, finalColors = [];
+		
+		while (finalColors.length < nbClusters) {
+			selectorID = 	Math.floor(Math.random()*7);
+			selectorID2 = Math.floor(Math.random()*11);
+			color = new paper.RgbColor(colors[sets[selectorID]][11][selectorID2]);
+			
+			var available = true;
+			for (var i = 0; i < finalColors.length; i++) {
+				if (Math.floor(finalColors[i].hue) == Math.floor(color.hue)) {
+					available = false;
+				}
+			}
+			
+			if (color.brightness < 0.9 && available) {
+				finalColors.push(color.toCssString());
+			}
+		}
+		
+		return finalColors;
+	},
+	
+	//génération des noeuds √† partir du json
+	generateNodes: function(items, isPos) {
+		
+		var nodes = [];
+		var poidsMin = 100000, poidsMax = 0;
+		
+		// on crée les noeuds
+		for (var i = 0 ; i<items.nbItems; ++i) {
+			nodes.push({index: i, titre: "Titre numero " + i, weigth: 1});
+		}
+		
+		// on donne à chaque noeud son poids et couleurs
+		// on traite identiquement core et agregated
+		// pour les clusters
+		var nbClusters = items.clusters.length;
+		for (var i =0; i< nbClusters; ++i) {
+			var cluster = items.clusters[i], 
+				clusterId = cluster.id,
+				groups = [];
+			if (cluster.items) {
+				groups.push("items");
+			}
+			else {
+				groups.push("core");
+				groups.push("agregated");
+			}
+			for (var a in groups) {
+				var group = cluster[groups[a]];
+				for (var j =0; j<group.length; ++j) {
+					var item = group[j], poids = parseInt(item.value);
+					nodes[item.key]["poids"] = poids;
+					nodes[item.key]["scaledPoids"] = poids;
+					nodes[item.key]["group"] = clusterId;
+					nodes[item.key]["key"] = item.key;
+					if (isPos) {
+						nodes[item.key]["x"] = parseFloat(item.x);
+						nodes[item.key]["y"] = parseFloat(item.y);
+					}
+					else {
+						nodes[item.key]["x"] = this.parametres.width/2*(1 + Math.cos(i*Math.Pi/nbClusters));
+						nodes[item.key]["y"] = this.parametres.height/2*(1 + Math.sin(i*Math.Pi/nbClusters));
+					}
+					if (null != this.parametres.relations) {
+						this.parametres.relations.add(this.parametres.selectorID + ".node." + item.key, nodes[item.key]);
+					}
+					if (poids>poidsMax) {
+						poidsMax = poids;
+					}
+					else if (poids<poidsMin) {
+						poidsMin = poids;
+					}
+				}
+			}
+		}
+		
+		this.poidsMin = poidsMin;
+		this.poidsMax = poidsMax;
+		
+		// pour les unclustered
+		var unclusteredId = items.clusters.length;
+		var unclusteredItems = (items.unclustered.items)? 
+				items.unclustered.items: items.unclustered;
+		for (var i =0; i< unclusteredItems.length; ++i) {
+			var item = unclusteredItems[i];
+			nodes[item.key]["poids"] = poidsMin;
+			nodes[item.key]["scaledPoids"] = poidsMin;
+			nodes[item.key]["group"] = unclusteredId;
+			nodes[item.key]["key"] = item.key;
+			if (isPos) {
+				nodes[item.key]["x"] = parseFloat(item.x);
+				nodes[item.key]["y"] = parseFloat(item.y);
+			}
+			else {
+				nodes[item.key]["x"] = this.parametres.width/2;
+				nodes[item.key]["y"] = this.parametres.height/2;
+			}
+		}
+		
+		console.log("Data articles extraites.");
+		return nodes;
+	},
+	
+	//génération des liens à partir du json
+	generateLinks: function(liens, nodes) {
+		//var linkMax = 0, linkMin = 500;
+		var links = [];
+		
+		for (var i = 0; i< liens.images.length; ++i) {
+			var item = liens.images[i];
+			for (var j = 0; j < 20 && j < item.v.length; ++j) {
+				var voisin = item.v[j];
+				
+				var linkDistance = 200/Math.max(voisin.d, 4), linkStrength;
+				
+				if (nodes[item.id]["group"] == nodes[voisin.id]["group"]) {
+					linkStrength = 1;
+					linkDistance *= 0.5;
+				}
+				else {
+					linkStrength = 0.5;
+				}
+				
+				links.push({source: item.id, target: voisin.id, value: voisin.d, linkDistance: linkDistance, linkStrength: linkStrength});
+			}
+		}
+		
+		console.log("Data liens extraites.");
+		return links;
+	},
+
+	//calcul du rayon
+	radius: function(poids) {
+		
+		var diff = this.parametres.nodeSizeInterval[1] - this.parametres.nodeSizeInterval[0];
+		scale = this.getScale(this.rect);
+		
+		if (this.parametres.log) {
+			return this.parametres.nodeSizeInterval[0] + Math.log(poids/(this.poidsMin*scale))*diff/Math.log(this.poidsMax/this.poidsMin);
+			
+		}
+		else if (this.parametres.exp) {
+			return this.parametres.nodeSizeInterval[0]*Math.exp(Math.log(this.parametres.nodeSizeInterval[1]/this.parametres.nodeSizeInterval[0])*(poids-(this.poidsMin*scale))/(scale*(this.poidsMax - this.poidsMin)));
+		}
+		else {
+			return scale*((this.parametres.nodeSizeInterval[0] + diff*(poids - scale*this.poidsMin)/(scale*(this.poidsMax - this.poidsMin))));
+		}
+	},
+	
+	//affichages des noeuds
+	showNodes: function() {
+		var object = this;
+		node = this.svg.selectAll("circle.node")
+			 .data(this.data.nodes)
+			 .enter().append("circle")
+			 .attr("class", "node")
+			 .attr("cx", function(d) { return d.x; })
+			 .attr("cy", function(d) { return d.y; })
+			 .attr("z-index", 0)
+			 .attr("r", function(d) {return object.radius(d.poids);})
+			 .style("fill", function(d) { 
+				 return object.parametres.couleurs.get(d.group);
+			 });
+			 /*.on("mouseover", this.nodeMouseover)
+			 .on("mouseout", this.nodeMouseout)*/;
+		
+		// Register all nodes
+		if (null!=object.parametres.relations) {
+			 node.each(function(datum, index) {
+				 datum["registrationName"] = object.parametres.name + ".node." + index; 
+				 object.parametres.relations.add(
+						 datum.registrationName, d3.select(this))
+					.mouseover(object.nodeMouseover)
+					.mouseout(object.nodeMouseout);
+		 	});
+		 }
+	
+		node.append("p")
+			.text(function(d) { return d.titre; });
+		node.on('click', this.nodeClick);
+		console.log("Noeuds OK.");
+	},
+	
+	//génération du fond de la carte
+	createBackground: function() {
+		var circlePaths = [];
+		scale = this.getScale(this.rect);
+		object = this;
+		
+		this.svg.selectAll('circle.node').each(function(d) {
+			var node = d3.select(this);
+			var circle = new paper.Path.Circle(
+					new paper.Point(d.x, d.y), object.radius(d.scaledPoids)*2);
+			circle.fillColor = node.style("fill");
+			circlePaths.push(circle);
+		});
+		
+		console.log("Fond des noeuds OK.");
+		this.generateConnections(circlePaths);
+		paper.view.draw();
+		
+		/*var endDate = new Date();
+		var timer = endDate.getTime() - beginDate.getTime();
+		console.log(timer);*/
+	},
+	
+	//generate background connections between nodes of a same cluster
+	generateConnections: function(paths) {
+		for (var c=0; c<this.clusters.length; ++c) {
+			var cluster = this.clusters[c];
+			
+			// définir les données suivant le type passé
+			var group = cluster.items;
+			if (undefined==group) {
+				group = cluster.core.concat(cluster.agregated);
+			}
+				
+			var layer = new paper.Layer();
+			
+			// Donner un design au fond
+			for (var attr in this.parametres.layerStyle) {
+				if (layer[attr]) {
+					layer[attr] = this.parametres.layerStyle[attr];
+				}
+				else {
+					layer.style[attr] = this.parametres.layerStyle[attr];
+				}
+			}
+			
+			var maxDistance = this.scale(this.rect[0][0].getAttribute("x"))*this.parametres.maxDistance,
+				handle = this.parametres.handle_len_rate;
+			for (var i = 1; i<group.length; ++i) {
+				var circle = paths[group[i].key];
+				if ((circle.position.x + maxDistance > 0) && (circle.position.x < this.parametres.width + maxDistance) && (circle.position.y + maxDistance > 0) && (circle.position.y < this.parametres.height + maxDistance)) {
+					layer.appendTop(circle);
+					for (var j = 0; j<i; ++j) {
+						var path = this.connect(circle, paths[group[j].key], 0.5, handle, maxDistance);
+						if (null!=path) {
+							layer.appendTop(path);
+						}
+					}
+				}
+			}
+			
+			this.zones[c] = layer;
+			if (null != this.parametres.relations) {
+				this.parametres.relations.add(this.parametres.selectorID + ".layer." + c, layer);
+			}
+			
+		}
+		paper.project.layers[0].remove();
+		console.log("Connexions OK.");
+	},
+	
+	/*
+	 * Create a connection between two balls
+	 */
+	connect: function(ball1, ball2, v, handle_len_rate, maxDistance) {
+	    var center1 = ball1.position;
+	    var center2 = ball2.position;
+	    var radius1 = ball1.bounds.width / 2;
+	    var radius2 = ball2.bounds.width / 2;
+	    var pi2 = Math.PI / 2;
+	    var d = center1.getDistance(center2);
+	    var u1, u2;
+	
+	    if (radius1 == 0 || radius2 == 0) {
+	        return null;
+		}
+	
+	    if (d > maxDistance || d <= Math.abs(radius1 - radius2)) {
+	        return;
+	    } else if (d < radius1 + radius2) { // case circles are overlapping
+	        return null;
+	    } else {
+	        u1 = 0;
+	        u2 = 0;
+	    }
+	    
+	    var center3 = center2.clone();
+	    center3.x = center2.x - center1.x;
+	    center3.y = center2.y - center1.y;
+	
+	    var angle1 = center3.getAngleInRadians();
+	    var angle2 = Math.acos((radius1 - radius2) / d);
+	    var angle1a = angle1 + u1 + (angle2 - u1) * v;
+	    var angle1b = angle1 - u1 - (angle2 - u1) * v;
+	    var angle2a = angle1 + Math.PI - u2 - (Math.PI - u2 - angle2) * v;
+	    var angle2b = angle1 - Math.PI + u2 + (Math.PI - u2 - angle2) * v;
+	    var p1a = center1.add(this.getVector(angle1a, radius1));
+	    var p1b = center1.add(this.getVector(angle1b, radius1));
+	    var p2a = center2.add(this.getVector(angle2a, radius2));
+	    var p2b = center2.add(this.getVector(angle2b, radius2));
+	
+	    // define handle length by the distance between
+	    // both ends of the curve to draw
+	    var totalRadius = (radius1 + radius2);
+	    var p3a = p2a.clone();
+	    p3a.x = p1a.x - p2a.x;
+	    p3a.y = p1a.y - p2a.y;
+	    var d2 = Math.min(v * handle_len_rate, p3a.length / totalRadius);
+	
+	    // case circles are overlapping:
+	    d2 *= Math.min(1, d * 2 / (radius1 + radius2));
+	
+	    radius1 *= d2;
+	    radius2 *= d2;
+	
+	    var path = new paper.Path([p1a, p2a, p2b, p1b]);
+	    path.style = ball1.style;
+	    path.closed = true;
+	    var segments = path.segments;
+	    segments[0].handleOut = this.getVector(angle1a - pi2, radius1);
+	    segments[1].handleIn = this.getVector(angle2a + pi2, radius2);
+	    segments[2].handleOut = this.getVector(angle2b - pi2, radius2);
+	    segments[3].handleIn = this.getVector(angle1b + pi2, radius1);
+	    return path;
+	},
+	
+	// ------------------------------------------------
+	getVector: function(radians, length) {
+		var angle = radians * 180 / Math.PI;
+	    return new paper.Point({"angle": angle,
+	        "length": length
+	    });
+	},
+	
+	//apparition de l'infoBulle
+	highlight: function(node) {
+		scale = this.parametres.activerZoom ? this.scale(this.rect[0][0].getAttribute("x")) : 1;
+		this.infoBulle.html(this.parametres.infobulleHtml(node));
+		if (this.infoBulle.classed("selected")) {
+			this.infoBulle.transition()
+				.duration(500)
+				.style("left", node.x + "px")
+				.style("top", node.y + "px");
+		}
+		else {
+			this.infoBulle.classed("selected", true)
+				.style("left", node.x + "px")
+				.style("top", node.y + "px")
+				.transition()
+				.duration(300)
+				.style("opacity", 0.5);
+		}
+	},
+	
+	//disparition de l'infoBulle
+	blur: function() {
+		this.infoBulle.classed("selected", false)
+			.transition()
+			.duration(400)
+			.style("opacity", 0);
+		this.infoBulle.style("top", this.parametres.height);
+	},
+	
+	//zoom sur un point
+	grow: function(node, scale) {
+		if (!this.static) {
+			node.attr("z-index", 1)
+				.transition()
+				.duration(200)
+				.attr("r", this.parametres.nodeSizeInterval[1]*scale);
+		}
+	},
+	
+	//dézoom sur un point
+	shrink: function(radius, node) {
+		if (!this.static) {
+			node.transition()
+				.duration(70)
+				.attr("z-index", 0)
+				.attr("r", radius);
+		}
+	
+	},
+	
+	//réaffichage du fond sur recadrage du navigateur
+	onResize: function(event) {
+		paper.view.draw();
+		d3.select('#' + this.parametres.canvasID)
+			.attr("width", d3.select('#' + this.parametres.selectorID).attr("width"))
+			.attr("height", d3.select('#' + this.parametres.selectorID).attr("height"));
+	},
+	
+	dragstart: function(d,i, object) {
+    	object.rect.xi = object.scale(d3.event.x);
+    	object.static = true;
+    },
+    
+	dragmove: function(d, i) {
+		d.x += d3.event.dx;
+		d3.select(this).attr("x", d.x);
+	},
+	
+	dragend: function(d, i, object) {
+		
+		var ratio = object.scale(d3.event.x)/object.rect.xi;
+		object.infoBulle.classed("selected", false)
+			.style("opacity", 0);
+			
+		object.zoom(ratio);
+		object.resetCanvas();
+		
+		object.zoomTransition(ratio);
+		
+		object.static = false;
+		var timer = new Date().getTime() - object.beginDate.getTime();
+		console.log(timer);
+	},
+	
+	resetCanvas: function() {
+		paper.view.remove();
+		this.hideView();
+		paper.setup(this.canvas);
+		paper.view.viewSize = new paper.Size(this.parametres.width, this.parametres.height);
+	},
+	
+	hideView: function() {
+		var ctx = this.canvas.getContext('2d');
+		ctx.fillStyle = 'rgb(0,0,0)';
+		ctx.fillRect(this.canvas.left, this.canvas.top, this.canvas.width, this.canvas.height);
+	},
+	
+	scale: function(x) {
+		return (this.parametres.scaleInterval[0] + (this.parametres.scaleInterval[1] - this.parametres.scaleInterval[0])*(x/this.parametres.width));
+	},
+	
+	getScale: function(rect) {
+		if (rect == undefined || !this.parametres.activerZoom) {
+			return 1;
+		}
+		else {
+			if (this.parametres.zoomNode) {
+				return this.scale(rect[0][0].getAttribute("x"));
+			}
+			else if (this.parametres.logZoomNode) {
+				return Math.log(1 + this.scale(rect[0][0].getAttribute("x"))*this.parametres.logZoomNodeParameter)/(Math.log(1 + this.parametres.logZoomNodeParameter));
+			}
+			else {
+				return 1;
+			}
+		}
+	},
+	
+	zoom: function(ratio) {
+		var object = this;
+		var scale = this.getScale(this.rect);
+		
+		this.svg.selectAll("circle.node")
+			.each(function(d) {
+				d.x = object.parametres.width/2 
+					- ratio*(object.parametres.width/2- d.x);
+				
+				d.y = object.parametres.height/2 
+					- ratio*(object.parametres.height/2 - d.y);
+				
+				d.scaledPoids = d.poids*scale;
+			});
+	},
+	
+	zoomTransition: function(ratio) {
+		var object = this;
+		var c = 0;
+		this.svg.selectAll("circle.node")
+			.transition()
+				.duration(Math.max(400*ratio, 400/ratio))
+				.attr("cx", function(d) {
+					return d.x;
+				})
+				.attr("cy", function(d) {
+					return d.y;
+				})
+				.attr("r", function(d) { return object.radius(d.scaledPoids);})
+				.each("end", function() {
+					c++;
+					if (c == object.length) {
+						object.static = false;
+						object.createBackground();
+					}
+				});
+	},
+	
+	mouseDown: function(e) {
+		this.isDown = true;
+		this.mouse.x = e.x;
+		this.mouse.y = e.y;
+		this.center = {};
+		/*this.center.x = paper.view.center.x;
+		this.center.y = paper.view.center.y;*/
+		var object = this;
+		setTimeout(function() {
+				if (object.isDown) {
+					object.blur();
+					//d3.select(object.canvas).style("visibility", "hidden");
+					object.resetCanvas();
+					object.static = true;
+					object.drag2 = true;
+				}	
+			}, 100);
+	},
+	
+	mouseMove: function(e) {
+		if (this.drag2) {
+			diff = {};
+			diff.x = e.x - this.mouse.x;
+			diff.y = e.y - this.mouse.y;
+			/*this.center.x -= diff.x;
+			this.center.y -= diff.y;*/
+			this.svg.selectAll('circle.node')
+				.attr("cx", function(d) {
+					d.x += diff.x;
+					return d.x;
+					})
+				.attr("cy", function(d) {
+					d.y += diff.y;
+					return d.y;
+					});
+			this.mouse.x = e.x; this.mouse.y = e.y;
+		}
+	},
+	
+	mouseUp: function(e) {
+		if (this.drag2) {
+			//paper.view.center = new paper.Point(this.center.x, this.center.y);
+			//d3.select(object.canvas).style("visibility", "visible");
+			this.createBackground();
+			this.static = false;
+			this.drag2 = false;
+		}
+		this.isDown = false;
+		this.mouse = {};
+	}
+	
+};
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/nco/couleurs.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,95 @@
+/* -- Object for colors -- */
+
+function Couleurs() {	
+	switch (arguments.length) {
+	case 1:
+		if ("number"==typeof(arguments[0])) {
+			if (10==arguments[0]) {
+				this.get = d3.scale.category10();
+			}
+			else if (20==arguments[0]) {
+				this.get = d3.scale.category20();
+			}
+			else {
+				var domain = [], quantity = 0, colors = colorbrewer, 
+					setID, colorID, color;
+				var sets = ["BrBG", "PiYG", "PRGn", "PuOr", "RdBu", "RdYlBu", "RdYlGn"];
+				
+				while (quantity < arguments[0]) {
+					setID = 	Math.floor(Math.random()*7);
+					colorID = Math.floor(Math.random()*11);
+					color = Couleurs.fn.d3Color(
+							colors[sets[setID]][11][colorID]);
+					
+					var available = true;
+					for (var i = 0; i < quantity; i++) {
+						if (Math.abs(Couleurs.fn.hue(domain[i])
+								- Couleurs.fn.hue(color)) < 0.1) {
+							available = false;
+						}
+					}
+					
+					if (Couleurs.fn.brightness(color) < 0.9 && available) {
+						domain.push(color);
+						++quantity;
+					}
+				}
+				
+				// Transform into hexadecimal colors
+				for (var index in domain) {
+					domain[index] = domain[index].toString();
+				}
+				this.get = d3.scale.ordinal().range(domain);
+			}
+		}
+		else if (Array==arguments[0].constructor) {
+			var inputs = [];
+			for (var i in arguments[0]) {
+				inputs.push(i);
+			}
+			this.get = d3.scale.ordinal()
+				.domain(inputs)
+				.range(arguments[0]);
+		}
+		else {
+			throw "Wrong arguments";
+		}
+		break;
+		
+	case 3:
+		this.range = d3.interpolateRgb(arguments[0], arguments[1]);
+		this.levels = arguments[2];
+		this.get = this.getFromInterpolation;
+		break;
+
+	default:
+		throw "Wrong number of arguments";
+	}
+}
+
+Couleurs.fn = Couleurs.prototype = {
+	constructor: Couleurs,
+
+	d3Color: function(rgbString) {
+		return d3.rgb(rgbString);
+	},
+	
+	brightness: function(color) {
+		return (color.r + color.r + color.b + color.g + color.g + color.g)/(6*255);
+	},
+	
+	hue: function(color) {
+		return Math.sqrt(3) * (color.g - color.b)
+			/(color.r + color.r - color.g - color.b);
+	},
+	
+	getFromInterpolation: function(index) {
+		if (index<1) {
+			return this.range(index);
+		}
+		else {
+			index = (0==index%this.levels)? this.levels: index%this.levels; 
+			return this.range((index - 1)/(this.levels - 1));
+		}
+	}
+};
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/nco/relations.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,213 @@
+function Relations() {
+	this.items = {};
+}
+
+Relations.prototype = {
+	constructor: Relations,
+	
+	/**
+	 * Add an element to the dictionnary under the given name.
+	 * 
+	 * @param {String} id: identifier for the item
+	 * @param {Object} element: item to register
+	 * 
+	 * @returns {Connector}: inserted element wrapped with a Connector
+	 */
+	add: function(id, element) {
+		return this.items[id] = new Connector(element, id, this);
+	},
+	
+	remove: function(id) {
+		
+	},
+	
+	/**
+	 * Gets the wanted item
+	 * 
+	 * @param {String} id: item name
+	 * 
+	 * @returns {Connector}: the wanted item, wrapped in a selector
+	 */
+	get: function(id) {
+		return this.items[id];
+	},
+	
+	/**
+	 * Executes all the registered actions for a given element and a given event.
+	 * 
+	 * First, if the required item is frozen, nothing is executed.
+	 * Then, it checks every observer to see if they are locked, otherwise, their 
+	 * action is performed.
+	 *  
+	 * @param {String} id: id of the element activated
+	 * @param {String} event: name of the event activated
+	 * @param eventParameters: parameters passed by the event raised
+	 * 
+	 * @returns: null
+	 */
+	execute: function(id, event, eventParameters) {
+		var item = this.get(id);
+		if (!item.isFrozen()) {
+			var functions = item.listenedEvents[event];
+			for(var i =0; i<functions.length; ++i) {
+				var observer = this.get(functions[i][0]);
+				if (!observer.isLocked()) {
+					functions[i][1](observer.element, eventParameters);
+				}
+			}
+		}
+	},
+	
+	/**
+	 * Executes an action on each selected item
+	 * 
+	 * The selection is made through an selector string or directly a regular
+	 * expression. Then, on each selected item, the given action is performed
+	 * passed the item as this in the action.
+	 * 
+	 * @param {String/RegExp} selector: selection test to get items
+	 * @param {Function} action: action to perform
+	 * @param {Boolean} getDetails: retrieve all information captured 
+	 * 	by special expressions
+	 * 
+	 * @returns: {Integer} nombre d'éléments trouvés par la recherche
+	 */
+	each: function(selector, action, getDetails) {
+		if (undefined==getDetails) {
+			getDetails = false;
+		}
+		
+		var expr = this.buildExpression(selector, getDetails);
+		var compteur = 0;
+		if (false==getDetails) {
+			for (var itemName in this.items) {
+				if (expr.test(itemName)) {
+					action.call(this.items[itemName], this.items[itemName].element);
+					++compteur;
+				}
+			}
+		}
+		else {
+			var details = null;
+			for (var itemName in this.items) {
+				details = itemName.match(expr);
+				if (null!=details) {
+					action.call(this.items[itemName], this.items[itemName].element, details);
+					++compteur;
+				}
+			}
+		}
+		
+		return compteur;
+	},
+	
+	/**
+	 * Build a selector from a string
+	 * 
+	 * If a string is passed, it is turned as a RegExp.
+	 * If an RegExp instance is passed, it is returned directly.
+	 * 
+	 * @param string selector: string to turn as selector
+	 * @param RegExp selector: regular expression to use
+	 * 
+	 * @returns {RegExp}: selector
+	 */
+	buildExpression: function(selector, getDetails) {
+		if (RegExp==selector) {
+			return selector;
+		}
+		
+		var expression = selector;
+		expression = expression.replace(/(\(|\))/g, "\\$1");
+		
+		if (false==getDetails) {
+			expression = expression.replace(/\[\[digit\]\]/g, "[0-9]+");
+			expression = expression.replace(/\[\[letter\]\]/g, "[a-zA-Z]+");
+			expression = expression.replace(/\./g, "\\.");
+			expression = expression.replace(/\?/g, ".");
+			expression = expression.replace(/\*/g, ".+");
+		}
+		else {
+			expression = expression.replace(/\[\[digit\]\]/g, "([0-9]+)");
+			expression = expression.replace(/\[\[letter\]\]/g, "([a-zA-Z]+)");
+			expression = expression.replace(/\./g, "\\.");
+			expression = expression.replace(/\?/g, "(.)");
+			expression = expression.replace(/\*/g, "(.+)");
+		}
+		
+		return RegExp("^" + expression + "$");
+	}
+};
+
+function Connector(object, id, manager) {
+	this.manager = manager;
+	this.element = object;
+	this.id = id;
+	this.listenedEvents = {};
+	this.locked = false;
+	this.frozen = false;
+}
+
+Connector.prototype = {
+	constructor: Connector,
+	
+	object: function() { return this.element; },
+	
+	bind: function(event, id, action) {
+		if (undefined==action) {
+			this.bind(event, this.id, id);
+		}
+		else {
+			if (undefined!=this.listenedEvents[event]) {
+				this.listenedEvents[event].push([id, action]);
+			}
+			else {
+				var object = this;
+				this.listenedEvents[event] = [[id, action]];
+				this.element.on(event, function() {
+					object.manager.execute(object.id, event, arguments);
+				}) ;
+			}
+		}
+		
+		return this;
+	},
+	
+	bindTo: function(event, id, action) {
+		this.manager.get(id).bind(event, this.id, action);
+		
+		return this;
+	},
+	
+	unbind: function(id, event) {
+		return this;
+	},
+	
+	click: function(id, action) {
+		return this.bind("click", id, action);
+	},
+	
+	dblclick: function(id, action) {
+		return this.bind("dblclick", id, action);
+	},
+	
+	mouseover: function(id, action) {
+		return this.bind("mouseover", id, action);
+	},
+	
+	mouseout: function(id, action) {
+		return this.bind("mouseout", id, action);
+	},
+	
+	lock: function() {	this.locked = true;	},
+	
+	unlock: function() {	this.locked = false;	},
+	
+	isLocked: function() {	return true==this.locked; },
+	
+	freeze: function() {	this.frozen = true;	},
+	
+	unfreeze: function() {	this.frozen = false;	},
+	
+	isFrozen: function() {	return true==this.frozen; }
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/nco/streamgraph.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,453 @@
+/**
+ * Streamgraph
+ * 
+ * Faut-il remettre la grille pour que le curseur puisse y coller
+ * Faut-il un template html pour la timeline? 
+ */
+
+function Streamgraph(json, parametres) {
+	this.parametres = {
+		name: null,
+		hauteur: 400,
+		largeur: 900,
+		selector: "#streamgraph",
+		
+		couleurs: null,
+		relations: null,
+		activerSelection: false,
+		activerCurseur: false,
+		activerTimeline: false,
+	
+		transitionDuration: 1000
+	};
+	
+	this.etendre(parametres);
+	
+	/* -- Gestion des valeurs par défaut -- */
+	if (null==this.parametres.name) {
+		this.parametres.name = this.parametres.selector;
+	}
+	
+	/* -- Initialisation d'attributs -- */
+	var object = this;
+	this.streamgraph = null;
+	this.visuel = null;
+	
+	this.area = d3.svg.area()
+		.x(function(d) { 
+			return d.x * object.parametres.largeur / object.mx; 
+		})
+		.y0(function(d) { 
+			return object.parametres.hauteur 
+				- d.y0 * object.parametres.hauteur / object.my; 
+		})
+		.y1(function(d) { 
+			return object.parametres.hauteur
+				- (d.y + d.y0) * object.parametres.hauteur / object.my;
+		});
+	
+
+	this.dataJSON = json;	
+	this.dataStreamgraph = this.getDataStreamgraph(this.dataJSON);
+	
+	this.duree = this.dataStreamgraph[0].length;
+	this.nbClusters = this.dataStreamgraph.length;
+	
+	if (null==this.parametres.couleurs) {
+		this.parametres.couleurs = new Couleurs(this.nbClusters);
+	}
+
+	this.pas =  this.parametres.largeur/this.duree;
+	this.mx = this.dataStreamgraph[0].length - 1;
+	this.my = d3.max(this.dataStreamgraph, function(d) {
+		  return d3.max(d, function(d) {
+		    return d.y0 + d.y;
+		  });
+		});
+	
+	/* -- Create the streamgraph -- */
+	
+	/* -- Création des éléments HTML -- */
+	
+		/* -- Création des barres de sélection -- */
+	if (this.parametres.activerSelection) {
+		jQuery(this.parametres.selector)
+			.prepend("<div class='cache gauche'></div>")
+			.prepend("<div class='cache droite'></div>")
+			.prepend("<div class='selecteur gauche'></div>")
+			.prepend("<div class='selection'></div>")
+			.prepend("<div class='selecteur droite'></div>");
+		
+		// Sélecteurs latéraux
+		this.selecteurGauche = jQuery(this.parametres.selector + ' .selecteur.gauche');
+		this.selecteurDroit = jQuery(this.parametres.selector + ' .selecteur.droite');
+		this.selection = jQuery(this.parametres.selector + ' .selection');		
+		this.cacheDroit = jQuery(this.parametres.selector + ' .cache.droite');
+		this.cacheGauche = jQuery(this.parametres.selector + ' .cache.gauche');
+	}
+	
+		/* -- Création d'un curseur -- */
+	if (this.parametres.activerCurseur) {
+		this.curseur = d3.select(this.parametres.selector)
+			.append("div").classed("curseur", true);
+	}
+	
+		/* -- Création de l'élément streamgraph -- */
+	this.visuel = d3.select(this.parametres.selector)
+		.style("width", this.parametres.largeur + "px")
+		.style("height", this.parametres.hauteur + "px")
+		.append("svg:svg");
+	
+	this.visuel.selectAll("path")
+		.data(this.dataStreamgraph).enter().append("svg:path")
+			.style("fill", function(datum, index) {
+				return object.parametres.couleurs.get(index); 
+			})
+			.attr("d", this.area);
+	
+	if (null!=this.parametres.relations) {
+		this.parametres.relations.add(this.parametres.name, this);
+		
+		this.visuel.selectAll("path")
+			.each(function(datum, index) { 
+				var item = d3.select(this).attr("id", index);
+				datum["relationName"] = object.parametres.name +'.cluster.'+ index;
+				object.parametres.relations.add(datum.relationName, item);
+			});
+	}
+	
+		/* -- Création d'une timeline -- */
+	if (this.parametres.activerTimeline) {
+		this.timeline = d3.select(this.parametres.selector)
+			.append("div").classed("timeline", true);
+		this.generateTimeline();
+	}
+	
+	/* -- Configuration des barres de sélection -- */
+	if (this.parametres.activerSelection) {		
+		// Sélecteur gauche
+		this.selecteurGauche.draggable({
+			axis : 'x',
+			cursor: "move",
+			containment: [0, 0,
+			    this.parametres.largeur - parseInt(this.selecteurDroit.css("width")), 
+			    this.parametres.hauteur],
+			drag: function() { object.followSelecteur(object.parametres.selector, object.parametres.largeur); },
+			stop: function(e, ui){
+				object.calculerPositions();
+				object.followSelecteur(object.parametres.selector, object.parametres.largeur);	
+				object.contain(object.parametres.selector, object.parametres.largeur	);
+				if (undefined!=object.__onselectionResize) {
+					object.__onselectionResize(
+						object.positionsBarres[0], object.positionsBarres[1]);
+				}
+			}
+		});
+		
+		// Sélecteur droit
+		this.selecteurDroit.draggable({
+			axis : 'x',
+			cursor: "move",
+			containment: [0, 0,
+			    this.parametres.largeur - parseInt(this.selecteurDroit.css("width")), 
+			    this.parametres.hauteur],
+			drag: function() { object.followSelecteur(object.parametres.selector, object.parametres.largeur); },
+			stop: function(e, ui){
+				object.calculerPositions();
+				object.followSelecteur(object.parametres.selector, object.parametres.largeur);	
+				object.contain(object.parametres.selector, object.parametres.largeur	);
+				if (undefined!=object.__onselectionResize) {
+					object.__onselectionResize(
+						object.positionsBarres[0], object.positionsBarres[1]);
+				}
+			}
+		});
+		
+		// Barre de déplacement de la sélection
+		this.selection.draggable({
+			axis : 'x',
+			cursor: "move",
+			containment: [
+			    parseInt(this.selecteurGauche.css("width")), 
+			    0,
+			    this.parametres.largeur - parseInt(this.selecteurDroit.css("width")), 
+			    this.parametres.hauteur],
+			drag: function() { object.followSelection(object.parametres.selector, object.parametres.largeur); },
+			stop: function(e, ui) {
+				object.followSelection(object.parametres.selector, object.parametres.largeur);
+				object.calculerPositions();	
+				object.contain(object.parametres.selector, object.parametres.largeur);
+				if (undefined!=object.__onselectionResize) {			
+					object.__onselectionResize(
+						object.positionsBarres[0], object.positionsBarres[1]);
+				}
+			}
+		});
+		
+		/* -- Placement initial des éléments -- */
+		this.selecteurGauche.css("left", "0px");
+		this.selecteurDroit.css("left", this.parametres.largeur - parseInt(this.selecteurDroit.css("width")) + "px");
+		this.cacheGauche.css({"left": "0px", "width": "0px"});
+		this.cacheDroit.css({"left": this.largeur + "px", "width": "0px"});
+		
+		this.positionsBarres = [0, this.duree];
+	}
+	
+	/* -- Configuration du curseur -- */
+	if (this.parametres.activerCurseur) {
+		if (undefined!=this.parametres.relations) {
+			this.parametres.relations.add(this.parametres.name + ".curseur");
+		}
+	}
+};
+
+Streamgraph.prototype = {
+	constructor: Streamgraph,
+	
+	etendre: function(parametres) {
+		if (null==parametres || "object"!=typeof(parametres)) {
+			return;
+		}
+		
+		for (var cle in parametres) {
+			this.parametres[cle] = parametres[cle];
+		}
+	},
+
+	getDataStreamgraph : function(clusters) {
+		var data = new Array(),
+			duree = clusters[0].timeline.length;
+		
+		var dataCluster, timeline;
+		for (var i=0, end=clusters.length; i<end; i++) {
+			timeline = clusters[i].timeline;
+			dataCluster = [];
+			
+			for (var t=0; t<duree; t++) {
+				dataCluster.push({ x: t, y: timeline[t].length });
+			}
+			data.push(dataCluster);
+		}
+		
+		// Smooth the data
+		
+		// Compute the wiggle for stacks
+		return d3.layout.stack().offset("wiggle")(data);
+	},
+	
+	focus: function(stream) {
+		stream.style("stroke", "black")
+				.transition()
+				.duration(300)
+				.delay(50)
+				.style("opacity", 0.5);
+	},
+	
+	blur: function(stream) {
+		stream.style("stroke", "none")
+				.transition()
+				.duration(300)
+				.delay(75)
+				.style("opacity", 1);
+	},
+	
+	calculerPositions: function() { //recalcul des valeurs
+		this.positionsBarres[0] = Math.round(
+			parseInt(this.selecteurGauche.css("left"))
+			/this.pas
+		);
+		this.positionsBarres[1] = Math.round(
+			(parseInt(this.selecteurDroit.css('left')) 
+				+ parseInt(this.selecteurDroit.css('width')))
+			/this.pas
+		);
+	},
+	
+	//déplacement des caches avec le drag'n'drop
+	followSelecteur: function(selector, largeur, gauche) {
+		this.cacheGauche.css("width", this.selecteurGauche.css("left"));
+		
+		this.cacheDroit
+			.css("left", parseInt(this.selecteurDroit.css("left")) 
+					+ parseInt(this.selecteurDroit.css("width")) + "px")
+			.css("width", largeur - parseInt(this.cacheDroit.css('left')) + "px");
+		
+		this.selection
+			.css("left", parseInt(this.selecteurGauche.css("left")) 
+					+ parseInt(this.selecteurGauche.css("width")) + "px"
+			)
+			.css("width", parseInt(this.selecteurDroit.css("left")) 
+					- parseInt(this.selecteurGauche.css("left"))
+					- parseInt(this.selecteurGauche.css("width"))
+					+ "px"
+			);
+	},
+	
+	followSelection: function(selector, largeur) {		
+		var positionSelection = parseInt(this.selection.css("left")),
+			largeurSelection =  parseInt(this.selection.css("width")),
+			object = this;
+		
+		this.selecteurGauche.css("left", 
+			positionSelection - parseInt(object.selecteurGauche.css("width")) + "px"
+		);
+		
+		d3.select(selector + ' div.cache.gauche').style("width", function() {
+			return parseInt(object.selecteurGauche.css("left")) + "px";
+		});
+		
+		this.selecteurDroit.css("left", 
+			positionSelection + largeurSelection + "px"
+		);
+		
+		d3.select(selector + ' div.cache.droite')
+			.style("left", positionSelection + largeurSelection 
+					+ parseInt(object.selecteurDroit.css("width")) + "px")
+			.style("width", largeur - (positionSelection + largeurSelection 
+						+ parseInt(object.selecteurDroit.css("width"))) + "px");
+	},
+	
+	
+	contain: function(selector, largeur) {
+		var separation = 2*this.pas - parseInt(this.selecteurDroit.css("width"));
+		if (separation <0) {
+			separation = 0;
+		}
+		
+		//limite pour gauche
+		var ar = this.selecteurGauche.draggable("option", "containment");
+		ar[2] = parseInt(this.selecteurDroit.css("left")) - separation;
+	
+		//limite pour droite
+		ar = this.selecteurDroit.draggable("option", "containment");
+		ar[0] = parseInt(this.selecteurGauche.css("left")) + separation;
+		
+		// Limites de la selection
+		ar = this.selection.draggable("option", "containment");
+		ar[2] = largeur - parseInt(this.selection.css("width")) 
+			- parseInt(this.selecteurDroit.css("width"));
+	},	
+	
+	resize: function(start, end) {
+		var data = new Array(),
+			clusters = this.dataJSON,
+			object = this;
+
+		var dataCluster, timeline;
+		for (var i=0, _end=clusters.length; i<_end; i++) {
+			timeline = clusters[i].timeline;
+			dataCluster = [];
+			var compteur = 0;
+
+			for (var t=start; t<end; t++) {
+				dataCluster.push({ x: compteur, y: timeline[t].length });
+				compteur++;
+			}
+			data.push(dataCluster);
+		}
+		
+		this.dataStreamgraph = d3.layout.stack().offset("wiggle")(data);
+		
+		this.mx = this.dataStreamgraph[0].length - 1;
+		this.my = d3.max(this.dataStreamgraph, function(d) {
+			  return d3.max(d, function(d) {
+			    return d.y0 + d.y;
+			  });
+			});
+		
+		var comptage = this.nbClusters;
+		this.lockStreams();
+		this.visuel.selectAll("path")
+			.data(this.dataStreamgraph)
+			.transition()
+				.duration(this.parametres.transitionDuration)
+				.attr("d", this.area)
+				.each("end", function() {
+					if(0==--comptage) { 
+						object.unlockStreams();
+					}
+				});	
+	},
+	
+	showCursor: function() {
+		this.curseur.style("visibility", "visible");
+	},
+	
+	hideCursor: function() {
+		this.curseur.style("visibility", "hidden");
+	},
+	
+	placerCurseur: function(position, mode) {
+		switch(mode) {
+		case "index":
+			if (position > this.duree) {
+				position = this.duree;
+			}
+			else if (position < 0) {
+				position = 0;
+			}
+			
+			this.curseur.style("left", position*this.pas + "px");
+			break;
+			
+		case "distance":
+		default:
+			if (position>this.parametres.largeur) {
+				position = this.parametres.largeur;
+			}
+			else if (position<0) {
+				position = 0;
+			}
+		
+			this.curseur.style("left", position + "px");
+		}
+	},
+	
+	generateTimeline: function() {
+		var dateInitiale = 0,
+			dateFinale = this.duree,
+			pas = 5;
+		for (var t = dateInitiale; t<dateFinale; t+=pas) {
+			this.timeline.append("p").classed("time-unit", true).
+				html("date " + t + "-" + (t+pas > dateFinale? dateFinale: t+pas-1));
+		}
+	},
+	
+	lockStreams: function() {
+		var object = this;
+		if (this.parametres.relations) {
+			this.visuel.selectAll("path")
+				.each(function(datum, index) { 
+					object.parametres.relations.get(
+						object.parametres.name +'.cluster.'+ index).lock();
+				});
+		}
+	},
+	
+	unlockStreams: function() {
+		var object = this;
+		if (this.parametres.relations) {
+			this.visuel.selectAll("path")
+				.each(function(datum, index) { 
+					object.parametres.relations.get(
+						object.parametres.name +'.cluster.'+ index).unlock();
+				});
+		}
+	},
+	
+	on: function(event, action) {
+		switch(event) {
+		case "selectionResize":
+			this["__on" + event] = function() {
+				try {
+					action.apply(this, arguments);
+				}
+				finally {}
+			};
+			break;
+			
+		default:
+			this.visuel.on(event, action);
+		}
+	}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/nco/tapestry.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,153 @@
+function glow() {
+	document.getElementById('')
+}
+
+
+function Tapestry(json,parametres){
+	this.parametres = {
+			name: null,
+			hauteur: 400,
+			largeur: 900,	
+			timelineHaute : "#timelinehaute",
+			relations: null,
+			contenu: function(cellule, element) {
+				
+				var html;
+				var img = new Image();
+				img.src= element.name;
+				indexx = element.indexx;
+				var wi, hi, wc, hc;
+				
+				wi = img.width;
+				hi = img.height;
+				wc = cellule.offsetWidth  ;
+				hc = cellule.offsetHeight ;
+			//	r = Math.min(hi/hc, wi/wc);
+			//	w = wi/r;
+			//	h = hi/r;
+				
+				var posx, posy;
+				posx = (wi-wc)/2;
+				posy = (hi-hc)/2;
+				
+				html = "<img class = 'img' src = \"" + img.src + "\" style=\" width:"+ wc + "px; height:" +hc + "px; margin-top: 0px; margin-left: 0px;\" />";
+				html += "<p class = 'title' style = \" width:" + wc + "px;\"> Image "+String(indexx)+"</p>";
+				
+				return html;
+
+
+			}};
+		
+	
+		
+	var object = this;
+
+	
+	//----------------------------------------------------------------------
+	// FENETRE DE FOND
+	
+	object.tapestryHtml = d3.select("#timelinehaute")
+	.style('position', 'relative')
+	.style('width', object.parametres.largeur + 'px')
+	.style('height', object.parametres.hauteur + 'px')
+	.style('background-color', 'black');	
+	//.style('overflow','hidden');
+	
+	object.boutonzoom = d3.select("#timelinebasse").append('div')
+	.style('position', 'relative')
+	.style('width', '200px')
+	.style('height','20px')
+	.style('background-color', 'grey')	
+	.style('margin-top', '5px')
+	.html("<p class = 'title' style = \" width:200px;\"> Dezoooooom </p>")
+	.on('mouseover', function(){d3.select(this).style('opacity', 0.8);})
+	.on('mouseout', function(){d3.select(this).style('opacity', 1);})
+	.on('click',function(){object.agencerzoom;})
+	
+		
+	//----------------------------------------------------------------------
+	// CREATION DES PETITES FENETRES
+	
+	var listeposition = this.getPosition();
+	var larg,haut;
+	larg = String(this.parametres.largeur/5) + "px";
+	larg2=String(this.parametres.largeur/10) + "px";
+	haut = String(this.parametres.hauteur/2 -1) + "px" ;
+	
+	d3.select("#timelinehaute").selectAll("div")
+		.data(donnees).enter().append("div")
+			.attr('class', 'cell')
+			.attr('id', function(index){
+				if(index==0){return "first";}
+				else if (index==10){return "last";}
+			})
+			
+			.on('mouseover', function(){d3.select(this).style('opacity', 0.8);})
+			.on('mouseout', function(){d3.select(this).style('opacity', 1);})
+			.on('click',function(datum,index){object.agencerzoom(datum,index);})
+			
+			.style('position', 'absolute')
+			.style('width', function(datum,index){
+				if(index==0 || index==10){return larg2;}
+				else{return larg;}
+			})
+			.style('height',haut)
+			.style('background-color', '#32675F')
+			.style('text-align','center')
+			.html(function(datum,index){return object.parametres.contenu(this,datum);})
+			.style('left', function(datum, index) {
+				return listeposition[index][0];
+			})
+			.style('top', function(datum, index) {
+				return listeposition[index][1];
+			})
+	//		.attr('onmouseover',"this.style(\"stroke\",\"white\");" )
+			;
+		
+	
+	
+};
+// Position des fenetres 
+Tapestry.prototype = {		
+
+		getPosition: function(){
+			var l,h;
+			l= this.parametres.largeur;
+			h= this.parametres.hauteur;
+			var listposition=[[0,0]];
+			for (var i=0;i<9;i++){
+				listposition.push([(i*0.5)*l/5,h/2*((i+1)%2)]);
+			}
+			listposition.push([4.5*l/5,0]);
+			//for (var j=0;j<5;j++){
+			//	listposition.push([j*l/5,h/2]);
+			//}
+			return listposition;
+			
+
+		},
+			
+		agencerzoom: function(element,indexx){
+			var object = this;
+			this.tapestryHtml.selectAll("div")
+				.data(donnees[indexx].childs)
+					.html(function(datum,index){return object.parametres.contenu(this,datum);});
+			this.tapestryHtml.select("first")
+				.data(donnees[indexx-1])
+					.html(function(datum,index){return object.parametres.contenu(this,datum);});
+		},
+			
+			
+		agencerdezoom: function(){
+			var object = this;
+			this.tapestryHtml.selectAll("div")
+			.data(donnees)
+				.html(function(datum,index){return object.parametres.contenu(this,datum);});
+			
+		}
+				
+		
+		
+};
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/nco/treemap.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,285 @@
+/**
+ * Creation of a treemap
+ */
+
+/**
+ * Parameters is the object containing basics initialization parameters
+ */
+function Treemap(json, parametres) {
+	this.parametres = {
+		name: null,
+		hauteur: 300,
+		largeur: 500,
+		selector: "#treemap",
+		
+		couleurs: null,
+		relations: null,
+		
+		contenu: null,
+		template: null,
+	
+		transitionDuration: 1000
+	};
+	
+	this.etendre(parametres);
+	
+	/* -- Gestion des valeurs par défaut -- */
+	if (null==this.parametres.name) {
+		this.parametres.name = this.parametres.selector;
+	}
+	if (null==this.parametres.contenu) {
+		if (null!=this.parametres.template) {
+			this.template = jQuery(this.parametres.template.selector);
+			this.template.remove();
+			this.parametres.contenu = this.renderContenu;
+			
+			// Check for forgotten values
+			this.setDefaultValue(this.parametres.template.maxTextSpace, 50);
+			this.setDefaultValue(this.parametres.template.minFontSize, 1);
+		}
+		else {
+			this.parametres.contenu = this.defaultContent;
+		}
+	}
+	
+	/* -- Initialisation d'attributs -- */
+	var object = this;
+	this.treemap = null;
+	this.dataTreemap = null;
+	this.articles = null;
+	this.treemapHtml = null;
+
+	this.dataJSON = json;	
+	this.dataTreemap = this.getDataTreemap(json);
+	//this.articles = this.dataJSON.articles[0];
+	
+	this.duree = 50;//this.dataJSON.clusters[0].timeline.length;
+	this.nbClusters = this.dataJSON.clusters.length;
+	this.nbArticles = 2;//this.articles.length;
+	
+	/* -- Create the treemap -- */
+	
+	if (null==this.parametres.couleurs) {
+		this.parametres.couleurs = new Couleurs(this.nbClusters);
+	}
+	
+	this.treemap = d3.layout.treemap()
+		.size([this.parametres.largeur, this.parametres.hauteur])
+		.sticky(true)
+		.value(function(d) { 
+			return object.comptage(d); 
+		});
+		
+	this.treemapHtml = d3.select("#treemap").append('div')
+		.style('position', 'relative')
+		.style('width', this.parametres.largeur + 'px')
+		.style('height', this.parametres.hauteur + 'px')
+		.style('background-color', '#32375F');
+		
+	this.treemapHtml.data(this.dataTreemap).selectAll("div")
+		.data(this.treemap.nodes).enter().append("div")
+			.attr('class', 'cell')
+			.style('background-color', function(datum) {
+				return d.children? null: object.parametres.couleurs.get(datum.id);
+			})
+			.call(this.sizeCell)
+			.html(function(d) { 
+				return d.children? null: object.getContent(d); 
+			})
+			/*.attr("datetime", function(d) {
+				return d.children? 0: object.articles[d.idMax].date;
+			})*/;
+	
+	/* -- Register items in relations -- */
+	
+	/*if (null!=this.parametres.relations) {
+		this.parametres.relations.add(this.parametres.name, this);
+		
+		this.treemapHtml.selectAll("div")
+			.each(function(datum) {
+				var item = d3.select(this);
+				datum["relationName"] = object.parametres.name +'.'+ datum.name;
+				object.parametres.relations.add(datum.relationName, item);
+			});
+	}*/
+};
+
+Treemap.prototype = {
+	constructor: Treemap,
+	
+	etendre: function(parametres) {
+		if (null==parametres || "object"!=typeof(parametres)) {
+			return;
+		}
+		
+		for (var cle in parametres) {
+			this.parametres[cle] = parametres[cle];
+		}
+	},
+	
+	setDefaultValue: function(attribute, value) {
+		if (undefined==attribute || null==attribute) {
+			attribute = value;
+		}
+	},
+	
+	// calcule la taille d'un cluster (somme de tout les articles)
+	// et l'élément de poids maximal
+	comptage : function(datumCell, start, end) {
+		var compteursize = 0, idMax = 0, poidsMax = 0;
+		var timeline = datumCell.timeline;
+		
+		var tStart = (start==null || start<0)? 0: start;
+		var tEnd = (end==null || end>timeline.length)? 
+				timeline.length: end;
+		var index, endIndex, articleId;
+		for (var t=tStart; t<tEnd; t++) { //boucle sur les t de la timeline
+			compteursize+= timeline[t].length;
+			for (index = 0, endIndex = timeline[t].length; 
+				index < endIndex; ++index) {
+				articleId = timeline[t][index];
+				if (this.articles[articleId].poids > poidsMax) {
+					poidsMax = this.articles[articleId].poids;
+					idMax = articleId;
+				}
+			}
+		}
+		
+		datumCell.poidsMax = poidsMax;
+		datumCell.idMax = idMax;
+		return compteursize;
+	},
+	
+	getContent: function(datumCell, start, end) {
+		if (null!=this.parametres.contenu) {
+			return this.parametres.contenu.call(
+				this, datumCell, this.articles[datumCell.idMax]);
+		}
+		else {
+			return this.articles[datumCell.idMax].titre;
+		}
+	},
+
+	getDataTreemap : function(json, start, end) {
+		var data = { name : "data", children : []};
+		var clusters = json.clusters;
+		
+		for (var i=0, _end=clusters.length; i<_end; i++) { // parcours les differents clusters
+			var cluster = { id: clusters[i].id, name : "cluster." + clusters[i].title, weight : clusters[i].weight, abstract : "cluster." + clusters[i].abstract, documentsNumber : "cluster." + clusters[i].documents_number };
+			data.children.push(cluster);
+		}
+		
+		return [data];
+	},
+
+	sizeCell: function() {
+		this.style("left", function(d) { return d.x + "px"; })
+			.style("top", function(d) { return d.y + "px"; })
+			.style("width", function(d) { return d.dx - 1 + "px"; })
+			.style("height", function(d) { return d.dy - 1 + "px"; });
+	},
+	
+	focus: function(map) {
+		map.classed("selected", true)
+			.transition()
+			.duration(150)
+			.delay(50)
+			.style("opacity", 0.5);
+	},
+	
+	blur: function(map) {
+		map.classed("selected", false)
+			.transition()
+			.duration(100)
+			.delay(50)
+			.style("opacity", 1);
+	},
+	
+	transition: function(start, end) {
+		var object = this;
+		// To avoid conflicts while elements are hovered, lock the actions
+		
+		this.treemapHtml.selectAll("div")
+			.each(function(datum) {
+				object.parametres.relations.get(datum.relationName)
+						.lock();
+			})
+			.data(this.treemap.value(function(d) {
+				return object.comptage(d, start, end); 
+			}))
+			.attr("datetime", function(d) {
+				return d.children? 0: object.articles[d.idMax].date;
+			})
+			.html(function(d) { return d.children? null: object.getContent(d, start, end); })
+			.transition()
+				.duration(this.parametres.transitionDuration)
+				.call(this.sizeCell)
+				// Free the lock
+				.each("end", function(datum) {
+					object.parametres.relations.get(datum.relationName)
+						.unlock();
+				});
+	},
+	
+	defaultContent: function(cellule, article) {
+		var html;
+		var img = article.image;
+		var wi, hi, wc, hc, w, h, r;
+		
+		wi = img.largeur;
+		hi = img.hauteur;
+		wc = cellule.dx - 1;
+		hc = cellule.dy - 1;
+		r = Math.min(hi/hc, wi/wc);
+		w = wi/r;
+		h = hi/r;
+		
+		var posx, posy;
+		posx = -(w-wc)/2;
+		posy = -(h-hc)/2;
+		
+		html = "<img class = 'img' src = \"" + img.url + "\" style=\" width:"+ w + "px; height:" +h + "px; margin-top:" + posy + "px; margin-left:" + posx + "px;\" />";
+		html += "<p class = 'title' style = \" width:" + wc + "px;\" >" + article.titre + "</p>";
+		
+		return html;
+	},
+	
+	renderContenu: function(cellule, article) {
+		var image = article.image;
+		
+		var wi = image.largeur,
+			hi = image.hauteur,
+			wc = cellule.dx - 1,
+			hc = cellule.dy - 1,
+			r = Math.min(hi/hc, wi/wc),
+			w = wi/r,
+			h = hi/r,
+			posx = -(w-wc)/2,
+			posy = -(h-hc)/2;
+		
+		var data = {
+			'urlImage': image.url,
+			'widhtImage': w +"px",
+			'heightImage': h +"px",
+			'cssOffsetImage': "margin-top: "+ posy +"px; margin-left: "+posx +"px;",
+			'titreArticle': article.titre,
+			'dateArticle': article.date,
+			'widthArticle': wc +"px",
+			'heightArticle': hc +"px",
+			'cssWidthArticle': "width:" +wc +"px;",
+			'cssHeightArticle': "height:" +hc +"px;",
+			'cssDimensionsArticle': "width:" +wc +"px;height:" +hc +"px;",
+			'dateArticle': article.date
+		};
+		
+		return this.template
+			.render(data, this.parametres.template.directives).html();
+	},
+	
+	on: function(event, action) {
+		switch(event) {
+		default:
+			this.treemapHtml.on(event, action);
+		}
+	}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/pure.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,815 @@
+/*!
+	PURE Unobtrusive Rendering Engine for HTML
+
+	Licensed under the MIT licenses.
+	More information at: http://www.opensource.org
+
+	Copyright (c) 2012 Michael Cvilic - BeeBole.com
+
+	Thanks to Rog Peppe for the functional JS jump
+	revision: 2.72
+*/
+
+var $p, pure = $p = function(){
+	var sel = arguments[0],
+		ctxt = false;
+
+	if(typeof sel === 'string'){
+		ctxt = arguments[1] || false;
+	}else if(sel && !sel[0] && !sel.length){
+		sel = [sel];
+	}
+	return $p.core(sel, ctxt);
+};
+
+$p.core = function(sel, ctxt, plugins){
+	//get an instance of the plugins
+	var templates = [];
+	plugins = plugins || getPlugins();
+
+	//search for the template node(s)
+	switch(typeof sel){
+		case 'string':
+			templates = plugins.find(ctxt || document, sel);
+			if(templates.length === 0) {
+				error('The template "' + sel + '" was not found');
+			}
+		break;
+		case 'undefined':
+			error('The root of the template is undefined, check your selector');
+		break;
+		default:
+			templates = sel;
+	}
+
+	for(var i = 0, ii = templates.length; i < ii; i++){
+		plugins[i] = templates[i];
+	}
+	plugins.length = ii;
+
+	// set the signature string that will be replaced at render time
+	var Sig = '_s' + Math.floor( Math.random() * 1000000 ) + '_',
+		// another signature to prepend to attributes and avoid checks: style, height, on[events]...
+		attPfx = '_a' + Math.floor( Math.random() * 1000000 ) + '_',
+		// rx to parse selectors, e.g. "+tr.foo[class]"
+		selRx = /^(\+)?([^\@\+]+)?\@?([^\+]+)?(\+)?$/,
+		// set automatically attributes for some tags
+		autoAttr = {
+			IMG:'src',
+			INPUT:'value'
+		},
+		// check if the argument is an array - thanks salty-horse (Ori Avtalion)
+		isArray = Array.isArray ?
+			function(o) {
+				return Array.isArray(o);
+			} :
+			function(o) {
+				return Object.prototype.toString.call(o) === "[object Array]";
+			};
+
+	/* * * * * * * * * * * * * * * * * * * * * * * * * *
+		core functions
+	 * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+
+	// error utility
+	function error(e){
+		if(typeof console !== 'undefined'){
+			console.log(e);
+			debugger;
+		}
+		throw('pure error: ' + e);
+	}
+
+	//return a new instance of plugins
+	function getPlugins(){
+		var plugins = $p.plugins,
+			f = function(){};
+		f.prototype = plugins;
+
+		// do not overwrite functions if external definition
+		f.prototype.compile    = plugins.compile || compile;
+		f.prototype.render     = plugins.render || render;
+		f.prototype.autoRender = plugins.autoRender || autoRender;
+		f.prototype.find       = plugins.find || find;
+
+		// give the compiler and the error handling to the plugin context
+		f.prototype._compiler  = compiler;
+		f.prototype._error     = error;
+
+		return new f();
+	}
+
+	// returns the outer HTML of a node
+	function outerHTML(node){
+		// if IE, Chrome take the internal method otherwise build one
+		return node.outerHTML || (
+			function(n){
+			var div = document.createElement('div'), h;
+			div.appendChild( n.cloneNode(true) );
+				h = div.innerHTML;
+				div = null;
+				return h;
+			})(node);
+	}
+
+	// returns the string generator function
+	function wrapquote(qfn, f){
+		return function(ctxt){
+			return qfn('' + f.call(ctxt.item || ctxt.context, ctxt));
+		};
+	}
+
+	// default find using querySelector when available on the browser
+	function find(n, sel){
+		if(typeof n === 'string'){
+			sel = n;
+			n = false;
+		}
+		if(typeof document.querySelectorAll !== 'undefined'){
+			return (n||document).querySelectorAll( sel );
+		}else{
+			return error('You can test PURE standalone with: iPhone, FF3.5+, Safari4+ and IE8+\n\nTo run PURE on your browser, you need a JS library/framework with a CSS selector engine');
+		}
+	}
+
+	// create a function that concatenates constant string
+	// sections (given in parts) and the results of called
+	// functions to fill in the gaps between parts (fns).
+	// fns[n] fills in the gap between parts[n-1] and parts[n];
+	// fns[0] is unused.
+	// this is the inner template evaluation loop.
+	function concatenator(parts, fns){
+		return function(ctxt){
+			var strs = [ parts[ 0 ] ],
+				n = parts.length,
+				fnVal, pVal, attLine, pos;
+
+			for(var i = 1; i < n; i++){
+				fnVal = fns[i].call( this, ctxt );
+				pVal = parts[i];
+
+				// if the value is empty and attribute, remove it
+				if(fnVal === ''){
+					attLine = strs[ strs.length - 1 ];
+					if( ( pos = attLine.search( /[^\s]+=\"?$/ ) ) > -1){
+						strs[ strs.length - 1 ] = attLine.substring( 0, pos );
+						pVal = pVal.substr( 1 );
+					}
+				}
+
+				strs[ strs.length ] = fnVal;
+				strs[ strs.length ] = pVal;
+			}
+			return strs.join('');
+		};
+	}
+
+	// parse and check the loop directive
+	function parseloopspec(p){
+		var m = p.match( /^(\w+)\s*<-\s*(\S+)?$/ );
+		if(m === null){
+			error('bad loop spec: "' + p + '"');
+		}
+		if(m[1] === 'item'){
+			error('"item<-..." is a reserved word for the current running iteration.\n\nPlease choose another name for your loop.');
+		}
+		if( !m[2] || (m[2] && (/context/i).test(m[2]))){ //undefined or space(IE)
+			m[2] = function(ctxt){return ctxt.context;};
+		}
+		return {name: m[1], sel: m[2]};
+	}
+
+	// parse a data selector and return a function that
+	// can traverse the data accordingly, given a context.
+	function dataselectfn (sel){
+		if( typeof(sel) === 'function' ){
+			//handle false values in function directive
+			return function ( ctxt ){
+				var r = sel.call( ctxt.item || ctxt.context || ctxt, ctxt ); 
+				return !r && r !== 0 ? '' : r;
+			};
+		}
+		//check for a valid js variable name with hyphen(for properties only), $, _ and :
+		var m = sel.match(/^[a-zA-Z\$_\@][\w\$:-]*(\.[\w\$:-]*[^\.])*$/);
+		if(m === null){
+			var found = false, s = sel, parts = [], pfns = [], i = 0, retStr;
+			// check if literal
+			if(/\'|\"/.test( s.charAt(0) )){
+				if(/\'|\"/.test( s.charAt(s.length-1) )){
+					retStr = s.substring(1, s.length-1);
+					return function(){ return retStr; };
+				}
+			}else{
+				// check if literal + #{var}
+				while((m = s.match(/#\{([^{}]+)\}/)) !== null){
+					found = true;
+					parts[i++] = s.slice(0, m.index);
+					pfns[i] = dataselectfn(m[1]);
+					s = s.slice(m.index + m[0].length, s.length);
+				}
+			}
+			if(!found){
+				return function(){ return sel; };
+			}
+			parts[i] = s;
+			return concatenator(parts, pfns);
+		}
+		m = sel.split('.');
+		return function(ctxt){
+			var data = ctxt.context || ctxt,
+				v = ctxt[m[0]],
+				i = 0;
+			if(v && v.item){
+				i += 1;
+				if(m[i] === 'pos'){
+					//allow pos to be kept by string. Tx to Adam Freidin
+					return v.pos;
+				}else{
+					data = v.item;
+				}
+			}
+			var n = m.length;
+			for(; i < n; i++){
+				if(!data){break;}
+				data = data[m[i]];
+			}
+			return (!data && data !== 0) ? '':data;
+		};
+	}
+
+	// wrap in an object the target node/attr and their properties
+	function gettarget(dom, sel, isloop){
+		var osel, prepend, selector, attr, append, target = [];
+		if( typeof sel === 'string' ){
+			osel = sel;
+			var m = sel.match(selRx);
+			if( !m ){
+				error( 'bad selector syntax: ' + sel );
+			}
+
+			prepend = m[1];
+			selector = m[2];
+			attr = m[3];
+			append = m[4];
+
+			if(selector === '.' || ( !selector && attr ) ){
+				target[0] = dom;
+			}else{
+				target = plugins.find(dom, selector);
+			}
+			if(!target || target.length === 0){
+				return error('The node "' + sel + '" was not found in the template:\n' + outerHTML(dom).replace(/\t/g,'  '));
+			}
+		}else{
+			// autoRender node
+			prepend = sel.prepend;
+			attr = sel.attr;
+			append = sel.append;
+			target = [dom];
+		}
+
+		if( prepend || append ){
+			if( prepend && append ){
+				error('append/prepend cannot take place at the same time');
+			}else if( isloop ){
+				error('no append/prepend/replace modifiers allowed for loop target');
+			}else if( append && isloop ){
+				error('cannot append with loop (sel: ' + osel + ')');
+			}
+		}
+		var setstr, getstr, quotefn, isStyle, isClass, attName, setfn;
+		if(attr){
+			isStyle = (/^style$/i).test(attr);
+			isClass = (/^class$/i).test(attr);
+			attName = isClass ? 'className' : attr;
+			setstr = function(node, s) {
+				node.setAttribute(attPfx + attr, s);
+				if (attName in node && !isStyle) {
+					try{node[attName] = '';}catch(e){} //FF4 gives an error sometimes
+				}
+				if (node.nodeType === 1) {
+					node.removeAttribute(attr);
+					isClass && node.removeAttribute(attName);
+				}
+			};
+			if (isStyle || isClass) {//IE no quotes special care
+				if(isStyle){
+					getstr = function(n){ return n.style.cssText; };
+				}else{
+					getstr = function(n){ return n.className;	};
+				}
+			}else {
+				getstr = function(n){ return n.getAttribute(attr); };
+			}
+			quotefn = function(s){ return s.replace(/\"/g, '&quot;'); };
+			if(prepend){
+				setfn = function(node, s){ setstr( node, s + getstr( node )); };
+			}else if(append){
+				setfn = function(node, s){ setstr( node, getstr( node ) + s); };
+			}else{
+				setfn = function(node, s){ setstr( node, s ); };
+			}
+		}else{
+			if (isloop) {
+				setfn = function(node, s) {
+					var pn = node.parentNode;
+					if (pn) {
+						//replace node with s
+						pn.insertBefore(document.createTextNode(s), node.nextSibling);
+						pn.removeChild(node);
+					}
+				};
+			} else {
+				if (prepend) {
+					setfn = function(node, s) { node.insertBefore(document.createTextNode(s), node.firstChild);	};
+				} else if (append) {
+					setfn = function(node, s) { node.appendChild(document.createTextNode(s));};
+				} else {
+					setfn = function(node, s) {
+						while (node.firstChild) { node.removeChild(node.firstChild); }
+						node.appendChild(document.createTextNode(s));
+					};
+				}
+			}
+			quotefn = function(s) { return s; };
+		}
+		return { attr: attr, nodes: target, set: setfn, sel: osel, quotefn: quotefn };
+	}
+
+	function setsig(target, n){
+		var sig = Sig + n + ':';
+		for(var i = 0; i < target.nodes.length; i++){
+			// could check for overlapping targets here.
+			target.set( target.nodes[i], sig );
+		}
+	}
+
+	// read de loop data, and pass it to the inner rendering function
+	function loopfn(name, dselect, inner, sorter, filter){
+		return function(ctxt){
+			var a = dselect(ctxt),
+				old = ctxt[name],
+				temp = { items : a },
+				filtered = 0,
+				length,
+				strs = [],
+				buildArg = function(idx, temp, ftr, len){
+					//keep the current loop. Tx to Adam Freidin
+					var save_pos = ctxt.pos,
+						save_item = ctxt.item,
+						save_items = ctxt.items;
+					ctxt.pos = temp.pos = idx;
+					ctxt.item = temp.item = a[ idx ];
+					ctxt.items = a;
+					//if array, set a length property - filtered items
+					typeof len !== 'undefined' &&  (ctxt.length = len);
+					//if filter directive
+					if(typeof ftr === 'function' && ftr.call(ctxt.item, ctxt) === false){
+						filtered++;
+						return;
+					}
+					strs.push( inner.call(ctxt.item, ctxt ) );
+					//restore the current loop
+					ctxt.pos = save_pos;
+					ctxt.item = save_item;
+					ctxt.items = save_items;
+				};
+			ctxt[name] = temp;
+			if( isArray(a) ){
+				length = a.length || 0;
+				// if sort directive
+				if(typeof sorter === 'function'){
+					a.sort(sorter);
+				}
+				//loop on array
+				for(var i = 0, ii = length; i < ii; i++){
+					buildArg(i, temp, filter, length - filtered);
+				}
+			}else{
+				if(a && typeof sorter !== 'undefined'){
+					error('sort is only available on arrays, not objects');
+				}
+				//loop on collections
+				for(var prop in a){
+					a.hasOwnProperty( prop ) && buildArg(prop, temp, filter);
+				}
+			}
+
+			typeof old !== 'undefined' ? ctxt[name] = old : delete ctxt[name];
+			return strs.join('');
+		};
+	}
+	// generate the template for a loop node
+	function loopgen(dom, sel, loop, fns){
+		var already = false, ls, sorter, filter, prop;
+		for(prop in loop){
+			if(loop.hasOwnProperty(prop)){
+				if(prop === 'sort'){
+					sorter = loop.sort;
+					continue;
+				}else if(prop === 'filter'){
+					filter = loop.filter;
+					continue;
+				}
+				if(already){
+					error('cannot have more than one loop on a target');
+				}
+				ls = prop;
+				already = true;
+			}
+		}
+		if(!ls){
+			error('Error in the selector: ' + sel + '\nA directive action must be a string, a function or a loop(<-)');
+		}
+		var dsel = loop[ls];
+		// if it's a simple data selector then we default to contents, not replacement.
+		if(typeof(dsel) === 'string' || typeof(dsel) === 'function'){
+			loop = {};
+			loop[ls] = {root: dsel};
+			return loopgen(dom, sel, loop, fns);
+		}
+		var spec = parseloopspec(ls),
+			itersel = dataselectfn(spec.sel),
+			target = gettarget(dom, sel, true),
+			nodes = target.nodes;
+
+		for(i = 0; i < nodes.length; i++){
+			var node = nodes[i],
+				inner = compiler(node, dsel);
+			fns[fns.length] = wrapquote(target.quotefn, loopfn(spec.name, itersel, inner, sorter, filter));
+			target.nodes = [node];		// N.B. side effect on target.
+			setsig(target, fns.length - 1);
+		}
+		return target;
+	}
+
+	function getAutoNodes(n, data){
+		var ns = n.getElementsByTagName('*'),
+			an = [],
+			openLoops = {a:[],l:{}},
+			cspec,
+			isNodeValue,
+			i, ii, j, jj, ni, cs, cj;
+		//for each node found in the template
+		for(i = -1, ii = ns.length; i < ii; i++){
+			ni = i > -1 ?ns[i]:n;
+			if(ni.nodeType === 1 && ni.className !== ''){
+				//when a className is found
+				cs = ni.className.split(' ');
+				// for each className
+				for(j = 0, jj=cs.length;j<jj;j++){
+					cj = cs[j];
+					// check if it is related to a context property
+					cspec = checkClass(cj, ni.tagName);
+					// if so, store the node, plus the type of data
+					if(cspec !== false){
+						isNodeValue = (/nodevalue/i).test(cspec.attr);
+						if(cspec.sel.indexOf('@') > -1 || isNodeValue){
+							ni.className = ni.className.replace('@'+cspec.attr, '');
+							if(isNodeValue){
+								cspec.attr = false;
+							}
+						}
+						an.push({n:ni, cspec:cspec});
+					}
+				}
+			}
+		}
+
+		function checkClass(c, tagName){
+			// read the class
+			var ca = c.match(selRx),
+				attr = ca[3] || autoAttr[tagName],
+				cspec = {prepend:!!ca[1], prop:ca[2], attr:attr, append:!!ca[4], sel:c},
+				i, ii, loopi, loopil, val;
+			// check in existing open loops
+			for(i = openLoops.a.length-1; i >= 0; i--){
+				loopi = openLoops.a[i];
+				loopil = loopi.l[0];
+				val = loopil && loopil[cspec.prop];
+				if(typeof val !== 'undefined'){
+					cspec.prop = loopi.p + '.' + cspec.prop;
+					if(openLoops.l[cspec.prop] === true){
+						val = val[0];
+					}
+					break;
+				}
+			}
+			// not found check first level of data
+			if(typeof val === 'undefined'){
+				val = dataselectfn(cspec.prop)(isArray(data) ? data[0] : data);
+				// nothing found return
+				if(val === ''){
+					return false;
+				}
+			}
+			// set the spec for autoNode
+			if(isArray(val)){
+				openLoops.a.push( {l:val, p:cspec.prop} );
+				openLoops.l[cspec.prop] = true;
+				cspec.t = 'loop';
+			}else{
+				cspec.t = 'str';
+			}
+			return cspec;
+		}
+
+		return an;
+
+	}
+
+	// returns a function that, given a context argument,
+	// will render the template defined by dom and directive.
+	function compiler(dom, directive, data, ans){
+		var fns = [], j, jj, cspec, n, target, nodes, itersel, node, inner, dsel, sels, sel, sl, i, h, parts,  pfns = [], p;
+		// autoRendering nodes parsing -> auto-nodes
+		ans = ans || data && getAutoNodes(dom, data);
+		if(data){
+			// for each auto-nodes
+			while(ans.length > 0){
+				cspec = ans[0].cspec;
+				n = ans[0].n;
+				ans.splice(0, 1);
+				if(cspec.t === 'str'){
+					// if the target is a value
+					target = gettarget(n, cspec, false);
+					setsig(target, fns.length);
+					fns[fns.length] = wrapquote(target.quotefn, dataselectfn(cspec.prop));
+				}else{
+					// if the target is a loop
+					itersel = dataselectfn(cspec.sel);
+					target = gettarget(n, cspec, true);
+					nodes = target.nodes;
+					for(j = 0, jj = nodes.length; j < jj; j++){
+						node = nodes[j];
+						inner = compiler(node, false, data, ans);
+						fns[fns.length] = wrapquote(target.quotefn, loopfn(cspec.sel, itersel, inner));
+						target.nodes = [node];
+						setsig(target, fns.length - 1);
+					}
+				}
+			}
+		}
+		// read directives
+		for(sel in directive){
+			if(directive.hasOwnProperty(sel)){
+				i = 0;
+				dsel = directive[sel];
+				sels = sel.split(/\s*,\s*/); //allow selector separation by quotes
+				sl = sels.length;
+				do{
+					if(typeof(dsel) === 'function' || typeof(dsel) === 'string'){
+						// set the value for the node/attr
+						sel = sels[i];
+						target = gettarget(dom, sel, false);
+						setsig(target, fns.length);
+						fns[fns.length] = wrapquote(target.quotefn, dataselectfn(dsel));
+					}else{
+						// loop on node
+						loopgen(dom, sel, dsel, fns);
+					}
+				}while(++i < sl);
+			}
+		}
+		// convert node to a string
+		h = outerHTML(dom);
+			// IE adds an unremovable "selected, value" attribute
+			// hard replace while waiting for a better solution
+		h = h.replace(/<([^>]+)\s(value\=""|selected)\s?([^>]*)>/ig, "<$1 $3>");
+
+		// remove attribute prefix
+		h = h.split(attPfx).join('');
+
+		// slice the html string at "Sig"
+		parts = h.split( Sig );
+		// for each slice add the return string of
+		for(i = 1; i < parts.length; i++){
+			p = parts[i];
+			// part is of the form "fn-number:..." as placed there by setsig.
+			pfns[i] = fns[ parseInt(p, 10) ];
+			parts[i] = p.substring( p.indexOf(':') + 1 );
+		}
+		return concatenator(parts, pfns);
+	}
+	// compile the template with directive
+	// if a context is passed, the autoRendering is triggered automatically
+	// return a function waiting the data as argument
+	function compile(directive, ctxt, template){
+		var rfn = compiler( ( template || this[0] ).cloneNode(true), directive, ctxt);
+		return function(context){
+			return rfn({context:context});
+		};
+	}
+	//compile with the directive as argument
+	// run the template function on the context argument
+	// return an HTML string
+	// should replace the template and return this
+	function render(ctxt, directive){
+		var fn = typeof directive === 'function' && directive, i = 0, ii = this.length;
+		for(; i < ii; i++){
+			this[i] = replaceWith( this[i], (fn || plugins.compile( directive, false, this[i] ))( ctxt, false ));
+		}
+		context = null;
+		return this;
+	}
+
+	// compile the template with autoRender
+	// run the template function on the context argument
+	// return an HTML string
+	function autoRender(ctxt, directive){
+		var fn = plugins.compile( directive, ctxt, this[0] );
+		for(var i = 0, ii = this.length; i < ii; i++){
+			this[i] = replaceWith( this[i], fn( ctxt, false));
+		}
+		context = null;
+		return this;
+	}
+
+	function replaceWith(elm, html) {
+		var ne,
+			ep = elm.parentNode,
+			depth = 0;
+		if(!ep){ //if no parents
+			ep = document.createElement('DIV');
+			ep.appendChild(elm);
+		}
+		switch (elm.tagName) {
+			case 'TBODY': case 'THEAD': case 'TFOOT':
+				html = '<TABLE>' + html + '</TABLE>';
+				depth = 1;
+			break;
+			case 'TR':
+				html = '<TABLE><TBODY>' + html + '</TBODY></TABLE>';
+				depth = 2;
+			break;
+			case 'TD': case 'TH':
+				html = '<TABLE><TBODY><TR>' + html + '</TR></TBODY></TABLE>';
+				depth = 3;
+			break;
+		}
+		tmp = document.createElement('SPAN');
+		tmp.style.display = 'none';
+		document.body.appendChild(tmp);
+		tmp.innerHTML = html;
+		ne = tmp.firstChild;
+		while (depth--) {
+			ne = ne.firstChild;
+		}
+		ep.insertBefore(ne, elm);
+		ep.removeChild(elm);
+		document.body.removeChild(tmp);
+		elm = ne;
+
+		ne = ep = null;
+		return elm;
+	}
+
+	return plugins;
+};
+
+$p.plugins = {};
+
+$p.libs = {
+	dojo:function(){
+		if(typeof document.querySelector === 'undefined'){
+			$p.plugins.find = function(n, sel){
+				return dojo.query(sel, n);
+			};
+		}
+	},
+	domassistant:function(){
+		if(typeof document.querySelector === 'undefined'){
+			$p.plugins.find = function(n, sel){
+				return $(n).cssSelect(sel);
+			};
+		}
+		DOMAssistant.attach({
+			publicMethods : [ 'compile', 'render', 'autoRender'],
+			compile:function(directive, ctxt){
+				return $p([this]).compile(directive, ctxt);
+			},
+			render:function(ctxt, directive){
+				return $( $p([this]).render(ctxt, directive) )[0];
+			},
+			autoRender:function(ctxt, directive){
+				return $( $p([this]).autoRender(ctxt, directive) )[0];
+			}
+		});
+	},
+	jquery:function(){
+		if(typeof document.querySelector === 'undefined'){
+			$p.plugins.find = function(n, sel){
+				return jQuery(n).find(sel);
+			};
+		}
+		jQuery.fn.extend({
+			directives:function(directive){
+				this._pure_d = directive; return this;
+			},
+			compile:function(directive, ctxt){
+				return $p(this).compile(this._pure_d || directive, ctxt);
+			},
+			render:function(ctxt, directive){
+				return jQuery( $p( this ).render( ctxt, this._pure_d || directive ) );
+			},
+			autoRender:function(ctxt, directive){
+				return jQuery( $p( this ).autoRender( ctxt, this._pure_d || directive ) );
+			}
+		});
+	},
+	mootools:function(){
+		if(typeof document.querySelector === 'undefined'){
+			$p.plugins.find = function(n, sel){
+				return $(n).getElements(sel);
+			};
+		}
+		Element.implement({
+			compile:function(directive, ctxt){
+				return $p(this).compile(directive, ctxt);
+			},
+			render:function(ctxt, directive){
+				return $p([this]).render(ctxt, directive);
+			},
+			autoRender:function(ctxt, directive){
+				return $p([this]).autoRender(ctxt, directive);
+			}
+		});
+	},
+	prototype:function(){
+		if(typeof document.querySelector === 'undefined'){
+			$p.plugins.find = function(n, sel){
+				n = n === document ? n.body : n;
+				return typeof n === 'string' ? $$(n) : $(n).select(sel);
+			};
+		}
+		Element.addMethods({
+			compile:function(element, directive, ctxt){
+				return $p([element]).compile(directive, ctxt);
+			},
+			render:function(element, ctxt, directive){
+				return $p([element]).render(ctxt, directive);
+			},
+			autoRender:function(element, ctxt, directive){
+				return $p([element]).autoRender(ctxt, directive);
+			}
+		});
+	},
+	sizzle:function(){
+		if(typeof document.querySelector === 'undefined'){
+			$p.plugins.find = function(n, sel){
+				return Sizzle(sel, n);
+			};
+		}
+	},
+	sly:function(){
+		if(typeof document.querySelector === 'undefined'){
+			$p.plugins.find = function(n, sel){
+				return Sly(sel, n);
+			};
+		}
+	},
+	yui:function(){ //Thanks to https://github.com/soljin
+		if(typeof document.querySelector === 'undefined'){
+			YUI().use("node",function(Y){
+				$p.plugins.find = function(n, sel){
+					return Y.NodeList.getDOMNodes(Y.one(n).all(sel));
+				};
+			});
+		}
+		YUI.add("pure-yui",function(Y){
+			Y.Node.prototype.directives = function(directive){
+				this._pure_d = directive; return this;
+			};
+			Y.Node.prototype.compile = function(directive, ctxt){
+				return $p([this._node]).compile(this._pure_d || directive, ctxt);
+			};
+			Y.Node.prototype.render = function(ctxt, directive){
+				return Y.one($p([this._node]).render(ctxt, this._pure_d || directive));
+			};
+			Y.Node.prototype.autoRender = function(ctxt, directive){
+				return Y.one($p([this._node]).autoRender(ctxt, this._pure_d || directive));
+			};
+		},"0.1",{requires:["node"]});
+	}
+};
+
+// get lib specifics if available
+(function(){
+	var libkey =
+		typeof dojo         !== 'undefined' && 'dojo' ||
+		typeof DOMAssistant !== 'undefined' && 'domassistant' ||
+		typeof jQuery       !== 'undefined' && 'jquery' ||
+		typeof MooTools     !== 'undefined' && 'mootools' ||
+		typeof Prototype    !== 'undefined' && 'prototype' ||
+		typeof Sizzle       !== 'undefined' && 'sizzle' ||
+		typeof Sly          !== 'undefined' && 'sly' ||
+		typeof YUI          !== 'undefined' && 'yui';
+
+	libkey && $p.libs[libkey]();
+
+	//for node.js
+	if(typeof exports !== 'undefined'){
+		exports.$p = $p;
+	}
+})();
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/libraries/pure_min.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,34 @@
+/*!
+	PURE Unobtrusive Rendering Engine for HTML
+
+	Licensed under the MIT licenses.
+	More information at: http://www.opensource.org
+
+	Copyright (c) 2011 Michael Cvilic - BeeBole.com
+
+	Thanks to Rog Peppe for the functional JS jump
+	revision: 2.72
+*/
+var $p,pure=$p=function(d,h){var m=d,t=false;if(typeof m==="string")t=h||false;else if(m&&!m[0]&&!m.length)m=[m];return $p.core(m,t)};
+$p.core=function(d,h,m){function t(a){if(typeof console!=="undefined"){console.log(a);debugger}throw"pure error: "+a;}function O(){var a=$p.plugins,b=function(){};b.prototype=a;b.prototype.compile=a.compile||P;b.prototype.render=a.render||Q;b.prototype.autoRender=a.autoRender||R;b.prototype.find=a.find||S;b.prototype._compiler=B;b.prototype._error=t;return new b}function G(a){return a.outerHTML||function(b){var f=document.createElement("div");f.appendChild(b.cloneNode(true));return f.innerHTML}(a)}
+function C(a,b){return function(f){return a(""+b.call(f.item||f.context,f))}}function S(a,b){if(typeof a==="string"){b=a;a=false}return typeof document.querySelectorAll!=="undefined"?(a||document).querySelectorAll(b):t("You can test PURE standalone with: iPhone, FF3.5+, Safari4+ and IE8+\n\nTo run PURE on your browser, you need a JS library/framework with a CSS selector engine")}function H(a,b){return function(f){for(var c=[a[0]],g=a.length,i,k,l,e,n=1;n<g;n++){i=b[n].call(this,f);k=a[n];if(i===""){l=
+c[c.length-1];if((e=l.search(/[^\s]+=\"?$/))>-1){c[c.length-1]=l.substring(0,e);k=k.substr(1)}}c[c.length]=i;c[c.length]=k}return c.join("")}}function T(a){var b=a.match(/^(\w+)\s*<-\s*(\S+)?$/);b===null&&t('bad loop spec: "'+a+'"');b[1]==="item"&&t('"item<-..." is a reserved word for the current running iteration.\n\nPlease choose another name for your loop.');if(!b[2]||b[2]&&/context/i.test(b[2]))b[2]=function(f){return f.context};return{name:b[1],sel:b[2]}}function y(a){if(typeof a==="function")return function(e){e=
+a.call(e.item||e.context||e,e);return!e&&e!==0?"":e};var b=a.match(/^[a-zA-Z\$_\@][\w\$:-]*(\.[\w\$:-]*[^\.])*$/);if(b===null){var f=false,c=a,g=[],i=[],k=0,l;if(/\'|\"/.test(c.charAt(0))){if(/\'|\"/.test(c.charAt(c.length-1))){l=c.substring(1,c.length-1);return function(){return l}}}else for(;(b=c.match(/#\{([^{}]+)\}/))!==null;){f=true;g[k++]=c.slice(0,b.index);i[k]=y(b[1]);c=c.slice(b.index+b[0].length,c.length)}if(!f)return function(){return a};g[k]=c;return H(g,i)}b=a.split(".");return function(e){var n=
+e.context||e,o=e[b[0]];e=0;if(o&&o.item){e+=1;if(b[e]==="pos")return o.pos;else n=o.item}for(o=b.length;e<o;e++){if(!n)break;n=n[b[e]]}return!n&&n!==0?"":n}}function D(a,b,f){var c,g,i,k,l,e=[];if(typeof b==="string"){c=b;(l=b.match(I))||t("bad selector syntax: "+b);g=l[1];i=l[2];k=l[3];l=l[4];if(i==="."||!i&&k)e[0]=a;else e=m.find(a,i);if(!e||e.length===0)return t('The node "'+b+'" was not found in the template:\n'+G(a).replace(/\t/g,"  "))}else{g=b.prepend;k=b.attr;l=b.append;e=[a]}if(g||l)if(g&&
+l)t("append/prepend cannot take place at the same time");else if(f)t("no append/prepend/replace modifiers allowed for loop target");else l&&f&&t("cannot append with loop (sel: "+c+")");var n,o,u,s,q;if(k){u=/^style$/i.test(k);q=(s=/^class$/i.test(k))?"className":k;n=function(j,r){j.setAttribute(J+k,r);if(q in j&&!u)try{j[q]=""}catch(p){}if(j.nodeType===1){j.removeAttribute(k);s&&j.removeAttribute(q)}};o=u||s?u?function(j){return j.style.cssText}:function(j){return j.className}:function(j){return j.getAttribute(k)};
+a=function(j){return j.replace(/\"/g,"&quot;")};g=g?function(j,r){n(j,r+o(j))}:l?function(j,r){n(j,o(j)+r)}:function(j,r){n(j,r)}}else{g=f?function(j,r){var p=j.parentNode;if(p){p.insertBefore(document.createTextNode(r),j.nextSibling);p.removeChild(j)}}:g?function(j,r){j.insertBefore(document.createTextNode(r),j.firstChild)}:l?function(j,r){j.appendChild(document.createTextNode(r))}:function(j,r){for(;j.firstChild;)j.removeChild(j.firstChild);j.appendChild(document.createTextNode(r))};a=function(j){return j}}return{attr:k,
+nodes:e,set:g,sel:c,quotefn:a}}function E(a,b){for(var f=K+b+":",c=0;c<a.nodes.length;c++)a.set(a.nodes[c],f)}function L(a,b,f,c,g){return function(i){var k=b(i),l=i[a],e={items:k},n=0,o,u=[],s=function(j,r,p,x){var z=i.pos,v=i.item,U=i.items;i.pos=r.pos=j;i.item=r.item=k[j];i.items=k;typeof x!=="undefined"&&(i.length=x);if(typeof p==="function"&&p.call(i.item,i)===false)n++;else{u.push(f.call(i.item,i));i.pos=z;i.item=v;i.items=U}};i[a]=e;if(F(k)){o=k.length||0;typeof c==="function"&&k.sort(c);for(var q=
+0;q<o;q++)s(q,e,g,o-n)}else{k&&typeof c!=="undefined"&&t("sort is only available on arrays, not objects");for(o in k)k.hasOwnProperty(o)&&s(o,e,g)}typeof l!=="undefined"?i[a]=l:delete i[a];return u.join("")}}function M(a,b,f,c){var g=false,i,k,l,e;for(e in f)if(f.hasOwnProperty(e))if(e==="sort")k=f.sort;else if(e==="filter")l=f.filter;else{g&&t("cannot have more than one loop on a target");i=e;g=true}i||t("Error in the selector: "+b+"\nA directive action must be a string, a function or a loop(<-)");
+g=f[i];if(typeof g==="string"||typeof g==="function"){f={};f[i]={root:g};return M(a,b,f,c)}f=T(i);i=y(f.sel);a=D(a,b,true);b=a.nodes;for(w=0;w<b.length;w++){e=b[w];var n=B(e,g);c[c.length]=C(a.quotefn,L(f.name,i,n,k,l));a.nodes=[e];E(a,c.length-1)}return a}function V(a,b){function f(j,r){var p=j.match(I);p={prepend:!!p[1],prop:p[2],attr:p[3]||W[r],append:!!p[4],sel:j};var x,z,v;for(x=i.a.length-1;x>=0;x--){z=i.a[x];v=(v=z.l[0])&&v[p.prop];if(typeof v!=="undefined"){p.prop=z.p+"."+p.prop;if(i.l[p.prop]===
+true)v=v[0];break}}if(typeof v==="undefined"){v=y(p.prop)(F(b)?b[0]:b);if(v==="")return false}if(F(v)){i.a.push({l:v,p:p.prop});i.l[p.prop]=true;p.t="loop"}else p.t="str";return p}var c=a.getElementsByTagName("*"),g=[],i={a:[],l:{}},k,l,e,n,o,u,s,q;e=-1;for(n=c.length;e<n;e++){s=e>-1?c[e]:a;if(s.nodeType===1&&s.className!==""){q=s.className.split(" ");o=0;for(u=q.length;o<u;o++){k=q[o];k=f(k,s.tagName);if(k!==false){l=/nodevalue/i.test(k.attr);if(k.sel.indexOf("@")>-1||l){s.className=s.className.replace("@"+
+k.attr,"");if(l)k.attr=false}g.push({n:s,cspec:k})}}}}return g}function B(a,b,f,c){var g=[],i,k,l,e,n,o,u,s,q,j=[];c=c||f&&V(a,f);if(f)for(;c.length>0;){l=c[0].cspec;e=c[0].n;c.splice(0,1);if(l.t==="str"){e=D(e,l,false);E(e,g.length);g[g.length]=C(e.quotefn,y(l.prop))}else{o=y(l.sel);e=D(e,l,true);n=e.nodes;i=0;for(k=n.length;i<k;i++){u=n[i];s=B(u,false,f,c);g[g.length]=C(e.quotefn,L(l.sel,o,s));e.nodes=[u];E(e,g.length-1)}}}for(q in b)if(b.hasOwnProperty(q)){f=0;c=b[q];l=q.split(/\s*,\s*/);o=l.length;
+do if(typeof c==="function"||typeof c==="string"){q=l[f];e=D(a,q,false);E(e,g.length);g[g.length]=C(e.quotefn,y(c))}else M(a,q,c,g);while(++f<o)}a=G(a);a=a.replace(/<([^>]+)\s(value\=""|selected)\s?([^>]*)>/ig,"<$1 $3>");a=a.split(J).join("");a=a.split(K);for(f=1;f<a.length;f++){b=a[f];j[f]=g[parseInt(b,10)];a[f]=b.substring(b.indexOf(":")+1)}return H(a,j)}function P(a,b,f){var c=B((f||this[0]).cloneNode(true),a,b);return function(g){return c({context:g})}}function Q(a,b){for(var f=typeof b==="function"&&
+b,c=0,g=this.length;c<g;c++)this[c]=N(this[c],(f||m.compile(b,false,this[c]))(a,false));context=null;return this}function R(a,b){for(var f=m.compile(b,a,this[0]),c=0,g=this.length;c<g;c++)this[c]=N(this[c],f(a,false));context=null;return this}function N(a,b){var f,c=a.parentNode,g=0;if(!c){c=document.createElement("DIV");c.appendChild(a)}switch(a.tagName){case "TBODY":case "THEAD":case "TFOOT":b="<TABLE>"+b+"</TABLE>";g=1;break;case "TR":b="<TABLE><TBODY>"+b+"</TBODY></TABLE>";g=2;break;case "TD":case "TH":b=
+"<TABLE><TBODY><TR>"+b+"</TR></TBODY></TABLE>";g=3;break}tmp=document.createElement("SPAN");tmp.style.display="none";document.body.appendChild(tmp);tmp.innerHTML=b;for(f=tmp.firstChild;g--;)f=f.firstChild;c.insertBefore(f,a);c.removeChild(a);document.body.removeChild(tmp);return a=f}var A=[];m=m||O();switch(typeof d){case "string":A=m.find(h||document,d);A.length===0&&t('The template "'+d+'" was not found');break;case "undefined":t("The root of the template is undefined, check your selector");break;
+default:A=d}var w=0;for(d=A.length;w<d;w++)m[w]=A[w];m.length=d;var K="_s"+Math.floor(Math.random()*1E6)+"_",J="_a"+Math.floor(Math.random()*1E6)+"_",I=/^(\+)?([^\@\+]+)?\@?([^\+]+)?(\+)?$/,W={IMG:"src",INPUT:"value"},F=Array.isArray?function(a){return Array.isArray(a)}:function(a){return Object.prototype.toString.call(a)==="[object Array]"};return m};$p.plugins={};
+$p.libs={dojo:function(){if(typeof document.querySelector==="undefined")$p.plugins.find=function(d,h){return dojo.query(h,d)}},domassistant:function(){if(typeof document.querySelector==="undefined")$p.plugins.find=function(d,h){return $(d).cssSelect(h)};DOMAssistant.attach({publicMethods:["compile","render","autoRender"],compile:function(d,h){return $p([this]).compile(d,h)},render:function(d,h){return $($p([this]).render(d,h))[0]},autoRender:function(d,h){return $($p([this]).autoRender(d,h))[0]}})},
+jquery:function(){if(typeof document.querySelector==="undefined")$p.plugins.find=function(d,h){return jQuery(d).find(h)};jQuery.fn.extend({directives:function(d){this._pure_d=d;return this},compile:function(d,h){return $p(this).compile(this._pure_d||d,h)},render:function(d,h){return jQuery($p(this).render(d,this._pure_d||h))},autoRender:function(d,h){return jQuery($p(this).autoRender(d,this._pure_d||h))}})},mootools:function(){if(typeof document.querySelector==="undefined")$p.plugins.find=function(d,
+h){return $(d).getElements(h)};Element.implement({compile:function(d,h){return $p(this).compile(d,h)},render:function(d,h){return $p([this]).render(d,h)},autoRender:function(d,h){return $p([this]).autoRender(d,h)}})},prototype:function(){if(typeof document.querySelector==="undefined")$p.plugins.find=function(d,h){d=d===document?d.body:d;return typeof d==="string"?$$(d):$(d).select(h)};Element.addMethods({compile:function(d,h,m){return $p([d]).compile(h,m)},render:function(d,h,m){return $p([d]).render(h,
+m)},autoRender:function(d,h,m){return $p([d]).autoRender(h,m)}})},sizzle:function(){if(typeof document.querySelector==="undefined")$p.plugins.find=function(d,h){return Sizzle(h,d)}},sly:function(){if(typeof document.querySelector==="undefined")$p.plugins.find=function(d,h){return Sly(h,d)}},yui:function(){typeof document.querySelector==="undefined"&&YUI().use("node",function(d){$p.plugins.find=function(h,m){return d.NodeList.getDOMNodes(d.one(h).all(m))}});YUI.add("pure-yui",function(d){d.Node.prototype.directives=
+function(h){this._pure_d=h;return this};d.Node.prototype.compile=function(h,m){return $p([this._node]).compile(this._pure_d||h,m)};d.Node.prototype.render=function(h,m){return d.one($p([this._node]).render(h,this._pure_d||m))};d.Node.prototype.autoRender=function(h,m){return d.one($p([this._node]).autoRender(h,this._pure_d||m))}},"0.1",{requires:["node"]})}};
+(function(){var d=typeof dojo!=="undefined"&&"dojo"||typeof DOMAssistant!=="undefined"&&"domassistant"||typeof jQuery!=="undefined"&&"jquery"||typeof MooTools!=="undefined"&&"mootools"||typeof Prototype!=="undefined"&&"prototype"||typeof Sizzle!=="undefined"&&"sizzle"||typeof Sly!=="undefined"&&"sly"||typeof YUI!=="undefined"&&"yui";d&&$p.libs[d]();if(typeof exports!=="undefined")exports.$p=$p})();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/treemap/design.css	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,159 @@
+@CHARSET "ISO-8859-1";
+
+/* -- General style -- */
+
+body {
+	width: 960px;
+	font: 14px Helvetica Neue;
+	text-rendering: optimizeLegibility;
+	overflow-y: scroll;
+	z-index: 1;
+	position: relative;
+}
+
+h1 {
+  font-size: 36px;
+  font-weight: 300;
+  margin-bottom: .3em;
+}
+
+
+/* -- Streamgraph Style -- */
+
+#streamgraphTimeline {
+  font: 10px sans-serif;
+  margin: 10px 0;
+}
+
+svg path {
+	position: relative;
+}
+
+/* -- Treemap style -- */
+
+#treemap {
+  margin: 30px 0;
+}
+
+.cell {
+    border: 1px solid white;
+    font: 15px/17px sans-serif;
+    overflow: hidden;
+    position: absolute;
+    text-indent: 0px;
+}
+.cell.selected {
+    border-color: black;
+    z-index: 5;
+}
+.details {
+    background: none repeat scroll 0 0 white;
+    border: 1px solid black;
+    border-radius: 7px 0 0 0;
+    display: none;
+    margin: 10px 0px 0px 10px;
+    padding: 10px;
+    position: absolute;
+    width: 200px;
+    z-index: 10;
+}
+.details .size {
+    font-weight: bold;
+}
+.details .name {
+    font-weight: bold;
+    margin-left: 10px;
+}
+
+.title {
+	font-weight: bold;
+	z-index: 2;
+	position: absolute;
+	background-color: white;
+	text-align: center;
+	top: 0px;
+	left: 0px;
+	margin: 0px;
+	opacity: 0.4;
+};
+
+.img {
+	position: relative;
+}
+
+/* -- Style for the selectors -- */
+
+div.selecteur {
+	width: 5px;
+	height: 50px;
+	z-index: 2;
+	position: absolute;
+	background-color: #FFFFFF;
+	opacity: 0.5;
+	border-style: solid;
+	border-color: #000000;
+	border-width: 2px 0px;
+}
+
+div.selecteur.gauche {
+	border-left-width: 2px;
+}
+
+div.selecteur.droite {
+	border-right-width: 2px;
+}
+
+div.selection {
+	background: black;
+	height: 3px;
+	z-index: 2;
+	position: absolute;
+	opacity: 1;
+}
+
+div.cache {
+	background-color:#000000;
+	opacity:0.3;
+	z-index: 2;
+	position: absolute;
+}
+
+div.cache.droite {
+}
+
+div.cache.gauche {
+	width: 0px;
+}
+
+/* -- streamgraph -- */
+
+#streamgraphTimeline div.selecteur {
+	height: 50px; 
+}
+
+#streamgraphTimeline div.selection {
+	height: 5px; 
+}
+
+#streamgraphTimeline div.cache {
+	height: 50px; 
+}
+
+.time-unit {
+	border-width: 0 1px 1px;
+	border-style: solid;
+	border-color: black;
+	display: inline-block;
+	margin-right:	1px;
+	padding: 1px;
+	text-align: center;
+	width: 85px;
+}
+
+#streamgraphTimeline .curseur {
+	height: 50px;
+	width: 1px;
+	background: black;
+	z-index: 5;
+	position: absolute;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/treemap/donnees.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,3542 @@
+var json = { "articles" : [[
+{ "id" : 0, "titre" : "Titre numero 0", "date" : 9, "poids" : 27, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1, "titre" : "Titre numero 1", "date" : 9, "poids" : 12, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2, "titre" : "Titre numero 2", "date" : 1, "poids" : 21, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 3, "titre" : "Titre numero 3", "date" : 4, "poids" : 5, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 4, "titre" : "Titre numero 4", "date" : 18, "poids" : 45, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 5, "titre" : "Titre numero 5", "date" : 11, "poids" : 22, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 6, "titre" : "Titre numero 6", "date" : 17, "poids" : 44, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 7, "titre" : "Titre numero 7", "date" : 2, "poids" : 9, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 8, "titre" : "Titre numero 8", "date" : 19, "poids" : 12, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 9, "titre" : "Titre numero 9", "date" : 2, "poids" : 17, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 10, "titre" : "Titre numero 10", "date" : 1, "poids" : 5, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 11, "titre" : "Titre numero 11", "date" : 23, "poids" : 6, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 12, "titre" : "Titre numero 12", "date" : 2, "poids" : 48, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 13, "titre" : "Titre numero 13", "date" : 22, "poids" : 25, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 14, "titre" : "Titre numero 14", "date" : 3, "poids" : 50, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 15, "titre" : "Titre numero 15", "date" : 5, "poids" : 30, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 16, "titre" : "Titre numero 16", "date" : 14, "poids" : 5, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 17, "titre" : "Titre numero 17", "date" : 12, "poids" : 6, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 18, "titre" : "Titre numero 18", "date" : 20, "poids" : 13, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 19, "titre" : "Titre numero 19", "date" : 20, "poids" : 50, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 20, "titre" : "Titre numero 20", "date" : 5, "poids" : 9, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 21, "titre" : "Titre numero 21", "date" : 13, "poids" : 53, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 22, "titre" : "Titre numero 22", "date" : 14, "poids" : 47, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 23, "titre" : "Titre numero 23", "date" : 0, "poids" : 38, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 24, "titre" : "Titre numero 24", "date" : 24, "poids" : 54, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 25, "titre" : "Titre numero 25", "date" : 17, "poids" : 53, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 26, "titre" : "Titre numero 26", "date" : 14, "poids" : 12, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 27, "titre" : "Titre numero 27", "date" : 1, "poids" : 27, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 28, "titre" : "Titre numero 28", "date" : 20, "poids" : 45, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 29, "titre" : "Titre numero 29", "date" : 8, "poids" : 49, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 30, "titre" : "Titre numero 30", "date" : 17, "poids" : 36, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 31, "titre" : "Titre numero 31", "date" : 9, "poids" : 20, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 32, "titre" : "Titre numero 32", "date" : 16, "poids" : 37, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 33, "titre" : "Titre numero 33", "date" : 15, "poids" : 20, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 34, "titre" : "Titre numero 34", "date" : 4, "poids" : 33, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 35, "titre" : "Titre numero 35", "date" : 4, "poids" : 45, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 36, "titre" : "Titre numero 36", "date" : 13, "poids" : 31, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 37, "titre" : "Titre numero 37", "date" : 8, "poids" : 31, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 38, "titre" : "Titre numero 38", "date" : 18, "poids" : 51, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 39, "titre" : "Titre numero 39", "date" : 1, "poids" : 19, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 40, "titre" : "Titre numero 40", "date" : 8, "poids" : 32, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 41, "titre" : "Titre numero 41", "date" : 15, "poids" : 11, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 42, "titre" : "Titre numero 42", "date" : 14, "poids" : 42, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 43, "titre" : "Titre numero 43", "date" : 8, "poids" : 41, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 44, "titre" : "Titre numero 44", "date" : 15, "poids" : 36, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 45, "titre" : "Titre numero 45", "date" : 14, "poids" : 22, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 46, "titre" : "Titre numero 46", "date" : 17, "poids" : 29, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 47, "titre" : "Titre numero 47", "date" : 9, "poids" : 31, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 48, "titre" : "Titre numero 48", "date" : 9, "poids" : 28, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 49, "titre" : "Titre numero 49", "date" : 18, "poids" : 15, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 50, "titre" : "Titre numero 50", "date" : 6, "poids" : 39, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 51, "titre" : "Titre numero 51", "date" : 15, "poids" : 41, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 52, "titre" : "Titre numero 52", "date" : 7, "poids" : 38, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 53, "titre" : "Titre numero 53", "date" : 4, "poids" : 18, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 54, "titre" : "Titre numero 54", "date" : 23, "poids" : 10, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 55, "titre" : "Titre numero 55", "date" : 16, "poids" : 54, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 56, "titre" : "Titre numero 56", "date" : 6, "poids" : 45, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 57, "titre" : "Titre numero 57", "date" : 9, "poids" : 16, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 58, "titre" : "Titre numero 58", "date" : 15, "poids" : 34, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 59, "titre" : "Titre numero 59", "date" : 12, "poids" : 52, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 60, "titre" : "Titre numero 60", "date" : 6, "poids" : 42, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 61, "titre" : "Titre numero 61", "date" : 23, "poids" : 30, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 62, "titre" : "Titre numero 62", "date" : 12, "poids" : 29, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 63, "titre" : "Titre numero 63", "date" : 23, "poids" : 24, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 64, "titre" : "Titre numero 64", "date" : 9, "poids" : 28, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 65, "titre" : "Titre numero 65", "date" : 15, "poids" : 42, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 66, "titre" : "Titre numero 66", "date" : 24, "poids" : 5, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 67, "titre" : "Titre numero 67", "date" : 14, "poids" : 14, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 68, "titre" : "Titre numero 68", "date" : 18, "poids" : 18, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 69, "titre" : "Titre numero 69", "date" : 7, "poids" : 19, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 70, "titre" : "Titre numero 70", "date" : 19, "poids" : 8, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 71, "titre" : "Titre numero 71", "date" : 24, "poids" : 43, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 72, "titre" : "Titre numero 72", "date" : 20, "poids" : 22, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 73, "titre" : "Titre numero 73", "date" : 7, "poids" : 36, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 74, "titre" : "Titre numero 74", "date" : 2, "poids" : 39, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 75, "titre" : "Titre numero 75", "date" : 13, "poids" : 35, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 76, "titre" : "Titre numero 76", "date" : 18, "poids" : 25, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 77, "titre" : "Titre numero 77", "date" : 10, "poids" : 37, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 78, "titre" : "Titre numero 78", "date" : 6, "poids" : 54, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 79, "titre" : "Titre numero 79", "date" : 1, "poids" : 11, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 80, "titre" : "Titre numero 80", "date" : 11, "poids" : 7, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 81, "titre" : "Titre numero 81", "date" : 12, "poids" : 8, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 82, "titre" : "Titre numero 82", "date" : 6, "poids" : 18, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 83, "titre" : "Titre numero 83", "date" : 22, "poids" : 16, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 84, "titre" : "Titre numero 84", "date" : 20, "poids" : 51, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 85, "titre" : "Titre numero 85", "date" : 2, "poids" : 53, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 86, "titre" : "Titre numero 86", "date" : 6, "poids" : 32, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 87, "titre" : "Titre numero 87", "date" : 18, "poids" : 22, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 88, "titre" : "Titre numero 88", "date" : 14, "poids" : 11, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 89, "titre" : "Titre numero 89", "date" : 16, "poids" : 29, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 90, "titre" : "Titre numero 90", "date" : 16, "poids" : 26, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 91, "titre" : "Titre numero 91", "date" : 8, "poids" : 43, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 92, "titre" : "Titre numero 92", "date" : 6, "poids" : 14, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 93, "titre" : "Titre numero 93", "date" : 2, "poids" : 23, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 94, "titre" : "Titre numero 94", "date" : 21, "poids" : 5, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 95, "titre" : "Titre numero 95", "date" : 18, "poids" : 30, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 96, "titre" : "Titre numero 96", "date" : 2, "poids" : 36, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 97, "titre" : "Titre numero 97", "date" : 12, "poids" : 45, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 98, "titre" : "Titre numero 98", "date" : 15, "poids" : 34, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 99, "titre" : "Titre numero 99", "date" : 22, "poids" : 47, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 100, "titre" : "Titre numero 100", "date" : 11, "poids" : 27, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 101, "titre" : "Titre numero 101", "date" : 15, "poids" : 38, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 102, "titre" : "Titre numero 102", "date" : 18, "poids" : 30, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 103, "titre" : "Titre numero 103", "date" : 18, "poids" : 12, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 104, "titre" : "Titre numero 104", "date" : 5, "poids" : 23, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 105, "titre" : "Titre numero 105", "date" : 9, "poids" : 44, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 106, "titre" : "Titre numero 106", "date" : 14, "poids" : 32, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 107, "titre" : "Titre numero 107", "date" : 3, "poids" : 26, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 108, "titre" : "Titre numero 108", "date" : 5, "poids" : 47, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 109, "titre" : "Titre numero 109", "date" : 0, "poids" : 5, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 110, "titre" : "Titre numero 110", "date" : 14, "poids" : 23, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 111, "titre" : "Titre numero 111", "date" : 7, "poids" : 10, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 112, "titre" : "Titre numero 112", "date" : 15, "poids" : 7, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 113, "titre" : "Titre numero 113", "date" : 8, "poids" : 33, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 114, "titre" : "Titre numero 114", "date" : 2, "poids" : 18, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 115, "titre" : "Titre numero 115", "date" : 19, "poids" : 6, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 116, "titre" : "Titre numero 116", "date" : 24, "poids" : 50, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 117, "titre" : "Titre numero 117", "date" : 21, "poids" : 51, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 118, "titre" : "Titre numero 118", "date" : 17, "poids" : 9, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 119, "titre" : "Titre numero 119", "date" : 20, "poids" : 48, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 120, "titre" : "Titre numero 120", "date" : 24, "poids" : 33, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 121, "titre" : "Titre numero 121", "date" : 23, "poids" : 42, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 122, "titre" : "Titre numero 122", "date" : 17, "poids" : 28, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 123, "titre" : "Titre numero 123", "date" : 23, "poids" : 13, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 124, "titre" : "Titre numero 124", "date" : 22, "poids" : 49, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 125, "titre" : "Titre numero 125", "date" : 11, "poids" : 36, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 126, "titre" : "Titre numero 126", "date" : 17, "poids" : 5, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 127, "titre" : "Titre numero 127", "date" : 18, "poids" : 51, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 128, "titre" : "Titre numero 128", "date" : 2, "poids" : 46, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 129, "titre" : "Titre numero 129", "date" : 13, "poids" : 18, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 130, "titre" : "Titre numero 130", "date" : 3, "poids" : 34, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 131, "titre" : "Titre numero 131", "date" : 0, "poids" : 54, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 132, "titre" : "Titre numero 132", "date" : 3, "poids" : 39, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 133, "titre" : "Titre numero 133", "date" : 10, "poids" : 51, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 134, "titre" : "Titre numero 134", "date" : 8, "poids" : 17, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 135, "titre" : "Titre numero 135", "date" : 12, "poids" : 7, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 136, "titre" : "Titre numero 136", "date" : 23, "poids" : 51, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 137, "titre" : "Titre numero 137", "date" : 3, "poids" : 20, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 138, "titre" : "Titre numero 138", "date" : 14, "poids" : 32, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 139, "titre" : "Titre numero 139", "date" : 15, "poids" : 51, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 140, "titre" : "Titre numero 140", "date" : 1, "poids" : 27, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 141, "titre" : "Titre numero 141", "date" : 7, "poids" : 41, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 142, "titre" : "Titre numero 142", "date" : 8, "poids" : 15, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 143, "titre" : "Titre numero 143", "date" : 11, "poids" : 49, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 144, "titre" : "Titre numero 144", "date" : 22, "poids" : 37, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 145, "titre" : "Titre numero 145", "date" : 12, "poids" : 35, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 146, "titre" : "Titre numero 146", "date" : 18, "poids" : 17, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 147, "titre" : "Titre numero 147", "date" : 4, "poids" : 14, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 148, "titre" : "Titre numero 148", "date" : 10, "poids" : 16, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 149, "titre" : "Titre numero 149", "date" : 2, "poids" : 29, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 150, "titre" : "Titre numero 150", "date" : 5, "poids" : 15, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 151, "titre" : "Titre numero 151", "date" : 21, "poids" : 17, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 152, "titre" : "Titre numero 152", "date" : 10, "poids" : 34, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 153, "titre" : "Titre numero 153", "date" : 22, "poids" : 15, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 154, "titre" : "Titre numero 154", "date" : 21, "poids" : 37, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 155, "titre" : "Titre numero 155", "date" : 7, "poids" : 8, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 156, "titre" : "Titre numero 156", "date" : 16, "poids" : 11, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 157, "titre" : "Titre numero 157", "date" : 24, "poids" : 29, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 158, "titre" : "Titre numero 158", "date" : 8, "poids" : 44, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 159, "titre" : "Titre numero 159", "date" : 6, "poids" : 37, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 160, "titre" : "Titre numero 160", "date" : 15, "poids" : 21, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 161, "titre" : "Titre numero 161", "date" : 20, "poids" : 33, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 162, "titre" : "Titre numero 162", "date" : 2, "poids" : 53, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 163, "titre" : "Titre numero 163", "date" : 13, "poids" : 30, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 164, "titre" : "Titre numero 164", "date" : 6, "poids" : 28, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 165, "titre" : "Titre numero 165", "date" : 16, "poids" : 23, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 166, "titre" : "Titre numero 166", "date" : 19, "poids" : 36, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 167, "titre" : "Titre numero 167", "date" : 3, "poids" : 25, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 168, "titre" : "Titre numero 168", "date" : 20, "poids" : 25, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 169, "titre" : "Titre numero 169", "date" : 23, "poids" : 5, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 170, "titre" : "Titre numero 170", "date" : 23, "poids" : 31, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 171, "titre" : "Titre numero 171", "date" : 1, "poids" : 29, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 172, "titre" : "Titre numero 172", "date" : 6, "poids" : 47, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 173, "titre" : "Titre numero 173", "date" : 18, "poids" : 48, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 174, "titre" : "Titre numero 174", "date" : 15, "poids" : 21, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 175, "titre" : "Titre numero 175", "date" : 16, "poids" : 13, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 176, "titre" : "Titre numero 176", "date" : 22, "poids" : 13, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 177, "titre" : "Titre numero 177", "date" : 7, "poids" : 45, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 178, "titre" : "Titre numero 178", "date" : 5, "poids" : 40, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 179, "titre" : "Titre numero 179", "date" : 2, "poids" : 9, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 180, "titre" : "Titre numero 180", "date" : 8, "poids" : 22, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 181, "titre" : "Titre numero 181", "date" : 9, "poids" : 5, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 182, "titre" : "Titre numero 182", "date" : 19, "poids" : 25, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 183, "titre" : "Titre numero 183", "date" : 21, "poids" : 36, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 184, "titre" : "Titre numero 184", "date" : 18, "poids" : 36, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 185, "titre" : "Titre numero 185", "date" : 10, "poids" : 34, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 186, "titre" : "Titre numero 186", "date" : 6, "poids" : 41, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 187, "titre" : "Titre numero 187", "date" : 7, "poids" : 15, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 188, "titre" : "Titre numero 188", "date" : 5, "poids" : 47, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 189, "titre" : "Titre numero 189", "date" : 22, "poids" : 5, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 190, "titre" : "Titre numero 190", "date" : 8, "poids" : 21, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 191, "titre" : "Titre numero 191", "date" : 5, "poids" : 42, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 192, "titre" : "Titre numero 192", "date" : 13, "poids" : 50, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 193, "titre" : "Titre numero 193", "date" : 7, "poids" : 19, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 194, "titre" : "Titre numero 194", "date" : 10, "poids" : 49, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 195, "titre" : "Titre numero 195", "date" : 14, "poids" : 28, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 196, "titre" : "Titre numero 196", "date" : 13, "poids" : 46, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 197, "titre" : "Titre numero 197", "date" : 5, "poids" : 34, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 198, "titre" : "Titre numero 198", "date" : 15, "poids" : 23, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 199, "titre" : "Titre numero 199", "date" : 8, "poids" : 12, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 200, "titre" : "Titre numero 200", "date" : 14, "poids" : 53, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 201, "titre" : "Titre numero 201", "date" : 14, "poids" : 43, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 202, "titre" : "Titre numero 202", "date" : 7, "poids" : 16, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 203, "titre" : "Titre numero 203", "date" : 3, "poids" : 45, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 204, "titre" : "Titre numero 204", "date" : 11, "poids" : 34, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 205, "titre" : "Titre numero 205", "date" : 24, "poids" : 41, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 206, "titre" : "Titre numero 206", "date" : 14, "poids" : 27, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 207, "titre" : "Titre numero 207", "date" : 13, "poids" : 45, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 208, "titre" : "Titre numero 208", "date" : 16, "poids" : 41, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 209, "titre" : "Titre numero 209", "date" : 1, "poids" : 39, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 210, "titre" : "Titre numero 210", "date" : 2, "poids" : 22, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 211, "titre" : "Titre numero 211", "date" : 20, "poids" : 25, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 212, "titre" : "Titre numero 212", "date" : 8, "poids" : 52, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 213, "titre" : "Titre numero 213", "date" : 14, "poids" : 38, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 214, "titre" : "Titre numero 214", "date" : 17, "poids" : 35, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 215, "titre" : "Titre numero 215", "date" : 23, "poids" : 48, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 216, "titre" : "Titre numero 216", "date" : 10, "poids" : 34, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 217, "titre" : "Titre numero 217", "date" : 9, "poids" : 25, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 218, "titre" : "Titre numero 218", "date" : 13, "poids" : 23, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 219, "titre" : "Titre numero 219", "date" : 11, "poids" : 30, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 220, "titre" : "Titre numero 220", "date" : 5, "poids" : 49, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 221, "titre" : "Titre numero 221", "date" : 16, "poids" : 13, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 222, "titre" : "Titre numero 222", "date" : 19, "poids" : 35, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 223, "titre" : "Titre numero 223", "date" : 4, "poids" : 52, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 224, "titre" : "Titre numero 224", "date" : 0, "poids" : 11, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 225, "titre" : "Titre numero 225", "date" : 23, "poids" : 54, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 226, "titre" : "Titre numero 226", "date" : 12, "poids" : 23, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 227, "titre" : "Titre numero 227", "date" : 21, "poids" : 46, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 228, "titre" : "Titre numero 228", "date" : 21, "poids" : 32, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 229, "titre" : "Titre numero 229", "date" : 9, "poids" : 49, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 230, "titre" : "Titre numero 230", "date" : 16, "poids" : 35, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 231, "titre" : "Titre numero 231", "date" : 12, "poids" : 54, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 232, "titre" : "Titre numero 232", "date" : 9, "poids" : 32, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 233, "titre" : "Titre numero 233", "date" : 21, "poids" : 29, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 234, "titre" : "Titre numero 234", "date" : 3, "poids" : 50, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 235, "titre" : "Titre numero 235", "date" : 10, "poids" : 52, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 236, "titre" : "Titre numero 236", "date" : 4, "poids" : 51, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 237, "titre" : "Titre numero 237", "date" : 10, "poids" : 33, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 238, "titre" : "Titre numero 238", "date" : 2, "poids" : 13, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 239, "titre" : "Titre numero 239", "date" : 3, "poids" : 6, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 240, "titre" : "Titre numero 240", "date" : 8, "poids" : 49, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 241, "titre" : "Titre numero 241", "date" : 17, "poids" : 7, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 242, "titre" : "Titre numero 242", "date" : 7, "poids" : 21, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 243, "titre" : "Titre numero 243", "date" : 15, "poids" : 34, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 244, "titre" : "Titre numero 244", "date" : 3, "poids" : 43, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 245, "titre" : "Titre numero 245", "date" : 6, "poids" : 30, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 246, "titre" : "Titre numero 246", "date" : 11, "poids" : 6, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 247, "titre" : "Titre numero 247", "date" : 14, "poids" : 10, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 248, "titre" : "Titre numero 248", "date" : 0, "poids" : 17, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 249, "titre" : "Titre numero 249", "date" : 21, "poids" : 43, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 250, "titre" : "Titre numero 250", "date" : 9, "poids" : 12, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 251, "titre" : "Titre numero 251", "date" : 21, "poids" : 41, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 252, "titre" : "Titre numero 252", "date" : 20, "poids" : 28, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 253, "titre" : "Titre numero 253", "date" : 7, "poids" : 18, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 254, "titre" : "Titre numero 254", "date" : 20, "poids" : 12, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 255, "titre" : "Titre numero 255", "date" : 4, "poids" : 21, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 256, "titre" : "Titre numero 256", "date" : 20, "poids" : 37, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 257, "titre" : "Titre numero 257", "date" : 9, "poids" : 12, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 258, "titre" : "Titre numero 258", "date" : 18, "poids" : 25, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 259, "titre" : "Titre numero 259", "date" : 14, "poids" : 21, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 260, "titre" : "Titre numero 260", "date" : 1, "poids" : 28, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 261, "titre" : "Titre numero 261", "date" : 12, "poids" : 47, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 262, "titre" : "Titre numero 262", "date" : 11, "poids" : 22, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 263, "titre" : "Titre numero 263", "date" : 5, "poids" : 35, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 264, "titre" : "Titre numero 264", "date" : 17, "poids" : 9, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 265, "titre" : "Titre numero 265", "date" : 6, "poids" : 27, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 266, "titre" : "Titre numero 266", "date" : 0, "poids" : 11, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 267, "titre" : "Titre numero 267", "date" : 23, "poids" : 34, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 268, "titre" : "Titre numero 268", "date" : 22, "poids" : 6, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 269, "titre" : "Titre numero 269", "date" : 4, "poids" : 36, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 270, "titre" : "Titre numero 270", "date" : 3, "poids" : 16, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 271, "titre" : "Titre numero 271", "date" : 1, "poids" : 45, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 272, "titre" : "Titre numero 272", "date" : 18, "poids" : 46, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 273, "titre" : "Titre numero 273", "date" : 24, "poids" : 33, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 274, "titre" : "Titre numero 274", "date" : 3, "poids" : 5, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 275, "titre" : "Titre numero 275", "date" : 12, "poids" : 16, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 276, "titre" : "Titre numero 276", "date" : 16, "poids" : 25, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 277, "titre" : "Titre numero 277", "date" : 18, "poids" : 37, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 278, "titre" : "Titre numero 278", "date" : 11, "poids" : 12, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 279, "titre" : "Titre numero 279", "date" : 1, "poids" : 25, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 280, "titre" : "Titre numero 280", "date" : 14, "poids" : 19, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 281, "titre" : "Titre numero 281", "date" : 16, "poids" : 18, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 282, "titre" : "Titre numero 282", "date" : 6, "poids" : 9, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 283, "titre" : "Titre numero 283", "date" : 5, "poids" : 22, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 284, "titre" : "Titre numero 284", "date" : 10, "poids" : 7, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 285, "titre" : "Titre numero 285", "date" : 4, "poids" : 27, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 286, "titre" : "Titre numero 286", "date" : 5, "poids" : 54, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 287, "titre" : "Titre numero 287", "date" : 7, "poids" : 28, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 288, "titre" : "Titre numero 288", "date" : 7, "poids" : 54, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 289, "titre" : "Titre numero 289", "date" : 16, "poids" : 22, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 290, "titre" : "Titre numero 290", "date" : 2, "poids" : 14, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 291, "titre" : "Titre numero 291", "date" : 6, "poids" : 41, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 292, "titre" : "Titre numero 292", "date" : 6, "poids" : 9, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 293, "titre" : "Titre numero 293", "date" : 21, "poids" : 19, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 294, "titre" : "Titre numero 294", "date" : 17, "poids" : 14, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 295, "titre" : "Titre numero 295", "date" : 22, "poids" : 52, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 296, "titre" : "Titre numero 296", "date" : 15, "poids" : 6, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 297, "titre" : "Titre numero 297", "date" : 9, "poids" : 45, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 298, "titre" : "Titre numero 298", "date" : 21, "poids" : 47, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 299, "titre" : "Titre numero 299", "date" : 0, "poids" : 32, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 300, "titre" : "Titre numero 300", "date" : 16, "poids" : 22, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 301, "titre" : "Titre numero 301", "date" : 13, "poids" : 15, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 302, "titre" : "Titre numero 302", "date" : 0, "poids" : 50, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 303, "titre" : "Titre numero 303", "date" : 24, "poids" : 36, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 304, "titre" : "Titre numero 304", "date" : 7, "poids" : 35, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 305, "titre" : "Titre numero 305", "date" : 24, "poids" : 40, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 306, "titre" : "Titre numero 306", "date" : 9, "poids" : 42, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 307, "titre" : "Titre numero 307", "date" : 6, "poids" : 9, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 308, "titre" : "Titre numero 308", "date" : 12, "poids" : 37, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 309, "titre" : "Titre numero 309", "date" : 20, "poids" : 49, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 310, "titre" : "Titre numero 310", "date" : 10, "poids" : 10, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 311, "titre" : "Titre numero 311", "date" : 5, "poids" : 42, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 312, "titre" : "Titre numero 312", "date" : 10, "poids" : 24, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 313, "titre" : "Titre numero 313", "date" : 1, "poids" : 12, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 314, "titre" : "Titre numero 314", "date" : 15, "poids" : 25, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 315, "titre" : "Titre numero 315", "date" : 8, "poids" : 41, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 316, "titre" : "Titre numero 316", "date" : 5, "poids" : 17, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 317, "titre" : "Titre numero 317", "date" : 19, "poids" : 37, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 318, "titre" : "Titre numero 318", "date" : 17, "poids" : 37, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 319, "titre" : "Titre numero 319", "date" : 23, "poids" : 37, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 320, "titre" : "Titre numero 320", "date" : 7, "poids" : 23, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 321, "titre" : "Titre numero 321", "date" : 6, "poids" : 51, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 322, "titre" : "Titre numero 322", "date" : 24, "poids" : 31, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 323, "titre" : "Titre numero 323", "date" : 6, "poids" : 17, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 324, "titre" : "Titre numero 324", "date" : 8, "poids" : 22, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 325, "titre" : "Titre numero 325", "date" : 23, "poids" : 24, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 326, "titre" : "Titre numero 326", "date" : 1, "poids" : 11, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 327, "titre" : "Titre numero 327", "date" : 18, "poids" : 48, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 328, "titre" : "Titre numero 328", "date" : 24, "poids" : 6, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 329, "titre" : "Titre numero 329", "date" : 20, "poids" : 33, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 330, "titre" : "Titre numero 330", "date" : 24, "poids" : 40, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 331, "titre" : "Titre numero 331", "date" : 2, "poids" : 32, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 332, "titre" : "Titre numero 332", "date" : 21, "poids" : 18, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 333, "titre" : "Titre numero 333", "date" : 5, "poids" : 20, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 334, "titre" : "Titre numero 334", "date" : 23, "poids" : 48, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 335, "titre" : "Titre numero 335", "date" : 5, "poids" : 18, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 336, "titre" : "Titre numero 336", "date" : 10, "poids" : 40, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 337, "titre" : "Titre numero 337", "date" : 12, "poids" : 45, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 338, "titre" : "Titre numero 338", "date" : 2, "poids" : 10, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 339, "titre" : "Titre numero 339", "date" : 1, "poids" : 9, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 340, "titre" : "Titre numero 340", "date" : 9, "poids" : 50, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 341, "titre" : "Titre numero 341", "date" : 12, "poids" : 26, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 342, "titre" : "Titre numero 342", "date" : 14, "poids" : 11, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 343, "titre" : "Titre numero 343", "date" : 15, "poids" : 18, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 344, "titre" : "Titre numero 344", "date" : 4, "poids" : 29, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 345, "titre" : "Titre numero 345", "date" : 14, "poids" : 45, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 346, "titre" : "Titre numero 346", "date" : 5, "poids" : 23, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 347, "titre" : "Titre numero 347", "date" : 19, "poids" : 28, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 348, "titre" : "Titre numero 348", "date" : 3, "poids" : 15, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 349, "titre" : "Titre numero 349", "date" : 18, "poids" : 32, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 350, "titre" : "Titre numero 350", "date" : 18, "poids" : 34, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 351, "titre" : "Titre numero 351", "date" : 23, "poids" : 29, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 352, "titre" : "Titre numero 352", "date" : 19, "poids" : 54, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 353, "titre" : "Titre numero 353", "date" : 4, "poids" : 33, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 354, "titre" : "Titre numero 354", "date" : 11, "poids" : 44, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 355, "titre" : "Titre numero 355", "date" : 19, "poids" : 19, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 356, "titre" : "Titre numero 356", "date" : 16, "poids" : 42, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 357, "titre" : "Titre numero 357", "date" : 16, "poids" : 13, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 358, "titre" : "Titre numero 358", "date" : 8, "poids" : 45, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 359, "titre" : "Titre numero 359", "date" : 11, "poids" : 52, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 360, "titre" : "Titre numero 360", "date" : 4, "poids" : 7, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 361, "titre" : "Titre numero 361", "date" : 3, "poids" : 25, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 362, "titre" : "Titre numero 362", "date" : 18, "poids" : 36, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 363, "titre" : "Titre numero 363", "date" : 6, "poids" : 17, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 364, "titre" : "Titre numero 364", "date" : 10, "poids" : 5, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 365, "titre" : "Titre numero 365", "date" : 2, "poids" : 16, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 366, "titre" : "Titre numero 366", "date" : 24, "poids" : 5, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 367, "titre" : "Titre numero 367", "date" : 22, "poids" : 9, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 368, "titre" : "Titre numero 368", "date" : 16, "poids" : 49, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 369, "titre" : "Titre numero 369", "date" : 6, "poids" : 27, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 370, "titre" : "Titre numero 370", "date" : 5, "poids" : 12, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 371, "titre" : "Titre numero 371", "date" : 18, "poids" : 35, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 372, "titre" : "Titre numero 372", "date" : 1, "poids" : 49, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 373, "titre" : "Titre numero 373", "date" : 24, "poids" : 52, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 374, "titre" : "Titre numero 374", "date" : 12, "poids" : 21, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 375, "titre" : "Titre numero 375", "date" : 12, "poids" : 46, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 376, "titre" : "Titre numero 376", "date" : 23, "poids" : 31, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 377, "titre" : "Titre numero 377", "date" : 9, "poids" : 26, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 378, "titre" : "Titre numero 378", "date" : 16, "poids" : 28, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 379, "titre" : "Titre numero 379", "date" : 16, "poids" : 7, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 380, "titre" : "Titre numero 380", "date" : 24, "poids" : 6, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 381, "titre" : "Titre numero 381", "date" : 7, "poids" : 7, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 382, "titre" : "Titre numero 382", "date" : 12, "poids" : 42, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 383, "titre" : "Titre numero 383", "date" : 8, "poids" : 38, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 384, "titre" : "Titre numero 384", "date" : 22, "poids" : 25, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 385, "titre" : "Titre numero 385", "date" : 17, "poids" : 27, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 386, "titre" : "Titre numero 386", "date" : 14, "poids" : 40, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 387, "titre" : "Titre numero 387", "date" : 1, "poids" : 25, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 388, "titre" : "Titre numero 388", "date" : 23, "poids" : 39, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 389, "titre" : "Titre numero 389", "date" : 9, "poids" : 6, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 390, "titre" : "Titre numero 390", "date" : 15, "poids" : 50, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 391, "titre" : "Titre numero 391", "date" : 8, "poids" : 38, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 392, "titre" : "Titre numero 392", "date" : 0, "poids" : 28, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 393, "titre" : "Titre numero 393", "date" : 10, "poids" : 16, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 394, "titre" : "Titre numero 394", "date" : 21, "poids" : 37, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 395, "titre" : "Titre numero 395", "date" : 16, "poids" : 27, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 396, "titre" : "Titre numero 396", "date" : 19, "poids" : 46, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 397, "titre" : "Titre numero 397", "date" : 11, "poids" : 33, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 398, "titre" : "Titre numero 398", "date" : 3, "poids" : 42, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 399, "titre" : "Titre numero 399", "date" : 21, "poids" : 24, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 400, "titre" : "Titre numero 400", "date" : 15, "poids" : 13, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 401, "titre" : "Titre numero 401", "date" : 20, "poids" : 10, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 402, "titre" : "Titre numero 402", "date" : 15, "poids" : 12, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 403, "titre" : "Titre numero 403", "date" : 19, "poids" : 9, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 404, "titre" : "Titre numero 404", "date" : 13, "poids" : 32, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 405, "titre" : "Titre numero 405", "date" : 0, "poids" : 48, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 406, "titre" : "Titre numero 406", "date" : 24, "poids" : 47, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 407, "titre" : "Titre numero 407", "date" : 12, "poids" : 35, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 408, "titre" : "Titre numero 408", "date" : 22, "poids" : 17, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 409, "titre" : "Titre numero 409", "date" : 15, "poids" : 50, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 410, "titre" : "Titre numero 410", "date" : 4, "poids" : 5, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 411, "titre" : "Titre numero 411", "date" : 1, "poids" : 43, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 412, "titre" : "Titre numero 412", "date" : 23, "poids" : 36, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 413, "titre" : "Titre numero 413", "date" : 23, "poids" : 43, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 414, "titre" : "Titre numero 414", "date" : 5, "poids" : 25, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 415, "titre" : "Titre numero 415", "date" : 23, "poids" : 7, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 416, "titre" : "Titre numero 416", "date" : 12, "poids" : 15, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 417, "titre" : "Titre numero 417", "date" : 0, "poids" : 22, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 418, "titre" : "Titre numero 418", "date" : 1, "poids" : 43, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 419, "titre" : "Titre numero 419", "date" : 21, "poids" : 27, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 420, "titre" : "Titre numero 420", "date" : 17, "poids" : 8, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 421, "titre" : "Titre numero 421", "date" : 10, "poids" : 43, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 422, "titre" : "Titre numero 422", "date" : 23, "poids" : 42, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 423, "titre" : "Titre numero 423", "date" : 2, "poids" : 39, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 424, "titre" : "Titre numero 424", "date" : 18, "poids" : 37, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 425, "titre" : "Titre numero 425", "date" : 13, "poids" : 32, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 426, "titre" : "Titre numero 426", "date" : 23, "poids" : 50, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 427, "titre" : "Titre numero 427", "date" : 3, "poids" : 38, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 428, "titre" : "Titre numero 428", "date" : 19, "poids" : 18, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 429, "titre" : "Titre numero 429", "date" : 22, "poids" : 26, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 430, "titre" : "Titre numero 430", "date" : 19, "poids" : 30, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 431, "titre" : "Titre numero 431", "date" : 6, "poids" : 10, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 432, "titre" : "Titre numero 432", "date" : 22, "poids" : 12, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 433, "titre" : "Titre numero 433", "date" : 24, "poids" : 8, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 434, "titre" : "Titre numero 434", "date" : 8, "poids" : 26, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 435, "titre" : "Titre numero 435", "date" : 11, "poids" : 51, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 436, "titre" : "Titre numero 436", "date" : 5, "poids" : 25, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 437, "titre" : "Titre numero 437", "date" : 11, "poids" : 48, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 438, "titre" : "Titre numero 438", "date" : 6, "poids" : 54, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 439, "titre" : "Titre numero 439", "date" : 8, "poids" : 12, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 440, "titre" : "Titre numero 440", "date" : 2, "poids" : 20, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 441, "titre" : "Titre numero 441", "date" : 2, "poids" : 11, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 442, "titre" : "Titre numero 442", "date" : 22, "poids" : 37, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 443, "titre" : "Titre numero 443", "date" : 1, "poids" : 46, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 444, "titre" : "Titre numero 444", "date" : 24, "poids" : 40, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 445, "titre" : "Titre numero 445", "date" : 1, "poids" : 52, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 446, "titre" : "Titre numero 446", "date" : 11, "poids" : 20, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 447, "titre" : "Titre numero 447", "date" : 15, "poids" : 49, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 448, "titre" : "Titre numero 448", "date" : 9, "poids" : 51, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 449, "titre" : "Titre numero 449", "date" : 8, "poids" : 16, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 450, "titre" : "Titre numero 450", "date" : 5, "poids" : 39, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 451, "titre" : "Titre numero 451", "date" : 6, "poids" : 6, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 452, "titre" : "Titre numero 452", "date" : 10, "poids" : 8, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 453, "titre" : "Titre numero 453", "date" : 13, "poids" : 37, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 454, "titre" : "Titre numero 454", "date" : 2, "poids" : 21, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 455, "titre" : "Titre numero 455", "date" : 10, "poids" : 31, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 456, "titre" : "Titre numero 456", "date" : 14, "poids" : 37, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 457, "titre" : "Titre numero 457", "date" : 8, "poids" : 24, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 458, "titre" : "Titre numero 458", "date" : 4, "poids" : 9, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 459, "titre" : "Titre numero 459", "date" : 16, "poids" : 50, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 460, "titre" : "Titre numero 460", "date" : 3, "poids" : 5, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 461, "titre" : "Titre numero 461", "date" : 23, "poids" : 53, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 462, "titre" : "Titre numero 462", "date" : 2, "poids" : 27, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 463, "titre" : "Titre numero 463", "date" : 4, "poids" : 41, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 464, "titre" : "Titre numero 464", "date" : 2, "poids" : 37, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 465, "titre" : "Titre numero 465", "date" : 13, "poids" : 26, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 466, "titre" : "Titre numero 466", "date" : 4, "poids" : 30, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 467, "titre" : "Titre numero 467", "date" : 1, "poids" : 26, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 468, "titre" : "Titre numero 468", "date" : 15, "poids" : 48, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 469, "titre" : "Titre numero 469", "date" : 24, "poids" : 40, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 470, "titre" : "Titre numero 470", "date" : 8, "poids" : 50, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 471, "titre" : "Titre numero 471", "date" : 20, "poids" : 36, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 472, "titre" : "Titre numero 472", "date" : 7, "poids" : 39, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 473, "titre" : "Titre numero 473", "date" : 9, "poids" : 18, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 474, "titre" : "Titre numero 474", "date" : 0, "poids" : 25, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 475, "titre" : "Titre numero 475", "date" : 19, "poids" : 41, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 476, "titre" : "Titre numero 476", "date" : 5, "poids" : 7, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 477, "titre" : "Titre numero 477", "date" : 7, "poids" : 30, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 478, "titre" : "Titre numero 478", "date" : 2, "poids" : 5, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 479, "titre" : "Titre numero 479", "date" : 13, "poids" : 26, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 480, "titre" : "Titre numero 480", "date" : 10, "poids" : 18, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 481, "titre" : "Titre numero 481", "date" : 0, "poids" : 53, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 482, "titre" : "Titre numero 482", "date" : 1, "poids" : 11, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 483, "titre" : "Titre numero 483", "date" : 11, "poids" : 18, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 484, "titre" : "Titre numero 484", "date" : 16, "poids" : 19, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 485, "titre" : "Titre numero 485", "date" : 5, "poids" : 50, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 486, "titre" : "Titre numero 486", "date" : 13, "poids" : 23, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 487, "titre" : "Titre numero 487", "date" : 12, "poids" : 23, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 488, "titre" : "Titre numero 488", "date" : 5, "poids" : 19, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 489, "titre" : "Titre numero 489", "date" : 6, "poids" : 19, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 490, "titre" : "Titre numero 490", "date" : 5, "poids" : 49, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 491, "titre" : "Titre numero 491", "date" : 1, "poids" : 34, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 492, "titre" : "Titre numero 492", "date" : 17, "poids" : 33, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 493, "titre" : "Titre numero 493", "date" : 23, "poids" : 53, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 494, "titre" : "Titre numero 494", "date" : 4, "poids" : 24, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 495, "titre" : "Titre numero 495", "date" : 17, "poids" : 29, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 496, "titre" : "Titre numero 496", "date" : 12, "poids" : 23, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 497, "titre" : "Titre numero 497", "date" : 3, "poids" : 34, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 498, "titre" : "Titre numero 498", "date" : 12, "poids" : 29, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 499, "titre" : "Titre numero 499", "date" : 15, "poids" : 16, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 500, "titre" : "Titre numero 500", "date" : 6, "poids" : 7, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 501, "titre" : "Titre numero 501", "date" : 7, "poids" : 13, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 502, "titre" : "Titre numero 502", "date" : 21, "poids" : 19, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 503, "titre" : "Titre numero 503", "date" : 2, "poids" : 20, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 504, "titre" : "Titre numero 504", "date" : 9, "poids" : 19, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 505, "titre" : "Titre numero 505", "date" : 20, "poids" : 33, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 506, "titre" : "Titre numero 506", "date" : 11, "poids" : 49, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 507, "titre" : "Titre numero 507", "date" : 23, "poids" : 51, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 508, "titre" : "Titre numero 508", "date" : 12, "poids" : 5, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 509, "titre" : "Titre numero 509", "date" : 20, "poids" : 25, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 510, "titre" : "Titre numero 510", "date" : 2, "poids" : 25, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 511, "titre" : "Titre numero 511", "date" : 16, "poids" : 40, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 512, "titre" : "Titre numero 512", "date" : 9, "poids" : 31, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 513, "titre" : "Titre numero 513", "date" : 3, "poids" : 25, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 514, "titre" : "Titre numero 514", "date" : 17, "poids" : 43, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 515, "titre" : "Titre numero 515", "date" : 5, "poids" : 40, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 516, "titre" : "Titre numero 516", "date" : 15, "poids" : 7, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 517, "titre" : "Titre numero 517", "date" : 8, "poids" : 18, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 518, "titre" : "Titre numero 518", "date" : 23, "poids" : 43, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 519, "titre" : "Titre numero 519", "date" : 1, "poids" : 16, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 520, "titre" : "Titre numero 520", "date" : 20, "poids" : 16, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 521, "titre" : "Titre numero 521", "date" : 6, "poids" : 40, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 522, "titre" : "Titre numero 522", "date" : 9, "poids" : 48, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 523, "titre" : "Titre numero 523", "date" : 2, "poids" : 52, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 524, "titre" : "Titre numero 524", "date" : 16, "poids" : 35, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 525, "titre" : "Titre numero 525", "date" : 18, "poids" : 50, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 526, "titre" : "Titre numero 526", "date" : 23, "poids" : 8, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 527, "titre" : "Titre numero 527", "date" : 21, "poids" : 40, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 528, "titre" : "Titre numero 528", "date" : 14, "poids" : 8, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 529, "titre" : "Titre numero 529", "date" : 8, "poids" : 45, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 530, "titre" : "Titre numero 530", "date" : 2, "poids" : 37, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 531, "titre" : "Titre numero 531", "date" : 15, "poids" : 46, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 532, "titre" : "Titre numero 532", "date" : 16, "poids" : 35, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 533, "titre" : "Titre numero 533", "date" : 6, "poids" : 26, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 534, "titre" : "Titre numero 534", "date" : 18, "poids" : 26, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 535, "titre" : "Titre numero 535", "date" : 2, "poids" : 18, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 536, "titre" : "Titre numero 536", "date" : 18, "poids" : 42, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 537, "titre" : "Titre numero 537", "date" : 2, "poids" : 19, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 538, "titre" : "Titre numero 538", "date" : 15, "poids" : 37, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 539, "titre" : "Titre numero 539", "date" : 8, "poids" : 43, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 540, "titre" : "Titre numero 540", "date" : 12, "poids" : 21, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 541, "titre" : "Titre numero 541", "date" : 21, "poids" : 15, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 542, "titre" : "Titre numero 542", "date" : 0, "poids" : 40, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 543, "titre" : "Titre numero 543", "date" : 13, "poids" : 33, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 544, "titre" : "Titre numero 544", "date" : 11, "poids" : 16, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 545, "titre" : "Titre numero 545", "date" : 9, "poids" : 28, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 546, "titre" : "Titre numero 546", "date" : 0, "poids" : 30, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 547, "titre" : "Titre numero 547", "date" : 1, "poids" : 31, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 548, "titre" : "Titre numero 548", "date" : 19, "poids" : 54, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 549, "titre" : "Titre numero 549", "date" : 4, "poids" : 53, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 550, "titre" : "Titre numero 550", "date" : 10, "poids" : 21, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 551, "titre" : "Titre numero 551", "date" : 6, "poids" : 16, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 552, "titre" : "Titre numero 552", "date" : 1, "poids" : 36, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 553, "titre" : "Titre numero 553", "date" : 16, "poids" : 28, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 554, "titre" : "Titre numero 554", "date" : 6, "poids" : 32, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 555, "titre" : "Titre numero 555", "date" : 22, "poids" : 26, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 556, "titre" : "Titre numero 556", "date" : 1, "poids" : 14, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 557, "titre" : "Titre numero 557", "date" : 3, "poids" : 16, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 558, "titre" : "Titre numero 558", "date" : 15, "poids" : 37, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 559, "titre" : "Titre numero 559", "date" : 8, "poids" : 33, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 560, "titre" : "Titre numero 560", "date" : 1, "poids" : 44, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 561, "titre" : "Titre numero 561", "date" : 0, "poids" : 11, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 562, "titre" : "Titre numero 562", "date" : 14, "poids" : 24, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 563, "titre" : "Titre numero 563", "date" : 4, "poids" : 27, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 564, "titre" : "Titre numero 564", "date" : 19, "poids" : 12, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 565, "titre" : "Titre numero 565", "date" : 12, "poids" : 33, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 566, "titre" : "Titre numero 566", "date" : 17, "poids" : 31, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 567, "titre" : "Titre numero 567", "date" : 9, "poids" : 22, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 568, "titre" : "Titre numero 568", "date" : 4, "poids" : 37, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 569, "titre" : "Titre numero 569", "date" : 23, "poids" : 46, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 570, "titre" : "Titre numero 570", "date" : 14, "poids" : 53, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 571, "titre" : "Titre numero 571", "date" : 0, "poids" : 30, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 572, "titre" : "Titre numero 572", "date" : 16, "poids" : 12, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 573, "titre" : "Titre numero 573", "date" : 15, "poids" : 5, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 574, "titre" : "Titre numero 574", "date" : 3, "poids" : 26, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 575, "titre" : "Titre numero 575", "date" : 12, "poids" : 54, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 576, "titre" : "Titre numero 576", "date" : 18, "poids" : 9, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 577, "titre" : "Titre numero 577", "date" : 19, "poids" : 44, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 578, "titre" : "Titre numero 578", "date" : 12, "poids" : 5, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 579, "titre" : "Titre numero 579", "date" : 6, "poids" : 54, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 580, "titre" : "Titre numero 580", "date" : 21, "poids" : 51, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 581, "titre" : "Titre numero 581", "date" : 11, "poids" : 47, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 582, "titre" : "Titre numero 582", "date" : 18, "poids" : 31, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 583, "titre" : "Titre numero 583", "date" : 6, "poids" : 18, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 584, "titre" : "Titre numero 584", "date" : 12, "poids" : 46, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 585, "titre" : "Titre numero 585", "date" : 20, "poids" : 36, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 586, "titre" : "Titre numero 586", "date" : 6, "poids" : 40, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 587, "titre" : "Titre numero 587", "date" : 1, "poids" : 29, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 588, "titre" : "Titre numero 588", "date" : 15, "poids" : 32, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 589, "titre" : "Titre numero 589", "date" : 8, "poids" : 35, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 590, "titre" : "Titre numero 590", "date" : 7, "poids" : 25, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 591, "titre" : "Titre numero 591", "date" : 24, "poids" : 53, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 592, "titre" : "Titre numero 592", "date" : 2, "poids" : 28, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 593, "titre" : "Titre numero 593", "date" : 2, "poids" : 27, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 594, "titre" : "Titre numero 594", "date" : 23, "poids" : 21, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 595, "titre" : "Titre numero 595", "date" : 7, "poids" : 9, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 596, "titre" : "Titre numero 596", "date" : 12, "poids" : 26, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 597, "titre" : "Titre numero 597", "date" : 5, "poids" : 21, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 598, "titre" : "Titre numero 598", "date" : 9, "poids" : 15, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 599, "titre" : "Titre numero 599", "date" : 2, "poids" : 28, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 600, "titre" : "Titre numero 600", "date" : 19, "poids" : 44, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 601, "titre" : "Titre numero 601", "date" : 0, "poids" : 14, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 602, "titre" : "Titre numero 602", "date" : 10, "poids" : 42, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 603, "titre" : "Titre numero 603", "date" : 23, "poids" : 45, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 604, "titre" : "Titre numero 604", "date" : 17, "poids" : 16, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 605, "titre" : "Titre numero 605", "date" : 10, "poids" : 23, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 606, "titre" : "Titre numero 606", "date" : 15, "poids" : 46, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 607, "titre" : "Titre numero 607", "date" : 24, "poids" : 33, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 608, "titre" : "Titre numero 608", "date" : 24, "poids" : 14, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 609, "titre" : "Titre numero 609", "date" : 8, "poids" : 24, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 610, "titre" : "Titre numero 610", "date" : 13, "poids" : 24, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 611, "titre" : "Titre numero 611", "date" : 13, "poids" : 12, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 612, "titre" : "Titre numero 612", "date" : 6, "poids" : 47, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 613, "titre" : "Titre numero 613", "date" : 21, "poids" : 45, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 614, "titre" : "Titre numero 614", "date" : 23, "poids" : 46, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 615, "titre" : "Titre numero 615", "date" : 18, "poids" : 49, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 616, "titre" : "Titre numero 616", "date" : 8, "poids" : 20, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 617, "titre" : "Titre numero 617", "date" : 7, "poids" : 34, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 618, "titre" : "Titre numero 618", "date" : 15, "poids" : 50, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 619, "titre" : "Titre numero 619", "date" : 24, "poids" : 37, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 620, "titre" : "Titre numero 620", "date" : 21, "poids" : 51, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 621, "titre" : "Titre numero 621", "date" : 15, "poids" : 50, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 622, "titre" : "Titre numero 622", "date" : 22, "poids" : 38, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 623, "titre" : "Titre numero 623", "date" : 19, "poids" : 40, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 624, "titre" : "Titre numero 624", "date" : 15, "poids" : 38, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 625, "titre" : "Titre numero 625", "date" : 10, "poids" : 51, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 626, "titre" : "Titre numero 626", "date" : 5, "poids" : 37, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 627, "titre" : "Titre numero 627", "date" : 15, "poids" : 46, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 628, "titre" : "Titre numero 628", "date" : 16, "poids" : 21, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 629, "titre" : "Titre numero 629", "date" : 7, "poids" : 12, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 630, "titre" : "Titre numero 630", "date" : 5, "poids" : 22, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 631, "titre" : "Titre numero 631", "date" : 3, "poids" : 8, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 632, "titre" : "Titre numero 632", "date" : 6, "poids" : 50, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 633, "titre" : "Titre numero 633", "date" : 4, "poids" : 39, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 634, "titre" : "Titre numero 634", "date" : 15, "poids" : 42, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 635, "titre" : "Titre numero 635", "date" : 1, "poids" : 22, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 636, "titre" : "Titre numero 636", "date" : 8, "poids" : 33, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 637, "titre" : "Titre numero 637", "date" : 0, "poids" : 46, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 638, "titre" : "Titre numero 638", "date" : 1, "poids" : 27, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 639, "titre" : "Titre numero 639", "date" : 20, "poids" : 25, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 640, "titre" : "Titre numero 640", "date" : 18, "poids" : 23, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 641, "titre" : "Titre numero 641", "date" : 5, "poids" : 41, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 642, "titre" : "Titre numero 642", "date" : 14, "poids" : 23, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 643, "titre" : "Titre numero 643", "date" : 14, "poids" : 45, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 644, "titre" : "Titre numero 644", "date" : 4, "poids" : 25, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 645, "titre" : "Titre numero 645", "date" : 15, "poids" : 25, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 646, "titre" : "Titre numero 646", "date" : 0, "poids" : 5, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 647, "titre" : "Titre numero 647", "date" : 18, "poids" : 22, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 648, "titre" : "Titre numero 648", "date" : 4, "poids" : 51, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 649, "titre" : "Titre numero 649", "date" : 2, "poids" : 21, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 650, "titre" : "Titre numero 650", "date" : 18, "poids" : 26, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 651, "titre" : "Titre numero 651", "date" : 8, "poids" : 39, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 652, "titre" : "Titre numero 652", "date" : 3, "poids" : 41, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 653, "titre" : "Titre numero 653", "date" : 7, "poids" : 54, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 654, "titre" : "Titre numero 654", "date" : 2, "poids" : 10, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 655, "titre" : "Titre numero 655", "date" : 1, "poids" : 51, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 656, "titre" : "Titre numero 656", "date" : 2, "poids" : 42, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 657, "titre" : "Titre numero 657", "date" : 17, "poids" : 36, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 658, "titre" : "Titre numero 658", "date" : 15, "poids" : 45, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 659, "titre" : "Titre numero 659", "date" : 3, "poids" : 28, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 660, "titre" : "Titre numero 660", "date" : 24, "poids" : 34, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 661, "titre" : "Titre numero 661", "date" : 9, "poids" : 27, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 662, "titre" : "Titre numero 662", "date" : 6, "poids" : 7, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 663, "titre" : "Titre numero 663", "date" : 20, "poids" : 44, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 664, "titre" : "Titre numero 664", "date" : 8, "poids" : 25, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 665, "titre" : "Titre numero 665", "date" : 24, "poids" : 48, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 666, "titre" : "Titre numero 666", "date" : 5, "poids" : 52, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 667, "titre" : "Titre numero 667", "date" : 6, "poids" : 39, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 668, "titre" : "Titre numero 668", "date" : 4, "poids" : 9, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 669, "titre" : "Titre numero 669", "date" : 4, "poids" : 24, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 670, "titre" : "Titre numero 670", "date" : 4, "poids" : 52, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 671, "titre" : "Titre numero 671", "date" : 10, "poids" : 11, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 672, "titre" : "Titre numero 672", "date" : 18, "poids" : 5, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 673, "titre" : "Titre numero 673", "date" : 16, "poids" : 50, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 674, "titre" : "Titre numero 674", "date" : 1, "poids" : 22, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 675, "titre" : "Titre numero 675", "date" : 4, "poids" : 39, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 676, "titre" : "Titre numero 676", "date" : 18, "poids" : 22, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 677, "titre" : "Titre numero 677", "date" : 15, "poids" : 45, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 678, "titre" : "Titre numero 678", "date" : 5, "poids" : 45, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 679, "titre" : "Titre numero 679", "date" : 23, "poids" : 54, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 680, "titre" : "Titre numero 680", "date" : 3, "poids" : 29, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 681, "titre" : "Titre numero 681", "date" : 10, "poids" : 52, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 682, "titre" : "Titre numero 682", "date" : 10, "poids" : 14, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 683, "titre" : "Titre numero 683", "date" : 24, "poids" : 17, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 684, "titre" : "Titre numero 684", "date" : 11, "poids" : 51, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 685, "titre" : "Titre numero 685", "date" : 3, "poids" : 52, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 686, "titre" : "Titre numero 686", "date" : 22, "poids" : 17, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 687, "titre" : "Titre numero 687", "date" : 22, "poids" : 42, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 688, "titre" : "Titre numero 688", "date" : 15, "poids" : 5, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 689, "titre" : "Titre numero 689", "date" : 5, "poids" : 20, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 690, "titre" : "Titre numero 690", "date" : 14, "poids" : 22, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 691, "titre" : "Titre numero 691", "date" : 6, "poids" : 20, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 692, "titre" : "Titre numero 692", "date" : 12, "poids" : 14, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 693, "titre" : "Titre numero 693", "date" : 16, "poids" : 12, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 694, "titre" : "Titre numero 694", "date" : 11, "poids" : 53, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 695, "titre" : "Titre numero 695", "date" : 11, "poids" : 33, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 696, "titre" : "Titre numero 696", "date" : 18, "poids" : 37, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 697, "titre" : "Titre numero 697", "date" : 3, "poids" : 37, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 698, "titre" : "Titre numero 698", "date" : 14, "poids" : 22, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 699, "titre" : "Titre numero 699", "date" : 0, "poids" : 26, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 700, "titre" : "Titre numero 700", "date" : 18, "poids" : 39, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 701, "titre" : "Titre numero 701", "date" : 16, "poids" : 26, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 702, "titre" : "Titre numero 702", "date" : 22, "poids" : 19, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 703, "titre" : "Titre numero 703", "date" : 12, "poids" : 9, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 704, "titre" : "Titre numero 704", "date" : 7, "poids" : 45, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 705, "titre" : "Titre numero 705", "date" : 1, "poids" : 14, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 706, "titre" : "Titre numero 706", "date" : 1, "poids" : 7, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 707, "titre" : "Titre numero 707", "date" : 6, "poids" : 51, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 708, "titre" : "Titre numero 708", "date" : 14, "poids" : 26, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 709, "titre" : "Titre numero 709", "date" : 8, "poids" : 50, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 710, "titre" : "Titre numero 710", "date" : 24, "poids" : 53, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 711, "titre" : "Titre numero 711", "date" : 22, "poids" : 46, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 712, "titre" : "Titre numero 712", "date" : 10, "poids" : 26, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 713, "titre" : "Titre numero 713", "date" : 2, "poids" : 35, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 714, "titre" : "Titre numero 714", "date" : 18, "poids" : 15, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 715, "titre" : "Titre numero 715", "date" : 19, "poids" : 31, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 716, "titre" : "Titre numero 716", "date" : 2, "poids" : 38, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 717, "titre" : "Titre numero 717", "date" : 16, "poids" : 37, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 718, "titre" : "Titre numero 718", "date" : 4, "poids" : 6, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 719, "titre" : "Titre numero 719", "date" : 21, "poids" : 17, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 720, "titre" : "Titre numero 720", "date" : 19, "poids" : 24, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 721, "titre" : "Titre numero 721", "date" : 6, "poids" : 37, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 722, "titre" : "Titre numero 722", "date" : 17, "poids" : 9, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 723, "titre" : "Titre numero 723", "date" : 6, "poids" : 16, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 724, "titre" : "Titre numero 724", "date" : 4, "poids" : 40, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 725, "titre" : "Titre numero 725", "date" : 15, "poids" : 30, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 726, "titre" : "Titre numero 726", "date" : 0, "poids" : 47, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 727, "titre" : "Titre numero 727", "date" : 12, "poids" : 44, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 728, "titre" : "Titre numero 728", "date" : 23, "poids" : 11, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 729, "titre" : "Titre numero 729", "date" : 19, "poids" : 47, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 730, "titre" : "Titre numero 730", "date" : 24, "poids" : 46, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 731, "titre" : "Titre numero 731", "date" : 19, "poids" : 37, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 732, "titre" : "Titre numero 732", "date" : 2, "poids" : 32, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 733, "titre" : "Titre numero 733", "date" : 4, "poids" : 41, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 734, "titre" : "Titre numero 734", "date" : 10, "poids" : 5, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 735, "titre" : "Titre numero 735", "date" : 16, "poids" : 6, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 736, "titre" : "Titre numero 736", "date" : 7, "poids" : 9, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 737, "titre" : "Titre numero 737", "date" : 1, "poids" : 42, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 738, "titre" : "Titre numero 738", "date" : 14, "poids" : 15, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 739, "titre" : "Titre numero 739", "date" : 15, "poids" : 42, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 740, "titre" : "Titre numero 740", "date" : 8, "poids" : 28, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 741, "titre" : "Titre numero 741", "date" : 9, "poids" : 43, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 742, "titre" : "Titre numero 742", "date" : 23, "poids" : 14, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 743, "titre" : "Titre numero 743", "date" : 17, "poids" : 29, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 744, "titre" : "Titre numero 744", "date" : 16, "poids" : 44, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 745, "titre" : "Titre numero 745", "date" : 7, "poids" : 27, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 746, "titre" : "Titre numero 746", "date" : 23, "poids" : 7, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 747, "titre" : "Titre numero 747", "date" : 0, "poids" : 20, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 748, "titre" : "Titre numero 748", "date" : 18, "poids" : 17, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 749, "titre" : "Titre numero 749", "date" : 20, "poids" : 26, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 750, "titre" : "Titre numero 750", "date" : 11, "poids" : 54, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 751, "titre" : "Titre numero 751", "date" : 21, "poids" : 30, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 752, "titre" : "Titre numero 752", "date" : 10, "poids" : 15, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 753, "titre" : "Titre numero 753", "date" : 24, "poids" : 34, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 754, "titre" : "Titre numero 754", "date" : 0, "poids" : 27, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 755, "titre" : "Titre numero 755", "date" : 21, "poids" : 7, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 756, "titre" : "Titre numero 756", "date" : 16, "poids" : 8, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 757, "titre" : "Titre numero 757", "date" : 23, "poids" : 7, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 758, "titre" : "Titre numero 758", "date" : 24, "poids" : 21, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 759, "titre" : "Titre numero 759", "date" : 16, "poids" : 44, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 760, "titre" : "Titre numero 760", "date" : 14, "poids" : 16, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 761, "titre" : "Titre numero 761", "date" : 12, "poids" : 46, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 762, "titre" : "Titre numero 762", "date" : 23, "poids" : 25, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 763, "titre" : "Titre numero 763", "date" : 0, "poids" : 25, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 764, "titre" : "Titre numero 764", "date" : 7, "poids" : 33, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 765, "titre" : "Titre numero 765", "date" : 21, "poids" : 46, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 766, "titre" : "Titre numero 766", "date" : 23, "poids" : 48, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 767, "titre" : "Titre numero 767", "date" : 19, "poids" : 48, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 768, "titre" : "Titre numero 768", "date" : 3, "poids" : 14, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 769, "titre" : "Titre numero 769", "date" : 3, "poids" : 37, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 770, "titre" : "Titre numero 770", "date" : 23, "poids" : 35, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 771, "titre" : "Titre numero 771", "date" : 6, "poids" : 26, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 772, "titre" : "Titre numero 772", "date" : 1, "poids" : 42, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 773, "titre" : "Titre numero 773", "date" : 2, "poids" : 18, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 774, "titre" : "Titre numero 774", "date" : 3, "poids" : 42, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 775, "titre" : "Titre numero 775", "date" : 21, "poids" : 15, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 776, "titre" : "Titre numero 776", "date" : 2, "poids" : 29, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 777, "titre" : "Titre numero 777", "date" : 3, "poids" : 54, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 778, "titre" : "Titre numero 778", "date" : 18, "poids" : 43, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 779, "titre" : "Titre numero 779", "date" : 23, "poids" : 16, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 780, "titre" : "Titre numero 780", "date" : 16, "poids" : 14, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 781, "titre" : "Titre numero 781", "date" : 6, "poids" : 53, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 782, "titre" : "Titre numero 782", "date" : 4, "poids" : 21, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 783, "titre" : "Titre numero 783", "date" : 12, "poids" : 16, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 784, "titre" : "Titre numero 784", "date" : 4, "poids" : 14, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 785, "titre" : "Titre numero 785", "date" : 18, "poids" : 49, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 786, "titre" : "Titre numero 786", "date" : 10, "poids" : 12, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 787, "titre" : "Titre numero 787", "date" : 24, "poids" : 8, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 788, "titre" : "Titre numero 788", "date" : 14, "poids" : 28, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 789, "titre" : "Titre numero 789", "date" : 23, "poids" : 50, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 790, "titre" : "Titre numero 790", "date" : 10, "poids" : 50, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 791, "titre" : "Titre numero 791", "date" : 14, "poids" : 32, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 792, "titre" : "Titre numero 792", "date" : 22, "poids" : 8, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 793, "titre" : "Titre numero 793", "date" : 19, "poids" : 24, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 794, "titre" : "Titre numero 794", "date" : 8, "poids" : 35, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 795, "titre" : "Titre numero 795", "date" : 10, "poids" : 45, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 796, "titre" : "Titre numero 796", "date" : 14, "poids" : 18, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 797, "titre" : "Titre numero 797", "date" : 18, "poids" : 39, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 798, "titre" : "Titre numero 798", "date" : 3, "poids" : 38, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 799, "titre" : "Titre numero 799", "date" : 21, "poids" : 38, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 800, "titre" : "Titre numero 800", "date" : 4, "poids" : 10, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 801, "titre" : "Titre numero 801", "date" : 13, "poids" : 11, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 802, "titre" : "Titre numero 802", "date" : 8, "poids" : 21, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 803, "titre" : "Titre numero 803", "date" : 20, "poids" : 30, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 804, "titre" : "Titre numero 804", "date" : 23, "poids" : 28, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 805, "titre" : "Titre numero 805", "date" : 17, "poids" : 52, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 806, "titre" : "Titre numero 806", "date" : 20, "poids" : 6, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 807, "titre" : "Titre numero 807", "date" : 11, "poids" : 18, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 808, "titre" : "Titre numero 808", "date" : 11, "poids" : 45, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 809, "titre" : "Titre numero 809", "date" : 22, "poids" : 37, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 810, "titre" : "Titre numero 810", "date" : 13, "poids" : 47, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 811, "titre" : "Titre numero 811", "date" : 11, "poids" : 21, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 812, "titre" : "Titre numero 812", "date" : 10, "poids" : 39, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 813, "titre" : "Titre numero 813", "date" : 6, "poids" : 36, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 814, "titre" : "Titre numero 814", "date" : 21, "poids" : 27, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 815, "titre" : "Titre numero 815", "date" : 7, "poids" : 15, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 816, "titre" : "Titre numero 816", "date" : 10, "poids" : 47, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 817, "titre" : "Titre numero 817", "date" : 4, "poids" : 11, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 818, "titre" : "Titre numero 818", "date" : 19, "poids" : 54, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 819, "titre" : "Titre numero 819", "date" : 21, "poids" : 49, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 820, "titre" : "Titre numero 820", "date" : 15, "poids" : 38, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 821, "titre" : "Titre numero 821", "date" : 1, "poids" : 26, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 822, "titre" : "Titre numero 822", "date" : 10, "poids" : 22, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 823, "titre" : "Titre numero 823", "date" : 7, "poids" : 44, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 824, "titre" : "Titre numero 824", "date" : 13, "poids" : 31, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 825, "titre" : "Titre numero 825", "date" : 19, "poids" : 5, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 826, "titre" : "Titre numero 826", "date" : 6, "poids" : 17, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 827, "titre" : "Titre numero 827", "date" : 4, "poids" : 54, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 828, "titre" : "Titre numero 828", "date" : 3, "poids" : 39, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 829, "titre" : "Titre numero 829", "date" : 19, "poids" : 26, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 830, "titre" : "Titre numero 830", "date" : 10, "poids" : 22, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 831, "titre" : "Titre numero 831", "date" : 4, "poids" : 53, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 832, "titre" : "Titre numero 832", "date" : 3, "poids" : 26, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 833, "titre" : "Titre numero 833", "date" : 24, "poids" : 8, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 834, "titre" : "Titre numero 834", "date" : 22, "poids" : 18, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 835, "titre" : "Titre numero 835", "date" : 8, "poids" : 16, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 836, "titre" : "Titre numero 836", "date" : 5, "poids" : 43, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 837, "titre" : "Titre numero 837", "date" : 3, "poids" : 18, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 838, "titre" : "Titre numero 838", "date" : 0, "poids" : 28, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 839, "titre" : "Titre numero 839", "date" : 11, "poids" : 33, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 840, "titre" : "Titre numero 840", "date" : 12, "poids" : 12, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 841, "titre" : "Titre numero 841", "date" : 8, "poids" : 34, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 842, "titre" : "Titre numero 842", "date" : 12, "poids" : 35, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 843, "titre" : "Titre numero 843", "date" : 6, "poids" : 42, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 844, "titre" : "Titre numero 844", "date" : 10, "poids" : 16, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 845, "titre" : "Titre numero 845", "date" : 10, "poids" : 49, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 846, "titre" : "Titre numero 846", "date" : 24, "poids" : 41, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 847, "titre" : "Titre numero 847", "date" : 12, "poids" : 23, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 848, "titre" : "Titre numero 848", "date" : 11, "poids" : 53, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 849, "titre" : "Titre numero 849", "date" : 7, "poids" : 39, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 850, "titre" : "Titre numero 850", "date" : 9, "poids" : 10, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 851, "titre" : "Titre numero 851", "date" : 13, "poids" : 32, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 852, "titre" : "Titre numero 852", "date" : 9, "poids" : 22, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 853, "titre" : "Titre numero 853", "date" : 17, "poids" : 42, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 854, "titre" : "Titre numero 854", "date" : 10, "poids" : 10, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 855, "titre" : "Titre numero 855", "date" : 15, "poids" : 8, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 856, "titre" : "Titre numero 856", "date" : 13, "poids" : 42, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 857, "titre" : "Titre numero 857", "date" : 5, "poids" : 19, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 858, "titre" : "Titre numero 858", "date" : 11, "poids" : 20, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 859, "titre" : "Titre numero 859", "date" : 18, "poids" : 36, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 860, "titre" : "Titre numero 860", "date" : 23, "poids" : 41, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 861, "titre" : "Titre numero 861", "date" : 21, "poids" : 30, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 862, "titre" : "Titre numero 862", "date" : 24, "poids" : 25, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 863, "titre" : "Titre numero 863", "date" : 11, "poids" : 24, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 864, "titre" : "Titre numero 864", "date" : 1, "poids" : 34, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 865, "titre" : "Titre numero 865", "date" : 2, "poids" : 43, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 866, "titre" : "Titre numero 866", "date" : 14, "poids" : 47, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 867, "titre" : "Titre numero 867", "date" : 2, "poids" : 15, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 868, "titre" : "Titre numero 868", "date" : 10, "poids" : 34, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 869, "titre" : "Titre numero 869", "date" : 16, "poids" : 52, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 870, "titre" : "Titre numero 870", "date" : 17, "poids" : 44, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 871, "titre" : "Titre numero 871", "date" : 8, "poids" : 30, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 872, "titre" : "Titre numero 872", "date" : 15, "poids" : 5, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 873, "titre" : "Titre numero 873", "date" : 6, "poids" : 40, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 874, "titre" : "Titre numero 874", "date" : 4, "poids" : 43, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 875, "titre" : "Titre numero 875", "date" : 1, "poids" : 46, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 876, "titre" : "Titre numero 876", "date" : 4, "poids" : 28, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 877, "titre" : "Titre numero 877", "date" : 6, "poids" : 54, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 878, "titre" : "Titre numero 878", "date" : 15, "poids" : 23, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 879, "titre" : "Titre numero 879", "date" : 24, "poids" : 51, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 880, "titre" : "Titre numero 880", "date" : 3, "poids" : 26, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 881, "titre" : "Titre numero 881", "date" : 21, "poids" : 18, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 882, "titre" : "Titre numero 882", "date" : 21, "poids" : 18, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 883, "titre" : "Titre numero 883", "date" : 6, "poids" : 44, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 884, "titre" : "Titre numero 884", "date" : 1, "poids" : 49, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 885, "titre" : "Titre numero 885", "date" : 5, "poids" : 7, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 886, "titre" : "Titre numero 886", "date" : 5, "poids" : 14, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 887, "titre" : "Titre numero 887", "date" : 24, "poids" : 25, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 888, "titre" : "Titre numero 888", "date" : 14, "poids" : 36, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 889, "titre" : "Titre numero 889", "date" : 15, "poids" : 33, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 890, "titre" : "Titre numero 890", "date" : 24, "poids" : 13, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 891, "titre" : "Titre numero 891", "date" : 17, "poids" : 29, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 892, "titre" : "Titre numero 892", "date" : 2, "poids" : 35, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 893, "titre" : "Titre numero 893", "date" : 5, "poids" : 5, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 894, "titre" : "Titre numero 894", "date" : 9, "poids" : 24, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 895, "titre" : "Titre numero 895", "date" : 14, "poids" : 21, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 896, "titre" : "Titre numero 896", "date" : 8, "poids" : 15, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 897, "titre" : "Titre numero 897", "date" : 1, "poids" : 50, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 898, "titre" : "Titre numero 898", "date" : 21, "poids" : 8, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 899, "titre" : "Titre numero 899", "date" : 1, "poids" : 26, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 900, "titre" : "Titre numero 900", "date" : 0, "poids" : 14, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 901, "titre" : "Titre numero 901", "date" : 13, "poids" : 36, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 902, "titre" : "Titre numero 902", "date" : 0, "poids" : 19, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 903, "titre" : "Titre numero 903", "date" : 1, "poids" : 9, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 904, "titre" : "Titre numero 904", "date" : 16, "poids" : 13, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 905, "titre" : "Titre numero 905", "date" : 5, "poids" : 9, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 906, "titre" : "Titre numero 906", "date" : 23, "poids" : 15, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 907, "titre" : "Titre numero 907", "date" : 1, "poids" : 17, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 908, "titre" : "Titre numero 908", "date" : 11, "poids" : 28, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 909, "titre" : "Titre numero 909", "date" : 7, "poids" : 54, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 910, "titre" : "Titre numero 910", "date" : 17, "poids" : 41, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 911, "titre" : "Titre numero 911", "date" : 11, "poids" : 44, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 912, "titre" : "Titre numero 912", "date" : 5, "poids" : 17, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 913, "titre" : "Titre numero 913", "date" : 21, "poids" : 23, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 914, "titre" : "Titre numero 914", "date" : 2, "poids" : 31, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 915, "titre" : "Titre numero 915", "date" : 8, "poids" : 37, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 916, "titre" : "Titre numero 916", "date" : 16, "poids" : 19, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 917, "titre" : "Titre numero 917", "date" : 5, "poids" : 38, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 918, "titre" : "Titre numero 918", "date" : 13, "poids" : 12, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 919, "titre" : "Titre numero 919", "date" : 7, "poids" : 47, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 920, "titre" : "Titre numero 920", "date" : 11, "poids" : 42, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 921, "titre" : "Titre numero 921", "date" : 17, "poids" : 53, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 922, "titre" : "Titre numero 922", "date" : 21, "poids" : 6, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 923, "titre" : "Titre numero 923", "date" : 20, "poids" : 23, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 924, "titre" : "Titre numero 924", "date" : 23, "poids" : 43, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 925, "titre" : "Titre numero 925", "date" : 22, "poids" : 18, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 926, "titre" : "Titre numero 926", "date" : 4, "poids" : 46, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 927, "titre" : "Titre numero 927", "date" : 3, "poids" : 9, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 928, "titre" : "Titre numero 928", "date" : 1, "poids" : 46, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 929, "titre" : "Titre numero 929", "date" : 2, "poids" : 46, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 930, "titre" : "Titre numero 930", "date" : 3, "poids" : 42, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 931, "titre" : "Titre numero 931", "date" : 1, "poids" : 29, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 932, "titre" : "Titre numero 932", "date" : 20, "poids" : 38, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 933, "titre" : "Titre numero 933", "date" : 23, "poids" : 43, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 934, "titre" : "Titre numero 934", "date" : 22, "poids" : 34, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 935, "titre" : "Titre numero 935", "date" : 2, "poids" : 15, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 936, "titre" : "Titre numero 936", "date" : 2, "poids" : 19, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 937, "titre" : "Titre numero 937", "date" : 21, "poids" : 24, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 938, "titre" : "Titre numero 938", "date" : 7, "poids" : 11, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 939, "titre" : "Titre numero 939", "date" : 19, "poids" : 39, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 940, "titre" : "Titre numero 940", "date" : 23, "poids" : 54, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 941, "titre" : "Titre numero 941", "date" : 5, "poids" : 54, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 942, "titre" : "Titre numero 942", "date" : 8, "poids" : 45, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 943, "titre" : "Titre numero 943", "date" : 22, "poids" : 14, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 944, "titre" : "Titre numero 944", "date" : 15, "poids" : 52, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 945, "titre" : "Titre numero 945", "date" : 22, "poids" : 18, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 946, "titre" : "Titre numero 946", "date" : 13, "poids" : 10, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 947, "titre" : "Titre numero 947", "date" : 11, "poids" : 21, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 948, "titre" : "Titre numero 948", "date" : 6, "poids" : 26, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 949, "titre" : "Titre numero 949", "date" : 4, "poids" : 43, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 950, "titre" : "Titre numero 950", "date" : 12, "poids" : 25, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 951, "titre" : "Titre numero 951", "date" : 12, "poids" : 36, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 952, "titre" : "Titre numero 952", "date" : 23, "poids" : 31, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 953, "titre" : "Titre numero 953", "date" : 6, "poids" : 27, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 954, "titre" : "Titre numero 954", "date" : 6, "poids" : 35, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 955, "titre" : "Titre numero 955", "date" : 18, "poids" : 16, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 956, "titre" : "Titre numero 956", "date" : 2, "poids" : 41, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 957, "titre" : "Titre numero 957", "date" : 20, "poids" : 39, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 958, "titre" : "Titre numero 958", "date" : 3, "poids" : 20, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 959, "titre" : "Titre numero 959", "date" : 22, "poids" : 11, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 960, "titre" : "Titre numero 960", "date" : 10, "poids" : 43, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 961, "titre" : "Titre numero 961", "date" : 15, "poids" : 6, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 962, "titre" : "Titre numero 962", "date" : 21, "poids" : 8, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 963, "titre" : "Titre numero 963", "date" : 19, "poids" : 51, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 964, "titre" : "Titre numero 964", "date" : 8, "poids" : 43, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 965, "titre" : "Titre numero 965", "date" : 1, "poids" : 46, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 966, "titre" : "Titre numero 966", "date" : 23, "poids" : 32, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 967, "titre" : "Titre numero 967", "date" : 19, "poids" : 26, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 968, "titre" : "Titre numero 968", "date" : 11, "poids" : 34, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 969, "titre" : "Titre numero 969", "date" : 23, "poids" : 43, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 970, "titre" : "Titre numero 970", "date" : 16, "poids" : 18, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 971, "titre" : "Titre numero 971", "date" : 5, "poids" : 30, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 972, "titre" : "Titre numero 972", "date" : 19, "poids" : 13, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 973, "titre" : "Titre numero 973", "date" : 9, "poids" : 30, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 974, "titre" : "Titre numero 974", "date" : 8, "poids" : 49, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 975, "titre" : "Titre numero 975", "date" : 6, "poids" : 39, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 976, "titre" : "Titre numero 976", "date" : 12, "poids" : 7, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 977, "titre" : "Titre numero 977", "date" : 15, "poids" : 12, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 978, "titre" : "Titre numero 978", "date" : 19, "poids" : 31, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 979, "titre" : "Titre numero 979", "date" : 17, "poids" : 14, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 980, "titre" : "Titre numero 980", "date" : 15, "poids" : 29, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 981, "titre" : "Titre numero 981", "date" : 3, "poids" : 53, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 982, "titre" : "Titre numero 982", "date" : 20, "poids" : 43, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 983, "titre" : "Titre numero 983", "date" : 12, "poids" : 17, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 984, "titre" : "Titre numero 984", "date" : 17, "poids" : 28, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 985, "titre" : "Titre numero 985", "date" : 21, "poids" : 24, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 986, "titre" : "Titre numero 986", "date" : 20, "poids" : 9, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 987, "titre" : "Titre numero 987", "date" : 7, "poids" : 33, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 988, "titre" : "Titre numero 988", "date" : 24, "poids" : 28, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 989, "titre" : "Titre numero 989", "date" : 19, "poids" : 49, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 990, "titre" : "Titre numero 990", "date" : 4, "poids" : 46, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 991, "titre" : "Titre numero 991", "date" : 19, "poids" : 35, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 992, "titre" : "Titre numero 992", "date" : 21, "poids" : 26, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 993, "titre" : "Titre numero 993", "date" : 14, "poids" : 50, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 994, "titre" : "Titre numero 994", "date" : 10, "poids" : 18, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 995, "titre" : "Titre numero 995", "date" : 12, "poids" : 7, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 996, "titre" : "Titre numero 996", "date" : 15, "poids" : 6, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 997, "titre" : "Titre numero 997", "date" : 14, "poids" : 39, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 998, "titre" : "Titre numero 998", "date" : 6, "poids" : 23, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 999, "titre" : "Titre numero 999", "date" : 0, "poids" : 36, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1000, "titre" : "Titre numero 1000", "date" : 44, "poids" : 47, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1001, "titre" : "Titre numero 1001", "date" : 11, "poids" : 51, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1002, "titre" : "Titre numero 1002", "date" : 19, "poids" : 33, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1003, "titre" : "Titre numero 1003", "date" : 44, "poids" : 42, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1004, "titre" : "Titre numero 1004", "date" : 0, "poids" : 27, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1005, "titre" : "Titre numero 1005", "date" : 28, "poids" : 17, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1006, "titre" : "Titre numero 1006", "date" : 11, "poids" : 33, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1007, "titre" : "Titre numero 1007", "date" : 18, "poids" : 19, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1008, "titre" : "Titre numero 1008", "date" : 30, "poids" : 46, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1009, "titre" : "Titre numero 1009", "date" : 39, "poids" : 22, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1010, "titre" : "Titre numero 1010", "date" : 13, "poids" : 6, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1011, "titre" : "Titre numero 1011", "date" : 23, "poids" : 13, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1012, "titre" : "Titre numero 1012", "date" : 6, "poids" : 37, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1013, "titre" : "Titre numero 1013", "date" : 44, "poids" : 29, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1014, "titre" : "Titre numero 1014", "date" : 30, "poids" : 16, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1015, "titre" : "Titre numero 1015", "date" : 31, "poids" : 8, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1016, "titre" : "Titre numero 1016", "date" : 27, "poids" : 50, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1017, "titre" : "Titre numero 1017", "date" : 9, "poids" : 11, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1018, "titre" : "Titre numero 1018", "date" : 17, "poids" : 22, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1019, "titre" : "Titre numero 1019", "date" : 28, "poids" : 8, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1020, "titre" : "Titre numero 1020", "date" : 15, "poids" : 53, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1021, "titre" : "Titre numero 1021", "date" : 38, "poids" : 52, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1022, "titre" : "Titre numero 1022", "date" : 9, "poids" : 24, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1023, "titre" : "Titre numero 1023", "date" : 24, "poids" : 15, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1024, "titre" : "Titre numero 1024", "date" : 35, "poids" : 33, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1025, "titre" : "Titre numero 1025", "date" : 41, "poids" : 42, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1026, "titre" : "Titre numero 1026", "date" : 36, "poids" : 39, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1027, "titre" : "Titre numero 1027", "date" : 25, "poids" : 43, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1028, "titre" : "Titre numero 1028", "date" : 1, "poids" : 6, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1029, "titre" : "Titre numero 1029", "date" : 17, "poids" : 17, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1030, "titre" : "Titre numero 1030", "date" : 46, "poids" : 7, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1031, "titre" : "Titre numero 1031", "date" : 7, "poids" : 19, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1032, "titre" : "Titre numero 1032", "date" : 49, "poids" : 35, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1033, "titre" : "Titre numero 1033", "date" : 0, "poids" : 26, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1034, "titre" : "Titre numero 1034", "date" : 40, "poids" : 50, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1035, "titre" : "Titre numero 1035", "date" : 26, "poids" : 28, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1036, "titre" : "Titre numero 1036", "date" : 21, "poids" : 41, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1037, "titre" : "Titre numero 1037", "date" : 47, "poids" : 11, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1038, "titre" : "Titre numero 1038", "date" : 14, "poids" : 52, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1039, "titre" : "Titre numero 1039", "date" : 3, "poids" : 48, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1040, "titre" : "Titre numero 1040", "date" : 7, "poids" : 31, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1041, "titre" : "Titre numero 1041", "date" : 17, "poids" : 13, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1042, "titre" : "Titre numero 1042", "date" : 12, "poids" : 10, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1043, "titre" : "Titre numero 1043", "date" : 49, "poids" : 18, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1044, "titre" : "Titre numero 1044", "date" : 38, "poids" : 8, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1045, "titre" : "Titre numero 1045", "date" : 3, "poids" : 26, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1046, "titre" : "Titre numero 1046", "date" : 17, "poids" : 52, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1047, "titre" : "Titre numero 1047", "date" : 0, "poids" : 5, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1048, "titre" : "Titre numero 1048", "date" : 0, "poids" : 44, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1049, "titre" : "Titre numero 1049", "date" : 26, "poids" : 6, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1050, "titre" : "Titre numero 1050", "date" : 21, "poids" : 22, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1051, "titre" : "Titre numero 1051", "date" : 5, "poids" : 30, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1052, "titre" : "Titre numero 1052", "date" : 11, "poids" : 47, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1053, "titre" : "Titre numero 1053", "date" : 33, "poids" : 9, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1054, "titre" : "Titre numero 1054", "date" : 24, "poids" : 47, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1055, "titre" : "Titre numero 1055", "date" : 21, "poids" : 14, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1056, "titre" : "Titre numero 1056", "date" : 48, "poids" : 11, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1057, "titre" : "Titre numero 1057", "date" : 49, "poids" : 5, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1058, "titre" : "Titre numero 1058", "date" : 40, "poids" : 54, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1059, "titre" : "Titre numero 1059", "date" : 21, "poids" : 52, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1060, "titre" : "Titre numero 1060", "date" : 43, "poids" : 8, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1061, "titre" : "Titre numero 1061", "date" : 15, "poids" : 23, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1062, "titre" : "Titre numero 1062", "date" : 27, "poids" : 9, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1063, "titre" : "Titre numero 1063", "date" : 0, "poids" : 43, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1064, "titre" : "Titre numero 1064", "date" : 5, "poids" : 43, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1065, "titre" : "Titre numero 1065", "date" : 18, "poids" : 13, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1066, "titre" : "Titre numero 1066", "date" : 41, "poids" : 17, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1067, "titre" : "Titre numero 1067", "date" : 39, "poids" : 13, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1068, "titre" : "Titre numero 1068", "date" : 21, "poids" : 39, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1069, "titre" : "Titre numero 1069", "date" : 14, "poids" : 25, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1070, "titre" : "Titre numero 1070", "date" : 48, "poids" : 12, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1071, "titre" : "Titre numero 1071", "date" : 38, "poids" : 46, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1072, "titre" : "Titre numero 1072", "date" : 32, "poids" : 28, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1073, "titre" : "Titre numero 1073", "date" : 40, "poids" : 33, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1074, "titre" : "Titre numero 1074", "date" : 10, "poids" : 29, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1075, "titre" : "Titre numero 1075", "date" : 35, "poids" : 29, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1076, "titre" : "Titre numero 1076", "date" : 28, "poids" : 11, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1077, "titre" : "Titre numero 1077", "date" : 44, "poids" : 14, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1078, "titre" : "Titre numero 1078", "date" : 47, "poids" : 39, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1079, "titre" : "Titre numero 1079", "date" : 15, "poids" : 29, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1080, "titre" : "Titre numero 1080", "date" : 1, "poids" : 46, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1081, "titre" : "Titre numero 1081", "date" : 18, "poids" : 34, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1082, "titre" : "Titre numero 1082", "date" : 34, "poids" : 45, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1083, "titre" : "Titre numero 1083", "date" : 13, "poids" : 48, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1084, "titre" : "Titre numero 1084", "date" : 15, "poids" : 31, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1085, "titre" : "Titre numero 1085", "date" : 2, "poids" : 29, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1086, "titre" : "Titre numero 1086", "date" : 47, "poids" : 5, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1087, "titre" : "Titre numero 1087", "date" : 34, "poids" : 36, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1088, "titre" : "Titre numero 1088", "date" : 24, "poids" : 7, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1089, "titre" : "Titre numero 1089", "date" : 21, "poids" : 41, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1090, "titre" : "Titre numero 1090", "date" : 35, "poids" : 42, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1091, "titre" : "Titre numero 1091", "date" : 1, "poids" : 39, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1092, "titre" : "Titre numero 1092", "date" : 12, "poids" : 52, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1093, "titre" : "Titre numero 1093", "date" : 29, "poids" : 54, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1094, "titre" : "Titre numero 1094", "date" : 49, "poids" : 18, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1095, "titre" : "Titre numero 1095", "date" : 16, "poids" : 49, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1096, "titre" : "Titre numero 1096", "date" : 30, "poids" : 15, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1097, "titre" : "Titre numero 1097", "date" : 26, "poids" : 21, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1098, "titre" : "Titre numero 1098", "date" : 32, "poids" : 49, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1099, "titre" : "Titre numero 1099", "date" : 17, "poids" : 37, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1100, "titre" : "Titre numero 1100", "date" : 33, "poids" : 31, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1101, "titre" : "Titre numero 1101", "date" : 25, "poids" : 12, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1102, "titre" : "Titre numero 1102", "date" : 20, "poids" : 8, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1103, "titre" : "Titre numero 1103", "date" : 4, "poids" : 9, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1104, "titre" : "Titre numero 1104", "date" : 4, "poids" : 42, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1105, "titre" : "Titre numero 1105", "date" : 47, "poids" : 26, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1106, "titre" : "Titre numero 1106", "date" : 16, "poids" : 17, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1107, "titre" : "Titre numero 1107", "date" : 21, "poids" : 45, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1108, "titre" : "Titre numero 1108", "date" : 6, "poids" : 45, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1109, "titre" : "Titre numero 1109", "date" : 41, "poids" : 25, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1110, "titre" : "Titre numero 1110", "date" : 11, "poids" : 12, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1111, "titre" : "Titre numero 1111", "date" : 38, "poids" : 40, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1112, "titre" : "Titre numero 1112", "date" : 0, "poids" : 47, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1113, "titre" : "Titre numero 1113", "date" : 21, "poids" : 49, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1114, "titre" : "Titre numero 1114", "date" : 3, "poids" : 19, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1115, "titre" : "Titre numero 1115", "date" : 41, "poids" : 40, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1116, "titre" : "Titre numero 1116", "date" : 0, "poids" : 28, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1117, "titre" : "Titre numero 1117", "date" : 16, "poids" : 23, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1118, "titre" : "Titre numero 1118", "date" : 12, "poids" : 7, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1119, "titre" : "Titre numero 1119", "date" : 16, "poids" : 6, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1120, "titre" : "Titre numero 1120", "date" : 0, "poids" : 29, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1121, "titre" : "Titre numero 1121", "date" : 26, "poids" : 26, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1122, "titre" : "Titre numero 1122", "date" : 31, "poids" : 10, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1123, "titre" : "Titre numero 1123", "date" : 4, "poids" : 13, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1124, "titre" : "Titre numero 1124", "date" : 26, "poids" : 7, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1125, "titre" : "Titre numero 1125", "date" : 2, "poids" : 36, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1126, "titre" : "Titre numero 1126", "date" : 22, "poids" : 5, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1127, "titre" : "Titre numero 1127", "date" : 21, "poids" : 47, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1128, "titre" : "Titre numero 1128", "date" : 23, "poids" : 46, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1129, "titre" : "Titre numero 1129", "date" : 12, "poids" : 23, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1130, "titre" : "Titre numero 1130", "date" : 29, "poids" : 9, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1131, "titre" : "Titre numero 1131", "date" : 5, "poids" : 52, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1132, "titre" : "Titre numero 1132", "date" : 4, "poids" : 45, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1133, "titre" : "Titre numero 1133", "date" : 17, "poids" : 8, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1134, "titre" : "Titre numero 1134", "date" : 19, "poids" : 15, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1135, "titre" : "Titre numero 1135", "date" : 35, "poids" : 14, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1136, "titre" : "Titre numero 1136", "date" : 23, "poids" : 5, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1137, "titre" : "Titre numero 1137", "date" : 31, "poids" : 47, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1138, "titre" : "Titre numero 1138", "date" : 8, "poids" : 11, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1139, "titre" : "Titre numero 1139", "date" : 1, "poids" : 32, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1140, "titre" : "Titre numero 1140", "date" : 28, "poids" : 30, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1141, "titre" : "Titre numero 1141", "date" : 36, "poids" : 46, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1142, "titre" : "Titre numero 1142", "date" : 30, "poids" : 52, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1143, "titre" : "Titre numero 1143", "date" : 21, "poids" : 12, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1144, "titre" : "Titre numero 1144", "date" : 2, "poids" : 26, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1145, "titre" : "Titre numero 1145", "date" : 42, "poids" : 18, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1146, "titre" : "Titre numero 1146", "date" : 19, "poids" : 15, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1147, "titre" : "Titre numero 1147", "date" : 46, "poids" : 49, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1148, "titre" : "Titre numero 1148", "date" : 19, "poids" : 36, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1149, "titre" : "Titre numero 1149", "date" : 2, "poids" : 21, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1150, "titre" : "Titre numero 1150", "date" : 14, "poids" : 52, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1151, "titre" : "Titre numero 1151", "date" : 2, "poids" : 8, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1152, "titre" : "Titre numero 1152", "date" : 8, "poids" : 20, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1153, "titre" : "Titre numero 1153", "date" : 7, "poids" : 53, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1154, "titre" : "Titre numero 1154", "date" : 15, "poids" : 47, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1155, "titre" : "Titre numero 1155", "date" : 36, "poids" : 32, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1156, "titre" : "Titre numero 1156", "date" : 27, "poids" : 39, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1157, "titre" : "Titre numero 1157", "date" : 42, "poids" : 50, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1158, "titre" : "Titre numero 1158", "date" : 39, "poids" : 34, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1159, "titre" : "Titre numero 1159", "date" : 49, "poids" : 20, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1160, "titre" : "Titre numero 1160", "date" : 12, "poids" : 47, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1161, "titre" : "Titre numero 1161", "date" : 42, "poids" : 18, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1162, "titre" : "Titre numero 1162", "date" : 22, "poids" : 48, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1163, "titre" : "Titre numero 1163", "date" : 38, "poids" : 37, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1164, "titre" : "Titre numero 1164", "date" : 13, "poids" : 36, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1165, "titre" : "Titre numero 1165", "date" : 18, "poids" : 21, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1166, "titre" : "Titre numero 1166", "date" : 21, "poids" : 10, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1167, "titre" : "Titre numero 1167", "date" : 35, "poids" : 39, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1168, "titre" : "Titre numero 1168", "date" : 19, "poids" : 25, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1169, "titre" : "Titre numero 1169", "date" : 49, "poids" : 44, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1170, "titre" : "Titre numero 1170", "date" : 40, "poids" : 18, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1171, "titre" : "Titre numero 1171", "date" : 10, "poids" : 52, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1172, "titre" : "Titre numero 1172", "date" : 26, "poids" : 49, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1173, "titre" : "Titre numero 1173", "date" : 3, "poids" : 41, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1174, "titre" : "Titre numero 1174", "date" : 1, "poids" : 30, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1175, "titre" : "Titre numero 1175", "date" : 32, "poids" : 18, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1176, "titre" : "Titre numero 1176", "date" : 23, "poids" : 41, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1177, "titre" : "Titre numero 1177", "date" : 30, "poids" : 22, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1178, "titre" : "Titre numero 1178", "date" : 13, "poids" : 25, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1179, "titre" : "Titre numero 1179", "date" : 14, "poids" : 22, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1180, "titre" : "Titre numero 1180", "date" : 45, "poids" : 19, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1181, "titre" : "Titre numero 1181", "date" : 31, "poids" : 52, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1182, "titre" : "Titre numero 1182", "date" : 3, "poids" : 32, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1183, "titre" : "Titre numero 1183", "date" : 42, "poids" : 37, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1184, "titre" : "Titre numero 1184", "date" : 41, "poids" : 36, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1185, "titre" : "Titre numero 1185", "date" : 26, "poids" : 48, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1186, "titre" : "Titre numero 1186", "date" : 36, "poids" : 36, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1187, "titre" : "Titre numero 1187", "date" : 41, "poids" : 9, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1188, "titre" : "Titre numero 1188", "date" : 29, "poids" : 42, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1189, "titre" : "Titre numero 1189", "date" : 20, "poids" : 34, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1190, "titre" : "Titre numero 1190", "date" : 4, "poids" : 50, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1191, "titre" : "Titre numero 1191", "date" : 10, "poids" : 42, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1192, "titre" : "Titre numero 1192", "date" : 11, "poids" : 14, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1193, "titre" : "Titre numero 1193", "date" : 8, "poids" : 16, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1194, "titre" : "Titre numero 1194", "date" : 43, "poids" : 6, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1195, "titre" : "Titre numero 1195", "date" : 29, "poids" : 24, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1196, "titre" : "Titre numero 1196", "date" : 46, "poids" : 54, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1197, "titre" : "Titre numero 1197", "date" : 9, "poids" : 49, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1198, "titre" : "Titre numero 1198", "date" : 7, "poids" : 35, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1199, "titre" : "Titre numero 1199", "date" : 43, "poids" : 53, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1200, "titre" : "Titre numero 1200", "date" : 3, "poids" : 9, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1201, "titre" : "Titre numero 1201", "date" : 38, "poids" : 52, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1202, "titre" : "Titre numero 1202", "date" : 4, "poids" : 53, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1203, "titre" : "Titre numero 1203", "date" : 32, "poids" : 5, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1204, "titre" : "Titre numero 1204", "date" : 27, "poids" : 12, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1205, "titre" : "Titre numero 1205", "date" : 25, "poids" : 21, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1206, "titre" : "Titre numero 1206", "date" : 7, "poids" : 27, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1207, "titre" : "Titre numero 1207", "date" : 43, "poids" : 27, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1208, "titre" : "Titre numero 1208", "date" : 25, "poids" : 37, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1209, "titre" : "Titre numero 1209", "date" : 11, "poids" : 9, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1210, "titre" : "Titre numero 1210", "date" : 3, "poids" : 43, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1211, "titre" : "Titre numero 1211", "date" : 25, "poids" : 21, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1212, "titre" : "Titre numero 1212", "date" : 37, "poids" : 10, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1213, "titre" : "Titre numero 1213", "date" : 0, "poids" : 36, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1214, "titre" : "Titre numero 1214", "date" : 23, "poids" : 31, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1215, "titre" : "Titre numero 1215", "date" : 10, "poids" : 18, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1216, "titre" : "Titre numero 1216", "date" : 31, "poids" : 49, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1217, "titre" : "Titre numero 1217", "date" : 7, "poids" : 45, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1218, "titre" : "Titre numero 1218", "date" : 47, "poids" : 30, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1219, "titre" : "Titre numero 1219", "date" : 34, "poids" : 43, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1220, "titre" : "Titre numero 1220", "date" : 8, "poids" : 24, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1221, "titre" : "Titre numero 1221", "date" : 28, "poids" : 35, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1222, "titre" : "Titre numero 1222", "date" : 20, "poids" : 25, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1223, "titre" : "Titre numero 1223", "date" : 11, "poids" : 9, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1224, "titre" : "Titre numero 1224", "date" : 34, "poids" : 19, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1225, "titre" : "Titre numero 1225", "date" : 46, "poids" : 25, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1226, "titre" : "Titre numero 1226", "date" : 3, "poids" : 32, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1227, "titre" : "Titre numero 1227", "date" : 23, "poids" : 35, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1228, "titre" : "Titre numero 1228", "date" : 35, "poids" : 27, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1229, "titre" : "Titre numero 1229", "date" : 48, "poids" : 50, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1230, "titre" : "Titre numero 1230", "date" : 43, "poids" : 44, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1231, "titre" : "Titre numero 1231", "date" : 21, "poids" : 52, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1232, "titre" : "Titre numero 1232", "date" : 27, "poids" : 31, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1233, "titre" : "Titre numero 1233", "date" : 2, "poids" : 49, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1234, "titre" : "Titre numero 1234", "date" : 5, "poids" : 51, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1235, "titre" : "Titre numero 1235", "date" : 18, "poids" : 33, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1236, "titre" : "Titre numero 1236", "date" : 37, "poids" : 31, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1237, "titre" : "Titre numero 1237", "date" : 34, "poids" : 38, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1238, "titre" : "Titre numero 1238", "date" : 34, "poids" : 8, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1239, "titre" : "Titre numero 1239", "date" : 26, "poids" : 21, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1240, "titre" : "Titre numero 1240", "date" : 23, "poids" : 13, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1241, "titre" : "Titre numero 1241", "date" : 39, "poids" : 20, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1242, "titre" : "Titre numero 1242", "date" : 18, "poids" : 18, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1243, "titre" : "Titre numero 1243", "date" : 38, "poids" : 42, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1244, "titre" : "Titre numero 1244", "date" : 1, "poids" : 20, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1245, "titre" : "Titre numero 1245", "date" : 0, "poids" : 41, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1246, "titre" : "Titre numero 1246", "date" : 35, "poids" : 41, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1247, "titre" : "Titre numero 1247", "date" : 19, "poids" : 27, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1248, "titre" : "Titre numero 1248", "date" : 40, "poids" : 50, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1249, "titre" : "Titre numero 1249", "date" : 5, "poids" : 20, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1250, "titre" : "Titre numero 1250", "date" : 13, "poids" : 36, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1251, "titre" : "Titre numero 1251", "date" : 6, "poids" : 48, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1252, "titre" : "Titre numero 1252", "date" : 18, "poids" : 18, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1253, "titre" : "Titre numero 1253", "date" : 2, "poids" : 32, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1254, "titre" : "Titre numero 1254", "date" : 44, "poids" : 16, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1255, "titre" : "Titre numero 1255", "date" : 34, "poids" : 31, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1256, "titre" : "Titre numero 1256", "date" : 31, "poids" : 8, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1257, "titre" : "Titre numero 1257", "date" : 17, "poids" : 52, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1258, "titre" : "Titre numero 1258", "date" : 43, "poids" : 10, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1259, "titre" : "Titre numero 1259", "date" : 7, "poids" : 33, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1260, "titre" : "Titre numero 1260", "date" : 12, "poids" : 7, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1261, "titre" : "Titre numero 1261", "date" : 7, "poids" : 26, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1262, "titre" : "Titre numero 1262", "date" : 24, "poids" : 42, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1263, "titre" : "Titre numero 1263", "date" : 0, "poids" : 28, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1264, "titre" : "Titre numero 1264", "date" : 2, "poids" : 31, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1265, "titre" : "Titre numero 1265", "date" : 3, "poids" : 25, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1266, "titre" : "Titre numero 1266", "date" : 48, "poids" : 34, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1267, "titre" : "Titre numero 1267", "date" : 10, "poids" : 32, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1268, "titre" : "Titre numero 1268", "date" : 25, "poids" : 49, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1269, "titre" : "Titre numero 1269", "date" : 16, "poids" : 34, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1270, "titre" : "Titre numero 1270", "date" : 13, "poids" : 12, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1271, "titre" : "Titre numero 1271", "date" : 23, "poids" : 15, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1272, "titre" : "Titre numero 1272", "date" : 38, "poids" : 54, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1273, "titre" : "Titre numero 1273", "date" : 2, "poids" : 22, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1274, "titre" : "Titre numero 1274", "date" : 24, "poids" : 5, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1275, "titre" : "Titre numero 1275", "date" : 39, "poids" : 45, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1276, "titre" : "Titre numero 1276", "date" : 34, "poids" : 19, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1277, "titre" : "Titre numero 1277", "date" : 22, "poids" : 46, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1278, "titre" : "Titre numero 1278", "date" : 34, "poids" : 47, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1279, "titre" : "Titre numero 1279", "date" : 45, "poids" : 35, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1280, "titre" : "Titre numero 1280", "date" : 13, "poids" : 25, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1281, "titre" : "Titre numero 1281", "date" : 27, "poids" : 46, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1282, "titre" : "Titre numero 1282", "date" : 34, "poids" : 22, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1283, "titre" : "Titre numero 1283", "date" : 27, "poids" : 51, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1284, "titre" : "Titre numero 1284", "date" : 12, "poids" : 42, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1285, "titre" : "Titre numero 1285", "date" : 3, "poids" : 21, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1286, "titre" : "Titre numero 1286", "date" : 0, "poids" : 32, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1287, "titre" : "Titre numero 1287", "date" : 31, "poids" : 37, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1288, "titre" : "Titre numero 1288", "date" : 31, "poids" : 15, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1289, "titre" : "Titre numero 1289", "date" : 43, "poids" : 22, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1290, "titre" : "Titre numero 1290", "date" : 39, "poids" : 52, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1291, "titre" : "Titre numero 1291", "date" : 39, "poids" : 37, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1292, "titre" : "Titre numero 1292", "date" : 20, "poids" : 29, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1293, "titre" : "Titre numero 1293", "date" : 22, "poids" : 30, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1294, "titre" : "Titre numero 1294", "date" : 31, "poids" : 52, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1295, "titre" : "Titre numero 1295", "date" : 38, "poids" : 34, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1296, "titre" : "Titre numero 1296", "date" : 38, "poids" : 12, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1297, "titre" : "Titre numero 1297", "date" : 16, "poids" : 13, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1298, "titre" : "Titre numero 1298", "date" : 45, "poids" : 41, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1299, "titre" : "Titre numero 1299", "date" : 41, "poids" : 40, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1300, "titre" : "Titre numero 1300", "date" : 38, "poids" : 45, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1301, "titre" : "Titre numero 1301", "date" : 18, "poids" : 53, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1302, "titre" : "Titre numero 1302", "date" : 8, "poids" : 54, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1303, "titre" : "Titre numero 1303", "date" : 11, "poids" : 47, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1304, "titre" : "Titre numero 1304", "date" : 32, "poids" : 21, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1305, "titre" : "Titre numero 1305", "date" : 49, "poids" : 54, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1306, "titre" : "Titre numero 1306", "date" : 13, "poids" : 45, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1307, "titre" : "Titre numero 1307", "date" : 43, "poids" : 49, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1308, "titre" : "Titre numero 1308", "date" : 9, "poids" : 21, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1309, "titre" : "Titre numero 1309", "date" : 47, "poids" : 23, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1310, "titre" : "Titre numero 1310", "date" : 40, "poids" : 18, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1311, "titre" : "Titre numero 1311", "date" : 23, "poids" : 9, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1312, "titre" : "Titre numero 1312", "date" : 48, "poids" : 38, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1313, "titre" : "Titre numero 1313", "date" : 24, "poids" : 53, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1314, "titre" : "Titre numero 1314", "date" : 21, "poids" : 25, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1315, "titre" : "Titre numero 1315", "date" : 27, "poids" : 5, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1316, "titre" : "Titre numero 1316", "date" : 31, "poids" : 37, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1317, "titre" : "Titre numero 1317", "date" : 15, "poids" : 5, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1318, "titre" : "Titre numero 1318", "date" : 8, "poids" : 23, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1319, "titre" : "Titre numero 1319", "date" : 32, "poids" : 45, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1320, "titre" : "Titre numero 1320", "date" : 49, "poids" : 34, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1321, "titre" : "Titre numero 1321", "date" : 17, "poids" : 5, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1322, "titre" : "Titre numero 1322", "date" : 28, "poids" : 48, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1323, "titre" : "Titre numero 1323", "date" : 36, "poids" : 45, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1324, "titre" : "Titre numero 1324", "date" : 43, "poids" : 24, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1325, "titre" : "Titre numero 1325", "date" : 2, "poids" : 14, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1326, "titre" : "Titre numero 1326", "date" : 48, "poids" : 38, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1327, "titre" : "Titre numero 1327", "date" : 46, "poids" : 16, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1328, "titre" : "Titre numero 1328", "date" : 36, "poids" : 8, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1329, "titre" : "Titre numero 1329", "date" : 5, "poids" : 31, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1330, "titre" : "Titre numero 1330", "date" : 21, "poids" : 25, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1331, "titre" : "Titre numero 1331", "date" : 31, "poids" : 18, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1332, "titre" : "Titre numero 1332", "date" : 12, "poids" : 40, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1333, "titre" : "Titre numero 1333", "date" : 36, "poids" : 24, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1334, "titre" : "Titre numero 1334", "date" : 30, "poids" : 41, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1335, "titre" : "Titre numero 1335", "date" : 48, "poids" : 21, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1336, "titre" : "Titre numero 1336", "date" : 40, "poids" : 13, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1337, "titre" : "Titre numero 1337", "date" : 18, "poids" : 40, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1338, "titre" : "Titre numero 1338", "date" : 15, "poids" : 46, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1339, "titre" : "Titre numero 1339", "date" : 21, "poids" : 42, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1340, "titre" : "Titre numero 1340", "date" : 42, "poids" : 35, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1341, "titre" : "Titre numero 1341", "date" : 32, "poids" : 28, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1342, "titre" : "Titre numero 1342", "date" : 44, "poids" : 9, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1343, "titre" : "Titre numero 1343", "date" : 45, "poids" : 27, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1344, "titre" : "Titre numero 1344", "date" : 17, "poids" : 23, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1345, "titre" : "Titre numero 1345", "date" : 41, "poids" : 51, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1346, "titre" : "Titre numero 1346", "date" : 47, "poids" : 27, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1347, "titre" : "Titre numero 1347", "date" : 27, "poids" : 9, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1348, "titre" : "Titre numero 1348", "date" : 2, "poids" : 49, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1349, "titre" : "Titre numero 1349", "date" : 0, "poids" : 6, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1350, "titre" : "Titre numero 1350", "date" : 26, "poids" : 20, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1351, "titre" : "Titre numero 1351", "date" : 9, "poids" : 41, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1352, "titre" : "Titre numero 1352", "date" : 2, "poids" : 5, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1353, "titre" : "Titre numero 1353", "date" : 15, "poids" : 7, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1354, "titre" : "Titre numero 1354", "date" : 45, "poids" : 36, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1355, "titre" : "Titre numero 1355", "date" : 27, "poids" : 24, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1356, "titre" : "Titre numero 1356", "date" : 44, "poids" : 9, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1357, "titre" : "Titre numero 1357", "date" : 6, "poids" : 14, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1358, "titre" : "Titre numero 1358", "date" : 42, "poids" : 40, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1359, "titre" : "Titre numero 1359", "date" : 17, "poids" : 15, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1360, "titre" : "Titre numero 1360", "date" : 3, "poids" : 11, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1361, "titre" : "Titre numero 1361", "date" : 48, "poids" : 43, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1362, "titre" : "Titre numero 1362", "date" : 48, "poids" : 7, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1363, "titre" : "Titre numero 1363", "date" : 13, "poids" : 10, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1364, "titre" : "Titre numero 1364", "date" : 1, "poids" : 21, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1365, "titre" : "Titre numero 1365", "date" : 46, "poids" : 42, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1366, "titre" : "Titre numero 1366", "date" : 7, "poids" : 45, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1367, "titre" : "Titre numero 1367", "date" : 21, "poids" : 26, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1368, "titre" : "Titre numero 1368", "date" : 22, "poids" : 28, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1369, "titre" : "Titre numero 1369", "date" : 43, "poids" : 6, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1370, "titre" : "Titre numero 1370", "date" : 5, "poids" : 32, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1371, "titre" : "Titre numero 1371", "date" : 25, "poids" : 45, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1372, "titre" : "Titre numero 1372", "date" : 6, "poids" : 34, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1373, "titre" : "Titre numero 1373", "date" : 20, "poids" : 8, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1374, "titre" : "Titre numero 1374", "date" : 27, "poids" : 31, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1375, "titre" : "Titre numero 1375", "date" : 30, "poids" : 6, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1376, "titre" : "Titre numero 1376", "date" : 15, "poids" : 51, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1377, "titre" : "Titre numero 1377", "date" : 27, "poids" : 20, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1378, "titre" : "Titre numero 1378", "date" : 2, "poids" : 43, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1379, "titre" : "Titre numero 1379", "date" : 38, "poids" : 43, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1380, "titre" : "Titre numero 1380", "date" : 46, "poids" : 40, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1381, "titre" : "Titre numero 1381", "date" : 26, "poids" : 32, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1382, "titre" : "Titre numero 1382", "date" : 48, "poids" : 48, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1383, "titre" : "Titre numero 1383", "date" : 13, "poids" : 22, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1384, "titre" : "Titre numero 1384", "date" : 47, "poids" : 20, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1385, "titre" : "Titre numero 1385", "date" : 27, "poids" : 21, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1386, "titre" : "Titre numero 1386", "date" : 17, "poids" : 26, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1387, "titre" : "Titre numero 1387", "date" : 17, "poids" : 11, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1388, "titre" : "Titre numero 1388", "date" : 18, "poids" : 28, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1389, "titre" : "Titre numero 1389", "date" : 26, "poids" : 31, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1390, "titre" : "Titre numero 1390", "date" : 7, "poids" : 25, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1391, "titre" : "Titre numero 1391", "date" : 25, "poids" : 21, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1392, "titre" : "Titre numero 1392", "date" : 21, "poids" : 9, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1393, "titre" : "Titre numero 1393", "date" : 37, "poids" : 21, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1394, "titre" : "Titre numero 1394", "date" : 27, "poids" : 49, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1395, "titre" : "Titre numero 1395", "date" : 6, "poids" : 9, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1396, "titre" : "Titre numero 1396", "date" : 28, "poids" : 29, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1397, "titre" : "Titre numero 1397", "date" : 11, "poids" : 25, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1398, "titre" : "Titre numero 1398", "date" : 18, "poids" : 47, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1399, "titre" : "Titre numero 1399", "date" : 3, "poids" : 7, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1400, "titre" : "Titre numero 1400", "date" : 26, "poids" : 49, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1401, "titre" : "Titre numero 1401", "date" : 6, "poids" : 17, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1402, "titre" : "Titre numero 1402", "date" : 40, "poids" : 51, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1403, "titre" : "Titre numero 1403", "date" : 42, "poids" : 50, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1404, "titre" : "Titre numero 1404", "date" : 21, "poids" : 23, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1405, "titre" : "Titre numero 1405", "date" : 7, "poids" : 16, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1406, "titre" : "Titre numero 1406", "date" : 24, "poids" : 33, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1407, "titre" : "Titre numero 1407", "date" : 49, "poids" : 39, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1408, "titre" : "Titre numero 1408", "date" : 8, "poids" : 45, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1409, "titre" : "Titre numero 1409", "date" : 16, "poids" : 12, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1410, "titre" : "Titre numero 1410", "date" : 12, "poids" : 24, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1411, "titre" : "Titre numero 1411", "date" : 23, "poids" : 20, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1412, "titre" : "Titre numero 1412", "date" : 6, "poids" : 51, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1413, "titre" : "Titre numero 1413", "date" : 42, "poids" : 16, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1414, "titre" : "Titre numero 1414", "date" : 25, "poids" : 43, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1415, "titre" : "Titre numero 1415", "date" : 13, "poids" : 51, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1416, "titre" : "Titre numero 1416", "date" : 17, "poids" : 28, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1417, "titre" : "Titre numero 1417", "date" : 47, "poids" : 45, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1418, "titre" : "Titre numero 1418", "date" : 27, "poids" : 47, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1419, "titre" : "Titre numero 1419", "date" : 10, "poids" : 23, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1420, "titre" : "Titre numero 1420", "date" : 3, "poids" : 11, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1421, "titre" : "Titre numero 1421", "date" : 42, "poids" : 26, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1422, "titre" : "Titre numero 1422", "date" : 21, "poids" : 43, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1423, "titre" : "Titre numero 1423", "date" : 36, "poids" : 46, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1424, "titre" : "Titre numero 1424", "date" : 31, "poids" : 43, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1425, "titre" : "Titre numero 1425", "date" : 30, "poids" : 33, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1426, "titre" : "Titre numero 1426", "date" : 41, "poids" : 28, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1427, "titre" : "Titre numero 1427", "date" : 10, "poids" : 34, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1428, "titre" : "Titre numero 1428", "date" : 28, "poids" : 52, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1429, "titre" : "Titre numero 1429", "date" : 43, "poids" : 28, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1430, "titre" : "Titre numero 1430", "date" : 40, "poids" : 35, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1431, "titre" : "Titre numero 1431", "date" : 36, "poids" : 51, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1432, "titre" : "Titre numero 1432", "date" : 13, "poids" : 36, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1433, "titre" : "Titre numero 1433", "date" : 15, "poids" : 23, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1434, "titre" : "Titre numero 1434", "date" : 49, "poids" : 46, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1435, "titre" : "Titre numero 1435", "date" : 44, "poids" : 10, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1436, "titre" : "Titre numero 1436", "date" : 40, "poids" : 35, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1437, "titre" : "Titre numero 1437", "date" : 19, "poids" : 40, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1438, "titre" : "Titre numero 1438", "date" : 22, "poids" : 40, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1439, "titre" : "Titre numero 1439", "date" : 17, "poids" : 53, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1440, "titre" : "Titre numero 1440", "date" : 49, "poids" : 14, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1441, "titre" : "Titre numero 1441", "date" : 12, "poids" : 6, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1442, "titre" : "Titre numero 1442", "date" : 23, "poids" : 15, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1443, "titre" : "Titre numero 1443", "date" : 20, "poids" : 38, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1444, "titre" : "Titre numero 1444", "date" : 34, "poids" : 36, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1445, "titre" : "Titre numero 1445", "date" : 30, "poids" : 51, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1446, "titre" : "Titre numero 1446", "date" : 36, "poids" : 37, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1447, "titre" : "Titre numero 1447", "date" : 5, "poids" : 26, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1448, "titre" : "Titre numero 1448", "date" : 35, "poids" : 11, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1449, "titre" : "Titre numero 1449", "date" : 29, "poids" : 10, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1450, "titre" : "Titre numero 1450", "date" : 35, "poids" : 44, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1451, "titre" : "Titre numero 1451", "date" : 2, "poids" : 39, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1452, "titre" : "Titre numero 1452", "date" : 12, "poids" : 42, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1453, "titre" : "Titre numero 1453", "date" : 28, "poids" : 38, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1454, "titre" : "Titre numero 1454", "date" : 15, "poids" : 9, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1455, "titre" : "Titre numero 1455", "date" : 27, "poids" : 6, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1456, "titre" : "Titre numero 1456", "date" : 32, "poids" : 18, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1457, "titre" : "Titre numero 1457", "date" : 27, "poids" : 31, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1458, "titre" : "Titre numero 1458", "date" : 22, "poids" : 40, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1459, "titre" : "Titre numero 1459", "date" : 11, "poids" : 22, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1460, "titre" : "Titre numero 1460", "date" : 27, "poids" : 41, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1461, "titre" : "Titre numero 1461", "date" : 33, "poids" : 14, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1462, "titre" : "Titre numero 1462", "date" : 5, "poids" : 21, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1463, "titre" : "Titre numero 1463", "date" : 12, "poids" : 37, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1464, "titre" : "Titre numero 1464", "date" : 45, "poids" : 32, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1465, "titre" : "Titre numero 1465", "date" : 34, "poids" : 19, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1466, "titre" : "Titre numero 1466", "date" : 32, "poids" : 45, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1467, "titre" : "Titre numero 1467", "date" : 12, "poids" : 48, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1468, "titre" : "Titre numero 1468", "date" : 19, "poids" : 27, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1469, "titre" : "Titre numero 1469", "date" : 9, "poids" : 49, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1470, "titre" : "Titre numero 1470", "date" : 2, "poids" : 11, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1471, "titre" : "Titre numero 1471", "date" : 45, "poids" : 16, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1472, "titre" : "Titre numero 1472", "date" : 11, "poids" : 5, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1473, "titre" : "Titre numero 1473", "date" : 38, "poids" : 42, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1474, "titre" : "Titre numero 1474", "date" : 45, "poids" : 35, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1475, "titre" : "Titre numero 1475", "date" : 28, "poids" : 11, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1476, "titre" : "Titre numero 1476", "date" : 33, "poids" : 47, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1477, "titre" : "Titre numero 1477", "date" : 13, "poids" : 8, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1478, "titre" : "Titre numero 1478", "date" : 34, "poids" : 53, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1479, "titre" : "Titre numero 1479", "date" : 29, "poids" : 10, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1480, "titre" : "Titre numero 1480", "date" : 29, "poids" : 27, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1481, "titre" : "Titre numero 1481", "date" : 1, "poids" : 18, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1482, "titre" : "Titre numero 1482", "date" : 16, "poids" : 49, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1483, "titre" : "Titre numero 1483", "date" : 32, "poids" : 32, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1484, "titre" : "Titre numero 1484", "date" : 20, "poids" : 42, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1485, "titre" : "Titre numero 1485", "date" : 29, "poids" : 52, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1486, "titre" : "Titre numero 1486", "date" : 48, "poids" : 32, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1487, "titre" : "Titre numero 1487", "date" : 23, "poids" : 20, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1488, "titre" : "Titre numero 1488", "date" : 43, "poids" : 34, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1489, "titre" : "Titre numero 1489", "date" : 43, "poids" : 11, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1490, "titre" : "Titre numero 1490", "date" : 24, "poids" : 49, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1491, "titre" : "Titre numero 1491", "date" : 45, "poids" : 34, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1492, "titre" : "Titre numero 1492", "date" : 14, "poids" : 29, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1493, "titre" : "Titre numero 1493", "date" : 41, "poids" : 51, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1494, "titre" : "Titre numero 1494", "date" : 23, "poids" : 16, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1495, "titre" : "Titre numero 1495", "date" : 28, "poids" : 46, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1496, "titre" : "Titre numero 1496", "date" : 37, "poids" : 28, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1497, "titre" : "Titre numero 1497", "date" : 38, "poids" : 17, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1498, "titre" : "Titre numero 1498", "date" : 36, "poids" : 53, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1499, "titre" : "Titre numero 1499", "date" : 21, "poids" : 26, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1500, "titre" : "Titre numero 1500", "date" : 27, "poids" : 46, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1501, "titre" : "Titre numero 1501", "date" : 12, "poids" : 41, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1502, "titre" : "Titre numero 1502", "date" : 3, "poids" : 6, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1503, "titre" : "Titre numero 1503", "date" : 8, "poids" : 21, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1504, "titre" : "Titre numero 1504", "date" : 24, "poids" : 6, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1505, "titre" : "Titre numero 1505", "date" : 5, "poids" : 53, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1506, "titre" : "Titre numero 1506", "date" : 9, "poids" : 11, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1507, "titre" : "Titre numero 1507", "date" : 5, "poids" : 50, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1508, "titre" : "Titre numero 1508", "date" : 26, "poids" : 44, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1509, "titre" : "Titre numero 1509", "date" : 23, "poids" : 51, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1510, "titre" : "Titre numero 1510", "date" : 47, "poids" : 15, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1511, "titre" : "Titre numero 1511", "date" : 2, "poids" : 23, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1512, "titre" : "Titre numero 1512", "date" : 13, "poids" : 49, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1513, "titre" : "Titre numero 1513", "date" : 44, "poids" : 48, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1514, "titre" : "Titre numero 1514", "date" : 5, "poids" : 5, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1515, "titre" : "Titre numero 1515", "date" : 43, "poids" : 23, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1516, "titre" : "Titre numero 1516", "date" : 14, "poids" : 16, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1517, "titre" : "Titre numero 1517", "date" : 48, "poids" : 38, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1518, "titre" : "Titre numero 1518", "date" : 9, "poids" : 17, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1519, "titre" : "Titre numero 1519", "date" : 42, "poids" : 13, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1520, "titre" : "Titre numero 1520", "date" : 18, "poids" : 24, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1521, "titre" : "Titre numero 1521", "date" : 12, "poids" : 30, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1522, "titre" : "Titre numero 1522", "date" : 9, "poids" : 9, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1523, "titre" : "Titre numero 1523", "date" : 32, "poids" : 16, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1524, "titre" : "Titre numero 1524", "date" : 37, "poids" : 18, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1525, "titre" : "Titre numero 1525", "date" : 42, "poids" : 8, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1526, "titre" : "Titre numero 1526", "date" : 17, "poids" : 22, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1527, "titre" : "Titre numero 1527", "date" : 43, "poids" : 39, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1528, "titre" : "Titre numero 1528", "date" : 15, "poids" : 51, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1529, "titre" : "Titre numero 1529", "date" : 14, "poids" : 28, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1530, "titre" : "Titre numero 1530", "date" : 25, "poids" : 14, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1531, "titre" : "Titre numero 1531", "date" : 29, "poids" : 27, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1532, "titre" : "Titre numero 1532", "date" : 35, "poids" : 5, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1533, "titre" : "Titre numero 1533", "date" : 10, "poids" : 19, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1534, "titre" : "Titre numero 1534", "date" : 48, "poids" : 17, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1535, "titre" : "Titre numero 1535", "date" : 19, "poids" : 22, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1536, "titre" : "Titre numero 1536", "date" : 28, "poids" : 20, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1537, "titre" : "Titre numero 1537", "date" : 32, "poids" : 14, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1538, "titre" : "Titre numero 1538", "date" : 38, "poids" : 32, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1539, "titre" : "Titre numero 1539", "date" : 31, "poids" : 9, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1540, "titre" : "Titre numero 1540", "date" : 26, "poids" : 9, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1541, "titre" : "Titre numero 1541", "date" : 37, "poids" : 19, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1542, "titre" : "Titre numero 1542", "date" : 41, "poids" : 13, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1543, "titre" : "Titre numero 1543", "date" : 10, "poids" : 49, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1544, "titre" : "Titre numero 1544", "date" : 34, "poids" : 39, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1545, "titre" : "Titre numero 1545", "date" : 35, "poids" : 20, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1546, "titre" : "Titre numero 1546", "date" : 8, "poids" : 11, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1547, "titre" : "Titre numero 1547", "date" : 13, "poids" : 43, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1548, "titre" : "Titre numero 1548", "date" : 9, "poids" : 7, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1549, "titre" : "Titre numero 1549", "date" : 43, "poids" : 47, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1550, "titre" : "Titre numero 1550", "date" : 16, "poids" : 27, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1551, "titre" : "Titre numero 1551", "date" : 5, "poids" : 44, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1552, "titre" : "Titre numero 1552", "date" : 38, "poids" : 7, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1553, "titre" : "Titre numero 1553", "date" : 37, "poids" : 38, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1554, "titre" : "Titre numero 1554", "date" : 6, "poids" : 44, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1555, "titre" : "Titre numero 1555", "date" : 15, "poids" : 34, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1556, "titre" : "Titre numero 1556", "date" : 7, "poids" : 26, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1557, "titre" : "Titre numero 1557", "date" : 2, "poids" : 19, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1558, "titre" : "Titre numero 1558", "date" : 19, "poids" : 31, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1559, "titre" : "Titre numero 1559", "date" : 9, "poids" : 40, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1560, "titre" : "Titre numero 1560", "date" : 48, "poids" : 49, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1561, "titre" : "Titre numero 1561", "date" : 41, "poids" : 14, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1562, "titre" : "Titre numero 1562", "date" : 28, "poids" : 31, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1563, "titre" : "Titre numero 1563", "date" : 39, "poids" : 49, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1564, "titre" : "Titre numero 1564", "date" : 11, "poids" : 20, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1565, "titre" : "Titre numero 1565", "date" : 15, "poids" : 11, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1566, "titre" : "Titre numero 1566", "date" : 32, "poids" : 7, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1567, "titre" : "Titre numero 1567", "date" : 23, "poids" : 40, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1568, "titre" : "Titre numero 1568", "date" : 44, "poids" : 50, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1569, "titre" : "Titre numero 1569", "date" : 36, "poids" : 10, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1570, "titre" : "Titre numero 1570", "date" : 28, "poids" : 9, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1571, "titre" : "Titre numero 1571", "date" : 26, "poids" : 49, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1572, "titre" : "Titre numero 1572", "date" : 23, "poids" : 25, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1573, "titre" : "Titre numero 1573", "date" : 23, "poids" : 25, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1574, "titre" : "Titre numero 1574", "date" : 0, "poids" : 46, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1575, "titre" : "Titre numero 1575", "date" : 15, "poids" : 52, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1576, "titre" : "Titre numero 1576", "date" : 26, "poids" : 11, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1577, "titre" : "Titre numero 1577", "date" : 2, "poids" : 23, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1578, "titre" : "Titre numero 1578", "date" : 26, "poids" : 25, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1579, "titre" : "Titre numero 1579", "date" : 40, "poids" : 10, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1580, "titre" : "Titre numero 1580", "date" : 28, "poids" : 18, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1581, "titre" : "Titre numero 1581", "date" : 41, "poids" : 23, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1582, "titre" : "Titre numero 1582", "date" : 36, "poids" : 54, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1583, "titre" : "Titre numero 1583", "date" : 6, "poids" : 34, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1584, "titre" : "Titre numero 1584", "date" : 6, "poids" : 5, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1585, "titre" : "Titre numero 1585", "date" : 13, "poids" : 20, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1586, "titre" : "Titre numero 1586", "date" : 16, "poids" : 47, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1587, "titre" : "Titre numero 1587", "date" : 17, "poids" : 13, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1588, "titre" : "Titre numero 1588", "date" : 18, "poids" : 52, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1589, "titre" : "Titre numero 1589", "date" : 42, "poids" : 13, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1590, "titre" : "Titre numero 1590", "date" : 24, "poids" : 42, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1591, "titre" : "Titre numero 1591", "date" : 3, "poids" : 37, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1592, "titre" : "Titre numero 1592", "date" : 28, "poids" : 52, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1593, "titre" : "Titre numero 1593", "date" : 23, "poids" : 40, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1594, "titre" : "Titre numero 1594", "date" : 41, "poids" : 6, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1595, "titre" : "Titre numero 1595", "date" : 22, "poids" : 14, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1596, "titre" : "Titre numero 1596", "date" : 27, "poids" : 15, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1597, "titre" : "Titre numero 1597", "date" : 12, "poids" : 20, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1598, "titre" : "Titre numero 1598", "date" : 16, "poids" : 19, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1599, "titre" : "Titre numero 1599", "date" : 1, "poids" : 21, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1600, "titre" : "Titre numero 1600", "date" : 45, "poids" : 41, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1601, "titre" : "Titre numero 1601", "date" : 34, "poids" : 54, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1602, "titre" : "Titre numero 1602", "date" : 44, "poids" : 51, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1603, "titre" : "Titre numero 1603", "date" : 42, "poids" : 8, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1604, "titre" : "Titre numero 1604", "date" : 32, "poids" : 21, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1605, "titre" : "Titre numero 1605", "date" : 47, "poids" : 9, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1606, "titre" : "Titre numero 1606", "date" : 16, "poids" : 6, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1607, "titre" : "Titre numero 1607", "date" : 22, "poids" : 10, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1608, "titre" : "Titre numero 1608", "date" : 33, "poids" : 28, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1609, "titre" : "Titre numero 1609", "date" : 34, "poids" : 7, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1610, "titre" : "Titre numero 1610", "date" : 42, "poids" : 26, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1611, "titre" : "Titre numero 1611", "date" : 45, "poids" : 15, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1612, "titre" : "Titre numero 1612", "date" : 35, "poids" : 45, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1613, "titre" : "Titre numero 1613", "date" : 10, "poids" : 27, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1614, "titre" : "Titre numero 1614", "date" : 19, "poids" : 8, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1615, "titre" : "Titre numero 1615", "date" : 1, "poids" : 16, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1616, "titre" : "Titre numero 1616", "date" : 4, "poids" : 17, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1617, "titre" : "Titre numero 1617", "date" : 8, "poids" : 54, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1618, "titre" : "Titre numero 1618", "date" : 44, "poids" : 28, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1619, "titre" : "Titre numero 1619", "date" : 5, "poids" : 37, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1620, "titre" : "Titre numero 1620", "date" : 22, "poids" : 41, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1621, "titre" : "Titre numero 1621", "date" : 41, "poids" : 51, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1622, "titre" : "Titre numero 1622", "date" : 20, "poids" : 35, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1623, "titre" : "Titre numero 1623", "date" : 30, "poids" : 43, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1624, "titre" : "Titre numero 1624", "date" : 30, "poids" : 41, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1625, "titre" : "Titre numero 1625", "date" : 33, "poids" : 52, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1626, "titre" : "Titre numero 1626", "date" : 43, "poids" : 31, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1627, "titre" : "Titre numero 1627", "date" : 42, "poids" : 35, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1628, "titre" : "Titre numero 1628", "date" : 30, "poids" : 31, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1629, "titre" : "Titre numero 1629", "date" : 13, "poids" : 25, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1630, "titre" : "Titre numero 1630", "date" : 46, "poids" : 43, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1631, "titre" : "Titre numero 1631", "date" : 30, "poids" : 22, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1632, "titre" : "Titre numero 1632", "date" : 4, "poids" : 46, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1633, "titre" : "Titre numero 1633", "date" : 6, "poids" : 32, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1634, "titre" : "Titre numero 1634", "date" : 27, "poids" : 53, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1635, "titre" : "Titre numero 1635", "date" : 8, "poids" : 37, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1636, "titre" : "Titre numero 1636", "date" : 5, "poids" : 21, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1637, "titre" : "Titre numero 1637", "date" : 46, "poids" : 15, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1638, "titre" : "Titre numero 1638", "date" : 41, "poids" : 46, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1639, "titre" : "Titre numero 1639", "date" : 16, "poids" : 52, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1640, "titre" : "Titre numero 1640", "date" : 35, "poids" : 44, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1641, "titre" : "Titre numero 1641", "date" : 18, "poids" : 35, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1642, "titre" : "Titre numero 1642", "date" : 15, "poids" : 47, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1643, "titre" : "Titre numero 1643", "date" : 37, "poids" : 26, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1644, "titre" : "Titre numero 1644", "date" : 43, "poids" : 19, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1645, "titre" : "Titre numero 1645", "date" : 47, "poids" : 23, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1646, "titre" : "Titre numero 1646", "date" : 36, "poids" : 14, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1647, "titre" : "Titre numero 1647", "date" : 49, "poids" : 39, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1648, "titre" : "Titre numero 1648", "date" : 19, "poids" : 14, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1649, "titre" : "Titre numero 1649", "date" : 6, "poids" : 31, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1650, "titre" : "Titre numero 1650", "date" : 35, "poids" : 43, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1651, "titre" : "Titre numero 1651", "date" : 22, "poids" : 23, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1652, "titre" : "Titre numero 1652", "date" : 26, "poids" : 27, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1653, "titre" : "Titre numero 1653", "date" : 28, "poids" : 25, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1654, "titre" : "Titre numero 1654", "date" : 16, "poids" : 13, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1655, "titre" : "Titre numero 1655", "date" : 36, "poids" : 20, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1656, "titre" : "Titre numero 1656", "date" : 15, "poids" : 24, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1657, "titre" : "Titre numero 1657", "date" : 29, "poids" : 10, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1658, "titre" : "Titre numero 1658", "date" : 28, "poids" : 51, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1659, "titre" : "Titre numero 1659", "date" : 8, "poids" : 48, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1660, "titre" : "Titre numero 1660", "date" : 25, "poids" : 54, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1661, "titre" : "Titre numero 1661", "date" : 25, "poids" : 47, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1662, "titre" : "Titre numero 1662", "date" : 23, "poids" : 42, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1663, "titre" : "Titre numero 1663", "date" : 17, "poids" : 43, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1664, "titre" : "Titre numero 1664", "date" : 43, "poids" : 41, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1665, "titre" : "Titre numero 1665", "date" : 20, "poids" : 45, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1666, "titre" : "Titre numero 1666", "date" : 15, "poids" : 48, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1667, "titre" : "Titre numero 1667", "date" : 42, "poids" : 48, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1668, "titre" : "Titre numero 1668", "date" : 5, "poids" : 15, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1669, "titre" : "Titre numero 1669", "date" : 10, "poids" : 15, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1670, "titre" : "Titre numero 1670", "date" : 2, "poids" : 46, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1671, "titre" : "Titre numero 1671", "date" : 46, "poids" : 20, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1672, "titre" : "Titre numero 1672", "date" : 45, "poids" : 21, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1673, "titre" : "Titre numero 1673", "date" : 25, "poids" : 48, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1674, "titre" : "Titre numero 1674", "date" : 44, "poids" : 15, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1675, "titre" : "Titre numero 1675", "date" : 40, "poids" : 48, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1676, "titre" : "Titre numero 1676", "date" : 25, "poids" : 17, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1677, "titre" : "Titre numero 1677", "date" : 29, "poids" : 24, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1678, "titre" : "Titre numero 1678", "date" : 40, "poids" : 25, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1679, "titre" : "Titre numero 1679", "date" : 26, "poids" : 45, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1680, "titre" : "Titre numero 1680", "date" : 25, "poids" : 37, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1681, "titre" : "Titre numero 1681", "date" : 17, "poids" : 31, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1682, "titre" : "Titre numero 1682", "date" : 26, "poids" : 17, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1683, "titre" : "Titre numero 1683", "date" : 29, "poids" : 43, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1684, "titre" : "Titre numero 1684", "date" : 46, "poids" : 25, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1685, "titre" : "Titre numero 1685", "date" : 2, "poids" : 27, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1686, "titre" : "Titre numero 1686", "date" : 39, "poids" : 53, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1687, "titre" : "Titre numero 1687", "date" : 31, "poids" : 18, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1688, "titre" : "Titre numero 1688", "date" : 14, "poids" : 34, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1689, "titre" : "Titre numero 1689", "date" : 23, "poids" : 31, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1690, "titre" : "Titre numero 1690", "date" : 42, "poids" : 36, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1691, "titre" : "Titre numero 1691", "date" : 29, "poids" : 9, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1692, "titre" : "Titre numero 1692", "date" : 22, "poids" : 5, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1693, "titre" : "Titre numero 1693", "date" : 33, "poids" : 33, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1694, "titre" : "Titre numero 1694", "date" : 42, "poids" : 51, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1695, "titre" : "Titre numero 1695", "date" : 38, "poids" : 35, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1696, "titre" : "Titre numero 1696", "date" : 0, "poids" : 11, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1697, "titre" : "Titre numero 1697", "date" : 20, "poids" : 28, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1698, "titre" : "Titre numero 1698", "date" : 22, "poids" : 17, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1699, "titre" : "Titre numero 1699", "date" : 25, "poids" : 22, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1700, "titre" : "Titre numero 1700", "date" : 41, "poids" : 38, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1701, "titre" : "Titre numero 1701", "date" : 27, "poids" : 13, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1702, "titre" : "Titre numero 1702", "date" : 28, "poids" : 46, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1703, "titre" : "Titre numero 1703", "date" : 41, "poids" : 32, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1704, "titre" : "Titre numero 1704", "date" : 17, "poids" : 52, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1705, "titre" : "Titre numero 1705", "date" : 16, "poids" : 44, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1706, "titre" : "Titre numero 1706", "date" : 39, "poids" : 51, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1707, "titre" : "Titre numero 1707", "date" : 27, "poids" : 50, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1708, "titre" : "Titre numero 1708", "date" : 40, "poids" : 28, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1709, "titre" : "Titre numero 1709", "date" : 19, "poids" : 5, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1710, "titre" : "Titre numero 1710", "date" : 29, "poids" : 44, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1711, "titre" : "Titre numero 1711", "date" : 45, "poids" : 48, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1712, "titre" : "Titre numero 1712", "date" : 32, "poids" : 16, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1713, "titre" : "Titre numero 1713", "date" : 45, "poids" : 23, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1714, "titre" : "Titre numero 1714", "date" : 9, "poids" : 42, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1715, "titre" : "Titre numero 1715", "date" : 9, "poids" : 19, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1716, "titre" : "Titre numero 1716", "date" : 24, "poids" : 48, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1717, "titre" : "Titre numero 1717", "date" : 8, "poids" : 23, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1718, "titre" : "Titre numero 1718", "date" : 44, "poids" : 20, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1719, "titre" : "Titre numero 1719", "date" : 26, "poids" : 19, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1720, "titre" : "Titre numero 1720", "date" : 7, "poids" : 33, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1721, "titre" : "Titre numero 1721", "date" : 15, "poids" : 53, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1722, "titre" : "Titre numero 1722", "date" : 44, "poids" : 16, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1723, "titre" : "Titre numero 1723", "date" : 34, "poids" : 48, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1724, "titre" : "Titre numero 1724", "date" : 43, "poids" : 40, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1725, "titre" : "Titre numero 1725", "date" : 38, "poids" : 42, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1726, "titre" : "Titre numero 1726", "date" : 40, "poids" : 25, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1727, "titre" : "Titre numero 1727", "date" : 37, "poids" : 11, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1728, "titre" : "Titre numero 1728", "date" : 9, "poids" : 49, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1729, "titre" : "Titre numero 1729", "date" : 26, "poids" : 21, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1730, "titre" : "Titre numero 1730", "date" : 36, "poids" : 17, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1731, "titre" : "Titre numero 1731", "date" : 33, "poids" : 36, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1732, "titre" : "Titre numero 1732", "date" : 21, "poids" : 7, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1733, "titre" : "Titre numero 1733", "date" : 48, "poids" : 47, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1734, "titre" : "Titre numero 1734", "date" : 45, "poids" : 41, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1735, "titre" : "Titre numero 1735", "date" : 21, "poids" : 14, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1736, "titre" : "Titre numero 1736", "date" : 13, "poids" : 47, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1737, "titre" : "Titre numero 1737", "date" : 8, "poids" : 20, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1738, "titre" : "Titre numero 1738", "date" : 9, "poids" : 41, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1739, "titre" : "Titre numero 1739", "date" : 29, "poids" : 6, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1740, "titre" : "Titre numero 1740", "date" : 26, "poids" : 39, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1741, "titre" : "Titre numero 1741", "date" : 48, "poids" : 27, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1742, "titre" : "Titre numero 1742", "date" : 34, "poids" : 10, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1743, "titre" : "Titre numero 1743", "date" : 39, "poids" : 29, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1744, "titre" : "Titre numero 1744", "date" : 45, "poids" : 44, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1745, "titre" : "Titre numero 1745", "date" : 19, "poids" : 16, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1746, "titre" : "Titre numero 1746", "date" : 8, "poids" : 37, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1747, "titre" : "Titre numero 1747", "date" : 35, "poids" : 27, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1748, "titre" : "Titre numero 1748", "date" : 7, "poids" : 23, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1749, "titre" : "Titre numero 1749", "date" : 28, "poids" : 41, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1750, "titre" : "Titre numero 1750", "date" : 36, "poids" : 45, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1751, "titre" : "Titre numero 1751", "date" : 36, "poids" : 54, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1752, "titre" : "Titre numero 1752", "date" : 32, "poids" : 28, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1753, "titre" : "Titre numero 1753", "date" : 45, "poids" : 6, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1754, "titre" : "Titre numero 1754", "date" : 15, "poids" : 27, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1755, "titre" : "Titre numero 1755", "date" : 6, "poids" : 43, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1756, "titre" : "Titre numero 1756", "date" : 40, "poids" : 11, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1757, "titre" : "Titre numero 1757", "date" : 17, "poids" : 7, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1758, "titre" : "Titre numero 1758", "date" : 9, "poids" : 14, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1759, "titre" : "Titre numero 1759", "date" : 49, "poids" : 27, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1760, "titre" : "Titre numero 1760", "date" : 39, "poids" : 11, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1761, "titre" : "Titre numero 1761", "date" : 0, "poids" : 10, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1762, "titre" : "Titre numero 1762", "date" : 27, "poids" : 15, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1763, "titre" : "Titre numero 1763", "date" : 42, "poids" : 42, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1764, "titre" : "Titre numero 1764", "date" : 5, "poids" : 32, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1765, "titre" : "Titre numero 1765", "date" : 47, "poids" : 11, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1766, "titre" : "Titre numero 1766", "date" : 21, "poids" : 44, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1767, "titre" : "Titre numero 1767", "date" : 36, "poids" : 45, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1768, "titre" : "Titre numero 1768", "date" : 35, "poids" : 33, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1769, "titre" : "Titre numero 1769", "date" : 1, "poids" : 20, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1770, "titre" : "Titre numero 1770", "date" : 5, "poids" : 11, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1771, "titre" : "Titre numero 1771", "date" : 43, "poids" : 39, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1772, "titre" : "Titre numero 1772", "date" : 0, "poids" : 29, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1773, "titre" : "Titre numero 1773", "date" : 44, "poids" : 21, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1774, "titre" : "Titre numero 1774", "date" : 3, "poids" : 50, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1775, "titre" : "Titre numero 1775", "date" : 9, "poids" : 50, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1776, "titre" : "Titre numero 1776", "date" : 36, "poids" : 21, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1777, "titre" : "Titre numero 1777", "date" : 39, "poids" : 32, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1778, "titre" : "Titre numero 1778", "date" : 16, "poids" : 7, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1779, "titre" : "Titre numero 1779", "date" : 48, "poids" : 10, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1780, "titre" : "Titre numero 1780", "date" : 41, "poids" : 31, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1781, "titre" : "Titre numero 1781", "date" : 29, "poids" : 24, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1782, "titre" : "Titre numero 1782", "date" : 4, "poids" : 11, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1783, "titre" : "Titre numero 1783", "date" : 39, "poids" : 24, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1784, "titre" : "Titre numero 1784", "date" : 42, "poids" : 8, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1785, "titre" : "Titre numero 1785", "date" : 49, "poids" : 43, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1786, "titre" : "Titre numero 1786", "date" : 44, "poids" : 20, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1787, "titre" : "Titre numero 1787", "date" : 27, "poids" : 44, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1788, "titre" : "Titre numero 1788", "date" : 35, "poids" : 48, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1789, "titre" : "Titre numero 1789", "date" : 40, "poids" : 45, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1790, "titre" : "Titre numero 1790", "date" : 23, "poids" : 36, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1791, "titre" : "Titre numero 1791", "date" : 20, "poids" : 17, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1792, "titre" : "Titre numero 1792", "date" : 48, "poids" : 40, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1793, "titre" : "Titre numero 1793", "date" : 20, "poids" : 21, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1794, "titre" : "Titre numero 1794", "date" : 13, "poids" : 43, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1795, "titre" : "Titre numero 1795", "date" : 33, "poids" : 21, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1796, "titre" : "Titre numero 1796", "date" : 39, "poids" : 29, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1797, "titre" : "Titre numero 1797", "date" : 16, "poids" : 37, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1798, "titre" : "Titre numero 1798", "date" : 37, "poids" : 52, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1799, "titre" : "Titre numero 1799", "date" : 0, "poids" : 9, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1800, "titre" : "Titre numero 1800", "date" : 19, "poids" : 17, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1801, "titre" : "Titre numero 1801", "date" : 23, "poids" : 6, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1802, "titre" : "Titre numero 1802", "date" : 36, "poids" : 20, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1803, "titre" : "Titre numero 1803", "date" : 12, "poids" : 41, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1804, "titre" : "Titre numero 1804", "date" : 22, "poids" : 22, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1805, "titre" : "Titre numero 1805", "date" : 37, "poids" : 36, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1806, "titre" : "Titre numero 1806", "date" : 16, "poids" : 37, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1807, "titre" : "Titre numero 1807", "date" : 36, "poids" : 21, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1808, "titre" : "Titre numero 1808", "date" : 29, "poids" : 5, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1809, "titre" : "Titre numero 1809", "date" : 33, "poids" : 35, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1810, "titre" : "Titre numero 1810", "date" : 49, "poids" : 38, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1811, "titre" : "Titre numero 1811", "date" : 1, "poids" : 10, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1812, "titre" : "Titre numero 1812", "date" : 27, "poids" : 6, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1813, "titre" : "Titre numero 1813", "date" : 35, "poids" : 44, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1814, "titre" : "Titre numero 1814", "date" : 15, "poids" : 11, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1815, "titre" : "Titre numero 1815", "date" : 4, "poids" : 40, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1816, "titre" : "Titre numero 1816", "date" : 33, "poids" : 29, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1817, "titre" : "Titre numero 1817", "date" : 34, "poids" : 42, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1818, "titre" : "Titre numero 1818", "date" : 15, "poids" : 36, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1819, "titre" : "Titre numero 1819", "date" : 35, "poids" : 26, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1820, "titre" : "Titre numero 1820", "date" : 9, "poids" : 43, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1821, "titre" : "Titre numero 1821", "date" : 49, "poids" : 41, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1822, "titre" : "Titre numero 1822", "date" : 20, "poids" : 24, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1823, "titre" : "Titre numero 1823", "date" : 5, "poids" : 49, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1824, "titre" : "Titre numero 1824", "date" : 1, "poids" : 48, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1825, "titre" : "Titre numero 1825", "date" : 17, "poids" : 39, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1826, "titre" : "Titre numero 1826", "date" : 47, "poids" : 9, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1827, "titre" : "Titre numero 1827", "date" : 18, "poids" : 37, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1828, "titre" : "Titre numero 1828", "date" : 32, "poids" : 49, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1829, "titre" : "Titre numero 1829", "date" : 2, "poids" : 43, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1830, "titre" : "Titre numero 1830", "date" : 13, "poids" : 28, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1831, "titre" : "Titre numero 1831", "date" : 6, "poids" : 15, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1832, "titre" : "Titre numero 1832", "date" : 42, "poids" : 11, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1833, "titre" : "Titre numero 1833", "date" : 31, "poids" : 36, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1834, "titre" : "Titre numero 1834", "date" : 40, "poids" : 12, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1835, "titre" : "Titre numero 1835", "date" : 11, "poids" : 45, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1836, "titre" : "Titre numero 1836", "date" : 22, "poids" : 14, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1837, "titre" : "Titre numero 1837", "date" : 16, "poids" : 54, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1838, "titre" : "Titre numero 1838", "date" : 48, "poids" : 14, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1839, "titre" : "Titre numero 1839", "date" : 47, "poids" : 34, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1840, "titre" : "Titre numero 1840", "date" : 47, "poids" : 24, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1841, "titre" : "Titre numero 1841", "date" : 24, "poids" : 22, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1842, "titre" : "Titre numero 1842", "date" : 6, "poids" : 28, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1843, "titre" : "Titre numero 1843", "date" : 12, "poids" : 10, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1844, "titre" : "Titre numero 1844", "date" : 35, "poids" : 41, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1845, "titre" : "Titre numero 1845", "date" : 47, "poids" : 27, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1846, "titre" : "Titre numero 1846", "date" : 25, "poids" : 8, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1847, "titre" : "Titre numero 1847", "date" : 27, "poids" : 16, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1848, "titre" : "Titre numero 1848", "date" : 32, "poids" : 29, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1849, "titre" : "Titre numero 1849", "date" : 11, "poids" : 10, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1850, "titre" : "Titre numero 1850", "date" : 15, "poids" : 39, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1851, "titre" : "Titre numero 1851", "date" : 44, "poids" : 42, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1852, "titre" : "Titre numero 1852", "date" : 13, "poids" : 51, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1853, "titre" : "Titre numero 1853", "date" : 0, "poids" : 40, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1854, "titre" : "Titre numero 1854", "date" : 5, "poids" : 29, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1855, "titre" : "Titre numero 1855", "date" : 16, "poids" : 38, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1856, "titre" : "Titre numero 1856", "date" : 44, "poids" : 17, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1857, "titre" : "Titre numero 1857", "date" : 28, "poids" : 30, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1858, "titre" : "Titre numero 1858", "date" : 7, "poids" : 21, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1859, "titre" : "Titre numero 1859", "date" : 26, "poids" : 16, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1860, "titre" : "Titre numero 1860", "date" : 11, "poids" : 22, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1861, "titre" : "Titre numero 1861", "date" : 23, "poids" : 36, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1862, "titre" : "Titre numero 1862", "date" : 47, "poids" : 53, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1863, "titre" : "Titre numero 1863", "date" : 41, "poids" : 27, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1864, "titre" : "Titre numero 1864", "date" : 42, "poids" : 17, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1865, "titre" : "Titre numero 1865", "date" : 28, "poids" : 49, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1866, "titre" : "Titre numero 1866", "date" : 17, "poids" : 32, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1867, "titre" : "Titre numero 1867", "date" : 3, "poids" : 16, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1868, "titre" : "Titre numero 1868", "date" : 40, "poids" : 52, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1869, "titre" : "Titre numero 1869", "date" : 7, "poids" : 9, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1870, "titre" : "Titre numero 1870", "date" : 48, "poids" : 33, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1871, "titre" : "Titre numero 1871", "date" : 5, "poids" : 11, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1872, "titre" : "Titre numero 1872", "date" : 21, "poids" : 12, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1873, "titre" : "Titre numero 1873", "date" : 15, "poids" : 36, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1874, "titre" : "Titre numero 1874", "date" : 49, "poids" : 5, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1875, "titre" : "Titre numero 1875", "date" : 32, "poids" : 35, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1876, "titre" : "Titre numero 1876", "date" : 37, "poids" : 13, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1877, "titre" : "Titre numero 1877", "date" : 38, "poids" : 43, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1878, "titre" : "Titre numero 1878", "date" : 1, "poids" : 11, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1879, "titre" : "Titre numero 1879", "date" : 28, "poids" : 38, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1880, "titre" : "Titre numero 1880", "date" : 44, "poids" : 38, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1881, "titre" : "Titre numero 1881", "date" : 46, "poids" : 10, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1882, "titre" : "Titre numero 1882", "date" : 47, "poids" : 14, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1883, "titre" : "Titre numero 1883", "date" : 28, "poids" : 42, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1884, "titre" : "Titre numero 1884", "date" : 39, "poids" : 7, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1885, "titre" : "Titre numero 1885", "date" : 22, "poids" : 50, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1886, "titre" : "Titre numero 1886", "date" : 12, "poids" : 40, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1887, "titre" : "Titre numero 1887", "date" : 39, "poids" : 26, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1888, "titre" : "Titre numero 1888", "date" : 1, "poids" : 49, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1889, "titre" : "Titre numero 1889", "date" : 9, "poids" : 27, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1890, "titre" : "Titre numero 1890", "date" : 8, "poids" : 26, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1891, "titre" : "Titre numero 1891", "date" : 0, "poids" : 23, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1892, "titre" : "Titre numero 1892", "date" : 30, "poids" : 7, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1893, "titre" : "Titre numero 1893", "date" : 31, "poids" : 39, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1894, "titre" : "Titre numero 1894", "date" : 19, "poids" : 27, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1895, "titre" : "Titre numero 1895", "date" : 15, "poids" : 6, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1896, "titre" : "Titre numero 1896", "date" : 48, "poids" : 26, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1897, "titre" : "Titre numero 1897", "date" : 43, "poids" : 25, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1898, "titre" : "Titre numero 1898", "date" : 33, "poids" : 6, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1899, "titre" : "Titre numero 1899", "date" : 48, "poids" : 48, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1900, "titre" : "Titre numero 1900", "date" : 28, "poids" : 26, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1901, "titre" : "Titre numero 1901", "date" : 10, "poids" : 23, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1902, "titre" : "Titre numero 1902", "date" : 39, "poids" : 51, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1903, "titre" : "Titre numero 1903", "date" : 2, "poids" : 8, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1904, "titre" : "Titre numero 1904", "date" : 17, "poids" : 38, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1905, "titre" : "Titre numero 1905", "date" : 33, "poids" : 27, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1906, "titre" : "Titre numero 1906", "date" : 37, "poids" : 35, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1907, "titre" : "Titre numero 1907", "date" : 25, "poids" : 20, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1908, "titre" : "Titre numero 1908", "date" : 0, "poids" : 20, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1909, "titre" : "Titre numero 1909", "date" : 3, "poids" : 10, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1910, "titre" : "Titre numero 1910", "date" : 4, "poids" : 18, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1911, "titre" : "Titre numero 1911", "date" : 21, "poids" : 34, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1912, "titre" : "Titre numero 1912", "date" : 19, "poids" : 14, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1913, "titre" : "Titre numero 1913", "date" : 15, "poids" : 39, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1914, "titre" : "Titre numero 1914", "date" : 13, "poids" : 25, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1915, "titre" : "Titre numero 1915", "date" : 18, "poids" : 6, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1916, "titre" : "Titre numero 1916", "date" : 2, "poids" : 50, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1917, "titre" : "Titre numero 1917", "date" : 33, "poids" : 8, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1918, "titre" : "Titre numero 1918", "date" : 27, "poids" : 10, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1919, "titre" : "Titre numero 1919", "date" : 12, "poids" : 18, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1920, "titre" : "Titre numero 1920", "date" : 21, "poids" : 49, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1921, "titre" : "Titre numero 1921", "date" : 8, "poids" : 34, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1922, "titre" : "Titre numero 1922", "date" : 20, "poids" : 10, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1923, "titre" : "Titre numero 1923", "date" : 11, "poids" : 20, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1924, "titre" : "Titre numero 1924", "date" : 43, "poids" : 15, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1925, "titre" : "Titre numero 1925", "date" : 3, "poids" : 16, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1926, "titre" : "Titre numero 1926", "date" : 7, "poids" : 46, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1927, "titre" : "Titre numero 1927", "date" : 9, "poids" : 17, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1928, "titre" : "Titre numero 1928", "date" : 23, "poids" : 36, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1929, "titre" : "Titre numero 1929", "date" : 21, "poids" : 43, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1930, "titre" : "Titre numero 1930", "date" : 22, "poids" : 31, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1931, "titre" : "Titre numero 1931", "date" : 32, "poids" : 29, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1932, "titre" : "Titre numero 1932", "date" : 13, "poids" : 32, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1933, "titre" : "Titre numero 1933", "date" : 41, "poids" : 7, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1934, "titre" : "Titre numero 1934", "date" : 20, "poids" : 41, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1935, "titre" : "Titre numero 1935", "date" : 21, "poids" : 42, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1936, "titre" : "Titre numero 1936", "date" : 11, "poids" : 20, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1937, "titre" : "Titre numero 1937", "date" : 33, "poids" : 41, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1938, "titre" : "Titre numero 1938", "date" : 32, "poids" : 15, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1939, "titre" : "Titre numero 1939", "date" : 10, "poids" : 37, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1940, "titre" : "Titre numero 1940", "date" : 39, "poids" : 29, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1941, "titre" : "Titre numero 1941", "date" : 23, "poids" : 54, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1942, "titre" : "Titre numero 1942", "date" : 34, "poids" : 16, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1943, "titre" : "Titre numero 1943", "date" : 32, "poids" : 9, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1944, "titre" : "Titre numero 1944", "date" : 26, "poids" : 33, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1945, "titre" : "Titre numero 1945", "date" : 32, "poids" : 33, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1946, "titre" : "Titre numero 1946", "date" : 2, "poids" : 40, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1947, "titre" : "Titre numero 1947", "date" : 3, "poids" : 37, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1948, "titre" : "Titre numero 1948", "date" : 36, "poids" : 9, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1949, "titre" : "Titre numero 1949", "date" : 19, "poids" : 14, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1950, "titre" : "Titre numero 1950", "date" : 26, "poids" : 52, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1951, "titre" : "Titre numero 1951", "date" : 17, "poids" : 36, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1952, "titre" : "Titre numero 1952", "date" : 48, "poids" : 47, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1953, "titre" : "Titre numero 1953", "date" : 7, "poids" : 33, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1954, "titre" : "Titre numero 1954", "date" : 49, "poids" : 12, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1955, "titre" : "Titre numero 1955", "date" : 26, "poids" : 16, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1956, "titre" : "Titre numero 1956", "date" : 43, "poids" : 32, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1957, "titre" : "Titre numero 1957", "date" : 34, "poids" : 24, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1958, "titre" : "Titre numero 1958", "date" : 12, "poids" : 28, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1959, "titre" : "Titre numero 1959", "date" : 30, "poids" : 46, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1960, "titre" : "Titre numero 1960", "date" : 25, "poids" : 19, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1961, "titre" : "Titre numero 1961", "date" : 26, "poids" : 19, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1962, "titre" : "Titre numero 1962", "date" : 18, "poids" : 28, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1963, "titre" : "Titre numero 1963", "date" : 8, "poids" : 19, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1964, "titre" : "Titre numero 1964", "date" : 25, "poids" : 37, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1965, "titre" : "Titre numero 1965", "date" : 5, "poids" : 23, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1966, "titre" : "Titre numero 1966", "date" : 31, "poids" : 19, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1967, "titre" : "Titre numero 1967", "date" : 5, "poids" : 21, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1968, "titre" : "Titre numero 1968", "date" : 46, "poids" : 31, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1969, "titre" : "Titre numero 1969", "date" : 24, "poids" : 7, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1970, "titre" : "Titre numero 1970", "date" : 9, "poids" : 7, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1971, "titre" : "Titre numero 1971", "date" : 15, "poids" : 41, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1972, "titre" : "Titre numero 1972", "date" : 34, "poids" : 33, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1973, "titre" : "Titre numero 1973", "date" : 45, "poids" : 36, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1974, "titre" : "Titre numero 1974", "date" : 40, "poids" : 45, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1975, "titre" : "Titre numero 1975", "date" : 37, "poids" : 49, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1976, "titre" : "Titre numero 1976", "date" : 39, "poids" : 49, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1977, "titre" : "Titre numero 1977", "date" : 31, "poids" : 18, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1978, "titre" : "Titre numero 1978", "date" : 48, "poids" : 11, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1979, "titre" : "Titre numero 1979", "date" : 8, "poids" : 22, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1980, "titre" : "Titre numero 1980", "date" : 4, "poids" : 11, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1981, "titre" : "Titre numero 1981", "date" : 29, "poids" : 18, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1982, "titre" : "Titre numero 1982", "date" : 26, "poids" : 42, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1983, "titre" : "Titre numero 1983", "date" : 32, "poids" : 35, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1984, "titre" : "Titre numero 1984", "date" : 0, "poids" : 6, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1985, "titre" : "Titre numero 1985", "date" : 20, "poids" : 15, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1986, "titre" : "Titre numero 1986", "date" : 33, "poids" : 48, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1987, "titre" : "Titre numero 1987", "date" : 0, "poids" : 47, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1988, "titre" : "Titre numero 1988", "date" : 6, "poids" : 16, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1989, "titre" : "Titre numero 1989", "date" : 45, "poids" : 15, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1990, "titre" : "Titre numero 1990", "date" : 0, "poids" : 17, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1991, "titre" : "Titre numero 1991", "date" : 26, "poids" : 30, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1992, "titre" : "Titre numero 1992", "date" : 21, "poids" : 11, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1993, "titre" : "Titre numero 1993", "date" : 12, "poids" : 37, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1994, "titre" : "Titre numero 1994", "date" : 33, "poids" : 7, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1995, "titre" : "Titre numero 1995", "date" : 42, "poids" : 36, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1996, "titre" : "Titre numero 1996", "date" : 39, "poids" : 14, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1997, "titre" : "Titre numero 1997", "date" : 11, "poids" : 50, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1998, "titre" : "Titre numero 1998", "date" : 41, "poids" : 27, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 1999, "titre" : "Titre numero 1999", "date" : 45, "poids" : 40, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2000, "titre" : "Titre numero 2000", "date" : 31, "poids" : 32, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2001, "titre" : "Titre numero 2001", "date" : 33, "poids" : 46, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2002, "titre" : "Titre numero 2002", "date" : 30, "poids" : 53, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2003, "titre" : "Titre numero 2003", "date" : 34, "poids" : 19, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2004, "titre" : "Titre numero 2004", "date" : 19, "poids" : 28, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2005, "titre" : "Titre numero 2005", "date" : 22, "poids" : 44, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2006, "titre" : "Titre numero 2006", "date" : 35, "poids" : 26, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2007, "titre" : "Titre numero 2007", "date" : 21, "poids" : 30, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2008, "titre" : "Titre numero 2008", "date" : 32, "poids" : 8, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2009, "titre" : "Titre numero 2009", "date" : 19, "poids" : 39, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2010, "titre" : "Titre numero 2010", "date" : 34, "poids" : 28, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2011, "titre" : "Titre numero 2011", "date" : 24, "poids" : 48, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2012, "titre" : "Titre numero 2012", "date" : 19, "poids" : 38, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2013, "titre" : "Titre numero 2013", "date" : 27, "poids" : 31, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2014, "titre" : "Titre numero 2014", "date" : 34, "poids" : 38, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2015, "titre" : "Titre numero 2015", "date" : 35, "poids" : 29, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2016, "titre" : "Titre numero 2016", "date" : 16, "poids" : 20, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2017, "titre" : "Titre numero 2017", "date" : 16, "poids" : 13, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2018, "titre" : "Titre numero 2018", "date" : 13, "poids" : 48, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2019, "titre" : "Titre numero 2019", "date" : 22, "poids" : 5, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2020, "titre" : "Titre numero 2020", "date" : 17, "poids" : 46, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2021, "titre" : "Titre numero 2021", "date" : 14, "poids" : 11, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2022, "titre" : "Titre numero 2022", "date" : 15, "poids" : 34, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2023, "titre" : "Titre numero 2023", "date" : 24, "poids" : 53, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2024, "titre" : "Titre numero 2024", "date" : 24, "poids" : 14, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2025, "titre" : "Titre numero 2025", "date" : 35, "poids" : 7, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2026, "titre" : "Titre numero 2026", "date" : 17, "poids" : 50, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2027, "titre" : "Titre numero 2027", "date" : 28, "poids" : 54, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2028, "titre" : "Titre numero 2028", "date" : 22, "poids" : 36, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2029, "titre" : "Titre numero 2029", "date" : 18, "poids" : 30, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2030, "titre" : "Titre numero 2030", "date" : 29, "poids" : 33, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2031, "titre" : "Titre numero 2031", "date" : 24, "poids" : 40, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2032, "titre" : "Titre numero 2032", "date" : 35, "poids" : 11, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2033, "titre" : "Titre numero 2033", "date" : 13, "poids" : 39, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2034, "titre" : "Titre numero 2034", "date" : 14, "poids" : 36, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2035, "titre" : "Titre numero 2035", "date" : 15, "poids" : 8, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2036, "titre" : "Titre numero 2036", "date" : 34, "poids" : 46, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2037, "titre" : "Titre numero 2037", "date" : 13, "poids" : 42, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2038, "titre" : "Titre numero 2038", "date" : 24, "poids" : 50, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2039, "titre" : "Titre numero 2039", "date" : 20, "poids" : 41, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2040, "titre" : "Titre numero 2040", "date" : 27, "poids" : 30, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2041, "titre" : "Titre numero 2041", "date" : 18, "poids" : 38, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2042, "titre" : "Titre numero 2042", "date" : 22, "poids" : 22, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2043, "titre" : "Titre numero 2043", "date" : 37, "poids" : 33, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2044, "titre" : "Titre numero 2044", "date" : 16, "poids" : 5, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2045, "titre" : "Titre numero 2045", "date" : 24, "poids" : 34, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2046, "titre" : "Titre numero 2046", "date" : 22, "poids" : 11, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2047, "titre" : "Titre numero 2047", "date" : 31, "poids" : 29, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2048, "titre" : "Titre numero 2048", "date" : 21, "poids" : 45, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2049, "titre" : "Titre numero 2049", "date" : 14, "poids" : 52, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2050, "titre" : "Titre numero 2050", "date" : 32, "poids" : 11, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2051, "titre" : "Titre numero 2051", "date" : 21, "poids" : 42, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2052, "titre" : "Titre numero 2052", "date" : 36, "poids" : 45, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2053, "titre" : "Titre numero 2053", "date" : 16, "poids" : 35, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2054, "titre" : "Titre numero 2054", "date" : 35, "poids" : 51, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2055, "titre" : "Titre numero 2055", "date" : 20, "poids" : 45, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2056, "titre" : "Titre numero 2056", "date" : 26, "poids" : 5, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2057, "titre" : "Titre numero 2057", "date" : 37, "poids" : 30, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2058, "titre" : "Titre numero 2058", "date" : 27, "poids" : 47, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2059, "titre" : "Titre numero 2059", "date" : 29, "poids" : 23, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2060, "titre" : "Titre numero 2060", "date" : 35, "poids" : 36, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2061, "titre" : "Titre numero 2061", "date" : 14, "poids" : 8, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2062, "titre" : "Titre numero 2062", "date" : 23, "poids" : 44, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2063, "titre" : "Titre numero 2063", "date" : 24, "poids" : 31, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2064, "titre" : "Titre numero 2064", "date" : 15, "poids" : 35, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2065, "titre" : "Titre numero 2065", "date" : 13, "poids" : 12, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2066, "titre" : "Titre numero 2066", "date" : 33, "poids" : 18, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2067, "titre" : "Titre numero 2067", "date" : 18, "poids" : 24, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2068, "titre" : "Titre numero 2068", "date" : 29, "poids" : 54, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2069, "titre" : "Titre numero 2069", "date" : 24, "poids" : 34, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2070, "titre" : "Titre numero 2070", "date" : 14, "poids" : 28, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2071, "titre" : "Titre numero 2071", "date" : 20, "poids" : 25, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2072, "titre" : "Titre numero 2072", "date" : 14, "poids" : 6, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2073, "titre" : "Titre numero 2073", "date" : 15, "poids" : 5, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2074, "titre" : "Titre numero 2074", "date" : 33, "poids" : 43, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2075, "titre" : "Titre numero 2075", "date" : 14, "poids" : 23, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2076, "titre" : "Titre numero 2076", "date" : 13, "poids" : 52, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2077, "titre" : "Titre numero 2077", "date" : 27, "poids" : 15, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2078, "titre" : "Titre numero 2078", "date" : 20, "poids" : 32, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2079, "titre" : "Titre numero 2079", "date" : 19, "poids" : 49, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2080, "titre" : "Titre numero 2080", "date" : 18, "poids" : 26, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2081, "titre" : "Titre numero 2081", "date" : 37, "poids" : 15, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2082, "titre" : "Titre numero 2082", "date" : 26, "poids" : 10, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2083, "titre" : "Titre numero 2083", "date" : 33, "poids" : 25, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2084, "titre" : "Titre numero 2084", "date" : 25, "poids" : 52, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2085, "titre" : "Titre numero 2085", "date" : 30, "poids" : 5, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2086, "titre" : "Titre numero 2086", "date" : 36, "poids" : 25, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2087, "titre" : "Titre numero 2087", "date" : 24, "poids" : 7, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2088, "titre" : "Titre numero 2088", "date" : 27, "poids" : 12, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2089, "titre" : "Titre numero 2089", "date" : 18, "poids" : 25, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2090, "titre" : "Titre numero 2090", "date" : 32, "poids" : 50, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2091, "titre" : "Titre numero 2091", "date" : 36, "poids" : 38, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2092, "titre" : "Titre numero 2092", "date" : 25, "poids" : 20, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2093, "titre" : "Titre numero 2093", "date" : 31, "poids" : 47, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2094, "titre" : "Titre numero 2094", "date" : 16, "poids" : 26, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2095, "titre" : "Titre numero 2095", "date" : 16, "poids" : 23, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2096, "titre" : "Titre numero 2096", "date" : 32, "poids" : 14, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2097, "titre" : "Titre numero 2097", "date" : 33, "poids" : 23, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2098, "titre" : "Titre numero 2098", "date" : 21, "poids" : 33, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2099, "titre" : "Titre numero 2099", "date" : 23, "poids" : 54, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2100, "titre" : "Titre numero 2100", "date" : 15, "poids" : 15, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2101, "titre" : "Titre numero 2101", "date" : 16, "poids" : 44, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2102, "titre" : "Titre numero 2102", "date" : 22, "poids" : 10, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2103, "titre" : "Titre numero 2103", "date" : 26, "poids" : 21, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2104, "titre" : "Titre numero 2104", "date" : 34, "poids" : 48, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2105, "titre" : "Titre numero 2105", "date" : 18, "poids" : 37, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2106, "titre" : "Titre numero 2106", "date" : 15, "poids" : 41, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2107, "titre" : "Titre numero 2107", "date" : 36, "poids" : 50, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2108, "titre" : "Titre numero 2108", "date" : 36, "poids" : 41, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2109, "titre" : "Titre numero 2109", "date" : 24, "poids" : 7, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2110, "titre" : "Titre numero 2110", "date" : 35, "poids" : 33, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2111, "titre" : "Titre numero 2111", "date" : 21, "poids" : 20, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2112, "titre" : "Titre numero 2112", "date" : 27, "poids" : 47, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2113, "titre" : "Titre numero 2113", "date" : 36, "poids" : 15, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2114, "titre" : "Titre numero 2114", "date" : 29, "poids" : 25, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2115, "titre" : "Titre numero 2115", "date" : 35, "poids" : 10, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2116, "titre" : "Titre numero 2116", "date" : 13, "poids" : 21, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2117, "titre" : "Titre numero 2117", "date" : 13, "poids" : 44, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2118, "titre" : "Titre numero 2118", "date" : 30, "poids" : 41, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2119, "titre" : "Titre numero 2119", "date" : 15, "poids" : 37, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2120, "titre" : "Titre numero 2120", "date" : 26, "poids" : 48, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2121, "titre" : "Titre numero 2121", "date" : 33, "poids" : 21, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2122, "titre" : "Titre numero 2122", "date" : 28, "poids" : 42, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2123, "titre" : "Titre numero 2123", "date" : 24, "poids" : 32, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2124, "titre" : "Titre numero 2124", "date" : 35, "poids" : 9, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2125, "titre" : "Titre numero 2125", "date" : 33, "poids" : 51, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2126, "titre" : "Titre numero 2126", "date" : 20, "poids" : 43, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2127, "titre" : "Titre numero 2127", "date" : 31, "poids" : 21, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2128, "titre" : "Titre numero 2128", "date" : 36, "poids" : 34, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2129, "titre" : "Titre numero 2129", "date" : 15, "poids" : 23, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2130, "titre" : "Titre numero 2130", "date" : 23, "poids" : 40, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2131, "titre" : "Titre numero 2131", "date" : 21, "poids" : 10, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2132, "titre" : "Titre numero 2132", "date" : 24, "poids" : 10, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2133, "titre" : "Titre numero 2133", "date" : 24, "poids" : 48, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2134, "titre" : "Titre numero 2134", "date" : 34, "poids" : 8, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2135, "titre" : "Titre numero 2135", "date" : 31, "poids" : 34, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2136, "titre" : "Titre numero 2136", "date" : 18, "poids" : 10, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2137, "titre" : "Titre numero 2137", "date" : 30, "poids" : 9, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2138, "titre" : "Titre numero 2138", "date" : 19, "poids" : 12, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2139, "titre" : "Titre numero 2139", "date" : 15, "poids" : 47, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2140, "titre" : "Titre numero 2140", "date" : 16, "poids" : 19, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2141, "titre" : "Titre numero 2141", "date" : 36, "poids" : 43, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2142, "titre" : "Titre numero 2142", "date" : 16, "poids" : 24, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2143, "titre" : "Titre numero 2143", "date" : 33, "poids" : 14, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2144, "titre" : "Titre numero 2144", "date" : 21, "poids" : 39, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2145, "titre" : "Titre numero 2145", "date" : 26, "poids" : 33, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2146, "titre" : "Titre numero 2146", "date" : 18, "poids" : 27, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2147, "titre" : "Titre numero 2147", "date" : 30, "poids" : 31, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2148, "titre" : "Titre numero 2148", "date" : 13, "poids" : 19, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2149, "titre" : "Titre numero 2149", "date" : 22, "poids" : 49, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2150, "titre" : "Titre numero 2150", "date" : 34, "poids" : 22, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2151, "titre" : "Titre numero 2151", "date" : 14, "poids" : 24, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2152, "titre" : "Titre numero 2152", "date" : 25, "poids" : 18, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2153, "titre" : "Titre numero 2153", "date" : 16, "poids" : 10, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2154, "titre" : "Titre numero 2154", "date" : 35, "poids" : 15, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2155, "titre" : "Titre numero 2155", "date" : 21, "poids" : 25, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2156, "titre" : "Titre numero 2156", "date" : 23, "poids" : 24, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2157, "titre" : "Titre numero 2157", "date" : 20, "poids" : 52, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2158, "titre" : "Titre numero 2158", "date" : 33, "poids" : 6, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2159, "titre" : "Titre numero 2159", "date" : 31, "poids" : 38, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2160, "titre" : "Titre numero 2160", "date" : 32, "poids" : 39, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2161, "titre" : "Titre numero 2161", "date" : 17, "poids" : 23, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2162, "titre" : "Titre numero 2162", "date" : 37, "poids" : 46, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2163, "titre" : "Titre numero 2163", "date" : 28, "poids" : 42, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2164, "titre" : "Titre numero 2164", "date" : 28, "poids" : 23, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2165, "titre" : "Titre numero 2165", "date" : 24, "poids" : 33, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2166, "titre" : "Titre numero 2166", "date" : 15, "poids" : 34, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2167, "titre" : "Titre numero 2167", "date" : 22, "poids" : 52, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2168, "titre" : "Titre numero 2168", "date" : 18, "poids" : 20, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2169, "titre" : "Titre numero 2169", "date" : 21, "poids" : 7, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2170, "titre" : "Titre numero 2170", "date" : 35, "poids" : 13, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2171, "titre" : "Titre numero 2171", "date" : 26, "poids" : 34, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2172, "titre" : "Titre numero 2172", "date" : 24, "poids" : 48, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2173, "titre" : "Titre numero 2173", "date" : 25, "poids" : 25, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2174, "titre" : "Titre numero 2174", "date" : 34, "poids" : 19, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2175, "titre" : "Titre numero 2175", "date" : 12, "poids" : 38, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2176, "titre" : "Titre numero 2176", "date" : 25, "poids" : 52, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2177, "titre" : "Titre numero 2177", "date" : 20, "poids" : 18, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2178, "titre" : "Titre numero 2178", "date" : 33, "poids" : 29, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2179, "titre" : "Titre numero 2179", "date" : 26, "poids" : 39, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2180, "titre" : "Titre numero 2180", "date" : 36, "poids" : 48, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2181, "titre" : "Titre numero 2181", "date" : 14, "poids" : 22, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2182, "titre" : "Titre numero 2182", "date" : 22, "poids" : 48, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2183, "titre" : "Titre numero 2183", "date" : 24, "poids" : 54, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2184, "titre" : "Titre numero 2184", "date" : 16, "poids" : 21, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2185, "titre" : "Titre numero 2185", "date" : 26, "poids" : 9, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2186, "titre" : "Titre numero 2186", "date" : 25, "poids" : 6, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2187, "titre" : "Titre numero 2187", "date" : 27, "poids" : 35, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2188, "titre" : "Titre numero 2188", "date" : 15, "poids" : 52, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2189, "titre" : "Titre numero 2189", "date" : 21, "poids" : 53, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2190, "titre" : "Titre numero 2190", "date" : 36, "poids" : 32, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2191, "titre" : "Titre numero 2191", "date" : 33, "poids" : 13, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2192, "titre" : "Titre numero 2192", "date" : 25, "poids" : 41, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2193, "titre" : "Titre numero 2193", "date" : 14, "poids" : 27, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2194, "titre" : "Titre numero 2194", "date" : 17, "poids" : 34, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2195, "titre" : "Titre numero 2195", "date" : 30, "poids" : 21, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2196, "titre" : "Titre numero 2196", "date" : 22, "poids" : 42, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2197, "titre" : "Titre numero 2197", "date" : 23, "poids" : 6, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2198, "titre" : "Titre numero 2198", "date" : 14, "poids" : 9, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2199, "titre" : "Titre numero 2199", "date" : 18, "poids" : 38, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2200, "titre" : "Titre numero 2200", "date" : 27, "poids" : 22, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2201, "titre" : "Titre numero 2201", "date" : 23, "poids" : 26, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2202, "titre" : "Titre numero 2202", "date" : 15, "poids" : 30, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2203, "titre" : "Titre numero 2203", "date" : 29, "poids" : 12, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2204, "titre" : "Titre numero 2204", "date" : 27, "poids" : 44, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2205, "titre" : "Titre numero 2205", "date" : 35, "poids" : 52, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2206, "titre" : "Titre numero 2206", "date" : 29, "poids" : 33, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2207, "titre" : "Titre numero 2207", "date" : 27, "poids" : 33, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2208, "titre" : "Titre numero 2208", "date" : 26, "poids" : 37, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2209, "titre" : "Titre numero 2209", "date" : 26, "poids" : 51, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2210, "titre" : "Titre numero 2210", "date" : 32, "poids" : 47, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2211, "titre" : "Titre numero 2211", "date" : 26, "poids" : 22, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2212, "titre" : "Titre numero 2212", "date" : 29, "poids" : 21, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2213, "titre" : "Titre numero 2213", "date" : 36, "poids" : 21, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2214, "titre" : "Titre numero 2214", "date" : 16, "poids" : 42, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2215, "titre" : "Titre numero 2215", "date" : 34, "poids" : 27, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2216, "titre" : "Titre numero 2216", "date" : 15, "poids" : 33, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2217, "titre" : "Titre numero 2217", "date" : 20, "poids" : 45, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2218, "titre" : "Titre numero 2218", "date" : 12, "poids" : 8, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2219, "titre" : "Titre numero 2219", "date" : 29, "poids" : 7, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2220, "titre" : "Titre numero 2220", "date" : 23, "poids" : 9, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2221, "titre" : "Titre numero 2221", "date" : 28, "poids" : 46, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2222, "titre" : "Titre numero 2222", "date" : 33, "poids" : 20, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2223, "titre" : "Titre numero 2223", "date" : 26, "poids" : 44, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2224, "titre" : "Titre numero 2224", "date" : 35, "poids" : 31, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2225, "titre" : "Titre numero 2225", "date" : 34, "poids" : 23, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2226, "titre" : "Titre numero 2226", "date" : 28, "poids" : 12, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2227, "titre" : "Titre numero 2227", "date" : 12, "poids" : 30, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2228, "titre" : "Titre numero 2228", "date" : 26, "poids" : 15, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2229, "titre" : "Titre numero 2229", "date" : 19, "poids" : 23, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2230, "titre" : "Titre numero 2230", "date" : 14, "poids" : 19, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2231, "titre" : "Titre numero 2231", "date" : 16, "poids" : 25, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2232, "titre" : "Titre numero 2232", "date" : 37, "poids" : 31, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2233, "titre" : "Titre numero 2233", "date" : 18, "poids" : 32, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2234, "titre" : "Titre numero 2234", "date" : 24, "poids" : 13, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2235, "titre" : "Titre numero 2235", "date" : 32, "poids" : 18, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2236, "titre" : "Titre numero 2236", "date" : 12, "poids" : 21, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2237, "titre" : "Titre numero 2237", "date" : 36, "poids" : 14, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2238, "titre" : "Titre numero 2238", "date" : 33, "poids" : 33, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2239, "titre" : "Titre numero 2239", "date" : 31, "poids" : 41, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2240, "titre" : "Titre numero 2240", "date" : 33, "poids" : 44, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2241, "titre" : "Titre numero 2241", "date" : 22, "poids" : 16, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2242, "titre" : "Titre numero 2242", "date" : 20, "poids" : 29, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2243, "titre" : "Titre numero 2243", "date" : 18, "poids" : 20, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2244, "titre" : "Titre numero 2244", "date" : 27, "poids" : 52, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2245, "titre" : "Titre numero 2245", "date" : 32, "poids" : 10, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2246, "titre" : "Titre numero 2246", "date" : 31, "poids" : 14, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2247, "titre" : "Titre numero 2247", "date" : 33, "poids" : 39, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2248, "titre" : "Titre numero 2248", "date" : 20, "poids" : 40, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2249, "titre" : "Titre numero 2249", "date" : 15, "poids" : 38, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2250, "titre" : "Titre numero 2250", "date" : 16, "poids" : 29, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2251, "titre" : "Titre numero 2251", "date" : 28, "poids" : 52, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2252, "titre" : "Titre numero 2252", "date" : 36, "poids" : 27, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2253, "titre" : "Titre numero 2253", "date" : 36, "poids" : 32, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2254, "titre" : "Titre numero 2254", "date" : 13, "poids" : 37, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2255, "titre" : "Titre numero 2255", "date" : 28, "poids" : 35, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2256, "titre" : "Titre numero 2256", "date" : 13, "poids" : 9, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2257, "titre" : "Titre numero 2257", "date" : 23, "poids" : 40, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2258, "titre" : "Titre numero 2258", "date" : 36, "poids" : 16, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2259, "titre" : "Titre numero 2259", "date" : 16, "poids" : 14, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2260, "titre" : "Titre numero 2260", "date" : 30, "poids" : 27, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2261, "titre" : "Titre numero 2261", "date" : 18, "poids" : 29, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2262, "titre" : "Titre numero 2262", "date" : 20, "poids" : 47, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2263, "titre" : "Titre numero 2263", "date" : 37, "poids" : 31, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2264, "titre" : "Titre numero 2264", "date" : 23, "poids" : 54, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2265, "titre" : "Titre numero 2265", "date" : 36, "poids" : 28, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2266, "titre" : "Titre numero 2266", "date" : 25, "poids" : 25, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2267, "titre" : "Titre numero 2267", "date" : 31, "poids" : 46, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2268, "titre" : "Titre numero 2268", "date" : 22, "poids" : 14, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2269, "titre" : "Titre numero 2269", "date" : 31, "poids" : 42, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2270, "titre" : "Titre numero 2270", "date" : 29, "poids" : 9, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2271, "titre" : "Titre numero 2271", "date" : 19, "poids" : 32, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2272, "titre" : "Titre numero 2272", "date" : 29, "poids" : 33, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2273, "titre" : "Titre numero 2273", "date" : 35, "poids" : 43, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2274, "titre" : "Titre numero 2274", "date" : 28, "poids" : 41, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2275, "titre" : "Titre numero 2275", "date" : 25, "poids" : 13, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2276, "titre" : "Titre numero 2276", "date" : 36, "poids" : 16, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2277, "titre" : "Titre numero 2277", "date" : 33, "poids" : 37, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2278, "titre" : "Titre numero 2278", "date" : 29, "poids" : 17, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2279, "titre" : "Titre numero 2279", "date" : 20, "poids" : 23, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2280, "titre" : "Titre numero 2280", "date" : 28, "poids" : 38, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2281, "titre" : "Titre numero 2281", "date" : 27, "poids" : 10, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2282, "titre" : "Titre numero 2282", "date" : 14, "poids" : 25, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2283, "titre" : "Titre numero 2283", "date" : 23, "poids" : 42, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2284, "titre" : "Titre numero 2284", "date" : 26, "poids" : 47, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2285, "titre" : "Titre numero 2285", "date" : 31, "poids" : 6, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2286, "titre" : "Titre numero 2286", "date" : 23, "poids" : 16, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2287, "titre" : "Titre numero 2287", "date" : 22, "poids" : 6, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2288, "titre" : "Titre numero 2288", "date" : 17, "poids" : 22, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2289, "titre" : "Titre numero 2289", "date" : 20, "poids" : 17, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2290, "titre" : "Titre numero 2290", "date" : 25, "poids" : 28, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2291, "titre" : "Titre numero 2291", "date" : 30, "poids" : 52, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2292, "titre" : "Titre numero 2292", "date" : 13, "poids" : 33, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2293, "titre" : "Titre numero 2293", "date" : 18, "poids" : 53, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2294, "titre" : "Titre numero 2294", "date" : 23, "poids" : 12, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2295, "titre" : "Titre numero 2295", "date" : 32, "poids" : 32, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2296, "titre" : "Titre numero 2296", "date" : 21, "poids" : 18, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2297, "titre" : "Titre numero 2297", "date" : 14, "poids" : 44, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2298, "titre" : "Titre numero 2298", "date" : 18, "poids" : 50, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2299, "titre" : "Titre numero 2299", "date" : 35, "poids" : 28, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2300, "titre" : "Titre numero 2300", "date" : 24, "poids" : 47, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2301, "titre" : "Titre numero 2301", "date" : 35, "poids" : 33, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2302, "titre" : "Titre numero 2302", "date" : 34, "poids" : 52, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2303, "titre" : "Titre numero 2303", "date" : 20, "poids" : 42, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2304, "titre" : "Titre numero 2304", "date" : 19, "poids" : 40, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2305, "titre" : "Titre numero 2305", "date" : 33, "poids" : 53, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2306, "titre" : "Titre numero 2306", "date" : 19, "poids" : 17, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2307, "titre" : "Titre numero 2307", "date" : 12, "poids" : 22, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2308, "titre" : "Titre numero 2308", "date" : 15, "poids" : 13, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2309, "titre" : "Titre numero 2309", "date" : 14, "poids" : 8, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2310, "titre" : "Titre numero 2310", "date" : 21, "poids" : 21, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2311, "titre" : "Titre numero 2311", "date" : 30, "poids" : 6, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2312, "titre" : "Titre numero 2312", "date" : 29, "poids" : 47, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2313, "titre" : "Titre numero 2313", "date" : 16, "poids" : 47, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2314, "titre" : "Titre numero 2314", "date" : 20, "poids" : 41, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2315, "titre" : "Titre numero 2315", "date" : 19, "poids" : 31, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2316, "titre" : "Titre numero 2316", "date" : 22, "poids" : 27, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2317, "titre" : "Titre numero 2317", "date" : 19, "poids" : 5, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2318, "titre" : "Titre numero 2318", "date" : 20, "poids" : 16, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2319, "titre" : "Titre numero 2319", "date" : 25, "poids" : 13, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2320, "titre" : "Titre numero 2320", "date" : 36, "poids" : 19, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2321, "titre" : "Titre numero 2321", "date" : 33, "poids" : 38, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2322, "titre" : "Titre numero 2322", "date" : 23, "poids" : 11, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2323, "titre" : "Titre numero 2323", "date" : 34, "poids" : 30, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2324, "titre" : "Titre numero 2324", "date" : 21, "poids" : 6, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2325, "titre" : "Titre numero 2325", "date" : 34, "poids" : 32, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2326, "titre" : "Titre numero 2326", "date" : 29, "poids" : 19, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2327, "titre" : "Titre numero 2327", "date" : 25, "poids" : 46, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2328, "titre" : "Titre numero 2328", "date" : 14, "poids" : 14, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2329, "titre" : "Titre numero 2329", "date" : 28, "poids" : 30, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2330, "titre" : "Titre numero 2330", "date" : 33, "poids" : 17, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2331, "titre" : "Titre numero 2331", "date" : 17, "poids" : 30, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2332, "titre" : "Titre numero 2332", "date" : 30, "poids" : 28, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2333, "titre" : "Titre numero 2333", "date" : 19, "poids" : 20, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2334, "titre" : "Titre numero 2334", "date" : 22, "poids" : 48, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2335, "titre" : "Titre numero 2335", "date" : 13, "poids" : 28, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2336, "titre" : "Titre numero 2336", "date" : 36, "poids" : 16, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2337, "titre" : "Titre numero 2337", "date" : 17, "poids" : 22, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2338, "titre" : "Titre numero 2338", "date" : 32, "poids" : 22, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2339, "titre" : "Titre numero 2339", "date" : 21, "poids" : 11, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2340, "titre" : "Titre numero 2340", "date" : 24, "poids" : 43, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2341, "titre" : "Titre numero 2341", "date" : 28, "poids" : 43, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2342, "titre" : "Titre numero 2342", "date" : 34, "poids" : 46, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2343, "titre" : "Titre numero 2343", "date" : 34, "poids" : 24, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2344, "titre" : "Titre numero 2344", "date" : 36, "poids" : 31, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2345, "titre" : "Titre numero 2345", "date" : 35, "poids" : 30, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2346, "titre" : "Titre numero 2346", "date" : 20, "poids" : 11, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2347, "titre" : "Titre numero 2347", "date" : 28, "poids" : 23, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2348, "titre" : "Titre numero 2348", "date" : 33, "poids" : 11, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2349, "titre" : "Titre numero 2349", "date" : 30, "poids" : 24, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2350, "titre" : "Titre numero 2350", "date" : 29, "poids" : 51, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2351, "titre" : "Titre numero 2351", "date" : 29, "poids" : 27, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2352, "titre" : "Titre numero 2352", "date" : 36, "poids" : 15, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2353, "titre" : "Titre numero 2353", "date" : 22, "poids" : 16, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2354, "titre" : "Titre numero 2354", "date" : 35, "poids" : 53, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2355, "titre" : "Titre numero 2355", "date" : 30, "poids" : 36, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2356, "titre" : "Titre numero 2356", "date" : 26, "poids" : 51, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2357, "titre" : "Titre numero 2357", "date" : 15, "poids" : 29, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2358, "titre" : "Titre numero 2358", "date" : 31, "poids" : 24, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2359, "titre" : "Titre numero 2359", "date" : 25, "poids" : 37, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2360, "titre" : "Titre numero 2360", "date" : 31, "poids" : 54, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2361, "titre" : "Titre numero 2361", "date" : 13, "poids" : 19, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2362, "titre" : "Titre numero 2362", "date" : 13, "poids" : 34, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2363, "titre" : "Titre numero 2363", "date" : 26, "poids" : 8, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2364, "titre" : "Titre numero 2364", "date" : 28, "poids" : 46, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2365, "titre" : "Titre numero 2365", "date" : 30, "poids" : 24, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2366, "titre" : "Titre numero 2366", "date" : 20, "poids" : 31, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2367, "titre" : "Titre numero 2367", "date" : 34, "poids" : 31, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2368, "titre" : "Titre numero 2368", "date" : 36, "poids" : 22, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2369, "titre" : "Titre numero 2369", "date" : 18, "poids" : 8, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2370, "titre" : "Titre numero 2370", "date" : 30, "poids" : 28, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2371, "titre" : "Titre numero 2371", "date" : 14, "poids" : 18, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2372, "titre" : "Titre numero 2372", "date" : 21, "poids" : 5, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2373, "titre" : "Titre numero 2373", "date" : 26, "poids" : 24, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2374, "titre" : "Titre numero 2374", "date" : 34, "poids" : 5, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2375, "titre" : "Titre numero 2375", "date" : 24, "poids" : 8, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2376, "titre" : "Titre numero 2376", "date" : 21, "poids" : 40, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2377, "titre" : "Titre numero 2377", "date" : 19, "poids" : 21, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2378, "titre" : "Titre numero 2378", "date" : 19, "poids" : 26, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2379, "titre" : "Titre numero 2379", "date" : 17, "poids" : 17, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2380, "titre" : "Titre numero 2380", "date" : 35, "poids" : 11, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2381, "titre" : "Titre numero 2381", "date" : 28, "poids" : 34, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2382, "titre" : "Titre numero 2382", "date" : 13, "poids" : 18, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2383, "titre" : "Titre numero 2383", "date" : 20, "poids" : 40, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2384, "titre" : "Titre numero 2384", "date" : 13, "poids" : 16, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2385, "titre" : "Titre numero 2385", "date" : 20, "poids" : 12, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2386, "titre" : "Titre numero 2386", "date" : 32, "poids" : 18, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2387, "titre" : "Titre numero 2387", "date" : 21, "poids" : 14, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2388, "titre" : "Titre numero 2388", "date" : 16, "poids" : 23, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2389, "titre" : "Titre numero 2389", "date" : 14, "poids" : 27, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2390, "titre" : "Titre numero 2390", "date" : 27, "poids" : 12, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2391, "titre" : "Titre numero 2391", "date" : 32, "poids" : 24, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2392, "titre" : "Titre numero 2392", "date" : 15, "poids" : 39, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2393, "titre" : "Titre numero 2393", "date" : 37, "poids" : 43, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2394, "titre" : "Titre numero 2394", "date" : 15, "poids" : 33, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2395, "titre" : "Titre numero 2395", "date" : 28, "poids" : 26, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2396, "titre" : "Titre numero 2396", "date" : 17, "poids" : 36, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2397, "titre" : "Titre numero 2397", "date" : 19, "poids" : 51, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2398, "titre" : "Titre numero 2398", "date" : 17, "poids" : 52, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2399, "titre" : "Titre numero 2399", "date" : 28, "poids" : 52, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2400, "titre" : "Titre numero 2400", "date" : 36, "poids" : 35, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2401, "titre" : "Titre numero 2401", "date" : 12, "poids" : 36, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2402, "titre" : "Titre numero 2402", "date" : 24, "poids" : 51, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2403, "titre" : "Titre numero 2403", "date" : 21, "poids" : 34, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2404, "titre" : "Titre numero 2404", "date" : 16, "poids" : 47, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2405, "titre" : "Titre numero 2405", "date" : 25, "poids" : 20, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2406, "titre" : "Titre numero 2406", "date" : 21, "poids" : 15, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2407, "titre" : "Titre numero 2407", "date" : 32, "poids" : 21, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2408, "titre" : "Titre numero 2408", "date" : 30, "poids" : 9, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2409, "titre" : "Titre numero 2409", "date" : 19, "poids" : 21, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2410, "titre" : "Titre numero 2410", "date" : 35, "poids" : 14, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2411, "titre" : "Titre numero 2411", "date" : 12, "poids" : 54, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2412, "titre" : "Titre numero 2412", "date" : 27, "poids" : 5, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2413, "titre" : "Titre numero 2413", "date" : 33, "poids" : 18, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2414, "titre" : "Titre numero 2414", "date" : 15, "poids" : 53, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2415, "titre" : "Titre numero 2415", "date" : 21, "poids" : 14, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2416, "titre" : "Titre numero 2416", "date" : 35, "poids" : 16, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2417, "titre" : "Titre numero 2417", "date" : 26, "poids" : 41, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2418, "titre" : "Titre numero 2418", "date" : 16, "poids" : 23, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2419, "titre" : "Titre numero 2419", "date" : 32, "poids" : 30, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2420, "titre" : "Titre numero 2420", "date" : 16, "poids" : 16, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2421, "titre" : "Titre numero 2421", "date" : 13, "poids" : 28, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2422, "titre" : "Titre numero 2422", "date" : 29, "poids" : 37, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2423, "titre" : "Titre numero 2423", "date" : 12, "poids" : 5, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2424, "titre" : "Titre numero 2424", "date" : 12, "poids" : 37, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2425, "titre" : "Titre numero 2425", "date" : 30, "poids" : 25, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2426, "titre" : "Titre numero 2426", "date" : 32, "poids" : 33, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2427, "titre" : "Titre numero 2427", "date" : 28, "poids" : 42, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2428, "titre" : "Titre numero 2428", "date" : 21, "poids" : 5, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2429, "titre" : "Titre numero 2429", "date" : 25, "poids" : 12, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2430, "titre" : "Titre numero 2430", "date" : 24, "poids" : 9, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2431, "titre" : "Titre numero 2431", "date" : 16, "poids" : 47, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2432, "titre" : "Titre numero 2432", "date" : 24, "poids" : 25, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2433, "titre" : "Titre numero 2433", "date" : 25, "poids" : 50, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2434, "titre" : "Titre numero 2434", "date" : 17, "poids" : 51, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2435, "titre" : "Titre numero 2435", "date" : 26, "poids" : 5, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2436, "titre" : "Titre numero 2436", "date" : 36, "poids" : 32, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2437, "titre" : "Titre numero 2437", "date" : 18, "poids" : 21, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2438, "titre" : "Titre numero 2438", "date" : 17, "poids" : 14, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2439, "titre" : "Titre numero 2439", "date" : 22, "poids" : 18, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2440, "titre" : "Titre numero 2440", "date" : 28, "poids" : 16, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2441, "titre" : "Titre numero 2441", "date" : 29, "poids" : 33, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2442, "titre" : "Titre numero 2442", "date" : 31, "poids" : 28, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2443, "titre" : "Titre numero 2443", "date" : 16, "poids" : 29, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2444, "titre" : "Titre numero 2444", "date" : 36, "poids" : 39, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2445, "titre" : "Titre numero 2445", "date" : 19, "poids" : 23, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2446, "titre" : "Titre numero 2446", "date" : 36, "poids" : 41, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2447, "titre" : "Titre numero 2447", "date" : 25, "poids" : 7, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2448, "titre" : "Titre numero 2448", "date" : 29, "poids" : 43, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2449, "titre" : "Titre numero 2449", "date" : 36, "poids" : 12, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2450, "titre" : "Titre numero 2450", "date" : 26, "poids" : 14, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2451, "titre" : "Titre numero 2451", "date" : 23, "poids" : 49, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2452, "titre" : "Titre numero 2452", "date" : 15, "poids" : 9, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2453, "titre" : "Titre numero 2453", "date" : 31, "poids" : 18, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2454, "titre" : "Titre numero 2454", "date" : 21, "poids" : 20, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2455, "titre" : "Titre numero 2455", "date" : 16, "poids" : 43, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2456, "titre" : "Titre numero 2456", "date" : 28, "poids" : 31, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2457, "titre" : "Titre numero 2457", "date" : 19, "poids" : 18, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2458, "titre" : "Titre numero 2458", "date" : 33, "poids" : 10, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2459, "titre" : "Titre numero 2459", "date" : 25, "poids" : 49, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2460, "titre" : "Titre numero 2460", "date" : 16, "poids" : 22, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2461, "titre" : "Titre numero 2461", "date" : 15, "poids" : 54, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2462, "titre" : "Titre numero 2462", "date" : 17, "poids" : 40, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2463, "titre" : "Titre numero 2463", "date" : 18, "poids" : 22, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2464, "titre" : "Titre numero 2464", "date" : 36, "poids" : 34, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2465, "titre" : "Titre numero 2465", "date" : 29, "poids" : 21, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2466, "titre" : "Titre numero 2466", "date" : 34, "poids" : 47, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2467, "titre" : "Titre numero 2467", "date" : 21, "poids" : 39, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2468, "titre" : "Titre numero 2468", "date" : 17, "poids" : 20, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2469, "titre" : "Titre numero 2469", "date" : 28, "poids" : 29, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2470, "titre" : "Titre numero 2470", "date" : 26, "poids" : 49, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2471, "titre" : "Titre numero 2471", "date" : 20, "poids" : 9, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2472, "titre" : "Titre numero 2472", "date" : 29, "poids" : 10, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2473, "titre" : "Titre numero 2473", "date" : 29, "poids" : 41, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2474, "titre" : "Titre numero 2474", "date" : 29, "poids" : 51, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2475, "titre" : "Titre numero 2475", "date" : 27, "poids" : 22, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2476, "titre" : "Titre numero 2476", "date" : 29, "poids" : 53, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2477, "titre" : "Titre numero 2477", "date" : 20, "poids" : 18, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2478, "titre" : "Titre numero 2478", "date" : 24, "poids" : 35, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2479, "titre" : "Titre numero 2479", "date" : 31, "poids" : 6, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2480, "titre" : "Titre numero 2480", "date" : 29, "poids" : 27, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2481, "titre" : "Titre numero 2481", "date" : 27, "poids" : 20, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2482, "titre" : "Titre numero 2482", "date" : 15, "poids" : 14, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2483, "titre" : "Titre numero 2483", "date" : 24, "poids" : 26, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2484, "titre" : "Titre numero 2484", "date" : 27, "poids" : 28, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2485, "titre" : "Titre numero 2485", "date" : 14, "poids" : 44, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2486, "titre" : "Titre numero 2486", "date" : 28, "poids" : 17, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2487, "titre" : "Titre numero 2487", "date" : 19, "poids" : 19, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2488, "titre" : "Titre numero 2488", "date" : 25, "poids" : 21, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2489, "titre" : "Titre numero 2489", "date" : 26, "poids" : 20, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2490, "titre" : "Titre numero 2490", "date" : 19, "poids" : 35, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2491, "titre" : "Titre numero 2491", "date" : 20, "poids" : 31, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2492, "titre" : "Titre numero 2492", "date" : 30, "poids" : 17, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2493, "titre" : "Titre numero 2493", "date" : 29, "poids" : 50, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2494, "titre" : "Titre numero 2494", "date" : 16, "poids" : 25, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2495, "titre" : "Titre numero 2495", "date" : 22, "poids" : 54, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2496, "titre" : "Titre numero 2496", "date" : 20, "poids" : 25, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2497, "titre" : "Titre numero 2497", "date" : 21, "poids" : 29, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2498, "titre" : "Titre numero 2498", "date" : 28, "poids" : 40, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2499, "titre" : "Titre numero 2499", "date" : 30, "poids" : 30, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2500, "titre" : "Titre numero 2500", "date" : 28, "poids" : 9, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2501, "titre" : "Titre numero 2501", "date" : 34, "poids" : 19, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2502, "titre" : "Titre numero 2502", "date" : 32, "poids" : 18, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2503, "titre" : "Titre numero 2503", "date" : 26, "poids" : 45, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2504, "titre" : "Titre numero 2504", "date" : 32, "poids" : 47, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2505, "titre" : "Titre numero 2505", "date" : 27, "poids" : 50, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2506, "titre" : "Titre numero 2506", "date" : 22, "poids" : 12, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2507, "titre" : "Titre numero 2507", "date" : 37, "poids" : 30, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2508, "titre" : "Titre numero 2508", "date" : 37, "poids" : 9, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2509, "titre" : "Titre numero 2509", "date" : 17, "poids" : 18, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2510, "titre" : "Titre numero 2510", "date" : 34, "poids" : 48, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2511, "titre" : "Titre numero 2511", "date" : 36, "poids" : 20, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2512, "titre" : "Titre numero 2512", "date" : 36, "poids" : 28, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2513, "titre" : "Titre numero 2513", "date" : 21, "poids" : 49, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2514, "titre" : "Titre numero 2514", "date" : 16, "poids" : 23, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2515, "titre" : "Titre numero 2515", "date" : 15, "poids" : 16, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2516, "titre" : "Titre numero 2516", "date" : 27, "poids" : 19, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2517, "titre" : "Titre numero 2517", "date" : 25, "poids" : 51, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2518, "titre" : "Titre numero 2518", "date" : 37, "poids" : 46, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2519, "titre" : "Titre numero 2519", "date" : 21, "poids" : 39, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2520, "titre" : "Titre numero 2520", "date" : 22, "poids" : 46, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2521, "titre" : "Titre numero 2521", "date" : 34, "poids" : 45, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2522, "titre" : "Titre numero 2522", "date" : 29, "poids" : 15, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2523, "titre" : "Titre numero 2523", "date" : 37, "poids" : 38, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2524, "titre" : "Titre numero 2524", "date" : 32, "poids" : 44, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2525, "titre" : "Titre numero 2525", "date" : 37, "poids" : 54, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2526, "titre" : "Titre numero 2526", "date" : 13, "poids" : 8, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2527, "titre" : "Titre numero 2527", "date" : 26, "poids" : 15, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2528, "titre" : "Titre numero 2528", "date" : 36, "poids" : 39, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2529, "titre" : "Titre numero 2529", "date" : 26, "poids" : 44, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2530, "titre" : "Titre numero 2530", "date" : 31, "poids" : 51, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2531, "titre" : "Titre numero 2531", "date" : 29, "poids" : 42, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2532, "titre" : "Titre numero 2532", "date" : 27, "poids" : 39, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2533, "titre" : "Titre numero 2533", "date" : 30, "poids" : 8, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2534, "titre" : "Titre numero 2534", "date" : 26, "poids" : 29, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2535, "titre" : "Titre numero 2535", "date" : 24, "poids" : 7, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2536, "titre" : "Titre numero 2536", "date" : 34, "poids" : 43, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2537, "titre" : "Titre numero 2537", "date" : 17, "poids" : 39, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2538, "titre" : "Titre numero 2538", "date" : 30, "poids" : 16, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2539, "titre" : "Titre numero 2539", "date" : 15, "poids" : 23, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2540, "titre" : "Titre numero 2540", "date" : 25, "poids" : 36, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2541, "titre" : "Titre numero 2541", "date" : 30, "poids" : 23, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2542, "titre" : "Titre numero 2542", "date" : 26, "poids" : 49, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2543, "titre" : "Titre numero 2543", "date" : 32, "poids" : 44, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2544, "titre" : "Titre numero 2544", "date" : 26, "poids" : 26, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2545, "titre" : "Titre numero 2545", "date" : 35, "poids" : 44, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2546, "titre" : "Titre numero 2546", "date" : 36, "poids" : 48, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2547, "titre" : "Titre numero 2547", "date" : 14, "poids" : 32, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2548, "titre" : "Titre numero 2548", "date" : 26, "poids" : 30, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2549, "titre" : "Titre numero 2549", "date" : 26, "poids" : 37, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2550, "titre" : "Titre numero 2550", "date" : 29, "poids" : 25, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2551, "titre" : "Titre numero 2551", "date" : 30, "poids" : 9, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2552, "titre" : "Titre numero 2552", "date" : 25, "poids" : 11, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2553, "titre" : "Titre numero 2553", "date" : 23, "poids" : 54, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2554, "titre" : "Titre numero 2554", "date" : 32, "poids" : 10, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2555, "titre" : "Titre numero 2555", "date" : 13, "poids" : 13, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2556, "titre" : "Titre numero 2556", "date" : 20, "poids" : 12, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2557, "titre" : "Titre numero 2557", "date" : 17, "poids" : 20, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2558, "titre" : "Titre numero 2558", "date" : 31, "poids" : 25, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2559, "titre" : "Titre numero 2559", "date" : 19, "poids" : 14, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2560, "titre" : "Titre numero 2560", "date" : 31, "poids" : 20, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2561, "titre" : "Titre numero 2561", "date" : 34, "poids" : 29, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2562, "titre" : "Titre numero 2562", "date" : 37, "poids" : 25, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2563, "titre" : "Titre numero 2563", "date" : 30, "poids" : 10, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2564, "titre" : "Titre numero 2564", "date" : 22, "poids" : 6, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2565, "titre" : "Titre numero 2565", "date" : 22, "poids" : 38, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2566, "titre" : "Titre numero 2566", "date" : 32, "poids" : 24, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2567, "titre" : "Titre numero 2567", "date" : 34, "poids" : 12, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2568, "titre" : "Titre numero 2568", "date" : 27, "poids" : 28, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2569, "titre" : "Titre numero 2569", "date" : 30, "poids" : 27, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2570, "titre" : "Titre numero 2570", "date" : 26, "poids" : 32, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2571, "titre" : "Titre numero 2571", "date" : 22, "poids" : 53, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2572, "titre" : "Titre numero 2572", "date" : 32, "poids" : 42, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2573, "titre" : "Titre numero 2573", "date" : 21, "poids" : 9, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2574, "titre" : "Titre numero 2574", "date" : 20, "poids" : 25, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2575, "titre" : "Titre numero 2575", "date" : 13, "poids" : 26, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2576, "titre" : "Titre numero 2576", "date" : 17, "poids" : 22, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2577, "titre" : "Titre numero 2577", "date" : 35, "poids" : 40, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2578, "titre" : "Titre numero 2578", "date" : 31, "poids" : 21, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2579, "titre" : "Titre numero 2579", "date" : 28, "poids" : 29, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2580, "titre" : "Titre numero 2580", "date" : 24, "poids" : 16, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2581, "titre" : "Titre numero 2581", "date" : 35, "poids" : 13, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2582, "titre" : "Titre numero 2582", "date" : 35, "poids" : 23, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2583, "titre" : "Titre numero 2583", "date" : 22, "poids" : 26, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2584, "titre" : "Titre numero 2584", "date" : 15, "poids" : 30, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2585, "titre" : "Titre numero 2585", "date" : 29, "poids" : 5, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2586, "titre" : "Titre numero 2586", "date" : 20, "poids" : 49, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2587, "titre" : "Titre numero 2587", "date" : 36, "poids" : 36, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2588, "titre" : "Titre numero 2588", "date" : 21, "poids" : 16, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2589, "titre" : "Titre numero 2589", "date" : 26, "poids" : 28, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2590, "titre" : "Titre numero 2590", "date" : 26, "poids" : 44, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2591, "titre" : "Titre numero 2591", "date" : 30, "poids" : 45, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2592, "titre" : "Titre numero 2592", "date" : 18, "poids" : 44, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2593, "titre" : "Titre numero 2593", "date" : 24, "poids" : 54, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2594, "titre" : "Titre numero 2594", "date" : 20, "poids" : 37, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2595, "titre" : "Titre numero 2595", "date" : 15, "poids" : 45, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2596, "titre" : "Titre numero 2596", "date" : 15, "poids" : 47, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2597, "titre" : "Titre numero 2597", "date" : 21, "poids" : 23, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2598, "titre" : "Titre numero 2598", "date" : 31, "poids" : 54, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2599, "titre" : "Titre numero 2599", "date" : 14, "poids" : 34, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2600, "titre" : "Titre numero 2600", "date" : 31, "poids" : 29, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2601, "titre" : "Titre numero 2601", "date" : 30, "poids" : 50, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2602, "titre" : "Titre numero 2602", "date" : 23, "poids" : 46, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2603, "titre" : "Titre numero 2603", "date" : 27, "poids" : 32, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2604, "titre" : "Titre numero 2604", "date" : 26, "poids" : 27, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2605, "titre" : "Titre numero 2605", "date" : 20, "poids" : 46, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2606, "titre" : "Titre numero 2606", "date" : 30, "poids" : 54, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2607, "titre" : "Titre numero 2607", "date" : 32, "poids" : 50, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2608, "titre" : "Titre numero 2608", "date" : 17, "poids" : 6, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2609, "titre" : "Titre numero 2609", "date" : 16, "poids" : 7, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2610, "titre" : "Titre numero 2610", "date" : 12, "poids" : 7, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2611, "titre" : "Titre numero 2611", "date" : 26, "poids" : 44, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2612, "titre" : "Titre numero 2612", "date" : 13, "poids" : 41, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2613, "titre" : "Titre numero 2613", "date" : 33, "poids" : 32, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2614, "titre" : "Titre numero 2614", "date" : 12, "poids" : 27, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2615, "titre" : "Titre numero 2615", "date" : 36, "poids" : 20, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2616, "titre" : "Titre numero 2616", "date" : 19, "poids" : 37, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2617, "titre" : "Titre numero 2617", "date" : 13, "poids" : 12, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2618, "titre" : "Titre numero 2618", "date" : 13, "poids" : 20, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2619, "titre" : "Titre numero 2619", "date" : 22, "poids" : 36, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2620, "titre" : "Titre numero 2620", "date" : 22, "poids" : 47, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2621, "titre" : "Titre numero 2621", "date" : 17, "poids" : 31, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2622, "titre" : "Titre numero 2622", "date" : 29, "poids" : 25, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2623, "titre" : "Titre numero 2623", "date" : 32, "poids" : 8, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2624, "titre" : "Titre numero 2624", "date" : 21, "poids" : 20, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2625, "titre" : "Titre numero 2625", "date" : 34, "poids" : 17, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2626, "titre" : "Titre numero 2626", "date" : 34, "poids" : 25, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2627, "titre" : "Titre numero 2627", "date" : 29, "poids" : 11, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2628, "titre" : "Titre numero 2628", "date" : 28, "poids" : 27, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2629, "titre" : "Titre numero 2629", "date" : 25, "poids" : 53, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2630, "titre" : "Titre numero 2630", "date" : 22, "poids" : 34, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2631, "titre" : "Titre numero 2631", "date" : 15, "poids" : 30, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2632, "titre" : "Titre numero 2632", "date" : 21, "poids" : 52, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2633, "titre" : "Titre numero 2633", "date" : 29, "poids" : 5, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2634, "titre" : "Titre numero 2634", "date" : 15, "poids" : 31, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2635, "titre" : "Titre numero 2635", "date" : 13, "poids" : 21, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2636, "titre" : "Titre numero 2636", "date" : 29, "poids" : 21, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2637, "titre" : "Titre numero 2637", "date" : 17, "poids" : 19, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2638, "titre" : "Titre numero 2638", "date" : 25, "poids" : 42, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2639, "titre" : "Titre numero 2639", "date" : 22, "poids" : 35, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2640, "titre" : "Titre numero 2640", "date" : 31, "poids" : 33, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2641, "titre" : "Titre numero 2641", "date" : 24, "poids" : 7, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2642, "titre" : "Titre numero 2642", "date" : 36, "poids" : 49, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2643, "titre" : "Titre numero 2643", "date" : 25, "poids" : 50, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2644, "titre" : "Titre numero 2644", "date" : 24, "poids" : 10, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2645, "titre" : "Titre numero 2645", "date" : 17, "poids" : 28, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2646, "titre" : "Titre numero 2646", "date" : 30, "poids" : 17, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2647, "titre" : "Titre numero 2647", "date" : 25, "poids" : 25, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2648, "titre" : "Titre numero 2648", "date" : 30, "poids" : 49, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2649, "titre" : "Titre numero 2649", "date" : 31, "poids" : 14, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2650, "titre" : "Titre numero 2650", "date" : 13, "poids" : 12, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2651, "titre" : "Titre numero 2651", "date" : 37, "poids" : 6, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2652, "titre" : "Titre numero 2652", "date" : 26, "poids" : 47, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2653, "titre" : "Titre numero 2653", "date" : 20, "poids" : 54, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2654, "titre" : "Titre numero 2654", "date" : 29, "poids" : 32, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2655, "titre" : "Titre numero 2655", "date" : 19, "poids" : 31, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2656, "titre" : "Titre numero 2656", "date" : 18, "poids" : 47, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2657, "titre" : "Titre numero 2657", "date" : 20, "poids" : 34, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2658, "titre" : "Titre numero 2658", "date" : 35, "poids" : 20, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2659, "titre" : "Titre numero 2659", "date" : 33, "poids" : 6, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2660, "titre" : "Titre numero 2660", "date" : 29, "poids" : 43, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2661, "titre" : "Titre numero 2661", "date" : 29, "poids" : 17, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2662, "titre" : "Titre numero 2662", "date" : 29, "poids" : 45, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2663, "titre" : "Titre numero 2663", "date" : 30, "poids" : 34, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2664, "titre" : "Titre numero 2664", "date" : 25, "poids" : 34, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2665, "titre" : "Titre numero 2665", "date" : 20, "poids" : 48, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2666, "titre" : "Titre numero 2666", "date" : 33, "poids" : 24, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2667, "titre" : "Titre numero 2667", "date" : 28, "poids" : 28, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2668, "titre" : "Titre numero 2668", "date" : 18, "poids" : 25, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2669, "titre" : "Titre numero 2669", "date" : 28, "poids" : 13, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2670, "titre" : "Titre numero 2670", "date" : 32, "poids" : 23, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2671, "titre" : "Titre numero 2671", "date" : 21, "poids" : 43, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2672, "titre" : "Titre numero 2672", "date" : 22, "poids" : 11, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2673, "titre" : "Titre numero 2673", "date" : 24, "poids" : 11, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2674, "titre" : "Titre numero 2674", "date" : 20, "poids" : 45, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2675, "titre" : "Titre numero 2675", "date" : 28, "poids" : 23, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2676, "titre" : "Titre numero 2676", "date" : 20, "poids" : 45, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2677, "titre" : "Titre numero 2677", "date" : 22, "poids" : 17, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2678, "titre" : "Titre numero 2678", "date" : 35, "poids" : 6, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2679, "titre" : "Titre numero 2679", "date" : 35, "poids" : 41, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2680, "titre" : "Titre numero 2680", "date" : 20, "poids" : 50, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2681, "titre" : "Titre numero 2681", "date" : 20, "poids" : 15, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2682, "titre" : "Titre numero 2682", "date" : 25, "poids" : 30, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2683, "titre" : "Titre numero 2683", "date" : 16, "poids" : 36, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2684, "titre" : "Titre numero 2684", "date" : 20, "poids" : 41, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2685, "titre" : "Titre numero 2685", "date" : 25, "poids" : 16, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2686, "titre" : "Titre numero 2686", "date" : 14, "poids" : 20, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2687, "titre" : "Titre numero 2687", "date" : 24, "poids" : 13, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2688, "titre" : "Titre numero 2688", "date" : 16, "poids" : 33, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2689, "titre" : "Titre numero 2689", "date" : 22, "poids" : 38, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2690, "titre" : "Titre numero 2690", "date" : 22, "poids" : 54, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2691, "titre" : "Titre numero 2691", "date" : 29, "poids" : 15, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2692, "titre" : "Titre numero 2692", "date" : 26, "poids" : 46, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2693, "titre" : "Titre numero 2693", "date" : 15, "poids" : 36, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2694, "titre" : "Titre numero 2694", "date" : 31, "poids" : 7, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2695, "titre" : "Titre numero 2695", "date" : 31, "poids" : 16, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2696, "titre" : "Titre numero 2696", "date" : 17, "poids" : 53, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2697, "titre" : "Titre numero 2697", "date" : 27, "poids" : 12, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2698, "titre" : "Titre numero 2698", "date" : 15, "poids" : 13, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2699, "titre" : "Titre numero 2699", "date" : 27, "poids" : 25, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2700, "titre" : "Titre numero 2700", "date" : 29, "poids" : 21, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2701, "titre" : "Titre numero 2701", "date" : 19, "poids" : 13, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2702, "titre" : "Titre numero 2702", "date" : 33, "poids" : 17, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2703, "titre" : "Titre numero 2703", "date" : 19, "poids" : 48, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2704, "titre" : "Titre numero 2704", "date" : 27, "poids" : 10, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2705, "titre" : "Titre numero 2705", "date" : 30, "poids" : 29, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2706, "titre" : "Titre numero 2706", "date" : 23, "poids" : 25, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2707, "titre" : "Titre numero 2707", "date" : 21, "poids" : 20, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2708, "titre" : "Titre numero 2708", "date" : 21, "poids" : 41, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2709, "titre" : "Titre numero 2709", "date" : 28, "poids" : 9, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2710, "titre" : "Titre numero 2710", "date" : 30, "poids" : 41, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2711, "titre" : "Titre numero 2711", "date" : 19, "poids" : 34, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2712, "titre" : "Titre numero 2712", "date" : 22, "poids" : 32, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2713, "titre" : "Titre numero 2713", "date" : 29, "poids" : 25, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2714, "titre" : "Titre numero 2714", "date" : 22, "poids" : 12, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2715, "titre" : "Titre numero 2715", "date" : 20, "poids" : 8, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2716, "titre" : "Titre numero 2716", "date" : 24, "poids" : 23, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2717, "titre" : "Titre numero 2717", "date" : 18, "poids" : 8, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2718, "titre" : "Titre numero 2718", "date" : 35, "poids" : 19, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2719, "titre" : "Titre numero 2719", "date" : 14, "poids" : 24, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2720, "titre" : "Titre numero 2720", "date" : 37, "poids" : 35, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2721, "titre" : "Titre numero 2721", "date" : 25, "poids" : 42, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2722, "titre" : "Titre numero 2722", "date" : 27, "poids" : 19, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2723, "titre" : "Titre numero 2723", "date" : 25, "poids" : 15, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2724, "titre" : "Titre numero 2724", "date" : 26, "poids" : 15, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2725, "titre" : "Titre numero 2725", "date" : 28, "poids" : 6, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2726, "titre" : "Titre numero 2726", "date" : 25, "poids" : 12, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2727, "titre" : "Titre numero 2727", "date" : 31, "poids" : 46, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2728, "titre" : "Titre numero 2728", "date" : 20, "poids" : 5, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2729, "titre" : "Titre numero 2729", "date" : 29, "poids" : 39, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2730, "titre" : "Titre numero 2730", "date" : 26, "poids" : 47, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2731, "titre" : "Titre numero 2731", "date" : 15, "poids" : 20, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2732, "titre" : "Titre numero 2732", "date" : 23, "poids" : 43, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2733, "titre" : "Titre numero 2733", "date" : 37, "poids" : 13, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2734, "titre" : "Titre numero 2734", "date" : 28, "poids" : 6, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2735, "titre" : "Titre numero 2735", "date" : 26, "poids" : 20, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2736, "titre" : "Titre numero 2736", "date" : 31, "poids" : 20, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2737, "titre" : "Titre numero 2737", "date" : 16, "poids" : 8, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2738, "titre" : "Titre numero 2738", "date" : 23, "poids" : 46, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2739, "titre" : "Titre numero 2739", "date" : 26, "poids" : 18, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2740, "titre" : "Titre numero 2740", "date" : 19, "poids" : 23, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2741, "titre" : "Titre numero 2741", "date" : 27, "poids" : 39, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2742, "titre" : "Titre numero 2742", "date" : 21, "poids" : 21, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2743, "titre" : "Titre numero 2743", "date" : 31, "poids" : 25, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2744, "titre" : "Titre numero 2744", "date" : 29, "poids" : 53, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2745, "titre" : "Titre numero 2745", "date" : 14, "poids" : 22, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2746, "titre" : "Titre numero 2746", "date" : 26, "poids" : 18, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2747, "titre" : "Titre numero 2747", "date" : 19, "poids" : 54, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2748, "titre" : "Titre numero 2748", "date" : 20, "poids" : 10, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2749, "titre" : "Titre numero 2749", "date" : 36, "poids" : 33, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2750, "titre" : "Titre numero 2750", "date" : 32, "poids" : 48, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2751, "titre" : "Titre numero 2751", "date" : 15, "poids" : 22, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2752, "titre" : "Titre numero 2752", "date" : 30, "poids" : 47, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2753, "titre" : "Titre numero 2753", "date" : 17, "poids" : 15, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2754, "titre" : "Titre numero 2754", "date" : 34, "poids" : 40, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2755, "titre" : "Titre numero 2755", "date" : 27, "poids" : 49, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2756, "titre" : "Titre numero 2756", "date" : 18, "poids" : 50, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2757, "titre" : "Titre numero 2757", "date" : 29, "poids" : 9, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2758, "titre" : "Titre numero 2758", "date" : 26, "poids" : 19, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2759, "titre" : "Titre numero 2759", "date" : 12, "poids" : 24, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2760, "titre" : "Titre numero 2760", "date" : 19, "poids" : 38, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2761, "titre" : "Titre numero 2761", "date" : 22, "poids" : 11, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2762, "titre" : "Titre numero 2762", "date" : 22, "poids" : 46, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2763, "titre" : "Titre numero 2763", "date" : 24, "poids" : 46, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2764, "titre" : "Titre numero 2764", "date" : 31, "poids" : 53, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2765, "titre" : "Titre numero 2765", "date" : 23, "poids" : 40, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2766, "titre" : "Titre numero 2766", "date" : 26, "poids" : 21, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2767, "titre" : "Titre numero 2767", "date" : 13, "poids" : 23, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2768, "titre" : "Titre numero 2768", "date" : 21, "poids" : 33, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2769, "titre" : "Titre numero 2769", "date" : 29, "poids" : 35, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2770, "titre" : "Titre numero 2770", "date" : 32, "poids" : 52, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2771, "titre" : "Titre numero 2771", "date" : 33, "poids" : 23, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2772, "titre" : "Titre numero 2772", "date" : 13, "poids" : 18, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2773, "titre" : "Titre numero 2773", "date" : 12, "poids" : 52, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2774, "titre" : "Titre numero 2774", "date" : 34, "poids" : 18, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2775, "titre" : "Titre numero 2775", "date" : 24, "poids" : 5, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2776, "titre" : "Titre numero 2776", "date" : 13, "poids" : 54, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2777, "titre" : "Titre numero 2777", "date" : 36, "poids" : 23, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2778, "titre" : "Titre numero 2778", "date" : 14, "poids" : 26, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2779, "titre" : "Titre numero 2779", "date" : 33, "poids" : 24, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2780, "titre" : "Titre numero 2780", "date" : 13, "poids" : 50, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2781, "titre" : "Titre numero 2781", "date" : 36, "poids" : 15, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2782, "titre" : "Titre numero 2782", "date" : 16, "poids" : 24, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2783, "titre" : "Titre numero 2783", "date" : 22, "poids" : 30, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2784, "titre" : "Titre numero 2784", "date" : 18, "poids" : 20, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2785, "titre" : "Titre numero 2785", "date" : 19, "poids" : 16, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2786, "titre" : "Titre numero 2786", "date" : 13, "poids" : 17, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2787, "titre" : "Titre numero 2787", "date" : 14, "poids" : 13, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2788, "titre" : "Titre numero 2788", "date" : 24, "poids" : 27, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2789, "titre" : "Titre numero 2789", "date" : 29, "poids" : 30, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2790, "titre" : "Titre numero 2790", "date" : 12, "poids" : 13, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2791, "titre" : "Titre numero 2791", "date" : 19, "poids" : 27, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2792, "titre" : "Titre numero 2792", "date" : 22, "poids" : 6, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2793, "titre" : "Titre numero 2793", "date" : 28, "poids" : 14, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2794, "titre" : "Titre numero 2794", "date" : 25, "poids" : 33, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2795, "titre" : "Titre numero 2795", "date" : 20, "poids" : 14, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2796, "titre" : "Titre numero 2796", "date" : 27, "poids" : 44, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2797, "titre" : "Titre numero 2797", "date" : 31, "poids" : 41, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2798, "titre" : "Titre numero 2798", "date" : 13, "poids" : 38, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2799, "titre" : "Titre numero 2799", "date" : 32, "poids" : 22, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2800, "titre" : "Titre numero 2800", "date" : 24, "poids" : 33, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2801, "titre" : "Titre numero 2801", "date" : 14, "poids" : 6, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2802, "titre" : "Titre numero 2802", "date" : 16, "poids" : 37, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2803, "titre" : "Titre numero 2803", "date" : 18, "poids" : 35, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2804, "titre" : "Titre numero 2804", "date" : 32, "poids" : 43, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2805, "titre" : "Titre numero 2805", "date" : 36, "poids" : 7, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2806, "titre" : "Titre numero 2806", "date" : 29, "poids" : 21, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2807, "titre" : "Titre numero 2807", "date" : 33, "poids" : 11, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2808, "titre" : "Titre numero 2808", "date" : 13, "poids" : 39, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2809, "titre" : "Titre numero 2809", "date" : 19, "poids" : 21, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2810, "titre" : "Titre numero 2810", "date" : 35, "poids" : 39, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2811, "titre" : "Titre numero 2811", "date" : 31, "poids" : 16, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2812, "titre" : "Titre numero 2812", "date" : 19, "poids" : 53, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2813, "titre" : "Titre numero 2813", "date" : 35, "poids" : 12, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2814, "titre" : "Titre numero 2814", "date" : 32, "poids" : 48, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2815, "titre" : "Titre numero 2815", "date" : 35, "poids" : 22, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2816, "titre" : "Titre numero 2816", "date" : 24, "poids" : 21, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2817, "titre" : "Titre numero 2817", "date" : 18, "poids" : 48, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2818, "titre" : "Titre numero 2818", "date" : 25, "poids" : 25, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2819, "titre" : "Titre numero 2819", "date" : 18, "poids" : 53, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2820, "titre" : "Titre numero 2820", "date" : 36, "poids" : 16, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2821, "titre" : "Titre numero 2821", "date" : 32, "poids" : 40, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2822, "titre" : "Titre numero 2822", "date" : 37, "poids" : 25, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2823, "titre" : "Titre numero 2823", "date" : 31, "poids" : 10, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2824, "titre" : "Titre numero 2824", "date" : 12, "poids" : 27, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2825, "titre" : "Titre numero 2825", "date" : 22, "poids" : 46, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2826, "titre" : "Titre numero 2826", "date" : 26, "poids" : 24, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2827, "titre" : "Titre numero 2827", "date" : 14, "poids" : 25, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2828, "titre" : "Titre numero 2828", "date" : 14, "poids" : 41, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2829, "titre" : "Titre numero 2829", "date" : 26, "poids" : 32, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2830, "titre" : "Titre numero 2830", "date" : 33, "poids" : 44, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2831, "titre" : "Titre numero 2831", "date" : 25, "poids" : 5, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2832, "titre" : "Titre numero 2832", "date" : 24, "poids" : 47, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2833, "titre" : "Titre numero 2833", "date" : 16, "poids" : 7, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2834, "titre" : "Titre numero 2834", "date" : 17, "poids" : 32, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2835, "titre" : "Titre numero 2835", "date" : 34, "poids" : 21, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2836, "titre" : "Titre numero 2836", "date" : 36, "poids" : 52, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2837, "titre" : "Titre numero 2837", "date" : 13, "poids" : 40, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2838, "titre" : "Titre numero 2838", "date" : 23, "poids" : 37, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2839, "titre" : "Titre numero 2839", "date" : 12, "poids" : 10, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2840, "titre" : "Titre numero 2840", "date" : 18, "poids" : 20, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2841, "titre" : "Titre numero 2841", "date" : 30, "poids" : 27, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2842, "titre" : "Titre numero 2842", "date" : 27, "poids" : 11, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2843, "titre" : "Titre numero 2843", "date" : 36, "poids" : 27, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2844, "titre" : "Titre numero 2844", "date" : 16, "poids" : 30, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2845, "titre" : "Titre numero 2845", "date" : 23, "poids" : 47, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2846, "titre" : "Titre numero 2846", "date" : 24, "poids" : 46, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2847, "titre" : "Titre numero 2847", "date" : 32, "poids" : 31, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2848, "titre" : "Titre numero 2848", "date" : 29, "poids" : 27, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2849, "titre" : "Titre numero 2849", "date" : 20, "poids" : 17, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2850, "titre" : "Titre numero 2850", "date" : 16, "poids" : 24, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2851, "titre" : "Titre numero 2851", "date" : 35, "poids" : 24, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2852, "titre" : "Titre numero 2852", "date" : 36, "poids" : 7, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2853, "titre" : "Titre numero 2853", "date" : 36, "poids" : 46, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2854, "titre" : "Titre numero 2854", "date" : 14, "poids" : 15, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2855, "titre" : "Titre numero 2855", "date" : 12, "poids" : 29, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2856, "titre" : "Titre numero 2856", "date" : 22, "poids" : 8, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2857, "titre" : "Titre numero 2857", "date" : 28, "poids" : 47, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2858, "titre" : "Titre numero 2858", "date" : 25, "poids" : 33, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2859, "titre" : "Titre numero 2859", "date" : 35, "poids" : 44, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2860, "titre" : "Titre numero 2860", "date" : 35, "poids" : 26, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2861, "titre" : "Titre numero 2861", "date" : 15, "poids" : 5, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2862, "titre" : "Titre numero 2862", "date" : 19, "poids" : 54, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2863, "titre" : "Titre numero 2863", "date" : 32, "poids" : 14, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2864, "titre" : "Titre numero 2864", "date" : 35, "poids" : 11, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2865, "titre" : "Titre numero 2865", "date" : 15, "poids" : 10, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2866, "titre" : "Titre numero 2866", "date" : 16, "poids" : 47, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2867, "titre" : "Titre numero 2867", "date" : 18, "poids" : 15, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2868, "titre" : "Titre numero 2868", "date" : 28, "poids" : 44, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2869, "titre" : "Titre numero 2869", "date" : 33, "poids" : 38, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2870, "titre" : "Titre numero 2870", "date" : 21, "poids" : 53, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2871, "titre" : "Titre numero 2871", "date" : 29, "poids" : 52, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2872, "titre" : "Titre numero 2872", "date" : 13, "poids" : 24, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2873, "titre" : "Titre numero 2873", "date" : 29, "poids" : 33, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2874, "titre" : "Titre numero 2874", "date" : 24, "poids" : 31, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2875, "titre" : "Titre numero 2875", "date" : 31, "poids" : 52, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2876, "titre" : "Titre numero 2876", "date" : 23, "poids" : 40, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2877, "titre" : "Titre numero 2877", "date" : 34, "poids" : 51, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2878, "titre" : "Titre numero 2878", "date" : 15, "poids" : 22, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2879, "titre" : "Titre numero 2879", "date" : 19, "poids" : 11, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2880, "titre" : "Titre numero 2880", "date" : 36, "poids" : 15, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2881, "titre" : "Titre numero 2881", "date" : 15, "poids" : 11, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2882, "titre" : "Titre numero 2882", "date" : 14, "poids" : 37, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2883, "titre" : "Titre numero 2883", "date" : 18, "poids" : 11, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2884, "titre" : "Titre numero 2884", "date" : 20, "poids" : 5, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2885, "titre" : "Titre numero 2885", "date" : 30, "poids" : 43, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2886, "titre" : "Titre numero 2886", "date" : 17, "poids" : 19, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2887, "titre" : "Titre numero 2887", "date" : 26, "poids" : 15, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2888, "titre" : "Titre numero 2888", "date" : 19, "poids" : 34, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2889, "titre" : "Titre numero 2889", "date" : 32, "poids" : 42, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2890, "titre" : "Titre numero 2890", "date" : 22, "poids" : 34, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2891, "titre" : "Titre numero 2891", "date" : 26, "poids" : 41, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2892, "titre" : "Titre numero 2892", "date" : 17, "poids" : 15, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2893, "titre" : "Titre numero 2893", "date" : 34, "poids" : 6, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2894, "titre" : "Titre numero 2894", "date" : 12, "poids" : 5, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2895, "titre" : "Titre numero 2895", "date" : 32, "poids" : 46, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2896, "titre" : "Titre numero 2896", "date" : 28, "poids" : 48, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2897, "titre" : "Titre numero 2897", "date" : 17, "poids" : 26, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2898, "titre" : "Titre numero 2898", "date" : 14, "poids" : 26, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2899, "titre" : "Titre numero 2899", "date" : 21, "poids" : 16, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2900, "titre" : "Titre numero 2900", "date" : 16, "poids" : 42, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2901, "titre" : "Titre numero 2901", "date" : 35, "poids" : 35, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2902, "titre" : "Titre numero 2902", "date" : 26, "poids" : 17, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2903, "titre" : "Titre numero 2903", "date" : 13, "poids" : 25, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2904, "titre" : "Titre numero 2904", "date" : 29, "poids" : 6, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2905, "titre" : "Titre numero 2905", "date" : 35, "poids" : 35, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2906, "titre" : "Titre numero 2906", "date" : 35, "poids" : 17, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2907, "titre" : "Titre numero 2907", "date" : 30, "poids" : 9, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2908, "titre" : "Titre numero 2908", "date" : 34, "poids" : 6, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2909, "titre" : "Titre numero 2909", "date" : 25, "poids" : 18, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2910, "titre" : "Titre numero 2910", "date" : 31, "poids" : 30, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2911, "titre" : "Titre numero 2911", "date" : 13, "poids" : 12, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2912, "titre" : "Titre numero 2912", "date" : 17, "poids" : 27, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2913, "titre" : "Titre numero 2913", "date" : 18, "poids" : 34, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2914, "titre" : "Titre numero 2914", "date" : 33, "poids" : 36, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2915, "titre" : "Titre numero 2915", "date" : 28, "poids" : 18, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2916, "titre" : "Titre numero 2916", "date" : 25, "poids" : 30, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2917, "titre" : "Titre numero 2917", "date" : 12, "poids" : 37, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2918, "titre" : "Titre numero 2918", "date" : 26, "poids" : 5, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2919, "titre" : "Titre numero 2919", "date" : 20, "poids" : 22, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2920, "titre" : "Titre numero 2920", "date" : 24, "poids" : 16, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2921, "titre" : "Titre numero 2921", "date" : 16, "poids" : 41, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2922, "titre" : "Titre numero 2922", "date" : 15, "poids" : 43, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2923, "titre" : "Titre numero 2923", "date" : 31, "poids" : 40, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2924, "titre" : "Titre numero 2924", "date" : 26, "poids" : 9, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2925, "titre" : "Titre numero 2925", "date" : 17, "poids" : 16, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2926, "titre" : "Titre numero 2926", "date" : 33, "poids" : 47, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2927, "titre" : "Titre numero 2927", "date" : 23, "poids" : 5, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2928, "titre" : "Titre numero 2928", "date" : 25, "poids" : 7, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2929, "titre" : "Titre numero 2929", "date" : 28, "poids" : 26, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2930, "titre" : "Titre numero 2930", "date" : 32, "poids" : 19, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2931, "titre" : "Titre numero 2931", "date" : 26, "poids" : 7, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2932, "titre" : "Titre numero 2932", "date" : 36, "poids" : 22, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2933, "titre" : "Titre numero 2933", "date" : 29, "poids" : 5, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2934, "titre" : "Titre numero 2934", "date" : 31, "poids" : 25, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2935, "titre" : "Titre numero 2935", "date" : 36, "poids" : 36, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2936, "titre" : "Titre numero 2936", "date" : 23, "poids" : 36, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2937, "titre" : "Titre numero 2937", "date" : 15, "poids" : 11, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2938, "titre" : "Titre numero 2938", "date" : 13, "poids" : 31, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2939, "titre" : "Titre numero 2939", "date" : 22, "poids" : 19, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2940, "titre" : "Titre numero 2940", "date" : 37, "poids" : 43, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2941, "titre" : "Titre numero 2941", "date" : 31, "poids" : 21, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2942, "titre" : "Titre numero 2942", "date" : 22, "poids" : 48, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2943, "titre" : "Titre numero 2943", "date" : 34, "poids" : 26, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2944, "titre" : "Titre numero 2944", "date" : 37, "poids" : 34, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2945, "titre" : "Titre numero 2945", "date" : 25, "poids" : 5, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2946, "titre" : "Titre numero 2946", "date" : 30, "poids" : 44, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2947, "titre" : "Titre numero 2947", "date" : 36, "poids" : 15, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2948, "titre" : "Titre numero 2948", "date" : 23, "poids" : 40, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2949, "titre" : "Titre numero 2949", "date" : 28, "poids" : 26, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2950, "titre" : "Titre numero 2950", "date" : 15, "poids" : 46, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2951, "titre" : "Titre numero 2951", "date" : 28, "poids" : 30, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2952, "titre" : "Titre numero 2952", "date" : 30, "poids" : 6, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2953, "titre" : "Titre numero 2953", "date" : 37, "poids" : 6, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2954, "titre" : "Titre numero 2954", "date" : 33, "poids" : 9, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2955, "titre" : "Titre numero 2955", "date" : 32, "poids" : 33, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2956, "titre" : "Titre numero 2956", "date" : 20, "poids" : 44, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2957, "titre" : "Titre numero 2957", "date" : 23, "poids" : 7, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2958, "titre" : "Titre numero 2958", "date" : 30, "poids" : 11, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2959, "titre" : "Titre numero 2959", "date" : 17, "poids" : 29, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2960, "titre" : "Titre numero 2960", "date" : 33, "poids" : 17, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2961, "titre" : "Titre numero 2961", "date" : 28, "poids" : 21, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2962, "titre" : "Titre numero 2962", "date" : 34, "poids" : 14, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2963, "titre" : "Titre numero 2963", "date" : 17, "poids" : 32, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2964, "titre" : "Titre numero 2964", "date" : 28, "poids" : 15, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2965, "titre" : "Titre numero 2965", "date" : 31, "poids" : 33, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2966, "titre" : "Titre numero 2966", "date" : 18, "poids" : 21, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2967, "titre" : "Titre numero 2967", "date" : 30, "poids" : 43, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2968, "titre" : "Titre numero 2968", "date" : 18, "poids" : 39, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2969, "titre" : "Titre numero 2969", "date" : 36, "poids" : 25, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2970, "titre" : "Titre numero 2970", "date" : 19, "poids" : 46, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2971, "titre" : "Titre numero 2971", "date" : 27, "poids" : 51, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2972, "titre" : "Titre numero 2972", "date" : 31, "poids" : 44, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2973, "titre" : "Titre numero 2973", "date" : 13, "poids" : 39, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2974, "titre" : "Titre numero 2974", "date" : 23, "poids" : 25, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2975, "titre" : "Titre numero 2975", "date" : 19, "poids" : 33, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2976, "titre" : "Titre numero 2976", "date" : 14, "poids" : 26, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2977, "titre" : "Titre numero 2977", "date" : 36, "poids" : 25, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2978, "titre" : "Titre numero 2978", "date" : 27, "poids" : 46, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2979, "titre" : "Titre numero 2979", "date" : 15, "poids" : 44, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2980, "titre" : "Titre numero 2980", "date" : 33, "poids" : 5, "image" : {"url" : "../images/img0.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2981, "titre" : "Titre numero 2981", "date" : 17, "poids" : 47, "image" : {"url" : "../images/img1.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2982, "titre" : "Titre numero 2982", "date" : 37, "poids" : 51, "image" : {"url" : "../images/img2.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2983, "titre" : "Titre numero 2983", "date" : 19, "poids" : 15, "image" : {"url" : "../images/img3.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2984, "titre" : "Titre numero 2984", "date" : 30, "poids" : 15, "image" : {"url" : "../images/img4.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2985, "titre" : "Titre numero 2985", "date" : 18, "poids" : 28, "image" : {"url" : "../images/img5.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2986, "titre" : "Titre numero 2986", "date" : 19, "poids" : 14, "image" : {"url" : "../images/img6.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2987, "titre" : "Titre numero 2987", "date" : 15, "poids" : 54, "image" : {"url" : "../images/img7.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2988, "titre" : "Titre numero 2988", "date" : 37, "poids" : 19, "image" : {"url" : "../images/img8.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2989, "titre" : "Titre numero 2989", "date" : 35, "poids" : 43, "image" : {"url" : "../images/img9.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2990, "titre" : "Titre numero 2990", "date" : 19, "poids" : 29, "image" : {"url" : "../images/img10.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2991, "titre" : "Titre numero 2991", "date" : 35, "poids" : 21, "image" : {"url" : "../images/img11.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2992, "titre" : "Titre numero 2992", "date" : 21, "poids" : 53, "image" : {"url" : "../images/img12.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2993, "titre" : "Titre numero 2993", "date" : 36, "poids" : 7, "image" : {"url" : "../images/img13.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2994, "titre" : "Titre numero 2994", "date" : 33, "poids" : 25, "image" : {"url" : "../images/img14.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2995, "titre" : "Titre numero 2995", "date" : 32, "poids" : 40, "image" : {"url" : "../images/img15.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2996, "titre" : "Titre numero 2996", "date" : 21, "poids" : 16, "image" : {"url" : "../images/img16.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2997, "titre" : "Titre numero 2997", "date" : 26, "poids" : 36, "image" : {"url" : "../images/img17.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2998, "titre" : "Titre numero 2998", "date" : 33, "poids" : 15, "image" : {"url" : "../images/img18.gif", "largeur" : 30, "hauteur" : 20}},
+{ "id" : 2999, "titre" : "Titre numero 2999", "date" : 24, "poids" : 8, "image" : {"url" : "../images/img19.gif", "largeur" : 30, "hauteur" : 20}}]],
+"clusters" : [
+{ "numero" : 0 ,
+"score" : 5.108058137998464 ,
+"timeline" : [
+[1349, 1696, 1799, 1984]
+,[1364, 1615]
+,[]
+,[1591]
+,[1202]
+,[1131, 1514]
+,[1012, 1401, 1633]
+,[1390, 1926]
+,[1921]
+,[1022, 1970]
+,[1939]
+,[1006, 1110, 1192]
+,[1410, 1993, 2218, 2401, 2790, 2824, 2839, 2894, 2917]
+,[1736, 2037, 2117, 2254, 2256, 2362, 2650, 2780, 2808, 2837, 2973]
+,[1069, 2034, 2297, 2547, 2778, 2827]
+,[1079, 1895, 2035, 2452, 2693, 2861, 2922, 2937]
+,[2016, 2053, 2094, 2095, 2101, 2214, 2388, 2404, 2494, 2609, 2737]
+,[1359, 1386, 1387, 1704, 1866, 2194, 2337, 2434, 2438, 2509, 2557, 2834, 2897, 2981]
+,[2029, 2041, 2067, 2105, 2233, 2293, 2298, 2437, 2784, 2867]
+,[1002, 1800, 2317, 2559, 2701, 2703, 2740, 2747, 2760, 2791, 2812, 2986]
+,[1373, 1697, 2039, 2262, 2279, 2477, 2680, 2884]
+,[1059, 1166, 1992, 2051, 2155, 2403, 2406, 2454, 2467, 2513, 2671, 2707, 2899]
+,[2439, 2506, 2565, 2942]
+,[1128, 1494, 1567, 1801, 2062, 2099, 2220, 2257, 2838, 2936, 2948]
+,[1590, 1716, 1841, 2038, 2109, 2580, 2641, 2716, 2832]
+,[1673, 1676, 2092, 2152, 2405, 2682, 2909, 2928]
+,[1381, 1571, 1950, 1991, 2056, 2103, 2208, 2435, 2470, 2534, 2544, 2589, 2611, 2826, 2918]
+,[1394, 1418, 1455, 1701, 1812, 2040, 2204, 2281, 2697, 2704, 2741]
+,[1396, 1428, 2164, 2255, 2364, 2381, 2669, 2793, 2951]
+,[1130, 1188, 1781, 2212, 2312, 2441, 2473, 2480, 2550, 2622, 2660]
+,[2137, 2355, 2370, 2538, 2591, 2601, 2705, 2710, 2841, 2952, 2958, 2967]
+,[2246, 2442, 2736, 2923, 2941, 2972]
+,[2008, 2090, 2295, 2502, 2554, 2804]
+,[2178, 2238, 2321, 2413, 2613, 2994]
+,[1237, 1238, 1278, 1723, 1942, 2225, 2323, 2521, 2536, 2893, 2962]
+,[1788, 1813, 2015, 2054, 2124, 2205, 2273, 2354, 2410, 2416, 2679, 2810, 2815, 2905]
+,[1423, 1751, 2091, 2141, 2213, 2237, 2252, 2368, 2436, 2446, 2464, 2615, 2852]
+,[1906, 2081, 2232, 2263, 2651, 2720, 2944]
+,[1044]
+,[1067, 1563, 1976]
+,[1170]
+,[1025, 1187, 1700]
+,[1589, 1763]
+,[1956]
+,[1003, 1254, 1674, 1786]
+,[1491, 1711, 1713, 1744, 1973]
+,[1380, 1684]
+,[1105, 1346, 1839, 1840, 1845]
+,[1070, 1361, 1486]
+,[1647, 1954]
+] },
+{ "numero" : 1 ,
+"score" : 2.844803969073859 ,
+"timeline" : [
+[1033, 1245, 1263, 1286, 1761]
+,[1080, 1599]
+,[1125, 1144, 1451]
+,[1909, 1925]
+,[]
+,[1234, 1823, 1854]
+,[1251, 1755, 1988]
+,[1217, 1261, 1720]
+,[]
+,[1518, 1927]
+,[1171, 1901]
+,[1001, 1052, 1223]
+,[1260, 1467, 2855]
+,[1477, 1629, 1914, 2018, 2065, 2148, 2555, 2635, 2776, 2798, 2903]
+,[1038, 1150, 1492, 2061, 2181, 2198, 2686]
+,[1818, 2119, 2166, 2249, 2357, 2584, 2751, 2878]
+,[1119, 1705, 2231, 2259, 2514, 2833, 2850, 2921]
+,[1029, 1133, 1321, 1439, 1904, 1951, 2020, 2379, 2462, 2537, 2696, 2753]
+,[1065, 1165, 1242, 1520, 1915, 2656, 2668, 2717, 2756, 2985]
+,[1134, 1437, 2004, 2079, 2306, 2333, 2487, 2970, 2983]
+,[1822, 2071, 2078, 2242, 2248, 2318, 2346, 2594, 2653, 2657, 2795, 2849, 2956]
+,[1050, 1732, 2111, 2324, 2339, 2376, 2708]
+,[1595, 1620, 1692, 2005, 2268, 2495, 2620, 2639, 2690, 2890, 2939]
+,[1214, 1227, 1442, 1593, 1928, 2130, 2322]
+,[1088, 2031, 2069, 2133, 2165, 2300, 2644, 2788]
+,[1205, 2186, 2290, 2327, 2540, 2638, 2643, 2721, 2723, 2818, 2831, 2916]
+,[1540, 1740, 1859, 2179, 2373, 2527, 2542, 2549, 2724, 2730, 2766, 2902]
+,[1232, 1315, 1374, 1787, 1918, 2077, 2244, 2796]
+,[1221, 1322, 1475, 2122, 2280, 2440, 2469, 2498, 2725, 2961, 2964]
+,[1683, 1808, 2059, 2203, 2206, 2350, 2351, 2472, 2585, 2691, 2700, 2757, 2848]
+,[2085, 2195, 2365, 2408, 2499, 2563, 2646, 2663, 2752, 2907]
+,[1216, 1687, 1833, 1977, 2093, 2358, 2360, 2453, 2479, 2934, 2965]
+,[1098, 1304, 1983, 2050, 2338, 2419, 2566, 2572, 2607, 2623, 2770, 2799, 2814, 2995]
+,[1986, 2083, 2097, 2121, 2125, 2143, 2191, 2330, 2771, 2869, 2914, 2960, 2980]
+,[1544, 2003, 2014, 2215, 2325, 2367, 2466, 2625]
+,[1075, 2006, 2545, 2658, 2860, 2901]
+,[1026, 2086, 2108, 2113, 2180, 2253, 2258, 2336, 2449, 2511, 2528, 2546, 2642, 2805, 2836, 2843, 2853, 2932]
+,[1524, 1541, 1805, 2518, 2982]
+,[1272]
+,[]
+,[1402, 1436, 1579, 1708, 1974]
+,[1066, 1703]
+,[1157, 1784]
+,[1060, 1230, 1724]
+,[1013]
+,[1753]
+,[1225, 1630]
+,[1645]
+,[1056, 1362]
+,[]
+] },
+{ "numero" : 2 ,
+"score" : 3.4997212615728435 ,
+"timeline" : [
+[646, 1112, 1853, 1908]
+,[445, 491, 519, 638, 772, 875, 884, 897, 931, 1139, 1811]
+,[423, 530, 656, 716, 867, 914, 936, 1233, 1253, 1378]
+,[130, 274, 398, 497, 958, 1399, 1502, 1774]
+,[34, 466, 568, 668, 670, 675, 827, 874]
+,[108, 178, 263, 414, 436, 597, 666, 905, 1871, 1965]
+,[164, 265, 291, 307, 489, 771, 781, 948, 1372, 1554]
+,[187, 202, 1259]
+,[29, 449, 559, 974, 1408, 1503]
+,[0, 377, 512, 545, 1559, 1714, 1738, 1775]
+,[77, 133, 237, 284, 994, 1215, 1543]
+,[1835]
+,[1332, 1463, 1843, 2227, 2423, 2424, 2773]
+,[218, 543, 946, 2076, 2382, 2421, 2526, 2575, 2617, 2618]
+,[280, 788, 1516, 2021, 2072, 2075, 2193, 2309, 2328, 2371, 2389, 2787, 2801, 2828]
+,[41, 65, 558, 658, 688, 944, 1353, 1555, 1565, 1754, 1913, 2100, 2106, 2139, 2216, 2394, 2414, 2515, 2539, 2595, 2596, 2865, 2987]
+,[89, 208, 281, 368, 395, 459, 744, 1409, 2153, 2184, 2250, 2418, 2443, 2460, 2683, 2866]
+,[30, 385, 566, 604, 1587, 1663, 2026, 2288, 2331, 2468, 2621, 2637, 2892, 2912, 2925, 2963]
+,[76, 95, 277, 1301, 1588, 2136, 2168, 2199, 2243, 2369, 2463, 2592, 2819, 2840, 2883, 2966]
+,[430, 564, 793, 1648, 1949, 2138, 2304, 2445, 2457, 2490, 2616, 2809, 2862, 2888]
+,[252, 1189, 1922, 2055, 2383, 2491, 2556, 2574, 2605, 2674, 2748]
+,[251, 613, 775, 882, 898, 913, 2007, 2098, 2131, 2169, 2387, 2519, 2742, 2992, 2996]
+,[124, 687, 1885, 2028, 2241, 2316, 2353, 2564, 2571, 2619, 2672, 2677, 2689, 2712, 2762, 2825]
+,[11, 334, 526, 742, 789, 933, 969, 1240, 1861, 2156, 2197, 2264, 2602, 2876, 2974]
+,[24, 730, 862, 890, 2011, 2023, 2063, 2132, 2172, 2234, 2402, 2593, 2846, 2999]
+,[1371, 1391, 1699, 1907, 1960, 2084, 2192, 2275, 2359, 2459, 2945]
+,[1097, 1578, 1982, 2082, 2120, 2145, 2171, 2211, 2228, 2363, 2503, 2739, 2758, 2931, 2997]
+,[1500, 1634, 2013, 2112, 2187, 2200, 2412, 2475, 2505, 2568]
+,[1580, 1883, 2221, 2251, 2274, 2329, 2395, 2399, 2456, 2500, 2579]
+,[1449, 1677, 1710, 1739, 2114, 2219, 2465, 2476, 2493, 2522]
+,[1008, 2118, 2260, 2492, 2541, 2551, 2606, 2946, 2984]
+,[2000, 2530, 2558, 2694, 2764, 2811, 2823]
+,[1175, 1341, 1483, 1848, 2210, 2235, 2245, 2386, 2426, 2750, 2889]
+,[1608, 1809, 1917, 2066, 2305, 2348, 2926, 2954, 2998]
+,[1082, 1276, 1465, 2134, 2342, 2877, 2943]
+,[1135, 1228, 1448, 1747, 2115, 2154, 2170, 2299, 2301, 2345, 2582, 2864]
+,[1155, 2265, 2276, 2880, 2935, 2947, 2977]
+,[1496, 1798, 1876, 2523, 2562, 2940]
+,[1021, 1538]
+,[1009, 1686, 1777]
+,[1430, 1675]
+,[1933]
+,[1995]
+,[1289, 1626, 1644, 1771]
+,[1773, 1856]
+,[1279, 1600, 1611, 1989]
+,[1881]
+,[1218, 1384]
+,[1741]
+,[1440, 1785, 1821]
+] },
+{ "numero" : 3 ,
+"score" : 7.337688813899302 ,
+"timeline" : [
+[109, 131, 248, 266, 299, 392, 542, 546, 637, 726, 747]
+,[2, 411, 928, 1028, 1091, 1244]
+,[12, 74, 85, 210, 290, 365, 537, 592, 1325, 1348, 1577, 1670, 1829, 1946]
+,[137, 270, 427, 460, 557, 631, 697, 768, 880, 1045, 1420]
+,[3, 35, 147, 255, 410, 463, 633, 800, 1132]
+,[220, 316, 370, 490, 641, 836, 893, 1064, 1329, 1462, 1507, 1967]
+,[60, 86, 92, 172, 323, 363, 431, 551, 707, 826, 843, 1412]
+,[69, 177, 304, 320, 472, 477, 501, 629, 704, 736, 823, 909]
+,[37, 158, 199, 324, 517, 664, 871, 1302, 1659]
+,[1, 232, 389, 661, 850, 894]
+,[185, 235, 336, 421, 452, 605, 812, 845, 960, 1267, 1427]
+,[354, 435, 446, 581, 684, 807, 863, 908, 1303, 1860]
+,[145, 374, 382, 407, 496, 575, 703, 727, 842, 951, 1452, 2175, 2307, 2411, 2614, 2759]
+,[36, 207, 425, 479, 801, 810, 1083, 2033, 2116, 2384, 2767, 2772, 2872, 2911]
+,[16, 738, 791, 796, 2070, 2151, 2485, 2599, 2854, 2882, 2898, 2976]
+,[33, 44, 98, 101, 174, 243, 296, 343, 390, 621, 627, 725, 739, 878, 1850, 1971, 2022, 2064, 2073, 2188, 2461, 2482, 2634, 2881, 2950]
+,[90, 356, 357, 484, 970, 1806, 2017, 2140, 2142, 2431, 2900]
+,[6, 25, 122, 126, 214, 264, 420, 921, 1825, 2161, 2608, 2645, 2886]
+,[4, 38, 49, 173, 424, 647, 672, 676, 785, 1252, 1388, 1827, 2089, 2146, 2803, 2817, 2913, 2968]
+,[115, 355, 475, 729, 989, 1558, 1912, 2012, 2377, 2785, 2975]
+,[19, 119, 161, 168, 309, 585, 663, 923, 1292, 1622, 2157, 2217, 2303, 2385, 2471, 2665, 2681, 2684, 2728]
+,[117, 154, 332, 799, 962, 1113, 1367, 1404, 1872, 1911, 1929, 2048, 2415, 2428, 2624, 2632]
+,[176, 367, 442, 686, 834, 934, 943, 1162, 2019, 2042, 2046, 2149, 2182, 2196, 2520, 2630, 2714, 2761, 2783, 2792]
+,[54, 63, 170, 267, 388, 518, 603, 804, 924, 952, 1941, 2201, 2283, 2732, 2738]
+,[116, 373, 607, 660, 665, 758, 879, 988, 1054, 1490, 1504, 2087, 2340, 2375, 2430, 2432, 2478, 2483, 2535, 2763, 2920]
+,[1414, 1964, 2176, 2266, 2447, 2488, 2517, 2552, 2629, 2726, 2858]
+,[1124, 1389, 1400, 1682, 1961, 2209, 2356, 2417, 2489, 2529, 2548, 2570, 2590, 2652, 2887, 2924]
+,[1347, 2058, 2088, 2390, 2532, 2603, 2699, 2722, 2842, 2971, 2978]
+,[2163, 2341, 2347, 2486, 2628, 2734, 2857, 2915, 2929, 2949]
+,[2030, 2068, 2270, 2272, 2278, 2636, 2661, 2713, 2729, 2789, 2806, 2873, 2904, 2933]
+,[1014, 1177, 1425, 1445, 1623, 2002, 2147, 2291, 2332, 2349, 2425, 2648]
+,[1424, 2047, 2127, 2135, 2159, 2239, 2285, 2600, 2797, 2875]
+,[1203, 1752, 1931, 1945, 2160, 2407, 2543, 2847, 2863, 2955]
+,[1795, 2222, 2240, 2247, 2277, 2458, 2659, 2666, 2702, 2807]
+,[1444, 1478, 1817, 1957, 2036, 2104, 2174, 2302, 2374, 2501, 2510, 2626, 2754, 2908]
+,[1450, 1545, 1768, 1844, 2025, 2032, 2060, 2224, 2380, 2678, 2718, 2813, 2859, 2989]
+,[1186, 1328, 1582, 2107, 2344, 2352, 2587, 2749, 2781, 2993]
+,[1236, 1393, 1553, 2043, 2162, 2507, 2525, 2822, 2953]
+,[1296, 1725]
+,[1783, 1902]
+,[]
+,[1109, 1184]
+,[1340, 1403, 1421]
+,[1324]
+,[1000, 1435]
+,[1354, 1672, 1999]
+,[]
+,[]
+,[1335, 1560, 1978]
+,[1057, 1407, 1759]
+] },
+{ "numero" : 4 ,
+"score" : 9.347957103440422 ,
+"timeline" : [
+[302, 405, 417, 754, 1116]
+,[418, 467, 547, 552, 560, 705, 1481, 1769, 1878]
+,[9, 93, 162, 338, 441, 462, 478, 503, 523, 649, 713, 732, 776, 935]
+,[14, 107, 132, 167, 234, 244, 927, 930, 981, 1039]
+,[53, 494, 733, 782, 784, 817, 926, 990, 1632, 1815, 1910]
+,[15, 20, 104, 150, 188, 283, 286, 311, 346, 476, 485, 488, 689, 941, 1505]
+,[159, 186, 583, 612, 632, 691, 953, 1395, 1584]
+,[52, 111, 287, 617, 938, 1198, 1858]
+,[113, 180, 212, 358, 391, 609, 616, 740, 1318, 1617]
+,[47, 105, 340, 448, 473, 504, 598, 973, 1197, 1820]
+,[625, 734, 752, 844, 854, 1613, 1669]
+,[80, 359, 506, 544, 694, 808, 811, 858, 1209]
+,[226, 261, 375, 487, 761, 1092, 1160, 1521, 1919, 2236, 2610]
+,[75, 196, 404, 856, 901, 1270, 1363, 1547, 1830, 2292, 2335, 2361, 2612, 2786, 2938]
+,[26, 138, 200, 206, 259, 528, 562, 698, 866, 888, 895, 993, 2049, 2230, 2282, 2719, 2745]
+,[51, 160, 468, 588, 634, 645, 820, 977, 1721, 2129, 2202, 2308, 2392, 2631, 2698, 2731, 2979]
+,[156, 165, 175, 289, 378, 693, 735, 756, 759, 869, 916, 1095, 1297, 1550, 1598, 2044, 2313, 2420, 2455, 2688, 2782, 2802, 2844]
+,[241, 870, 984, 1041, 1526, 1681, 2396, 2398, 2576, 2959]
+,[102, 184, 258, 327, 640, 696, 700, 714, 778, 797, 1081, 1641, 2080, 2261]
+,[166, 182, 222, 317, 347, 403, 623, 731, 963, 972, 1168, 1894, 2009, 2229, 2271, 2315, 2378, 2397, 2409, 2655, 2711, 2879, 2990]
+,[211, 471, 806, 1222, 2126, 2177, 2289, 2314, 2366, 2496, 2586, 2676, 2715, 2919]
+,[183, 249, 394, 399, 502, 541, 620, 922, 937, 985, 992, 1036, 1089, 1127, 1314, 1935, 2144, 2189, 2296, 2310, 2372, 2497, 2573, 2588, 2597, 2768, 2870]
+,[83, 99, 144, 268, 295, 429, 555, 622, 711, 809, 945, 1651, 1698, 2102, 2167, 2287, 2334, 2583, 2856]
+,[215, 412, 422, 569, 594, 728, 762, 766, 779, 906, 1011, 1136, 1573, 2286, 2294, 2451, 2553, 2706, 2765, 2845, 2927, 2957]
+,[120, 205, 303, 366, 444, 591, 608, 710, 887, 1313, 2024, 2045, 2123, 2183, 2673, 2687, 2775, 2800, 2816, 2874]
+,[1268, 1680, 2173, 2319, 2429, 2433, 2647, 2664, 2685, 2794]
+,[1172, 1239, 1508, 1576, 2185, 2223, 2284, 2450, 2604, 2692, 2735, 2746, 2829, 2891]
+,[1204, 1596, 2207, 2481, 2484, 2516, 2755]
+,[1495, 1653, 2027, 2226, 2427, 2667, 2675, 2709, 2868, 2896]
+,[1195, 2326, 2422, 2448, 2474, 2531, 2627, 2633, 2654, 2662, 2744, 2769, 2871]
+,[1631, 1892, 2311, 2533, 2569, 2885]
+,[1122, 1256, 1288, 1316, 2267, 2269, 2560, 2578, 2598, 2640, 2649, 2695, 2727, 2743, 2910]
+,[1828, 1938, 2096, 2391, 2504, 2524, 2670, 2821, 2895, 2930]
+,[1053, 1100, 1476, 1731, 1898, 1937, 1994, 2001, 2074, 2158, 2779, 2830]
+,[2010, 2150, 2343, 2561, 2567, 2774, 2835]
+,[1532, 1640, 1819, 2110, 2577, 2581, 2851, 2906, 2991]
+,[1569, 2052, 2128, 2190, 2320, 2400, 2444, 2512, 2777, 2820, 2969]
+,[1212, 2057, 2393, 2508, 2733, 2988]
+,[]
+,[1884, 1887, 1940]
+,[1073]
+,[1345, 1561, 1594, 1863, 1998]
+,[1161, 1627, 1864]
+,[1515, 1549, 1664]
+,[1618]
+,[]
+,[1147]
+,[1826, 1882]
+,[1229, 1792]
+,[1094, 1810]
+] },
+{ "numero" : 5 ,
+"score" : 2.3814919419674285 ,
+"timeline" : [
+[23, 481, 561, 763, 999, 1004, 1047, 1048, 1063, 1574]
+,[10, 39, 260, 279, 313, 339, 372, 387, 443, 482, 587, 674, 821, 899, 903, 907, 965, 1174]
+,[7, 96, 440, 454, 464, 593, 599, 929]
+,[203, 361, 513, 659, 680, 685, 769, 774, 777, 1210]
+,[223, 269, 285, 458, 644, 648, 718, 831, 876, 949, 1104]
+,[191, 333, 515, 630, 971, 1051, 1249, 1668]
+,[50, 56, 78, 82, 438, 533, 579, 667, 721, 813, 873, 877, 883, 998, 1108]
+,[193, 253, 288, 381, 653, 745, 815, 1040, 1869]
+,[91, 142, 190, 434, 439, 457, 529, 539, 651, 841, 896, 1220, 1890, 1963]
+,[181, 217, 257, 306, 852, 1548, 1715, 1728]
+,[194, 364, 455, 790, 830]
+,[5, 219, 262, 397, 483, 695, 920, 968, 1472]
+,[62, 275, 308, 416, 540, 578, 584, 596, 783, 840, 983, 995, 1042, 1284]
+,[163, 453, 465, 486, 824, 918, 1010, 1178, 1280, 1932]
+,[88, 195, 247, 345, 456, 642, 708, 997, 1529]
+,[58, 139, 400, 409, 516, 980, 1020, 1338, 1575]
+,[32, 221, 230, 276, 300, 524, 553, 572, 673, 780, 1482]
+,[46, 118, 294, 514, 657, 743, 891, 979, 1018, 1344]
+,[103, 127, 146, 350, 371, 615, 650]
+,[8, 396, 548, 720, 818, 939, 967, 978, 1468]
+,[401, 520, 982, 1985]
+,[94, 228, 298, 719, 751, 881, 1330, 1766]
+,[153, 384, 702, 1277, 1836, 1930]
+,[169, 225, 325, 413, 415, 426, 461, 493, 746, 1271, 1411, 1509]
+,[71, 157, 305, 322, 380, 619, 753, 787, 833, 1262]
+,[1027]
+,[1121, 1679]
+,[]
+,[1140, 1857]
+,[1479]
+,[]
+,[]
+,[1456, 1566]
+,[1461]
+,[1219, 1972]
+,[1090, 1612]
+,[1446, 1655, 1750, 1767]
+,[]
+,[1111, 1295]
+,[1290, 1291, 1743, 1760, 1996]
+,[1310, 1726]
+,[]
+,[1525, 1603]
+,[1199, 1488]
+,[1513, 1602, 1718]
+,[1180, 1343, 1734]
+,[]
+,[1037, 1078, 1862]
+,[1266, 1534]
+,[1159]
+] },
+{ "numero" : 6 ,
+"score" : 3.829225240117131 ,
+"timeline" : [
+[474, 900, 902, 1213, 1772]
+,[27, 140, 171, 209, 326, 556, 635, 655, 706, 1888]
+,[114, 128, 179, 331, 510, 654, 865, 892, 956, 1264, 1916]
+,[239, 348, 574, 652, 832, 1226, 1285, 1867, 1947]
+,[236, 353, 549, 563, 669, 724, 1782, 1980]
+,[197, 335, 678, 857, 885, 886, 912, 917, 1447]
+,[282, 321, 451, 500, 554, 586, 723, 1831]
+,[73, 141, 155, 242, 590, 764, 849, 919, 1153, 1556, 1953]
+,[40, 43, 134, 240, 470, 636, 709, 915, 1546, 1717, 1979]
+,[31, 48, 64, 229, 250, 297, 522, 567, 741, 1017, 1308, 1351, 1889]
+,[152, 310, 393, 480, 550, 682, 712, 786, 816, 822, 868, 1419]
+,[100, 125, 204, 278, 437, 848, 911, 947, 1564]
+,[17, 59, 81, 135, 231, 341, 508, 565, 692, 847, 950, 1129, 1597, 1803, 1886]
+,[21, 129, 192, 301, 610, 851, 1250, 1432, 1585, 1852]
+,[22, 45, 67, 106, 110, 201, 213, 342, 386, 570, 690, 760]
+,[112, 198, 314, 402, 447, 538, 624, 677, 855, 889, 961, 996, 1317, 1528, 1656]
+,[379, 511, 532, 628, 701, 717, 904, 1106, 1778, 1855]
+,[318, 492, 495, 722, 805, 853, 1257, 1416]
+,[87, 272, 349, 525, 534, 536, 576, 582, 748, 859, 955]
+,[577, 600, 715, 767, 825, 829, 991, 1247, 1614]
+,[18, 28, 72, 84, 254, 256, 509, 749, 803, 932, 986, 1934]
+,[227, 233, 293, 527, 580, 755, 765, 814, 819, 861]
+,[189, 432, 792, 925, 959]
+,[121, 123, 136, 507, 614, 679, 860, 966, 1487]
+,[66, 273, 330, 406, 469, 1274]
+,[1530, 1846]
+,[1955]
+,[1016, 1377, 1385, 1707, 1762, 1847]
+,[1562, 1592]
+,[1485, 1531, 1691]
+,[1142, 1624, 1959]
+,[1137, 1181]
+,[1072, 1604, 1943]
+,[1905]
+,[1087]
+,[]
+,[1141, 1646]
+,[]
+,[1071, 1695]
+,[]
+,[1034, 1058]
+,[1493]
+,[1183, 1690]
+,[1207, 1307, 1369]
+,[1356, 1722]
+,[1298]
+,[1030, 1671]
+,[1309]
+,[1779, 1870, 1896, 1899]
+,[1043]
+] },
+{ "numero" : 7 ,
+"score" : 6.741600493246585 ,
+"timeline" : [
+[224, 571, 601, 699, 838, 1120, 1891]
+,[79, 271, 737, 864]
+,[149, 238, 535, 773, 1151, 1273, 1685, 1903]
+,[798, 828, 837, 1173, 1200, 1265]
+,[344, 360, 1103, 1123]
+,[450, 626, 1551, 1619, 1764]
+,[245, 292, 369, 521, 662, 954, 975, 1357]
+,[595, 987, 1031, 1206]
+,[315, 383, 589, 794, 802, 835, 942, 964, 1737]
+,[57, 1506, 1758]
+,[148, 216, 312, 602, 671, 681, 795, 1074]
+,[143, 246, 750, 839, 1397, 1459, 1849, 1936]
+,[97, 337, 498, 976, 1118, 1501]
+,[611, 1306, 1383, 1794]
+,[42, 643, 1179]
+,[499, 531, 573, 606, 618, 872, 1061, 1154, 1433, 1814, 1873]
+,[55, 1117, 1269, 1654, 1797, 1837]
+,[910, 1757]
+,[68, 362, 1337, 1398]
+,[70, 352, 428, 1146, 1148]
+,[329, 505, 639, 957]
+,[151, 419, 1143, 1422, 1499]
+,[13, 408, 1438, 1804]
+,[61, 319, 351, 376, 757, 770, 940, 1790]
+,[328, 433, 683, 846, 1023, 1969]
+,[1211, 1661]
+,[1049, 1652, 1729, 1944]
+,[1281, 1460]
+,[1005, 1076, 1453, 1658, 1749]
+,[]
+,[]
+,[1331, 1539]
+,[1523]
+,[1816]
+,[1224, 1255, 1601, 1742]
+,[1167, 1246]
+,[]
+,[1727, 1975]
+,[1379, 1473, 1497, 1877]
+,[1241, 1706]
+,[1248, 1678, 1756, 1868]
+,[1115, 1426, 1542, 1638]
+,[1358, 1413, 1610]
+,[1258, 1429, 1924]
+,[1342, 1568]
+,[1464]
+,[1968]
+,[1605]
+,[1326, 1838]
+,[1032, 1320]
+] },
+{ "numero" : 8 ,
+"score" : 6.600553218980863 ,
+"timeline" : [
+[1990]
+,[1824]
+,[1149, 1470, 1511, 1557]
+,[1114, 1360]
+,[1616]
+,[1370, 1636, 1770]
+,[]
+,[1405, 1748]
+,[1138, 1193, 1635]
+,[]
+,[]
+,[1923]
+,[1441, 1958]
+,[]
+,[]
+,[1084, 1454, 1642, 1666]
+,[1586, 1606, 1639]
+,[1046]
+,[1007, 1235]
+,[1745]
+,[1102, 1443]
+,[1055, 1068, 1107, 1231, 1339, 1735, 1920]
+,[1126, 1368, 1607]
+,[1572]
+,[]
+,[1208]
+,[]
+,[1062, 1156]
+,[1019, 1536, 1865]
+,[1093, 1981]
+,[1334]
+,[1893, 1966]
+,[1875]
+,[1625, 1693]
+,[1282]
+,[1650]
+,[1323, 1730, 1776, 1802, 1948]
+,[1643]
+,[1243, 1300, 1552]
+,[1158]
+,[1336, 1834]
+,[1780]
+,[1145, 1694]
+,[1489]
+,[1077, 1880]
+,[1471, 1474]
+,[1196, 1365, 1637]
+,[1086, 1417, 1510]
+,[1517, 1952]
+,[1305]
+] },
+{ "numero" : 9 ,
+"score" : 7.806033893908957 ,
+"timeline" : [
+[1987]
+,[]
+,[1085, 1352]
+,[1182]
+,[1190]
+,[]
+,[1583, 1649, 1842]
+,[1366]
+,[1152, 1746]
+,[1469, 1522]
+,[1191, 1533]
+,[1997]
+,[]
+,[1164, 1415, 1512]
+,[1688]
+,[1376]
+,[]
+,[1099]
+,[1962]
+,[1535, 1709]
+,[1484, 1665, 1791, 1793]
+,[1392]
+,[1293, 1458]
+,[1176, 1311, 1662, 1689]
+,[1406]
+,[1101, 1660]
+,[1035, 1185, 1350, 1719]
+,[1283, 1355, 1457]
+,[1570, 1702, 1879, 1900]
+,[1480, 1657]
+,[1096, 1375, 1628]
+,[1015, 1287, 1294]
+,[1319, 1466, 1537, 1712]
+,[]
+,[1609]
+,[1024]
+,[1333, 1431, 1498, 1807]
+,[]
+,[1163, 1201]
+,[1275, 1796]
+,[1789]
+,[1299, 1581, 1621]
+,[1519, 1667, 1832]
+,[1194, 1527, 1897]
+,[1851]
+,[]
+,[1327]
+,[1765]
+,[1312, 1382, 1733]
+,[1169, 1434, 1874]
+] }]};
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/treemap/script.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,68 @@
+
+// On cr�e l'objet relations qui va nous permettre d'ajouter des animations et des effets sur les cases de treemap
+var r = new Relations();
+
+var couleurs = new Couleurs(20);
+
+//*
+var parametresStreamgraphTimeline = {
+	name: "streamgraphTimeline",
+	selector: "#streamgraphTimeline",
+	activerSelection : true,
+	activerTimeline: true,
+	activerCurseur: true,
+	hauteur: 50,
+	largeur: 800,
+	relations: r,
+	couleurs: couleurs
+};
+
+var streamgraphTimeline = new Streamgraph(json.clusters, parametresStreamgraphTimeline);
+//*/
+
+//*
+var parametresTreemap = {
+	name: "treemap",
+	selector: "#treemap",
+	hauteur: 400,
+	largeur: 800,
+	relations: r,
+	template: {
+		selector: "#streamgraphTemplate",
+		directives: {
+			"img@src": "urlImage",
+			"img@title": "titreArticle",
+			"img@alt": "titreArticle",
+			"img@width": "widthImage",
+			"img@height": "heightImage",
+			"img@style+": "cssOffsetImage",
+			"p.title": "titreArticle",
+			"p.title@style+": "cssWidthArticle"
+		}
+	},
+	couleurs: couleurs
+};
+var treemap = new Treemap(json, parametresTreemap);
+//*/
+
+//*
+r.get("streamgraphTimeline").bind("selectionResize", "treemap", 
+		function(objet, params) { objet.transition(params[0], params[1]); });
+
+function placerCurseur(cluster) {
+	streamgraphTimeline.placerCurseur(parseInt(cluster.attr("datetime")), 'index');
+	streamgraphTimeline.showCursor();
+}
+
+function cacherCurseur() {
+	streamgraphTimeline.hideCursor();
+}
+
+for (var i = 0; i<10; ++i) {
+	var cluster = r.get("treemap.cluster." + i);
+	cluster.mouseover(treemap.focus)
+		.mouseout(treemap.blur)
+		.mouseover(placerCurseur)
+		.mouseout(cacherCurseur);
+}
+//*/
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/treemap/treemap.js	Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,93 @@
+function filterTreeMapData()
+{
+	var request = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
+    request.onreadystatechange = ajaxOnResult;
+    request.open("POST", "/treemapfilter");
+    var data="begin=10-10-2010&end=1-12-2012"
+    request.send(data);
+            
+}
+
+function mesdossiersDoc()
+{
+	var request = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
+    request.open("POST", "/mesdossiersDoc");
+    request.send();
+            
+}
+
+
+function ajaxOnResult(evt) {
+	if ((evt.currentTarget.readyState == 4) && (evt.currentTarget.status == 200 || evt.currentTarget.status == 0)) {
+ 
+ 		$("#treemap").empty();
+ 		$("#streamgraphTimeline").empty();
+ 		var $newdiv1 = $('<div id="streamgraphTemplate"><img class="streamgraph_img" src="" alt=""/><p class="title"></p></div>');
+ 		$('body').append($newdiv1)
+ 		
+        var json = JSON.parse(evt.currentTarget.responseText);
+        
+        var r = new Relations();
+
+		var couleurs = new Couleurs(20);
+		
+		var parametresStreamgraphTimeline = {
+			name: "streamgraphTimeline",
+			selector: "#streamgraphTimeline",
+			activerSelection : true,
+			activerTimeline: true,
+			activerCurseur: true,
+			hauteur: 50,
+			largeur: 800,
+			relations: r,
+			couleurs: couleurs
+		};
+		
+		var streamgraphTimeline = new Streamgraph(json.clusters, parametresStreamgraphTimeline);
+
+		var parametresTreemap = {
+			name: "treemap",
+			selector: "#treemap",
+			hauteur: 400,
+			largeur: 800,
+			relations: r,
+			template: {
+				selector: "#streamgraphTemplate",
+				directives: {
+					"img@src": "urlImage",
+					"img@title": "titreArticle",
+					"img@alt": "titreArticle",
+					"img@width": "widthImage",
+					"img@height": "heightImage",
+					"img@style+": "cssOffsetImage",
+					"p.title": "titreArticle",
+					"p.title@style+": "cssWidthArticle"
+				}
+			},
+			couleurs: couleurs
+		};
+		var treemap = new Treemap(json, parametresTreemap);
+
+		r.get("streamgraphTimeline").bind("selectionResize", "treemap", 
+				function(objet, params) { objet.transition(params[0], params[1]); });
+		
+		function placerCurseur(cluster) {
+			streamgraphTimeline.placerCurseur(parseInt(cluster.attr("datetime")), 'index');
+			streamgraphTimeline.showCursor();
+		}
+		
+		function cacherCurseur() {
+			streamgraphTimeline.hideCursor();
+		}
+		
+		for (var i = 0; i<10; ++i) {
+			var cluster = r.get("treemap.cluster." + i);
+			cluster.mouseover(treemap.focus)
+				.mouseout(treemap.blur)
+				.mouseover(placerCurseur)
+				.mouseout(cacherCurseur);
+		}
+		
+	}
+}
+