web/lib/Zend/Validate/File/Upload.php
author Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
Fri, 23 May 2014 03:17:03 +0200
changeset 1118 96866d5ba708
parent 807 877f952ae2bd
child 1230 68c69c656a2c
permissions -rw-r--r--
add hybrid reading
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     1
<?php
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     2
/**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     3
 * Zend Framework
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     4
 *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     5
 * LICENSE
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     6
 *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     7
 * This source file is subject to the new BSD license that is bundled
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     8
 * with this package in the file LICENSE.txt.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     9
 * It is also available through the world-wide-web at this URL:
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    10
 * http://framework.zend.com/license/new-bsd
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    11
 * If you did not receive a copy of the license and are unable to
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    12
 * obtain it through the world-wide-web, please send an email
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    13
 * to license@zend.com so we can send you a copy immediately.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    14
 *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    15
 * @category  Zend
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    16
 * @package   Zend_Validate
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
    17
 * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    18
 * @license   http://framework.zend.com/license/new-bsd     New BSD License
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
    19
 * @version   $Id: Upload.php 24959 2012-06-15 13:51:04Z adamlundrigan $
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    20
 */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    21
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    22
/**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    23
 * @see Zend_Validate_Abstract
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    24
 */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    25
require_once 'Zend/Validate/Abstract.php';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    26
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    27
/**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    28
 * Validator for the maximum size of a file up to a max of 2GB
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    29
 *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    30
 * @category  Zend
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    31
 * @package   Zend_Validate
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
    32
 * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    33
 * @license   http://framework.zend.com/license/new-bsd     New BSD License
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    34
 */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    35
class Zend_Validate_File_Upload extends Zend_Validate_Abstract
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    36
{
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    37
    /**@#+
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    38
     * @const string Error constants
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    39
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    40
    const INI_SIZE       = 'fileUploadErrorIniSize';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    41
    const FORM_SIZE      = 'fileUploadErrorFormSize';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    42
    const PARTIAL        = 'fileUploadErrorPartial';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    43
    const NO_FILE        = 'fileUploadErrorNoFile';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    44
    const NO_TMP_DIR     = 'fileUploadErrorNoTmpDir';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    45
    const CANT_WRITE     = 'fileUploadErrorCantWrite';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    46
    const EXTENSION      = 'fileUploadErrorExtension';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    47
    const ATTACK         = 'fileUploadErrorAttack';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    48
    const FILE_NOT_FOUND = 'fileUploadErrorFileNotFound';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    49
    const UNKNOWN        = 'fileUploadErrorUnknown';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    50
    /**@#-*/
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    51
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    52
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    53
     * @var array Error message templates
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    54
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    55
    protected $_messageTemplates = array(
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    56
        self::INI_SIZE       => "File '%value%' exceeds the defined ini size",
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    57
        self::FORM_SIZE      => "File '%value%' exceeds the defined form size",
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    58
        self::PARTIAL        => "File '%value%' was only partially uploaded",
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    59
        self::NO_FILE        => "File '%value%' was not uploaded",
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    60
        self::NO_TMP_DIR     => "No temporary directory was found for file '%value%'",
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    61
        self::CANT_WRITE     => "File '%value%' can't be written",
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    62
        self::EXTENSION      => "A PHP extension returned an error while uploading the file '%value%'",
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    63
        self::ATTACK         => "File '%value%' was illegally uploaded. This could be a possible attack",
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    64
        self::FILE_NOT_FOUND => "File '%value%' was not found",
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    65
        self::UNKNOWN        => "Unknown error while uploading file '%value%'"
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    66
    );
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    67
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    68
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    69
     * Internal array of files
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    70
     * @var array
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    71
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    72
    protected $_files = array();
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    73
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    74
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    75
     * Sets validator options
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    76
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    77
     * The array $files must be given in syntax of Zend_File_Transfer to be checked
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    78
     * If no files are given the $_FILES array will be used automatically.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    79
     * NOTE: This validator will only work with HTTP POST uploads!
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    80
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    81
     * @param  array|Zend_Config $files Array of files in syntax of Zend_File_Transfer
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    82
     * @return void
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    83
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    84
    public function __construct($files = array())
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    85
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    86
        if ($files instanceof Zend_Config) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    87
            $files = $files->toArray();
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    88
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    89
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    90
        $this->setFiles($files);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    91
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    92
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    93
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    94
     * Returns the array of set files
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    95
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    96
     * @param  string $files (Optional) The file to return in detail
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    97
     * @return array
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    98
     * @throws Zend_Validate_Exception If file is not found
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    99
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   100
    public function getFiles($file = null)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   101
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   102
        if ($file !== null) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   103
            $return = array();
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   104
            foreach ($this->_files as $name => $content) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   105
                if ($name === $file) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   106
                    $return[$file] = $this->_files[$name];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   107
                }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   108
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   109
                if ($content['name'] === $file) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   110
                    $return[$name] = $this->_files[$name];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   111
                }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   112
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   113
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   114
            if (count($return) === 0) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   115
                require_once 'Zend/Validate/Exception.php';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   116
                throw new Zend_Validate_Exception("The file '$file' was not found");
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   117
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   118
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   119
            return $return;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   120
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   121
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   122
        return $this->_files;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   123
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   124
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   125
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   126
     * Sets the files to be checked
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   127
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   128
     * @param  array $files The files to check in syntax of Zend_File_Transfer
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   129
     * @return Zend_Validate_File_Upload Provides a fluent interface
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   130
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   131
    public function setFiles($files = array())
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   132
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   133
        if (count($files) === 0) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   134
            $this->_files = $_FILES;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   135
        } else {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   136
            $this->_files = $files;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   137
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   138
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   139
        // see ZF-10738
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   140
        if (is_null($this->_files)) {
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   141
            $this->_files = array();
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   142
        }
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   143
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   144
        foreach($this->_files as $file => $content) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   145
            if (!isset($content['error'])) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   146
                unset($this->_files[$file]);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   147
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   148
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   149
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   150
        return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   151
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   152
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   153
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   154
     * Defined by Zend_Validate_Interface
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   155
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   156
     * Returns true if and only if the file was uploaded without errors
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   157
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   158
     * @param  string $value Single file to check for upload errors, when giving null the $_FILES array
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   159
     *                       from initialization will be used
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   160
     * @return boolean
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   161
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   162
    public function isValid($value, $file = null)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   163
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   164
        $this->_messages = null;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   165
        if (array_key_exists($value, $this->_files)) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   166
            $files[$value] = $this->_files[$value];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   167
        } else {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   168
            foreach ($this->_files as $file => $content) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   169
                if (isset($content['name']) && ($content['name'] === $value)) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   170
                    $files[$file] = $this->_files[$file];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   171
                }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   172
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   173
                if (isset($content['tmp_name']) && ($content['tmp_name'] === $value)) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   174
                    $files[$file] = $this->_files[$file];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   175
                }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   176
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   177
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   178
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   179
        if (empty($files)) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   180
            return $this->_throw($file, self::FILE_NOT_FOUND);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   181
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   182
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   183
        foreach ($files as $file => $content) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   184
            $this->_value = $file;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   185
            switch($content['error']) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   186
                case 0:
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   187
                    if (!is_uploaded_file($content['tmp_name'])) {
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   188
                        $this->_throw($content, self::ATTACK);
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   189
                    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   190
                    break;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   191
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   192
                case 1:
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   193
                    $this->_throw($content, self::INI_SIZE);
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   194
                    break;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   195
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   196
                case 2:
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   197
                    $this->_throw($content, self::FORM_SIZE);
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   198
                    break;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   199
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   200
                case 3:
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   201
                    $this->_throw($content, self::PARTIAL);
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   202
                    break;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   203
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   204
                case 4:
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   205
                    $this->_throw($content, self::NO_FILE);
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   206
                    break;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   207
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   208
                case 6:
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   209
                    $this->_throw($content, self::NO_TMP_DIR);
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   210
                    break;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   211
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   212
                case 7:
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   213
                    $this->_throw($content, self::CANT_WRITE);
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   214
                    break;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   215
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   216
                case 8:
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   217
                    $this->_throw($content, self::EXTENSION);
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   218
                    break;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   219
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   220
                default:
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   221
                    $this->_throw($content, self::UNKNOWN);
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   222
                    break;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   223
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   224
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   225
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   226
        if (count($this->_messages) > 0) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   227
            return false;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   228
        } else {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   229
            return true;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   230
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   231
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   232
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   233
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   234
     * Throws an error of the given type
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   235
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   236
     * @param  string $file
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   237
     * @param  string $errorType
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   238
     * @return false
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   239
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   240
    protected function _throw($file, $errorType)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   241
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   242
        if ($file !== null) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   243
            if (is_array($file) and !empty($file['name'])) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   244
                $this->_value = $file['name'];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   245
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   246
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   247
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   248
        $this->_error($errorType);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   249
        return false;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   250
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   251
}
PK}p\CV}Í* ¤tweet_live-49a7c5be74db/web/.htaccess.tmplUTĪnnRPK}p\Cë[ŦÛmČB ¤.tweet_live-49a7c5be74db/web/2011-2012-museo-audiovisuel/config.phpUTĪnnRPK}p\CxĮː[ ¤tweet_live-49a7c5be74db/web/2011-2012-museo-audiovisuel/images/big_visuel_museo_2011_fr.pngUTĪnnRPK}p\CõfÂyöņL ¤ē–tweet_live-49a7c5be74db/web/2011-2012-museo-audiovisuel/images/head_logo.gifUTĪnnRPK}p\Cę\ętFžM ¤3œtweet_live-49a7c5be74db/web/2011-2012-museo-audiovisuel/images/museo-2011.jpgUTĪnnRPK}p\CЕ;3>dBeR ¤Ątweet_live-49a7c5be74db/web/2011-2012-museo-audiovisuel/images/slide4_museo_fr.pngUTĪnnRPK}p\C7[MB^sA ¤hvtweet_live-49a7c5be74db/web/2011-2012-museo-audiovisuel/index.phpUTĪnnRPK}p\CP'ŠŠ¤ C ¤>wtweet_live-49a7c5be74db/web/2011-2012-museo-contribution/config.phpUTĪnnRPK}p\CxĮː\ ¤\}tweet_live-49a7c5be74db/web/2011-2012-museo-contribution/images/big_visuel_museo_2011_fr.pngUTĪnnRPK}p\CõfÂyöņM ¤ tweet_live-49a7c5be74db/web/2011-2012-museo-contribution/images/head_logo.gifUTĪnnRPK}p\Cę\ętFžN ¤} tweet_live-49a7c5be74db/web/2011-2012-museo-contribution/images/museo-2011.jpgUTĪnnRPK}p\CŨlŠ>dBeT ¤ėˆ tweet_live-49a7c5be74db/web/2011-2012-museo-contribution/images/polemic_fly_home.pngUTĪnnRPK}p\CЕ;3>dBeS ¤ĩí tweet_live-49a7c5be74db/web/2011-2012-museo-contribution/images/slide4_museo_fr.pngUTĪnnRPK}p\CX6ÃGI D S ¤}Rtweet_live-49a7c5be74db/web/2011-2012-museo-contribution/images/tweetExplainBgd.gifUTĪnnRPK}p\CWŽ–j~B ¤P\tweet_live-49a7c5be74db/web/2011-2012-museo-contribution/index.phpUTĪnnRPK}p\CÁe$›ÆW< í3]tweet_live-49a7c5be74db/web/2011-2012-museo-desir/config.phpUTĪnnRPK}p\CíķeAö=øS ílctweet_live-49a7c5be74db/web/2011-2012-museo-desir/images/big_visuel_catastrophe.jpgUTĪnnRPK}p\CxĮːU ¤7Ztweet_live-49a7c5be74db/web/2011-2012-museo-desir/images/big_visuel_museo_2011_fr.pngUTĪnnRPK}p\CõfÂyöņF í×ętweet_live-49a7c5be74db/web/2011-2012-museo-desir/images/head_logo.gifUTĪnnRPK}p\Cę\ętFžG íJđtweet_live-49a7c5be74db/web/2011-2012-museo-desir/images/museo-2011.jpgUTĪnnRPK}p\CŨlŠ>dBeM ¤˛etweet_live-49a7c5be74db/web/2011-2012-museo-desir/images/polemic_fly_home.pngUTĪnnRPK}p\CЕ;3>dBeL ¤tĘtweet_live-49a7c5be74db/web/2011-2012-museo-desir/images/slide4_museo_fr.pngUTĪnnRPK}p\CX6ÃGI D L ¤5/tweet_live-49a7c5be74db/web/2011-2012-museo-desir/images/tweetExplainBgd.gifUTĪnnRPK}p\CWŽ–j~; í9tweet_live-49a7c5be74db/web/2011-2012-museo-desir/index.phpUTĪnnRPK}p\Cbc‹€šá A ¤Ũ9tweet_live-49a7c5be74db/web/2011-2012-museo-ingenierie/config.phpUTĪnnRPK}p\CxĮːZ ¤ī?tweet_live-49a7c5be74db/web/2011-2012-museo-ingenierie/images/big_visuel_museo_2011_fr.pngUTĪnnRPK}p\CõfÂyöņK ¤”Đtweet_live-49a7c5be74db/web/2011-2012-museo-ingenierie/images/head_logo.gifUTĪnnRPK}p\Cę\ętFžL ¤ Ötweet_live-49a7c5be74db/web/2011-2012-museo-ingenierie/images/museo-2011.jpgUTĪnnRPK}p\CЕ;3>dBeQ ¤yKtweet_live-49a7c5be74db/web/2011-2012-museo-ingenierie/images/slide4_museo_fr.pngUTĪnnRPK}p\CWŽ–j~@ ¤?°tweet_live-49a7c5be74db/web/2011-2012-museo-ingenierie/index.phpUTĪnnRPK}p\C7đaß÷ A ¤ ątweet_live-49a7c5be74db/web/2011-2012-museo-interfaces/config.phpUTĪnnRPK}p\CxĮːZ ¤wļtweet_live-49a7c5be74db/web/2011-2012-museo-interfaces/images/big_visuel_museo_2011_fr.pngUTĪnnRPK}p\CõfÂyöņK ¤G#tweet_live-49a7c5be74db/web/2011-2012-museo-interfaces/images/head_logo.gifUTĪnnRPK}p\Cę\ętFžL ¤”L#tweet_live-49a7c5be74db/web/2011-2012-museo-interfaces/images/museo-2011.jpgUTĪnnRPK}p\CЕ;3>dBeQ ¤Â#tweet_live-49a7c5be74db/web/2011-2012-museo-interfaces/images/slide4_museo_fr.pngUTĪnnRPK}p\C7[MB^s@ ¤Į&&tweet_live-49a7c5be74db/web/2011-2012-museo-interfaces/index.phpUTĪnnRPK}p\Cí¸w¯@ 큜'&tweet_live-49a7c5be74db/web/2011-2012-museo-ouverture/config.phpUTĪnnRPK}p\CíķeAö=øW íÂ.&tweet_live-49a7c5be74db/web/2011-2012-museo-ouverture/images/big_visuel_catastrophe.jpgUTĪnnRPK}p\CxĮːY ¤‘%'tweet_live-49a7c5be74db/web/2011-2012-museo-ouverture/images/big_visuel_museo_2011_fr.pngUTĪnnRPK}p\CõfÂyöņJ í5ļ*tweet_live-49a7c5be74db/web/2011-2012-museo-ouverture/images/head_logo.gifUTĪnnRPK}p\Cę\ętFžK íŦģ*tweet_live-49a7c5be74db/web/2011-2012-museo-ouverture/images/museo-2011.jpgUTĪnnRPK}p\CŨlŠ>dBeQ ¤1+tweet_live-49a7c5be74db/web/2011-2012-museo-ouverture/images/polemic_fly_home.pngUTĪnnRPK}p\CЕ;3>dBeV ¤Ū•-tweet_live-49a7c5be74db/web/2011-2012-museo-ouverture/images/slide4_catastrophe_fr.pngUTĪnnRPK}p\CX6ÃGI D P ¤Šú/tweet_live-49a7c5be74db/web/2011-2012-museo-ouverture/images/tweetExplainBgd.gifUTĪnnRPK}p\CWŽ–j~? íy0tweet_live-49a7c5be74db/web/2011-2012-museo-ouverture/index.phpUTĪnnRPK}p\C^ž‰Ū F ¤Y0tweet_live-49a7c5be74db/web/2011-2012-museo-structured-data/config.phpUTĪnnRPK}p\CíķeAö=ø] ¤ä 0tweet_live-49a7c5be74db/web/2011-2012-museo-structured-data/images/big_visuel_catastrophe.jpgUTĪnnRPK}p\CxĮː_ ¤š1tweet_live-49a7c5be74db/web/2011-2012-museo-structured-data/images/big_visuel_museo_2011_fr.pngUTĪnnRPK}p\CõfÂyöņP ¤c“4tweet_live-49a7c5be74db/web/2011-2012-museo-structured-data/images/head_logo.gifUTĪnnRPK}p\Cę\ętFžQ ¤ā˜4tweet_live-49a7c5be74db/web/2011-2012-museo-structured-data/images/museo-2011.jpgUTĪnnRPK}p\CŨlŠ>dBeW ¤R5tweet_live-49a7c5be74db/web/2011-2012-museo-structured-data/images/polemic_fly_home.pngUTĪnnRPK}p\CЕ;3>dBeV ¤s7tweet_live-49a7c5be74db/web/2011-2012-museo-structured-data/images/slide4_museo_fr.pngUTĪnnRPK}p\CX6ÃGI D V ¤é×9tweet_live-49a7c5be74db/web/2011-2012-museo-structured-data/images/tweetExplainBgd.gifUTĪnnRPK}p\CWŽ–j~E ¤ŋá9tweet_live-49a7c5be74db/web/2011-2012-museo-structured-data/index.phpUTĪnnRPK}p\C—Ė„Oz* ¤Ĩâ9tweet_live-49a7c5be74db/web/CPV/config.phpUTĪnnRPK}p\C-ļ|8Е=–8 ¤Uį9tweet_live-49a7c5be74db/web/CPV/images/big_visuel_mb.pngUTĪnnRPK}p\C4cÅĀ4 ¤”}?tweet_live-49a7c5be74db/web/CPV/images/head_logo.gifUTĪnnRPK}p\CjJĘĩ§ĩ3 ¤Ä?tweet_live-49a7c5be74db/web/CPV/images/tail_cpv.pngUTĪnnRPK}p\C7pú‚… § : ¤ø7Atweet_live-49a7c5be74db/web/CPV/images/tweetExplainBgd.gifUTĪnnRPK}p\CWŽ–j~) íîCAtweet_live-49a7c5be74db/web/CPV/index.phpUTĪnnRPK}p\CēĻĐŌF . ¤¸DAtweet_live-49a7c5be74db/web/CPV/traduction.phpUTĪnnRPK}p\C Un%v` ? ícJAtweet_live-49a7c5be74db/web/JaneMcGonigal-gameDesign/config.phpUTĪnnRPK}p\CCҧtīiđR ¤OOAtweet_live-49a7c5be74db/web/JaneMcGonigal-gameDesign/images/big_visuel_rsln_mb.jpgUTĪnnRPK}p\Cat§ËB p I íÜ>Ctweet_live-49a7c5be74db/web/JaneMcGonigal-gameDesign/images/head_logo.gifUTĪnnRPK}p\Cž˙ IKF ¤žLCtweet_live-49a7c5be74db/web/JaneMcGonigal-gameDesign/images/slide4.jpgUTĪnnRPK}p\CJ M#rsS ¤feDtweet_live-49a7c5be74db/web/JaneMcGonigal-gameDesign/images/tail_jane-mcgonigal.jpgUTĪnnRPK}p\CX6ÃGI D O ¤ ØDtweet_live-49a7c5be74db/web/JaneMcGonigal-gameDesign/images/tweetExplainBgd.gifUTĪnnRPK}p\CWŽ–j~> íÛáDtweet_live-49a7c5be74db/web/JaneMcGonigal-gameDesign/index.phpUTĪnnRPK}p\Cc–ĸėŪC ¤ēâDtweet_live-49a7c5be74db/web/JaneMcGonigal-gameDesign/traduction.phpUTĪnnRPK}p\CC% íLčDtweet_live-49a7c5be74db/web/about.phpUTĪnnRPK}p\C Ą/ ŊŽ/ ¤ŋīDtweet_live-49a7c5be74db/web/archives-iframe.phpUTĪnnRPK}p\Cw2,qœe( íâõDtweet_live-49a7c5be74db/web/archives.phpUTĪnnRPK}p\C˙2Ģ ė\1 ¤ŨüDtweet_live-49a7c5be74db/web/archives_metadata.phpUTĪnnRPK}p\C ÅÂæÁŸ8 ¤1Etweet_live-49a7c5be74db/web/bpi-biens-communs/config.phpUTĪnnRPK}p\Cvuƒ­âbCdD ¤aEtweet_live-49a7c5be74db/web/bpi-biens-communs/images/archive_img.jpgUTĪnnRPK}p\Cõ÷[PRiSF ¤žjEtweet_live-49a7c5be74db/web/bpi-biens-communs/images/client_visual.jpgUTĪnnRPK}p\CXēyŌÍB ¤?ŊFtweet_live-49a7c5be74db/web/bpi-biens-communs/images/logo_head.pngUTĪnnRPK}p\C‰ ÚÛĖãI ¤ŠĖFtweet_live-49a7c5be74db/web/bpi-biens-communs/images/slide_background.jpgUTĪnnRPK}p\C7[MB^s7 ¤ä¨Gtweet_live-49a7c5be74db/web/bpi-biens-communs/index.phpUTĪnnRPK}p\CĸŠĒÆĸ[B ¤°ŠGtweet_live-49a7c5be74db/web/bpi-des-livres-aux-machines/config.phpUTĪnnRPK}p\CRAŦUÔchdJ ¤ËąGtweet_live-49a7c5be74db/web/bpi-des-livres-aux-machines/images/archive.jpgUTĪnnRPK}p\CÚ9E[Ļe¨M ¤ Htweet_live-49a7c5be74db/web/bpi-des-livres-aux-machines/images/bgd_player.jpgUTĪnnRPK}p\C6ß S""$M ¤˙ŧItweet_live-49a7c5be74db/web/bpi-des-livres-aux-machines/images/fond_slide.jpgUTĪnnRPK}p\CXēyŌÍL ¤ÖßJtweet_live-49a7c5be74db/web/bpi-des-livres-aux-machines/images/logo_head.pngUTĪnnRPK}p\CWŽ–j~A ¤+īJtweet_live-49a7c5be74db/web/bpi-des-livres-aux-machines/index.phpUTĪnnRPK}p\Cĸ˙’˜šø 5 ¤ đJtweet_live-49a7c5be74db/web/bpi-floptechno/config.phpUTĪnnRPK}p\CtKΐ™6A8A ¤2öJtweet_live-49a7c5be74db/web/bpi-floptechno/images/archive_img.jpgUTĪnnRPK}p\C÷ĄšcĖļmēC ¤C-Ktweet_live-49a7c5be74db/web/bpi-floptechno/images/client_visual.jpgUTĪnnRPK}p\CXēyŌÍ? ¤‰äKtweet_live-49a7c5be74db/web/bpi-floptechno/images/logo_head.pngUTĪnnRPK}p\C–F͍_BbF ¤ŅķKtweet_live-49a7c5be74db/web/bpi-floptechno/images/slide_background.jpgUTĪnnRPK}p\C7[MB^s4 ¤^SLtweet_live-49a7c5be74db/web/bpi-floptechno/index.phpUTĪnnRPK}p\CrÁ¸ŧáĢ0 ¤'TLtweet_live-49a7c5be74db/web/bpidoudou/config.phpUTĪnnRPK}p\CxõrƉ¯‹< ¤o[Ltweet_live-49a7c5be74db/web/bpidoudou/images/archive_img.jpgUTĪnnRPK}p\CNԌĒ|{‰> ¤¨åLtweet_live-49a7c5be74db/web/bpidoudou/images/client_visual.jpgUTĪnnRPK}p\CXēyŌÍ: ¤™aNtweet_live-49a7c5be74db/web/bpidoudou/images/logo_head.pngUTĪnnRPK}p\Cņg´ŧųÆA ¤ÜpNtweet_live-49a7c5be74db/web/bpidoudou/images/slide_background.jpgUTĪnnRPK}p\CWŽ–j~/ ¤.Otweet_live-49a7c5be74db/web/bpidoudou/index.phpUTĪnnRPK}p\CĐđ̍ĖK( íØ.Otweet_live-49a7c5be74db/web/callback.phpUTĪnnRPK}p\C*-ϟZ Ū/ ¤2Otweet_live-49a7c5be74db/web/caps2012/config.phpUTĪnnRPK}p\Cē”k9œ|¨@ ¤Ã>Otweet_live-49a7c5be74db/web/caps2012/images/caps2012_archive.jpgUTĪnnRPK}p\C††6ąĶēįÆD ¤sÛOtweet_live-49a7c5be74db/web/caps2012/images/caps2012_live_screen.jpgUTĪnnRPK}p\CļüļĩWĩ? ¤Á–Qtweet_live-49a7c5be74db/web/caps2012/images/caps2012_slider.pngUTĪnnRPK}p\Cë“iÂŊ: ¤íLVtweet_live-49a7c5be74db/web/caps2012/images/logo_ec_en.gifUTĪnnRPK}p\C ŜCfs. ¤ RVtweet_live-49a7c5be74db/web/caps2012/index.phpUTĪnnRPK}p\Cãj0/ä~MÂ3 ¤ëRVtweet_live-49a7c5be74db/web/cineconf/background.jpgUTĪnnRPK}p\C|ö@ŋ></ ¤9ŌYtweet_live-49a7c5be74db/web/cineconf/config.phpUTĪnnRPK}p\CKø–,%%0 ¤ŨŌYtweet_live-49a7c5be74db/web/cineconf/favuser.phpUTĪnnRPK}p\Cžš’…Ŗ . ¤iĶYtweet_live-49a7c5be74db/web/cineconf/index.phpUTĪnnRPK}p\CZpeĐqÜ . ¤qØYtweet_live-49a7c5be74db/web/cineconf/paris.phpUTĪnnRPK}p\CÍ Š5Į%ߜ. ¤GŨYtweet_live-49a7c5be74db/web/cineconf/script.jsUTĪnnRPK}p\C<EĖ`. ¤sZtweet_live-49a7c5be74db/web/cineconf/style.cssUTĪnnRPK}p\CÂJŋÕ/ ¤¤Ztweet_live-49a7c5be74db/web/cineconf/widget.phpUTĪnnRPK}p\Cõ9d;Î% íÉ Ztweet_live-49a7c5be74db/web/clear.phpUTĪnnRPK}p\C6ģg\6 ‚0 ¤` Ztweet_live-49a7c5be74db/web/clic-2012/config.phpUTĪnnRPK}p\C<Ũ9Ōesf= ¤ũZtweet_live-49a7c5be74db/web/clic-2012/images/clic_archive.jpgUTĪnnRPK}p\Cŋ Ģ 9H†IA ¤Š{Ztweet_live-49a7c5be74db/web/clic-2012/images/clic_live_screen.jpgUTĪnnRPK}p\CVNÛûæh< ¤;Ä[tweet_live-49a7c5be74db/web/clic-2012/images/clic_slider.jpgUTĪnnRPK}p\C⷗ԐNƒO? ¤”Ų\tweet_live-49a7c5be74db/web/clic-2012/images/head_logo_clic.pngUTĪnnRPK}p\C7[MB^s/ ¤š(]tweet_live-49a7c5be74db/web/clic-2012/index.phpUTĪnnRPK}p\CĀFĨtâ"\& í^)]tweet_live-49a7c5be74db/web/client.phpUTĪnnRPK}p\Cz4*žŒĄ5& 큝>]tweet_live-49a7c5be74db/web/common.phpUTĪnnRPK}p\C˜sęâa+ ¤†M]tweet_live-49a7c5be74db/web/config.php.tmplUTĪnnRPK}p\C Ę\Ĩ“)C ¤ĘN]tweet_live-49a7c5be74db/web/curiouser-digital-humanities/config.phpUTĪnnRPK}p\CafÜoĄ#p$U ¤×U]tweet_live-49a7c5be74db/web/curiouser-digital-humanities/images/Archive_Curiouser.jpgUTĪnnRPK}p\Cŗõ9§15R ¤z]tweet_live-49a7c5be74db/web/curiouser-digital-humanities/images/Logo_Curiouser.gifUTĪnnRPK}p\C7FF- Y R ¤ž€]tweet_live-49a7c5be74db/web/curiouser-digital-humanities/images/Logo_Curiouser.pngUTĪnnRPK}p\Câé‡;X ¤t]tweet_live-49a7c5be74db/web/curiouser-digital-humanities/images/bgd-player_Curiouser.jpgUTĪnnRPK}p\CiPÅ]itŦxX ¤>–^tweet_live-49a7c5be74db/web/curiouser-digital-humanities/images/fond_slide_Curiouser.jpgUTĪnnRPK}p\C7[MB^sB ¤6 _tweet_live-49a7c5be74db/web/curiouser-digital-humanities/index.phpUTĪnnRPK}p\CŲv!Ŗ]> ¤ _tweet_live-49a7c5be74db/web/edito-1213-01-contextes/config.phpUTĪnnRPK}p\Czk%ˇ—UJWJ ¤ß_tweet_live-49a7c5be74db/web/edito-1213-01-contextes/images/archive_img.jpgUTĪnnRPK}p\CVUf0ØÔŨL ¤÷j_tweet_live-49a7c5be74db/web/edito-1213-01-contextes/images/client_visual.jpgUTĪnnRPK}p\CˇúÃá0I ¤ĒC`tweet_live-49a7c5be74db/web/edito-1213-01-contextes/images/logo-edito.pngUTĪnnRPK}p\C^ÁŽ^ÍØ´ŨO ¤D]`tweet_live-49a7c5be74db/web/edito-1213-01-contextes/images/slide_background.jpgUTĪnnRPK}p\CWŽ–j~= ¤—6atweet_live-49a7c5be74db/web/edito-1213-01-contextes/index.phpUTĪnnRPK}p\C›bŅ@ÁG ¤u7atweet_live-49a7c5be74db/web/edito-1213-02-collectifs-auteurs/config.phpUTĪnnRPK}p\Czk%ˇ—UJWS ¤´>atweet_live-49a7c5be74db/web/edito-1213-02-collectifs-auteurs/images/archive_img.jpgUTĪnnRPK}p\CVUf0ØÔŨU ¤Õ”atweet_live-49a7c5be74db/web/edito-1213-02-collectifs-auteurs/images/client_visual.jpgUTĪnnRPK}p\CˇúÃá0R ¤‘mbtweet_live-49a7c5be74db/web/edito-1213-02-collectifs-auteurs/images/logo-edito.pngUTĪnnRPK}p\C^ÁŽ^ÍØ´ŨX ¤4‡btweet_live-49a7c5be74db/web/edito-1213-02-collectifs-auteurs/images/slide_background.jpgUTĪnnRPK}p\CWŽ–j~F ¤`ctweet_live-49a7c5be74db/web/edito-1213-02-collectifs-auteurs/index.phpUTĪnnRPK}p\CsŸÚQú@ ¤wactweet_live-49a7c5be74db/web/edito-1213-04-lire-ecrire/config.phpUTĪnnRPK}p\Czk%ˇ—UJWL ¤?hctweet_live-49a7c5be74db/web/edito-1213-04-lire-ecrire/images/archive_img.jpgUTĪnnRPK}p\CVUf0ØÔŨN ¤Yžctweet_live-49a7c5be74db/web/edito-1213-04-lire-ecrire/images/client_visual.jpgUTĪnnRPK}p\CˇúÃá0K ¤—dtweet_live-49a7c5be74db/web/edito-1213-04-lire-ecrire/images/logo-edito.pngUTĪnnRPK}p\C^ÁŽ^ÍØ´ŨQ ¤Ē°dtweet_live-49a7c5be74db/web/edito-1213-04-lire-ecrire/images/slide_background.jpgUTĪnnRPK}p\CWŽ–j~? ¤˙‰etweet_live-49a7c5be74db/web/edito-1213-04-lire-ecrire/index.phpUTĪnnRPK}p\Cr}Ē?<Ÿ F ¤ßŠetweet_live-49a7c5be74db/web/edito-1213-05-supports-ecriture/config.phpUTĪnnRPK}p\Czk%ˇ—UJWR ¤˜etweet_live-49a7c5be74db/web/edito-1213-05-supports-ecriture/images/archive_img.jpgUTĪnnRPK}p\CVUf0ØÔŨT ¤¸æetweet_live-49a7c5be74db/web/edito-1213-05-supports-ecriture/images/client_visual.jpgUTĪnnRPK}p\CˇúÃá0Q ¤sŋftweet_live-49a7c5be74db/web/edito-1213-05-supports-ecriture/images/logo-edito.pngUTĪnnRPK}p\C^ÁŽ^ÍØ´ŨW ¤Ųftweet_live-49a7c5be74db/web/edito-1213-05-supports-ecriture/images/slide_background.jpgUTĪnnRPK}p\CWŽ–j~E ¤p˛gtweet_live-49a7c5be74db/web/edito-1213-05-supports-ecriture/index.phpUTĪnnRPK}p\C>ŗÚōčØH ¤Vŗgtweet_live-49a7c5be74db/web/edito-1213-06-modeles-economiques/config.phpUTĪnnRPK}p\Czk%ˇ—UJWT ¤Ŋēgtweet_live-49a7c5be74db/web/edito-1213-06-modeles-economiques/images/archive_img.jpgUTĪnnRPK}p\CVUf0ØÔŨV ¤ßhtweet_live-49a7c5be74db/web/edito-1213-06-modeles-economiques/images/client_visual.jpgUTĪnnRPK}p\CˇúÃá0S ¤œéhtweet_live-49a7c5be74db/web/edito-1213-06-modeles-economiques/images/logo-edito.pngUTĪnnRPK}p\C^ÁŽ^ÍØ´ŨY ¤@itweet_live-49a7c5be74db/web/edito-1213-06-modeles-economiques/images/slide_background.jpgUTĪnnRPK}p\CWŽ–j~G ¤Üitweet_live-49a7c5be74db/web/edito-1213-06-modeles-economiques/index.phpUTĪnnRPK}p\C ĪÄ J ¤…Ũitweet_live-49a7c5be74db/web/edito-1213-07-lecteur-auteur-droits/config.phpUTĪnnRPK}p\Czk%ˇ—UJWV ¤äitweet_live-49a7c5be74db/web/edito-1213-07-lecteur-auteur-droits/images/archive_img.jpgUTĪnnRPK}p\CVUf0ØÔŨX ¤<:jtweet_live-49a7c5be74db/web/edito-1213-07-lecteur-auteur-droits/images/client_visual.jpgUTĪnnRPK}p\CˇúÃá0U ¤ûktweet_live-49a7c5be74db/web/edito-1213-07-lecteur-auteur-droits/images/logo-edito.pngUTĪnnRPK}p\C^ÁŽ^ÍØ´Ũ[ ¤Ą,ktweet_live-49a7c5be74db/web/edito-1213-07-lecteur-auteur-droits/images/slide_background.jpgUTĪnnRPK}p\CWŽ–j~I ¤ltweet_live-49a7c5be74db/web/edito-1213-07-lecteur-auteur-droits/index.phpUTĪnnRPK}p\CĘd)Ÿá < ¤ęltweet_live-49a7c5be74db/web/edito-arts-numeriques/config.phpUTĪnnRPK}p\C |&‰(U ¤r ltweet_live-49a7c5be74db/web/edito-arts-numeriques/images/archive-editorialisation.jpgUTĪnnRPK}p\C4:@›‘v–M ¤4ltweet_live-49a7c5be74db/web/edito-arts-numeriques/images/big_visuel_edito.jpgUTĪnnRPK}p\CõfÂyöņF ¤1Æltweet_live-49a7c5be74db/web/edito-arts-numeriques/images/head_logo.gifUTĪnnRPK}p\Cc+ÜŪLÃPT ¤¤Ëltweet_live-49a7c5be74db/web/edito-arts-numeriques/images/slide4-editorialisation.jpgUTĪnnRPK}p\CWŽ–j~; ¤ mtweet_live-49a7c5be74db/web/edito-arts-numeriques/index.phpUTĪnnRPK}p\CgĶts, 9 ¤émtweet_live-49a7c5be74db/web/edito-datacuration/config.phpUTĪnnRPK}p\C |&‰(R ¤… mtweet_live-49a7c5be74db/web/edito-datacuration/images/archive-editorialisation.jpgUTĪnnRPK}p\C4:@›‘v–J ¤"Gmtweet_live-49a7c5be74db/web/edito-datacuration/images/big_visuel_edito.jpgUTĪnnRPK}p\CõfÂyöņC ¤>Ųmtweet_live-49a7c5be74db/web/edito-datacuration/images/head_logo.gifUTĪnnRPK}p\Cc+ÜŪLÃPQ ¤ŽŪmtweet_live-49a7c5be74db/web/edito-datacuration/images/slide4-editorialisation.jpgUTĪnnRPK}p\C7[MB^s8 ¤,ntweet_live-49a7c5be74db/web/edito-datacuration/index.phpUTĪnnRPK}p\CŽ5G! 7 ¤á,ntweet_live-49a7c5be74db/web/edito-inaugurale/config.phpUTĪnnRPK}p\C |&‰(P ¤p1ntweet_live-49a7c5be74db/web/edito-inaugurale/images/archive-editorialisation.jpgUTĪnnRPK}p\C4:@›‘v–H ¤ Xntweet_live-49a7c5be74db/web/edito-inaugurale/images/big_visuel_edito.jpgUTĪnnRPK}p\CõfÂyöņA í%ęntweet_live-49a7c5be74db/web/edito-inaugurale/images/head_logo.gifUTĪnnRPK}p\Cc+ÜŪLÃPO ¤“īntweet_live-49a7c5be74db/web/edito-inaugurale/images/slide4-editorialisation.jpgUTĪnnRPK}p\C9 ĩ> •G ¤÷ •I ¤}[ptweet_live-49a7c5be74db/web/edito-intelligence/images/tweetExplainBgd.gifUTĪnnRPK}p\CWŽ–j~8 í;hptweet_live-49a7c5be74db/web/edito-intelligence/index.phpUTĪnnRPK}p\Cų÷|M[Ģ < ¤iptweet_live-49a7c5be74db/web/edito-reseaux-sociaux/config.phpUTĪnnRPK}p\C |&‰(U ¤ânptweet_live-49a7c5be74db/web/edito-reseaux-sociaux/images/archive-editorialisation.jpgUTĪnnRPK}p\C4:@›‘v–M ¤‚•ptweet_live-49a7c5be74db/web/edito-reseaux-sociaux/images/big_visuel_edito.jpgUTĪnnRPK}p\CõfÂyöņF ¤Ą'qtweet_live-49a7c5be74db/web/edito-reseaux-sociaux/images/head_logo.gifUTĪnnRPK}p\Cc+ÜŪLÃPT ¤-qtweet_live-49a7c5be74db/web/edito-reseaux-sociaux/images/slide4-editorialisation.jpgUTĪnnRPK}p\CWŽ–j~; ¤}zqtweet_live-49a7c5be74db/web/edito-reseaux-sociaux/index.phpUTĪnnRPK}p\CŠ{¸'īq: ¤Y{qtweet_live-49a7c5be74db/web/edito-serious-games/config.phpUTĪnnRPK}p\C |&‰(S ¤šƒqtweet_live-49a7c5be74db/web/edito-serious-games/images/archive-editorialisation.jpgUTĪnnRPK}p\C4:@›‘v–K ¤WĒqtweet_live-49a7c5be74db/web/edito-serious-games/images/big_visuel_edito.jpgUTĪnnRPK}p\CõfÂyöņD ¤t •C ¤H stweet_live-49a7c5be74db/web/edito-webdoc/images/tweetExplainBgd.gifUTĪnnRPK}p\CWŽ–j~2 큭stweet_live-49a7c5be74db/web/edito-webdoc/index.phpUTĪnnRPK}p\C°oŪ^Ø, ¤Ķ­stweet_live-49a7c5be74db/web/edito/config.phpUTĪnnRPK}p\Czk%ˇ—UJW8 ¤”ąstweet_live-49a7c5be74db/web/edito/images/archive_img.jpgUTĪnnRPK}p\CVUf0ØÔŨ: ¤šttweet_live-49a7c5be74db/web/edito/images/client_visual.jpgUTĪnnRPK}p\CˇúÃá07 ¤;āttweet_live-49a7c5be74db/web/edito/images/logo-edito.pngUTĪnnRPK}p\C^ÁŽ^ÍØ´Ũ= ¤Ãųttweet_live-49a7c5be74db/web/edito/images/slide_background.jpgUTĪnnRPK}p\C•|4[^s+ ¤Ķutweet_live-49a7c5be74db/web/edito/index.phpUTĪnnRPK}p\C•|4[^s7 ¤ÄĶutweet_live-49a7c5be74db/web/edito/polemicaltimeline.phpUTĪnnRPK}p\Cëø+X: ¤Ôutweet_live-49a7c5be74db/web/eduinnov-conference/config.phpUTĪnnRPK}p\CF+Ŋ o8sF ¤YŨutweet_live-49a7c5be74db/web/eduinnov-conference/images/archive_img.jpgUTĪnnRPK}p\C̀€@”D ¤āLvtweet_live-49a7c5be74db/web/eduinnov-conference/images/logo_head.pngUTĪnnRPK}p\C¯y–ŠĄČ…ÉF ¤›hvtweet_live-49a7c5be74db/web/eduinnov-conference/images/slider_home.pngUTĪnnRPK}p\C7[MB^s9 ¤š1xtweet_live-49a7c5be74db/web/eduinnov-conference/index.phpUTĪnnRPK}p\CЈÜû‡ ã5 ¤‡2xtweet_live-49a7c5be74db/web/eduinnov-focus/config.phpUTĪnnRPK}p\CF+Ŋ o8sA ¤z=xtweet_live-49a7c5be74db/web/eduinnov-focus/images/archive_img.jpgUTĪnnRPK}p\C̀€@”? ¤üŦxtweet_live-49a7c5be74db/web/eduinnov-focus/images/logo_head.pngUTĪnnRPK}p\C¯y–ŠĄČ…ÉA ¤˛Čxtweet_live-49a7c5be74db/web/eduinnov-focus/images/slider_home.pngUTĪnnRPK}p\C7[MB^s4 ¤Ë‘ztweet_live-49a7c5be74db/web/eduinnov-focus/index.phpUTĪnnRPK}p\CPi&‰tM/ ¤”’ztweet_live-49a7c5be74db/web/eduinnov/config.phpUTĪnnRPK}p\CF+Ŋ o8s; ¤n›ztweet_live-49a7c5be74db/web/eduinnov/images/archive_img.jpgUTĪnnRPK}p\C̀€@”9 ¤ę {tweet_live-49a7c5be74db/web/eduinnov/images/logo_head.pngUTĪnnRPK}p\C¯y–ŠĄČ…É; ¤š&{tweet_live-49a7c5be74db/web/eduinnov/images/slider_home.pngUTĪnnRPK}p\C•|4[^s. ¤­ī|tweet_live-49a7c5be74db/web/eduinnov/index.phpUTĪnnRPK}p\C¸áx ­I ¤pđ|tweet_live-49a7c5be74db/web/eduinov-2013/apprendre-avec-tice-1/config.phpUTĪnnRPK}p\CŦĢĨ‹'C*U ¤ųö|tweet_live-49a7c5be74db/web/eduinov-2013/apprendre-avec-tice-1/images/archive_img.jpgUTĪnnRPK}p\Cŧōíœ/¤0S ¤}tweet_live-49a7c5be74db/web/eduinov-2013/apprendre-avec-tice-1/images/head-logo.pngUTĪnnRPK}p\CpŠƒ^sH ¤-O}tweet_live-49a7c5be74db/web/eduinov-2013/apprendre-avec-tice-1/index.phpUTĪnnRPK}p\CjáįÅ ĒI ¤ P}tweet_live-49a7c5be74db/web/eduinov-2013/apprendre-avec-tice-2/config.phpUTĪnnRPK}p\CŦĢĨ‹'C*U ¤“V}tweet_live-49a7c5be74db/web/eduinov-2013/apprendre-avec-tice-2/images/archive_img.jpgUTĪnnRPK}p\Cŧōíœ/¤0S ¤Ē~}tweet_live-49a7c5be74db/web/eduinov-2013/apprendre-avec-tice-2/images/head-logo.pngUTĪnnRPK}p\CpŠƒ^sH ¤ĮŽ}tweet_live-49a7c5be74db/web/eduinov-2013/apprendre-avec-tice-2/index.phpUTĪnnRPK}p\Cŧ€OøvV> ¤¤¯}tweet_live-49a7c5be74db/web/eduinov-2013/conference/config.phpUTĪnnRPK}p\CŦĢĨ‹'C*J ¤ļ}tweet_live-49a7c5be74db/web/eduinov-2013/conference/images/archive_img.jpgUTĪnnRPK}p\CZrqZ‹U \L ¤›Ū}tweet_live-49a7c5be74db/web/eduinov-2013/conference/images/client_visual.jpgUTĪnnRPK}p\Cŧōíœ/¤0H ¤Š4~tweet_live-49a7c5be74db/web/eduinov-2013/conference/images/head-logo.pngUTĪnnRPK}p\C?Y´]1cO ¤ģd~tweet_live-49a7c5be74db/web/eduinov-2013/conference/images/slide_background.jpgUTĪnnRPK}p\C7[MB^s= ¤õÂ~tweet_live-49a7c5be74db/web/eduinov-2013/conference/index.phpUTĪnnRPK}p\C&1H•3 ¤ĮÃ~tweet_live-49a7c5be74db/web/eduinov-2013/config.phpUTĪnnRPK}p\CŌ¨Í˛J ¤3Į~tweet_live-49a7c5be74db/web/eduinov-2013/egalite-filles-garcons/config.phpUTĪnnRPK}p\CŦĢĨ‹'C*V ¤ˇÍ~tweet_live-49a7c5be74db/web/eduinov-2013/egalite-filles-garcons/images/archive_img.jpgUTĪnnRPK}p\Cŧōíœ/¤0T ¤Īõ~tweet_live-49a7c5be74db/web/eduinov-2013/egalite-filles-garcons/images/head-logo.pngUTĪnnRPK}p\CpŠƒ^sI ¤í%tweet_live-49a7c5be74db/web/eduinov-2013/egalite-filles-garcons/index.phpUTĪnnRPK}p\Cû„b˙ŸF ¤Ë&tweet_live-49a7c5be74db/web/eduinov-2013/eleves-decrocheurs/config.phpUTĪnnRPK}p\CŦĢĨ‹'C*R ¤G-tweet_live-49a7c5be74db/web/eduinov-2013/eleves-decrocheurs/images/archive_img.jpgUTĪnnRPK}p\Cŧōíœ/¤0P ¤[Utweet_live-49a7c5be74db/web/eduinov-2013/eleves-decrocheurs/images/head-logo.pngUTĪnnRPK}p\CpŠƒ^sE ¤u…tweet_live-49a7c5be74db/web/eduinov-2013/eleves-decrocheurs/index.phpUTĪnnRPK}p\CŦĢĨ‹'C*? ¤O†tweet_live-49a7c5be74db/web/eduinov-2013/images/archive_img.jpgUTĪnnRPK}p\CZrqZ‹U \A ¤PŽtweet_live-49a7c5be74db/web/eduinov-2013/images/client_visual.jpgUTĪnnRPK}p\Cŧōíœ/¤0= ¤S€tweet_live-49a7c5be74db/web/eduinov-2013/images/head-logo.pngUTĪnnRPK}p\C?Y´]1cD ¤Z4€tweet_live-49a7c5be74db/web/eduinov-2013/images/slide_background.jpgUTĪnnRPK}p\C•|4[^s2 ¤‰’€tweet_live-49a7c5be74db/web/eduinov-2013/index.phpUTĪnnRPK}p\CTzˆÖI ¤P“€tweet_live-49a7c5be74db/web/eduinov-2013/intervention-ministre/config.phpUTĪnnRPK}p\CŦĢĨ‹'C*U ¤î™€tweet_live-49a7c5be74db/web/eduinov-2013/intervention-ministre/images/archive_img.jpgUTĪnnRPK}p\Cŧōíœ/¤0S ¤€tweet_live-49a7c5be74db/web/eduinov-2013/intervention-ministre/images/head-logo.pngUTĪnnRPK}p\CpŠƒ^sH ¤"ō€tweet_live-49a7c5be74db/web/eduinov-2013/intervention-ministre/index.phpUTĪnnRPK}p\CķI¤ô•K ¤˙ō€tweet_live-49a7c5be74db/web/eduinov-2013/numerique-outils-usages/config.phpUTĪnnRPK}p\CŦĢĨ‹'C*W ¤žų€tweet_live-49a7c5be74db/web/eduinov-2013/numerique-outils-usages/images/archive_img.jpgUTĪnnRPK}p\Cŧōíœ/¤0U ¤ˇ!tweet_live-49a7c5be74db/web/eduinov-2013/numerique-outils-usages/images/head-logo.pngUTĪnnRPK}p\CpŠƒ^sJ ¤ÖQtweet_live-49a7c5be74db/web/eduinov-2013/numerique-outils-usages/index.phpUTĪnnRPK}p\Cžģæū•R ¤ĩRtweet_live-49a7c5be74db/web/eduinov-2013/plus-de-maitres-que-de-classes/config.phpUTĪnnRPK}p\CŦĢĨ‹'C*^ ¤ ¤h˛tweet_live-49a7c5be74db/web/eduinov-2013/polemicaltimeline.phpUTĪnnRPK}p\C7˛ŅĘĒ"? ¤@ŗtweet_live-49a7c5be74db/web/eduinov-2013/table-ronde/config.phpUTĪnnRPK}p\CŦĢĨ‹'C*K ¤€Âtweet_live-49a7c5be74db/web/eduinov-2013/table-ronde/images/archive_img.jpgUTĪnnRPK}p\CZrqZ‹U \M ¤ętweet_live-49a7c5be74db/web/eduinov-2013/table-ronde/images/client_visual.jpgUTĪnnRPK}p\Cŧōíœ/¤0I ¤œ@‚tweet_live-49a7c5be74db/web/eduinov-2013/table-ronde/images/head-logo.pngUTĪnnRPK}p\C?Y´]1cP ¤¯p‚tweet_live-49a7c5be74db/web/eduinov-2013/table-ronde/images/slide_background.jpgUTĪnnRPK}p\C7[MB^s> ¤ę΂tweet_live-49a7c5be74db/web/eduinov-2013/table-ronde/index.phpUTĪnnRPK}p\CR%!B7* ¤ŊĪ‚tweet_live-49a7c5be74db/web/embed_form.phpUTĪnnRPK}p\CË,Ãķ¸ + ¤`Ԃtweet_live-49a7c5be74db/web/embedscript.phpUTĪnnRPK}p\C5›w$đŲ 5 ¤z؂tweet_live-49a7c5be74db/web/enmi12-barcamp/config.phpUTĪnnRPK}p\CáßFĒÆäÉ; ¤ÖŨ‚tweet_live-49a7c5be74db/web/enmi12-barcamp/images/large.jpgUTĪnnRPK}p\CĄ&yuŸš? ¤ō¤ƒtweet_live-49a7c5be74db/web/enmi12-barcamp/images/logo-enmi.pngUTĪnnRPK}p\Cšåu"%ģ0Ŋ< ¤¸ƒtweet_live-49a7c5be74db/web/enmi12-barcamp/images/slider.jpgUTĪnnRPK}p\C4Ōķ`/CÁD; ¤Ÿs„tweet_live-49a7c5be74db/web/enmi12-barcamp/images/small.jpgUTĪnnRPK}p\C7[MB^s4 ¤@ˇ„tweet_live-49a7c5be74db/web/enmi12-barcamp/index.phpUTĪnnRPK}p\C•BÍāįv A ¤ ¸„tweet_live-49a7c5be74db/web/enmi12/carrefour-possibles/config.phpUTĪnnRPK}p\C§'á…TãzM ¤hž„tweet_live-49a7c5be74db/web/enmi12/carrefour-possibles/images/archive_img.jpgUTĪnnRPK}p\CĄ&yuŸšK ¤q…tweet_live-49a7c5be74db/web/enmi12/carrefour-possibles/images/logo-enmi.pngUTĪnnRPK}p\CWŽ–j~@ ¤’&…tweet_live-49a7c5be74db/web/enmi12/carrefour-possibles/index.phpUTĪnnRPK}p\Cp…íA˙-1- ¤s'…tweet_live-49a7c5be74db/web/enmi12/config.phpUTĪnnRPK}p\C§'á…Tãz9 ¤Ö9…tweet_live-49a7c5be74db/web/enmi12/images/archive_img.jpgUTĪnnRPK}p\C#û”įúé2; ¤ËŽ…tweet_live-49a7c5be74db/web/enmi12/images/client_visual.jpgUTĪnnRPK}p\CĄ&yuŸš7 ¤$Іtweet_live-49a7c5be74db/web/enmi12/images/logo-enmi.pngUTĪnnRPK}p\CĘMŅQ‚Ĩ> ¤1†tweet_live-49a7c5be74db/web/enmi12/images/slide_background.jpgUTĪnnRPK}p\C•|4[^s, ¤÷‡tweet_live-49a7c5be74db/web/enmi12/index.phpUTĪnnRPK}p\CĒļmc•8 ¤¸ ‡tweet_live-49a7c5be74db/web/enmi12/polemicaltimeline.phpUTĪnnRPK}p\CjaŖBË 7 ¤Š!‡tweet_live-49a7c5be74db/web/enmi12/session-1/config.phpUTĪnnRPK}p\C§'á…TãzC ¤Ã&‡tweet_live-49a7c5be74db/web/enmi12/session-1/images/archive_img.jpgUTĪnnRPK}p\CĄ&yuŸšA ¤Â{‡tweet_live-49a7c5be74db/web/enmi12/session-1/images/logo-enmi.pngUTĪnnRPK}p\CWŽ–j~6 ¤Ųއtweet_live-49a7c5be74db/web/enmi12/session-1/index.phpUTĪnnRPK}p\C9­%ĻL 7 ¤°‡tweet_live-49a7c5be74db/web/enmi12/session-2/config.phpUTĪnnRPK}p\C§'á…TãzC ¤Ä”‡tweet_live-49a7c5be74db/web/enmi12/session-2/images/archive_img.jpgUTĪnnRPK}p\CĄ&yuŸšA ¤Ãé‡tweet_live-49a7c5be74db/web/enmi12/session-2/images/logo-enmi.pngUTĪnnRPK}p\CWŽ–j~6 ¤Úü‡tweet_live-49a7c5be74db/web/enmi12/session-2/index.phpUTĪnnRPK}p\CdR`D2 7 ¤ąũ‡tweet_live-49a7c5be74db/web/enmi12/session-3/config.phpUTĪnnRPK}p\C§'á…TãzC ¤Qˆtweet_live-49a7c5be74db/web/enmi12/session-3/images/archive_img.jpgUTĪnnRPK}p\CĄ&yuŸšA ¤PXˆtweet_live-49a7c5be74db/web/enmi12/session-3/images/logo-enmi.pngUTĪnnRPK}p\CWŽ–j~6 ¤gkˆtweet_live-49a7c5be74db/web/enmi12/session-3/index.phpUTĪnnRPK}p\Cöē­Nür 7 ¤>lˆtweet_live-49a7c5be74db/web/enmi12/session-4/config.phpUTĪnnRPK}p\C§'á…TãzC ¤¨qˆtweet_live-49a7c5be74db/web/enmi12/session-4/images/archive_img.jpgUTĪnnRPK}p\CĄ&yuŸšA ¤§Æˆtweet_live-49a7c5be74db/web/enmi12/session-4/images/logo-enmi.pngUTĪnnRPK}p\CWŽ–j~6 ¤žŲˆtweet_live-49a7c5be74db/web/enmi12/session-4/index.phpUTĪnnRPK}p\C9‹DÛģ 7 ¤•Úˆtweet_live-49a7c5be74db/web/enmi12/session-5/config.phpUTĪnnRPK}p\C§'á…TãzC ¤žßˆtweet_live-49a7c5be74db/web/enmi12/session-5/images/archive_img.jpgUTĪnnRPK}p\CĄ&yuŸšA ¤Ŋ4‰tweet_live-49a7c5be74db/web/enmi12/session-5/images/logo-enmi.pngUTĪnnRPK}p\CWŽ–j~6 ¤ÔG‰tweet_live-49a7c5be74db/web/enmi12/session-5/index.phpUTĪnnRPK}p\C˙ ūŖ„ 7 ¤ĢH‰tweet_live-49a7c5be74db/web/enmi12/session-6/config.phpUTĪnnRPK}p\C§'á…TãzC ¤N‰tweet_live-49a7c5be74db/web/enmi12/session-6/images/archive_img.jpgUTĪnnRPK}p\CĄ&yuŸšA ¤œŖ‰tweet_live-49a7c5be74db/web/enmi12/session-6/images/logo-enmi.pngUTĪnnRPK}p\CWŽ–j~6 ¤ŗļ‰tweet_live-49a7c5be74db/web/enmi12/session-6/index.phpUTĪnnRPK}p\CōhãGîà 7 ¤Šˇ‰tweet_live-49a7c5be74db/web/enmi12/session-7/config.phpUTĪnnRPK}p\C§'á…TãzC ¤æŧ‰tweet_live-49a7c5be74db/web/enmi12/session-7/images/archive_img.jpgUTĪnnRPK}p\CĄ&yuŸšA ¤åŠtweet_live-49a7c5be74db/web/enmi12/session-7/images/logo-enmi.pngUTĪnnRPK}p\CWŽ–j~6 ¤ü$Štweet_live-49a7c5be74db/web/enmi12/session-7/index.phpUTĪnnRPK}p\C=&–đ8¯E íĶ%Štweet_live-49a7c5be74db/web/enmi2011-technologie-confiance/config.phpUTĪnnRPK}p\Cƒ„¸x5ā‰âX ¤‡)Štweet_live-49a7c5be74db/web/enmi2011-technologie-confiance/images/big_visuel_rsln_mb.jpgUTĪnnRPK}p\C™jU„J‚š„Z ¤K Žtweet_live-49a7c5be74db/web/enmi2011-technologie-confiance/images/big_visuel_rsln_mb_2.jpgUTĪnnRPK}p\C$„Zĸ-Z ¤&‘tweet_live-49a7c5be74db/web/enmi2011-technologie-confiance/images/big_visuel_rsln_mb_3.jpgUTĪnnRPK}p\C] zŽæžZ ¤Ē“tweet_live-49a7c5be74db/web/enmi2011-technologie-confiance/images/big_visuel_rsln_mb_4.jpgUTĪnnRPK}p\CÃT ׊–{ĢZ ¤Y•tweet_live-49a7c5be74db/web/enmi2011-technologie-confiance/images/big_visuel_rsln_mb_5.jpgUTĪnnRPK}p\Cûøĩî ™ךZ ¤Vđ—tweet_live-49a7c5be74db/web/enmi2011-technologie-confiance/images/big_visuel_rsln_mb_6.jpgUTĪnnRPK}p\CęKŊŅLQ\ íņ‰štweet_live-49a7c5be74db/web/enmi2011-technologie-confiance/images/big_visuel_rsln_mb_old.jpgUTĪnnRPK}p\C ķčž( Q O 큈֚tweet_live-49a7c5be74db/web/enmi2011-technologie-confiance/images/head_logo.gifUTĪnnRPK}p\CˇV$D—ģŸL ¤6âštweet_live-49a7c5be74db/web/enmi2011-technologie-confiance/images/slide4.jpgUTĪnnRPK}p\C˙=úf3=3S ¤ũyœtweet_live-49a7c5be74db/web/enmi2011-technologie-confiance/images/tail_enmi2011.jpgUTĪnnRPK}p\Cp„—e ‹U ¤š­œtweet_live-49a7c5be74db/web/enmi2011-technologie-confiance/images/tweetExplainBgd.gifUTĪnnRPK}p\CWŽ–j~D 큋ēœtweet_live-49a7c5be74db/web/enmi2011-technologie-confiance/index.phpUTĪnnRPK}p\C´?wģ&/ ¤pģœtweet_live-49a7c5be74db/web/enmi2011/config.phpUTĪnnRPK}p\C„!šw'Ļ@ ¤×˜tweet_live-49a7c5be74db/web/enmi2011/images/archive-enmi2011.jpgUTĪnnRPK}p\CŨ%áZíŌ%@ ¤čCtweet_live-49a7c5be74db/web/enmi2011/images/big_visuel_edito.jpgUTĪnnRPK}p\C ķčž( Q 9 큚1žtweet_live-49a7c5be74db/web/enmi2011/images/head_logo.gifUTĪnnRPK}p\Cž”íD˛Lq? ¤Q=žtweet_live-49a7c5be74db/web/enmi2011/images/slide4-enmi2011.jpgUTĪnnRPK}p\C9 ĩ> •? ¤yŠŸtweet_live-49a7c5be74db/web/enmi2011/images/tweetExplainBgd.gifUTĪnnRPK}p\CWŽ–j~. í-—Ÿtweet_live-49a7c5be74db/web/enmi2011/index.phpUTĪnnRPK}p\Câ ˇ{5 ; ¤ü—Ÿtweet_live-49a7c5be74db/web/enmi2012-seminaire-1/config.phpUTĪnnRPK}p\CO%ÚnNPL ¤ŖĸŸtweet_live-49a7c5be74db/web/enmi2012-seminaire-1/images/archive-enmi2012.jpgUTĪnnRPK}p\C…ļ 7”;O ¤”ņŸtweet_live-49a7c5be74db/web/enmi2012-seminaire-1/images/big_visuel_enmi2012.jpgUTĪnnRPK}p\CŠ‘#ԜĨE ¤#)Ątweet_live-49a7c5be74db/web/enmi2012-seminaire-1/images/head_logo.pngUTĪnnRPK}p\CœĻŒ;ÖפāK ¤;:Ątweet_live-49a7c5be74db/web/enmi2012-seminaire-1/images/slide4-enmi2012.jpgUTĪnnRPK}p\CWŽ–j~: ¤“ĸtweet_live-49a7c5be74db/web/enmi2012-seminaire-1/index.phpUTĪnnRPK}p\C9\-I> ¤nĸtweet_live-49a7c5be74db/web/fens2012-designmetadata/config.phpUTĪnnRPK}p\C í•í QdTO ¤ĸtweet_live-49a7c5be74db/web/fens2012-designmetadata/images/archive-designmd.jpgUTĪnnRPK}p\CųáŅÃgč4ņK ¤6mĸtweet_live-49a7c5be74db/web/fens2012-designmetadata/images/big-designmd.jpgUTĪnnRPK}p\CĢI•‡ļG ¤VŖtweet_live-49a7c5be74db/web/fens2012-designmetadata/images/fens-iri.pngUTĪnnRPK}p\CĒzøįBmF ¤$tŖtweet_live-49a7c5be74db/web/fens2012-designmetadata/images/fens-pt.pngUTĪnnRPK}p\C%œŧ…IöM ¤ãŠŖtweet_live-49a7c5be74db/web/fens2012-designmetadata/images/slide-designmd.jpgUTĪnnRPK}p\CWŽ–j~= ¤° ¤tweet_live-49a7c5be74db/web/fens2012-designmetadata/index.phpUTĪnnRPK}p\CÍM?lb ŧE ¤Ž ¤tweet_live-49a7c5be74db/web/fens2012-edito-datajournalisme/config.phpUTĪnnRPK}p\COä×3Ž4X ¤l¤tweet_live-49a7c5be74db/web/fens2012-edito-datajournalisme/images/archive-edito-fens.jpgUTĪnnRPKii)ŽI¤